Understanding the notional machine

Faculty: 
Mark Guzdial
Students: 
Kathryn Cunningham

Foundational math, physics, biology, and chemistry instruction all have established traditions of using sketching and drawing to solve problems. From long division to Punnett squares, from free-body diagrams to molecular structures, students create diagrams and manipulate them to problem-solve. Introductory computer science and programming classes lack such well-developed and widely-used methods, even as computer science classes grow in popularity.

Sketching and drawing may be especially useful for learning programming since students face many difficulties understanding the process of code execution, termed the notional machine. Students often have an incomplete mental model of the notional machine, and this misunderstanding of programming language semantics leads to errors in both reading and writing code.

If students sketch the process of code execution, they may be able to better track the process of the notional machine. We have found that creating certain types of sketches is correlated with success on code reading problems. We are investigating the following questions:

  • What methods do students use to sketch?
  • Why do students choose to use a certain technique?
  • Does sketching improve student understanding of the notional machine?
  • Can sketches allow instructors to identify where students misunderstand the notional machine?
Lab: 
Director: 
Mark Guzdial
Students: 
Miranda Parker, Barbara Ericson, Amber Solomon, Kantwon Rogers, Kathryn Cunningham

Led by Dr. Mark Guzdial, The Contextualized Support for Learning (CSL) lab has as its aim the creation of "collaborative Dynabooks." We are a team of faculty, graduate, and undergraduate students who design and implement innovative technology for the goal of improving learning, then empirically explore the benefits and usefulness of the technology with real users.

The vision of the Dynabook is that the computer can be a tool for composing and experiencing dynamic media, for the goal of learning. Creating the Dynabook was the vision that drove the Xerox PARC Learning Research Group who produced the first object-oriented programming language, Smalltalk, and created the first personal computers. Alan Kay first described the Dynabook, and Dan Ingalls, Adele Goldberg, Ted Kaehler, and others tried to realize it.

Nobody argues today that you can learn through experiencing dynamic multimedia. That's one of the arguments for the Web. More challenging is that the act of creating media on the computer can lead to learning, but that is a critical piece of the theory behind the Dynabook. Seymour Papert at MIT makes a similar claim in his theory of learning, Constructionism.

But creating media that truly utilizes the power of the computer is hard, because it's our first meta-medium. It is a medium that can be almost any other medium. The computer is a painter's canvas, an animator's cels, a composer's staff, and a programmer's code, all at once. We don't know yet what truly interactive, dynamic meta-media will look like, because even the best of today's computer-based work doesn't utilize all of what's possible.

Our laboratory shares the vision of the Dynabook, but we extend it with an emphasis on collaboration. From our past research on computer-supported collaborative learning, we know the enormous learning power of the social setting. We want both to simplify the sharing of Dynabooks in groups, but also emphasize group reviewing, critiquing, and even composing.

Our plan for meeting this goal involves:

  • Inventing new kinds of computer-based media,
  • Creating tools to make media composition and sharing easier,
  • Helping users to learn how to compose media (where programming is a medium, too),
  • Developing collaborative supports for reviewing, critiquing, and composing,
  • Evaluating our tools and methods in practice, and
  • Summarizing and communicating our design lessons learned to inform other designers.