Programming in C++

Labs, Wednesday 10:40–12:10, SW2, Malá Strana, 2026


:email: Contact

:information_source: General Information

:calendar: Important Dates

Date Milestone Details Submission
23.11.2026 Topic proposal — Mail
30.11.2026 Approved detailed description Written in Markdown Merge request
10.01.2027 First technology demo — —
23.05.2027 Final version submission — —

:bangbang: Do not leave this until the last minute! Iteration takes time.

:test_tube: Individual Labs

Latest slides: pdf, pptx

Lab Date Goals Code Homework
01 30.09.      
02 07.10.      
03 14.10.      
04 21.10.      
:x: 28.10. Holiday: Den vzniku samostatného československého státu — —
05 04.11.      
06 11.11.      
07 18.11.      
08 25.11.      
09 02.12.      
10 09.12.      
11 16.12.      
12 06.01      

:white_check_mark: Merge Requests in GitLab

For each homework, submit your solution through a Merge Request (MR). This allows me to review your code and provide comments.

  1. Create a separate branch, e.g, hw1-solution for your homework: git checkout -b hw1-solution
  2. Add you solution and push your new branch to Gitlab
  3. Open a Merge Request
    • Go to you Gitlab project in browser and click: Merge Requests/Create merge request.
    • Select Source branch: hw1-solution, Target Branch: master
    • Add a title, optional description, set @faltint as Assignee, and click Create merge request

AI usage

  • in-progress
  • must understand the code

:trophy: Credit Project

See Credit Information Page for details.

Technology demo

Demonstrate a working prototype of your project. The goal is to show that your project is feasible and that all the necessary technologies are available and can be integrated.

Create a merge-reguest in GitLab.

It must contain:

  • A short description of the demo, e.g., what it does and how it works.
  • Description of the required technologies and libraries that needs to be installed to run the demo, including their versions.
  • A build script, e.g., a cmake/script. (Worst case, a detailed manual how to build and run the demo.)

Framework for Finding a Project Idea

Understanding & Curiosity

  • What system or concept do you want to deeply understand?
    Examples: OS, compilers, networking, ML pipelines.
  • Is there a technology you’ve always wondered about internally?
    Examples: Blockchain, Docker, game engines.

Technology & Tools

  • What libraries or frameworks does your domain rely on?
    Examples: OpenMP, MPI, LLVM, TensorFlow.
  • Could you integrate multiple libraries for something new?

User-Centered Design

  • Ask peers: What tasks frustrate them?
  • Automate repetitive tasks or improve incomplete tools.

Innovation & Improvement

  • Combine two ideas into something new.
  • Implement a research algorithm practically.
  • Create interactive learning tools.

Scalability & Performance

  • Design for large data or parallel processing.
  • Optimize for speed, memory, or energy.

Social Impact & Accessibility

  • Improve accessibility for people with disabilities.
  • Make complex tools easier for beginners.