This course in this semester is only in Hungarian language
code:
cppmatm22va
cpp_pr1x0_m17va
im1c3pn4
Grading policy
During the semester students will work on a small C++ project which consists from 3 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 should write a C++ program as an exam. For this events you can use all notes, books or internet resources except any 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%
Activity on practices has a positive effect.
Student project
During the semester the students will (individually) working on a larger project. Submit the solutions on Canvas copying only the source of the solution as a text.
This year the task will be the step by step implementation of a simple binary search tree class.
-
Task 1 Write a pretty-print function to print the content of the tree. Deadline: March 24, Sunday, 23:59. The solution is available now.
-
Task 2 Re-write the Task1 using pointers re-implementing the printBinTree and implementing the insertBinTree function. Deadline: April 14, Sunday, 23:59.
The solution is available now. -
Task 3 Write a BinTree class based on the Task2. Define constructor from a (possible empty) vector. Define destructor to clean up the dynamic memory. No copy or move operations are defined. Define insert() and contains() public member functions and the output operator. Separate your solution into a header file and a source file. Deadline: May 5, Sunday, 23:59.
The solution is available now.
Schedule 2024 Spring
Lecture
Time | Where | Lecturer | Contact |
---|---|---|---|
Wednesday 10:00-12:00 | LD 0-817 Dudich | Porkoláb Zoltán | gsd@inf.elte.hu |
Practices
Time | Where | Lecturer | Contact |
---|---|---|---|
Friday 10:00-12:00 | LD 0-411 | Umann Kristóf | dkszelethus@gmail.com |
Friday 14:00-16:00 | LD 0-411 | Umann Kristóf | dkszelethus@gmail.com |
Slides
Planned schedule:
Lecture |
---|
1. Fundamentals |
2. Static typing |
3. Program structure |
4. The preprocessor |
5. Expressions |
6. Expression evaluation, Statements |
7. Scope |
8. Life |
9. Common errors regarding scope and life |
10. Declarations |
11. Functions |
12. Parameters of main |
13. Classes |
14. Operators |
15. POD and non-POD |
16. Templates |
17. The Standard Template Library |
18. STL reference |
19. STL example |
20. Inheritance |
21. Polymorphism |
22. Exam preparation |
Further reading
Bjarne Stroustrup: The C++ Programming Language, 4th Edition.
Addison-Wesley (May 2013) ISBN 978-0321563842.
Bjarne Stroustrup: Programming, 2nd. Edition. (2013). ISBN-13: 978-0321992789.
Scott Meyers: Effective Modern C++, 42 Specific Ways to Improve Your Use of C++11 and C++14.
O’Reilly Media (November 2014).
Earlier
Videos on 2022 lectures
Lecture | Video |
---|---|
1. Fundamentals | CppMat-2022-ea-01.mp4 |
2. Static typing | CppMat-2022-ea-02.mp4 |
3. Program structure | CppMat-2022-ea-02.mp4 from 53’ |
4. The preprocessor | CppMat-2022-ea-03.mp4 |
5. Expressions | CppMat-2022-ea-03.mp4 from 36’ |
6. Expression evaluation, Statements | CppMat-2022-ea-04.mp4 |
7. Scope | CppMat-2022-ea-06.mp4 |
8. Life | CppMat-2022-ea-06.mp4 from 55’ |
9. Common errors regarding scope and life | CppMat-2022-ea-06.mp4 from 1h:30’ |
10. Declarations | CppMat-ea-07.mp4 |
11. Functions | CppMat-ea-07.mp4 from 64’ |
12. Parameters of main | CppMat-ea-07.mp4 from 1h:20’ |
13. Classes | CppMat-2022-ea-07.mp4 |
14. Operators | CppMat-2022-ea-08.mp4 |
15. POD and non-POD | CppMat-2022-ea-09.mp4 |
16. Templates | CppMat-2022-ea-10.mp4 |
17. The Standard Template Library | |
18. STL reference | |
19. STL example | |
20. Inheritance | CppMat-2022-ea-11.mp4 |
21. Polymorphism | CppMat-2022-ea-11.mp4 |
22. Exam preparation |
Some practices in 2022
Practice | Video |
---|---|
2022.02.14. | CppMat-22-gyak-0215-12h.mp4 |
2022.02.28. | CppMat-22-gyak-0228-10h.mp4 |
2022.03.07. | CppMat-22-gyak-0307-10h.mp4 |
2022.03.21. | CppMat-22-gyak-0321-10h.mp4 |
Videos on 2021 lectures
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 |
Videos on 2021 practices
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 |
Student project in 2021
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.
- Task 1 Create a pretty printer for polynoms.
- Task 2 Evaluate a polynom.
- Task 3 Create a polynom class.
- Task 4 Create a template version of the polynom class with some operators.
Videos from 2020
Practice 4 | Practice 7 | Practice 8 | Practice 10 | Practice 12 | Practice 17 | Practice 20