Module Computer Science 2, Computer Science (Bachelor) (ER 7)
Module summary

Computer Science 2


Prof. Dr. Christian Pape

9 ECTS points / 8 Contact hours

2nd Semester



The module is based on module "Informatik 1”. The students will learn to develop a computer science project using object oriented techniques in Java. They become acquainted with advanced analysis, design and realization competences as well as abstract data types and their implementation by data structures and algorithms. The students will learn to choose an appropriate data type depending on the application area and the given runtime conditions. Furthermore they will be familiar with graphical user interfaces and object-based programming with JavaScript.

Individual exams
Course Computer Science 2



Prof. Dr. Christian Pape



Written Exam 120 Min. (graded)

This lecture consists of four parts. The first one introduces basic concepts of object
oriented programming on the basis of the programming language Java. The main issues are among other things: Language elements of Java, data abstraction and encapsulation, inheritance, polymormism, generic programming, error handling an runtime typ information. Based on these techniques an introduction in modeling of class diagrams with UML is made. Additional practical exercises with a standard IDE adeepen the knowledge. The second part introduces the development of mobile Apps with graphical user interfaces for Android. The third part of the lecture deals with some important data structures like lists, hashtables, tree and graphs and introduces basic algorithms to operate on them. The forth part introduces the modularization of applications with Spring.

On the lecture homepage: PowerPoint presentation, program examples, script

  • Christian Ullenboom, Java ist auch eine Insel, Galileo Computing
  • R. C. Martin, Clean Code, mitp
  • B. Lahres, G. Raýman, Objektorientierte Programmierung, Galileo Computing
  • G. Popp, Konfigurationsmanagement mit Subversion, Maven und Redmine, dpunkt
  • M. Jeckle, C. Rupp, J. Hahn, B. Zengler, S. Queins, UML 2 - glasklar, Hanser-Verlag
  • G. Saake, K. Sattler, Datenstrukturen und Algorithmen: Eine Einführung mit Java, dpunkt
  • O. Zeigermann: "JavaScript für JavaEntwickler",
  • D. Flanagan: "JavaScript - kurz & gut", O‘Reilly
  • M. Haverbeke: "Eloquent JavaScript", kostenlos unter
  • JavaScript-Referenz:

Preparation of lecture contents and exam

Course Computer Science 2 Exercise



Dr. Martin Holzer
Prof. Dr. Christian Pape



Exercise 1 Semester (not graded)

The students solve Java and JavaScript exercises and model small applications using UML class diagrams.

Script, compulsory and optional exercises on the homepage, solutions for optional exercises

Practical exercise with discussion of solutions

Course Theoretical Computer Science 2



Prof. Dr. Heiko Körner



Written Exam 60 Min. (graded)

The course deals with the computational limits of modern computer systems, showing the undecidability and intractability of important problems.

Several computational conceps like Turing machines and WHILE-programs are presented. Other topics include the Church-Turing thesis, the theory of NP-completeness and zero-knowledge-proofs.

For this course some basics concerning theoretical computer science are required (regular languages, finite automata, O-calculus, etc.). This knowledge can be purchased in the lecture Theoretical Computer Science I.

The substance of the lecture will be discussed at the blackboard. Lecture notes containing the complete material are also available. Furthermore, there are sample solutions to all exercises.

Literature: D. W. Hoffmann: Theoretische Informatik, 3. Auflage. Hanser, 2015.

M. Sipser: Introduction to the Theory of Computation, 3rd edition. Cengage Learning, Inc., 2012.

This course will take place as a pure lecture. Numerous exercises deepen selected areas and will be discussed in tutorials.