Python Design Patterns¶
About¶
- Level: Intermediate to Advanced
- Lectures: 30 hours
- Self-study: 15 hours
- Exercises: 47
- Lines of Code to write: 417
- Format: e-learning + weekly online teleconference with instructor
- Language: English or Polish
Description¶
This practical, hands-on course teaches classic design patterns and how to apply them effectively in Python projects, following the syllabus from creational, behavioral, and structural patterns through UML and real-world examples. Students learn pattern intent, trade-offs, and Pythonic implementations for Singleton, Factory, Builder, Iterator, Strategy, Decorator, Proxy and others; labs emphasize implementing patterns, using PlantUML to document designs, and refactoring existing code to improve readability and extensibility.
Advantages¶
Participants will gain a toolkit of proven design solutions that make code more modular, reusable, and maintainable. The course helps engineers choose the right pattern for common problems, reduce technical debt via better abstractions, improve team communication with UML, and accelerate design reviews and onboarding by standardizing architecture choices and documentation.
Target Audience¶
- Intermediate and senior Python developers who want to master reusable design solutions and apply them in production code.
- Library and framework authors who need robust patterns for extensibility and clean public APIs.
- Software architects and technical leads responsible for cross-team design decisions and maintainability standards.
- Developers refactoring legacy systems who want systematic, testable approaches to improve code structure and reduce technical debt.
- Educators and trainers who teach software design and want practical examples and UML-driven exercises for classrooms and workshops.
Format¶
The course is delivered as a blended learning experience, comprising numerous short videos that progressively introduce concepts and techniques through a series of practical examples. The course format combines e-learning modules with weekly online teleconferences with the instructor for Q&A, discussions, and code reviews.
During the self-study phase, students complete practical exercises that apply the learned techniques. Each exercise is designed to have 100% test coverage, allowing students to verify their solutions. Additionally, students will have access to a spreadsheet to track their progress.
Students will also receive downloadable resources, including code samples, exercise templates, and reference materials to support their learning journey. Since 2015, we have refined our materials based on student feedback to ensure clarity, engagement, and practical relevance. All code listings undergo automatic testing (over 28,000 tests) to ensure accuracy and reliability. All materials, code listings, exercises, and assignments are handcrafted by our trainers without the use of AI. All case studies and examples are based on real-world scenarios drawn from our extensive experience in software engineering.
Working language of the course is either English or Polish.
Course Outline¶
-
Introduction:
- The idea of design patterns
- Types of patterns and their classification
- Gang of Four (GoF) patterns
-
Introduction to UML:
- Class diagram
- Sequence diagram
- Brief introduction to PlantUML
-
Creational Design Patterns:
- Singleton
- Borg
- Factory Method
- Abstract Factory
- Builder
- Prototype
-
Behavioral Design Patterns:
- Iterator
- Context Manager
- Memento
- State
- Strategy
- Observer
- Command
- Gateway
- Template Method
- Chain of Responsibility
- Interpreter
- State Machine
-
Structural Design Patterns:
- Decorator
- Façade
- Adapter
- Proxy
- Composite
- Flyweight
- Bridge
Our Experience¶
AATC trainers have been teaching software engineering since 2015. We have already delivered over 11,000 (eleven thousand) hours of software engineering training to more than 32,000 (thirty-two thousand) students worldwide.
Requirements¶
- Intermediate knowledge of Python programming
- Familiarity with using an IDE (e.g., PyCharm, VSCode)
- Familiarity with using version control systems (e.g., Git)
Setup¶
- Newest version of Python
- IDE of your choice (e.g., PyCharm, VSCode)
- Git installed and configured
- GitHub account
- Web browser (e.g., Chrome, Firefox, Safari, etc.)
Apply¶
If you are interested in taking this course, please contact us at info@astronaut.center