Dieser Vorlesungsplan wurde für die Lehrveranstaltung Programmieren in den Studiengängen Medieninformatik und Technische Informatik an der Technische Fachhochschule Berlin , Fachbereich VI (Informatik) entworfen. Er setzt voraus, dass im ersten Semester wöchentlich 2 Vorlesungen und 2 Übungen (insgesamt je 28), im zweiten Semester wöchentlich 1 Vorlesung und 1 Übung (insgesamt je 14) stattfinden.
Spalte Vorl: Nummerierung der Vorlesungen im 1. Semester und im 2. Semester
Spalte Übg: Nummerierung der Übungen aus der 3. Auflage des Buchs Programmieren mit Java
<in spitzen Klammern: freiwillige Übungen>
(in runden Klammern: thematisch ähnliche Übungen)
- Übung nicht im Buch
Spalte Übung: Thema der Übung
Spalte Kapitel: Thema der Vorlesung (Kapitelnummerierung aus der 3. Auflage des Buchs)
Spalte Seite: Seitennummer der 3. Auflage des Buchs Programmieren mit Java
Vorl |
Übg |
Übung |
Kapitel |
Seite |
1 |
1.1 |
Umgebung |
1. Informelle Einführung |
1 |
2 |
2.1 |
Leere Klasse |
2. Klassen und Objekte |
21 |
|
2.2 |
Erweiterung |
2.1. Die leere Klasse |
21 |
|
2.4 |
Java ist Spitze |
2.2. Erweiterung von Klassen |
23 |
|
2.2.1. Erweiterung eigener Klassen |
23 |
||
|
2.2.2. Klassen in Paketen |
24 |
||
|
2.2.3. Erben von Methoden |
25 |
||
|
2.2.4. Das Hallo-Programm |
25 |
||
|
2.2.5. Mehrfache Erweiterung |
26 |
||
|
2.2.6. Überschreiben von Methoden |
26 |
||
|
2.2.7. Aufruf von geerbten Methoden |
28 |
||
3 |
2.5 |
init überschreiben |
2.2.8. Hinzufügen von Methoden |
29 |
|
2.6 <2.7> |
Aufruf eigene Methode |
2.2.9. Interne Methoden |
30 |
4 |
2.8 |
Lieblingsspruch |
2.2.10. Parameter |
31 |
|
2.10 |
drei Methoden |
2.2.11. Mehrere Parameter |
32 |
|
2.12 |
Spezifikation |
2.2.12. Methodenaufrufe aus Klassen |
33 |
|
<2.11> |
Abspielen und Animieren |
2.2.13. Import |
33 |
|
2.2.14. Klassenspezifikationen |
34 |
||
|
2.2.15. Lesbarkeit von Programmen |
36 |
||
5 |
2.13 |
Eimer zeigen |
2.3. Datenbehälter |
37 |
|
2.14 2.15 |
Sequenz Toleranter Eimer |
2.4. Algorithmen |
39 |
6 |
2.16 - <2.17> |
ungeprüfte Ausnahmen Vier Kreise |
2.5. Ausnahmen |
42 |
7 |
- 2.18 <2.19> |
Kreise lokale Referenz |
2.6. Dynamische Objekte |
48 |
8 |
- |
3. Strukturierung von Klassen |
55 |
|
|
3.3 |
Prozedur mit Kreisen |
3.1. Prozeduren |
55 |
|
<3.4> |
Wert- und Referenzübergabe |
3.2. Pakete |
64 |
9 |
3.6 3.7 |
geschützte Blöcke Rekursion |
3.3. Schachtelungen |
67 |
10 |
3.8 3.11 3.12 |
Pakete Applet und Anwendung Hauptprogamm |
3.4. Standardpakete |
77 |
11 |
(4.1) |
ZweiEimer |
4. Implementierung von Datenbehältern |
83 |
|
(4.2) |
EinDoppelKreis |
4.1. Klassenkomponenten |
83 |
|
<4.3> |
Ungeprüfte Ausnahmen |
4.2. Implementierung von Ausnahmen |
85 |
12 |
4.7 |
Sichtbarer Eimer |
4.4. Schnittstellen |
89 |
|
4.8 <4.4> |
private/protected Konstruktor Tor |
4.5. Konstruktoren und Destruktoren |
94 |
13 |
4.6 4.12 4.11 |
2 x DoppelEimer
Polymorphe Kreise |
4.6. Typkompatibilität |
96 |
14 |
4.13 |
awt-Klassen |
4.7. Standardklassen als Datenbehälter |
104 |
15 |
5.3 |
ErweiterterDoppelEimer |
5. Werte und Funktionen |
107 |
|
5.1. Wertefunktionen |
108 |
||
|
5.2. Funktionen |
108 |
||
|
5.3. Duplizieren von Inhalten |
112 |
||
|
5.4. Profilkompatibilität |
116 |
||
16 |
5.7 5.8 |
Sound bei paint Sound und Grafik |
5.5. Verwendung von Funktionen |
118 |
17 |
5.12 |
Beanbox |
5.6. Standard-Datenbehälter |
125 |
18 |
5.13 |
swing |
5.7. Programmierung grafischer Oberflächen |
129 |
|
5.14-16 <5.17> |
Anordnungen look and feel |
5.8. Anordnung der Fensterkomponenten |
133 |
19 |
6.3 |
FreiMenue |
6. Ereignissteuerung |
137 |
|
<6.4> |
FreiMenueAufg |
6.1. Menüs zur Programmsteuerung |
137 |
|
6.2. Rückruf |
140 |
||
20 |
6.6 |
Menügenerator |
6.3. Werkzeuge für Anwenderkommunikation |
148 |
|
<6.8> |
Kreis-Speicher |
6.4. Objektwahl |
152 |
21 |
6.14 |
Wetter-Applet |
6.5. Ereignissteuerung durch Standardklassen |
157 |
|
<-> |
Wetter mit awt |
6.5.1. Ereignisbehandlung durch Lauscher |
157 |
|
6.5.2. Fensterlauscher |
158 |
||
|
6.5.3. Komponentenlauscher |
159 |
||
|
6.5.4. Verteilung der Ereignisse |
161 |
||
22 |
6.16 |
Wetter-Menüs |
6.5.5. Standardmenüs |
163 |
|
6.5.6. Menüsteuerung |
164 |
||
|
6.5.7. Ereignisse aus unterschiedlichen Quellen |
165 |
||
23 |
7.1 |
Wochentage |
7. Einfache Klassen und Basistypen |
168 |
|
<7.2> |
Wochentage mit Menüs |
7.1. Aufzählungsklassen |
168 |
|
7.2. Logische Objekte |
175 |
||
24 |
- |
7.3. Basistypen |
177 |
|
|
7.4. Operatoren |
183 |
||
|
7.5. Verwendung von Basistypen in Klassen |
187 |
||
25 |
- |
7.6. Hüllenklassen |
191 |
|
|
7.7. Zeichenkettenklassen |
196 |
||
|
7.8. Ausdrücke |
197 |
||
|
7.9. Parameterübergabemechanismen |
200 |
||
|
7.10. Zusicherungen |
201 |
||
26 |
8.3 |
Wertetabelle |
8. Steuerstrukturen |
204 |
|
8.5 |
Schachbrett |
8.1. Alternativen |
204 |
|
<8.4> |
String-Implementierung |
8.2. Zählergesteuerte Wiederholungen |
209 |
27 |
- |
Quadrieren |
8.3. Bedingungsgesteuerte Wiederholungen |
212 |
28 |
8.9 |
Ackermann |
8.4. Rekursion |
218 |
1 |
9.1 | Menge und Sack |
9. Multibehälter |
222 |
9.1. Mengen |
222 |
|||
2 | <9.7> |
9.2. Säcke |
231 |
|
9.3. Folgen |
232 |
|||
9.4. Assoziativspeicher |
243 |
|||
3 |
- | Taschenrechner |
9.5. Standard-Multibehälter |
246 |
4 |
10. Implementierungstechniken für Multibehälter |
251 |
||
10.1. Verbunde |
251 |
|||
10.2. Reihungen |
252 |
|||
5 |
10.8 | Warteschlange |
10.3. Verwendung von Reihungen |
259 |
6 |
10.4. Verkettete Listen |
269 |
||
10.4.1. Rekursiv vereinbarte Klassen |
270 |
|||
10.4.2. Verkettung |
270 |
|||
10.4.3. Rückwärts verkettete Listen |
271 |
|||
10.4.4. Rekursive Abarbeitung einer Liste |
272 |
|||
7 |
- | Taschenrechner-Klammern |
10.4.5. Vorwärts verkettete Listen |
275 |
8 |
10.4.6. Doppelt verkettete Listen |
277 |
||
|
10.4.7. Iterative Abarbeitung einer Liste |
279 |
||
9 |
- | Warteschlange Liste |
10.4.8. Binärbäume |
280 |
|
10.4.9. Abbruch der Rekursion |
282 |
||
10 |
10.4.10. Mehrfach verkettete Listen |
283 |
||
11 |
Template Method/Persistenz |
10.5. Quelltextinformation zur Laufzeit |
284 |
|
12 |
10.6. Ströme |
287 |
||
13 |
11. Nebenläufigkeit |
299 |
||
|
11.1. Prozesse |
299 |
||
11.2. Nebenläufige Prozesse in Java |
304 |
|||
11.2.1. Prozesse und Monitore |
304 |
|||
11.2.2. Synchronisierung auf Grund von Zusatzbedingungen |
306 |
|||
11.2.3. Unterbrechungen |
308 |
|||
11.2.4. Weitere Synchronisierungsoperationen |
308 |
|||
11.3. Java im Internet |
309 |
Post: prof@solymosi.com