Algorithmieren und Programmieren

Aufbauend auf einem intuitiven Algorithmenbegriff werden Grundprinzipien des Entwurfs und der Analyse von Algorithmen behandelt. Insbesondere werden Maße für die Effizienz von Algorithmen sowie Methoden für Aufwandsabschätzungen dargelegt. Ein wichtiger Aspekt ist dabei der Zusammenhang zwischen Algorithmen und geeigneten Datenstrukturen.

Am Beispiel der funktionalen Programmiersprache Haskell werden die Grundkonzepte von Programmiersprachen und deren Nutzung dargelegt. Programmierpraxis wird durch begleitende Programmieraufgaben erworben.

siehe auch Modulbeschreibung


Aktuelles

Bitte beachten Sie die hier im Laufe des Semesters veröffentlichten aktuellen Informationen.

  • Die erste Vorlesung findet am 05.04.2019 statt.
  • Die MOODLE-Anmeldung zur Lehrveranstaltung wird am 18.03.2019 aktiviert.
  • Die obligatorische Einschreibung für die Übungstermine erfolgt in MOODLE zur Lehrveranstaltung und wird nach der ersten Vorlesung am 05.04.2019 freigeschaltet. Bei Bedarf werden weitere Teilnahmeplätze freigegeben.
  • Die ersten Übungen und Laborübungen finden in der zweiten Vorlesungswoche (ab 08.04.2018) statt

Weitere Informationen entnehmen Sie bitte der Moodle-Seite.


Vorlesung

Die Vorlesung wird teilweise mit Rechnerunterstützung aber auch an der Tafel gehalten. In beiden Fällen müssen eigenständig Notizen angefertigt werden, um eine vollständige Vorlesungsmitschrift zu erhalten. Die Foliensätze der jeweils nächsten Vorlesungen werden rechtzeitig bereitgestellt, so dass Sie diese zuvor ausdrucken und dann während der Vorlesungen ergänzen können.

Die Vorlesungsmaterialien entnehmen Sie bitte der Moodle-Seite.


Übung

Die Übung dient der Vertiefung des Vorlesungsstoffes. Jeder Teilnehmer der Lehrveranstaltung meldet sich zu einem der angebotenen Übungstermine an. 

Übungsblätter: Im wöchentlichem Rhythmus werden im MOODLE-System Übungsblätter für diese Lehrveranstaltung bereitgestellt. Einige der Aufgaben werden während der Übung gemeinsam mit dem Tutor beispielhaft gelöst. Die übrigen Aufgaben müssen von den Übungsteilnehmern selbständig gelöst werden. Die Lösungen sind am Ende des jeweiligen Bearbeitungszeitraums abzugeben und werden an einem der folgenden Übungstermine vom Tutor korrigiert zurückgegeben.

Die Übungsaufgaben werden in Einzelarbeit gelöst, d.h. jeder Student muss eine Lösung bei seinem Tutor einreichen. Gern dürfen sich die Teilnehmer gegenseitig unterstützen und einander Sacheverhalte erklären. Dabei sollte aber bedacht werden, dass es das Ziel der Aufgaben ist, jeden Einzelnen bei der Vorbereitung auf die Klausur zu unterstützen. Durch Abschreiben von Lösungen ist daher niemandem geholfen.

Es müssen mindestens 75% der Punkte aus den Übungsblättern und den zwei Zwischentest erlangt werden, um zur Prüfung zugelassen zu werden.

Abgabe der Lösungen

Die Abgabe der Lösungen erfolgt grundsätzlich in digitaler Form per MOODLE. Geben Sie Ihre Lösungen am jeweiligen Abgabetag bis spätestens 15:30 Uhr ab. Verspätete Abgaben können nicht berücksichtigt werden!


Übungsblätter

Die Übungsblätter finden Sie im MOODLE-System.


Software

Die auf den Übungsblättern gestellten Programmieraufgaben sind bis auf einige Ausnahmen in der Programmiersprache Haskell zu lösen. Sie erhalten in den Übungen und Laborübungen bei Bedarf Hilfestellung zur Installation eines Haskell-Systems auf Ihrem eigenen Rechner.

Es sind verschiedene Haskell-Interpreter und -Compiler kostenlos im Internet verfügbar. Wir nutzen die Haskell Platform, welche den Glasgow Haskell Compiler (GHC) einschließlich der interaktiven Umgebung GHCi enthält.


Laborübung

Die Laborübungen finden im  PC-Pool 1 (Raum 0.03 und Raum 0.04 im Erdgeschoss des Informatikgebäudes VG1C) des Instituts für Informatik statt. Hier können sie unter Nutzung der vorhandenen Arbeitsplatzrechner oder mitgebrachter eigener Notebooks gemeinsam an der Lösung der Übungsaufgaben arbeiten. Außerdem ist ein Tutor anwesend, der auf Fragen eingeht und bei der Bewältigung aller Probleme hilft, welche die Bearbeitung der Übungsaufgaben und das Verständnis des Vorlesungsstoffes betreffen.

Im Unterschied zur Übung müssen Sie sich für die Laborübung nicht zu einem festen Termin anmelden. Die Tutoren werden darauf achten, dass die Laborübungen gleichmäßig ausgelastet sind und gegebenenfalls auf die anderen Termine verweisen.


Zwischentests

Während der Vorlesungszeit werden zwei Zwischentests (jeweils an einem Vorlesungstermin) durchgeführt, deren erfolgreiches Bearbeiten zusammen mit den Übungsblättern, Prüfungsvorraussetzung sind. Es müssen dabei 75% der Punkte aus Übungsblättern + den 2 Zwischentests erlangt werden, um zur Prüfung zugelassen zu werden.

Im Prüfungszeitraum wird eine Abschlussklausur durchgeführt, die die Prüfungsnote ergibt.

Die Termine für die Zwischentests und die Abschlussklausur entnehmen Sie bitte der Moodle-Seite.


Anmeldung

Die Teilnahme an der Lehrveranstaltung und der zugehörigen Prüfung setzt eine fristgemäße Prüfungsanmeldung sowie eine Anmeldung im Lehrveranstaltungsinformationssystem MOODLE voraus.

Prüfungsanmeldung

Die korrekte Anmeldung zur Prüfung muss von jedem Teilnehmer eigenverantwortlich durchgeführt werden. Studierende in modularisierten Studiengängen können sich typischerweise online für das Modul 12101 „Algorithmieren und Programmieren“ anmelden. Bitte beachten Sie die generellen Hinweise zur Prüfungsanmeldung.

MOODLE-Anmeldung

Zu Organisationszwecken ist eine Anmeldung zur Lehrveranstaltung „Algorithmieren und Programmieren“ in MOODLE für alle Teilnehmer verpflichtend. Bei der Anmeldung gehen Sie bitte wie folgt vor:

  • Melden Sie sich zur Lehrveranstaltung „Algorithmieren und Programmieren“ im Sommersemester 2019 (SoSe 2019) an. Die Einschreibung wird am 18.03.2019 aktiviert.
  • Treten Sie einer Übungsgruppe Ihrer Wahl bei. Die Anmeldung zu den Übungsterminen wird am Ende der ersten Vorlesung freigeschalten.

Fristen für die Anmeldung

Die Prüfungsanmeldung muss bei Studierenden in modularisierten Studiengängen typischerweise innerhalb der ersten drei Vorlesungswochen erfolgen. Ein Rücktritt von der Prüfungsanmeldung ist innerhalb der ersten sieben Vorlesungswochen möglich. Die Anmeldung zur Lehrveranstaltung in MOODLE ist ebenfalls während der ersten drei Vorlesungswochen freigeschaltet.


Literaturhinweise

Lehrbücher

  • Peter Pepper: Funktionale Programmierung in OPAL, HASKELL und GOFER. Springer, 2003
  • Manuel M. T. Chakravarty, Gabriele C. Keller: Einführung in die Programmierung mit Haskell. Pearson Studium, 2004
  • Simon Thompson: Haskell – The Craft of Functional Programming. Pearson Education, 1999
  • Peter Pepper: Programmieren lernen. Eine grundlegende Einführung mit Java. Springer, eXamen.press, 2007; im BTU-Netz online verfügbar
  • Ralf Hartmut Güting, Stefan Dieker: Datenstrukturen und Algorithmen. Teubner, 2003
  • Fethi Rabhi, Guy Lapalme: Algorithms – A Functional Programming Approach. Pearson Education, 1999

Online-Informationen

Weitere Literaturhinweise werden an entsprechender Stelle in der Vorlesung gegeben.


Kontakt

Scheuen Sie sich nicht, Fragen zu stellen oder auf Probleme hinzuweisen. Vieles lässt sich während der Präsenzzeiten (Vorlesung, Übung und Laborübung) klären. Bei weitergehenden oder dringenden Anliegen wenden Sie sich per E-Mail persönlich an uns.

Sven Löffler oder Petra Hofstedt