The course lasts for 6 weeks, and each week you can submit solutions to any of the exercises. Each week, the deadline is on Sundays, at 23:59 — whatever submissions you have successfully pushed to GitHub by that time will be graded. Please see the workflow page for details of precisely how to submit code for grading.
Each task has a deadline for full points. For example, the deadline for task CP3a is the end of week 3. If you submit it during weeks 1, 2, or 3, you can get full points. If you submit it during weeks 4, 5, or 6, you will get only partial points.
The course ends at the end of week 6, on Sunday, 26 May 2019, at 23:59. No submissions of any kind will be accepted after that.
All deadlines are strict. In case of illness, please get a doctor’s certificate and contact the lecturer ASAP.
You can resubmit your solutions at any point during the course, for any reason, and it will be graded again as if it was your first submission. Resubmissions are always safe. You will never lose any points by resubmitting; we will keep track of the highest number of points that you have got for each task. Even if you have already got full points for a task, you can nevertheless resubmit your solutions later in order to do better in the contest.
You are encouraged to discuss solution ideas with other students and the course staff, but the code that you submit must be written by yourself. You can use ideas that you find online, but you are not allowed to directly copy source code.
Your code can be written in C++11, C++14, or any other version, as long as it compiles correctly on the classroom computers, using the compilers installed there (GCC 5.4). For GPU tasks, you will have to use CUDA, and again it has to compile correctly on the classroom computers, using the compilers installed there (NVCC 10.1).
Here are some technical rules; please try to use common sense, and feel free to ask the course staff if you are unsure:
std::valarrayor any parallelized or vectorized collections or algorithms in the C++ standard library (e.g.