
C++
Why C++
The recording and presentation are available on https://www.youtube.com/watch?v=UdTzHmjMYBc
Info for Economic Informatics (English) students (2025-2026)
- all students (2nd, 3rd and supplementary year) from the Economic Informatics (English) program are invited to join the dedicated Slack workspace, created for the Objected Oriented Programming course. The registration link is https://csieenoop2025.slack.com/join/signup. The registration is done using the @stud.ase.ro email address
- the Slack channel will be used in parallel with online.ase.ro for messaging, Q&A and announcements
- the course coordinator is Catalin Boja (catalin.boja@ie.ase.ro)
To register on online.ase.ro into the course section use the next link https://online.ase.ro/course/view.php?id=59766 and the key asg45. For seminar registration, you need to attend an activity.
Seminar retake for 3rd year and additional year students
Students who did not pass the course in previous years must: :
- to redo all seminar and course activities in the current academic year
- to get involved in activities during the year because points accumulated in previous years are NOT kept
- to check the conditions specific to the current academic year (described in the subject sheet)
- to participate at seminar and course activities alongside 2nd year students
Distribution of 3rd year or additional year students into 2nd year groups
- students are asked (the first 2 weeks of the semester) to check the 2nd year schedule of the study program they are part of (English Computer Science) and to choose a group to participate;
- to avoid crowding of rooms, students are asked to obtain the approval of the seminar coordinator; this is done in person, by participating in a seminar in the first weeks of the semester; each 2nd year group will accept a maximum of 10-12 students
- each student will upload any phases of the project and any assignments on the platform https://online.ase.ro within the group in which he/she was enrolled by the seminar coordinator
To register on online.ase.ro into the course section use the next link https://online.ase.ro/course/view.php?id=59766 and the key asg45. For seminar registration, you need to attend an activity.
Course curricula for the academic year 2025-2026
Fisa disciplinei pentru programul de Informatica Economica in limba romana - https://fisadisciplina.ase.ro
Course description for the Economic Informatics program in English - https://fisadisciplina.ase.ro
Course and laboratory structure
- Using an IDE (Visual Studio or Visual Code), compiling, debugging, correcting compilation errors, identifying and correcting bugs
- Review of pointers, one-dimensional arrays (vectors and strings)
- Review of passing parameters to functions. Passing parameters by value or by address. Pointer vs. C++ Reference
- Classes, access specifiers, encapsulation, attributes, methods, static attributes, constant attributes
- Constructors, Destructor;
- Copy constructor, operator overloading =;
- Operator overloading (<<, >>, +, -, *, /, ++, --);
- Operator overloading (+=, [], ( ), !, cast);
- Derivation/Inheritance
- Virtual functions, overriding, multiple inheritance
- Abstract classes, interfaces, try-catch mechanism, namespaces;
- Stream-oriented I/O operations
- Template classes, concept, implementation, specialization
- STL (Standard Template Library), containers, iterators and algorithms, RTTI (Run Time Type Identification
Exemplu de clasa implementata in C++ (just to get an idea)
- CLASA STUDENT (constructors, destructor, methods)
- CLASA STUDENT 2 (overloading <<, >>, =)
- CLASA STUDENT 3 (overloading ob + int, int + ob, ob + ob, ob++, ++ob)
- CLASA GRUPA (Group class contains a list of Student objects)
Course and seminar evaluation, 2025-2026
- 10% of the final grade - laboratory live test (in weeks 5-6 but the exact date will be established during the seminar)
- 15% of the final grade - laboratory live test (in weeks 9-10 but the exact date will be established during the seminar)
- 5% of the final grade - seminar activities (homework, active participation, etc.)
- 5% of the final grade - course activities (quizes, active participation, etc.)
- 15% of the final grade - quiz in the last 2 weeks of the semester
- 50% of the final grade - oral computer exam
For the overall evaluation the following are considered:
- According to the course syllabus, the examination assessment has a weight of 50%, and the seminar grade has a weight of 50%. Final grade = (50/100 * Exam_Grade) + (50/100 * Seminar_Laboratory_Grade).
- To pass, the exam grade in the session must be at least 5, and the final grade after weighting (exam + seminar) must be at least 5 (with normal rounding).
- To be able to take the exam in the spring session is conditioned by obtaining a minimum of 2 points during the semester (out of a maximum of 5)
- Each teacher from the seminar/laboratory activity establishes his own evaluation method and internal weights, but there is at least 2 live tests during the semester, a quiz test and a project/homework(s)
- Mandatory conditions for passing the exam:
- NO compiler or linker errors - zero errors
- all requirements (including grade 5) must be implemented and tested in the "main()" function
- be able to use the debugger in VS 2022
- implement complete class definition and create objects in the calling function "main()"
- define private fields with extension in dynamic memory - must implement a default constructor and with parameters, a copy constructor, a destructor and overloading the "= operator".
- overloading of unary operators (++,--, etc.), binary (+, -, etc.) as well as those that involve the implementation of "friend" operators.
- working with byte streams for processing files/console + serialization/deserialization of objects/instances in classes.
- Implementing inheritance/derivation mechanisms and abstract classes plus "interfaces" (classes with pure virtual methods/functions) including implementation of "pure" polymorphism.
- Implementing template classes and functions.
- Using classes for standard data structures (STL - Standard Template Library).
- *optional: elements of the Static and dynamic "cast" type, try-catch type mechanisms, optimizing memory usage (avoiding "memory leaks" and "dangling-pointers") and execution speed are also evaluated.
Consultation/Extra meetings schedule
- Boja Catalin - TBA during courses
Practical preparation for the exam
- Check the document with Frequent Common Mistakes (accessed with institutional email address)
- Modulul 1 - vectori si primitive
- Modulul 2 - functii
- Modulul 3 - constructori, getteri si setteri
Theoretical part preparation
Exam subject model
Bibliografie
- [C++11] C++ 2011 Draft Standard – January 2012: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3337.pdf
- [BJAR13] Bjarne Strastroup – The Creator of C++, “The C++ Programming Language” (C++11) - 4th Edition, Editura Addison-Wesley, ISBN 978-0321563842, 2013
http://www.stroustrup.com/crc.pdf
http://www.stroustrup.com/4th.html - C++ online reference - https://en.cppreference.com/w/cpp.html