• Keine Ergebnisse gefunden

Algorithmen und Datenstrukturen

N/A
N/A
Protected

Academic year: 2022

Aktie "Algorithmen und Datenstrukturen"

Copied!
8
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

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

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 3. M¨arz 2021 2 / 32

A1. Organisatorisches Organisatorisches

A1.1 Organisatorisches

A1. Organisatorisches Organisatorisches

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

(2)

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

A1. Organisatorisches Organisatorisches

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

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 3. M¨arz 2021 6 / 32

A1. Organisatorisches Organisatorisches

¡¡¡¡¡¡¡ HEAD =======

A1. Organisatorisches Organisatorisches

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.

(3)

¿¿¿¿¿¿¿ 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

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 3. M¨arz 2021 10 / 32

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.

A1. Organisatorisches Organisatorisches

Vorlesungsmaterialien

Vorlesungsmaterialien:

I Vorlesungsfolien (online) I Lehrbuch

I vertiefendes Material auf Anfrage Lehrbuch

Algorithmen

von Robert Sedgewick und Kevin Wayne

(Pearson Verlag, 4. Auflage)

(4)

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

A1. Organisatorisches Organisatorisches

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)

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 3. M¨arz 2021 14 / 32

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!

A1. Organisatorisches Organisatorisches

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.

(5)

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!

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 3. M¨arz 2021 18 / 32

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)

A1. Organisatorisches Organisatorisches

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.

(6)

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

A1. Organisatorisches Organisatorisches

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

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 3. M¨arz 2021 22 / 32

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

A1. Organisatorisches Organisatorisches

Fragen zur Organisation

Fragen?

(7)

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

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 3. M¨arz 2021 26 / 32

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

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

(8)

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

M. L¨uthi, G. R¨oger (Universit¨at Basel) Algorithmen und Datenstrukturen 3. M¨arz 2021 30 / 32

A1. Organisatorisches ¨Uber diese Vorlesung

Der Kurs Algorithmen und Datenstrukturen

A1. Organisatorisches Uber diese Vorlesung¨

Inhalt dieser Veranstaltung

A&D

Sortieren Komplexit¨ ats-

analyse Fundamentale Datenstrukturen

Suchen Graphen

Strings

Referenzen

ÄHNLICHE DOKUMENTE

Wir nennen einen Algorithmus deterministisch wenn bei gleicher Eingabe exakt dieselben Schritte/Zust¨ ande durchlaufen werden..

▸ Alle Knoten (außer der Wurzel) besitzen einen Elternknoten (oder Vaterknoten) und sind ihrerseits Kinder dieses Knotens.. ▸ Wir unterscheiden zwischen Bl¨ attern und

Ein Suchbaum ist ein bin¨arer Baum, in dem (1) alle Knoten ein Attribut key besitzen, und (2) f¨ur alle Knoten n gilt:.. 1. n.key > m.key f¨ur jeden Knoten m im

Auch bei guten Hash-Funktionen treten immer noch Kollisionen auf (Taubenschlagprinzip), und wir m¨ussen sie behandeln. L¨osung

Ein (bin¨ arer) min-Heap ist ein vollst¨ andiger bin¨ arer Baum, bei dem gilt, dass der Wert in jedem Knoten kleiner gleich dem Wert seiner beiden Kindern (sofern vorhanden)

I oder besteht aus einem Knoten (genannt Wurzel) sowie maximal 2 Bin¨ arb¨ aumen (den Unterb¨ aumen von T ).. I Bin¨ arb¨ aume haben jede Menge Anwendungen I Unser

Die Operationen Suchen und Einf¨ ugen in einen 2-3 Baum mit N Schl¨ usseln besuchen im schlechtesten Fall log 2 (N) Knoten. R¨ oger (Universit¨ at Basel) Algorithmen und

I Liegt ein Knoten eines solchen Zyklus auf einem Pfad von s nach v, k¨ onnen wir Pfade finden, deren Gewicht niedriger als jeder gegebene Wert ist. → kein korrekt