Programming in Java (Fall 2014)
Course: Programming in Java (320341)
Instructor: Jürgen Schönwälder
TA: Stiv Klaud Sherko
Thursday 17:15 - 18:30 Lecture Hall Research III
Friday 17:15 - 18:30 Lecture Hall Research III
Start: September 4th, 2014

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.

Course Materials:
2014-09-04 2014-09-05 Introduction, Fundamental Structures
2014-09-11 2014-09-12 Object Oriented Programming
2014-09-18 2014-09-19 Object Oriented Programming, Arrays
2014-09-25 2014-09-26 Packages, Exceptions
2014-10-02 2014-10-03 Inheritance, Access Modifiers, Polymorphism, Interfaces
2014-10-09 2014-10-10 Collections, maven
2014-10-16 2014-10-17 junit, I/O, Streams, Reader, Writer, Serializable
2014-10-23 2014-10-24 Threads, Locks, Callable, Future
2014-10-30 2014-10-31 Network Programming, Event Handling
2014-11-06 2014-11-07 Swing User Interface Components
2014-11-13 2014-11-14 Spring Framework: Dependency Injection and Aspect Oriented Programming
2014-11-20 2014-11-21 Relational Database Access (JDBC, Hibernate)
2014-11-27 2014-11-28 Introduction to Android
2014-12-04 2014-12-05 Java Hacks and Wrap Up
2014-09-19Assignment #1Factorization of numbers using long and BigDecimal
2014-09-26Quiz #1Fundamentals
2014-10-10Quiz #2Packages, Exceptions, Inheritance, Access Modifiers, Polymorphism, Interfaces
2014-10-17Assignment #2Scotland Yard: Where is Mr. X? (
2014-10-24Quiz #3Collections, Streams, Reader, Writer
2014-11-13Quiz #4Concurrency, Event Handling
2014-11-14Assignment #3Scotland Yard: Play the Game.
2014-12-02Assignment #4Scotland Yard: Watch the Game.
2013-12-07Bonus AssignmentScotland Yard: Move smart.
2013-12-13Final Exam16:00 - 18:00, Lecture Hall Research III (closed book)

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

Solutions must be submitted via the grader. Late submissions after the deadline will be penalized. For every hour late, you will lose 10% of the points. We account an additional bonus of 15 minutes for electronic submissions (you know how well email sometimes works). This means, a solution received up to and including 1 hour late (01:15) will lose 10%, a solution received up to and including 2 hours late (02:15) will lose 20% and so on. If we receive more than one submission, we will pick the last one.

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 is required if the build process involves more than a single source file.

The policy on makeup quizzes and exams is the following: To be able to get a makeup, you have to either (a) have an official excuse from the registrar's office or (b) approach me well in advance of the quiz/exam 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). Furthermore, I require that people take action to immediately contact me when they return to campus or recover from illness so that we can fix a date for the makeup. Once a week has passed, I do not feel obliged to offer a makeup anymore.