ADAP (Advanced Design and Programming)

Module Summary

Title Advanced Design and Programming
Synopsis This course teaches principles and practices of advanced object-oriented design and programming.
Syllabus https://goo.gl/M6Nqo
Schedule https://goo.gl/bePPn (includes link to registration)
Language German
Modules OSS-ADAP-VUE (4 SWS, 5 ECTS)
Playlists Main lectures: https://www.youtube.com/playlist?list=PLHpdeBoVO57g2AGDxQbAL0yz1GMHH2gCM
Supplementals: https://www.youtube.com/playlist?list=PLHpdeBoVO57ihQd1afnKAEBubZDyMDa2o

Module Description

Modulbezeichnung OSS-ADAP (Advanced Design and Programming)
Dozenten Prof. Dr. Dirk Riehle, M.B.A.
Inhalt This course teaches principles and practices of advanced object-oriented design and programming.

Dieser Kurs wird auf Deutsch gehalten.

It consists of a weekly lecture with exercises, homework and self-study, totaling 4 SWS, 5 ECTS. This is a hands-on course and students should be familiar with their Java IDE.
Students learn the following concepts:

Class-Level

  • Method design
  • Class design
  • Classes and interfaces
  • Subtyping and inheritance
  • Implementing inheritance
  • Design by contract

Collaboration-Level

  • Values vs. objects
  • Role objects
  • Type objects
  • Object creation
  • Collaboration-based design
  • Design patterns

Component-Level

  • Error handling
  • Meta-object protocols
  • Frameworks and components
  • Domain-driven design
  • API evolution

The running example is the photo sharing and rating software Wahlzeit, see https://github.com/dirkriehle/wahlzeit.

Class is held as a three hour session with a short break in between. The class iterates over short lectures, discussion, and exercise chunks of 10-30min each. Students should bring a laptop with a well-working Java programming setup.

The overall schedule can be found at https://goo.gl/bePPn. Please sign up for the course on StudOn (link accessible through schedule spreadsheet) as soon as possible.

Voraussetzungen INF-AuD
Lernziele und
Kompetenzen
  • Learn to recognize, analyse, and apply advanced concepts of object-oriented design and programming
  • Learn to work with a realistic tool set-up, involving an IDE, configuration management, and a service hoster
Studien- und
Prüfungsleistungen
  • Exercise participation
  • Homework assignments
Unterrichtssprache Deutsch
Vorbereitende
Literatur
See https://goo.gl/BZpU8