Automatic self-evaluation system for novice Python developers
MetadataVis full innførsel
Students who enroll in university introductory programming courses often havevery different backgrounds. Some have never written a single line of code in theirentire life, while others have been programming for years. Having students withso different background can be a challenge for course organizers and teachingassistants. A system that can help the students self-evaluate their ownassignments and skill can save a lot of time for the teaching assistants, timethey can spend to help students in need. The system should also be able to provideassignments with adjusted difficulty to each individual student. This way, bothstudents with a lot of programming experience as well as novice programmers canget challenging assignments. This project seeks out to uncover the requirementsfor such a system. To identify the requirements, a questionnaire was sent out to students attendingthe object oriented programming course, and a prototype was made andtested by a small test group. A heuristic function to adjust the assignmentdifficulty by advancing a skill level based on the number of correct answers ina row was tested, and turned out to work very well. This project also looked atwhat aspects can increase the students motivation to do more assignments. Anotherelement that was investigated was how to make the system as easy as possible touse, to encourage students with less programming experience to do more assignments. A leveling system, achievements and a system for adaptive assingment difficultyturned out to be a great combination to have students with very differentbackground work on assignments in the same system.