Synthesis and analysis of automatic assessment methods in CS1: generating intelligent MCQs

This paper describes the use of random code generation and mutation as a method for synthesising multiple choice questions which can be used in automated assessment. Whilst using multiple choice questions has proved to be a feasible method of testing if students have suitable knowledge or comprehension of a programming concept, creating suitable multiple choice questions that accurately test the students' knowledge is time intensive.This paper proposes two methods of generating code which can then be used to closely examine the comprehension ability of students. The first method takes as input a suite of template programs, and performs slight mutations on each program and ask students to comprehend the new program. The second method performs traversals on a syntax tree of possible programs, yielding slightly erratic but compilable code, again with behaviour that students can be questioned about. As well as generating code these methods also yield alternative distracting answers to challenge the students. Finally, this paper discusses the gradual introduction of these automatically generated questions as an assessment method and discusses the relative merits of each technique.

[1]  B. Bloom Taxonomy of educational objectives , 1956 .

[2]  Elliot Soloway,et al.  Novice mistakes: are the folk wisdoms correct? , 1986, CACM.

[3]  John Leaney,et al.  Introductory programming, criterion-referencing, and bloom , 2003, SIGCSE.

[4]  Raymond Lister Objectives and objective assessment in CS1 , 2001, SIGCSE '01.

[5]  John Waldron,et al.  Assessing the assessment of programming ability , 2004 .

[6]  Peter Bancroft,et al.  Managing Large Class Assessment , 2004, ACE.

[7]  Mark Guzdial,et al.  A multi-national, multi-institutional study of assessment of programming skills of first-year CS students , 2001, ITiCSE-WGR '01.

[8]  Raymond Lister On blooming first year programming, and its blooming assessment , 2000, ACSE '00.

[9]  Benedict du Boulay,et al.  Some Difficulties of Learning to Program , 1986 .

[10]  Derek H. Sleeman,et al.  A Summary of Misconceptions of High School Basic Programmers , 1984 .

[11]  Eva Dobozy,et al.  Psychology Applied to Teaching , 1971 .

[12]  Ann E. Fleury Programming in Java: student-constructed rules , 2000, SIGCSE '00.

[13]  Michael O'Neill,et al.  Grammatical Evolution: Evolving Programs for an Arbitrary Language , 1998, EuroGP.

[14]  Rebecca T. Mercuri,et al.  Identifying and correcting Java programming errors for introductory computer science students , 2003, SIGCSE.

[15]  Nelishia Pillay,et al.  Using genetic programming for the induction of novice procedural programming solution algorithms , 2002, SAC '02.