Skip to content

ke45xumo/adap-course

 
 

Repository files navigation

Advanced Design and Programming (ADAP)

https://dirkriehle.com/open-courses/advanced-design-and-programming/

This course teaches principles and practices of advanced object-oriented design and programming.

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 concepts

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

Collaboration-level concepts

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

Component-level concepts

  • Error and exception 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.

Watch the videos on my YT channel at https://www.youtube.com/dirkriehle

About

A course on advanced object-oriented design and programming

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 100.0%