Module Computer Science 2, INFB (ER 7)Module Computer Science 2, Bachelor Course Computer Science (ER 7)

Module summary
Module name:
Internal number:
Coordinator:
Extent:
Semester:
Pre-requisites with regard to content: none
Pre-requisites according to the examination regulations:
none
Competencies:

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.

Assessment:
Individual exams
Course: Computer Science 2
Internal number: INFB2117 Type/mode: Lecture
Lecturer:
Prof. Dr. Christian Pape
Language of instruction:
German
Credits (ECTS): 4 Contact hours: 4
Assessment: Written Exam 120 Min. (graded)
Content:

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.

Recommended reading:

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

Preparation of lecture contents and exam

Course: Computer Science 2 Exercise
Internal number: INFB2137 Type/mode: Exercise
Lecturers:
Dr. Martin Holzer
Prof. Dr. Christian Pape
Language of instruction:
German
Credits (ECTS): 2 Contact hours: 2
Assessment: Exercise 1 Semester (not graded)
Content:

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

Recommended reading:

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

Comments:

Practical exercise with discussion of solutions

Course: Theoretical Computer Science 2
Internal number: INFB2127 Type/mode: Lecture
Lecturer:
Prof. Dr. Heiko Körner
Language of instruction:
German
Credits (ECTS): 3 Contact hours: 2
Assessment: Written Exam 60 Min. (graded)
Content:

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.

Recommended reading:

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.

Comments:

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