The Effectiveness of Screencasts and Cognitive Tools as Scaffolding for Novice Object-Oriented Programmers

Introduction The present article describes a project aimed at investigating the use of structured, screencast-based exercises, in conjunction with the popular BlueJ (Barnes & Kolling, 2002; Kolling, Quig, Patterson, & Rosenberg, 2003; Kolling & Rosenberg, 2002) development environment, to teach introductory programming in Java using an "objects first" approach that begins by introducing object-oriented (OO) programming from the perspective of a class user. The goal was ultimately to help students become competent in taking a description or set of instructions, written in plain English, and implementing it in programming code. Developing the exercises entailed capturing a series of screencasts, or screen recordings to be delivered over the Web. Each recording showed classes and objects being manipulated graphically in BlueJ, which uses a notation based on the Unified Modeling Language (UML). The exercises required the students to view the actions being performed in the screencasts and compose semantically equivalent lines of Java code. They were intended as a stepping-stone to assist students in moving from interacting with classes and objects graphically at runtime through a point-and-click interface, to writing lines of Java code to achieve similar effects. Teaching Introductory Object-Oriented Programming Objects First Many teachers have found that an "objects first" or "objects early" approach is most effective when teaching OO programming to beginners (Barnes & Kolling, 2002; Cooper, Dunn, & Pausch, 2003; Kolling et al., 2003; Kolling & Rosenberg, 2001; Machanick, 2007; Proulx, Raab, & Rasala, 2002). This is in contrast to the older, more traditional approach of beginning with structured programming "in the small," which is suited to teaching procedural languages, but is considered by many to be less appropriate to the OO paradigm. In an introductory Java programming unit, this approach is typified by the use of a "main" method within which students focus on writing code, commencing with the all-too-familiar "Hello World" example. The initial emphasis is on basic/primitive data types and control structures. Object-orientation is deferred to a later stage, usually no earlier than the fifth or sixth week of the semester, at which time students are forced to suddenly make the awkward leap to OO and begin to view the procedural statements they have learned to write in the "big picture" context of methods that implement the responsibilities or behaviors of classes and objects. Notwithstanding the popularity of the objects first approach, there are certainly critics and skeptics of the approach (Astrachan, Bruce, Koffman, Kolling, & Reges, 2005; Bailie, Courtney, Murray, Schiaffino, & Tuohy, 2003; Bruce, 2005; Lister et al., 2006; Reges, 2006). There is also no doubt that objects first adds a level of complexity to the teaching and learning process. By diving right into object-orientation, students must come to grips with "many different concepts, ideas, and skills... almost concurrently. Each of these skills presents a different mental challenge" (Proulx et al., 2002, p. 66, para. 3). Myriad software tools and even full-blown languages have been developed to help meet the challenge of an objects first approach (see for example, Barnes & Kolling, 2002; Bergin, Stehlik, Roberts, & Pattis, 2006; Cooper et al., 2003; Kolling, 1999a, 1999b; Kolling et al., 2003; Kolling & Rosenberg 1996, 2001, 2002; Proulx et al., 2002). These tools generally have a strong visual/graphical component and incorporate interactivity to reduce the complexity that novice programmers must overcome, helping them "see" objects in a meaningful context. Class User versus Class Developer Students can be required to view OO programming from two perspectives or roles: that of the "class user" and that of the "class developer. …

[1]  Paul A. Luker,et al.  There's more to OOP than syntax! , 1994, SIGCSE '94.

[2]  P. Chandler,et al.  THE SPLIT‐ATTENTION EFFECT AS A FACTOR IN THE DESIGN OF INSTRUCTION , 1992 .

[3]  Richard E. Mayer,et al.  A Cognitive Theory of Multimedia Learning: Implications for Design Principles , 2001 .

[4]  Richard E. Pattis,et al.  Karel ++ A Gentle Introduction to the Art of Object-Oriented Programming , 1996 .

[5]  Michael Kölling,et al.  An object-oriented program development environment for the first programming course , 1996, SIGCSE '96.

[6]  Michael Kölling The Blue Language , 1999 .

[7]  R. Mayer,et al.  Nine Ways to Reduce Cognitive Load in Multimedia Learning , 2003 .

[8]  Paul A. Luker,et al.  Never mind the language, what about the paradigm? , 1989, SIGCSE '89.

[9]  John Sweller,et al.  Cognitive Load During Problem Solving: Effects on Learning , 1988, Cogn. Sci..

[10]  P. Chandler,et al.  Cognitive Load Theory and the Format of Instruction , 1991 .

[11]  Alfred Bork,et al.  Multimedia in Learning , 2001 .

[12]  R. Mayer Should there be a three-strikes rule against pure discovery learning? The case for guided methods of instruction. , 2004, The American psychologist.

[13]  F. Paas,et al.  Cognitive Architecture and Instructional Design , 1998 .

[14]  Bertrand Meyer,et al.  Towards an Object-Oriented Curriculum , 1993, TOOLS.

[15]  David H. Jonassen,et al.  Technology as Cognitive Tools: Learners as Designers , 2009 .

[16]  Stuart Reges,et al.  Back to basics in CS1 and CS2 , 2006, SIGCSE '06.

[17]  Erkki Sutinen,et al.  Perspectives on Program Animation with Jeliot , 2001, Software Visualization.

[18]  Haibin Zhu,et al.  Methodology first and language second: a way to teach object-oriented programming , 2003, OOPSLA '03.

[19]  Elliot B. Koffman,et al.  CS1 using Java language features gently , 1999, ITiCSE '99.

[20]  Kim B. Bruce,et al.  A library to support a graphics-based object-first approach to CS 1 , 2001, SIGCSE '01.

[21]  Stephan Diehl Software visualization : international seminar, Dagstuhl Castle, Germany, May 20-25, 2001 : revised papers , 2002 .

[22]  Frances Bailie,et al.  Objects first - does it work? , 2003 .

[23]  Kim B. Bruce,et al.  Resolved: objects early has failed , 2005, SIGCSE '05.

[24]  Michael J. Hannafin,et al.  Teaching and learning in digital environments: The resurgence of resource-based learning , 2001 .

[25]  A. Paivio,et al.  Dual coding theory and education , 1991 .

[26]  Michael Kölling,et al.  Guidelines for teaching object orientation with Java , 2001, ITiCSE '01.

[27]  Michael Kölling,et al.  Teaching Object Orientation with the Blue Environment , 1999 .

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

[29]  Eric Roberts,et al.  Designing a Java graphics library for CS 1 , 1998, ITiCSE '98.

[30]  Michael F. Young,et al.  Instructional design for situated learning , 1993 .

[31]  Philip Machanick Teaching Java backwards , 2007, Comput. Educ..

[32]  Roger Duke,et al.  In search of the inverse curriculum , 1997, ACSE '97.

[33]  Kim B. Bruce Controversy on how to teach CS 1: a discussion on the SIGCSE-members mailing list , 2004, SGCS.

[34]  Jens Bennedsen,et al.  Revealing the programming process , 2005, SIGCSE '05.

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

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

[37]  Slava Kalyuga,et al.  When using sound with a text or picture is not beneficial for learning , 2000 .

[38]  Mordechai Ben-Ari,et al.  On understanding the statics and dynamics of object-oriented programs , 2005, SIGCSE '05.

[39]  Randy F. Pausch,et al.  Teaching objects-first in introductory computer science , 2003, SIGCSE.

[40]  Thomas Brush,et al.  The Use of Embedded Scaffolds with Hypermedia-Supported Student-Centered Learning , 2001 .

[41]  P. Chandler,et al.  Cognitive load as a factor in the structuring of technical material. , 1990 .

[42]  Nada Dabbagh,et al.  Scaffolding: An important teacher competency in online learning , 2003 .

[43]  Educause 7 Things You Should Know About...Screencasting , 2006 .

[44]  K. A. Ericsson,et al.  Protocol Analysis: Verbal Reports as Data , 1984 .

[45]  Richard Rasala,et al.  Objects from the beginning - with GUIs , 2002, ITiCSE '02.

[46]  D. Jonassen Objectivism versus constructivism: Do we need a new philosophical paradigm? , 1991 .

[47]  Mark Pendergast,et al.  Teaching Introductory Programming to IS Students: Java Problems and Pitfalls , 2006, J. Inf. Technol. Educ..

[48]  Philip Smith,et al.  Introducing OO concepts from a class user perspective , 2001 .

[49]  Anders Berglund,et al.  Research perspectives on the objects-early debate , 2006, ITiCSE-WGR '06.

[50]  Donald A. Norman,et al.  Accretion, tuning and restructuring: Three modes of learning , 1976 .

[51]  Richard E. Mayer,et al.  Multimedia aids to problem-solving transfer , 1999 .

[52]  Sandra Poindexter Assessing Active Alternatives for Teaching Programming , 2003, J. Inf. Technol. Educ..