Software Design Patterns

4th year - 1st semester - 2 credits

The "Software Design Patterns" course involves studying various patterns used to solve common problems in software design. Students learn the fundamental concepts of object-oriented programming and deepen their knowledge in designing flexible and extensible systems. The course covers patterns such as Singleton, Factory, Abstract Factory, Builder, Prototype, Adapter, Decorator, Proxy, Composite, Chain of Responsibility, Strategy, Observer, State, and others. Each pattern is analyzed in terms of its structure, applicability, advantages, and practical examples of its usage are provided. The course also covers SOLID principles and the application of design patterns in various programming languages, providing students with skills to create efficient and easily maintainable software.