{"id":{"repo_id":"mit","oai_identifier":"oai:dspace.mit.edu:1721.1/139282"},"canonical_url":"https://search.dev.ndltd.org/etd/mit/oai:dspace.mit.edu:1721.1/139282","repository":{"repo_id":"mit","name":"MIT","base_url":"https://dspace.mit.edu/oai/request"},"display":{"title":"Snapdown: A Text-Based Snapshot Diagram Language for Programming Education","abstract":"Snapshot diagrams, which visualize in-memory program state, are frequently used in programming education to demonstrate new concepts and help students develop a better understanding of program functionality. This thesis introduces Snapdown, a textual language for drawing snapshot diagrams, designed for use by both students and instructors of programming courses. Snapdown is designed with an emphasis on learnability and simplicity: both to be picked up by students in a classroom setting in a matter of minutes, and to enable creation and maintenance of diagrams in instructional content with minimal overhead. I introduce several use cases of Snapdown and describe the design and features of its textual language. I also describe a deployment of Snapdown during two semesters of emergency remote teaching in MIT software engineering course 6.031 Software Construction, in which students used it to complete pre-class reading exercises and in-class collaborative exercises. Finally, I demonstrate that Snapdown is generally applicable by using it to replicate over 100 diagrams from introductory- and intermediate-level courses at a variety of institutions.","abstract_html":"Snapshot diagrams, which visualize in-memory program state, are frequently used in programming education to demonstrate new concepts and help students develop a better understanding of program functionality. This thesis introduces Snapdown, a textual language for drawing snapshot diagrams, designed for use by both students and instructors of programming courses. Snapdown is designed with an emphasis on learnability and simplicity: both to be picked up by students in a classroom setting in a matter of minutes, and to enable creation and maintenance of diagrams in instructional content with minimal overhead. I introduce several use cases of Snapdown and describe the design and features of its textual language. I also describe a deployment of Snapdown during two semesters of emergency remote teaching in MIT software engineering course 6.031 Software Construction, in which students used it to complete pre-class reading exercises and in-class collaborative exercises. Finally, I demonstrate that Snapdown is generally applicable by using it to replicate over 100 diagrams from introductory- and intermediate-level courses at a variety of institutions.","abstract_has_math":false,"creators":["Whatley, Daniel"],"institution":"Massachusetts Institute of Technology","degree_name":"Master","degree_level":null,"degree_discipline":null,"degree_department":"Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science","school":null,"contributors":[],"advisors":["Goldman, Max"],"committee_chairs":[],"committee_members":[],"year":2021,"date_issued":"2021-06","date_published":"2021-06","updated_at":"2026-07-22T22:22:05Z","subjects":[],"languages":[],"rights":["In Copyright - Educational Use Permitted","Copyright MIT"],"rights_urls":["http://rightsstatements.org/page/InC-EDU/1.0/"],"identifier_entries":[]},"links":{"outbound_url":"https://hdl.handle.net/1721.1/139282","outbound_label":"Handle","outbound_source":"dc:identifier.uri"},"metadata_groups":[{"id":"people","label":"People","entries":[{"key":"dc:contributor.advisor","label":"Advisor","values":["Goldman, Max"]},{"key":"dc:contributor.department","label":"Department","values":["Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science"]},{"key":"dc:creator","label":"Author","values":["Whatley, Daniel"]}]},{"id":"academic_context","label":"Academic Context","entries":[{"key":"dc:date.accessioned","label":"Dc Date Accessioned","values":["2022-01-14T15:01:20Z"]},{"key":"dc:date.available","label":"Dc Date Available","values":["2022-01-14T15:01:20Z"]},{"key":"dc:date.issued","label":"Date","values":["2021-06"]},{"key":"dc:publisher","label":"Institution","values":["Massachusetts Institute of Technology"]},{"key":"dc:type","label":"Dc Type","values":["Thesis"]},{"key":"thesis:degree_name","label":"Degree Name","values":["Master","Master of Engineering in Electrical Engineering and Computer Science"]}]},{"id":"language_rights","label":"Language and Rights","entries":[{"key":"dc:rights","label":"Dc Rights","values":["In Copyright - Educational Use Permitted","Copyright MIT"]},{"key":"dc:rights.uri","label":"Rights URI","values":["http://rightsstatements.org/page/InC-EDU/1.0/"]}]},{"id":"identifiers","label":"Identifiers","entries":[{"key":"dc:identifier.uri","label":"Identifier URI","values":["https://hdl.handle.net/1721.1/139282"]}]},{"id":"additional","label":"Additional Metadata","entries":[{"key":"dc:description.abstract","label":"Abstract","values":["Snapshot diagrams, which visualize in-memory program state, are frequently used in programming education to demonstrate new concepts and help students develop a better understanding of program functionality. This thesis introduces Snapdown, a textual language for drawing snapshot diagrams, designed for use by both students and instructors of programming courses. Snapdown is designed with an emphasis on learnability and simplicity: both to be picked up by students in a classroom setting in a matter of minutes, and to enable creation and maintenance of diagrams in instructional content with minimal overhead. I introduce several use cases of Snapdown and describe the design and features of its textual language. I also describe a deployment of Snapdown during two semesters of emergency remote teaching in MIT software engineering course 6.031 Software Construction, in which students used it to complete pre-class reading exercises and in-class collaborative exercises. Finally, I demonstrate that Snapdown is generally applicable by using it to replicate over 100 diagrams from introductory- and intermediate-level courses at a variety of institutions."]},{"key":"dc:description.degree","label":"Dc Description Degree","values":["M.Eng."]},{"key":"dc:title","label":"Title","values":["Snapdown: A Text-Based Snapshot Diagram Language for Programming Education"]}]}],"canonical_facts":{"dc:contributor.advisor":["Goldman, Max"],"dc:contributor.department":["Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science"],"dc:creator":["Whatley, Daniel"],"dc:date.accessioned":["2022-01-14T15:01:20Z"],"dc:date.available":["2022-01-14T15:01:20Z"],"dc:date.issued":["2021-06"],"dc:description.abstract":["Snapshot diagrams, which visualize in-memory program state, are frequently used in programming education to demonstrate new concepts and help students develop a better understanding of program functionality. This thesis introduces Snapdown, a textual language for drawing snapshot diagrams, designed for use by both students and instructors of programming courses. Snapdown is designed with an emphasis on learnability and simplicity: both to be picked up by students in a classroom setting in a matter of minutes, and to enable creation and maintenance of diagrams in instructional content with minimal overhead. I introduce several use cases of Snapdown and describe the design and features of its textual language. I also describe a deployment of Snapdown during two semesters of emergency remote teaching in MIT software engineering course 6.031 Software Construction, in which students used it to complete pre-class reading exercises and in-class collaborative exercises. Finally, I demonstrate that Snapdown is generally applicable by using it to replicate over 100 diagrams from introductory- and intermediate-level courses at a variety of institutions."],"dc:description.degree":["M.Eng."],"dc:identifier.uri":["https://hdl.handle.net/1721.1/139282"],"dc:publisher":["Massachusetts Institute of Technology"],"dc:rights":["In Copyright - Educational Use Permitted","Copyright MIT"],"dc:rights.uri":["http://rightsstatements.org/page/InC-EDU/1.0/"],"dc:title":["Snapdown: A Text-Based Snapshot Diagram Language for Programming Education"],"dc:type":["Thesis"],"thesis:degree_name":["Master","Master of Engineering in Electrical Engineering and Computer Science"]},"updated_at":"2026-07-22T22:22:05Z"}