CS 210 – Algorithms and Data Structures (Summer 2026) · unit page · YouTube
2026-04-20, 7:40

Click any sentence to play from there.

The transcript was generated automatically by YouTube's speech recognition and is offered as is. It may contain errors, in particular in concerning technical terms, names and formulas.

0:05 Ein zweiter Punkt, auf den ich eingehen möchte, ist ein bisschen diese Frage, was heißt Effizienz und ist das, warum ist das äh irgendwie wichtig in der Informatik? Und an der Stelle ähm fangen wir mit einer Analogie an. Angenommen, Sie wollen eine Brücke bauen, dann hängt es ein bisschen davon ab, wie groß dieser Graben oder die Schlucht ist, die sie überspannen wollen, wie aufwendig oder wie teuer die Brücke ist. Je größer der Graben, desto teurer wird die Brücke. So viel steht schon fest. Das ist aber mehr als das. Insbesondere, wenn sie nur so einen kleinen Bach haben hinter ihrem Haus, dann legen sie eine Holzplanke drüber und das war's. Äh kosten, was wei ich 100 € vielleicht für eine stabile Planke und viel mehr viel mehr braucht's nicht.

0:49 Für eine 10 m Brücke muss man sich schon ein bisschen mehr anstrengen. Da wird's mit einer reinen Holzplanke nicht reichen. Da fängt's schon an, dass man eine Konstruktion braucht, die auch irgendwie äh stabil in sich von der von der von der ähm von der Architektur ist. Und wenn sie da noch ein paar Faktoren drauf geben, eine 1 km Brücke, die ist nach wie vor, also Meisterleistung der Bauingenieurskunst und 10.000, 1000. Ich kenne keine Brücke, die ernsthaft 10 km überspannt. Das gibt es einfach nicht. Wenn man das Rabbit Hole geht, dann kann man es längere Brücken finden. Das sind aber irgendwie geschummelte Brücken, die sind so auf vielen, vielen Posten und es ist nicht wirklich ein langer ähm freischwebender Teil. Na gut, insbesondere hier mal ein paar Beispiele. Ähm da gibt's eine kleine Fußbrücke in North Wales, ein Kanal in Birmingham, eine Fahrradbrücke in Amsterdam und die kennen Sie. Die sind etwa Faktor 10 auseinander, was die Distanz angeht, die sie überspannen.

1:54 Und ich habe versucht abzuschätzen, was die Kosten würden, wenn man sie jetzt neu bauen müsste, was bei den letzteren Beispielen ein bisschen äh bei dem letzten Beispiel bisschen schwierig ist. Die hier ist tatsächlich recht jung, aber ähm na ja, es sind mal Zahlen, die Sie jetzt einfach so dahinnehmen können. Die grobe Größenordnung wird schon ungefähr hinkommen. Insbesondere die letzte Zahl kommt von einem relativ jungen ähm Modernisierungsunternehmen, um Golden Gates gegen Erdbeben abzusichern. Und das war 2 Milliarden Dollar. nicht neu bauen, sondern alle Pfeiler auf einen äh leicht vibrierenden Untergrund setzen, wenn ich das richtig verstanden habe. Ähm, also vielleicht ist das sogar noch unterschätzt. Was Sie aber sehen ist, die Kosten wachsen deutlich stärker als diese Distanz, die wir überspannen. Das ist das Problem, was man mit Skalierbarkeit meint. Wenn ich eine eine Lösung für ein Problem brauche, was ein Faktor 10 größer ist, dann kostet das meistens nicht ein Faktor 10 mehr, sondern mehr als diesen Faktor 10 mehr, wie eben hier bei den Brücken. Und in der Informatik haben wir das in noch verschärfterer Weise, weil wir einfach über so viele Größenordnungen hinwegbeiten.

3:09 1 GB Daten, ein 1 GB Eingabe Daten, das ist ein ein Witz. Das ist nicht wirklich beeindruckend heutzutage ist aber neun Größenordnung mehr als ein einzelnes Bitte und sie können dann noch einige Nullen dran hängen, ohne dass sie selbst einen Laptop überfordern und das müssen sie einfach im Hinterkopf behalten. Wir arbeiten über so viele Größenordnungen hinweg, dass diese Skalierbarkeit, was passiert mit einem System, wenn ich es auf einer zehn mal größeren Instanz laufen lasse, das ist fast das Wichtigste von dem Gesamtverhalten, von den Gesamtkosten.

3:53 Anderer Punkt noch dazu, gibt's das nicht, wenn ich eine Anwendung baue als fertige Library? Ich werde selten elementare Daten äh Strukturen und Algorithmen neu erfinden, die noch nie jemand so sich ausgedacht hat und dann gibt's die natürlich in irgendeiner Form in der Library und dann sollten sie die auch verwenden. Deswegen werden wir im Verlaufe von der Vorlesung über die Klassiker, die sie einfach kennen sollten, weil man die kennen sollte als Informatiker, um der KI sagen zu können, was sie bauen soll. Äh wenn nicht sonst was. Ähm, dann sollen sie die auch verwenden. Deswegen werden wir in der Vorlesung auch ein bisschen drauf drüber reden, wie diese Dinge z.B. in der Java Library dann heißen und wie die da eingesetzt werden. Aber wenn alles, was sie tun oder tun können, ähm ein Blackbox Reuse von den Bibliotheken ist, ohne zu verstehen, was da intern passiert, dann bleiben sie sehr beschränkt in dem, was sie tun können. Einerseits raten sie oft, wie gut das jetzt funktioniert oder ob das schnell genug sein wird. Also gerade diese Frage, wenn ich Ihnen sage, wie groß die Schlucht ist, über die Sie eine Brücke bauen müssen, dann kann Ihnen Ingenieur vorab sagen, sind das Milliarden, Millionen oder Tausender, die Sie zahlen. Und das ist das gleiche.

5:07 Müssen Sie in der Informatik auch leisten können, wenn jemand jemand sagt, ich muss 10 GB an Daten in 2 Stunden durch dieses Laptop schleusen und folgende Analysen machen. Ist es realistisch oder geht das nicht auf einem Laptop? Die Frage wollen Sie beantworten. Wenn Sie dann nur wissen, ja, es gibt dieses Arraylist Ding da in Java, ist nicht klar, wie Sie die beantworten können.

5:29 Also gehört zu diesem Wissen, dass sie brauchen die Performance Charakteristika dazu. So nenne ich mal diese äh das Wissen darum, wie schnell was ist, wie viel Platz es braucht, wie gut das funktioniert auf verschiedenen in verschiedenen Einsätzen. Werden wir viele Beispiele sehen. Ähm, wenn was zu langsam ist, dann müssen sie identifizieren können, warum und was sie verbessern wollen. Und manchmal reicht auch nicht die ganz klassische Version von der Datenstruktur. Und spätestens dann müssen sie irgendwie diese schwarze Box mal aufknacken und schauen, was drin ist, damit Sie sie anpassen können.

6:12 Auch im gerade im KI Kontext ähm ist mir schon mehrfach passiert, dass wir die dass wir irgendeine der KI Tools weiß machen wollte, dieses und jenes sei möglich und das ist einfach falsch. Ähm, es hilft, wenn Sie äh ein bisschen Wissen sammeln, damit Sie das ebenfalls äh erkennen können.

6:34 Noch ein Zitat. Äh, anderer bekannter Programmierer Linus Torwalz sagte, in fact, I will claim that the difference between a bad programmer and a good one is whether he considers his code or his data structure more important. Bad programmers worry about the code. Good programmers worry about data structures and their relationships.

6:56 Vielleicht nicht so schrecklich überraschend. Bisschen Spaß am Ende. Manchmal ähm sind ihre Anforderungen auch speziell und dann können andere Datenstrukturen besser sein. Das kommt ein bisschen immer drauf an, was der Kontext ist. Deswegen gibt es auch für viele algorithmische Probleme, nicht nur eine Lösung, sondern mehrere, von denen keine alle anderen komplett dominiert, sondern es gibt so ein Pareto Optimum, je nachdem, welchen Tradeoff sie brauchen. Vielleicht ist einfügen wichtiger als suchen. ist dann vielleicht die eine oder die andere Lösung besser.

← Video 1-1: Ketzerische FragenVideo 1-3: Abstraktion →