Skip to content

Programming II

Public syllabus for 2025-2026

Academic overview

Programme
BD
Period
Year 1, Semester 2
Credits
5
Weeks
14

Curriculum placement

Appears in study plans

Teaching team

Course coordinator
Seminar coordinators
(none)

Learning time distribution

Total
Curriculum Lecture Practice Total Weekly Lecture Practice
56 28 28 4 2 2
Exam hours
4
Individual Study Bibliography study Field study Homework Tutoring Others
65 31 19 12 3 0
Overall
125

Learning outcomes

Knowledge

  • (6a03a0952355ae3a04d2f313) Understanding how the computational complexity of an algorithm is determined and the specific requirements for scalability;

Skills

  • (6a03a0952355ae3a04d2f317) Designing, implementing and testing software modules suitable for processing and analyzing large volumes of data;

Responsibility

  • (6a03a0952355ae3a04d2f31a) Responsibility to act in accordance with the interest of users;
  • (6a03a0952355ae3a04d2f31c) Correctly representing the level of competence and accepting tasks within its limits;
  • (6a03a0952355ae3a04d2f31f) Continuous improvement in the practice of the profession;

Online platform

Google Classroom

Course content

Content Methods Obs
C1 The C/C++ programming languages. Program structure. Building stages. Data types. Functions. Macros Lecture, discussion, presentationActive student involvement through open discussions and questionnaires Bjarne Stroustrup – The C++ Programming Language 4th Edition, Addison Wesley, 2013 [Chapter 2]
C2 Pointers. Arrays. References Idem Bjarne Stroustrup – The C++ Programming Language 4th Edition, Addison Wesley, 2013 [Chapter 7]
C3 Structures. Unions. Bitfields. Enumerations Idem Bjarne Stroustrup – The C++ Programming Language 4th Edition, Addison Wesley, 2013 [Chapter 8]
C4 – C6 Object oriented programming concepts in C++. Classes: access control. Constructors. Destructor. Self-reference. Modifiers. Scopes. Idem Bjarne Stroustrup – The C++ Programming Language 4th Edition, Addison Wesley, 2013 [Chapter 16]
C7 Objects: object lifecycle. Idem Bjarne Stroustrup – The C++ Programming Language 4th Edition, Addison Wesley, 2013 [Chapter 16]
C8 Class relationships. Association. Composition. Aggregation Idem Bjarne Stroustrup – The C++ Programming Language 4th Edition, Addison Wesley, 2013
C9 Inheritance. Derived classes. Accessing base class members. Constructors. Destructor. Virtual functions. Idem Bjarne Stroustrup – The C++ Programming Language 4th Edition, Addison Wesley, 2013 [Chapter 20]
C10 Inheritance. Abstract classes. Polymorphism. Class hierarchies. Multiple inheritance Idem Bjarne Stroustrup – The C++ Programming Language 4th Edition, Addison Wesley, 2013 [Chapter 16]
C11 Exception handling. Definition. Throw-try-catch mechanism. Exception Idem Bjarne Stroustrup – The C++ Programming Language 4th Edition, Addison Wesley, 2013 [Chapter 13]
C12 Generic programming. Introduction. Template classes. Template functions. Idem Bjarne Stroustrup – The C++ Programming Language 4th Edition, Addison Wesley, 2013 [Chapter 23]
C13 Generic programming. Specializations. Inheritance. Covariance. Contravariance Idem Bjarne Stroustrup – The C++ Programming Language 4th Edition, Addison Wesley, 2013 [Chapter 25]
C14 C++ Standard Library. Introduction. Containers. Algorithms. Iterators. Strings. Streams. Numerics Idem Bjarne Stroustrup – The C++ Programming Language 4th Edition, Addison Wesley, 2013 [Chapter 30]

Course bibliography

[1] Bjarne Stroustrup – The C++ Programming Language 4th Edition. Addison Wesley, 2013. [2] Brett McLaughlin, Gary Pollice, David West – Head First Object-Oriented Analysis and Design, O'Reilly, 2006 [3] https://bitbucket.org/danielpop/programming-ii-lectures/src/year-2024-2025/

Seminar content

Content Methods Obs
L1 Functions, arrays, strings. Lab instructors will offerguidance and explanationsfor the code challenges.Each student will solve thecode challenges and submitthe solution on the supported platform.Additionally, codechallenges can be solved on local IDE.Home assignments will beused to complete additionalexercises Labs will be conducted using Stepik platform
L2 Pointers Idem Idem
L3 Pointers and structures Idem Idem
L4. C and C++ basic differences: Default argument values. I/O streams. Reference type. Memory allocation in C++ Idem Idem
L5 - L6 Class declarations. Constructors and destructor. const modifier Idem Idem
L7 Modifiers: static. Operators Idem Idem
L8  - L9 Class relationships Idem Idem
L10 – 11 Inheritance and polymorphism Idem Idem
L12 Exception handling Idem Idem
L13 Generic programming. Template classes and functions Idem Idem
L14 Test - Lab assessment Test on Stepik Test on Stepik
Bibliography: [1] https://bitbucket.org/danielpop/programming-ii-labs/src/master/ [2] Laboratories on Stepik platform [3] Bjarne Stroustrup – The C++ Programming Language 4th Edition. Addison Wesley, 2013

Seminar bibliography

It is nearly impossible to develop applications nowadays that are not using object-oriented paradigms. Object-oriented modelling and implementation are the de-facto approach to implement complex systems across multiple businesses (financial, automotive, or online commerce) or research projects in academia. The local, national, and international workforce market is continuously looking for highly skilled personnel to develop applications and platforms using object-oriented paradigm.

Corroboration

(none)

AI tools guidance

In this course, applicable for both lectures and labs, the use of AI/GenAI for accomplishing homeworks or assignments it is NOT allowed! Examples of AI tools include, but not limited to, ChatGPT/Claude/Claude Code/Github Copilot/MS365 Copilot/Gemini etc. Students are encouraged to use AI for documentation, research or individual study, though.

Evaluation and delivery

Activity Criteria Methods Percentage
C
  • Strong knowledge of procedural and object-oriented paradigms
  • Basic knowledge of generic programming concepts
  • Able to represent real-life problems using abstract models (conceptual modelling)
  • Code the concepts of procedural programming in C programming language
  • Represent OOP and generic programming concepts in C++ programming language
  • Multiple-choice test in exam session
  • Short quizzes at each lecture
  • 40.0%
  • 10.0%
S
  • Able to resolve problems in C and C++ programming language
  • Able to debug programs in C/C++
  • Able to build systems based on classes and relationships between classes
  • Develop an analytical spirit and curiosity about how computer software works
  • Test C/C++ programming language
  • 50.0%

Performance standards

Minimum Performance Standard ------------------------------------ - Knowledge of basic concepts of procedural and object-oriented paradigms in C/C++ languages; - Ability to model a simple problem using object-oriented concepts (e.g. class complex number); - Ability to understand and model simple problems using template classes and functions (e.g. class stack); - Ability to write a simple program (up to 3 related classes) in C++ programming languages, to compile it and run it successfully. - Ability to use basic collections and algorithms from STL (Standard Template Library) (e.g. class vector). Students’ Evaluation Details ------------------------------- For students enrolled in the 1st year of study: The final grade is computed as the average of grades obtained for components 10.4 and 10.5. The exam is passed if each individual grade obtained at components 10.4 and 10.5 (i.e. both lecture and lab grades) is greater or equal to 5. The component 10.4 (Lecture assessment) is composed of the result of a multiple-choice test in the exam session weighted with the results obtained on each lecture quiz. In the final examination sessions (A2/B2) ONLY the final test can be retaken. Quiz grades are computed as the ratio between student’s points over the total points from all lectures, and it is NOT changeable in exam session(s). The component 10.5 (Lab assessment) is evaluated during the semester through a test in the last laboratory and will yield a final Lab grade. If the Lab grade is less than 5, then the student can retake the lab test in the examination session(s) (A2/B2). For students enrolled in the 2nd or 3rd year of study, who need to retake the exam: the grade obtained for component 10.5 (laboratories) gets carried over previous years and one MUST retake ONLY the final multiple-choice lecture test. In case of re-examination, the lecture quizzes from previous years are NOT considered. Attendance Rules ------------------- For laboratories, minimum 10 laboratory attendances are mandatory. For students who have filed for 50% frequency reduction and got approved by the faculty, attendance at minimum 7 laboratories.

Additional info

(none)