im QIS
Übersicht
Semester | Winter 2020 |
ECTS | 5 |
Level | Bachelor |
Zeit Vorlesung | Fr 9:00-10:30 |
Raum Vorlesung | BigBlueButton |
Zeiten Übung | mehrere Kleingruppen in Präsenzform, Online-Tutorien |
Räume Übung | BigBlueButton |
Beschreibung
Diese Vorlesung führt in das strukturierte Programmieren ein. Programmieren bedeutet, ein Problem so präzise zu beschreiben, dass ein Computer es lösen kann. Im ersten Teil werden wir eine Vorgehensweise kennen lernen, die aus den Schritten Problembeschreibung, Datendefinition, Zweckbeschreibung und Funktionskopf, Beispiele, Implementierung, Test und Überarbeitung besteht. Ausgehend von der Problembeschreibung überlegen wir, wie sich die für das Problem relevanten Informationen aus der realen Welt als Daten im Programm repräsentieren lassen. Die Zweckbeschreibung (z.B. "wandelt Grad Celsius in Grad Fahrenheit um") sagt aus, was das Programm leistet. Der Funktionskopf beschreibt die erforderlichen Eingabewerte und die Art des Ergebnisses. Vorbedingungen beschreiben mögliche Einschränkungen und Nachbedingungen definieren, was das Programm sicherstellt. Beispiele helfen, das Verhalten des Programms zu verstehen (z.B. "gegeben die Eingabe 10, wird die Ausgabe 50 erwartet"). Die Beispiele dienen auch als Testfälle, um die Implementierung zu überprüfen.
Neben dieser Vorgehensweise werden fundamentale Konzepte der Programmierung behandelt (z.B. Iteration, Rekursion, Abstraktion, einfache Datenstrukturen) sowie Methoden, um über die Korrektheit und Effizienz eines Programms systematisch nachzudenken (z.B. Vor- und Nachbedingung, Zusicherungen). Als einführende Programmiersprache werden wir PostFix und im Hauptteil C verwenden. Das Lösen von Programmierproblemen erfordert das Verständnis 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 <link de lehre lehrveranstaltungen programmieren-2>Programmieren 2 die Grundzüge der Objektorientierung behandelt.
Lernziele
- grundlegende Programmierkonzepte und Methoden kennen und verstanden haben
- algorithmisches Denken einüben
- Programmierkompetenz und Programmierfertigkeiten erlangen
- Fähigkeit des systematischen Entwurfs von einfachen Programmen
- Fähigkeit des Strukturierens von einfachen Programmierproblemen
Materialien
- PostFix Enführung und Entwicklungsumgebung
- Design Recipes in PostFix
- Programming I C Library
- Design Recipes in C
- Brian Kernighan and Dennis Ritchie: The C Programming Language. Prentice Hall, second edition, 1988.