Programmieren I

Summary

Term
Winter 2014
ECTS
5 (course catalog: lecture, exercise)
Level
Bachelor
Instructors
Michael Rohs, Henning Pohl, Markus Krause
Choice 1:
 
Lecture Time
Fr. 9:00-10:45
Lecture Room
UG Hochhaus (Raum -220, Gebäude 3408), Appelstr. 9A
Exercise Time
Fr. 11:00-12:00
Exercise Room
UG Hochhaus (Raum -220, Gebäude 3408), Appelstr. 9A
Choice 2:
 
Exercise Time
Fr. 9:00-10:00
Exercise Room
Multimedia-Hörsaal (Raum 23, Gebäude 3703), Appelstr. 4
Lecture Time
Fr. 13:00-14:45
Lecture Room
Multimedia-Hörsaal (Raum 23, Gebäude 3703), Appelstr. 4

Course Description

Diese Vorlesung führt in das strukturierte Programmieren in C und Java ein. Programmieren bedeutet, ein Problem so präzise zu beschreiben, dass ein Computer es lösen kann. Dabei spielen Eigenschaften, wie Korrektheit, Effizienz und Wartbarkeit eine zentrale Rolle. Die Teilnehmer lernen fundamentale Konzepte von Programmiersprachen kennen (z.B. Rekursion, einfache Datenstrukturen, Datenabstraktion und Vererbung) sowie Methoden, um über die Korrektheit und Effizienz eines Programms systematisch nachzudenken. Neben dem Methodenwissen erfordert das Lösen von Programmierproblemen auch Kreativität und Erfahrung. In den Übungen werden praktische Programmierfertigkeiten erarbeitet und algorithmisches Denken geschult. Dazu gehört z.B., wie man für eine gegebene Aufgabe einen Algorithmus formuliert, wie man geeignete Datenstrukturen dafür auswählt, wie man komplexe Aufgaben systematisch in kleinere Teilaufgaben zerlegt. Als Basis für die Anschlussvorlesung Programmieren II werden die Grundzüge der Objektorientierung behandelt.

Course Objectives

  • grundlegende Programmierkonzepte und Methoden kennen und verstanden haben
  • algorithmisches Denken, Abstraktionsvermögen
  • Programmierkompetenz und -fertigkeiten
  • Fähigkeit des Strukturierens von einfachen Programmierproblemen

Lecture Calendar

Date
Topic
17. Oct.
Organisatorisches, Algorithmen, Beschreibungsebenen
24. Oct.
C Sprachelemente, Compiler, Ein- & Ausgabe
31. Oct.
Datentypen, Wertebereiche, Ausdrücke, Operatoren
7. Nov.
C Kontrollstrukturen, Felder
14. Nov.
C Programmstruktur, Funktionen, Rekursion
21. Nov.
Strukturen, Zeiger, Listen, Unions
28. Nov.
Dynamischer Speicher, Funktionszeiger
5. Dec.
Anwendung von Listen, Speicherverwaltung
12. Dec.
Java Programmstruktur, Kontrollstrukturen, Methoden
19. Dec.
Java Arrays, Zeichen und Strings in Java
9. Jan.
Reguläre Ausdrücke, Lambda-Ausdrücke
16. Jan.
Klassen, Objektorientierung
23. Jan.
Dynamische Datenstrukturen
30. Jan.
Vererbung, Aufzählungen, Zusammenfassung

Materials

  • Hanspeter Mössenböck: Sprechen Sie Java?: Eine Einführung in das systematische Programmieren. dpunkt.verlag, 3. Auflage, 2005.
  • Brian Kernighan and Dennis Ritchie: The C Programming Language. Prentice Hall, second edition, 1988.

Slides, assignments and other materials are available via Stud.IP