[an error occurred while processing this directive]

Techniques of Java Programming

Bertrand Meyer and  Manuel Oriol, Summer Semester 2006


Announcements | Description | Schedule | Project | Exam | Litterature | Course Wiki



10 July 2006
  • The second exam (for those who haven't taken an exam yet) will take place today at ML E 12 at 14.00
03 July 2006
26 June 2006
  • Added slides for lectures 12.
8 June 2006
  • Added slides for lectures 9 and 10.
7 June 2006
  • Added material for Serialization exercise.
6 June 2006
  • Added reading to Byte code and Just-in-time.
29 May 2006
  • Added reading to Middleware II.
25 May 2006
  • Updated schedule.
23 May 2006
  • Added second questionnaire on the wiki for those willing to fill it at home.
19 May 2006
  • Added middleware slides and published questionnaires on the wiki for those who haven't filled them in yet.
15 May 2006
11 May 2006
10 May 2006
7 May 2006
27 April 2006
24 April 2006
20 April 2006
19 April 2006
  • Added UML slides
  • Added textbook exercises corrections in the wiki
  • Added readings
18 April 2006
  • Updated the textbook
12 April 2006
  • Added XP/TDD slides
  • Added link to course wiki
10 April 2006
  • Added information about new rooms! Wednesday in HG D 5.2 and on Thursday in ML E 12
  • Added information about exam
  • Added information about project
06 April 2006
  • Added reading assignement on Type Systems. Read at least section 1 that is very easy to understand.

05 April 2006

  • Beta version of the Java Basics course material online. Added also the program.

04 April 2006

  • The course will start on the 5th of April (16.00 - 17.00;IFW A 32.1) as scheduled. As an exception, instead of an exercise a lecture will be held on that day. The corresponding exercise will be held during a following lecture.

10 February 2006

  • This page is now active.


Title and Code

Techniques of Java Programming
Course code: 251-0284-00


Prof. Dr. Bertrand Meyer, Dr. Manuel Oriol, Dr. Lisa Liu, Andreas Leitner, Till G. Bay


The course reviews most of the advanced Java language features after a short introduction to the language. This course is aimed at people that already have notions in programming and in object-orientation. During the course, articles and documentation will be shown and discussed.


Knowledge of another Object-Oriented programming language is mandatory for understanding this course.


  • Java Basics.
  • Eclipse development platform.
  • Threads and Synchronization.
  • Dynamic Class Loading.
  • Reflection.
  • Java Virtual Machine.
  • Byte-code and Just-in-time compiler.
  • Java Middleware.
  • Java Components.
  • Specifics of Java vs specifics of Eiffel.

The literature for presentations covering those topics is given below.


  • Wednesdays 16.00 - 17.00, HG D 5.2
  • Thursdays 14.00 - 16.00, ML E 12

Office hours: by appointment, RZ-J4.

  Lectures program

Exercises (Tentative)

Thursday 6 April Eclipse Tutorial
Wednesday 12 April XP/TDD
Wednesday 19 April UML and Project slides and IEEE document
Wednesday 10 May Non-blocking IO slides and Non-blocking IO source
Wednesday 17 May Unit Testing Platform and UnitTestingPlatform source code and IntListTest source code
Wednesday  24 May Exam Questions
Wednesday 7 June Serialization
Wednesday 14 June Generics, Boxing, Foreach Loop, Vriable Arguments

The course wiki contains information about the project and the exercise and is generally a place for communication between the participants of the course.


The project starts in week 16 (19.4.2006). Students are forming teams of up to five (5) people and choose an opensource Java project to which they wish to contribute. The actual project work will involve everything from selecting the project, to getting in touch with the development practices of the project to contributing patches. More on this will be announced in the exercise session of April 19th. See the project slides for guidelines or even better the course wiki.

A list of opensource Java projects is given below as inspiration:



Development plan


Eclipse http://www.eclipse.org

For example here:

Tomcat http://tomcat.apache.org bug driven http://issues.apache.org/bugzilla
Maven http://maven.apache.org bug driven http://issues.apache.org/bugzilla
Open Office http://www.openoffice.org http://development.openoffice.org/todo.html http://qa.openoffice.org/issue_handling/project_issues.html
Azureus http://azureus.sourceforge.net bug driven http://sourceforge.net/tracker/?group_id=84122&atid=575154
JSR http://www.jcp.org http://www.jcp.org/en/jsr/all http://bugs.sun.com/bugdatabase/index.jsp
ArgoUML http://argouml.tigris.org/ http://argouml.tigris.org/dev.html http://argouml.tigris.org/project_bugs.html
JUnit http://www.junit.org/index.htm bug driven http://sourceforge.net/tracker/?group_id=15278&atid=115278
Anteater http://aft.sourceforge.net/ http://aft.sourceforge.net/todo.html http://sourceforge.net/tracker/?func=add&group_id=42970&atid=434732
GPSylon http://www.tegmento.org/gpsylon/ http://www.tegmento.org/gpsylon/#todo http://sourceforge.net/tracker/?group_id=64816&atid=508750
XmlIO http://www.bifrost.org/xmlio/index.shtml http://www.bifrost.org/xmlio/todo.shtml
JEiffel http://se.inf.ethz.ch/projects/benno_baumgartner/ http://se.inf.ethz.ch/projects/benno_baumgartner/



The exam will take place on July 6th 2006 from 14.00 - 16.00. It will be written and cover the material from the course. More precise information on the covered topics will be announced here.