{"id":{"repo_id":"mit","oai_identifier":"oai:dspace.mit.edu:1721.1/144790"},"canonical_url":"https://search.dev.ndltd.org/etd/mit/oai:dspace.mit.edu:1721.1/144790","repository":{"repo_id":"mit","name":"MIT","base_url":"https://dspace.mit.edu/oai/request"},"display":{"title":"Generating Coding Exercises for Language Concepts by Searching, Simplifying, and Annotating Existing Code","abstract":"Learning a new programming language is best done through coding exercises. However, manually creating coding exercises is time-consuming because there are many language syntax and concepts to cover. PraxisGen aims to alleviate the burden of problem creation by providing an interface to search, simplify, and annotate publicly available code to be used as exercises. By using the system, the user can create code examples for language concepts that represent real-life programs more efficiently because the system automates some parts of the process. The technical evaluation proves the ability of PraxisGen in finding a wide variety of language concepts, while the user study demonstrates that the system makes the process of creating high-quality exercise problems simpler.","abstract_html":"Learning a new programming language is best done through coding exercises. However, manually creating coding exercises is time-consuming because there are many language syntax and concepts to cover. PraxisGen aims to alleviate the burden of problem creation by providing an interface to search, simplify, and annotate publicly available code to be used as exercises. By using the system, the user can create code examples for language concepts that represent real-life programs more efficiently because the system automates some parts of the process. The technical evaluation proves the ability of PraxisGen in finding a wide variety of language concepts, while the user study demonstrates that the system makes the process of creating high-quality exercise problems simpler.","abstract_has_math":false,"creators":["Johanna, Stacia Edina"],"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":["Miller, Rob"],"committee_chairs":[],"committee_members":[],"year":2022,"date_issued":"2022-05","date_published":"2022-05","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/144790","outbound_label":"Handle","outbound_source":"dc:identifier.uri"},"metadata_groups":[{"id":"people","label":"People","entries":[{"key":"dc:contributor.advisor","label":"Advisor","values":["Miller, Rob"]},{"key":"dc:contributor.department","label":"Department","values":["Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science"]},{"key":"dc:creator","label":"Author","values":["Johanna, Stacia Edina"]}]},{"id":"academic_context","label":"Academic Context","entries":[{"key":"dc:date.accessioned","label":"Dc Date Accessioned","values":["2022-08-29T16:11:50Z"]},{"key":"dc:date.available","label":"Dc Date Available","values":["2022-08-29T16:11:50Z"]},{"key":"dc:date.issued","label":"Date","values":["2022-05"]},{"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/144790"]}]},{"id":"additional","label":"Additional Metadata","entries":[{"key":"dc:description.abstract","label":"Abstract","values":["Learning a new programming language is best done through coding exercises. However, manually creating coding exercises is time-consuming because there are many language syntax and concepts to cover. PraxisGen aims to alleviate the burden of problem creation by providing an interface to search, simplify, and annotate publicly available code to be used as exercises. By using the system, the user can create code examples for language concepts that represent real-life programs more efficiently because the system automates some parts of the process. The technical evaluation proves the ability of PraxisGen in finding a wide variety of language concepts, while the user study demonstrates that the system makes the process of creating high-quality exercise problems simpler."]},{"key":"dc:description.degree","label":"Dc Description Degree","values":["M.Eng."]},{"key":"dc:title","label":"Title","values":["Generating Coding Exercises for Language Concepts by Searching, Simplifying, and Annotating Existing Code"]}]}],"canonical_facts":{"dc:contributor.advisor":["Miller, Rob"],"dc:contributor.department":["Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science"],"dc:creator":["Johanna, Stacia Edina"],"dc:date.accessioned":["2022-08-29T16:11:50Z"],"dc:date.available":["2022-08-29T16:11:50Z"],"dc:date.issued":["2022-05"],"dc:description.abstract":["Learning a new programming language is best done through coding exercises. However, manually creating coding exercises is time-consuming because there are many language syntax and concepts to cover. PraxisGen aims to alleviate the burden of problem creation by providing an interface to search, simplify, and annotate publicly available code to be used as exercises. By using the system, the user can create code examples for language concepts that represent real-life programs more efficiently because the system automates some parts of the process. The technical evaluation proves the ability of PraxisGen in finding a wide variety of language concepts, while the user study demonstrates that the system makes the process of creating high-quality exercise problems simpler."],"dc:description.degree":["M.Eng."],"dc:identifier.uri":["https://hdl.handle.net/1721.1/144790"],"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":["Generating Coding Exercises for Language Concepts by Searching, Simplifying, and Annotating Existing Code"],"dc:type":["Thesis"],"thesis:degree_name":["Master","Master of Engineering in Electrical Engineering and Computer Science"]},"updated_at":"2026-07-22T22:22:05Z"}