P2: Programming 2 — Object-Oriented Design
Overview
Vorlesung für Haupt- und Nebenfachstudenten.
NB: The current version of this course (FS2022) is hosted on the SEG web site.
Course: | Programming 2 (Spring Semester 2021) |
Lecturers: | Prof. Oscar Nierstrasz |
Staff: | Pooja Rani, Pascal André, Julius Oeftiger, Lorenzo Wipfli, Marcel Zauder |
Lectures: | Fridays 14h15 - 16h00 |
Language: | English |
Location: | Engehaldenstrasse 8, 001 |
Start: | 2021-02-26 |
Exam: | Wednesday, June 9, 2021 @ 10h15-12h00 (Details to follow) |
Exercise hour: | Fridays 16-17 |
Computer pool support: | Tuesdays 16-18 |
Repetition: | Spring 2022 |
Description
This course provides an introduction to object-oriented design in Java with an emphasis on practical techniques for developing complex software systems.
Learning outcomes
You will learn:
- how to apply Responsibility-Driven Design to decompose a complex system into objects
- how to use Design by Contract to develop robust software
- how to make use of inheritance to design flexible and generic software systems
- how to apply iterative and incremental development and continuous refactoring to arrive at a clean and understandable design
- how to effectively test software
- how to develop maintainable code by consistently applying simple design principles
- how to apply design patterns to simplify your software
- how to develop software that communicates its own design
- how to effectively use development tools like debuggers, version control systems, and integrated development environments?
Schedule (tentative)
Week | Date | Lecture |
1 | 26-Feb-21 | Introduction |
2 | 05-Mar-21 | OO Design Principles |
3 | 12-Mar-21 | Design by Contract |
4 | 19-Mar-21 | A Testing Framework |
5 | 26-Mar-21 | Debugging and Tools |
- | 02-Apr-21 | Good Friday |
- | 09-Apr-21 | Spring break |
6 | 16-Apr-21 | Iterative Development |
7 | 23-Apr-21 | Inheritance and Refactoring |
8 | 30-Apr-21 | GUI Construction |
9 | 07-May-21 | Advanced Design Lab |
10 | 14-May-21 | Guidelines, Idioms and Patterns |
11 | 21-May-21 | A bit of Smalltalk |
12 | 28-May-21 | A bit of C++ |
13 | 04-Jun-21 | Software-Entwicklung in der Praxis (Lukas Akermann, Zühlke) |
09-Jun-21 | Exam @ 10h00-12h00 — Details to follow |