Advanced Object-Oriented Programming

Course Code: MI 102 • Study year: II • Academic Year: 2024-2025
Domain: Computer Science - Masters • Field of study: Advanced programming and databases
Type of course: Compulsory
Language of instruction: Romanian
Erasmus Language of instruction: English
Name of lecturer: Corina Rotar
Seminar tutor: Corina Rotar
Form of education Full-time
Form of instruction: Lecture
Number of teaching hours per semester: 48
Number of teaching hours per week: 4
Semester: Summer
Form of receiving a credit for a course: Grade
Number of ECTS credits allocated 8

Course aims:

application of standard design patterns
using the design patterns in the process of building the software
understanding the importance of using design patterns in software design (pros/cons)

Course Entry Requirements:

Object Oriented Programming

Course contents:

Object oriented programming fundamentals

Template functions, Template Classes

Generic Programming. Iterators and Algorithms

Object oriented design. UML Language. UML: Class Diagram, Sequence Diagram, Collaboration Diagram, State Diagram, Activity Diagram

Introduction too Design Patterns: Creational Design Patterns, Structural Design Patterns, Behavioural Design Patterns 

Creational Design Patterns> Singleton, Factory, Factory Method, Abstract Factory, Builder, Prototype, Object Pool

Behavioural Design Patterns> Iterator, Memento, Observer, Strategy, Template Method, ,Visitor.

Structural Design Pattern. Adapter, Bridge, Composite, Decorator, Flyweight, Proxy.

Advanced Design Pattern. Examples.

Teaching methods:

lecture, disscutions, lab projects

Learning outcomes:

  • studying the advanced chapters of the object-oriented paradigm- design patterns
  • consolidating the skills of analysis and design of software systems through object-oriented analysis and design
  • the ability to operate with the generic programming paradigm
  • studying some basic elements of the UML modeling language
  • the ability of using design patterns

Learning outcomes verification and assessment criteria:

Implementation of software units in high-level programming languages by using of design patterns - 50% final exam + 50% project

Recommended reading:

Gamma, E., Helm, R., Johnson, R., Vlissides, J.,, Design Patterns - Elements of Reusable Object-Oriented Software, Teora, Bucuresti, 2000, 500.
Bruce Eckel, Thinking in C++, Teora, Bucuresti, 2010, 300.
H. Schildt, C++ - manual complet, Teora, Bucuresti, 2000, 400.