Keywords-course management system; student-centred
approach; learning preferences; personalization; object-oriented
programming
I. INTRODUCTION
Object-oriented programming (OOP) has become the
most powerful programming paradigm in the last twenty
years and a critical subject in most Computer Science
curricula. Yet teaching and learning OOP and programming
in general remains a difficult task. The instructor is faced
with the need to introduce challenging programming
concepts, as well as problem-solving techniques that just
recently found place in computing curricula: team work,
large systems maintenance, and software reusability. In
addition, one should find ways to deal with the variations in
students’ background and experience, the manner in which
the material builds on itself, and the extensive time required
to complete demanding programming projects.
In the past, the traditional method of teaching OOP was
to use the typical lecture format, together with assigning
students programming problems to work outside the
classroom. This method, however, works well only for high
achieving students and for students with very good,
analytical problem-solving skills [1]. Even complemented
with an applied, hands-on, approach, it lacks the specific
mechanisms to provide all the students with equal chances to
grasp the concepts the instructor aims to convey.
The usual practice nowadays at most universities is to
support traditional programming courses with online tools
for delivery of self-study instructional units, assignments