Grundlagen der Programmierung
WS 09/10
Inhalt der Vorlesung sind Computer, Algorithmen, Daten, Programme, Konzepte von Programmiersprachen, imperative und objektorientierte Programmierung, Programmiertechniken, Grundlagen einer systematischen Softwareentwicklung.
Die Einführung erfolgt am Beispiel von Java.
Aktuelles
Fragebögen zu Vorkenntnissen:
| |
Termine | Vorlesung | Übungen | Praktikum | Literatur | Prüfungen |
|---|
| Vorlesung | Mo | 11-13 | RUD 26, 0'115 | Prof. Dr. K. Bothe | ||
| Mi | 11-13 | RUD 26, 0'115 | ||||
| Übungen | Di | 13-15 | RUD 26, 1'306 | Dr. M. Ritzschke | ||
| Di | 15-17 | RUD 26, 1'306 | ||||
| Mi | 13-15 | RUD 26, 1'305 | Dr. G. Lindemann - v. Trz. | |||
| Mi | 15-17 | RUD 26, 1'305 | ||||
| Do | 09-11 | RUD 26, 1'306 | Ch. Gierds | |||
| Do | 11-13 | RUD 26, 1'306 | M. Hildebrandt | |||
| Fr | 09-11 | RUD 26, 1'306 | M. Kurth | |||
| Fr | 11-13 | RUD 26, 1'306 | ||||
| Praktikum | n. V. | Dr. K. Ahrens | ||||
| |
Termine | Vorlesung | Übungen | Praktikum | Literatur | Prüfungen |
|---|
Die Java-Beispielprogramme werden Ihnen rechtzeitig zur Verfügung gestellt und in der Vorlesung behandelt.
Sie eignen sich unmittelbar für das Übersetzen.
Außerdem erhalten Sie zu Beginn der entsprechenden Vorlesungsteile alle Beispielprogramme in einer Datei zusammengefasst, die Sie bitte ausgedruckt zu den Vorlesungen mitbringen.
| Teil / Kapitel | Folien (1-seitig, farbig) |
Folien (4 Folien/Seite, s/w) |
Java-Beispiel-Programme |
| Grundlagen | |||
| I.1 Was ist Informatik | I.1-1s.pdf | I.1-4s.pdf | |
| I.2 Computer | I.2-1s.pdf | I.2-4s.pdf | |
| I.3 Grundlagen der Rechnernutzung | I.3-1s.pdf | I.3-4s.pdf | |
| I.4 Algorithmen | I.4-1s.pdf | I.4-4s.pdf | |
| I.5 Daten | I.5-1s.pdf | I.5-4s.pdf | |
| I.6 Programmiersprachen im Überblick | I.6-1s.pdf | I.6-4s.pdf | |
| I.7 Syntax: Grammatiken, EBNF | I.7-1s.pdf | I.7-4s.pdf | |
| I.8 Softwareentwicklung | I.8-1s.pdf | I.8-4s.pdf | |
| Konzepte imperativer Sprachen | |||
| Teil-II-2s.pdf | |||
| II.1 Vorbemerkungen | II.1-1s.pdf | II.1-4s.pdf | |
| II.2 Kompilation, Interpretation, virtuelle Rechner | II.2-1s.pdf | II.2-4s.pdf | Hello.java |
| II.3 Grundlegende Sprachkonstruktionen imperativer Programme |
II.3-1s.pdf | II.3-4s.pdf | Temperature.java Keyboard.java |
| II.4 Standardbibliotheken: Java-API | II.4-1s.pdf | II.4-4s.pdf | |
| II.5 Auswahl: Bedingte Anweisungen | II.5-1s.pdf | II.5-4s.pdf | |
| II.6 Iteration (Schleifenanweisungen) | II.6-1s.pdf | II.6-4s.pdf | TemperatureTable.java |
| II.7 Methoden | II.7-1s.pdf | II.7-4s.pdf | Fakultaet.java Zeitplan.java |
| II.8 Ausdrücke, Operatoren (einfache Typen) | II.8-1s.pdf | II.8-4s.pdf | Unicode.java |
| II.9 Programmierrichtlinien |
II.9-1s.pdf | II.9-4s.pdf | |
| II.10 Eindimensionale Felder (Arrays) | Echo.java Primzahlen.java Monate.java |
||
| II.11 Rekursion, Komplexität von Algorithmen | Power1.java Hanoi.java |
||
| II.12 Such- und Sortierverfahren mit Arrays | suche.java Quicksort.java merge.java Hash.java |
||
| Objektorientierung und SW-Entwicklung | |||
| Teil-III-2s.pdf | |||
| III.1 Grundkonzepte der Objektorientierung (1) abstrakte Datentypen, Objekte, Klassen |
Stack.java Umkehrung.java Umkehrung2.java |
||
| III.2 Objektorientierung: grundlegende Fallbeispiele | KlammerStruktur.java Time.java Schedule.java |
||
| III.3 Grundkonzepte der Objektorientierung (2) Klassenvariablen, Klassenmethoden |
TimeC.java ScheduleC.java |
||
| III.4 Komponentenarten | |||
| III.5 Grundkonzepte der Objektorientierung (3) Vererbung, Polymorphismus, dyn. Binden |
StackForChar.java Time2.java |
||
| III.6 Grundkonzepte der Objektorientierung (4) Generische Klassen |
BuildPairs.java BuildPairsBounds.java StackGen.java |
||
| III.7 Verkettete Strukturen: Listen | IntList.java List.java Stack1.java |
||
| III.8 Grundkonzepte der Objektorientierung (5) Interfaces |
ScheduleInt.java ScheduleAbstr.java UmkehrungNU.java KeybordIApp.java Druck.java |
||
| III.9 Ausnahmebehandlung | Ausnahme.java TryCatch.java TryCatchAll.java Finally.java TryInTry.java KeybordTry.java Oeffnungszeit.java |
||
| III.10 Softwareentwicklung: Anforderungsanalyse und Problemdefinition |
|||
| III.11 Objektorientierte Softwarearchitekturen | |||
| III.12 Vom Entwurf zur Implementation | Maze.java MazeTest.java Mouse.java MouseMaze.java Easel.java SoftFrame.java |
||
| III.13 Bäume: effektives Suchen und Sortieren | Baum.java Traverse.java TraverseTest.java |
||
| III.14 Applets | TempApplet.java | ||
| III.15 Ereignisse (Events) | EyesApplet.html EyesApplet.java Eyes.Java |
||
| III.16 Threads & Prozesse | ThreadBasicTest.java ThreadSleep.java ThreadJoin.java ThreadPriority.java SpotTest.html SpotTest.java |
||
Begleitend zur Vorlesung empfehlen wir Ihnen folgende Java-Online-Dokumente:
| |
Termine | Vorlesung | Übungen | Praktikum | Literatur | Prüfungen |
|---|
Die Anmeldung zu den Übungen und die Verwaltung der Bewertung
der Übungsaufgaben erfolgt über das GOYA-System - https://goya3.informatik.hu-berlin.de/goyacs .
Die Übungsblätter mit den Übungsaufgaben erscheinen jeweils spätestens freitags im Goya-System als PDF-Datei.
Die Bearbeitungszeit je Übungsblatt beträgt eine Woche. Die Abgabe der Lösungen erfolgt ausschließlich in den jeweiligen Übungsgruppen in schriftlicher Form auf Papier. Die korrigierten Lösungen werden eine Woche später in den Übungsgruppen zurückgegeben und besprochen. Anforderungen an die Lösungen werden jeweils in den Übungsgruppen mitgeteilt.
Einen Leistungsnachweis für die Übungen erhält, wer mindestens 70% der möglichen Gesamtpunktzahl erreicht hat.
Pro Übungsblatt gibt es 20 Punkte. Es werden 10 Übungsblätter ausgegeben.
Die Übungsaufgaben sind in Gruppen zu zweit zu bearbeiten und beide Studenten müssen derselben Übungsgruppe angehören.
Hier gibt es einen Übungsplan .
| |
Termine | Vorlesung | Übungen | Praktikum | Literatur | Prüfungen |
|---|
Ein wichtiges Tool im Rahmen des Praktikums ist Eclipse. Eclipse ist eine integrierte Software-Entwicklungsumgebung (SDE = Software Development Environment), die mehrere Programmiersprachen unterstützt, darunter auch Java. Hier können Sie die aktuelle Version herunterladen: http://www.eclipse.org/downloads/. Wir empfehlen das vorkonfigurierte Paket "Eclipse IDE for Java Developers".
Optional empfehlen wir anschließend die Installation des Eclipse-Plugins Subclipse für die Verwaltung ihres Quellcodes mit SVN/CVS (z.B. erhalten Sie so die Beispiele aus der Vorlesung). Folgen Sie einfach den Beschreibungen auf http://subclipse.tigris.org/install.html.
Hier gibt es Informationen zum Praktikum.
| |
Termine | Vorlesung | Übungen | Praktikum | Literatur | Prüfungen |
|---|
| |
Termine | Vorlesung | Übungen | Praktikum | Literatur | Prüfungen |
|---|
Die Prüfung findet in Form einer Klausur am 17.02.2010, von 10-12 Uhr, Rudower Chaussee 26, R.0'115 statt.