Using Program Visualization to Illuminate the Notional Machine.
dc.contributor.author | Juett, James A. | |
dc.date.accessioned | 2016-06-10T19:32:41Z | |
dc.date.available | NO_RESTRICTION | |
dc.date.available | 2016-06-10T19:32:41Z | |
dc.date.issued | 2016 | |
dc.date.submitted | ||
dc.identifier.uri | https://hdl.handle.net/2027.42/120844 | |
dc.description.abstract | Programming is an essential skill in computing and engineering fields, but many students are not competent programmers even after completing initial programming courses. They have difficulty writing correct code, and the skills they develop often turn out to be fragile and do not generalize well to dealing with new problems. A key contributor to this issue is the lack of "hands on" experience with the notional machine - the conceptual computer on which their programs run. For many students, the computer is essentially a black-box, and at best they receive very indirect feedback about what each part of their code actually does at runtime. We attack this problem using interactive program visualization, which illuminates the notional machine and empowers students to have meaningful, hands-on experiences with what their own code actually does at runtime. In this dissertation, we investigate design choices that go into creating a program visualization tool to best support this approach. In particular, we explore which conceptual models should be presented for expression evaluation and subcall execution, what navigation controls should be offered, and how to provide feedback when problems occur at runtime. The contributions of this work are novel solutions to these questions and a large-scale empirical study in an authentic educational setting that gives evidence they are effective. We also present Labster, a web-based C++ program visualization system, which brings together our innovations as well as successful techniques from the previous literature into a working ensemble. Labster has proven effective as both an educational tool and a platform for program visualization research. | |
dc.language.iso | en_US | |
dc.subject | Interactive Program Visualization | |
dc.subject | The Notional Machine | |
dc.subject | Programming Education | |
dc.title | Using Program Visualization to Illuminate the Notional Machine. | |
dc.type | Thesis | en_US |
dc.description.thesisdegreename | PhD | |
dc.description.thesisdegreediscipline | Computer Science and Engineering | |
dc.description.thesisdegreegrantor | University of Michigan, Horace H. Rackham School of Graduate Studies | |
dc.contributor.committeemember | Essl, Georg | |
dc.contributor.committeemember | Quintana, Christopher Lee | |
dc.contributor.committeemember | Ackerman, Mark Steven | |
dc.contributor.committeemember | Deorio, Andrew Whitehouse | |
dc.subject.hlbsecondlevel | Computer Science | |
dc.subject.hlbtoplevel | Engineering | |
dc.description.bitstreamurl | http://deepblue.lib.umich.edu/bitstream/2027.42/120844/1/jjuett_1.pdf | |
dc.owningcollname | Dissertations and Theses (Ph.D. and Master's) |
Files in this item
Remediation of Harmful Language
The University of Michigan Library aims to describe library materials in a way that respects the people and communities who create, use, and are represented in our collections. Report harmful or offensive language in catalog records, finding aids, or elsewhere in our collections anonymously through our metadata feedback form. More information at Remediation of Harmful Language.
Accessibility
If you are unable to use this file in its current format, please select the Contact Us link and we can modify it to make it more accessible to you.