{"id":1809,"date":"2026-10-16T11:35:46","date_gmt":"2026-10-16T10:35:46","guid":{"rendered":"https:\/\/blogs.ncl.ac.uk\/nova\/?page_id=1809"},"modified":"2026-10-16T11:35:46","modified_gmt":"2026-10-16T10:35:46","slug":"human-ai-collaboration-for-assessable-program-generation","status":"publish","type":"page","link":"https:\/\/blogs.ncl.ac.uk\/nova\/human-ai-collaboration-for-assessable-program-generation\/","title":{"rendered":"Human-AI Collaboration for Assessable Program Generation"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Large language models can now write working programs from plain-language descriptions, and more and more people with little programming training use them to build apps, data scripts and small automated tools. But the generated code is not always correct, and it does not always match what the person meant. As the model takes over the writing, two jobs stay with the person: telling the model clearly what to build, and judging whether the result is right. These two jobs are becoming the main bottleneck, and they are a human-centred problem as much as a technical one.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This project uses Norman&#8217;s &#8220;gulfs&#8221; of execution and evaluation (Figure 1) to study both jobs. It asks how interactive tools can help people specify their intent and evaluate the program&#8217;s behaviour at the level that suits their task (the output, the interface or what the program does) rather than by reading source code. A smaller strand asks whether doing this can also help people build the computational literacy that both jobs require.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"486\" src=\"https:\/\/blogs.ncl.ac.uk\/nova\/files\/2026\/10\/NoVA_Fig1_research_framework-1024x486.png\" alt=\"\" class=\"wp-image-1812\" srcset=\"https:\/\/blogs.ncl.ac.uk\/nova\/files\/2026\/10\/NoVA_Fig1_research_framework-1024x486.png 1024w, https:\/\/blogs.ncl.ac.uk\/nova\/files\/2026\/10\/NoVA_Fig1_research_framework-300x143.png 300w, https:\/\/blogs.ncl.ac.uk\/nova\/files\/2026\/10\/NoVA_Fig1_research_framework-766x364.png 766w, https:\/\/blogs.ncl.ac.uk\/nova\/files\/2026\/10\/NoVA_Fig1_research_framework-1536x730.png 1536w, https:\/\/blogs.ncl.ac.uk\/nova\/files\/2026\/10\/NoVA_Fig1_research_framework-1200x570.png 1200w, https:\/\/blogs.ncl.ac.uk\/nova\/files\/2026\/10\/NoVA_Fig1_research_framework-2048x973.png 2048w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Figure 1: The research framework. Moving from a goal to a generated program (gulf of execution, RQ1) and judging the program against that goal (gulf of evaluation, RQ2) are the two jobs left to the person. RQ3 asks whether doing both also builds computational literacy.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So far I have built StylePrism, a working prototype (Figure 2A). It turns a styling prompt for a web page into a set of design decisions that the user can read, switch on and off, edit and compare across versions, instead of getting a single result that is hard to steer.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"535\" src=\"https:\/\/blogs.ncl.ac.uk\/nova\/files\/2026\/10\/NoVA_Fig2_current_work-1024x535.png\" alt=\"\" class=\"wp-image-1813\" srcset=\"https:\/\/blogs.ncl.ac.uk\/nova\/files\/2026\/10\/NoVA_Fig2_current_work-1024x535.png 1024w, https:\/\/blogs.ncl.ac.uk\/nova\/files\/2026\/10\/NoVA_Fig2_current_work-300x157.png 300w, https:\/\/blogs.ncl.ac.uk\/nova\/files\/2026\/10\/NoVA_Fig2_current_work-768x401.png 768w, https:\/\/blogs.ncl.ac.uk\/nova\/files\/2026\/10\/NoVA_Fig2_current_work-1200x627.png 1200w, https:\/\/blogs.ncl.ac.uk\/nova\/files\/2026\/10\/NoVA_Fig2_current_work-1536x802.png 1536w, https:\/\/blogs.ncl.ac.uk\/nova\/files\/2026\/10\/NoVA_Fig2_current_work-2048x1070.png 2048w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Figure 2: (A) StylePrism lets users style a web page through switchable design decisions grouped into dimensions, with a live preview and saved versions. (B) Work in progress: an example-first tool in which intentionally buggy programs show learners where their input\u2013output examples miss a misunderstanding.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A second project is currently in progress (Figure 2B). It is a tool that helps novice programmers write input\u2013output examples before they start coding. An LLM creates buggy programs from each learner&#8217;s own examples, and any that still pass point to a misunderstanding while it is still easy to fix. This work is ongoing, and the design may change as it develops.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Looking ahead, the project will explore interactive intermediate representations, such as scaffolds, simple domain-specific languages and automated testing, that sit between the person, the model and the generated program.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Team<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/blogs.ncl.ac.uk\/nova\/people\/hongyu-peter-wang\/\" data-type=\"page\" data-id=\"1161\">Hongyu (Peter) Wang<\/a> (PhD student), Newcastle University<\/li>\n\n\n\n<li><a href=\"https:\/\/blogs.ncl.ac.uk\/nova\/people\/professor-daniel-archambault\/\" data-type=\"page\" data-id=\"164\">Prof. Daniel Archambault<\/a> (main supervisor), Newcastle University<\/li>\n\n\n\n<li>Dr Huizhi (Elly) Liang (co-supervisor), Newcastle University<\/li>\n\n\n\n<li>Dr Xinhuan Shu (external advisor)<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Large language models can now write working programs from plain-language descriptions, and more and more people with little programming training use them to build apps, data scripts and small automated tools. But the generated code is not always correct, and it does not always match what the person meant. As the model takes over the &hellip; <a href=\"https:\/\/blogs.ncl.ac.uk\/nova\/human-ai-collaboration-for-assessable-program-generation\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Human-AI Collaboration for Assessable Program Generation&#8221;<\/span><\/a><\/p>\n","protected":false},"author":11905,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1809","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/blogs.ncl.ac.uk\/nova\/wp-json\/wp\/v2\/pages\/1809","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.ncl.ac.uk\/nova\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/blogs.ncl.ac.uk\/nova\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.ncl.ac.uk\/nova\/wp-json\/wp\/v2\/users\/11905"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.ncl.ac.uk\/nova\/wp-json\/wp\/v2\/comments?post=1809"}],"version-history":[{"count":1,"href":"https:\/\/blogs.ncl.ac.uk\/nova\/wp-json\/wp\/v2\/pages\/1809\/revisions"}],"predecessor-version":[{"id":1814,"href":"https:\/\/blogs.ncl.ac.uk\/nova\/wp-json\/wp\/v2\/pages\/1809\/revisions\/1814"}],"wp:attachment":[{"href":"https:\/\/blogs.ncl.ac.uk\/nova\/wp-json\/wp\/v2\/media?parent=1809"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}