Course (BSc): Programming 2
Page content
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 as reusable solutions to commonly occurring design problems
- How to develop software that communicates its own design
- How to effectively use development tools like integrated development environments and version control systems
- How to program declaratively using paradigms beyond (classical) object-orientation
Overview (Spring Semester 2025)
- Lecturer: Timo Kehrer
- Exercises: Roman Bögli
- Assistants: ILIAS
- Course materials: TBA
- Registration: KSL
- Lectures: Fridays 13:15 - 15:00 (Hörsaal 1 001, Engehalde, E8)
- Exercise hour: Fridays 15:15 - 16:00 (Hörsaal 1 001, Engehalde, E8)
- Stream/Podcast: Available through ILIAS course
- Pool hours: TBA
- Language: English, German
- Start: Friday, 21st February 2025
- Exam: TBA
- Repetition Exam: TBA
- Course Repetition: Spring Semester 2026
Schedule (Spring Semester 2025)
- 21-Feb-25: Introduction
- 28-Feb-25: Object-Oriented Design Principles
- 07-Mar-25: Design by Contract
- 14-Mar-25: Testing and Debugging
- 21-Mar-25: Inheritance and Polymorphism
- 28-Mar-25: Iterative Development and Refactoring
- 04-Apr-25: Design Patterns
- 11-Apr-25: GUI Construction
- 18-Apr-25: (No class)
- 25-Apr-25: (No class)
- 02-May-25: A Bit of Functional Programming
- 09-May-25: Introduction to Aspect-Oriented Programming
- 16-May-25: Guest Lecture (TBA)
- 23-May-25: Guest Lecture (TBA)
- 30-May-25: Q&A