Navigation
Page categories
Outline:
Last modification
2025-09-04
This is smol web. If you don't like it, fix your browser.

Infopage about the C++ lab of NPRG041.

Lab requirements#

To get the credit, you have to attend the course reasonably (at least accordingly to your knowledge of the topic), do the homework (see below) and finish an individual project (also below).

You will be assigned several points for finishing the homework. These will be added to the points from the final test, therefore improving your final grade for the whole course.

Depending on many factors, students from Erasmus programs may need a completely different set of rules to fit into different time limits. If you are an ERASMUS student, contact us!

Homework#

Assignment A (deadline: November 23rd)#

Moved here

Assignment B (deadline: January 4th, 2019)#

Available here

Project#

Each student has to create an individual project and submit it to get the credit. Topic is variable, but should be discussed and agreed upon before the end of November. Size of the project is not an issue and largely depends on the topic, around 500 lines of (neat) C++ code is a good guideline (on the other hand, packing the same functionality into a smaller program using e.g. advanced language features is even better).

Bad topics:

Good topics:

Deadlines:

Submission guidelines:

Lab timeline#

Source code from the labs will be available here.

Week 1 (October 2nd and 3rd)#

Quick introduction into C programming (we didn’t manage to do much stuff).

Week 2 (Oct 9th, 10th)#

Managing your memory manually, pointers, strings and lists.

Week 3 (Oct 16th, 17th)#

C++-style IO, using structs as objects with methods, operators, overloading, references.

Week 4 (Oct 23th, 24th)#

Rule of three, application to linked-list class.

Week 5 (Oct 30th, 31st)#

STL crash-course — containers and their usage, concept of iterators.

Week 6 (Nov 7th)#

Czech lab was cancelled due to some other event. English lab: custom iterators, some more I/O with files, look at proxy classes.

Week 7 (Nov 13th, 14th)#

Czech lab: custom iterators, file IO.

English lab: run-time polymorphism

Week 8 (Nov 20th, 21st)#

Czech lab: run-time polymorphism

English lab was cancelled.

Week 9 (Nov 27th, 28th)#

Recursive descent parsing. (a.k.a. getting ready for assignment B)

Week 10 (Dec 4th, 5th)#

Recursive descent parsing II. (a.k.a. rest of assignment B should be pretty trivial)

Week 11 (Dec 11th, 12th)#

Tiny proxy classes that help you with various stuff around. Ugly trick with offsetof().

Week 12 (Dec 18th, 19th)#

Practice (poly-calc).

Bonus material#