Advanced Object-Oriented Programming

Course Code: MI 102 • Study year: II • Academic Year: 2022-2023
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:

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