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

Computer Science 2

INFB2107

Prof. Dr. Christian Pape

9 ECTS points / 8 Contact hours

2nd Semester

none

none

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

INFB2117

Lecture

Prof. Dr. Christian Pape

German

4/4

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
Books:

  • 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", entwickler.press
  • D. Flanagan: "JavaScript - kurz & gut", O‘Reilly
  • M. Haverbeke: "Eloquent JavaScript", kostenlos unter http://eloquentjavascript.net/
  • JavaScript-Referenz: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference

Preparation of lecture contents and exam

Course Computer Science 2 Exercise

INFB2137

Exercise

Dr. Martin Holzer
Prof. Dr. Christian Pape

German

2/2

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

INFB2127

Lecture

Prof. Dr. Heiko Körner

German

3/2

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.