Programming in Java


  • Course: Programming in Java (320341)
  • Semester: Fall 2015
  • Instructor: Jürgen Schönwälder
  • TA: Nicholas Lee
  • Class: Thursday, 17:15-18:30, West Hall 2
  • Class: Friday, 17:15-18:30, West Hall 2
  • Start: 2015-09-03


Java is an object-oriented programming language which is very widely used for the development of applications running on the Internet, and in particular electronic commerce applications. Java has some unique features such as platform independence and a very rich set of reusable class libraries. This course introduces the core language and the most important core Java packages.


Thu (17:15) Fri (17:15) Topics
2015-09-03 2015-09-04 Introduction, Fundamental Structures
2015-09-10 2015-09-11 Object Oriented Programming
2015-09-17 2015-09-18 Object Oriented Programming, Arrays
2015-09-24 2015-09-25 Packages, Exceptions
2015-10-01 2015-10-02 Inheritance, Access Modifiers, Polymorphism, Interfaces
2015-10-08 2015-10-09 Collections, maven
2015-10-15 2015-10-16 junit, I/O, Streams, Reader, Writer, Serializable
2015-10-22 2015-10-23 Threads, Locks, Callable, Future
2015-10-29 2015-10-30 Network Programming, Event Handling
2015-11-05 2015-11-06 Swing User Interface Components
2015-11-12 2015-11-13 Spring Framework: Dependency Injection and Aspect Oriented Programming
2015-11-19 2015-11-20 Relational Database Access (JDBC, Hibernate)
2015-11-26 2015-11-27 Introduction to Hadoop
2015-12-03 2015-12-04 Java Hacks and Wrap Up


Date/Due Name Topics
2015-09-18 Sheet #1 Java compiler and VM options, Collatz sequences
2015-09-25 Quiz #1 primitive types, initializers, constructors, exceptions
2015-10-06 Sheet #2 processing JSON encoded network flow records (
2015-10-09 Quiz #2 classes, interfaces, inheritance, nested classes, generics, collections
2015-10-23 Quiz #3 input/output, threads
2015-10-30 Sheet #3 advanced flow record processing (timed flow bins, quantiles, gnuplot data files)
2015-11-06 Quiz #4 network programming
2015-11-16 Sheet #4 advanced flow record processing (AS lookup, grouping of flow records)
2015-11-20 Quiz #5 graphical user interfaces, event handling, model-view-controller, observer/listener
2015-12-04 Quiz #6 beans, annotations, databases
2015-12-08 Sheet #5 persistent storage of flow results using relational database tables
2015-12-21 Final Exam 09:00-11:00 Lecture Hall Research III (closed book)


The final grade is made up of the final exam (40 %), biweekly quizzes (30 %) and some homework assignments (30 %). It is required to submit the solution for homeworks assignments electronically. Late submissions will not be accepted. Homeworks may need to be defended in an oral interview.

Any programs which have to be written will be evaluated based on the following criteria:

  • correctness including proper handling of error conditions
  • proper use of programming language constructs
  • clarity of the program organization and design
  • readability of the source code and any output produced

Source code must be accompanied with a README providing an overview of the source files and giving instructions how to build the programs. A suitable Makefile or Maven POM file is required if the build process involves more than a single source file.

For any questions stated on assignment sheets, quiz sheets, exam sheets or during makeups, we by default expect a reasoning for the answer given, unless explicitely stated otherwise.

The policy on makeup quizzes is the following: There won't be any quiz makeups. If you (a) get an official excuse for a quiz from the registrar's office or (b) approach we well in advance of the quiz with a very good reason for not being able to participate (e.g., because you take a GRE computer science subject test at the day of a quiz), then the weight of the final exam will be increased according to the weight of the quiz you got excused for.