Vorlesungsfolien
Programme
|
Grundvorlesung Praktische Informatik 1: Imperative Programmierung
Dozent
Stefan Edelkamp
Am Fallturm 1, Raum 2.62
D-28357 Universität Bremen
Termine (V) Do. 8:30-10, Raum MZH 1380/1400 MZH 1470
Modul 03-BA-700.01, 4+3 SWS, 8 ECTS
Thema
In diesem Vorlesung werden algorithmische
Konzepte und lauffähige Implementierungen für den imperativen
Programmiersprachenkern von Java vorgestellt.
Einheit 1. Didaktische Einführung
- Zur Geschichte der Programmierausbildung
- Die Welt vor 40 Jahren: Die Zeit der Maschinen und Hochsprachen
- Die Welt vor 30 Jahren: Die Zeit der imperativen Sprachen
- Die Welt vor 20 Jahren: Die Zeit der alternativen Sprachen
- Die Welt vor 10 Jahren: Die Zeit der Kompendien
- Objects First
- Die Qual der Wahl
Einheit 2. Einführung Rekursion
- Willkommen in Rekursien
- Achtung Rekursion!
- Fraktale
- Rekursion auf Zahlen
- Rekursion auf Strings
Einheit 3. Rekursive Funktionen
- Rekursive Funktionen: Einzeiler, die es in sich haben
- Fakultät
- Fibonacci-Zahlen
- Ackermann-Zahlen
- Ulam-Zahlen
Einheit 4. Mathematiknachhilfe
- Unter- und Oberstufenmathematik
- Quadratwurzel
- Erweitern und Kürzen
- Pascals Dreieck
- Primfaktorzerlegung
- Gauß-Elimination
Einheit 5. Auswählen und Sortieren
- Gleichzeitige Berechnung von Mini- und Maximum
- Schnelles Suchen
- Schnelles Sortieren
- Das Nimm-Spiel
- Kryptarithms
Einheit 6. Rekursive Suche
- Tower-of-Hanoi
- Labyrinth-Suche
- Dameprobleme
- Sudokus
Einheit 7. Der Nutzen von Heuristiken
- Number Partition
- Das 15-Puzzle
- Ranking und Unranking von Permutationen
- Hüpfen auf dem Solitärbrett
- Das Problem des Handlungsreisenden
Einheit 8. Randomisierte Suche
- Der Zufall spielt mit
- Randomisierter Primzahltest
- Mister X
- Mastermind
- Handlungsreisen mit Zeitfenstern
- Rechteckpackungen
Technische Vorüberlegungen
Jede Einheit wird eingeleitet durch Lernziele und abgeschlossen durch
Merksätze sowie durch Fragen, die zum Weiterdenken anregen.
Der Vorlesungstext wird durch ausführbare Programme begleitet.
Hauptprogrammiersprache ist Java - die Programmierumgebung ist BlueJ
(Im imperativen Kern sind Programmiersprachen oft verwandt: Viele
Code-Fragmente lassen sich schnell übertragen.)
Erste Begegnungen mit
-
Variablen vom Typ char, int, long, float und double,
-
Schleifen, wie while(.){.}, for(.;.;.){.}, bzw. do {.} while(.);,
-
Verzweigungen, wie if (.){.} else {.}, bzw. (.)? {.} : {.},
-
Arrays, wie int a[..] und
-
Unterprogrammen
sind hilfreich, aber nicht zwingend erforderlich.
Die Funktionsweise der Programme erschließt
sich schnell durch die vorgegebenen Quelltexte.
|
|