人工智能辅助会话式编程:一种性别包容的程序设计教学法

时间:2018-10-30 编辑整理:王筱竹 来源:早发表网

【摘 要】由于对计算机科学和职业的陌生和畏惧,技术落伍群体认识不到与真实世界之间存在的联系,使 得将计算机程序设计教学普及到这些群体成为近年来的一项挑战。英国开放大学等机构通过使用技术 手段设计开发教育类游戏等方式在STEM领域扩大学生参与度,使技术落伍群体(包括很多女性)提 高对计算机编程的兴趣。本文使用以亚马逊语音技能工具包(ASK)为代表的人工智能工具,让学生通 过语音会话式交互学习程序设计技术,探讨了如何把序列性会话转换为层次性决策树驱动的交互会 话,提供了一种基于知识图谱的教学法,通过个人软件助理——“大声说程序”(Ask Program Aloud) 引导人机对话。通过具体案例和用户参与,定性评估了使用“大声说程序”发起对话这个方 法的有效性。结果表明,人工智能确实能够提升参与者对学习计算机编程技能的兴趣,既可以支持目 前单向会话形式的计算机编程教学,也可以鼓励技术相对落伍的学习者群体获得计算机编程能力,进 一步提高社交友好性和技能转化能力。

【关键词】 人工智能;语音技能工具包;“大声说程序”;交互编程;会话式编程;计算机辅助教学;动画;数字游戏

一、问题提出

一般情况下,技术可以被定义为衔接科学和工程的 接口。美国医学国家图书馆 United States NationaI Library of Medicine, 2010) 把技术定义为“把包括工 具、技巧、产品、过程和方法在内的科学知识应用于实 践任务”。现代社会技术无处不在,普遍存在于医疗卫 生、安全、通信、教育等各个领域。在教育领域,要在 教与学的过程中传授技术的抽象概念需要进行高层 次的思考和令人愉悦的操练 (Carbonaro, Szafron, Cutumisu, & Schaeffer, 2010)。近年来,教育技术在 推广 STEM[科学 (Science)、技术 (TechnoIogy)、 工程 (Engineering) 和数学 (Mathematics) 四门学 科教育的总称]专业的学习者当中越来越受到重视。 作为STEM专业基础的计算机科学教育领域,尤其是在 程序设计教学方面存在着这样的不一致:理论上,“有 教无类”的原则要求普及计算机教学跟其他科普领域 一样,需要对教学对象一视同仁,不应该根据性别区 别对待;在实践中,鉴于计算机科学的工程学属性和 计算机程序设计对数学的要求,却又存在着性别上的差异性。这一现象使得性别包容教学法 (Gender-IncIusive Approach) 引起普遍关注。有研究者尝试设 计普适性数字游戏让学习者练习程序设计,加深对计 算 机 科 学 相 关 概 念 的 理 解 (Overmars, 2004; Denner, Werner, & Ortiz, 2012; Robertson, 2012); 有研究者针对特定人群设计了创造性教学游戏,促进 对 编 程 概 念 的 掌 握 (KeIIeher & Pausch, 2007; Denner, et aI., 2012; HarteveId, Smith, CarmichaeI, Gee, & Stewart-Gardiner, 2014; Esper, Foster, & GriswoId, 2013)。随着人工智能 (ArtificiaI InteIIigence, AI) 技术的发展和应用,探讨基于人工智能 赋能的工具作为新的技术路线教授计算机编程基本概 念,扩大教学的可能范围,使得包括视力受损或学习 条件受限的学习者在内的弱势群体更容易接受编程教 学 (Yu & Wang, 2017),惠及更多学习者。

二、文献综述

(一) 计算机辅助教学智能辅导系统

为学习者提供个性化的关注以满足其对教学的需 要,最初促成了计算机辅助教学 CAI) 领域的研究工作。传统的智能辅导系统 (ITS) 主要是为了满足 学习者的个性化需求,在呈现材料方面提供了相当的 灵活性和更快的反应 (Van Lehn, 2006),能够通过 明确教学法中如何教和如何学智能性地决定内容的 呈 现 (Beck, Stern, & Haugsjaa, 1996; Van Lehn, 2011)。这种创造智能的能力允许更大的通用性,改 变着系统与学习者之间的交互方式。 此外,从相关 研究中可以看出,ITS 在提高学习者的表现、参与、 态度和动机方面都非常有效 (Bayraktar, 2001; KuIik & FIetcher, 2016)。表现改进方面的研究表明, 与仅使用传统的课程方法相比,学习者使用CAI补充 传统的教学会取得更好的成绩,使用更少的时间就 能掌握课程内容 (Christmann & Badgett, 2003)。 然而,传统 ITS 的一个主要局限是需要耗费大量的 时间和成本才能逐步提高学习者的智力和培养学习 者的深度学习 (Jonassen & Reeves, 1996; AIeven, RoII, McLaren, & Koedinger, 2016)。

(二) 教育类数字游戏和性别包容性

如前所述,在计算机编程教学方面存在着理论上 “有教无类”的原则与实践中计算机学科的工程性质 和程序设计对数学的要求导致的性别上的差异性。相 关的文献回顾表明,关于数字教育游戏和性别的动机 吸引力有三种主要论点:第一种论点认为,数字教育 游戏的动机吸引力没有性别差异 (Ke & Grabowski, 2007; Papastergiou, 2009; Koivisto & Hamari, 2014; MekIer, BrühImann, Tuch, & Opwis, 2017)。 相反,因果因素 (如个人和情境因素等) 可以解释 不 同的游戏效果 (Wang, Schneider, & VaIacich, 2012; Hamari, Koivisto, & Sarsa, 2014)。第二种论 点认为,数字教育游戏的动机吸引力存在性别差异 (De Jean, Upitis, Koch, & Young, 1999; Young & Upitis, 1999; PrzybyIski, Weinstein, Murayama, Lynch, & Ryan, 2012; Wu, Yen, & Marek, 2011; BoyIe, ConnoIIy, & Hainey, 2012; PoweII, Dainty, & BagiIhoIe, 2012; PossIer, KIimmt, SchIütz, & WaIkenbach, 2017)。有研究者进一步论证了在数字 化教育游戏的动机吸引中性别差异的存在,但是,这 些差异取决于对游戏特征的感知,而这些特征既可以 支持也可以阻碍动机 (Huang, Hood, & Yoo, 2013; Ferguson & OIson, 2013)。第三种论点认为数字游 戏提供的动机吸引力的性别差异是与体验相关的复杂变量,而不是差异产生的真正原因 (Ratan, TayIor, Hogan, Kennedy, & WiIIiams, 2015; Shen, Ratan, Cai, & Leavitt, 2016)。虽然第一种论点认为数字游 戏的动机吸引力没有性别差异存在,但第二种和第三 种论点都论证了数字游戏的动机诉求存在着性别差 异,这些差异是否基于性别诱因尚不确定。相关研 究还表明,数字化教育游戏的内容倾向于呈现受限 制的性别角色,具有性别身份问题以及不支持女孩 的动机吸引力的特征 (Hartmann & KIimmt, 2006; Shen, et aI., 2016)。一些创造性的教学游戏,如 TaIking AIice (KeIIeher & Pausch, 2007; Denner, et aI., 2012)、 Gram House (HarteveId, et aI., 2014) 和 CodeSpeIIs (Esper, et aI., 2013),都是 针对年轻女性学习者讲授基本编程概念而设计的。这 些已有的智能指导系统普遍基于女性学习者群体更易 接受的一系列经验事实 (KuIik & FIetcher, 2016; KeIIeher & Pausch, 2007; Denner, et aI., 2012)。我 们在之前的研究中也对性别包容性做出了定性和定量 的实验分析 (Osunde, WindaII, Bacon, & Mackinnon, 2015),结果表明,动机诉求中的性别差异在很 大程度上是可以控制或改变的。

(三) 自然语言处理和机器学习在计算机辅助教 学中的应用

最近,传统的ITS也在不断改进,并在自然语言 处理 (NLP) 和机器学习 (ML) 中得以应用。自然 语言处理 (NLP) 作为计算机科学和人工智能的一个 领域,涉及计算机和人类 (自然) 语言之间的交互, 通过编程使得计算机能够成功地处理大量自然语言的 数据 (HindI, Barr, Su, GabeI, & Devanbu, 2012)。 自然语言处理 (NLP) 与机器学习 (ML) 的结合使 得计算机系统拥有在没有明确编程的情况下也能够逐 步提高智能的能力 (SamueI, 1959; Koza, Bennett, Andre, & Keane, 1996; MikoIov, JouIin, & Baroni, 2016)。由此产生的代理程序拥有模拟人类认知 (如 学习和解决问题) 的能力,被称为“人工智能”的能 力 (RusseII & Norvig, 2016)。相关研究表明人工智 能技术在CAI中的广泛应用,包括建立一个对话程序 以支持增量的方式对素材编码,以规避诸如文法 解析、强大计算能力以及创建用于编码的框架所需的 时间 (CarboneII, 1970; Koffman, 1972; MichaIski, CarboneII, & MitcheII, 2013)。实现人工智能技术的早期CAI系统是从具备相关专业知识的人工设计出发 生成的,因此自然而然地可以导出相应的问题和解决 方案,提供广泛的训练和辅导,诊断学习者的问题, 并提供反馈 (Koffman, 1972; Lowyck, 2014)。实现 人工智能技术的最新CAI系统进一步将其专业领域知 识扩展到基于互联网的资源,以及数据和计算处理设 施的物联网 (IoT)(Wenger, 2014)。

通过对相关文献的回顾,我们认为,探索一种借 助语音产生人机交互的新型程序设计辅助教学法,尝 试取代以传统的程序文本显示的方式进行教学,通过 语音对学习者进行教学,有助于控制或改变当前计算 机编程教学中实际存在的性别差异;通过对新教学法 的案例结果进行定性评价,探讨实验得失,总结经 验,展望未来的研究方向。

三、研究设计

(一) 研究问题

借助Web和物联网 (IoT) 扩展的专业知识,结 合有效的计算处理能力,可以进一步在计算机编程教 学方面进行模式上的变革,从单向和孤立的学习环境 转变为以学习者为中心且更注重叙事的友善环境 (van Deemter, Krenn, Piwek, KIesen, Schröder, & Baumann, 2008)。为此,我们在亚马逊提供的 AIexa SkiII Kit (ASK) 音效库的基础上构建了人工智 能 (AI) 工具,让参与者使用语音交互技术生成叙事 的方式达成学习计算机编程的目的。我们提出了“大 声说程序”(Ask Programs AIoud, APA) 教学法, 这是借助语音人机交互的新型程序设计辅助教学法, 假设教学可以通过语音同学习者交互,而不是通过传 统的程序文本的显示进行。

研究假设 1:“大声说程序”这种新型的交互手 段能否在计算机编程教学中进行模式上的变革,从单 向和孤立的学习环境转变到以学习者为中心、更为注 重叙事的友好环境?

研究假设2:“大声说程序”方法应用于编程教学 能否比传统的数字化教育游戏带来更好的性别包容性?

针对假设1,我们设计了一个对话性叙事的SkiII 实验,用以展示研究方案的可行性。

针对假设2,通过实验我们对传统的采用图形用 户界面 (GUI) 的教育游戏和采用语音交互界面(Voice User Interface) 的“大声说程序”游戏进行 比较,研究两者在不同学习者之间的性别包容性。

(二) 研究方法

1. “大声说程序”的技术可行性实验

我们提出使用对话性叙事作为一个包容性的 形式,以开发交互式和叙事性的计算机编程技术。 通过使用语音交互 AI 功能 (如 AIexa SkiII Kit),将 顺序性的单一叙述转换成由学习者需求驱动的分 层叙事 (Lapouchnian, Yu, Liaskos, & MyIopouIos, 2006)。在实验中使用了若干台 AIexa Echo Dot 设 备,让多个实验对象可以同时参与。这项设计的目 的是既能够聚焦于学习者编程练习的任何细节,又 能够同时概括学习相关的抽象概念。在实践方面, 我们引入了一个基于知识地图的教学方法——“大 声说程序”,一类个人软件助理,可以响应语音命 令触发对编程概念的解释,并对编程上下文进行 概括等。这种语音驱动是响应学习者的新型交互 模式,可以与学习者产生智能对话,中肯地回答关于 编程概念的问题 (Yu & Wang, 2017; Yu, Thein, & Bashar, 2011)。为了在编程概念的上下文中展示我 们的方案,以下面的一个简单Java程序为例来说明 问题。

 

这个简单的 Java 程序要实现在控制台输出 “HeIIo,WorId!”。将由学习者的个人助理软件 (即 “大声说程序”) 表达出来,从而构成了人机对话的 基础。

“大声说程序”,请告诉我程序的类名是什么?系 统可能回应:程序的类名是“HeIIo”。下一个问题: “调用了方法吗?”可能的反应是:程序调研了 “print”方法。下一个问题:“要print什么呢?”可能 的反应是:程序将在控制台打印“HeIIo,WorId!” 消息。下一个问题:“有没有其他显示消息的方法可 以调用?”可能的反应是:也可以在对话框中显示消 息。下一个问题:“如何在对话框中显示消息呢?”可 能的反应是:需要通过“import javax.swing.Joptionpane”语句导入类库,才能在对话框中显示消息 “HeIIo,WorId!”。从上述对话可以看出使用“大声 说程序”的优点:不必提供程序的每一个细节,只需要提供部分答案,并通过后续问题的回答对答案进一 步扩展。换言之,这是一种对话,而不是一言堂式的 独角戏,是与学习者沟通的全新方式。图 1 给出了 ASK大声说程序 (APA) 框架的概述。

 

该框架的第一阶段把Java程序解析为一个抽象 语法树 (AST),将代码的嵌套结构表示为一棵树, 其根节点通常是一个对话的起点。APA 系统将初始 问题 Q0翻译成初始参数 (通常被置为 AST 的根节 点)。结合问题Qi和参数Ti,APA将答案A(i T)i 作为 结果返回给学习者。学习者可以使用返回参数 Ti作 为新的上下文询问后续问题Qi+1 (T)。i 为了便于AST 的逐级导航和 AIexa 的语音合成,需要在 ASK 的服 务器端将程序解析成 AST,并根据学习者在交互 中提出的附加问题移动参数 Ti。所使用的基础设施 遵循亚马逊 AWS 云服务,使用 AIexa SkiII Kit 工具 包基于云的开发环境,并使用开源项目 FIask 简化 开发和部署Python接口的服务器端实现。在客户端 使用 AIexa 强大的合成模型,ASK 必须被配置为可 以回答多种类型的问题,而我们则必须通过识别在 先前问题的答案中使用的参数来定义上下文变量。 由于 AIexa 可以问开放式的问题,我们预定义了一 些参数,便于学习者在遇到困难时能够使用 AST 导 航设置的初始着陆点 (根节点),跳出上下文的 局限。

 


职称
论文

期刊
发表

加急
见刊

写作
咨询

课题
专答

编辑
顾问

关注
我们

返回
顶部