An exploration of novice compilation behaviour in BlueJ

Our research explores the process by which beginning programmers go about writing programs. We have focused our explorations on what we call compilation behaviour: the programming behaviour a student engages in while repeatedly editing and compiling their programs in an attempt to make them syntactically, if not semantically, correct. The students whose behaviour we have observed were engaged in learning to program in an objects-first style using BlueJ, an environment designed for supporting novice programmers just starting out with the Java programming language. The significant results of our work are two-fold. First, we have developed tools for visualising the process by which students write their programs. Using these tools, we can quickly obtain valuable information about their process, and use that information to inform further research regarding their behaviour, or apply it immediately in a classroom context to better support the struggling learner. Second, we have proposed a quantification of novice compilation behavior which we call the error quotient. Using this metric, we can determine how well (or poorly) a student fares with syntax errors while learning to program. This quantity, like our tools for visualisation, provides a powerful indicator for how much or little a student is struggling with the language while programming, and correlates significantly with traditional indicators for academic progress.

[1]  Charles M. Reigeluth,et al.  Instructional-Design Theories and Models: A New Paradigm of Instructional Theory , 1999 .

[2]  Brad A. Myers,et al.  Usability Issues in the Design of Novice Programming Systems , 1996 .

[3]  Robert McCartney,et al.  A multi-national study of reading and tracing skills in novice programmers , 2004, ITiCSE-WGR '04.

[4]  Peter Dalgaard,et al.  Introductory statistics with R , 2002, Statistics and computing.

[5]  Alan S. Neal,et al.  A methodology for objectively evaluating error messages , 1983, CHI '83.

[6]  Sue Fitzgerald,et al.  A multi‐institutional, multinational study of programming concepts using card sort data , 2005, Expert Syst. J. Knowl. Eng..

[7]  Murray Crease,et al.  A Distributed Usage Monitoring System , 2004, CADUI.

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

[9]  Renee Hobbs,et al.  Conditions of Learning in Novice Programmers , 1986 .

[10]  Gary M. Olson,et al.  Comprehension differences in debugging by skilled and novice programmers , 1986 .

[11]  Michael Kölling,et al.  The BlueJ System and its Pedagogy , 2003, Comput. Sci. Educ..

[12]  Michele H. Jackson,et al.  Defensive climate in the computer science classroom , 2002, SIGCSE '02.

[13]  Jean Hartley,et al.  Case study research , 2004 .

[14]  Richard E. Mayer,et al.  Learning to program and learning to think: what's the connection? , 1986, CACM.

[15]  Cynthia A. Tananis,et al.  Generating grounded theory of/for educational practice: the journey of three epistemorphs , 2004 .

[16]  Gopal Kanji,et al.  100 Statistical Tests , 1994 .

[17]  C. Robert Zarnke,et al.  WATFOR—The University of Waterloo FORTRAN IV compiler , 1967, CACM.

[18]  B. Marx The Visual Display of Quantitative Information , 1985 .

[19]  P. Fayers,et al.  The Visual Display of Quantitative Information , 1990 .

[20]  Richard E. Mayer,et al.  The Psychology of How Novices Learn Computer Programming , 1981, CSUR.

[21]  Elliot Soloway,et al.  Uncovering principles of novice programming , 1983, POPL '83.

[22]  Thomas Reps,et al.  Programming Techniques and Data Structures , 1981 .

[23]  Brad A. Myers,et al.  Eliciting design requirements for maintenance-oriented IDEs: a detailed study of corrective and perfective maintenance tasks , 2005, ICSE.

[24]  Tammy VanDeGrift Coupling pair programming and writing: learning about students' perceptions and processes , 2004 .

[25]  William C. Lynch Description of a high capacity, fast turnaround university computing center , 1966, CACM.

[26]  P. G. Moulton,et al.  DITRAN—a compiler emphasizing diagnostics , 1967, CACM.

[27]  Howard Lee Morgan,et al.  Spelling correction in systems programs , 1970, Commun. ACM.

[28]  Elliot Soloway,et al.  Studying the Novice Programmer , 1988 .

[29]  Peter J. Brown,et al.  Error messages: the neglected area of the man/machine interface , 1983, CACM.

[30]  Richard E. Mayer,et al.  A diagnosis of beginning programmers' misconceptions of BASIC programming statements , 1983, Commun. ACM.

[31]  Sally Fincher,et al.  'My Criterion is: Is it a Boolean?': A card-sort elicitation of students' knowledge of programming constructs , 2003 .

[32]  Robert S. Rist Plans in programming: definition, demonstration, and development , 1986 .

[33]  Ben Shneiderman,et al.  Program indentation and comprehensibility , 1983, CACM.

[34]  Thomas R. G. Green,et al.  Cognitive dimensions of notations , 1990 .

[35]  David Perkins,et al.  Fragile knowledge and neglected strategies in novice programmers , 1985 .

[36]  Sally Fincher,et al.  Making sense of card sorting data , 2005, Expert Syst. J. Knowl. Eng..

[37]  Linda Kathryn McIver Syntactic and semantic issues in introductory programming education , 2001 .

[38]  O. Strömfors,et al.  The implementation and experiences of a structure-oriented text editor. , 1981 .

[39]  Margaret M. Burnett,et al.  Representation Design Benchmarks: A Design-Time Aid for VPL Navigable Static Representations , 1997, J. Vis. Lang. Comput..

[40]  C Bron,et al.  COGNITIVE STRATEGIES AND LOOPING CONSTRUCTS - AN EMPIRICAL-STUDY , 1984 .

[41]  Laurie A. Williams,et al.  In support of student pair-programming , 2001, SIGCSE '01.

[42]  A. Strauss,et al.  Basics of qualitative research: Grounded theory procedures and techniques. , 1993 .

[43]  Susan Wiedenbeck,et al.  An empirical study of novice program comprehension in the imperative and object-oriented styles , 1997, ESP '97.

[44]  Gordon B. Davis,et al.  A study of errors, error-proneness, and error diagnosis in Cobol , 1976, CACM.

[45]  Matthew C. Jadud A First Look at Novice Compilation Behaviour Using BlueJ , 2005, Comput. Sci. Educ..

[46]  Robert G. Munck Meeting the computational requirements of the university - the Brown University Interactive Language , 1969, ACM '69.

[47]  A. F. Norcio Indentation, documentation and programmer comprehension , 1982, CHI '82.

[48]  Matthew Flatt,et al.  ProfessorJ: a gradual introduction to Java through language levels , 2003, OOPSLA '03.

[49]  J. Whitney Case Study Research , 1999 .

[50]  Eric S. Roberts,et al.  Using C in CS1: evaluating the Stanford experience , 1993, SIGCSE '93.

[51]  David J. Gilmore,et al.  Comprehension and Recall of Miniature Programs , 1984, Int. J. Man Mach. Stud..

[52]  Matthew Flatt,et al.  PLT MzScheme: Language Manual , 2000 .

[53]  Fintan Culwin,et al.  Towards an error free plagarism detection process , 2001, ITiCSE.

[54]  Ronald Baecker,et al.  Enhancing program readability and comprehensibility with tools for program visualization , 1988, Proceedings. [1989] 11th International Conference on Software Engineering.

[55]  Elliot Soloway,et al.  Analyzing the high frequency bugs in novice programs , 1986 .

[56]  Michael Kölling,et al.  Objects First with Java - A Practical Introduction Using BlueJ (5th Edition) , 2002 .