智能聊天机器人在C语言程序设计教学中的应用

2021-03-14 06:12张廷东蒋雪君
电脑与电信 2021年12期
关键词:C语言程序设计聊天

杨 晔 张廷东 蒋雪君

(浙江警官职业学院,浙江 杭州 310018)

1 引言

随着互联网和人工智能技术进入教学领域,课程教学和学习理论、教学模式等发生了巨大变化,以学生为中心、以教师为主体的建构主义的教学模式开始兴起,也为探讨新的学习途径提供了可能。聊天机器人(Chatbot)是一个利用人工智能技术开发的、旨在与人交流对话的计算机程序,它可以不受时间、空间等因素的限制,不知疲倦地与人聊天[1]。目前在全球范围内,聊天机器人应用于教学领域比较成功的Chatbot,有乔治亚理工学院推出的助教Jill Watson、英国的Whiz Education平台、美国教育科技公司K12 Insight推出的Let’s Talk助理等,这些产品很好地扮演了老师的角色,解答学生的问题,成为助推学生自主学习的关键。

2 C语言程序设计课程教学的困境

C语言程序设计是第一学期的编程入门课程,也是学习软件开发和信息安全等专业课程的先修课,这门课程是否能学好,对于培养学生的专业技能十分重要,也对于学生建立专业学习的信心和兴趣至关重要。

对于新生来说,仅凭一周4学时的课堂教学,学好C语言并不容易。根据笔者多年的教学实践经验,发现对于高职学生来说,有些学生觉得这门课很难,有些学生觉得这门课没有用,有些学生缺少独立学习能力,有些学生甚至因为这门课没有学好而失去了从事专业方面工作的信心。为什么在老师看来简单的入门课程,会对高职学生造成如此大的困惑,我们又该如何走出困境?

仔细分析原因,我们发现并不是所有的学生都听不懂,而是学习能力差距比较大。我们尝试过两种解决方案,方案1是教师将授课进度放得非常慢,大家能够跟上节奏。方案2是教师使用微信、钉钉、qq等即时通讯工具,在课外对没有所有听懂的学生进行大量个别解答和辅导。这两种做法都可以使课程内容的接受度是得到大幅提升。然而选择方案1放慢节奏,明显会影响到课程的整体教学效果,吸收能力好的学生感觉吃不饱,也不能达到C语言程序设计课程标准里的要求。选择方案2,需要耗费老师极大的精力和时间,而其中学生的问题有大部分是类似的,比如对于某个概念的不理解,抑或是某道题不会做等,不同班级之间学生提问的内容也会出现大部分重复,教师容易陷入重复劳动的漩涡。

3 在学习中使用聊天机器人的教学方法

英国开放大学《创新教学报告》是全球教育创新的重要纲领性文件,以创新和未来展望为主题,根据各种教学方法在现阶段的影响力进行排名。在2021年的报告中,“在学习中使用聊天机器人的教学方法”排在第四位,这为本项目的研究提供了理论依据,增强了研究的信心[2]。

聊天机器人改变世界的方式,将比我们想象的更多。它以客户为中心,可以完成一系列不同的任务。在学习中使用聊天机器人的教学方法,恰巧符合以学生为中心的教育理念,可以让学生感受到学习上的助推力。它使用文本或语音与学生进行交流,既可以回答学生提出的问题,帮助其解决问题,也可以提出问题,引导学生进行更深层次的学习。特别是当老师不在场或不能提供帮助时,学生仍然能够自主学习。这种方法有利于构建沉浸式学习环境,让学生会更自由地借助聊天机器人辅助学习。聊天机器人在解决大规模学习和高质量学习之间的矛盾时带来了机遇,通过从聊天对话中收集数据,分析学生行为,提供有针对性的帮助与引导,这样有助于减少教育者的工作量,从而更好地实现个性化学习。

4 聊天机器人系统的设计与实现

本项目通过聊天机器人的应用构建了一种智能对话服务,帮助教师简化面向学生的服务,改变学生获取信息和见解的方式,重塑学生的学习方式,为学生进行自主学习提供保障。在聊天机器人的助力下,让教师从重复机械的答疑等工作中解放出来,专注于更具创造力的工作,成为课程教学的领导者和指导者。同时使用机器学习理论对聊天获得的数据进行分析,可以形成教学决策辅助,帮助教师从宏观层面上准确把握课程进度,提高教学质量和效率。本项目选取了教学中比较常见的提问和回答场景,将OJ(Online Judger)平台与Chatbot这两个应用相结合。

4.1 OJ平台的设计与实现

OJ平台是一种在线评测系统,用户可以在线提交多种程序代码,系统会自动对代码进行编译,并利用事先系统设计好的测试用例执行程序,对程序进行自动评测,是各种计算机程序大赛的主要平台,也常用于各类程序设计语言类课程的实践教学平台,赛教融合,提升教学效果[3]。

本项目的OJ平台模块,采用了Hcode Online Judge,实现基于springcloud+vue前后端分离,分布式架构的在线测评系统。该平台网站权限控制完善,判题使用cgroup隔离用户程序,支持分布式判题,判题速度快,支持手机端响应式布局。我们在OJ平台上,发布每章必做和选做习题,并为学有余力的同学准备了ACM程序设计竞赛的题目。我们按照知识点分类设置了数据类型与表达式、分支控制、循环控制等7个类型的题目,通过设置标签说明题目的类别,颜色为绿色。同时为了将ACM程序设计比赛融合到教学中,以赛促学,设置了二分查找、动态规划、基础数据结构等类型的题目,该类别颜色为蓝色。题库中按照类别设置,已经存有14个类别、约100道题目,为课程实施打下了坚实的基础。OJ平台的题目首页效果图如图1所示,答题界面如图2所示。

图1 本项目OJ平台的题目首页

图2 本项目OJ平台的答题页面

OJ平台可以自动批改程序,学生能够立刻得到反馈,大大提高了学生的参与度,并且提供了充分的测试用例去校验,学生能够通过实践掌握程序设计的通用性、时空性能的训练,系统地提高了学生C语言程序设计的能力。通过将提问的范围固定在习题练习上,更好地保障了智能聊天机器人的答题质量和个性化辅导的准确率。

4.2 Chatbot的设计与实现

本项目的聊天机器人模块,采用了开源聊天机器人框架Chatterbot。它是一个完全用Python编写的基于一系列规则和机器学习算法的聊天机器人框架。它会从保存的对话语料中找出与输入句子最匹配的句子,并把匹配到的句子的下一句作为回答返回。通过开发核心工作流程、训练器、逻辑适配器,实现了能够针对学生提出的问题进行回答的功能。Chatterbot的处理流程图如图3所示。

图3 Chatterbot处理流程图

一个Chatterbot实例可以绑定多个逻辑适配器,用于根据输入产生输出。Chatterbot中没有独立的用于选择对话逻辑的意图识别模块,它将意图识别的功能放到了各个逻辑适配器中。接收到输入之后,Chatterbot会将其传递给各个逻辑适配器,由它们自己判断是否适合对输入的文本进行回答。如果逻辑适配器认为不能对输入进行回答,则会跳过,否则就输出回答。用户与聊天机器人对话的效果如图4所示。

图4 本项目Chatbot的交互界面

在前期的研究实践中,我们发现如果聊天机器人回复的质量太低,学生的学习兴趣会显著下降。如果不设范围,让学生随便提问,往往聊天机器人的回复不是想要的答案。所以我们将Chatbot与OJ平台结合起来,让学生针对OJ平台上的某一题目进行提问,同时还设置了机器人菜单,让学生进行选择功能,菜单不能匹配的,Chatbot程序会使用机器学习算法对语料库进行学习训练,找到比较接近的答案。机器人菜单中的选项设计顺序刚好符合学生产生问题的过程,分别是想打开OJ网站(询问网址)->做不出要提示->出错找问题->参考别人的代码->做不出需要激励->最后放弃看答案->选择下一道题目。通过一系列的优化,聊天机器人较好的满足了学生的学习需求和提升了学生的学习兴趣[4]。

5 聊天机器人系统应用场景分析

本项目的目标是通过智能聊天机器人,为教师增加一个增强教学、学习和评估的虚拟助手。它可以随时随地回答学生在学习过程中出现的疑问,帮助学生巩固各阶段的学习,提升学生学习C语言的自信心和趣味性,提高学生学习编程的热情,同时也大幅减轻教师的答疑工作量,提升了教学质量。我们选取了三个场景测试系统进行测试,具体的应用效果分析结果如下[5]:

(1)课堂上,老师使用OJ平台布置课堂练习。学生有问题举手问老师,如果举手人数较多,部分学生会选择聊天机器人进行询问。但是一旦聊天机器人不能提供高质量的回答,学生就会立刻放弃使用Chatbot,选择问老师或同学。在课堂上,Chatbot应用效果一般。

(2)在课外,老师使用OJ平台布置课外作业。当学生遇到不能解决的问题时,会选择通过微信等方式问老师。如果老师无法及时回复,多数学生会选择询问聊天机器人或查找资料。在课外作业中的应用效果比课堂应用效果要好。

(3)在ACM竞赛辅导中,竞赛小组的学生使用OJ平台进行自主学习练习。老师根据学生的刷题排名,确定学生的学习质量。此时学生在自主学习的过程中,一般会首先选择靠自己解决问题,因此使用聊天机器人解决疑问的热情比较高,应用效果最好。

因此,我们可以看出聊天机器人的应用效果与学生的自主学习热情成正比。从已有的数据分析看,目前阶段设计的聊天机器人比较适合竞赛辅导训练场景。

人工智能给教育者和学习者都带来了巨大的好处。聊天机器人代表了新一代认知技术,我们可以直接使用自然语言与计算机交互,得到准确精练的回答。相较于目前搜索得到的成千上万个网页,无疑Chatbot能够让用户更快地获取有用信息,更有效地减轻人工工作量。把聊天机器人引入到课程教学中,在学生学习专业技能时,指导学生逐步深入地学习并掌握该技能,将是一次非常有意义的尝试。

猜你喜欢
C语言程序设计聊天
基于Visual Studio Code的C语言程序设计实践教学探索
51单片机C语言入门方法
从细节入手,谈PLC程序设计技巧
基于C语言的计算机软件编程
我就是不想跟你聊天了
敞开门聊天
高职高专院校C语言程序设计教学改革探索
PLC梯形图程序设计技巧及应用
聊天不倒王
你我聊天桌等