Webrelaunch 2020

Aktuelles

Stand: 12. 2. 2008

Stichworte zum Stoff der Vorlesung, Beispielprogramme und weitere Materialien zur Vorlesung Einstieg in die Informatik mit Java im Wintersemester 2007/2008 des IANM2 werden hier im Laufe der Vorlesung bereitgestellt.

Die Folien sind im PDF-Format, Sie benötigen zur Anzeige ggf. den Acrobat Reader. Neu: alle pdf-Dateien mit Folien zur Vorlesung sind jetzt wesentlich verkleinert - auch die bisher erschienenen. Sie enthalten nicht mehr die Überblendeffekte, sondern nur noch den kompletten Text.


1. (Montag, 22.10.) Einführung

  • Inhalt der Vorlesung
  • Parallele Veranstaltungen Java und C++
  • Organisation des Praktikums
  • Was ist Java?
  • Geschichte von Java
  • Folien zu Einführung

2. (Dienstag, 23.10.) Grundlagen

  • Literaturangaben
  • Entwicklung eines einfachen Programms unter Linux: Editieren, Übersetzen, Ausführen
  • HalloWS07.java
  • Übertragung nach Windows: funktioniert ohne neu Übersetzen
  • Grundelemente
    • Kommentare
    • Bezeichner
    • Wortsymbole
    • weitere Symbole
  • Folien zu Grundelemente
  • Vordefinierte Datentypen
    • Ganze Zahlen
    • Gleitkommazahlen
    • Weitere Datentypen
  • Folien zu Vordefinierte Datentypen

3. (Montag, 29.10.) Einfache Anweisungen

4. (Dienstag, 30.10.) Übungen zu einfachen Anweisungen

5. (Montag, 5.11.) Weitere Ausdrücke

  • Beispiel quadratische Gleichung, 3. Variante
  • Weitere Ausdrücke
    • Vergleichsoperatoren
    • kombinierte Zuweisungen
    • logische Operatoren
    • weitere Operatoren
    • Klassifizierung von Operatoren
    • Typumwandlungen
    • Priorität der Operatoren
    • Folien zu weiteren Ausdrücken
  • Weitere Anweisungen
    • Verbundanweisung
    • bedingte Anweisung
    • Auswahlanweisung
    • for-Schleifen
    • while-Schleifen
    • do-Schleifen
    • break-Anweisung
    • continue-Anweisung
    • leere Anweisung
    • Folien zu weiteren Anweisungen

6. (Dienstag, 6.11.) Übungen zu Anweisungen

7. (Montag, 12.11.) Übungen zu Anweisungen, Felder

  • Beispielprogramme zu Anweisungen
  • Felder
    • Vereinbarung von Feldern
    • Erzeugen von Feldern
    • Zugriff auf Feldkomponenten
    • Folien zu Feldern

8. (Dienstag, 13.11.) Übungen zu Feldern

  • Felder
    • Wiederholung zu Feldern
    • Mehrdimensionale Felder
    • Felder als Objekte, Referenzen
  • Anleitung zu Aufgabenblatt 3
  • Beispiele zu Feldern, Sortieren mit Bubble Sort
    • Ablauf von Bubble Sort an einem Beispiel
    • BUBBLE-4.zip Veranschaulichung zu Bubble Sort
    • BubbleSort3.java beliebig viele Zahlen einlesen, sortieren und ausgeben

9. (Montag, 19.11.) Übungen zu Feldern, Effizienz

10. (Dienstag, 20.11.) Übungen zu Feldern

  • Bemerkungen zur Effizienz
  • Anleitung zu Aufgabenblatt 4
    • Noch etwas lineare Algebra: Berechnung der Determinante
    • Wikipedia: Determinante
    • Regel von Sarrus
    • Vergrößern einer Matrix durch Umkopieren
    • Hinweise zur Aufgabe Wärmeleitung
  • Beispiele zur grafischen Darstellung einer Matrix
  • Bemerkungen zum Programmierstil
  • Beispiel zur Analyse von Daten: Minimum, Maximum, arithmetisches Mittel

11. (Montag, 26.11.) Klassen als Datenstruktur

  • Präsentation an Tafel (Beamer defekt)
  • Klassen als Datenstruktur
    • Beispiele
    • Vereinbarung von Klassen
    • Erzeugen von Objekten - Instanzen einer Klasse
    • Zugriff auf Attribute
    • Initialisierung
    • Geschachtelte Datentypen
    • Konstruktoren
    • Referenzen

12. (Dienstag, 27.11.) Klassen als Datenstruktur, Übungen

13. (Montag, 3.12.) Instanzmethoden

  • Instanzmethoden
    • Definition von Instanzmethoden
    • Formale Parameter
    • Parameterübergabe, Aufruf einer Instanzmethode
    • Referenztypen als Argument
    • Zugriffe in einer Instanzmethode
  • Folien Instanzmethoden
  • Beispiele am Rechner
    • CombSortHandyHM.java Handys nach Hersteller und Modell sortieren mittels CombSort; Ausführen mit: java CombSortHandyHM <Handy.txt

14. (Dienstag, 4.12.) Übungen zu Instanzmethoden

  • Wiederholung zu Instanzmethoden
  • Ergänzungen
    • Datenkapselung, Zugriffsrechte
    • Überladen von Methoden
    • Variable Argumentliste
    • Laufanweisung für Felder
    • Methode toString()
  • Hinweise zu Aufgabenblatt 6
  • Beispiele
    • Handy2.java Klasse zur Beschreibung eines Handys mit Vergleichsmethode
    • CombSortHandyHM2.java Handys nach Hersteller und Modell sortieren mittels CombSort; Ausführen mit: java CombSortHandyHM2 <Handy.txt
  • Vorführung Dr Java

15. (Montag, 10.12.) Variablen

  • Interaktive Arbeitsweise von Dr Java
    • Auswertung von Ausdrücken
    • Ausführung von Anweisungen
  • Beispiele am Rechner, interaktive Ausführung mit Dr Java
    • Prozent.java Einführung in die Prozent- und Zinseszinsrechnung
    • ProzentDemo.java Hauptprogramm zu Prozentrechnung
    • Name.java Angaben zu einer Person und zu einem Nachfolger (in einem beliebigen Sinn)
    • Namensliste.java Hauptprogramm zu Name: es werden verkettete Listen von Bundeskanzlern bzw. Bundespräsidenten aufgebaut und durchlaufen
    • Drawing.java Objektorientierte Arbeitsweise bei Zeichnungen; die Klasse Drawing stellt einen Konstruktor und viele Methoden zum Zeichnen bereit
  • Variablenarten
    • Lokale Variablen
    • Formale Parameter
    • Instanzvariablen
    • Klassenvariablen
    • Unterschiede Klassen- und Instanzvariablen
    • Initialisierung von Variablen
  • Folien Variablenarten
  • Einleitung zu Klassenmethoden

16. (Dienstag, 11.12.) Klassenmethoden

  • Klassenmethoden
    • Besonderheiten von Klassenmethoden
    • Aufruf von Klassenmethoden
    • Hauptprogrammparameter
    • Rekursion
  • Folien Klassenmethoden
  • Hinweise zum Aufgabenblatt 7
    • Einsatz von Klassen- und Instanzvariablen und -methoden
    • Wikipedia: Euklidischer Algorithmus
    • Hinweise zum Einlesen einer rationalen Zahl
    • Rationale Multiplikation als Klassen- oder Instanzmethode

17. (Montag, 17.12.) Schnittstellen

18. (Dienstag, 18.12.) Übungen zu Schnittstellen

  • Hinweise zum (freiwilligen) Programmierprojekt 1: Lösen eines Sudoku
  • Wiederholung Schnittstellen
  • Hinweise zum Aufgabenblatt
  • Beispiel zur Parameterübergabe über die Programmparameter
  • Beispiel zur numerischen Integration
  • Beispiel zur Datenkompression
    • xmas.txcn Dieses merkwürdige File wurde uns zugeschickt - offenbar ist es kodiert
    • XmasCode5.java Zum Glück haben wir das Programm entdeckt, mit dem es kodiert wurde. Schreiben Sie ein passendes Dekodierprogramm und entschlüsseln Sie den Inhalt
    • Wikipedia: ASCII-Art Das File enthält angeblich ein Bild aus ASCII-Zeichen; hier finden Sie Informationen zu diesem Thema
    • Wikipedia: Lauflängenkodierung Ein paar Informationen zum Hintergrund des angewendeten Datenkompressions-Verfahrens
  • Evaluation der Übungen und Tutorien

19. (Montag 07.01) Anfangswertprobleme, Polygonzüge

  • Wiederholung der bisher behandelten Sprachelemente
  • Anfangswertprobleme
  • Polygonzüge
  • Das Eulersche Polygonzugverfahren
  • Folien zur Vorlesung

20. (Dienstag 08.01) Anwendung: Das Diffusionsmodell nach Bass

  • Wiederholung: Polygonzüge, Anfangswertprobleme
  • Das Diffusionsmodell nach Bass
  • Erweiterung des Modells
  • Parameteranpassungsproblem (Hinführung auf das Aufgabenblatt 10)
  • Folien zur Vorlesung

21. (Montag 14.01) Vererbung

22. (Dienstag 15.01) Übung zu Vererbung

  • Präsentation an Tafel (Beamer defekt)
  • Besprechung der Evaluation
  • Hinweise zum Aufgabenblatt 10
  • Wiederholung Vererbung
  • Beispiel zu Vererbung

23. (Montag 21.01) Vererbung

  • Klausurmerkblatt, Hinweise zur Klausur
  • Präsentation am Overhead-Projektor (Beamer defekt)
  • Vererbung, Wiederholung und Ergänzungen
    • Verdeckte Variablen
    • Verdeckte Methoden, Polymorphie bei Instanzmethoden
    • Klassen und final
    • Zugriffsrechte und Vererbung
    • Abstrakte Methoden und Klassen
    • Vergleich zu Schnittstellen
  • Folien zu Vererbung, Polymorphie
  • Beispiel zu Vererbung
    • Haustier.java Basisklasse mit den grundlegenden Eigenschaften, u.a. Sortieralgorithmus
    • Hund.java abgeleitete Klasse mit speziellen Eigenschaften für Hunde
    • Katze.java abgeleitete Klasse mit speziellen Eigenschaften für Katzen
    • HaustierTest1.java Testprogramm, das diverse Haustiere bearbeitet und sortiert
    • Rassekatze.java abgeleitete Klasse mit speziellen Eigenschaften für Rassekatzen, u.a. eine neue Methode wert, die beim Sortieren verwendet wird
    • HaustierTest2.java Testprogramm, das Rassekatzen bearbeitet und anders als andere Haustiere sortiert (mittels Polymorphie der Methode wert!)

24. (Dienstag 22.01) Übung zu Vererbung, Polymorphie

25. (Montag 28.01) Ein-Ausgabe mit Streams

26. (Dienstag 29.01) Programmierprojekt, Internet-Zugriff, Threads

  • Programmierprojekt Ameisen
  • Aufgabenblatt 12 mit alten Klausuraufgaben
  • Kommunikation via Internet, Beispiele
    • TheTimeMain.java liest die Zeit von einem Server in USA
    • MiniBrowser.java ruft eine Webseite auf und stellt sie als Text dar
    • ChatServer.java, ChatClient.java realisieren ein Chat-Protokoll zwischen zwei entfernten Rechnern (Achtung: der verwendete Port muss ggf. in der Firewall des Betriebssystems freigegeben werden)
  • Threads
    • Eigenschaften von Threads
    • Typisches Thread-Beispiel
    • Interface Runnable
  • Folien zu Threads
  • Beispiele zu Threads

27. (Montag 04.02) Java 5

  • Beispiele zu Kommunikation via Internet
  • Beispiele zu Threads
  • Programbeispiele zu den Neuerungen von Java 5 - jeweils zum Vergleich in Java 1.4 und Java 5:
    • Eingabe mit Scanner
    • Ausgabe mit printf
    • Formeln mit static-import
    • for-Schleifen
    • Variable Argumentlisten
    • Hüllklassen: automatische Konversion
    • Generische Programmierung
    • siehe Ordner java5

28. (Dienstag 05.02) Klausurvorbereitung

  • Wiederholung klausurrelevanter Stoff
  • Hinweise zur Klausur
  • Beispiele zu Klassen, Vererbung und Schnittstellen

29. (Montag 11.02) Klausurbesprechung, Applets

  • Besprechung der Klausuraufgaben
  • Applets
    • Einsatz von Applets
    • Abstract Window Toolkit
    • Komponenten (Button, Label, ...)
    • Ereignisbehandlung
  • Folien zu Applets
  • Ausblick auf das Sommersemester

30. (Dienstag 12.02) Programmierberatung

  • Beratung zu
    • Klausurergebnissen
    • Stoff der Vorlesung aus dem Wintersemester
    • Ausblick auf die Themen des Sommersemesters

Hinweise

Sie dürfen Beispielprogramme und Foliensätze von dieser Seite zum Erlernen der Sprache Java verwenden. D.h. sie dürfen sie (auf eigenes Risiko) kopieren, ausdrucken, ausführen, verändern, erweitern, usw. Eine Veröffentlichung der Programme, z.B. als Aufgabensammlung, bzw. der Folien ist dagegen nicht erlaubt.