Using Roles of Variables to Enhance Novice's Debugging Work

By Laakso, Mikko-Jussi; Korhonen, Ari et al. | Issues in Informing Science & Information Technology, Annual 2008 | Go to article overview

Using Roles of Variables to Enhance Novice's Debugging Work


Laakso, Mikko-Jussi, Korhonen, Ari, Kaila, Erkki, Malmi, Lauri, Rajala, Teemu, Salakoski, Tapio, Issues in Informing Science & Information Technology


Introduction

Programming is a complex cognitive skill. Most students face a lot of new challenges in learning the basic skills required to design and implement even small programs. Several extensive inter national studies have confirmed this, not to speak of results that have been reported in dozens of studies--mostly of single courses--presented in computing education conferences. For example, Valentine (2004) surveyed and classified total of 444 papers published in SIGCSE Technical Symposium conferences in years 1984-2003, all of which were related to teaching introductory programming, including different teaching methods, tools, experiments, new kinds of assignments, etc. Extensive studies include the McCracken et al. (2001) working group research with 216 students in 4 universities. The results indicate an alarming number of failures in simple programs the students were requested to code. A few years later another study was carried out by Lister et al. (2004). In this case, the topic of investigation was the students' understanding of execution of simple programs. The results of 556 students from 12 institutions indicate that the students had severe problems understanding even the smallest of the code fragments. Thus, it seems that first and second year students have serious shortcomings in both reading and writing skills of programs. It is therefore not surprising that Tenenberg et al. (2005) found out in their study--concerning 21 institutions and 300 students--that students cannot design even simple programs after their introductory courses.

What makes learning to program so complex, and how should we tackle this problem in education? Obviously much of the complexity follows from the fact that programming includes many different types of tasks, including problem solving, conceptual analysis of problem domain, program design, detailed temporal time splitting of actions, developing and combining algorithms and data structures, understanding language issues--both syntax and semantics, writing program code, testing and finally debugging it. Mastering all of these requires a lot of training and experience, which cannot be acquired during a single introductory course. Moreover, programming requires thinking with abstract concepts, which is not easy for all novices.

du Boulay (1989) classified some of these challenges by identifying five different subfields of programming skill that a novice student has to learn to work effectively. Firstly, he must gain a general understanding in what programming is about and what computers can do. Secondly, he needs to understand the principles of how programs execute within a computer. du Boulay used a term notional machine, which means a general model of computer internals and program execution--including how memory is used for storing variables, how statements and procedures are executed etc. Thirdly, computer programs are written using programming languages, artificial formal notations. Each of these has its own syntax and semantics that must be understood. Fourthly, learning programming means acquiring a large set of schemas of how things--such as scanning an array of data to identify information, building a linked list or reading data from input source--are typically implemented. Knowledge of such schemas reduces the cognitive complexity of reading and writing programs, as the programmer can focus on composing larger chunks of code from smaller ones instead of thinking all the details simultaneously. Finally, programming requires practical skill--programmers need to know (and be able to use) special tools such as editors, compilers, profilers and debuggers for coding, compiling, testing and debugging programs.

Programming education has traditionally put a lot of effort in teaching the syntax of particular language. However, when recalling du Boulay's five subfields of programming skill, we note that issues concerning syntax mostly cover the last three areas, whereas the second one, understanding program execution, may easily be somewhat overlooked, or is at least less emphasized. …

The rest of this article is only available to active members of Questia

Already a member? Log in now.

Notes for this article

Add a new note
If you are trying to select text to create highlights or citations, remember that you must now click or tap on the first word, and then click or tap on the last word.
One moment ...
Default project is now your active project.
Project items

Items saved from this article

This article has been saved
Highlights (0)
Some of your highlights are legacy items.

Highlights saved before July 30, 2012 will not be displayed on their respective source pages.

You can easily re-create the highlights by opening the book page or article, selecting the text, and clicking “Highlight.”

Citations (0)
Some of your citations are legacy items.

Any citation created before July 30, 2012 will labeled as a “Cited page.” New citations will be saved as cited passages, pages or articles.

We also added the ability to view new citations from your projects or the book or article where you created them.

Notes (0)
Bookmarks (0)

You have no saved items from this article

Project items include:
  • Saved book/article
  • Highlights
  • Quotes/citations
  • Notes
  • Bookmarks
Notes
Cite this article

Cited article

Style
Citations are available only to our active members.
Buy instant access to cite pages or passages in MLA, APA and Chicago citation styles.

(Einhorn, 1992, p. 25)

(Einhorn 25)

1. Lois J. Einhorn, Abraham Lincoln, the Orator: Penetrating the Lincoln Legend (Westport, CT: Greenwood Press, 1992), 25, http://www.questia.com/read/27419298.

Cited article

Using Roles of Variables to Enhance Novice's Debugging Work
Settings

Settings

Typeface
Text size Smaller Larger Reset View mode
Search within

Search within this article

Look up

Look up a word

  • Dictionary
  • Thesaurus
Please submit a word or phrase above.
Print this page

Print this page

Why can't I print more than one page at a time?

Help
Full screen

matching results for page

    Questia reader help

    How to highlight and cite specific passages

    1. Click or tap the first word you want to select.
    2. Click or tap the last word you want to select, and you’ll see everything in between get selected.
    3. You’ll then get a menu of options like creating a highlight or a citation from that passage of text.

    OK, got it!

    Cited passage

    Style
    Citations are available only to our active members.
    Buy instant access to cite pages or passages in MLA, APA and Chicago citation styles.

    "Portraying himself as an honest, ordinary person helped Lincoln identify with his audiences." (Einhorn, 1992, p. 25).

    "Portraying himself as an honest, ordinary person helped Lincoln identify with his audiences." (Einhorn 25)

    "Portraying himself as an honest, ordinary person helped Lincoln identify with his audiences."1

    1. Lois J. Einhorn, Abraham Lincoln, the Orator: Penetrating the Lincoln Legend (Westport, CT: Greenwood Press, 1992), 25, http://www.questia.com/read/27419298.

    Cited passage

    Thanks for trying Questia!

    Please continue trying out our research tools, but please note, full functionality is available only to our active members.

    Your work will be lost once you leave this Web page.

    Buy instant access to save your work.

    Already a member? Log in now.

    Author Advanced search

    Oops!

    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.