Loading…

End-to-end automation of feedback on student assembly programs

We developed a set of tools designed to provide rapid feedback to students as they learn to write programs in assembly language (LC-3, a RISC-like educational instruction set architecture). At the heart of the system is an extended version of KLEE, KLC3, that enables us to both identify issues and p...

Full description

Saved in:
Bibliographic Details
Main Authors: Liu, Zikai, Liu, Tingkai, Li, Qi, Luo, Wenqing, Lumetta, Steven S.
Format: Conference Proceeding
Language:English
Subjects:
Online Access:Request full text
Tags: Add Tag
No Tags, Be the first to tag this record!
cited_by
cites
container_end_page 29
container_issue
container_start_page 18
container_title
container_volume
creator Liu, Zikai
Liu, Tingkai
Li, Qi
Luo, Wenqing
Lumetta, Steven S.
description We developed a set of tools designed to provide rapid feedback to students as they learn to write programs in assembly language (LC-3, a RISC-like educational instruction set architecture). At the heart of the system is an extended version of KLEE, KLC3, that enables us to both identify issues and perform equivalence checking between student code and a gold (correct) version of each assignment. Feedback begins when students edit their code using a VSCode extension that leverages static analysis to perform a variety of correctness and style checks, encouraging students to improve their code quality. Each time a student commits code to their Git repository, our system triggers. Using KLC3 (KLEE), the student code is executed along with the gold version, and issues and behavioral differences are delivered back to the student through their Git repository as a human-readable report, test cases, and scripts. A queueing system allows students to monitor progress, but responses are generally available within minutes. We also extended the LC-3 simulation tools to support reverse debugging, making the process of finding complex bugs much more tractable for students, and used Emscripten to develop a browser-based interface for use in testing and debugging. Finally, our system maintains an individual regression test suite for each student and requires a submission to pass all previous tests before re-evaluation in KLC3, thus avoiding encouraging programming-by-guesswork. We deployed the system to provide feedback for the assembly programming assignments in a class of over 100 students in Fall 2020. Students wrote a median of around 700 lines of assembly for these assignments, making heavy use of our tools to understand and eliminate their bugs. Anonymous student feedback on the tools was uniformly positive. Since that semester, we have continued to refine and expand our tools' analysis capabilities and performance, and plan to deploy the system again in the near future (the class is offered every Fall).
doi_str_mv 10.1109/ASE51524.2021.9678837
format conference_proceeding
fullrecord <record><control><sourceid>acm_CHZPO</sourceid><recordid>TN_cdi_ieee_primary_9678837</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><ieee_id>9678837</ieee_id><sourcerecordid>acm_books_10_1109_ASE51524_2021_9678837</sourcerecordid><originalsourceid>FETCH-LOGICAL-a287t-fa160da0e4cbec9b4a52dc32f658d5b3b00721eb5239a405a213eb6fc65ded753</originalsourceid><addsrcrecordid>eNqVkM1Kw0AUhUdFsNY-gQh5gcT5n2QjlJKqUHChroc7mTsS2mRKJl307W1phW5dXQ4f58D9CHlitGCMVs_zz1oxxWXBKWdFpU1ZCnNF7pnWSlIhjLgmE66lyJky_OYS3JFZSq2jsiylNJWekJe69_kYc-x9BrsxdjC2sc9iyAKid9Css0NM485jP2aQEnZus8-2Q_wZoEsP5DbAJuHsfKfke1l_Ld7y1cfr-2K-yoGXZswDME09UJSNw6ZyEhT3jeBBq9IrJxylhjN0iosKJFXAmUCnQ6OVR2-UmJLH026LiHY7tB0Me3v-_UCLE4Wmsy7GdbKM2qMs-yfLHmVdFOS_CtYNLQbxC2KCaJc</addsrcrecordid><sourcetype>Publisher</sourcetype><iscdi>true</iscdi><recordtype>conference_proceeding</recordtype></control><display><type>conference_proceeding</type><title>End-to-end automation of feedback on student assembly programs</title><source>IEEE Xplore All Conference Series</source><creator>Liu, Zikai ; Liu, Tingkai ; Li, Qi ; Luo, Wenqing ; Lumetta, Steven S.</creator><creatorcontrib>Liu, Zikai ; Liu, Tingkai ; Li, Qi ; Luo, Wenqing ; Lumetta, Steven S.</creatorcontrib><description>We developed a set of tools designed to provide rapid feedback to students as they learn to write programs in assembly language (LC-3, a RISC-like educational instruction set architecture). At the heart of the system is an extended version of KLEE, KLC3, that enables us to both identify issues and perform equivalence checking between student code and a gold (correct) version of each assignment. Feedback begins when students edit their code using a VSCode extension that leverages static analysis to perform a variety of correctness and style checks, encouraging students to improve their code quality. Each time a student commits code to their Git repository, our system triggers. Using KLC3 (KLEE), the student code is executed along with the gold version, and issues and behavioral differences are delivered back to the student through their Git repository as a human-readable report, test cases, and scripts. A queueing system allows students to monitor progress, but responses are generally available within minutes. We also extended the LC-3 simulation tools to support reverse debugging, making the process of finding complex bugs much more tractable for students, and used Emscripten to develop a browser-based interface for use in testing and debugging. Finally, our system maintains an individual regression test suite for each student and requires a submission to pass all previous tests before re-evaluation in KLC3, thus avoiding encouraging programming-by-guesswork. We deployed the system to provide feedback for the assembly programming assignments in a class of over 100 students in Fall 2020. Students wrote a median of around 700 lines of assembly for these assignments, making heavy use of our tools to understand and eliminate their bugs. Anonymous student feedback on the tools was uniformly positive. Since that semester, we have continued to refine and expand our tools' analysis capabilities and performance, and plan to deploy the system again in the near future (the class is offered every Fall).</description><identifier>ISBN: 1665403373</identifier><identifier>ISBN: 9781665403375</identifier><identifier>EISSN: 2643-1572</identifier><identifier>EISBN: 1665403373</identifier><identifier>EISBN: 9781665403375</identifier><identifier>DOI: 10.1109/ASE51524.2021.9678837</identifier><identifier>CODEN: IEEPAD</identifier><language>eng</language><publisher>Piscataway, NJ, USA: IEEE Press</publisher><subject>assembly ; Codes ; Computer bugs ; Debugging ; education ; Gold ; Manuals ; programming feedback ; Programming profession ; Software and its engineering ; Software and its engineering -- Software creation and management ; Software and its engineering -- Software creation and management -- Software verification and validation ; Software and its engineering -- Software creation and management -- Software verification and validation -- Software defect analysis ; Software and its engineering -- Software creation and management -- Software verification and validation -- Software defect analysis -- Software testing and debugging ; Static analysis ; symbolic analysis</subject><ispartof>2021 36th IEEE/ACM International Conference on Automated Software Engineering (ASE), 2021, p.18-29</ispartof><woscitedreferencessubscribed>false</woscitedreferencessubscribed></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><linktohtml>$$Uhttps://ieeexplore.ieee.org/document/9678837$$EHTML$$P50$$Gieee$$H</linktohtml><link.rule.ids>309,310,780,784,789,790,23930,23931,25140,27925,54555,54932</link.rule.ids><linktorsrc>$$Uhttps://ieeexplore.ieee.org/document/9678837$$EView_record_in_IEEE$$FView_record_in_$$GIEEE</linktorsrc></links><search><creatorcontrib>Liu, Zikai</creatorcontrib><creatorcontrib>Liu, Tingkai</creatorcontrib><creatorcontrib>Li, Qi</creatorcontrib><creatorcontrib>Luo, Wenqing</creatorcontrib><creatorcontrib>Lumetta, Steven S.</creatorcontrib><title>End-to-end automation of feedback on student assembly programs</title><title>2021 36th IEEE/ACM International Conference on Automated Software Engineering (ASE)</title><addtitle>ASE</addtitle><description>We developed a set of tools designed to provide rapid feedback to students as they learn to write programs in assembly language (LC-3, a RISC-like educational instruction set architecture). At the heart of the system is an extended version of KLEE, KLC3, that enables us to both identify issues and perform equivalence checking between student code and a gold (correct) version of each assignment. Feedback begins when students edit their code using a VSCode extension that leverages static analysis to perform a variety of correctness and style checks, encouraging students to improve their code quality. Each time a student commits code to their Git repository, our system triggers. Using KLC3 (KLEE), the student code is executed along with the gold version, and issues and behavioral differences are delivered back to the student through their Git repository as a human-readable report, test cases, and scripts. A queueing system allows students to monitor progress, but responses are generally available within minutes. We also extended the LC-3 simulation tools to support reverse debugging, making the process of finding complex bugs much more tractable for students, and used Emscripten to develop a browser-based interface for use in testing and debugging. Finally, our system maintains an individual regression test suite for each student and requires a submission to pass all previous tests before re-evaluation in KLC3, thus avoiding encouraging programming-by-guesswork. We deployed the system to provide feedback for the assembly programming assignments in a class of over 100 students in Fall 2020. Students wrote a median of around 700 lines of assembly for these assignments, making heavy use of our tools to understand and eliminate their bugs. Anonymous student feedback on the tools was uniformly positive. Since that semester, we have continued to refine and expand our tools' analysis capabilities and performance, and plan to deploy the system again in the near future (the class is offered every Fall).</description><subject>assembly</subject><subject>Codes</subject><subject>Computer bugs</subject><subject>Debugging</subject><subject>education</subject><subject>Gold</subject><subject>Manuals</subject><subject>programming feedback</subject><subject>Programming profession</subject><subject>Software and its engineering</subject><subject>Software and its engineering -- Software creation and management</subject><subject>Software and its engineering -- Software creation and management -- Software verification and validation</subject><subject>Software and its engineering -- Software creation and management -- Software verification and validation -- Software defect analysis</subject><subject>Software and its engineering -- Software creation and management -- Software verification and validation -- Software defect analysis -- Software testing and debugging</subject><subject>Static analysis</subject><subject>symbolic analysis</subject><issn>2643-1572</issn><isbn>1665403373</isbn><isbn>9781665403375</isbn><isbn>1665403373</isbn><isbn>9781665403375</isbn><fulltext>true</fulltext><rsrctype>conference_proceeding</rsrctype><creationdate>2021</creationdate><recordtype>conference_proceeding</recordtype><sourceid>6IE</sourceid><recordid>eNqVkM1Kw0AUhUdFsNY-gQh5gcT5n2QjlJKqUHChroc7mTsS2mRKJl307W1phW5dXQ4f58D9CHlitGCMVs_zz1oxxWXBKWdFpU1ZCnNF7pnWSlIhjLgmE66lyJky_OYS3JFZSq2jsiylNJWekJe69_kYc-x9BrsxdjC2sc9iyAKid9Css0NM485jP2aQEnZus8-2Q_wZoEsP5DbAJuHsfKfke1l_Ld7y1cfr-2K-yoGXZswDME09UJSNw6ZyEhT3jeBBq9IrJxylhjN0iosKJFXAmUCnQ6OVR2-UmJLH026LiHY7tB0Me3v-_UCLE4Wmsy7GdbKM2qMs-yfLHmVdFOS_CtYNLQbxC2KCaJc</recordid><startdate>20211115</startdate><enddate>20211115</enddate><creator>Liu, Zikai</creator><creator>Liu, Tingkai</creator><creator>Li, Qi</creator><creator>Luo, Wenqing</creator><creator>Lumetta, Steven S.</creator><general>IEEE Press</general><general>IEEE</general><scope>6IE</scope><scope>6IL</scope><scope>CBEJK</scope><scope>RIE</scope><scope>RIL</scope></search><sort><creationdate>20211115</creationdate><title>End-to-end automation of feedback on student assembly programs</title><author>Liu, Zikai ; Liu, Tingkai ; Li, Qi ; Luo, Wenqing ; Lumetta, Steven S.</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-a287t-fa160da0e4cbec9b4a52dc32f658d5b3b00721eb5239a405a213eb6fc65ded753</frbrgroupid><rsrctype>conference_proceedings</rsrctype><prefilter>conference_proceedings</prefilter><language>eng</language><creationdate>2021</creationdate><topic>assembly</topic><topic>Codes</topic><topic>Computer bugs</topic><topic>Debugging</topic><topic>education</topic><topic>Gold</topic><topic>Manuals</topic><topic>programming feedback</topic><topic>Programming profession</topic><topic>Software and its engineering</topic><topic>Software and its engineering -- Software creation and management</topic><topic>Software and its engineering -- Software creation and management -- Software verification and validation</topic><topic>Software and its engineering -- Software creation and management -- Software verification and validation -- Software defect analysis</topic><topic>Software and its engineering -- Software creation and management -- Software verification and validation -- Software defect analysis -- Software testing and debugging</topic><topic>Static analysis</topic><topic>symbolic analysis</topic><toplevel>online_resources</toplevel><creatorcontrib>Liu, Zikai</creatorcontrib><creatorcontrib>Liu, Tingkai</creatorcontrib><creatorcontrib>Li, Qi</creatorcontrib><creatorcontrib>Luo, Wenqing</creatorcontrib><creatorcontrib>Lumetta, Steven S.</creatorcontrib><collection>IEEE Electronic Library (IEL) Conference Proceedings</collection><collection>IEEE Proceedings Order Plan All Online (POP All Online) 1998-present by volume</collection><collection>IEEE Xplore All Conference Proceedings</collection><collection>IEEE Xplore</collection><collection>IEEE Proceedings Order Plans (POP All) 1998-Present</collection></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext_linktorsrc</fulltext></delivery><addata><au>Liu, Zikai</au><au>Liu, Tingkai</au><au>Li, Qi</au><au>Luo, Wenqing</au><au>Lumetta, Steven S.</au><format>book</format><genre>proceeding</genre><ristype>CONF</ristype><atitle>End-to-end automation of feedback on student assembly programs</atitle><btitle>2021 36th IEEE/ACM International Conference on Automated Software Engineering (ASE)</btitle><stitle>ASE</stitle><date>2021-11-15</date><risdate>2021</risdate><spage>18</spage><epage>29</epage><pages>18-29</pages><eissn>2643-1572</eissn><isbn>1665403373</isbn><isbn>9781665403375</isbn><eisbn>1665403373</eisbn><eisbn>9781665403375</eisbn><coden>IEEPAD</coden><abstract>We developed a set of tools designed to provide rapid feedback to students as they learn to write programs in assembly language (LC-3, a RISC-like educational instruction set architecture). At the heart of the system is an extended version of KLEE, KLC3, that enables us to both identify issues and perform equivalence checking between student code and a gold (correct) version of each assignment. Feedback begins when students edit their code using a VSCode extension that leverages static analysis to perform a variety of correctness and style checks, encouraging students to improve their code quality. Each time a student commits code to their Git repository, our system triggers. Using KLC3 (KLEE), the student code is executed along with the gold version, and issues and behavioral differences are delivered back to the student through their Git repository as a human-readable report, test cases, and scripts. A queueing system allows students to monitor progress, but responses are generally available within minutes. We also extended the LC-3 simulation tools to support reverse debugging, making the process of finding complex bugs much more tractable for students, and used Emscripten to develop a browser-based interface for use in testing and debugging. Finally, our system maintains an individual regression test suite for each student and requires a submission to pass all previous tests before re-evaluation in KLC3, thus avoiding encouraging programming-by-guesswork. We deployed the system to provide feedback for the assembly programming assignments in a class of over 100 students in Fall 2020. Students wrote a median of around 700 lines of assembly for these assignments, making heavy use of our tools to understand and eliminate their bugs. Anonymous student feedback on the tools was uniformly positive. Since that semester, we have continued to refine and expand our tools' analysis capabilities and performance, and plan to deploy the system again in the near future (the class is offered every Fall).</abstract><cop>Piscataway, NJ, USA</cop><pub>IEEE Press</pub><doi>10.1109/ASE51524.2021.9678837</doi><tpages>12</tpages></addata></record>
fulltext fulltext_linktorsrc
identifier ISBN: 1665403373
ispartof 2021 36th IEEE/ACM International Conference on Automated Software Engineering (ASE), 2021, p.18-29
issn 2643-1572
language eng
recordid cdi_ieee_primary_9678837
source IEEE Xplore All Conference Series
subjects assembly
Codes
Computer bugs
Debugging
education
Gold
Manuals
programming feedback
Programming profession
Software and its engineering
Software and its engineering -- Software creation and management
Software and its engineering -- Software creation and management -- Software verification and validation
Software and its engineering -- Software creation and management -- Software verification and validation -- Software defect analysis
Software and its engineering -- Software creation and management -- Software verification and validation -- Software defect analysis -- Software testing and debugging
Static analysis
symbolic analysis
title End-to-end automation of feedback on student assembly programs
url http://sfxeu10.hosted.exlibrisgroup.com/loughborough?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2025-01-02T19%3A04%3A45IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-acm_CHZPO&rft_val_fmt=info:ofi/fmt:kev:mtx:book&rft.genre=proceeding&rft.atitle=End-to-end%20automation%20of%20feedback%20on%20student%20assembly%20programs&rft.btitle=2021%2036th%20IEEE/ACM%20International%20Conference%20on%20Automated%20Software%20Engineering%20(ASE)&rft.au=Liu,%20Zikai&rft.date=2021-11-15&rft.spage=18&rft.epage=29&rft.pages=18-29&rft.eissn=2643-1572&rft.isbn=1665403373&rft.isbn_list=9781665403375&rft.coden=IEEPAD&rft_id=info:doi/10.1109/ASE51524.2021.9678837&rft.eisbn=1665403373&rft.eisbn_list=9781665403375&rft_dat=%3Cacm_CHZPO%3Eacm_books_10_1109_ASE51524_2021_9678837%3C/acm_CHZPO%3E%3Cgrp_id%3Ecdi_FETCH-LOGICAL-a287t-fa160da0e4cbec9b4a52dc32f658d5b3b00721eb5239a405a213eb6fc65ded753%3C/grp_id%3E%3Coa%3E%3C/oa%3E%3Curl%3E%3C/url%3E&rft_id=info:oai/&rft_id=info:pmid/&rft_ieee_id=9678837&rfr_iscdi=true