FAQ¶
Is this a “Gang of Four patterns” course?¶
Partly, but the catalog is only one component. The course is primarily about design reasoning and evolution. GoF patterns provide a precise vocabulary and a set of recurring structures for analysis.
Do students have to use Java?¶
No single language is conceptually required. Java/Kotlin/C#/C++/Python/TypeScript are all usable for many assignments. Some automated refactoring tools and benchmark datasets are language-specific, so project language should match the research question.
Is UML required?¶
Students should be able to read and create lightweight class, sequence, component, and dependency diagrams. The goal is communication and reasoning, not diagram formalism for its own sake.
Are patterns always good?¶
No. Premature or ritualistic pattern use can increase accidental complexity. Students are expected to explain when not to use a pattern.
Does a smell imply a defect?¶
No. A smell is an indicator. It may correlate with maintenance difficulty, but context matters and detectors can disagree.
What makes the course PhD-level?¶
The research track requires critical reading, replication/extension, explicit baselines, reproducible experiments, threats-to-validity analysis, and engagement with open research problems.