The course provides the foundation of the design and analysis of algorithms. The material is introduced using classical algorithmic problems including graph problems. The necessary basic introduction to graph theory is provided as part of this course.
Learning objective
An understanding of the design and analysis of fundamental algorithms and data structures. A basic understanding of graph theory and several basic graph algorithms.
Content
This course is an introduction into the design and analysis of algorithms. On the one hand this includes classical algorithm design patterns including induction, divide-and-conquer and dynamic programming. We study these using classical example such as searching and sorting. On the other hand the course covers the interaction between algorithms and data structures including linked lists, search trees, heaps, and union-find structures. A particular focus are graph algorithms for shortest path and minimal spanning tree problems. We provide the necessary introduction into graph theory as part of this course.
Lecture notes
A complete script in German is under development. A complete draft is already available on the course website.
Literature
Abgesehen vom Skript und Vorlesungsunterlagen empfehlen wir die folgenden Bücher als zusätzliches Nachschlagewerk.
Th. Ottmann, P. Widmayer: Algorithmen und Datenstrukturen, Spektrum-Verlag, 5. Auflage, Heidelberg, Berlin, Oxford, 2011
Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein: An Introduction to Algorithms, 3rd edition, MIT Press, 2009
Performance assessment
Performance assessment information (valid until the course unit is held again)
Performance assessment as a semester course
In examination block for
Bachelor's Degree Programme in Computer Science 2016; Version 07.04.2022 (First Year Examination Block 1)
The performance assessment is offered every session. Repetition possible without re-enrolling for the course unit.
Mode of examination
written 120 minutes and 180 minutes
Additional information on mode of examination
Während des Semesters können durch aktive Mitarbeit Bonuspunkte erarbeitet werden. Die Veranstaltung bietet als "Leistungselement" (im Sinne der WEISUNG: Anwendung von Leistungselementen in der Lehre vom 22.12.2017) zwei Arten von Lernelementen an. Die einen Lernelemente sind Bonusaufgaben und klar markierter Teil der wöchentlichen Aufgabensammlung. In maximal 13 Wochen wird es Bonusaufgaben geben. Das andere Lernelement ist Peer Feedback, d.h., die Korrektur der Bonusaufgaben von Kommilitonen in den wöchentlichen Übungen. Die durch die Lernelemente erworbenen Punkte verbessern das Ergebnis der schriftlichen Prüfung um maximal 0.25 Notenpunkte, wobei für dieses Maximum nicht die Maximalpunktzahl erforderlich ist.
Unehrliches Verhalten bei der Bearbeitung der Lernelemente (z.B., Kopieren der Lösungen von Kommilitonen oder anderen Quellen, zur Verfügung stellen der eigenen Lösungen zum Kopieren) haben ernste Konsequenzen inklusive der Aberkennung aller Bonuspunkte dieser Veranstaltung.
Die Prüfung wird an zwei verschiedenen Daten stattfinden: 1) Schriftliche Prüfung auf Papier: 120 Min. und 2) Computerbasierte Online-Prüfung: 180 Min.
Written aids
keine
Digital exam
The exam takes place on devices provided by ETH Zurich.
Distance examination
It is not possible to take a distance examination.
If the course unit is part of an examination block, the credits are allocated for the successful completion of the whole block. This information can be updated until the beginning of the semester; information on the examination timetable is binding.