Testergebnisse und Gesamtnoten

Programmierpraktikum für Mechatroniker

LVA-Nr. Gruppe LVA-Leiter Zeit Raum
338.610 1 Mössenböck Di 08:30 - 10:00 HS 5
338.611 2 Beer Mi 14:30 - 16:00 HS 9
338.612 3 Ertl Di 08:30 - 10:00 HS 9

Tutorensprechstunden

Name Kurzzeichen Zeit Raum
Markus Fahrnberger MF Mi 9:00-10:00 TNF-Labor
Franz Girlinger FG Mi 14:45-15:45 TNF-Labor
Christoph Kramesch ChK Di 11-12 TNF-Turm 7.Stock Raum 728 (CAST Labor)
Peter Hamader PH Di 13-14 TNF-Turm 7.Stock Raum 728 (CAST Labor)
Markus Löberbauer ML Mo 08:00 - 09:00 TNF-Labor
Hanspeter Baumgartner HPB Mo 10:00 - 11:00 TNF-Labor

Software-Download (auch auf CD um 50,- erhältlich)

Java Development Kit 1.3 Download JDK 1.3
RealJ Entwicklungsumgebung Download RealJ
Ein/Ausgabebibliothek In.class
Out.class
Dokumentation Download JDK 1.3 Dokumentation
README zu Java 2 SDK

Musterlösungen

Ziel der Lehrveranstaltung

Das Programmierpraktikum lehrt die Grundlagen der Programmierung anhand der Sprache Java. Studierende lernen das algorithmische Denken und die systematische Umsetzung eines Algorithmus in ein Programm. Die Lehrveranstaltung zielt vor allem auf systematisches Programmieren und erst in zweiter Linie auf die Vermittlung spezieller Java-Inhalte ab. Es werden Grundlagen wie Datentypen, Ablaufkontrollstrukturen, Lokalität, objektorientierten Prinzipien, Rekursion, Schrittweise Verfeinerung, Datenabstraktion und Ausnahmebehandlung erläutert. Daneben werden auch Fragen der Programmkorrektheit und des Programmierstils behandelt.

Beachten Sie bitte auch die Stilrichtlinien.

Inhalt

1. Grundlagen
  1.1 Daten und Befehle
  1.2 Algorithmen
  1.3 Variablen
  1.4 Anweisungen
  1.5 Beispiele
  1.6 Beschreibung von Programmiersprachen

2. Einfache Java-Programme
  2.1 Grundsymbole
  2.2 Variablendeklaration
  2.3 Zuweisungen
  2.4 Arithmetische Ausdrücke
  2.5 Ein/Ausgabe
  2.6 Grundstruktur von Java-Programmen
  2.7 Konstantendeklarationen
  2.8 Weitere Operatoren
  2.9 Namenswahl für Variablen und Konstanten

3. Verzweigungen
  3.1 if-Anweisung
  3.2 Vergleichsoperatoren
  3.3 Datentyp boolean
  3.4 Assertionen bei if-Anweisungen
  3.5 Effizienzüberlegungen
  3.6 switch-Anweisung

4. Schleifen
  4.1 while-Anweisung
  4.2 Assertionen bei Schleifen
  4.3 do-while-Anweisung
  4.4 for-Anweisung
  4.5 Abbruch von Schleifen
  4.6 Vergleich der Schleifenarten

5. Gleitkommazahlen

6. Methoden
  6.1 Parameterlose Methoden
  6.2 Parameter
  6.3 Funktionen
  6.4 Lokale und Globale Namen
  6.5 Sichtbarkeitsregeln von Variablen
  6.6 Lebensdauer von Variablen
  6.7 Überladen von Methoden
  6.8 Beispiele
  6.9 Zweck von Methoden

7. Arrays
  7.1 Eindimensionale Arrays
  7.2 Mehrdimensionale Arrays

8. Zeichen
  8.1 Zeichenkonstanten und Zeichencodes
  8.2 Zeichenvariablen
  8.3 Standardfunktionen

9. Strings
  9.1 Stringkonstanten
  9.2 Datentyp String
  9.3 String-Vergleiche
  9.4 String-Operationen
  9.5 Aufbauen von Strings
  9.6 String-Konversionen
  9.7 Beispiele

10. Klassen
  10.1 Deklaration und Verwendung
  10.2 Methoden mit mehreren Rückgabewerten
  10.3 Kombination von Klassen und Arrays

11. Mehr über Methoden
  11.1 Methoden in Klassen
  11.2 Konstruktoren
  11.3 Statische und dynamische Felder und Methoden
  11.4 Beispiel: Klasse PhoneBook
  11.5 Beispiel: Klasse Stack
  11.6 Beispiel: Klasse Queue

12. Dynamische Datenstrukturen
  12.1 Verketten von Knoten
  12.2 Unsortierte Listen
  12.3 Sortierte Listen
  12.4 Stack als verkettete Liste
  12.5 Queue als verkettete Liste

13. Vererbung
  13.1 Klassifikation
  13.2 Kompatibilität zwischen Ober- und Unterklasse
  13.3 Dynamische Bindung
  13.4 Ausblick

14. Rekursion

15. Schrittweise Verfeinerung

16. Pakete
  16.1 Anlegen von Paketen
  16.2 Export und Import von Namen
  16.3 Pakete und Verzeichnisse
  16.4 Information Hiding
  16.5 Abstrakte Datentypen und abstrakte Datenstrukturen

17. Ausnahmebehandlung
  17.1 Fehlercodes
  17.2 Konzepte der Ausnahmebehandlung
  17.3 Arten von Ausnahmen in Java
  17.4 Ausnahmebehandler
  17.5 Auslšsen einer Ausnahme
  17.6 finally-Klausel
  17.7 Spezifikation von Ausnahmen im Methodenkopf