Programmieren I

Summary

Term
Winter 2012
ECTS
5 (also see course catalog)
Level
Bachelor
Instructors
Michael Rohs, Max Pfeiffer
Lecture Time
Fr. 9:00-11:00
Lecture Room
220 (UG), Hochhaus, Appelstr. 9A
Exercise Time
Fr. 11:00-12:00
Exercise Room
220 (UG), Hochhaus, Appelstr. 9A

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, dynamische 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 die richtigen Datenstrukturen dafür auswählt, wie man komplexe Aufgaben systematisch in kleinere Teilaufgaben zerlegt und wie man Korrektheitsüberlegungen anstellt. Als Basis für die Anschlussvorlesung Programmieren II werden die Grundzüge der Objektorientierung behandelt.

Course Objectives

  • Programmierkonzepte und Methoden kennen und verstanden haben
  • algorithmisches Denken, Abstraktionsvermögen
  • Programmierkompetenz und -fertigkeiten
  • Strukturieren von Programmierproblemen durch Objektorientierung

Lecture Calendar

Date
Topic
19. Oct.
Organisatorisches, Algorithmen, Beschreibungsebenen
26. Oct.
C-Sprachelemente, Compiler, Ein- & Ausgabe
2. Nov.
Datentypen, Wertebereiche, Ausdrücke, Operatoren
9. Nov.
C-Kontrollstrukturen
16. Nov.
Funktionen und Programmstruktur in C
23. Nov.
Pointer, Arrays, Strukturen
30. Nov.
Listen mit Pointern und Arrays
7. Dec.
Programmstruktur in Java, Java-Kontrollstrukturen
14. Dec.
Methoden in Java
21. Dec.
Java Arrays
11. Jan.
Zeichen und Strings in Java
18. Jan.
Klassen, Objektorientierung
25. Jan.
Dynamische Datenstrukturen, Rekursion
1. Feb.
Vererbung

Assignment Calendar

Date
Topic
19. Oct.
Algorithmen, Beschreibungsebenen

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