Schedule
Level 1
- Course introduction: Introduction to Software Evolution (link to slides)
- Theory topics: The Definition, the Laws and the Challenges of Software Evolution
- Practice topics: Compiler Construction Crash Course
- Assignments: core features of BabyCobol
Level 2
- Theory topics: The Sides of Software Evolution, Coevolution, Product Families, Lines, Portfolios
- Practice topics: Chomsky Hierarchy
- Assignments: full lexical analysis of BabyCobol
Level 3
- Theory: Software Quality & Metrics, Technical Debt
- Practice: Parsing in a Broad Sense
- Assignments: full syntactic analysis of BabyCobol
- Exam-like quiz questions: exam-ple
Level 4
- Theory: Legacy, Refactoring and Migration
- Practice: Compiler Testing
- Assignments: control static semantics of BabyCobol
Level 5
- Theory: Clone Management
- Practice: Interpreter vs Visitor
- Assignments: data static semantics of BabyCobol
Level 6
- Theory: Mining Software Repositories
- Practice: Patterns of Language Processing
- Assignments: dynamic semantics