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 2024)
- Lecturer: Timo Kehrer
- Assistants: TBD
- Course details: ILIAS
- Registration: KSL
- Lectures: Fridays 13:15 - 15:00 (Hörsaal 1 001, Engehalde, E8)
- Exercise hour: Fridays 15:00 - 16:00 (Hörsaal 1 001, Engehalde, E8)
- Stream/Podcast: Available through ILIAS course
- Pool hours: TBD
- Language: English, German
- Start: Friday, February 23, 2024
- Exam: TBD
- Course Repetition: Spring Semester 2025
Schedule (Spring Semester 2024)
- 23-Feb-24: Introduction
- 01-Mar-24: Object-Oriented Design Principles
- 08-Mar-24: Design by Contract
- 15-Mar-24: Testing and Debugging
- 22-Mar-24: Inheritance and Polymorphism
- 29-Mar-24: Good Friday
- 05-Apr-24: Spring break
- 12-Apr-24: Iterative Development and Refactoring
- 19-Apr-24: Design Patterns
- 26-Apr-24: GUI Construction
- 03-May-24: GenAI/Code Generation for Developers
- 10-May-24: Live Programming in Smalltalk
- 17-May-24: Functional Programming
- 24-May-24: Aspect-Oriented Programming
- 31-May-24: Q&A