1. Homepage of Dr. Zoltán Porkoláb
    1. Home
    2. Archive
  2. Teaching
    1. Timetable
    2. Bolyai College
    3. C++ (for mathematicians)
    4. Imperative programming (BSc)
    5. Multiparadigm programming (MSc)
    6. Programming (MSc Aut. Sys.)
    7. Programming languages (PhD)
    8. Software technology lab
    9. Theses proposals (BSc and MSc)
  3. Research
    1. CodeChecker
    2. CodeCompass
    3. Templight
    4. Projects
    5. Publications
    6. PhD students
  4. Affiliations
    1. Dept. of Programming Languages and Compilers
    2. Ericsson Hungary Ltd

Programming Language C++ (for mathematicians)

This course in the 2021 spring semester is in Hungarian language

alt text



Please, register yourself for the exam in NEPTUN! The exam will be on Monday, 17th, 16:00-17:30 on Canvas.

Based on the Polynom task I will offer you the exam mark. I f you accept it, you do not need to take the exam.

During the exam you will write a not too complex C++ class based on the material we practiced. You can use any materials available online, except human help. You will submit your solution via Canvas copy-pasting your single header containing your class. (Normally, we implement our non-template classes in a header and a source, but here - for simlicity - we ask you to put everything in your header.

There will be a chance to repeat your exam in the unlikely case you need it.

Grading policy

During the semester students will work on a small C++ project which consists from 3-4 major milestones. At each milestone students should implement some part of the project according what they learn by that time. Each milestone is evaluated separately. At the end of the semester students will write a C++ program as an exam. For this events you can use all notes, books or internet resources except human help.

The final grade is based on the following factors:

  • The submissions of the student task and the canvas examples: 50%.
  • Writing an exam program in the exam period: 50%

On-line material

Due to the current Covid-19 situation, I started to provide on-line materials. I will upload supporting videos for the lectures, practices and also for the student project. See the links to the videos at the beginning of each lecture, practice and the solution parts of the student project.

For each lecture/practice I created multiple small videos to help download. The videos are in mp4 and mkv format, you can likely play them directly in your browser. If not, just download them and play it. Free tools, like mplayer or vlc play both formats.

Please, send your questions to gsd@inf.elte.hu, I will answer them in Neptun, so everybody can learn from it.

Student project

During the semester the students will (individually) working on a larger project. They will step by step create a Polynom class and its test environment. For every time you have to create a small additional task built on the previous results. We publish the solution after the deadline with some delay.

Submit the solutions on Canvas as one single C++ source file containing the main() function given in the task.

  1. Task 1 Create a pretty printer for polynoms.
  2. Task 2 Evaluate a polynom.
  3. Task 3 Create a polynom class.
  4. Task 4 Create a template version of the polynom class with some operators.

Schedule 2021 Spring


Time Where Lecturer Contact
Monday 16:00-17:30 MS-teams Porkoláb Zoltán gsd@inf.elte.hu


Time Where Lecturer Contact
Tuesday 12:15-13:45 MS-teams Porkoláb Zoltán gsd@inf.elte.hu
Tuesday 16:00-16:30 MS-teams Porkoláb Zoltán gsd@inf.elte.hu

Planned schedule:

Lecture Video
1. Fundamentals CppMat-ea-01.mp4
2. Static typing CppMat-ea-02.mp4
3. Program structure CppMat-ea-03.mp4
4. The preprocessor CppMat-ea-03.mp4 (from 43’)
5. Expressions CppMat-ea-04.mp4
6. Statements CppMat-ea-05.mp4
7. Scope CppMat-ea-05.mp4 (from 43’)
8. Life CppMat-ea-06.mp4
9. Common errors regarding scope and life CppMat-ea-06.mp4 (from 60’)
10. Declarations CppMat-ea-07.mp4
11. Functions CppMat-ea-07.mp4 (from 64’)
12. Parameters of main  
13. Classes  
14. Operators CppMat-ea-08.mp4
15. POD and non-POD CppMat-ea-08.mp4 (from 59’)
16. Templates CppMat-ea-09.mp4
17. The Standard Template Library CppMat-ea-09.mp4 (from 58’)
18. STL reference  
19. STL example  
20. Inheritance CppMat-ea-10.mp4
21. Polymorphism  
22. Exam preparation CppMat-ea-10.mp4


Practice Tuesday 12:15h Tuesday 16:00h
2021.02.09 Video Video
2021.02.16 Video Video
2021.02.23 Video Video
2021.03.02 Video Video
2021.03.09 Video Video
2021.03.16 Video Video
2021.03.23 Video Video
2021.03.30 Video Video
2021.04.13 Video Video
2021.04.20 Video Video
2021.04.27 Video Video
2021.05.04 Video Video
2021.05.11 Video Video

Videos from 2020

Practice 4 | Practice 7 | Practice 8 | Practice 10 | Practice 12 | Practice 17 | Practice 20

Further reading

alt text

Bjarne Stroustrup: The C++ Programming Language, 4th Edition.

Addison-Wesley (May 2013) ISBN 978-0321563842.

alt text

Bjarne Stroustrup: Programming, 2nd. Edition. (2013). ISBN-13: 978-0321992789.

alt text

Scott Meyers: Effective Modern C++, 42 Specific Ways to Improve Your Use of C++11 and C++14.

O’Reilly Media (November 2014).