Algorithmen und Programmierung 1

Werbung
ALP 1
- Einführung
Algorithmen und Programmierung 1
Heinz Schweppe
Inst. f. Informatik, R. 167
Tel. 838 75 120
[email protected]
Sprechstunde: Mi. 14 c.t. - 15.45
hs / fub - alp1-1 1
ALP 1
- Einführung
u Tutoren und Tutorinnen:
Tutor
Tutoriumszeit
Joav Bally
Mo 10 - 12
Fr 12 - 14
Manuel Scholz
Mi 8:30 - 10
Raum
Beratungszeit
SR 053
Jan Schröter
Fr 12 - 14
SR 046
Mo 14 - 16
Mi 14 - 16
hs / fub - alp1-1 2
1
ALP 1
Tutor
- Einführung
Tutoriumszeit
Raum
Klaus Bernd Schürmann
Mi 12 - 14
Do 10 - 12
SR 046
Beratungszeit
Andrea Steinmetz
Do 10:00 - 11:30
Mo 10:00 - 11:30
Do 8 - 10
Thorsten Zippan
Mi 8:30 - 10
hs / fub - alp1-1 3
ALP 1
- Einführung
HEUTE
u Übersicht Informatikstudium
u Informatik als wissenschaftliche Disziplin
u Kurzer historischer Abriß
u Ziele der Veranstaltung
u Intuitiver Algorithmenbegriff
u Induktion
u Einige Begriffe
u Organisatorisches zum Übungsbetrieb (15 min)
hs / fub - alp1-1 4
2
ALP 1
- Einführung
Grundstudium
u Algorithmen und Programmierung
r Systematische Entwicklung von Algorithmen
Funktionale Programmierung
einige theoretische Grundlagen
r Imperative Programmierung (mit Java)
Objektorientierte Programmierung
Korrektheit und Effizienz von Algorithmen
r Algorithmen und Datenstukturen
Bäume, Graphen, ...
Datenabstraktion
r Softwarepraktikum:
Gemeinsame Entwicklung eines größeren Softwaresystems
u Was noch?
Rechnersysteme, Theorie der Informatik, Mathematik (nicht wenig!), Nebenfach
hs / fub - alp1-1 5
ALP 1
- Einführung
u Lehr- und Lernziele des Informatikstudiums
r Formale Methoden
- exakt beschreiben (Kalküle, Logik)
- automatisch ausführen
- Korrektheit eindeutig nachweisen
r Abstraktion
- von technischen Einzelheiten absehen
--> allgemeine Gesetze erforschen
--> grundsätzliche Aspekte erkennen
--> Zusammenhänge herausarbeiten
r Automatisierung (von Kopfarbeit!)
- Verfahren, Algorithmen
- Problemklassen identifizieren
- Transformationsprozesse
r Anwendungen
hs / fub - alp1-1 6
3
ALP 1
- Einführung
u Lehr- und Lernziele
r
Berufsqualifikation (--> “Dipl.- Inform.”)
- Fakten, Kenntnisse und Fähigkeiten
r
Wissenschaftliches Arbeiten
- systematisches, methodisches Vorgehen
- Abstrahieren können; Denken in formalen Systemen
- Lernen können
r
Soziale Kompetenz
- Selbständigkeit <--> Teamfähigkeit
- Kritik- und Urteilsfähigkeit
- Verantwortungsbewußtsein
hs / fub - alp1-1 7
ALP 1
- Einführung
u Informatik und Beruf
- m eist Software oder Software- gesteuerte Systeme
r Informatik- Industrie
- Entwicklung
- Programmierung
- Systemplanung
- Projektmanagement
- Vertrieb
- z. B. Informationssysteme, Kommunikationssysteme, CAD...
- Beratung
- Wartung (Systempflege, Weiterentwicklung...)
- Schulung
- Ausbildung, Weiterbildung
hs / fub - alp1-1 8
4
ALP 1
- Einführung
r Informatik- Anwender, Wirtschaft
- Entwicklung anwendungsbezogner Programmsysteme
- Management von Netzen, DV- Infrastruktur...
r Forschung
- Universitäten, Forschungszentren, Großfirmen
u Tätigkeiten
- Eigentliches Programmieren von untergeordneter Bedeutung
- Keine (reinen) "Hacker" unter Diplom- Informatikern
- Kein ganztägiges Herumhängen vor dem Computer
- Teamarbeit und Kooperationsfähigkeit notwendig
- Gelegentlicher Termindruck, aber prinzipielle Flexibilität (" Telearbeit")
(--> flexible Arbeitszeiten, Vereinbarkeit mit Familienleben, Teilzeit...)
- Berufsaussichten für Anfänger wieder sehr gut
hs / fub - alp1-1 9
ALP 1
- Einführung
u Informatik an der Universität
r vs. Schule
- Tempo
- Stoffmenge
- Freiheit
- Verantwortung
- "tiefer", "höher", mehr
r vs. Fachhochschule
- grundlagenorientiert
- längeres Studium
- eigenmotiviertes Lernen
- forschungsbezogen
r vs. Jura, Medizin, ...
- Denkweise
- Methodik
- kleineres Vokabular
- weniger Wissen
- mehr "innere Logik"
hs / fub - alp1-1 10
5
ALP 1
- Einführung
u Aufbau des Informatikstudiums
Achtung:
hohe „Dropout“-Quote (50%)
Nebenfach
ca. 32 SWS ~ 20% d. Studiums(!)
- im Prinzip jedes Studienfach der FU
- Studienfachberatung des NF aufsuchen
prüfen:
- Eigeninteresse
- Berufsaussichten
- Erfolgsaussichten
- Aufwand
hs / fub - alp1-1 11
ALP 1
- Einführung
u Zahlen zum Informatikstudium
1995: ca 27.000
1997: ca 31.000
Erheblicher Anstieg
der Anfängerzahlen
seit 1998
hs / fub - alp1-1 12
6
ALP 1
- Einführung
u Anfängerzahlen in den Naturwissenschaften (FU), 1998
Fach
Anfänger
Gesamt
Informatik
Mathematik
Physik
269
93
58
633
593
467
Chemie
Biochemie
Biologie
Pharmazie
115
35
147
134
681
381
1509
1274
Geografie
Geologie
Geophysik
Meteorologie
97
52
12
79
912
401
61
223
1999: ca. 280
hs / fub - alp1-1 13
ALP 1
- Einführung
HEUTE
u Übersicht Informatikstudium
u Informatik als wissenschaftliche Disziplin
u Kurzer historischer Abriß
u Ziele der Veranstaltung
u Intuitiver Algorithmenbegriff
u Induktion
u Einige Begriffe
u Organisatorisches zum Übungsbetrieb (15 min)
hs / fub - alp1-1 14
7
ALP 1
- Einführung
Informatik:
Wissenschaft von der maschinellen Verarbeitung,
Speicherung und Übertragung von Information
Computer Science :
Wissenschaft vom Computer
Ingenieurwissenschaft
Mathematik
Informatik
hs / fub - alp1-1 15
ALP 1
- Einführung
Modellbildung und Formalisierung
r von Daten
r Operationen
r Prozessen
z.B.
z.B.die
dieDaten
Messdaten
eines der
Unternehmens
Luft
z.B.
z.B.Zahlung
Mittelwerte
verbuchen
und Varianz berechnen
z.B.
z.B.Bestellungen
Ausbreitung bearbeiten
von Emissionen
Modellierung: Reduktion der Komplexität durch Abstraktion
von irrelevanten Details
Formalisierung: Symbolische Darstellung von Sachverhalten
macht Algorithmisierung möglich
hs / fub - alp1-1 16
8
- Einführung
ALP 1
Fachgebiete der Informatik
u Technische Informatik
r Wie baut man schnellere Rechner - oder
Optimierung des von-Neumann-Rechner
ä
ä
ä
ä
ä
r
Befehlssätze (reduced instruction set vs. Complex instruction set)
Cache Prinzipien (Schnellspeicher)
Beschleunigung der Ein- / Ausgabe
Parallelarbeit
Entwurf hochintegrierter Schaltungen
Technologie
ä Hochintegration
ä Ein- / Ausgabegeräte
ä Netztechnik
hs / fub - alp1-1 17
ALP 1
- Einführung
u Theoretische Informatik
r Entwicklung und Untersuchung von Modellierungsmethoden
z.B.: wie modelliert man Parallelität
r
Effizienz von Algorithmen
r
Berechenbarkeit
z.B. wie „gut“ sind verschiedene Algorithmen für das gleiche Problem?
u Praktische Informatik
r
r
Konstruktion von Softwaresystemen
Untersuchung ihrer Eigenschaften:
Effizienz, Fehlertoleranz, Effektivität
r
Entwicklung von Sprachen und Werkzeugen
hs / fub - alp1-1 18
9
ALP 1
- Einführung
u Angewandte Informatik
r Anwendungen in fast allen Bereichen des täglichen Lebens ...
ä Kommerzielle Anwendungen z. B. in Handel, Banken, Industrie, im
Öffentlichen Sektor
ä Anwendungen in der Technik z.B. Fertigungssteuerung,
Verkehrssteuerung, Rechner als Bestandteil anderer Systeme (ABS,
Verkehrstechnik - embedded systems )
ä Anwendungen in der Wissenschaft (Medizintechnik,
Geowissenschaften, Visualisierung von Daten....)
ä Private Anwendungen (Textverarbeitung, Spiele)
r
... macht enge Kooperation mit Fachleuten zwingend
ä Fachwissen
ä Kommunikationsfähigkeit
ä Teamfähigkeit
von Informatikern gefordert
hs / fub - alp1-1 19
ALP 1
- Einführung
Informatik und Gesellschaft
Auf dem Weg in die Informationsgesellschaft
r
r
r
r
r
r
„Mechanisierung der Kopfarbeit“
Wertschöpfungsprozesse verändern sich,
nur noch 15 % der Bevölkerung sind mit Stoffumwandlung befaßt
wirtschaftliche Aktivität nicht mehr ohne Rechner denkbar
hohes Rationalisierungspotential
Globalisierungseffekte
Informationstechnik als ein dominierender Wirtschaftsfaktor
hs / fub - alp1-1 20
10
ALP 1
- Einführung
Nicht alles ist machbar....
r Theoretisch:
ä Grenzen der Berechenbarkeit sind beweisbar
r Praktisch:
ä komplexe Systeme nicht mehr „verstehbar“
ä Fehlschläge, z.B. Automatisierung des Sprachverstehens
Verantwortung der Informatiker
r Wirtschaftsfaktor Informationstechnik fördern...
r ... Und Computer-Euphorie bremsen
r Bewußtsein für Verantwortung gegenüber Nutzern entwickeln
hs / fub - alp1-1 21
ALP 1
- Einführung
Wenn Sie unbedingt etwas schreiben wollen, müssen Sie halt einen
zweiten Bildschirm anschließen.
Cartoon: Tiki Küstenmacher
hs / fub - alp1-1 22
11
ALP 1
- Einführung
Non sunt multiplicanda entia praeter necessitatem
(William von Occam, 13 Jhd.)
Kümmere Dich nicht um unnütze Dinge
hs / fub - alp1-1 23
ALP 1
- Einführung
HEUTE
u Übersicht Informatikstudium
u Informatik als wissenschaftliche Disziplin
u Kurzer historischer Abriß
u Ziele der Veranstaltung
u Intuitiver Algorithmenbegriff
u Induktion
u Einige Begriffe
u Organisatorisches zum Übungsbetrieb (15 min)
hs / fub - alp1-1 24
12
ALP 1
- Einführung
Kleine Geschichte des mechanischen Rechnens
r Erste mechanische Rechengeräte im 17. Jhd. (Schickard, Pascal)
r Binärarithmetik von Leibniz vorgeschlagen
r Analytical Engine von C. Babbage (ca. 1850):
Entwurf eines Rechners mit Programmsteuerung
r Konrad Zuse: entwickelt Z1 - Z3 1930 - 1941 in Berlin,
Binärarithmetik, Speicher getrennt von Steuerung
r Mathematik des mechanischen Rechnens:
A. Turing (1936) , A. Church (1936), K. Gödel (1934)
r Programmgesteuerte Rechner: Intensive Entwicklungen ab 1940
hs / fub - alp1-1 25
ALP 1
- Einführung
u ENIAC
(Electronic Numeric
Integrator and Calculator)
entworfen und
gebaut von
J. Mauchley u.
J. Ecker
1942 - 44
ca. 25 m lang,
2,5 m hoch
18.000 Elektronenröhren
hs / fub - alp1-1 26
13
ALP 1
- Einführung
ENIAC
1900 Additionen / sec
Programmierbar...
... Durch Umstecken von Kabeln
u 1944 J.v.Neumann an
Nachfolgeprojekt EDVAC
(Electr. Discr. Variable Autom.
Computer)
beteiligt.
Veröffentlicht grundlegende
Konstruktionsprinzipien
(„von Neumann-Rechner“)
u 1951 erster kommerzieller
Rechner UNIVAC I
(Universal Automatic Computer)
hs / fub - alp1-1 27
ALP 1
- Einführung
u 1954 / 56 Erste Programmiersprache (FORTRAN)
u 1957 Erster volltransistorisierter Rechner, Magnetplatten
u 1963 Rechnerfamilien (IBM/360, PDP11)
u ca. 1970 Integrierte Bausteine in kommerziellen Rechnern
u ca. 1975 Ethernet, Internet - Protokolle
u 1977 Apple II
u 1981 IBM PC
u ab 1990 PC als Teil der Unterhaltungselektronik
u ab 1993 World Wide Web
hs / fub - alp1-1 28
14
ALP 1
- Einführung
... und heute
Quelle: D. Patterson
ALP 1
hs / fub - alp1-1 29
- Einführung
HEUTE
u Übersicht
http://www.inf.fu-berlin.de/lehre/WS99/ALP1/index.html
u Informatik als wissenschaftliche Disziplin
u Kurzer historischer Abriß
u Einige Begriffe
u Ziele der Veranstaltung
u Intuitiver Algorithmenbegriff
u Induktion
u Organisatorisches zum Übungsbetrieb (15 min)
hs / fub - alp1-1 30
15
ALP 1
- Einführung
Einige Begriffe
r Hardware, Software ....
r Betriebssystem: verwaltet die Betriebsmittel eines
Rechnersystems (Speicher, Ein-/Ausgabegeräte, CPU, ...)
r Maschinensprache: Elementaroperationen eines Rechnertyps
Algorithmen für verschiedene Rechner unterschiedlich
formulieren ??
r Höhere Programmiersprache: Sprachen zur
maschinenunabhängigen Formulierung von Algorithmen
Beispiele: Pascal, C, Java, Cobol („imperative Sprachen“)
Lisp, Miranda, Haskell („funktionale Sprachen“)
Prolog, SQL (teilweise) („relationale Sprachen“)
hs / fub - alp1-1 31
ALP 1
- Einführung
Übersetzung und Interpretation
Programm in höherer
Programmiersprache
Maschinenprogramm
Ausführbares
Programm
Übersetzerprogramm (Compiler )
(Ver-)Binden
mit anderen
Maschinenprogammen
Programm implementiert Algorithmus
in beliebiger Programmiersprache
rechnerspezifisch
hs / fub - alp1-1 32
16
ALP 1
- Einführung
Übersetzung und Interpretation
Programm in höherer
Programmiersprache
if a > b
then a
else b
Interpretiererprogramm
Programm ist Eingabe für das laufende Interpretiererprogramm
oft Mischformen: Übersetzung in Zwischensprache, dann Interpretation
hs / fub - alp1-1 33
ALP 1
- Einführung
HEUTE
u Übersicht Informatikstudium
u Informatik als wissenschaftliche Disziplin
u Kurzer historischer Abriß
u Einige Begriffe
u Ziele der Veranstaltung
u Intuitiver Algorithmenbegriff
u Induktion
u Organisatorisches zum Übungsbetrieb (15 min)
hs / fub - alp1-1 34
17
ALP 1
- Einführung
Ziele der Veranstaltung
u Systematisch Programme entwickeln lernen
u Programmieren mit Funktionen: beherrschen einer
u
u
u
u
u
funktionalen Programmiersprache
Abstraktion als zentrales Prinzip der Informatik verstehen
Spezifikation und Korrektheit von Programmen:
Programmeigenschaften beweisen
Induktion / Rekursion beherrschen
Theoretische Grundlagen von Computerprogrammen
kennenlernen
Interessante Anwendungen kennenlernen (z.B.
Verschlüsselungsalgorithmen)
hs / fub - alp1-1 35
ALP 1
- Einführung
Intuitiver Algorithmenbegriff
u Beispiele: Kaffeemaschine bedienen, Schach spielen,
zwei Zahlen schriftlich multiplizieren,...
u Typische Merkmale
r Einzelschritte
r Reihenfolge festgelegt
r Ein Schritt zu einer Zeit
tatsächlich?
r Präzision
hs / fub - alp1-1 36
18
- Einführung
ALP 1
Definition
Ein intuitiver Algorithmus ist ein endlich beschriebenes,
präzises Verfahren von effektiv ausführbaren
Einzelschritten, das eine Menge von
Eingabegrößen in Ausgabegrößen überführt
u
Endliche Beschreibung
Nicht: „berechne 1 + 1/2 + 1/3 + 1/4 + ...“
u
Effektiv
Nicht: „wenn 3 in Dezimalbruchentwicklung
u
endlich oft vorkommt“
Präzise
Exakt definierte Sprache erforderlich
hs / fub - alp1-1 37
ALP 1
- Einführung
Beispiel
Algorithmus GGT von zwei natürlichen Zahlen m und n
Wenn die
die Zahlen
Zahlen gleich
gleich sind,
sind,
Wenn
dann ist
ist der
der GGT
GGT der
der gemeinsame
gemeinsame Wert
Wert
dann
sonst
sonst
subtrahiere die
die kleinere
kleinere von
von der
der größeren
größeren und
und
subtrahiere
bestimme den
den GGT
GGT der
der Differenz
Differenz und
und der
der kleineren
kleineren Zahl
Zahl
bestimme
GGT von 18 und 8 :
GGT von 5
und 0 :
GGT (18-8) 8
GGT (5-0) 0
GGT 8 2
GGT 5 0
GGT 6 2
GGT 5 0
GGT 4 2
GGT 2 2
.... Oh!
fertig
hs / fub - alp1-1 38
19
ALP 1
- Einführung
Beispiel (leicht verbessert)
Algorithmus GGT von zwei natürlichen Zahlen m und n
Wenn die
die kleinere
kleinere Zahl
Zahl 00 ist,
ist,
Wenn
dann ist
ist der
der GGT
GGT die
die größere
größere der
der beiden
beiden (>=)
(>=)
dann
sonst
sonst
subtrahiere die
die kleinere
kleinere von
von der
der größeren
größeren und
und
subtrahiere
bestimme den
den GGT
GGT der
der Differenz
Differenz und
und der
der kleineren
kleineren Zahl
Zahl
bestimme
Alternative: vorherigen Algorithmus, aber Argumente auf positive
natürliche Zahlen festlegen.
hs / fub - alp1-1 39
ALP 1
- Einführung
Weitere Eigenschaften von Algorithmen
Algorithmus terminiert, wenn er in endlich vielen
Schritten endet
Algorithmus ist deterministisch, wenn der nächste
Verfahrensschritt eindeutig bestimmt ist
Algorithmus ist determiniert, wenn er für gleiche
Eingabegrößen die gleichen Ausgabegrößen
berechnet
hs / fub - alp1-1 40
20
- Einführung
ALP 1
Fragen über Fragen....
r Ist der Algorithmus korrekt? (partiell korrekt, wenn er nicht
nachweisbar terminiert)
r Was heißt korrekt? Wie spezifiziert man die Leistung des Algorithmus
r Gibt es einen anderen (besseren) Algorithmus für dasselbe Problem?
r Was heißt „besser“? Schneller (Effizienz), platzsparend, verständlich...
r Was passiert bei fehlerhaften Eingaben? (Robustheit)
r Gibt es nicht-algorithmische Lösungen?
r Gibt es zu einem Problem überhaupt eine Lösung ?
r Hängt das von der Sprache ab, in der man den Algorithmus formuliert?
hs / fub - alp1-1 41
- Einführung
ALP 1
Am Beispiel von 2807 ´ 7 im
Papyrus Rhind, 16. Jh. v. Chr.
u Noch ein Beispiel:
r Das Ägyptische Multiplikation
Auch bekannt als „Methode der
Gegeben zwei natürliche Zahlen a, b > 0
russischen Bauern“
Halbiere b, verdopple a mit dem Ergebnis (a‘,b‘) solange, bis b‘= 1
Summiere alle a‘, für die b‘ungerade
Wenn ihr nur duplieren und
halbieren könnet, so könnet
Ergebnis: ?
17
11
34
5
68
2
136
1
Verdoppeln!
b=11
a=17
ihr das übrige ohne das
Eins mal Eins multipliciren.
Christian von Wolff, 1679- 1754
(Philosoph und Mathematiker,
Univ. Halle)
Ganzzahlig halbieren!
hs / fub - alp1-1 42
21
ALP 1
- Einführung
HEUTE
u Übersicht
http://www.inf.fu-berlin.de/lehre/WS98/ALP1/index.html
u Fragen ?
u Informatik als wissenschaftliche Disziplin
u Kurzer historischer Abriß
u Einige Begriffe
u Ziele der Veranstaltung
u Intuitiver Algorithmenbegriff
Tafel
u Induktion
u Organisatorisches zum Übungsbetrieb (15 min)
hs / fub - alp1-1 43
ALP 1
- Einführung
u Beweis durch mathematische Induktion
Gezeigt werden soll:
Die von n ∈ N a bhä ng ig e Au s s a g e Png ilt fü r a lle n∈ N
Bew eis s chem a :
(1) P1 g ilt
„P1 gilt, weil....“
(2) Angenommen Pk gilt für ein k ∈ N
Zeig e a llg em ein, da s s Pk +1 g ilt
„Wenn Pk dann .... und ... , also Pk+1“
Da nng iltPnfü r a lle na tü rlichenZa hlen
hs / fub - alp1-1 44
22
ALP 1
- Einführung
HEUTE
u Übersicht
http://www.inf.fu-berlin.de/lehre/WS98/ALP1/index.html
u Informatik als wissenschaftliche Disziplin
u Kurzer historischer Abriß
u Ziele der Veranstaltung
u Intuitiver Algorithmenbegriff
u Induktion
u Einige Begriffe
u Organisatorisches zum Übungsbetrieb (15 min)
hs / fub - alp1-1 45
23
Herunterladen