Misunderstandings about object-oriented design: experiences using code reviews

In this paper we present our experience using code reviews in a CS2 course. In particular, we highlight a series of misunderstandings of object-oriented (OO) concepts we observed as a by-product of the code review exercise. In our activity, we asked students to review code, rate it using a rubric, and to justify their explanation. The students were asked to review two solutions to a project from a previous year. Through examples of their explanations, we found that students had a number of basic misunderstandings of object-oriented principles. In this paper, we present our observations of the misunderstandings, and present some general observations of how code reviews can be used as an assessment tool in CS2.

[1]  R. Sternberg,et al.  The Psychology of Intelligence , 2002 .

[2]  Mark Woodman,et al.  Avoiding object misconceptions , 1997, SIGCSE '97.

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

[4]  William G. Griswold,et al.  Lightweight preliminary peer review: does in-class peer review make sense? , 2007, SIGCSE '07.

[5]  Mordechai Ben-aft,et al.  Constructivism in computer science education , 1998, SIGCSE '98.

[6]  Andreas Zeller,et al.  Making students read and review code , 2000, ITiCSE '00.

[7]  Stephen H. Edwards Rethinking computer science education from a test-first perspective , 2003, OOPSLA '03.

[8]  Lionel E. Deimel The uses of program reading , 1985, SGCS.

[9]  Mary Beth Rosson,et al.  The effects of individual differences on CS2 course performance across universities , 2005, SIGCSE '05.

[10]  Deborah Anne Trytten,et al.  A design for team peer code review , 2005, SIGCSE '05.

[11]  Genevieve Orr,et al.  Interactive program demonstration as a form of student program assessment , 2002 .

[12]  Michael Thuné,et al.  Novice Java programmers' conceptions of "object" and "class", and variation theory , 2005, ITiCSE '05.

[13]  W. G. Perry Forms of Intellectual and Ethical Development in the College Years: A Scheme. Jossey-Bass Higher and Adult Education Series. , 1970 .

[14]  Anthony V. Robins,et al.  My Program is Correct But it Doesn t Run: A Preliminary Investigation of Novice Programmers Problems , 2005, ACE.

[15]  H. Motz Teaching Engineering , 1967, Nature.

[16]  Scott Hamilton,et al.  Peer Review In Engineering Courses As A Learning Tool , 2006 .

[17]  Mary Beth Rosson,et al.  What do the experts say?: teaching introductory design from an expert's perspective , 2004, SIGCSE.

[18]  Stephen H. Edwards,et al.  Using software testing to move students from trial-and-error to reflection-in-action , 2004, SIGCSE '04.

[19]  K. Topping Peer Assessment Between Students in Colleges and Universities , 1998 .

[20]  Ilana Lavy,et al.  Cognitive activities of abstraction in object orientation: an empirical study , 2004, SGCS.

[21]  Kate Sanders,et al.  Checklists for grading object-oriented CS1 programs: concepts and misconceptions , 2007, ITiCSE.

[22]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[23]  Mike Joy,et al.  Effective peer assessment for learning computer programming , 2004, ITiCSE '04.