For me, teaching is fun. This does not mean that I do not take it seriously – on the contrary, I always prepare my exercise classes and presentations thoroughly and extensively. For as long as I
can remember, I have enjoyed teaching. I find it extremely fascinating to help and guide students
in their learning process, and it is one of the most satisfying experiences for me to see a student
finally understand a subject, be it derivatives, quicksort, or how to smash a volleyball. This is why
I chose to teach private lessons and exercise classes, and this is what makes me look forward to
my future lectures.
In the following, I will describe some aspects of teaching that I consider very important, using
the course Programming in Java as a (very successful) example. I taught this course in spring 2001
together with Alexander Below, another Ph.D. student at the Department of Computer Science
of ETH Zurich. I initiated the course, driven by my first experiences in lecturing in summer
2000, and motivated by the conviction that one can learn programming only by implementing a
large and complex program. The course was attended by 50 students with basic programming
knowledge and consisted of two parts: The first week was dedicated to learning the basics of Java;
in the remaining two weeks, the students were split into groups of five students to implement a
large project, a computer game. The website of the course (in German) can be accessed via my
In the first week, we taught two lectures per day, each followed by two hours of exercises.
The goal of each lecture was to introduce a “small” basic topic, such as object creation or event handling. The main purpose of these lectures was to give the students an impression of what
is possible in Java, and how to use it. It was (and still is) our conviction that we cannot teach something to the students – they have to learn it by themselves. Accordingly, we only presented the
subjects that we considered relevant, and left it to the students to learn the details by themselves.
Our lectures were supported by exercises, where the students solved tasks at the computer.
The level of the tasks was increasing from very easy to challenging, allowing each student to learn
and succeed at his/her personal level. During the exercises, we were present in the computer room
to answer questions; however, our main intention was to help the students help themselves. To this
end, we often pointed the students only to the corresponding chapter of a book, encouraging them
to find the solution by themselves, or sent them to ask another student who had solved the problem
already. Especially the latter method proved to be very successful, since the students were always
happy to share their know–how.
In the remaining two weeks of the course, the students implemented the game “Crazy Maze”. We had chosen this rather simple game, because we wanted to ensure that all students end up with
a running program. This was in accordance with our belief that success and positive feedback is
one of the main ingredients of successful learning. During the first days of the project, we helped
the students every now and then, especially with the object–oriented design. Later, we reduced
our interaction more and more, and the students worked autonomously. At the end of the project,
our strategy had worked out well: Every group had implemented the game, and most of them had
even time to add features like multi–user mode or computer players.
Go back to my teaching website