The C++ courses are offered in English

Students intending to attend this course should be prepared for lectures and exercises in English.

Attendees always have the option to address the teacher in either Dutch or English, and may submit exercises using either Dutch or English.

The lectures are in Dutch if that's preferred by all attendees. However, English is used in all assignments and presentation sheets.

The C/C++ course is presented by Frank B. Brokken and Jurjen Bokma.

dr. Frank B. Brokken
Please don't hesitate to contact dr. Frank B. Brokken ( and/or Jurjen Bokma ( if there are any questions.

All activities mentioned below are accessible to students/employees of the University of Groningen, of the `Hanzehogeschool', of the UMCG and to others who are interested.

Both domestic and foreign (guest) students and employees of the University of Groningen, of the `Hanzehogeschool' and of the UMCG can register until the maximum number of participants has been reached. There are no personal charges other than the (optional) books that are used with the C++ courses. Employees interested in attending are advised to seek consent from their department's chairs or comparable, prior to enrolling.

The courses are open to other (external) participants as well. External participants should contact one of the lecturers before enrolling or attending the C++ courses.

Registration for the course(s) is NOW open.

Jurjen Bokma

Please feel free to contact

dr. Frank B. Brokken (phone +31 50 363 9281)
Jurjen Bokma (phone +31 50 363 9253)

if you have any questions about the courses or their organization.

Organized courses:


Starting in the academic year 2019-2020 the C++ course is no longer offered by the CIT, but by the dept. of Computing Science.

The lecturers, schedules, registration procedure, and locations of the course won't change. Don't hesitate to contact the lecturers if you have any questions.

Furthermore, all rewards (ECTSs etc) remain as before: by completing the complete course you receive 5 ECTSs per part (some departments (AI, Computer Science) do not acknowledge the ECTSs we grant you, although the received points will be administered at Progress

The C/C++ course consists of three parts. Each part takes about 7 to 8 weeks. It's always possible to enter the course at any of its three parts, but when you register for parts 2 or 3 we assume you thoroughly understand all the topics covered in earlier parts. By default, each part is rewarded with 5 ECTS study points (when completed successfully).

Note: Some study guides only mention two parts of the C/C++ course. This is incorrect: the C/C++ course consists of three parts, as described below.

Can ordinary mortals complete this course?

Well, it depends. We call it a C/C++ course, but in the end that's just the vehicle we use for teaching principles of good software design. But then, this is like saying: yes, we're teaching you how to drive a car, but for that we use a Ferrari.
You have to be well-prepared for that! Also, C/C++ differ from many other programming languages in that there is an official ANSI/ISO standard, which turns C/C++ in a very well designed and thorough language, void of elements that can best be described as resulting from current fashion idiosyncrasies.

In 2019-2020 we will devote lots of attention to the upcoming c++2a standard, including template concepts, modules, transactional memory, and new additions to C++'s basic grammar.

On average, if you aim for completing the course at high final grades, expect that this course requires you to invest about 20 hours each week (that's including the weekly 2 hours lecture). 20 hours a week is an estimate for the full (heavyweight) course. There are alternatives: below we describe lightweight variants, which require you to investigate considerably less time.

In 2018-2019 we introduced a new rating scheme for exercises, which helps you reaching a `sufficient' marks for the heavy- or lightweight variants of the course: follow this link for a description of the rating procedure that use since 2018-2019.

Lightweight versions of the courses.

All lectures and all study materials offered for the standard courses is also offered for the various lightweight variants, but the amount of accumulated practical experience in using C++ varies for the various (light- and heavy-weight) variants.

The lightweight variants are rewarded with 2 ECTS points (approx. 55 hrs. study load, maximum grade: 7), 3 ECTS points (approx. 85 hrs. study load, maximum grade 8), or 4 ECTS points (approx. 110 hrs. study load, maximum grade 9). The maximum grade for the full course (5 ECTS points, approx. 140 hrs. study load) is 10.

If you're completing a heavier variant than your study is willing to support, then your maximum grade is determined by the variant you complete, and not by the number of credit points your study is willing to recognize. Furthermore, the particular variant that you complete should be mentioned in the overview of your results, as registered in, e.g., Progress.

It is possible to select a different lightweight variant for each of the three parts of the C++ course, and it is possible to modify the (lightweight) level while a course is actually being offered.

When registering for the C++ course(s) no particular registration is required for the lightweight variant you might want to opt for: just select your favorite level while attending the course(s).

To join the C++ course, you may register for for each part or just for part I. Once you've registered for a certain part it is assumed that you intend to attend subsequent parts as well. There is no obligation, but it allows you to continue the course without any further administrative hassle.

In September you start with part I. In November you continue with part II, and finally, in January you enter part III. So, the full C++ course takes about half a year to complete. It is also possible to attend the individual parts, omitting one or two other parts. When joining during later courses, it is assumed that your entry level is at least equal to the exit level of the previous part. When in doubt, contact the lecturers.

C++ Courses organized by the Dept. of Computing Science:

Programming in C/C++, part I

Programming in C/C++, part II, Academic Year 2019-2020

Programming in C/C++, part III

There will be many things that will remind those who'll join the C/C++ courses to the Unix Operating System. Linux, Debian and Ubuntu being well-known branches that grew from the Unix tree.
Considering this close relationship, it is at least funny, and arguably useful, to (re)familiarize you with The Unix Haters Handbook, brought to my attention by one of my colleagues, Mr. Adri Mathlener. Although aiming at Unix, it also has a chapter (10) about C++. So, as we wrote above: be prepared when joining the gang. Morbid....
Thanks, Adri!

But let's not get distracted by the The Unix Haters Handbook. After all, it's C/C++ you're after, right? Well, you came to the right spot! Even after all these years (Frank started the C course together with Karel Kubat back in 1987, adding C++ to the course in the early 90s) this course breathes nothing but enthusiasm, and we're fairly sure that you can have a great time when joining this course. Well, you can, but it'll require some effort, though....

To tease some friends, Frank wrote a small document full of C++ teasers. It's at his linked-in page, but you can also directly download it here.

Most teasers aren't difficult, but require some meta-thinking about the language. You know it all? Don't say `yes' too quickly. There's a deeper thought behind every single question. But if you do, great, and chapeau. Not so? Then maybe the C/C++ course is something for you. We will enthusiastically welcome you!

Frank B. Brokken (
20 May 2020