During the course a couple of theoretical concepts are needed. Everybody participating will have to pick up something and present it to the class. Things to cover are:
Domain Analysis
Feature Analysis
Frame Processor Technology
Grammar and Language Recognizers (Parse trees and abstract syntax trees (AST)).
Meta-programming
Model serialization using XMI.
Meta-modelling using the Meta-Object-Facility of OMG
Functional languages
Cross-cutting concerns (Aspect Oriented Programming)
Byte Code manipulation (e.g. JDO)
Roundtripping and artefact preservation (Generation/manual manipulation)
Generalization Techniques. Variations and Commonalities. Scope definitions.
Problem domain vs. solution domain. Separation of languages.
Generative Design Patterns
Interpreters and Simulations
Data-Driven Design (game design, automotive computing)
Component technology, inversion-of-control patterns, API evolution