TDDB84 Design Patterns
Course goalsAfter the course, students will be able to
- Enumerate and describe the software design principles abbreviated SOLID
- Enumerate and describe design patterns in object-oriented programming and present canonical implementations of them
- Analyze program code with respect to the implementation of design patterns and design principles
- Independently make design decisions based on general design principles and implement proposed design
- Reflect on constraints and limitations that applications and languages impose on the possibilities for designing software
Course activitiesThe course is organized around a number of lectures, that will assume that students have read from the course literature or other resources prior to each session, and will cover design principles and the domain we will be doing our excercises in. There will also be online lecture material supplementing the literature on individual design patterns. The main actitivies in the course will be organized around a series of lab assignments that students do in groups. At the end of the course, there will be an individual, written exam.
Lab assignmentsThe course will have three main lab assignments that you perform in groups. There will be an oral examination at the end of the lab series, where you get to bring your work and reflections individually to a lab assistant and talk about your work. The lab assignments are:
- Analyzing an application with respect to design decisions taken and the design patterns that are found to be implemented or needed.
- Introducing new tests in an application and studying what will be required to run tests in the application.
- Extending the application, sharing the extensions with other students and reflecting on the outcome.
ExaminationThe examination of the course is divided between labs and the written exam. The labs are examined by adding program code to online repositories, posting material on a course forum and having an oral examination with a lab assistant at the end of the lab course. The written exam is given after the course and will test your ability to reason about code according to the goals of this course.
Page responsible: Ola Leifler
Last updated: 2013-12-16