Python: SOLID Principles and Top Design Patterns
Learn how to improve your Python code through mastery of S.O.L.I.D principles and the Top GoF Design Patterns.
Lo que serás capaz de hacer
We all want to become better software developers and be able to call ourselves "Software Engineers" or "Software Architects", but to do that you first have to master a number of design patterns. This course will put you on a track to that destination. We will teach you how to recognize when to use specific design patterns to build complex systems in a divide-and-conquer manner so that complexity is reduced and abstracted. But rather than learning all the design patterns out there, we have curated the most important, the top fundamental GoF Design Patterns for you. All of that in the context of the Object Oriented Python . We start with full understanding of the S.O.L.I.D Design Principles and how they in turn relate to those design patterns. We explain everything in the context of real-world problems as well as specific code examples. if you need a Python OOP Refresher , we have that for you. everything from classes to interfaces and abstract classes is covered. We will also show you how to code using pygame ( Python Game Platform .) At the end of the course you will get to Architect a solution by coding John Conway's Game of Life simulation which will run on your mobile device. Complex software systems are plagued with three major issues: Timelines are stretched as requirements change. Multiple developers have a hard time coordinating their efforts. Code redundancy. This in turn creates issues with maintenance and overall flexibility for adding new features. In general this means poorly designed systems that are hard to maintain and are not adaptable. One answer to all the above problems is having a proper design and architecture . Think of a skyscraper being built. There is always a high-level blueprint. This blueprint is used to show everybody involved (from architects to supply chain to construction workers to machinery scheduling etc…) what is being worked on. That way, everybody understands and follows the same vision . A blueprint has a number of commonly understood elements which repeat themselves across many projects. For example all buildings need electrical wiring and plumbing, they might need elevators, and cooling systems, and underground parking lots, and of course stairs. They also usually are connected to the electrical grid and water supply as well as… roads. All these common elements follow certain standards that have been improved over many many years and across many many projects. They are well understood and can be used almost like recipes. In Software Engineering we also have a set of elements that repeat themselves across many projects. For example all software applications need to create objects, they need to communicate state change across those objects, they need to be able traverse over collections of those objects. In other words, if you want to be a better developer then you need to become proficient in those elements that have been time-tested. In the Software Engineering world these elements are known as “Design Patterns” This course will teach students how to recognize when to use specific design patterns to build complex systems in a divide-and-conquer manner so that complexity is reduced and abstracted. This will help you to design projects in an Architectural manner before any major development happens and can be used to shorten development time and reduce maintenance costs. Design patterns are important because they are time-tested recipes or solutions to well-known software engineering problems. When creating software applications certain problems recur in a pretty predictable fashion so rather than ‘reinvent’ the wheel we will have an assortment of, if you will, wheels to choose from. We will teach you this in a slightly different manner than you probably have been taught before. We will take a practical approach (i.e. specific examples) but the power of Design Patterns comes from their ‘concept’ and we will teach you the concept of those design patterns so that you are fully able to change them and modify them to your needs. In addition we will look at how to combine all those patterns into something greater: an architecture. A well designed Architecture is this magical thing where the whole is greater than the sum of its parts. This is what we will strive to teach you.
- *Master* the most important and fundamental design patterns in modern Software Engineering within the *Python* ecosystem
- Learn and internalize the S.O.L.I.D principles of design like seasoned *Senior Developers* do.
- Get a deep understanding of the WHAT, WHY, and HOW for those *Fundamental Design Patterns*.
- Get a full Architectural exposition (with UML) of each pattern as well as *real-world* scenarios with hands-on coding examples for each pattern.
- Work on and complete Object Oriented *Python* assignments that will push your understanding of those patterns deeper and more fundamentally.
- Learn how to *identify* the *best pattern* for the given Architectural challenge.
Temario
UNIDAD 1 - Introduction · 8 leccionesUNIDAD 1 - Introduction
UNIDAD 1 - Introduction
- What are Design Patterns and why do we need them?
- The Design Patterns Covered in This course.
- Quick Quiz about design pattern families
- The WHY Of Software Architecture.
- Why use UML?
- Organized vs. Unorganized code.
- Setting Up the IDE and Python Environment
- *OPTIONAL*: UML Refresher.
UNIDAD 2 - Python OOP *Refresher* · 15 leccionesUNIDAD 2 - Python OOP *Refresher*
UNIDAD 2 - Python OOP *Refresher*
- Python OOP Refresher - Theory Part #1
- Python OOP Refresher - Theory Part #2
- Python OOP Refresher - Code Studies Part #1
- Python OOP Refresher - Code Studies Part #2
- Working with a Simple Class in Python
- Working with Class Aggregation
- Python OOP Refresher - Code Studies Part #3
- Working with Abstract Classes
- Python OOP Refresher - Code Studies Part #4
- Working with Class Encapsulation
- Python OOP Refresher - Code Studies Part #5
- Python OOP Refresher - Code Studies Part #6
- Python OOP Refresher - Code Studies Part #7
- Working with Interface Contracts Exercise#1
- Working with Interface Contracts Exercise#2
UNIDAD 3 - What makes a Great Architecture? · 8 leccionesUNIDAD 3 - What makes a Great Architecture?
UNIDAD 3 - What makes a Great Architecture?
- Hallmarks of Good Architecture.
- S.O.L.I.D Design Principles.
- SOLID *Practice Session* - Single Responsibility Principle(SRP)
- SOLID *Practice Session* - Open/Closed Principle(OCP)
- SOLID *Practice Session* - Liskov Substitution Principle (LSP)
- SOLID *Practice Session* - Interface Separation Principle (ISP)
- SOLID *Practice Session* - Dependency Inversion Principle (DIP)
- SOLID Principles Quiz
UNIDAD 4 - Singleton Design Pattern · 10 leccionesUNIDAD 4 - Singleton Design Pattern
UNIDAD 4 - Singleton Design Pattern
- Understanding the Singleton Pattern
- Singleton Pattern - Architectural Considerations Part#1 - Simple Approach
- Singleton Pattern - Architectural Considerations Part#2 - Using Metaclasses
- Singleton Pattern - Architectural Considerations Part#3 - Thread-Safety
- Singleton Quiz
- Coding Part#1 - Implementing Singleton Pattern in Python
- Coding Part#2 - Practical Examples of Singleton In Python
- Working with the Singleton Pattern
- Singleton Pattern Coding **Extra** Exercises
- Singleton Pattern Coding **Extra** Exercises **Solutions**
UNIDAD 5 - Factory Method Design Pattern · 7 leccionesUNIDAD 5 - Factory Method Design Pattern
UNIDAD 5 - Factory Method Design Pattern
- Understanding Factory Method Pattern
- Architectural Considerations for Factory Method Pattern
- Coding the Factory Method Pattern in Python
- Working with the Factory Method Pattern Exercise #1
- Working with the Factory Method Pattern Exercise #2
- Factory Method Pattern Quiz
- Factory Method Pattern Coding **Extra** Exercises
UNIDAD 6 - Builder Design Pattern · 6 leccionesUNIDAD 6 - Builder Design Pattern
UNIDAD 6 - Builder Design Pattern
- Understanding Builder Design Pattern
- Architectural Considerations for Builder Design Pattern
- Coding the Builder Pattern in Python
- Working with the Builder Pattern Exercise
- Builder Pattern Quiz
- Builder Design Pattern Coding **Extra** Exercises
UNIDAD 7 - Adapter Design Pattern · 6 leccionesUNIDAD 7 - Adapter Design Pattern
UNIDAD 7 - Adapter Design Pattern
- Understanding the Adapter Design Pattern
- Architectural Considerations for the Adapter Pattern
- Coding the Adapter Pattern In Python
- Working with the Adapter Pattern Exercise
- Adapter Pattern Quiz
- Adapter Design Pattern Coding **Extra** Exercises
UNIDAD 8 - Strategy Design Pattern · 7 leccionesUNIDAD 8 - Strategy Design Pattern
UNIDAD 8 - Strategy Design Pattern
- Understanding the Strategy Design Pattern
- Architectural Consideration for the Strategy Design Pattern
- Coding the Strategy Design Pattern
- Working with the Strategy Pattern Exercise #1
- Working with the Strategy Pattern Exercise #2
- Strategy Pattern Quiz
- Strategy Design Pattern Coding **Extra** Exercise
UNIDAD 9 - Observer Design Pattern · 5 leccionesUNIDAD 9 - Observer Design Pattern
UNIDAD 9 - Observer Design Pattern
- Understanding the Observer Design Pattern
- Architectural Consideration for the Observer Design Pattern
- Coding with the Observer Pattern
- Working with the Observer Pattern Exercise
- Observer Design Pattern Coding **Extra** Exercises
UNIDAD 10 - State Design Pattern · 5 leccionesUNIDAD 10 - State Design Pattern
UNIDAD 10 - State Design Pattern
- Understanding the State Design Pattern
- Architectural Consideration for the State Design Pattern
- Coding the State Design Pattern
- Working with the State Design Pattern Exercise
- State Design Pattern Coding **Extra** Exercises
UNIDAD 11 - Course Assignment - The Game of Life · 2 leccionesUNIDAD 11 - Course Assignment - The Game of Life
UNIDAD 11 - Course Assignment - The Game of Life
- About John Conway's Game Of Life Simulation
- A Word about the "Game of Life" Architecture
UNIDAD 12 - Final Thoughts · 2 leccionesUNIDAD 12 - Final Thoughts
UNIDAD 12 - Final Thoughts
- Where do you go from here?
- Thank you!
UNIDAD 13 - Bonus Section · 1 leccionesUNIDAD 13 - Bonus Section
UNIDAD 13 - Bonus Section
- Bonus Lecture
Tu certificado lo emite la SEP, no solo una plataforma
Al demostrar la competencia recibes un certificado emitido por la Secretaría de Educación Pública a través del Gobierno del Estado de México: un documento oficial que puedes presentar con confianza ante cualquier empleador o institución.
Tu certificado con INEC
- Lo emite la Secretaría de Educación Pública (SEP), a través del Gobierno del Estado de México
- Documento oficial con folio verificable en línea
- Lo otorga la Universidad Tecnológica Fidel Velázquez
Otras plataformas en línea
- Constancia privada emitida por la misma plataforma
- Solo acredita horas cursadas o asistencia
- Sin respaldo de una autoridad educativa
Tu itinerario, de la inscripción al certificado
- 1
Inscripción con pago único
Pagas $2,800 MXN una sola vez y entras de inmediato al curso.
- 2
Estudias a tu ritmo
13 unidades con videos, lecturas y actividades, disponibles 24/7 durante 12 meses.
- 3
Cuestionarios por unidad
7 cuestionarios para comprobar lo aprendido.
- 4
Certificado
Emitido por la SEP a través del Gobierno del Estado de México, con folio verificable.
Un certificado oficial de la SEP
- Emitido por la Secretaría de Educación Pública (SEP), a través del Gobierno del Estado de México. No es una constancia privada: es un documento oficial, y ese respaldo marca la diferencia frente a otras plataformas en línea.
- Contenido impartido por Piotr Paweska.
- Folio y QR verificables para compartirlo con quien te contrate.
Empieza hoy, a tu ritmo
Un solo pago y acceso inmediato al curso completo durante 12 meses.
- 13 unidades · 82 lecciones · 60 h
- 12 meses de acceso
- 7 cuestionarios de evaluación
- Certificado emitido por la SEP (Gob. del Estado de México) con folio verificable
Sobre tu inscripción
¿Cómo es el pago?
Un solo pago de $2,800 MXN. No hay mensualidades ni cargos recurrentes.
¿Cuánto tiempo tengo acceso?
12 meses desde tu inscripción, 24/7, para avanzar a tu ritmo.
¿Quién imparte el contenido?
El curso es impartido por Piotr Paweska; INEC gestiona tu inscripción, evaluación y certificado.
¿Qué pasa cuando vence mi acceso?
Puedes renovar tu cuenta tú mismo desde la plataforma, sin trámites ni esperas.


