Ruprecht-Karls-Universität Heidelberg
Bilder vom Neuenheimer Feld, Heidelberg und der Universität Heidelberg

Programmieren II: Fortgeschrittene

Kursbeschreibung

Studiengang Modulkürzel Leistungs-
bewertung
BA-2010 PII 6 LP
NBA PII 6 LP
Magister - -
Dozenten/-innen Kathrin Spreyer
Veranstaltungsart Vorlesung/Übung
Erster Termin 24.04.2012
Zeit und Ort Di, 16:1517:45, INF 327 / SR 1 (SR)
  Mi, 11:1512:45, INF 327 / SR 5 (SR)

Teilnahmevoraussetzungen

Erfolgreicher Abschluss des Kurses "Programmieren I".

Leistungsnachweis

  • erfolgreiche Bearbeitung von Übungsaufgaben
  • Bestehen der Abschlussklausur

Zur Klausur wird nur zugelassen, wer in den Übungsaufgaben eine Mindestanzahl von Punkten erreicht hat.

Inhalt

In der Vorlesung werden die in "Programmieren I" erworbenen Grundkenntnisse anhand einer zweiten Programmiersprache und der Entwicklung von elementaren Kenntnissen der Softwareentwicklung erweitert und vertieft. Neben einer Einführung in objektorientierte Programmierung in der Programmiersprache Java wird dabei auch in allgemeine Themen der Softwaretechnik eingeführt; u.a. zentrale Methoden und Vorgehensweisen der Softwareentwicklung wie z.B. (objektorientiertes) Design, Software-Dokumentation und Deployment.

Kursübersicht

Seminarplan (subject to change)

Date Topic Materials Literature
24.4. Introduction assignment1.zip (due April 27)
25.4. Variables & data types
Code: MethodSignature.java
Triangular.java
assignment2.zip (due May 4) EJ item 48 (pp. 218--220)
01.5. --
02.5. Conditionals, loops & typing
Code: TriangularWithLoops.java
StaticTyping.java (won't compile)
StrongTyping.java (won't compile)
assignment3.zip (due May 11)
08.5. Increment operators, arrays
Code: ArrayTests.java
DotProduct.java
09.5. break & continue, for-each,
multidimensional arrays

Code: PrintingArrays.java
BreakExample.java
ContinueExample.java
ForEachTest.java
MultiplicationTable.java
assignment4.zip (due May 18) EJ item 46 (pp. 212--214)
15.5. Sorting
Code: BubbleSort.java
InsertionSort.java
BuiltinSort.java
Cormen:
ch. 2 (insertion sort, merge sort)
ch. 6 (heap sort)
ch. 7 (Quicksort)
16.5. Strings & I/O (I) (keine Folien) assignment 5 (due May 25) Documentation of the String class
22.5. Strings & I/O (II)
23.5. Strings & I/O (III)
29.5. Collections (I)
30.5. "Zwischenklausur" (= assignment 6) assignment 7 (due June 8)
05.6. Classes & inheritance (I)
06.6. Classes & inheritance (II)
12.6. Classes & inheritance (III)
13.6. Collections (II)
19.6. Collections (III)
20.6. Interfaces
26.6. Documentation & deployment
27.6. Exceptions (II)
03.7. buffer
04.7. Threads (I)
10.7. Threads (II)
11.7. Design Patterns (I)
17.7. Design Patterns (II)
18.7. buffer
24.7.
25.7.

Literatur

  • http://docs.oracle.com/javase/6/docs/api/
  • D. Flanagan (2005). "Java in a Nutshell". O'Reilly.
  • K. Sierra & B. Bates (2005). "Head First Java". O'Reilly.
  • J. Bloch (2008). "Effective Java". Addison-Wesley.
    abbreviated as [EJ] (see also here)
  • S. Oaks & H. Wong (2004). "Java Threads". O'Reilly
  • interessant, aber im Kurs nur am Rande behandelt:
    E. Freeman et al. (2004). "Head First Design Patterns". O'Reilly

» weitere Kursmaterialien

Tutorium

zum Seitenanfang