Sie sind auf Seite 1von 35

Technische Universität München

Herzlich Willkommen!
Informatik I im WS 2021/22

Prof. Dr. Alexander Pretschner


Severin Kacianka, Jan Wagener
Wo ist Informatik? Technische Universität München
Technische Universität München

Wo ist Informatik nicht?


Technische Universität München

Warum Informatik?

… weil Sie Technologien/


Systeme entwickeln werden,
die die Welt verändern!
Keine andere Disziplin hat so
breiten und so vielfältigen
Impact!
Technische Universität München

Was ist Informatik?


• Studium und Verwirklichung der Verarbeitung von Daten
• Naturwissenschaft
– Studium der belebten und unbelebten Natur: neue Phänomene
entdecken
– Meist definiert durch Methode: Hypothese, Experiment, Falsifikation
• Mathematik
– Studium abstrakter Strukturen
• Ingenieursdiziplin
– Nicht nur beobachtend, sondern auch gestaltend:
Neue Phänomene nutzbar machen
• Sozial- und Geisteswissenschaft
– Studium und Gestaltung gesellschaftlicher Zusammenhänge
– Die sind fundamental geprägt durch Informatik!
Technische Universität München

Vor allem aber …


• … ist Informatik hochrelevant
• … ist Informatik wahnsinnig spannend
• … ist Informatik anspruchsvoll
• … ist Informatik kreativ
• … führt Informatik dazu, dass Sie garantiert einen Job
bekommen
• … ermöglicht Informatik es Ihnen, die Zukunft zu
gestalten

• … macht Informatik enormen Spaß!


Technische Universität München

Faszinierende Breite und Tiefe


• Software Engineering
• Datenbanken und Information Retrieval
• Algorithmik
• Komplexitätstheorie und Entscheidbarkeit
• Netzwerke
• Robotik
• Sicherheit
• Formale Überprüfung
• Bildverarbeitung
• …
Technische Universität München

Ziel des Studiums


• Wie jedes Studium: Training Ihres Hirnmuskels
• Berufsfähigkeiten
– Denken!
– Problemerkennungs- und lösungsstrategien!
– Selbstorganisation!
– Freude an und Bereitschaft für Neues!
• Berufsfertigkeiten
– Verständnis fundamentaler Zusammenhänge!
– Technisches Wissen!
– Programmieren!
• … und (oder deswegen) Spaß …
Technische Universität München

Vorlesung Informatik I
• Ziel 1: Vermittlung einiger zentraler Konzepte der
Informatik

• Ziel 2: Vermittlung der zentralen Konzepte


objektorientierter Programmierung

• Ziel 3: Vermittlung der handwerklichen


Grundfertigkeiten des Programmierens

• Ziel 4: Spaß!
Wo ist Informatik? Technische Universität München
Technische Universität München

Wir implementieren Google Search!


Technische Universität München

Wieso?
• Motivation 1: Ein durchgängiges Beispiel für die
Vorlesung
• Motivation 2: Verbindung mit anderen Vorlesungen (Lin.
Alg., HöMa)
• Motivation 3: Es ist cool, Google zu verstehen

• Notabene: Genaugenommen, ist Google doch etwas


komplexer …
• … und diese Vorlesung existierte vor den
entsprechenden MOOCs!
Technische Universität München

Suchmaschinen
• Zutat 1: Textähnlichkeit
Je „näher“ eine Anfrage einem Dokument ist, desto besser „passt“
das Dokument zu der Anfrage.
„Nähe“ bestimmt Ordnung in der Resultatliste.

• Zutat 2: Popularität einer Seite


Je mehr Seiten auf eine Seite verlinken, desto populärer ist eine
Seite. Wiederholte Anwendung: Je mehr „gute“ Seiten auf eine
Seite verlinken, desto besser.
Im Zweifel ist es besser, einen Link von einer extrem populären
Seite zu haben, als fünf Links von extrem unpopulären Seiten.

• Ca. 200 weitere Zutaten und Verallgemeinerungen …


Technische Universität München

1. Vector Space Model


• Grundlage: Formaler Begriff von Ähnlichkeit zwischen
Texten
• Ein Text besteht aus Worten mit bestimmten
Häufigkeiten
• Die Wörter einer Suchanfrage ebenfalls (Häufigkeiten
alle 1). Also ist eine Suchanfrage ein Text.
Technische Universität München

Vector Space Model und Preprocessing


Dies ist ein Text über Programmieren. Programmierung ist eine wichtige Grundlage.

dies ist ein text über programmieren programmierung ist eine wichtige grundlage

dies ist ein text über programmier programmier ist ein wichtig grundlag

text programmier programmier wichtig grundlag


Wort #
text 1
programmier[] 2
wichtig[] 1
grundlag[] 1
Technische Universität München

Vector Space Model und Preprocessing


Hier ist mehr über Programmieren. Java ist eine wichtige Sprache.

hier ist mehr über programmieren java ist eine wichtige sprache

hier ist mehr über programmier java ist ein wichtig sprach

mehr programmier java wichtig sprach

Wort #
Wort #
mehr 1
text 1
programmier[] 1
programmier[] 2
java 1
wichtig[] 1
wichtig[] 1
grundlag[] 1
sprach 1
Technische Universität München

Vector Space
• Anfrage: „Wichtiges wichtiges Programmieren“

Wort # Wort # Wort #


mehr 1 mehr 0 mehr 0
programmier[] 1 programmier[] 2 programmier[] 1
java 1 java 0 java 0
wichtig[] 1 wichtig[] 1 wichtig[] 2
sprach 1 sprach 0 sprach 0
text 0 text 1 text 0
grundlag[] 0 grundlag[] 1 grundlag[] 0

Doc1 Doc2 Query


Technische Universität München

Vektorähnlichkeit?
Technische Universität München

Vektorähnlichkeit?
• Skalarprodukt * berechnet ein Maß für den Cosinus des
Winkels zwischen zwei Vektoren a und b;
– damit für den Winkel;
– damit für die Ähnlichkeit!

• a * b = a1b1 + a2b2 + … + anbn = |a| ∙ |b| ∙ cos(a, b)

• Länge/Norm eines Vektors |x| = √(x12+x22+…+xn2)

• Unser Ähnlichkeitsmaß ist entsprechend (a * b) / (|a| ∙ |b|)


Technische Universität München

Vektorähnlichkeit?
• Skalarprodukt berechnet ein Maß für den Cosinus des
Winkels zwischen zwei Vektoren; damit für den Winkel;
damit für die Ähnlichkeit!
• Zur Illustration Einschränkung auf drei Dimensionen
programmier

doc2

query
doc1

wichtig

sprach
Technische Universität München

Vector Space
• (0,1,0,2,0,0,0)*(1,1,1,1,1,0,0)=3/(√5 √5)=.6
• (0,1,0,2,0,0,0)*(0,2,0,1,0,1,1)=4/(√5 √7)=.67
• Ranking: Doc2, Doc1

Wort # Wort # Wort #


mehr 1 mehr 0 mehr 0
programmier[] 1 programmier[] 2 programmier[] 1
java 1 java 0 java 0
wichtig[] 1 wichtig[] 1 wichtig[] 2
sprach 1 sprach 0 sprach 0
text 0 text 1 text 0
grundlag[] 0 grundlag[] 1 grundlag[] 0
Doc1 Doc2 Anfrage „wichtig wichtig
programmieren“
Technische Universität München

PageRank 1
• Eine „relevante“ Seite S wird von vielen anderen
„relevanten“ Seiten verlinkt
– Rekursive Definition
(Eigenwertproblem, numerisch lösbar, konvergiert.)
• Wenn J die Menge der Links auf eine Seite s ist und R
die Relevanz einer Menge von Seiten beschreibt, dann
ist
R({s})= f(R(J))

für eine Funktion f.


Technische Universität München

PageRank 2
Stochastische Interpretation:

Ein Nutzer surft über die Seiten. Mit einer


Wahrscheinlichkeit p folgt er einem Link auf der aktuellen
Seite, und mit einer Wahrscheinlichkeit
(1-p) fängt er irgendwo von vorne an.

Im Limit – wenn der Nutzer unendlich lange surft –


entspricht die Wahrscheinlichkeit, mit der er sich auf einer
Seite befindet, genau der eben errechneten Relevanz
Technische Universität München

Page Rank

Quelle: Wikipedia
Technische Universität München

Kombination
• Dokumentenähnlichkeit d liefert ein Maß für die
Ähnlichkeit, damit Relevanz

• Popularität p (bzgl. Links) liefert ein weiteres Maß für


die Ähnlichkeit

• Mit einem Wichtungsfaktor w können wir nun das


Ranking berechnen, indem für jedes Dokument
w*d + (1-w)*p
berechnet wird und die Resultate sortiert werden.
Technische Universität München

Vorlesung: Suchmaschinenperspektive
• Man nehme
– Webseiten/Dokumente
– Wort-/Häufigkeitsvektoren, die diesen Dokumenten (und der
Suchanfrage) entsprechen
– Mengen von Wort-/Häufigkeitsvektoren, die die
Dokumentenmenge darstellen, in der wir suchen
– Einen einfachen Algorithmus zur Ähnlichkeitsberechnung
zwischen Suchanfrage und allen Dokumenten (also: zwischen
Wort-/Häufigkeitsvektoren)
– Einen zweiten, besseren solchen Algorithmus
– Eine Implementierung von PageRank
• … und fertig ist die Suchmaschine
Technische Universität München

Warum nochmal?
• Interessant: Als solches spannend
• Relevant: Wir benutzen Google jeden Tag
• Integrierend:
z.B. Vorlesungen über lineare Algebra und Analysis
(HöMa)
• Angewandt: Zeigt an einem durchgängigen Beispiel,
warum die in der Vorlesung gelehrten Konstrukte
tatsächlich nützlich sind.
Technische Universität München

Vorlesung: Programmierperspektive

Teil 1: Einführung
Teil 2: Objektbasierte Programmierung
Teil 3: Kontrollstrukturen
Teil 4: Felder
Teil 5: Einige Abstrakte Datentypen
Teil 6: Objektorientierung
Teil 7: Rekursion
Teil 8: Fortgeschrittene Programmierkonstrukte
Teil 9: Ein größeres Beispiel
Teil 10: Nebenläufigkeit
Teil 11: Beyond Java
Technische Universität München

Informatik I
• Vorkenntnisse
– Keine
• Bereitschaft
– Zu aktiver und eigenständiger Mitarbeit
– Zu Eigeninitiative
– Zur Benutzung weiterer Quellen
• Bücher, Java-Dokumentation, Prüfungsordnung, Modulhandbuch, ...
• Arbeitsaufwand
– Laut BA-Ordnung 2x6 Credits (1 Credit = 30 Std.)
– Das sind 360 Arbeitsstunden, ca. 25 pro Woche !!!

40
Technische Universität München

Die wahre Bedeutung des Schwarzen Gürtels

Source: https://www.groupon.com/biz/cedar-rapids/evans-ata-black-belt-academy

41
Technische Universität München

Warum Sie in die Vorlesung gehen


<cynicism>
1. Den Tag strukturieren: Zeitmanagement
2. Die peer group treffen: Sozialmanagement
3. Papa vom Engagement berichten:
Stakeholdermanagement
</cynicism>

Hm. Und was ist mit Inhalten?

19.10.2021 42
Technische Universität München

Warum Sie in die Vorlesung gehen sollten


4. Weil Sie Inhalte vor- und nachbereiten und deswegen
wirklich verstehen, worum es geht
5. Weil eine Universität viel mehr ist als eine Anstalt zur
Vermittlung von Lehrinhalten, vor allem unsere …
… und das gilt auch für Videostreams im anderen Hörsaal

https://i.redd.it/28arfeidajx01.jpg

19.10.2021 43
Technische Universität München

Und?
Wir sind sehr zahlreich. Störer stören viele.

Falls 1-3 auf Sie zutreffen und Sie 4 und 5 nicht verstehen
können, müssen Sie nicht kommen!
Falls 1-3 nicht (nur) auf Sie zutreffen und Sie die Klugheit
von 4 und 5 würdigen können, interessieren Sie sich für
die Inhalte und das Gesamtpaket. Deswegen kommen –
und schweigen! - Sie.

19.10.2021 A Generic Fault Model for Quality Assurance 44


Technische Universität München
Praktikum: Bitte mogeln Sie nicht! Technische Universität München

• Prüfungsmodalität für diese Vorlesung:


Zwei Prüfungsleistungen, eine für die Klausur zur Vorlesung,
eine für die Hausaufgaben im Praktikum

• Falls wir Sie beim Anfertigen der Hausaufgaben beim Mogeln


erwischen,
• Bekommen Sie keinen Übungsschein (durchgefallen)
• Steht im Zeugnis ein Betrugsversuch
• Wir werden Sie darüber erst am Ende des Semesters informieren

• … und jetzt geht‘s los!


• Orga
• Was ist Software?

Das könnte Ihnen auch gefallen