Advanced Programming Techniques (WS 16/17)

Programming is a most challenging task.

Edsger W. Dijkstra (1930‚Äď2002), one of the pioneers of computer science, was once asked why he became a programmer when he was a brilliant student of physics. He replied: "I concluded that of theoretical physics and programming, programming embodied the greater intellectual challenge".


Professional software development requires more skills than knowing the syntax of a programming language:

  • Developing software solutions for complex requirements
  • Implementing robust, maintainable, and high-performance applications
  • Mastering modern, professional development tools

Those skills are the focus of the course Advanced Programming Techniques (APT) (Module Description).

We will use the Java programming language for practising those skills. 




Structure of lectures (Slides of current lectures for download):

  1. Introduction, Java Crash Course
  2. Unit Testing
  3. Interfaces
  4. Software Categories
  5. Documenting 
  6. Components
  7. A Reference Architecture for Business Information Systems
  8. Software Development Infrastructure
  9. Debugging, Tracing, Logging
  10. Exception Handling
  11. Refactoring
  12. Design Patterns
  13. Test Exam ; Sample solution (fragment)
  14. Functional Programming


Lectures are video recorded and can be donwloaded from . Log in with h_da user id and password (enrolment key: aptwise2016/17 ).



The lab will be interleaved with the lecture. You will need to bring your own notebook computer. Please, install all software required as documented in the installation manual


Lab assignments for download:

  1. Introduction to IDE, unit testing
  2. Interfaces ;   Code reading
  3. Software categories
  4. Components
  5. A reference architecture for business information systems
  6. Implementing application components
  7. Implementing application services
  8. Debugging, Tracing, Logging
  9. Exception Handling
  10. Refactoring
  11. Design Patterns
  12. Functional Programming





There will be a practical programming examination at the end of the semester.