dc.description.abstract | Students who enroll in university introductory programming courses often have
very different backgrounds. Some have never written a single line of code in their
entire life, while others have been programming for years. Having students with
so different background can be a challenge for course organizers and teaching
assistants. A system that can help the students self-evaluate their own
assignments and skill can save a lot of time for the teaching assistants, time
they can spend to help students in need. The system should also be able to provide
assignments with adjusted difficulty to each individual student. This way, both
students with a lot of programming experience as well as novice programmers can
get challenging assignments. This project seeks out to uncover the requirements
for such a system.
To identify the requirements, a questionnaire was sent out to students attending
the object oriented programming course, and a prototype was made and
tested by a small test group. A heuristic function to adjust the assignment
difficulty by advancing a skill level based on the number of correct answers in
a row was tested, and turned out to work very well. This project also looked at
what aspects can increase the students motivation to do more assignments. Another
element that was investigated was how to make the system as easy as possible to
use, to encourage students with less programming experience to do more assignments.
A leveling system, achievements and a system for adaptive assingment difficulty
turned out to be a great combination to have students with very different
background work on assignments in the same system. | |