TDDB84 Design Patterns
Main area:Computer Science, Design Science
Design patterns represent techniques to identify typical problems that have typical solutions in object-oriented applications in the form of design patterns. Governing those design patterns are a set of design principles. Design principles, and the patterns listed in the literature, will be approached during online lectures with case studies where we will analyze code examples with respect to their adherence to design principles and modify code to illustrate how changes affect possibilities to manage changes in software. Students will train in identifying and evaluating design decisions made by others, evaluate the consequences of design decisions and write a paper on the relationship between design principles, design patterns and properties of languages and application domains. Students will engage practically in using existing design patterns to improve software, identify design patterns in a real application, and extend existing software in a non-trivial manner and relate the implemented change to the use of design principles and design patterns.
Also, students will write and review papers on a selected set of topics covering design principles and patterns.
Software Design Principles. SOLID. Object-Oriented Software Design Patterns. MVC. The History of Software Design. Dynamic programming languages and design patterns. Dependency Injection. Software quality.
Students will need to have proficiency in object-oriented programming languages, object-oriented concepts and implementation techniques such as polymorphism, and basic design principles regarding object modeling and the use of UML. Students will also have to have experience from laboratory courses in applied Computer Science, such as Compiler Construction, Artificial Intelligence, Game Programming, Interaction Programming, or Web Programming.
The course language is English.
Page responsible: Alachew Mengist
Last updated: 2015-08-17