Community centre crm: courses, attendance, reporting
There are a number of approaches that could be taken for some of your questions, and without doing a detail 'spec' it would be hard to give a definitive answer. Also some CiviCRM concepts and terminology may not quite fit with your descriptions. 

In general, having built civicrm implementations for a number of clients in the educational sphere with needs for both 'attendance' and 'achievements' I would expect CiviCRM to be able to cover the vast majority of your requirements without needing significant additional development work.

In saying the above there is a presumption on my part that the CMS is going to be Drupal, as the combination of CiviCRM and Drupal Views and Webforms give you tools that CiviCRM by itself struggles to deliver.

Your concept of 'group' may not necessarily match with Civi Groups, in that you may be able to do what you want without setting up a group for each situation you may be thinking of. But yes, setting up Groups is easy, as is adding folk to groups, or making the groups 'smart' so folk get added based on some characteristic (saved search)

Sessions could either be mapped to Events or may in some cases make sense to use just Activities. Tracking the number of sessions can be done using custom fields on Participant records or on Activities

Notes, and user details are all out of the box.

Key Objectives, may be something to re-purpose Campaigns for.