Algorithmen und Datenstrukturen
A1. Organisatorisches
Marcel L¨ uthi and Gabriele R¨ oger
Universit¨ at Basel
3. M¨ arz 2021
M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 3. M¨arz 2021 1 / 32
Algorithmen und Datenstrukturen
3. M¨ arz 2021 — A1. Organisatorisches
A1.1 Organisatorisches
A1.2 ¨ Uber diese Vorlesung
A1. Organisatorisches Organisatorisches
A1.1 Organisatorisches
M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 3. M¨arz 2021 3 / 32
Personen: Dozenten
Marcel L¨ uthi Gabriele R¨ oger Dozenten
Dr. Marcel L¨ uthi
I E-Mail: marcel.luethi@unibas.ch I B¨ uro: Raum 04.002, Spiegelgasse 1 Dr. Gabriele R¨ oger
I E-Mail: gabriele.roeger@unibas.ch
I B¨ uro: Raum 04.005, Spiegelgasse 1
A1. Organisatorisches Organisatorisches
Personen: Tutoren
Renato Farruggio
I E-Mail: renato.farruggio@unibas.ch I Fr 14:15-16:00
Jan Sch¨ onholz
I E-Mail: jan.schoenholz@unibas.ch I Mi, 10:15-12:00
Joey Zgraggen
I E-Mail: joey.zgraggen@unibas.ch I Di 14:15-16:00
M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 3. M¨arz 2021 5 / 32
Zeit & Ort
Vorlesungen
I Mi 14:15-16:00 Uhr, Zoom I Do 14:15-16:00 Uhr, Zoom
Ubungen ¨ I Zoom
I Di 14:15-16:00 I Mi 10:15-12:00 I Fr 14:15-16:00
Erster ¨ Ubungstermin 5./9./10. M¨ arz
A1. Organisatorisches Organisatorisches
¡¡¡¡¡¡¡ HEAD =======
M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 3. M¨arz 2021 7 / 32
Wahl der ¨ Ubungsgruppe
I Bitte tragen Sie Ihre Pr¨ aferenzen in courses.dmi.unibas.ch/ ein.
I Es m¨ ussen alle 3 Pr¨ aferenzen angegeben werden.
A1. Organisatorisches Organisatorisches
¿¿¿¿¿¿¿ 6bfa01a2b87efc8b48ba167c2a031d7a768e354b
M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 3. M¨arz 2021 9 / 32
Vorlesung im Web
Vorlesungsseite
https://dmi.unibas.ch/de/studium/
computer-science-informatik/lehrangebot-fs21/
vorlesung-algorithmen-und-datenstrukturen/
I Vorlesungsbeschreibung I Folien
I Zusatzmaterial (nicht pr¨ ufungsrelevant) Anmeldung:
I https://services.unibas.ch/
I Bitte registrieren Sie sich gleich heute,
um alle kursrelevanten Informationen zu erhalten.
I Bitte tragen Sie sich auch f¨ ur eine ¨ Ubungsgruppe ein
(unter https://courses.dmi.unibas.ch). → jetzt
A1. Organisatorisches Organisatorisches
Wahl der ¨ Ubungsgruppe
I Bitte tragen Sie Ihre Pr¨ aferenzen in https://courses.dmi.unibas.ch ein.
I Es m¨ ussen alle 3 Pr¨ aferenzen angegeben werden.
M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 3. M¨arz 2021 11 / 32
Vorlesungsmaterialien
Vorlesungsmaterialien:
I Vorlesungsfolien (online) I Lehrbuch
I vertiefendes Material auf Anfrage Lehrbuch
Algorithmen
von Robert Sedgewick und Kevin Wayne
(Pearson Verlag, 4. Auflage)
A1. Organisatorisches Organisatorisches
Weitere n¨ utzliche Ressourcen
I Seite zum Buch: Algorithms, 4th edition:
https://algs4.cs.princeton.edu/home/
I Youtube (Suchbegriff: Robert Sedgewick algorithms) I Data Structures and Algorithms – The Basic Toolbox
von Kurt Mehlhorn und Peter Sanders (Springer Verlag) http://people.mpi-inf.mpg.de/~mehlhorn/Toolbox.html I Google, Wikipedia, ...
M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 3. M¨arz 2021 13 / 32
Zielgruppe
Zielgruppe:
I Bachelor Informatik (ab 2. Semester)
I Bachelor Computational Sciences (ab 2. Semester) I Alle Studierenden mit Programmierkenntnissen
sind herzlich willkommen.
Voraussetzungen:
I Programmierung (Java)
A1. Organisatorisches Organisatorisches
Programmiersprachen
I Vorlesung: Haupts¨ achlich Python
→ Vorteil: Kompakt und direkt, ideal f¨ ur kleine Programme I Ubungen: Java oder Python (nach Ank¨ ¨ undigung)
Es werden keine Python-Kenntnisse vorausgesetzt!
M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 3. M¨arz 2021 15 / 32
Ubungen ¨
Ubungsaufgaben: ¨
I Hausaufgaben (Theorie + Praxis)
Ubungstermine: ¨
I Vorbesprechung der Hausaufgaben
I Beantwortung von Fragen zum aktuellen Blatt I Technische Hilfestellung (Java/Python,
Programmierumgebung) I Nachbesprechung der ¨ Ubungen
I Teilnahme freiwillig - aber sehr empfohlen.
A1. Organisatorisches Organisatorisches
Ubungen: Hausaufgaben ¨
Hausaufgaben:
I Aufgaben ab Donnerstagabend auf Adam verf¨ ugbar.
I Bearbeitung in Zweiergruppen (2 6= 3)
I Abgabe freitags in Folgewoche (23:59) auf Adam
I Besprechung und individuelles Feedback in ¨ Ubungsgruppe
M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 3. M¨arz 2021 17 / 32
Discord-Server
I Fragen k¨ onnen auf dem Vorlesungs-Discord-Server diskutiert werden.
I Idee: Kursteilnehmer helfen sich gegenseitig.
I Dozierende k¨ onnen auf Anfrage mithelfen.
Erkl¨ aren und helfen heisst lernen!
A1. Organisatorisches Organisatorisches
Pr¨ ufung
I schriftliche Pr¨ ufung
I voraussichtlich Mo, 14. Juni 2020, 14-16 Uhr I 8 Kreditpunkte
I Zulassung:
I Alle bis auf h¨ ochstens drei ¨ Ubungsbl¨ atter (8 von 11) erfolgreich bearbeitet
I ” erfolgreich bearbeitet“ = mind. 60% der Punkte I Note basiert nur auf Klausur
I keine Wiederholungspr¨ ufung
Pr¨ ufungsvorbesprechung am letzten Vorlesungstermin (3.6.2021, 14:15-16:00)
M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 3. M¨arz 2021 19 / 32
Plagiate
Plagiat (Wikipedia)
Ein Plagiat ([. . . ] aus lateinisch plagiarius, deutsch
” See- lenverk¨ aufer, Menschenr¨ auber“) ist die Anmaßung fremder geistiger Leistungen. Dies kann sich auf die ¨ Ubernahme fremder Texte oder anderer Darstellungen [. . . ], fremder Ideen [. . . ] oder beides gleichzeitig [. . . ] beziehen.
Folge:
I 0 Punkte f¨ ur ¨ Ubungsblatt (beim ersten Mal)
I Nicht-Zulassung zur Pr¨ ufung (im Wiederholungsfall)
Hilfe von Kolleg*innen/Internet? Gerne. Aber L¨ osungscode nicht anschauen und niemals kopieren.
Aufgaben zu schwer? Wir helfen gerne!
A1. Organisatorisches Organisatorisches
Laptops
Wir sitzen offensichtlich vor einem Computer.
Aber Vorsicht:
M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 3. M¨arz 2021 21 / 32
Jupyter-Notebooks
Web-basierte interaktive Arbeitsumgebung f¨ ur Python Nutzung von Jupyter-Notebooks:
I Erkl¨ arungen zu Algorithmen I Implementation von
Algorithmen I Ideal zum
Experimentieren und Lernen
I Mini¨ ubungen w¨ ahrend der
Vorlesung
A1. Organisatorisches Organisatorisches
Jupyter-Notebooks – Installation
I (Einfache) manuelle Installation erforderlich I Empfehlung: Installation via Annaconda
I Gleiche Umgebung wie bei
Erweiterte Grundlagen der Programmierung
I Installationsanleitung:
https://jupyter.readthedocs.io/en/latest/install/
notebook-classic.html
M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 3. M¨arz 2021 23 / 32
Fragen zur Organisation
Fragen?
A1. Organisatorisches Uber diese Vorlesung¨
A1.2 ¨ Uber diese Vorlesung
M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 3. M¨arz 2021 25 / 32
A1. Organisatorisches Uber diese Vorlesung
Algorithmen und Datenstrukturen
I Bestimmte Grundbausteine ben¨ otigt man immer wieder bei Programmierprojekten, z.B.
I Sortierverfahren I Suchb¨ aume
I Priorit¨ atswarteschlangen I k¨ urzeste Pfade in Graphen I . . .
I Wird oftmals durch Bibliotheken fertig bereitgestellt.
I Hier lernen Sie . . .
I wie das alles intern funktioniert.
I wie man den richtigen Baustein ausw¨ ahlt.
I Tricks und Kniffe f¨ ur effiziente Programme.
I Methoden unabh¨ angig von konkreter Programmiersprache
A1. Organisatorisches Uber diese Vorlesung¨
Beispiel: Sortieralgorithmen
I Aufgabe: Bringe Sequenz von Elementen in aufsteigende Reihenfolge, z.B.
Eingabe [5, 9, 3, 5] → Ausgabe [3, 5, 5, 9]
I 1960er Jahre (und noch lange danach):
ein Viertel der kommerziell verbrauchten Rechenzeit f¨ ur Sortiervorg¨ ange
I Naiver Algorithmus: Selectionsort
M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 3. M¨arz 2021 27 / 32
A1. Organisatorisches Uber diese Vorlesung
Selectionsort: Informell
0 1 2 3 4 5 6 7
n = 8
I Finde kleinstes Element an Positionen 0, . . . , n − 1 und tausche es an Position 0
I Finde kleinstes Element an Positionen 1, . . . , n − 1 und tausche es an Position 1
I . . .
I Finde kleinstes Element an Positionen n − 2, . . . , n − 1
und tausche es an Position n - 2
A1. Organisatorisches Uber diese Vorlesung¨
Selectionsort: Beispiel
3 7 2 9 7 1 4 5
1 7 2 9 7 3 4 5
1 2 7 9 7 3 4 5
1 2 3 9 7 7 4 5
1 2 3 4 7 7 9 5
1 2 3 4 5 7 9 7
1 2 3 4 5 7 9 7
1 2 3 4 5 7 7 9
M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 3. M¨arz 2021 29 / 32
A1. Organisatorisches Uber diese Vorlesung
Sortieralgorithmen: Laufzeit
← geschickter Algorithmus
- geschickte Datenstruktur
A1. Organisatorisches Uber diese Vorlesung¨
Der Kurs Algorithmen und Datenstrukturen
M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 3. M¨arz 2021 31 / 32
A1. Organisatorisches Uber diese Vorlesung