.
Erfolgreicher Abschluss des Kurses "Programmieren I".
Zur Klausur wird nur zugelassen, wer in den Übungsaufgaben eine Mindestanzahl von
Punkten erreicht hat.
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.
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. |
String methods |
assignment5.zip (due Jun 01) |
Documentation of the String class |
22.5. |
StringBuilder, reading files, exceptions
Code: StringEqualityTest.java
StringBuilderTest.java
ReadAFile.java
ExceptionTest.java (updated: w/ close())
FactorialWithException.java
|
|
EJ item 51 (p. 227)
EJ item 57 (p. 241--243) |
23.5. |
Regular expressions (see Pattern)
Code etc.: PatternTest.java
strings.txt, terminal.txt
|
|
Documentation of Pattern and Matcher |
29.5. |
Regular expressions (cont.) |
|
|
30.5. |
"Zwischenklausur" (= assignment 6)
on paper |
Zwischenklausur (A / B) |
|
05.6. |
Besprechung Zwischenklausur; character encodings
Code & data: EncodingsTest.java
unicode.txt, latin1.txt
StdoutAndStderr.java |
|
blog post,
another blog post |
06.6. |
Classes & objects
Code: Point.java,
PointTest.java
Circle.java,
CircleTest.java
|
assignment 7 (due Jun 17) |
|
12.6. |
Encapsulation
Code: GoodCircle.java
GoodCircleTest.java
Rectangle.java
|
|
EJ item 13 (p. 67--70),
EJ item 14 (p. 71--72) |
13.6. |
Inheritance
Code: Shape.java
Rectangle.java
Circle.java
ShapeTest.java
|
assignment8.zip (due July 01) |
EJ item 8 (p. 33--44),
EJ item 9 (p. 45--50),
EJ item 10 (p. 51--53)
|
19.6. |
instanceof, casting, constructor chaining
Code: TypeTests.java
|
|
|
20.6. |
HashMaps and other collections
Code: CollectionsTest.java |
|
Collections tutorial,
EJ item 9 (p. 45--50),
Generics tutorial,
Cormen:
ch. 11 (hash tables)
|
26.6. |
Polymorphism
Code: CollectionsTest.java, PolymorphicCode.java |
|
!! EJ item 52 (p. 228--229)
|
27.6. |
Interfaces & multiple inheritance |
|
OO-Principles (B. Tarr),
EJ item 37 (p. 179--180)
|
03.7. |
Packages & deployment
Code: lecture20.zip |
|
|
04.7. |
Documentation & deployment
Code: lecture21.zip |
assignment9.pdf (due July 15) |
EJ item 44 (p. 203--208),
one of many javadoc overviews |
10.7. |
XML
Code: ExtractTextDom.java,
ExtractTextSax.java
Data: corpus (excerpt),
corpus (complete) |
|
|
11.7. |
Threads
Code: MyThread.java,
MyThread2.java,
MyThread3.java,
MyThread2NoVolatile.java,
Race.java |
-- |
Synchronization |
17.7. |
recap |
-- |
|
18.7. |
11.30--13.00 Klausur INF 327, SR 20 |
Commitment: July 5 -- July 12 |
on paper, cheat sheet allowed (1 A4 sheet) |
24.7. |
Stanford CoreNLP |
|
CoreNLP API documentation,
CoreNLP homepage |
25.7. |
Beyond this course: reflection, generics, Trove library
Code: ShapeTestWithClassClass.java, Pair.java, TroveTest.java
|
|
reflection (but see also EJ item 53), generics, Trove;
Nanoseconds,
WAT |