Academic journal article Journal of Information Technology Education

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

Academic journal article Journal of Information Technology Education

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

Article excerpt


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. …

Search by... Author
Show... All Results Primary Sources Peer-reviewed


An unknown error has occurred. Please click the button below to reload the page. If the problem persists, please try again in a little while.