Programmieren I

Summary

Term
Winter 2017
ECTS
5 (course catalog: lecture, exercise)
Level
Bachelor
Instructors
Michael Rohs, Tim Dünte, Beren Kaul
Lecture Time
Fr. 9:00-10:30
Lecture Room
Kinosaal 2, Astor Grand Cinema, Nikolaistraße 8, 30159 Hannover
Exercise Time
Fr. 10:45-11:30
Exercise Room
Kinosaal 2, Astor Grand Cinema, Nikolaistraße 8, 30159 Hannover

Course Description

Diese Vorlesung führt in das strukturierte Programmieren in C ein. Programmieren bedeutet, ein Problem so präzise zu beschreiben, dass ein Computer es lösen kann. Im ersten Teil werden wir eine Vorgehensweise verwenden, welche die Schritte Problembeschreibung, Datendefinition, Zweck und Funktionskopf, Beispiele, Implementierung, Test und Überarbeitung umfasst. Ausgehend von der Problembeschreibung überlegen wir, wie sich die für das Problem relevante Information der realen Welt als Daten im Programm repräsentieren lassen. Die Lösung des Problems erfolgt dann als Funktion. Die Zweckbeschreibung (z.B. "Wandelt Grad Celsius in Grad Fahrenheit um.") sagt aus, was die Funktion macht. Der Funktionskopf beschreibt die erforderlichen Eingabewerte und die Art des Ergebnisses. Beispiele helfen, das Verhalten der Funktion zu verstehen (z.B. "gegeben Eingabe 10, wird Ausgabe 50 erwartet"). Die Beispiele dienen auch als Testfälle, um die Implementierung der Funktion zu überprüfen.

Neben dieser Vorgehensweise lernen Sie fundamentale Konzepte von Programmiersprachen kennen (z.B. Iteration, Rekursion, Abstraktion, einfache Datenstrukturen) sowie Methoden, um über die Korrektheit und Effizienz eines Programms systematisch nachzudenken (z.B. Zusicherungen/Assertions). Das Lösen von Programmierproblemen erfordert das Verständis von Konzepten, aber 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 und geeignete Datenstrukturen auswählt. Aufbauend auf dieser Vorlesung werden in der Anschlussvorlesung Programmieren II 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 systematischen Entwurfs von einfachen Programmen
  • Fähigkeit des Strukturierens von einfachen Programmierproblemen

Materials

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