| Lesson 2 | Design Patterns Course Requirements |
| Objective | Discover what you need to take this course. |
This is an intermediate object-oriented design course. You do not need prior experience with the Gang of Four catalog, but you should be able to read and modify a small Java or C++ program without step-by-step language instruction.
Experience with UML class or sequence diagrams will make some illustrations easier to read. Familiarity with SOLID principles, cohesion, coupling, and dependency injection is also useful. These topics are reviewed when they directly affect a pattern decision, so lack of formal architecture training should not prevent you from starting.
Choose either Java or C++ for the programming exercises. The course does not depend on a graphical interface or a particular IDE. You need:
Suitable environments include IntelliJ IDEA, Eclipse, Visual Studio, Visual Studio Code, or a command-line toolchain. Use the environment you can debug confidently. The examples focus on standard language features rather than framework-specific annotations or code generation.
You are ready to begin if you can complete this small design task:
If the syntax is unfamiliar, review your chosen language first. If the code is straightforward but the final design question is difficult, this course is the appropriate next step.
The course develops judgment, not pattern-counting ability. Each lesson connects a recurring design problem to a pattern's intent, participants, collaborations, and consequences. You will use the continuing traffic-flow project to compare plausible designs and document why one alternative is more adaptable than another.
Optional reference: Design Patterns: Elements of Reusable Object-Oriented Software. This is an affiliate link; no purchase is required to complete the course.