zum Inhalt springen

Lecture: Objektorientierte Softwareentwicklung / Object-Oriented Software Engineering

Overview

This lecture devides into two parts: A (bigger) object-oriented programming and modeling part and a (smaller) software engineering part. We will roughly cover the following topics:

  • Development tools, practices and processes.
  • Programming languages and paradigms.
  • Object-oriented programming, modeling and design.
  • Frameworks and Libraries.
  • Best practices and modern development.
  • Implementation of object-oriented languages.
  • Software development based on OO: requirements, system design, implementation, testing, deployment.

This course has a strong technical focus and includes many programming exercises and homework. The students gain experience with modern software engineering tools and programming patterns. The course has strong emphasize on theoretical and technical aspects of programming languages and paradigms and will thus deal with several modern OOP languages. It is not a sole programming course!

 

Organization

The lecture and exercise session take place on Tuesdays and Friday from 2:00 pm to 3:30 pm in HS3 in the Physik building (321 Hörsaal III (130 Sitzpl.) (321/EG/203)).

There are no additional dedicated exercise sessions.

Contact Persons

Adrian Bajraktari
Lecturer and main contact person

Schedule

Date Topic of the lecture Topic of Homework
09.04.2024 Organization, Introduction HW0: Set-up and Git
12.04.2024 Object-Based and Class-Based Programming
16.04.2024 Types, Subtypes, Interfaces
19.04.2024 Exercise 1: Object-Oriented Programming
23.04.2024 Memory Management HW1: Object-Oriented Programming
26.04.2024 Modularization and Generic Programming
30.04.2024 Modern Programming
03.05.2024 Exercise 2: Advanced Programming
07.05.2024 Requirements and Architecture HW2: Advanced Programming
10.05.2024 System Design
14.05.2024 Testing
17.05.2024 Exercise 3: Software Engineering
21.05.2024 Pentecost Holidays HW3: Software Engineering
24.05.2024 Pentecost Holidays
28.05.2024 Processes and Tools
31.05.2024 Object-Oriented Modeling I
04.06.2024 Object-Oriented Modeling II
07.06.2024 Exercise 4: OOM + Getting Started on Project
11.06.2024 Design Patterns I HW4: Object-Oriented Modeling
14.06.2024 Design Patterns II
18.06.2024 Design Patterns III + Optimization
21.06.2024 Exercise 5: Design Patterns
25.06.2024   HW5: Design Patterns
28.06.2024  
02.07.2024  
05.07.2024  
09.07.2024    
12.07.2024  
16.07.2024  
19.07.2024 Outlook and Q&A
Wednesday,
31.07.2024,
13:00-14:00
First Exam  
Monday,
23.09.2024,
10:00-11:00
Second Exam  

Rules and Agreements

The lecture has an ILIAS course where you will find a link to our Discord server and a link to the Sciebo folder that contains slides, supplementary documents and home work sheets.

We'll be using Discord for announcements, communication, and group work.

Waiting list: The lecture is not limited in size.

Prerequisites: No formal prerequisites but we recommend that you have completed the programming course, programming lab and software engieering.

Textbook: We do not have a single textbook, but rather compile lectures from various sources. Direct references are announced in the lecture and in Sciebo.

Homework: Every Friday evening, we publish a homework sheet. Homework sheets must be submitted 2 weeks after on friday before 14:00.

Grading: The grading is based on the results of the exam. If you achieved >= 80% of points from homework sheets you get a 5% bonus on your exam points. If you achieved >= 95% of points from homework sheets you get a 10% bonus on your exam points.

Delayed submissions:  Delays are not tolerated and are considered as 0 points. 

Time management: This is a course with 6 ECTS points. We therefore expect that you will spend up to 8 hours per week on the course. Typically 4 hours per week are spent on lectures and exercises and 4 hours on homework sheets. 

Group work: You are expected to work on home work sheets in groups of up to 5 people. It is part of your responsibility to organize yourselves.