<?xml version="1.0" encoding="ISO-8859-1" standalone="yes" ?>
<document>
<title>Programming 2</title>
<cid>DFIW-PRG2</cid>
<sapsubmodule>P610-0190</sapsubmodule>
<bkey>dfi3</bkey>
<ctypes>
<hours>4</hours>
<type>V</type>
<hours>2</hours>
<type>P</type>
</ctypes>
<cp>8</cp>
<semester>4</semester>
<mandatory>yes</mandatory>
<language>German</language>
<exam>Written exam</exam>
<curriculum>
<curriculum_entry>
<cid>DFIW-PRG2</cid>
<branch>Computer Science and Web Engineering</branch>
<semester>4</semester>
<mandatory_tag>mandatory course</mandatory_tag>
</curriculum_entry>
<curriculum_entry>
<cid>PIB-PR2</cid>
<branch>Applied Informatics</branch>
<semester>4</semester>
<mandatory_tag>mandatory course</mandatory_tag>
</curriculum_entry>
<curriculum_entry>
<cid>PIB-PR2</cid>
<branch>Applied Informatics</branch>
<semester>4</semester>
<mandatory_tag>mandatory course</mandatory_tag>
</curriculum_entry>
</curriculum>
<workload>
90 class hours (= 67.5 clock hours) over a 15-week period.The total student study time is 240 hours (equivalent to 8 ECTS credits).There are therefore 172.5 hours available for class preparation and follow-up work and exam preparation.</workload>
<prerequisites>
<prerequisite>
<pfcid>DFIW-PRG1</pfcid>
<pftitle>Programming 1</pftitle>
</prerequisite>
</prerequisites>
<prerequisitesfor>
</prerequisitesfor>
<convenor>Prof. Dr. Markus Esch</convenor>
<convenor-person-key>mes</convenor-person-key>
<lecturers>
<lecturer>Prof. Dr. Markus Esch</lecturer>
<lecturer-person-key>mes</lecturer-person-key>
</lecturers>
<objectives>This module is based on the &quot;Programming 1&quot; module and will help students deepen their knowledge and understanding of object-oriented programming. 

After successfully completing this module, students will be able to explain and apply advanced concepts of object-oriented programming in Java. They will be able to design and implement object-oriented solutions. 

Based on the theoretical knowledge of data structures from the Informatics 1 module, students will be able to implement and apply different data structures. In addition, they will also be able to select the data structure that is most suitable for an application scenario. 

In addition to deepening their knowledge of object-oriented programming, students will learn the basic concepts of the programming language C. They will be able to name the concepts and characteristics of imperative programming in C. Students will be able to explain the differences, as well as the advantages and disadvantages of object-oriented and type-safe languages such as C and will be able to apply this knowledge to the implementation of C programs. 

Within the framework of practical exercises, students will learn to work together in small groups. </objectives>
<content>- Advanced object-oriented programming concepts in Java
  o Recursion
  o Generics
  o Annotations
  o Reflection
  o Lambda expressions
  o Implementation aspects of trees, graphs and lists
  o Java Collections Framework
  o Streams
- C programming
  o The structure of a C program
  o Expressions, operators, control structures and functions
  o Basic and structured data types
  o Pointers and pointer arithmetic
  o Storage management
  o Preprocessors, compilers, linkers, debuggers, make
  o Using libraries
  o Complex data structures in C</content>
<media>Lecture slides, annotated lecture slides as a script, program examples, project work</media>
<literature>G. KRÜGER, H. HANSEN: Java Programmierung _ Das Handbuch zu Java 8, O´Reilly, 2014

R-G. URMA, M. FUSCO, A.MYCROFT: Java 8 in Action: Lambdas, Streams, and Functional-Style Programming, Manning Pubn, 2014

A. SOLYMOSI, U. GRUDE: Grundkurs Algorithmen und Datenstrukturen in JAVA: Eine Einführung in die praktische Informatik, Springer, 2014
 
B.W. KERNIGHAN, D. RITCHIE: The C Programming Language, Prentice Hall, 2nd Edition, 1988
 
D. Logofatu: Einführung in C: Praktisches Lern- und Arbeitsbuch für Programmieranfänger, Springer, 2. Auflage, 2016</literature>
<offered>
</offered>
<moduldb-query>Mon Jun 15 23:23:19 CEST 2026, CKEY=pp2, BKEY=dfi3, CID=[?], LANGUAGE=en, DATE=15.06.2026</moduldb-query>
</document>
