避开图灵陷阱:通过从代码的目的开始学习对话编程
编程教育与计算思维原型设计与用户测试软件工程师与开发者HCI 研究员
文献标题
Avoiding the Turing Tarpit: Learning Conversational Programming by Starting from Code’s Purpose
文献信息
- 主题领域: 编程教育、软件学习方法
- 关键词: Conversational programmers, 编程计划, scaffolding, motivation, computer-supported instruction, web scraping, 程序设计, 人机交互, 学习动机, 编程教育
研究背景与问题
-
发现的问题或挑战:
- 非计算机科学背景的学生想学习编程以便与技术同事交流,但不打算成为软件开发者——称为“谈话型程序员”(conversational programmers)。
- 现有教学资源过于注重语法和语义,缺乏应用相关内容,未能满足谈话型程序员的学习需求,导致他们感到挫败和缺乏自信。
- 谈话型程序员需要快速获得对代码目的的理解,但传统教学方法使他们陷入“图灵泥潭”——一切皆有可能,但无一容易。
-
研究的重要性:
- 随着跨学科学习者对编程课程需求增加,适应其教育方法变得至关重要。
- 当前的教育方法未能与这些学习者的目标契合,导致低效和缺乏学习动机的问题。
-
研究动机与相关工作:
- Wang等人的研究建议,针对谈话型程序员的工具应避免过多关注语法和逻辑,而应注重应用背景,并设计简短的学习课程。
- 计划(Plan)理论提出了将代码划分为可复用目标块的方式,这为新教学方法提供了启示。
解决方案
-
提出的方法或解决方案:
- 本文提出了一种名为“以目的为先的编程”(Purpose-First Programming, PFP)的新方法,通过专注学习领域中特定的代码模式和程序目的来支持谈话型程序员。
- 学习内容基于少量常见、特定领域的代码计划(Plans),并用Scaffolding技术帮助学习者理解与修改代码。
-
创新之处:
- 引入详细而有约束的计划模型,每个计划包含子目标和操作槽,帮助学习者关注代码目的。
- 使用“透明盒子式支撑”(Glass-box scaffolding),帮助学习者理解关键代码结构的同时保持完整代码可见。
- 设计以实际应用为导向的互动教材,供学习者快速掌握编程技能。
-
实施步骤与关键技术:
- 计划设计:
- 基于大规模GitHub BeautifulSoup代码库分析提取常见计划。
- 通过专家反馈确认计划的真实性和适用性。
- 教学平台开发:
- 使用Runestone平台构建交互式教材,支持撰写、调试和解释代码。
- 教学支持设计:
- Highlighting 技术展示代码计划及其槽位。
- 交互式活动支持计划的组合与修改。
- 课程主题领域:
- 选取网络抓取(web scraping)为主题,涵盖HTML和Python BeautifulSoup库的实用任务。
- 计划设计:
研究成果
-
具体成果:
- 制定了包含五种计划的网络抓取教学课程,帮助学习者理解和创建有意义的代码。
- 谈话型程序员在30分钟学习后能够完成 scaffolding 支持下的代码撰写、调试和解释任务。
-
与现有解决方案的比较与优势:
- 与传统编程教育不同,PFP更注重编程计划的功能性和领域相关性,而非语法细节。
- 相较于视觉化编程工具(如Snap!或PythonTutor),这种方法被参与者认为更加实际和贴合真实需求。
-
实验或评估结果:
- 受试者在使用 PFP 教程后,表现出较强的学习成功感和较低的认知负荷。
- 受试者强调此方法分步骤的教学和领域真实感增加了学习的动机和价值体验。
-
局限性与未来方向:
- 当前实验规模较小,仅针对七名参与者,需进一步推广以验证其通用性。
- 教学工具和计划框架可进一步优化,如增强编辑器整合能力以支持更动态的计划修改。
- 未来可扩展到其他编程领域,并针对不同编程水平学习者设计改良课程。
通过以目的为核心的学习方法,与日益多样化的编程学习需求相适应,本研究为促进谈话型程序员的能力提升提供了切实可行的路径,也为编程教育的创新提供了一种新范式。
研究问题 / 现实痛点
这篇论文在当前问题库中对应的问题线索。
help
研究问题
3- 如何帮助非计算机专业背景的“对话式程序员”快速理解代码用途?分类: 计算与AI素养教育支持同类问题arrow_forward
- 领域特定的代码计划(goal-oriented blocks)能否提升编程学习效率?分类: 计算与AI素养教育支持同类问题arrow_forward
- “玻璃盒式脚手架”如何在编程教育中保持代码全局可见性并提升学习效果?分类: 计算与AI素养教育支持同类问题arrow_forward
lightbulb
现实痛点
1- 非程序员背景的学习者在理解代码用途和功能上感到挫败。分类: 计算与AI素养教育支持同类问题arrow_forward
- 67%
Colaroid:用于创作可探索的多阶段教程的文学编程方法
CHI '23· 编程教育与计算思维 +2
- 67%
MathAssist:手写数学表达式自动补全技术
IUI '24· 生成式AI(文本、图像、音乐、视频) +2
- 60%
CFar:一种提高协作代码审查中沟通、生产力和审查质量的工具
CHI '18· 开源协作与代码审查 +1
- 60%
使用在线论坛描述电子表格软件中的可扩展性问题
CHI '18· 用户研究方法(访谈、调查、观察) +1
- 60%
ResearchIME:一款用于研究野外自由输入行为的移动键盘应用程序
CHI '18· 用户研究方法(访谈、调查、观察) +1
- 60%
用户如何解释触发动作编程中的错误
CHI '19· 原型设计与用户测试 +1
- 60%
通过结构指导改进群支持的GUI测试
CHI '20· 自动驾驶界面与接管设计 +1
- 60%
计算学生在人机交互教育中的学习困难
CHI '20· 编程教育与计算思维 +1
- 60%
可解释的程序合成
CHI '21· 可解释人工智能(XAI) +1
- 60%
理解程序员如何在文档中使用注解
CHI '22· 编程教育与计算思维 +1
基于研究子主题与职业分类的 Jaccard 相似度(≥60%)
快捷操作
广告推荐
学习 AI 编程到 CodeNow
open_in_new打开DOI链接
DOI: https://doi.org/10.1145/3411764.3445571
一眼看懂
fact_check论文快照
dataset
来源
CHI
calendar_month
年份
2021
emoji_events
奖项
未标记奖项
group
作者
4 位作者
sell
研究子方向
编程教育与计算思维、原型设计与用户测试
work
职业/产业
软件工程师与开发者、HCI 研究员
article
内容状态
已索引正文
hub
相关论文
10 篇相关论文