Lehrver­anstaltung

AD - Algorithmen und Datenstrukturen


PDF Lehrveranstaltungsverzeichnis English Version: AD

Version: 2 | Letzte Änderung: 10.09.2019 15:53 | Entwurf: 0 | Status: vom verantwortlichen Dozent freigegeben

Langname Algorithmen und Datenstrukturen
Anerkennende LModule AD_BaTIN
Verantwortlich
Prof. Dr. Dieter Rosenthal
Professor Fakultät IME
Niveau Bachelor
Semester im Jahr Sommersemester
Dauer Semester
Stunden im Selbststudium 78
ECTS 5
Dozenten
Prof. Dr. Dieter Rosenthal
Professor Fakultät IME
Voraussetzungen Grundlagen der Programmierung in einer höheren Programmiersprache
Unterrichtssprache deutsch
separate Abschlussprüfung Ja
Literatur
Sedgewick, Robert: Algorithmen in C
Ottmann, Widmayer: Algorithmen und Datenstrukturen
Heun: Grundlegende Algorithmen
Wirth, Niklaus: Algorithmen und Datenstrukturen
Elektronische Verweise auf ebooks und Online Tutorials
Abschlussprüfung
Details
Die Studierenden sollen in einer schriftlichen Klausur folgende Kompetenzen nachweisen: 1.) Sicherer Umgang mit grundlegenden Begrifflichkeiten, Konzepten und Techniken, 2.) Anwendung programmiersprachlicher und abstrakterer Konstrukte zur Realisierung von Datenstrukturen und Alghorithmen, 3.) Prüfung von Lösungsvorschlägen auf Korrektheit. Typische Aufgabenformen zu 1.) sind Multiple-Choice-Fragen, Lückentexte, Bewertung von Aussagen hinsichtlich ihrer Korrektheit, zu 2.) Lösung kleinerer umgangssprachlich formulierter Probleme durch Programmstücke oder in abstrakterer Form und zu 3.) das Finden von Fehlern in Aussagen und vorgegebenen Programmstücken.
Mindeststandard
Mindestens 50% der möglichen Gesamtpunktzahl
Prüfungstyp
Die Studierenden sollen in einer schriftlichen Klausur folgende Kompetenzen nachweisen: 1.) Sicherer Umgang mit grundlegenden Begrifflichkeiten, Konzepten und Techniken, 2.) Anwendung programmiersprachlicher und abstrakterer Konstrukte zur Realisierung von Datenstrukturen und Alghorithmen, 3.) Prüfung von Lösungsvorschlägen auf Korrektheit. Typische Aufgabenformen zu 1.) sind Multiple-Choice-Fragen, Lückentexte, Bewertung von Aussagen hinsichtlich ihrer Korrektheit, zu 2.) Lösung kleinerer umgangssprachlich formulierter Probleme durch Programmstücke oder in abstrakterer Form und zu 3.) das Finden von Fehlern in Aussagen und vorgegebenen Programmstücken.

Lernziele

Kenntnisse
Konzepte der objektorientierten Programmierung in C++

grundlegende lineare und hierarchische Datenstrukturen in der Programmierung
Lineare Datenstrukturen (z.B. lineare Listen, verkettete Listen usw.)
Hierarchische Datenstrukturen (z.B. k-näre Bäume, binäre Suchbäume usw.)

Analyse der Komplexität von Algorithmen
Wichtige Suchalgorithmen
Funktionsweise wesentlicher Sortieralgorithmen

Fertigkeiten
Konzepte der objektorientierten Programmierung in C++ anwenden

Qualität von Datenstrukturen und Algorithmen einschätzen

Programmieren von Such- und Sortierverfahren
Aufwand Präsenzlehre
Typ Präsenzzeit (h/Wo.)
Vorlesung 1
Übungen (ganzer Kurs) 1
Übungen (geteilter Kurs) 1
Tutorium (freiwillig) 0
Besondere Literatur
keine/none
Besondere Voraussetzungen
Sicherer Umgang mit C und Java
Begleitmaterial
elektronische Vortragsfolien zur Vorlesung

elektronische Arbeitsblätter zu Übungen
elektronische Sammlung von Beispielprogrammen
Separate Prüfung
keine

Lernziele

Fertigkeiten
Datenstrukturen und Algorithmen für spezielle Anwendungen selbständig entwerfen
lineare und hierarchische Datenstrukturen in C++ implementieren
Sortieralgorithmen in C++ umsetzen
Suchalgorithmen in C++ realisieren
Anwendung der unter "Kenntnisse (fachliche Inhalte)" genannten Aspekte auf praxisbezogene Szenarien durch selbstständige Arbeit in kleinem Team.
Aufwand Präsenzlehre
Typ Präsenzzeit (h/Wo.)
Praktikum 1
Tutorium (freiwillig) 0
Besondere Literatur
keine/none
Besondere Voraussetzungen
Sicherer Umgang mit C oder Java
Begleitmaterial
keine/none
Separate Prüfung
Prüfungstyp
praxisnahes Szenario bearbeiten (z.B. im Praktikum)
Details
Die Studierenden schließen sich zu Kleingruppen zusammen. Jede Kleingruppe absolviert mehrere "Praktikumsrunden" mit zugewiesenen Laborterminen. In jeder Runde werden Programmieraufgaben gelöst.
Zur Vorbereitung eines Labortermins muss ein "Vorbereitungsblatt" praktisch gelöst werden. Die dabei erworbenen Kenntnisse werden zu Beginn des Termins geprüft (kurzer schriftlicher Eingangstest, persönliches Gespräch mit dem Betreuer). Wird diese Prüfung nicht bestanden, so muss ein Folgetermin wahrgenommen werden; im Wiederholungsfall führt dies zum Nichtbestehen des Praktikums. Im Erfolgsfall wird ein "Laborarbeitsblatt" mit weiteren Aufgaben unter Aufsicht (und ggf. mit Hilfestellung) bearbeitet.
Mindeststandard
Erfolgreiche Teilnahme an allen Laborterminen, d.h. insbesondere selbstständige (ggf. mit Hilfestellung) Lösung der Programmieraufgaben.

© 2022 Technische Hochschule Köln