Übungen zu Grundlagen der Programmierung

Beschreibung

Die Übung 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. Weiters werden auch Fragen der Programmkorrektheit und des Programmierstils behandelt.

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