Documente Academic
Documente Profesional
Documente Cultură
Programming Assignments
Abstract Due to an increasing number of students, more for the assessment of Java programs, offers feedback in form of
and more learning institutions tend to use computer-supported run time traces [4] and graph representations of data structures
learning tools like online learning platforms or intelligent [5].
tutoring systems. This has opened up the opportunity to collect a
huge amount of students data. Educational Data Mining (EDM) To investigate common student programming errors,
uses mining techniques to derive information from these data various studies were carried out. They differ in the investigated
about students knowledge, behavior and experience to improve programming language and in the kind of information about
education. In this paper, we present a framework for mining mistakes and how it was obtained. One of the first studies on
programming errors of computer science students by analyzing first-year students mistakes [6] used goal/plan analysis to find
the students solutions to a programming assignment. The logical errors in Pascal programs and to suggest possible
framework serves as both, a computer aided assessment tool as misconceptions the students may have had. Further attempts to
well as an immediate feedback tool about the learning progress of gather common programming errors were the evaluation of
the students for the educator. compiler error logs [7][9], observations by the teaching staff
during class [10], and interviews and surveys with students and
Keywordscomputer aided assessment; educational data educators [7], [11].
mining; programming errors
CAA has opened the possibility to collect a huge amount of
I. INTRODUCTION students data, this opportunity is not fully exploited. Most
Assessment is a useful mean to provide feedback to CAA tools just assess a students solution and provide some
students as well as to educators about the learning progress. kind of feedback. Data gained during the assessment process,
However, providing qualitative feedback is a time consuming e.g., compiler logs, traces, or code metrics, can be used to
task. Especially the assessment of programming exercises is detect which students require support or predict their
exceedingly hard, since the number of all possible solutions is performance. However, the generated data are often not
unlimited and student numbers increase. Often programming processed and thus remain unused [12].
exercises are assessed by using black box tests which compare In this paper, we present a framework which serves as a
the students solution outputs with the expected output to CAA tool for programming assignments. In contrast to many
determine whether the solutions are correct. The disadvantage existent CAA tools, it exploits the data generated during the
of this practice is that black box tests do not deliver further analysis of the students solutions to draw conclusions about
information about the errors made. So either the students get no students programming behavior and skills. The paper is
concrete information about their faults at all, or the teaching organized as follows. In Section 2, we introduce our research
staff has to go through the solutions manually to provide project and the basic structure of the project. The particular
valuable feedback. phases and the current status of the project are then discussed
In the last years, many institutes register an increasing in Section 3. Section 4 deals with the implementation details of
number of beginning students. Way above 200 students have a prototype of the framework for the analysis of students C
enrolled in computer science in the winter semester 2015/16 at programs.
the University of Gttingen. That is about 65% more than the II. PROJECT AND FRAMEWORK STRUCTURE
year before. This hampers a manual assessment. To cope with
the amount of students, a variety of automatic assessment tools In our project, we are developing a framework that aims at
was developed [1]. collecting and processing data about students solutions to a
programming assignment. It serves as both, a computer aided
Recent computer aided assessment (CAA) tools like, e.g., assessment tool as well as a mining platform which provides
ASSYST [2], are not only able to check the correctness of a immediate feedback about the learning progress of the students
program, but also its complexity, efficiency and style. to the educator. The collected data can be examined to make
Furthermore, the tools try to give students enhanced feedback conclusions about students programming behavior and skills.
to their mistakes. For example JACK [3], a web-based system The data are composed of the students programming errors, an
feedback
U
static analysis
students x compilation
D
x
x
static code
analysis
style
D
x code metrics U
D
error classification
results
exercise
error localization
educator
clustering error localization
sample
solution
error localization
feedback
Fig. 1. Basic structure of the framework
Fig. 2. Example for a students program that aims at printing out all
characters between A and z