P2: Programming 2 — Object-Oriented Design
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|
|Location:||Engehaldenstrasse 8, 001|
|Exam:||Wednesday, June 9, 2021 @ 10h15-12h00 (Details to follow)|
|Exercise hour:||Fridays 16-17|
|Computer pool support:||Tuesdays 16-18|
This course provides an introduction to object-oriented design in Java with an emphasis on practical techniques for developing complex software systems.
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?
|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|
|7||23-Apr-21||Inheritance and Refactoring|
|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|