TDDB84 Design Patterns
After the course, students will according to the study guide be able to
- Identify and explain software design principles and design patterns in existing object-oriented software.
- Apply software design principles and design patterns when working with existing object-oriented software.
- Describe the purpose and consequences of design patterns in object-oriented software.
- Critically evaluate software design principles and design patterns in relationship to software qualities.
- Analyze the relationship between software design principles, design patterns, programming languages and application frameworks.
The course is organized around two main activities: conducting a series of programming assignments related to understanding design principles and patterns, and writing and sharing papers on a selected set of topics related to Design Patterns.
To support and assess those activities, there will be a series of seminars and a set of lab sessions scheduled. Furthermore, there will be recorded lecture material on concrete design patterns as well as on the use of design principles in the course. For students who take the course in Norrköping, seminars and lab sessions will be given locally.
There will be weekly seminars in the course, where each seminar will be related to one of the lab assignments, or writing a paper on a topic related to design patterns. Attendance at the seminars is a passing requirement for the labs and the written assignment.
The course features three 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:
- Extending and reasoning about the properties of small code examples using specific Design Patterns
- Analyzing an existing, medium-sized application with respect to design decisions taken and the design patterns that are found to be implemented or needed.
- Extending the application in a well-defined manner, sharing extensions with other students and reflecting on the outcome.
The course is graded based on both written assignments (UPG1), a series of lab assignments (LAB1). All results are managed through the WebReg online tool, where you will have to sign up for LAB1 and UPG1.
These are the passing requirements for UPG1 in the course:
- Timely, approved submission of design proposal before seminar 1, and active participation in seminar 1.
- Timely, approved submission of a summary of a research paper before seminar 3 and active participation in seminar 3.
- Timely, approved submission of paper and reviews of papers before seminar 6, and active participation in seminar 6.
- Final submission of your paper. This submission will determine your course grade.
These are the passing requirements for LAB1 in the course:
- Timely, approved submission of a lab report for lab 1, and active participation in seminar 2.
- Timely, approved submission of a lab report for lab 2, and active participation in seminar 4.
- Timely, approved submission of a lab report for lab 3, active participation in seminar 5 and an individual demonstration of lab 3.
Your papers will be written in an iterative style, where you will get to review other students' work and improve on your own. See the page on writing papers for more information.
Please note that plagiarism and violations of copyright are prohibited in your papers, and that we as teachers are responsible to report any violations of plagiarism. Read more on definitions of copyright violations and plagiarism on the University Library pages.
Page responsible: Ola Leifler
Last updated: 2016-11-01