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, Git 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 Generic Programming HW1: Object-Oriented Programming
26.04.2024 Exceptions, Threads, Advanced Classes and Lambdas
30.04.2024 Dynamic Memory Management
03.05.2024 Exercise 2: Advanced Programming
07.05.2024 tbd HW2: Advanced Programming
10.05.2024 Object-Oriented Modeling 1
14.05.2024 Object-Oriented Modeling 2
17.05.2024 Exercise 3: Object-Oriented Modeling
21.05.2024 Pentecost Holidays HW3: Object-Oriented Modeling
24.05.2024 Pentecost Holidays
28.05.2024 Design Patterns I
31.05.2024 Design Patterns II
04.06.2024 Design Patterns III
07.06.2024 Exercise 4: Design Patterns
11.06.2024 Requirements Engineering HW4: Design Patterns
14.06.2024 System Design
18.06.2024 Cross-Cutting-Concerns, Libraries, Frameworks
21.06.2024 Exercise 5: Software Engineering 1
25.06.2024 Testing I HW5: Software Engineering 1
28.06.2024 Testing II
02.07.2024 tbd
05.07.2024 Exercise 6: Software Engineering 2
09.07.2024 Security and Networks HW6: Software Engineering 2
12.07.2024 Applied OOSE: Games Engineering
16.07.2024 tbd
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.