Programmieren I

Summary

Term
Winter 2013
ECTS
5 (course catalog: lecture, exercise)
Level
Bachelor
Instructors
Michael Rohs, Henning Pohl
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

Transponder-Ausgabe

Die Transponder-Ausgabe findet nach der ersten und zweiten Vorlesung statt: am 18.10. und 25.10., jeweils um 12:00 Uhr. Durch den persönlichen Transponder erhalten Sie Zugang zu den Rechnerräumen des Bereichs Informatik im Hauptgebäude. Vor Aushändigung des Transponders müssen Sie einen Pfandbetrag überweisen und den Einzahlungsbeleg mitbringen. Details finden Sie im Merkblatt.

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

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

Lecture Calendar

Date
Topic
18. Oct.
Organisatorisches, Algorithmen, Beschreibungsebenen
25. Oct.
C-Sprachelemente, Compiler, Ein- & Ausgabe
1. Nov.
Datentypen, Wertebereiche, Ausdrücke, Operatoren
8. Nov.
C-Kontrollstrukturen, Funktionen
15. Nov.
Programmstruktur in C, Zeiger, Listen
22. Nov.
Zeiger, Felder, Listen
29. Nov.
2D Arrays, Listen, Rekursion
6. Dec.
Dynamischer Speicher, Anwendung von Listen
13. Dec.
Java Programmstruktur, Kontrollstrukturen, Methoden
20. Dec.
Java Arrays, Zeichen und Strings in Java
10. Jan.
Klassen, Objektorientierung
17. Jan.
Dynamische Datenstrukturen
24. Jan.
Vererbung, Aufzählungen
31. Jan.
Ausblick, Zusammenfassung und Fragen

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