its various activities, the level and the number of stu-
dents and the way the various activities are organised.
Section 3 focuses on the individual tools in the suite;
how the suite is used, both, by the students for feed-
back and by the teacher for automatic assessment and
plagiarism detection. This section also presents some
implementation details of the tool suite. Section 4 dis-
cusses the benefits and drawbacks of the tool and how
it influenced the students’ work. In Section 5 we con-
clude and present future directions of work to improve
the tool.
2 CONTEXT
This case study is relative to an “Object Oriented
Programming in Java” course taught to students in
their third year of Bachelor degree studies in ESEO, a
French graduate school of engineering in the fields of
electronics, computer science, networks and telecom-
munications.
The first two years of studies at ESEO, referred
to as the “preparatory cycle”, are mainly dedicated to
fundamental scientific disciplines - i.e., mathematics
and physics. During each of their first two years of
studies, approximately 50 hours of the mathematics
course is dedicated to a, mainly practical, introduction
to C programming. The students thus reach their third
year of study with a basic programming knowledge.
During the first semester of the third year, our stu-
dents follow a 30 hours course on “data structures and
algorithms”. This course consists of 15 hours of lec-
tures and an equal amount of time is devoted to practi-
cal sessions. In order not to confuse the students with
a new language and syntax, a simplified dialect of the
C programming language is used to illustrate the dif-
ferent aspects presented during the lectures and to put
them in practice during the practical sessions.
The “Object Oriented Programming in Java”
course starts at the beginning of the spring semester
and runs in parallel with an introductory course on
the UML language. The objectives of the course are
manifold:
1. Introduce the students to the fundamental prin-
ciples of object oriented programming (classes,
inheritance, instanciation and message passing):
UML class diagrams together with a pseudo ob-
ject oriented language are used to illustrate these
principles.
2. Teach the core of the Java language: an explana-
tion of the way the fundamental principles are im-
plemented in Java is followed by a presentation
of some of the important classes of the Java API
(exceptions, streams, Swing/awt and threads).
3. Show the students, through a guided practical ex-
ample, how the object oriented paradigm can be
put in action to develop a graphic application and
introduce them by example to design patterns.
4. Show the students that, through the course, they
have acquired enough competency to develop a
practical project of their own and give them the
opportunity to practice their skills and discover,
by themselves, new aspects of object oriented pro-
gramming in Java.
The course has a total audience of 180 students and
approximately 70 hours over a total period of 16
weeks are allocated to it. This time is divided into
three clear parts: the first 6 weeks are for lectures, the-
oretical tutorial classes and practical tutorial classes,
during the following 5 weeks the students are guided
in the individual development of a real application and
for the last 5 weeks they develop a personnal project
in pairs.
The teacher in charge of the course has 15 years
experience in teaching object oriented programming
mainly in Java, but also with object-oriented Lisp di-
alects and Smalltalk, to various audiences, both in the
academic and professional contexts. For the tutorial
sessions and the practical aspects of the course he is
assisted by another teacher with over 5 years experi-
ence in the teaching of computer science and involved
in various aspects of the computer science curriculum.
He is the developer of the tool suite discussed in this
paper. Two PhD students are also involved in the tu-
toring of the practical activities and the tutorial classes
related to this course.
2.1 Lectures (17.5 Hours) and Tutorial
Classes (10 Hours)
This part of the course consists of 2-4 lectures and
1-2 tutorial classes a week. The lectures are rather
traditional and the number of students does not allow
for much interaction between the teacher and the stu-
dents. However, for the tutorial classes, the students
are divided in smaller groups of approximately 30 stu-
dents. Half of these classes (5 hours) concentrate on
theoretical (non-practical) aspects of the course and
are aimed at giving the students a first experience with
the object oriented modelling of small problems and
to show them how these models can be translated into
Java. One of the objectives of these tutorial classes
is to help the students shift their mind-set from a pro-
cedural to an object-oriented view of the world. The
rest of the time (5 hours) is dedicated to practical tu-
torial classes and give the students an occasion to get
used to the practical aspects of Java and learn by ex-
ample the use of the compiler, the virtual machine,
ICT ENHANCED LEARNING EXPERIENCE FOR AN INTRODUCTORY OBJECT ORIENTED PROGRAMMING
COURSE - A Case Study
17