Grundlagen der Programmierung im WS 2020/21
verantw. Hochschullehrer: | PD Dr. Henning Bordihn |
Voraussetzungen: | Keine. Diese Lehrveranstaltung sollte vor Algorithmen und Datenstrukturen, Praxis der Programmierung und muss vor Software Engineering 1 belegt werden. |
SWS: | 6 (2 V + 2 Ü + 2 Rechnerübungen) |
Credits: | 6 |
Übungen und Rechnerübungen
Ausgewählter Vorlesungsstoff wird in den Übungen gefestigt, geübt und vertieft. Zusätzlich werden verschiedene Beispiele während der Rechnerübungen in Python implementiert. Der sichere Umgang mit der Programmiersprache Python wird vor allem durch die Rechnerübungen erworben. Weiterhin dienen die Rechnerübungen in den ersten Wochen zum Kennenlernen des Betriebssystems UNIX/Linux.
Deshalb besucht jeder Teilnehmer eine der Übungen und eine der Rechnerübungen. Melden Sie sich unbedingt zu einer Übungsgruppe und zu einer Rechnerübungsgruppe in PULS an, damit die zugehörigen Prüfungsnebenleistungen verbucht werden können. Die Zuordnung zu den Gruppenzeiten erfolt aber ausschließlich in Moodle.
In den ersten drei Wochen dienen die Übungen als zusätzliche Rechnerübungen.
Der Besuch der Vorlesungen ist für die erfolgreiche Teilnahme an den Übungen und Rechnerübungen unerlässlich.
Inhalte
- Grundbegriffe der Informatik
- Hardware, Software, Programm, Prozess, Betriebssystem, Netzwerk
- Einführung in UNIX/Linux
- Prozesskonzept
- Dateisystem, Rechtemanagement
- Shell, Systemvariablen, Kommandosubstitution, Ein- und Ausgabeströme
- Einige UNIX-Werkzeuge
- Mathematische Grundlagen
- Relationen, Funktionen, Operationen
- mathematische Aussagen und Beweise
- Vom Problem zum Algorithmus
- Algortihmenbegriff
- Modellbildung/Abstraktion und Verfeinerung
- Graphen und ihre Repräsentation
- Pseudocode, Variablen, Kontrollstrukturen, grundlegende Datentypen
- Brute-Force-Algorithmen
- Komplexität und andere Gütekriterien
- Grenzen des algorithmisch Machbaren
- Vom Algorithmus zum Programm
- Imperative Programmierung
- Prozedurale Programmierung, Funktionen, Parameter, Aufruf-Stack
- Rekursion
- Objektorientierte Progammierung
- Funktionale Programmierung
- Progammierung mit Python
- Ausblick auf logische Programmierung
- Vom Programm zum Prozess
- Interpreter versus Compiler
- Assembler
- Algorithmen
- einfache numerische Algorithmen
- Algorithmen auf Graphen, vor allem Breiten- und Tiefensuche
- u.v.m.
Leistungserfassung
- In der 4. Lehrveranstaltungswoche ist in den Rechnerübungen ein Test zum sicheren Umgang mit dem Betriebssystem UNIX/Linux zu absolvieren. Dieser Test ist als Prüfungsnebenleistung für den Abschluss des Moduls (mit mindestens 50 Prozent) zu bestehen.
- Zur Vorbereitung auf die Übungen sind von jedem Teilnehmer ab der dritten Woche einfache Aufgaben zum Vorlesungsstoff zu lösen und via Moodle abzugeben. Ähnliche Aufgaben stehen als Übungsaufgaben auf Moodle bereit. Jede der abzugebenden Aufgaben muss mindestens zu 60% korrekt gelöst sein. Bis zu dreimal darf dieser Wert unterschritten werden. Diese Leistung gilt als Prüfungsnebenleistung und ist für die Zulassung zur Klausur notwendig.
- In der Prüfungszeit nach der Vorlesungszeit wird eine 120-minütige Klausur geschrieben (ohne Unterlagen).
- Zum Bestehen müssen 50 Prozent der Klausurpunkte erreicht werden.
- Eine aktive Teilnahme an den Übungen wird erwartet. Durch Beiträge zur Lösung der (nicht abzugebenden) Übungsaufgaben können Bonuspunkte für die Klausur erarbeitet werden. Der Kurs muss allerdings ohne Berücksichtigung der Bonuspunkte bestanden werden.
Literatur
Wird in der Vorlesung bekanntgegeben.