Advanced Programming in C++
The goal is to teach programming in modern C++ (as defined in the ISO C++14 and possibly ISO C++17 standards), including advanced topics such as move semantics, generic programming and metaprogramming using templates, functional programming, parallel programming using threads, …
The main C++ reference source is the C++ reference web page.
There will be two homework assignments in the first half of the semester. The homework solution will not be awarded points, the evaluation is pass/fail only. Each homework assignment may be submitted multiple times. For more details about the submission procedure, see the Homework page. (Currently under reconstruction.)
In the second half of the semester, you will work on a group project. The project includes a checkpoint, a presentation talk, and two code reviews (one at checkpoint time, one at the end of semestr) of another group’s project. The expected group size is 2–3 students. You may choose from a list of suggested topics. The projects will be awarded at most 6 points, distributed as follows:
- 3 points for the functionality;
- 3 points for the code/design quality.
At most three points can be deduced from this total for the following reasons:
- 1 point will be deduced if you fail to prepare the presentation or your presentation is of very poor quality,
- 1 point will be deduced if you fail to provide the checkpoint code review;
- 1 point will be deduced if you fail to provide the final project code review.
To pass the course, every student has to get at least 4 points. If the project is awarded less that the maximal number of points, the group may rework their project and resubmit it during the exam period after the semester. For more details, see the Project page.