P2: Programming 2 — Object-Oriented Design

Overview

Vorlesung für Haupt- und Nebenfachstudenten.

Course:Programming 2 (Spring Semester 2018)
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

mvc.png 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
Last changed by scg on 28 September 2021