Welcome to the JfAP Workspace

This course is for students with programming experience, not necessarily in Java. For those who have never used Java,  we suggest to get up to speed by looking at the following online course, specifically, chapters 5 to 20. We're not assuming you know all of this by heart, but you should have seen the concepts described there and be able to get back to them if needed. The quizzes and exercises will give you a good head start.


What you will learn in this course

Advanced concepts of Java, like object-oriented programming and some functional
programming, concurrent programming (threads and the means to control and tame
them), and some software engineering and design principles that should help you
writing better software, such as

  • Using basic tools
    • distributed version control (git)
    • build tools (maven)
    • unit tests (JUnit)
    • logging (SLF4J, Log4j, ...)
  • Test-driven programming
  • Object-oriented principles (SOLID, and others)
  • Design Patterns (Observers, Listeners, Factories, Façades, ...)

Christian Willms (christian.willms @ dfki.de)
Bernd Kiefer (kiefer @ dfki.de)