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 (C in English)
    7. Programming languages (PhD)
    8. Project tools (BSc)
    9. Software technology lab
    10. Theses proposals (BSc and MSc)
  3. Research
    1. CodeChecker
    2. CodeCompass
    3. Templight
    4. Projects
    5. Publications (up to 2011)
    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 2020 spring semester is in Hungarian language

alt text


Exam (2nd update!)

The second exam will take place on 29th May between 10.00h - 13.00h. in a similar way as the first one has been organized.

At 10.00h, Friday, 29th May you will be able to download a source file containing a main() function from my homepage: http://gsd.web.elte.hu/zh/matekpotzh.cpp You have to write header files and a source files according to the requirements of the main() file. You have to submit one single zip file named to your neptun code containing the source and the header to https://assignment.elte.hu. You can log in with your NEPTUN account and password.

Having any problem send an e-mail both to gsd@inf.elte.hu and afekete@inf.elte.hu. We will answer ASAP.

I will send you message in NEPTUN about the results, also in my home page.

The results of the first exam and the student tasks can be found on my homepage. If you do not write me mail (gsd@inf.elte.h) until 24.00h 28th May these marks will be final. If you have no mark yet and you do not want to participate on the second exam and want us to write mark 1 to NEPTUN, please also write me e-mail about this. Otherwise we do not write any mark to NEPTUN.

Evaluation and exam

Due to the specific situation caused by COVID-19 we will evaluate your work based on two factors for 50%-50%.

  • The submissions of the student task. We will evaluate only steps 2-5.
  • Writing an exam program in the exam period. We plan to do the exam on May 22nd, Friday between 10.00h-13.00h. Please write us if this time you have other occupation, we may change this period.

Please, register yourself for the exam in NEPTUN!

During the exam you will write a not too complex C++ program based on the material we practiced. You can use any materials available online, except human help. You will submit your solution via the website https://assignment.elte.hu. You can log in with your NEPTUN account and password, and you should submit one single zip file. To practice the submission, you should submit Task4 via this site. Ask Anett if you have any problem.

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

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 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 mkv format.

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 some delay.

  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 operators.

There will be one more optional steps announced later.

Schedule 2019 Spring


Time Room Lecturer Contact
Friday 8.00-9.30 0-820 Hunfalvy János Porkoláb Zoltán gsd@inf.elte.hu


Time Room Lecturer Contact
Friday 9.30-11.00 3-107 UNIX labor Fekete Anett afekete@inf.elte.hu
Friday 11.30-12.30 3-107 UNIX labor Fekete Anett afekete@inf.elte.hu


Time Room Lecturer Contact
Monday 17.30-18.15 2-617 Porkoláb Zoltán gsd@inf.elte.hu

Planned schedule:

1. Fundamentals  
2. Static typing  
3. Program structure  
4. The preprocessor Practice 4
5. Expressions  
6. Statements  
7. Scope Practice 7
8. Life Practice 8
9. Common errors regarding scope and life  
10. Declarations (video)  
11. Functions (video)  
12. Parameters of main (video) Practice 12
13. Classes (video) Practice 10
14. Operators (video)  
15. POD and non-POD (video)  
16. Templates (video)  
17. The Standard Template Library (video) Practice 17
18. STL reference  
19. STL example  
20. Inheritance (video) Practice 20
21. Polymorphism (video)  
22. Test exam (video)  

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).