Nane Kratzke


Programming II

Published: 11 Mar 2021
Short: Prog II
Semester: SS 2020
Study: Computer Science

The course Programming II continues Programming I by introducing more sophisticated programming concepts for second-semester students. JAVA is used as a teaching language. (The C programming language is covered in a parallel thread of this course. However, this is not covered by this post.) Nevertheless, the principles apply to every (class-based) object-oriented programming language.

The course is given for students of the Computer Science/Software Engineering study programme at the L├╝beck University of Applied Sciences and will cover the following aspects:

  • Generics introducing concepts like generic classes and methods as well as concepts like type erasure
  • Recursive programming
  • Lambda programming
  • Graphical user interfaces (GUI) using Swing introducing MVC (model view controller) paradigma
  • Testing of software including introduction to contracts, unit testing and code coverage
  • Concurrent programming using threads introducing accompanying thread safeness problems like race conditions, producer-consumer problem, deadlocks.

Due to the Corona crisis, this course is given as a completely online course. Furthermore, this implicated a shift in course content across semester boundaries. Therefore, the course of the lecture no longer exactly follows the numbering of the units.


  • Unit 9: Generics
  • Unit 5: Recursive programming, Lambda programming
  • Unit 11: GUI and MVC
  • Unit 8: Testing (Self study due to Corona lockdown)
  • Unit 12: Concurrent programming (Self study due to Corona lockdown)
  • Catalogue of exercises: (Executable in Moodle using the Virtual Programming Laboratory (VPL))