“C语言程序设计”课程的AI案例式教学探索

2022-06-20 13:22王中林
纺织服装教育 2022年2期
关键词:C语言程序设计C语言程序设计

赵 萍, 薛 亮, 王中林

(1.东华大学 信息科学与技术学院, 上海 201620;2.宁波财经学院 信息与金融学院, 浙江 宁波 315000)

近10年来,随着硬件之一的显卡计算能力不断增强,原来仅停留于理论的人工智能(AI)技术蓬勃发展起来,诞生了诸如深度学习、机器学习和神经网络等技术。现今,AI技术已成为最流行的计算机技术之一,图像处理、语音识别、自然语言处理等技术广泛应用于互联网软件、电子游戏、无人驾驶等领域[3]。与此同时,AI的热度在当今的本科教学中也得以体现,越来越多的高校开设AI相关课程,甚至开设了AI专业。为了使培养的学生符合社会发展的需要,让学生学习和掌握AI技术显得越发重要。在这样的背景下,作为信息技术类专业学生的第一门编程课“C语言程序设计”也应跟上这样的AI潮流[4]。

一、目前“C语言程序设计”课程教学存在的不足

如今不少高校的“C语言程序设计”课程依然采用传统的教学方法,在教学过程中重理论、轻实践,学生在学习了该课程后很有可能依然不会编程。究其原因在于:(1)“C语言程序设计”课程内容的创新力度较小。首先,选用的教材较陈旧。大部分高校所选用教材的内容与10年前相比没有太大变化,都是较为复杂的理论知识以及简单的例题和习题,没有与当今的AI技术相融合,无法激发学生的学习兴趣。其次,学生课堂参与度低。学生不能直观地感受到学习C语言的实际用途,导致学生没有成就感,缺乏学习动力,甚至对编程失去兴趣。(2)实践教学环节缺失。绝大部分“C语言程序设计”课堂的上机实践都是简单的验证性实验,实践内容过于单调、简单,大部分实践内容仅仅针对课本上的例题或者对例题程序稍加修改即完成了验证内容。这样的实践教学既不能锻炼学生的独立思考能力和编程能力,也不能引起学生学习C语言的兴趣,甚至使学生认为学习C语言没有多大作用。因此,学生在这样的课堂上学习的知识和技能很难对日后的实际应用有所帮助[2]。

在AI时代,“C语言程序设计”课程的理论与实践内容必须进行调整。东华大学信息科学与技术学院对“C语言程序设计”课程与AI技术相结合的案例式教学进行探索,本文以监督学习中的分类算法KNN为例,详细介绍具体的改革实践。

二、人工智能背景下“C语言程序设计”课程案例式教学改革方案

AI背景下“C语言程序设计”课程案例式教学改革主要从理论教学、实践教学、课程反馈、实验室支持四个方面进行探讨[1]。案例式教学改革方案如图1所示。

1. 理论教学

为了让学生接触到AI最新知识,教师应该随着课程的进度安排相应的AI实践项目。在课堂上教师不必拘泥于语法细节知识的教学,以节省时间,拓展学生有关AI方面的知识。由于学生学习“C语程序设计”课程时尚处于低年级,对于AI的背景知识缺乏了解,因此教师可选择一些经典且涉及数学知识较少的小型AI项目进行案例式教学,从中提取与教学内容密切相关的理论知识在课堂上讲解。这样不仅可加深学生对C语言理论知识的学习,而且也拉近了C语言程序与AI之间的距离,使学生感到AI并不是一个“高大上”的东西,同时为相应的实践课打好基础,激发学生对实践课的热情。

图1 “C语言程序设计”课程案例式教学改革方案

2. 实践教学

实践教学的改革应从AI小型项目的分化入手,同时将各部分内容结合相应的语法知识融入实践项目。当然有关AI知识的教学可能无法支撑整节实践课,所以教师不能全盘抛弃以前的实践课内容,需选择一些原先实践课中较为成熟的习题给学生练手,便于他们打开编程思维,更快地进入编程状态。在此基础上,教师选取AI项目的部分内容作为本实践教学的重要补充,开展案例式教学。

在整个实践课程结束后,学生已经掌握了必要的语法以及AI项目的基本知识,教师可以布置一个大作业,让学生独立完成一个AI小型项目,所用算法与本学期实践课所学项目相似。学生自由组成团队,教师给每个小组提供一个较为简单的AI项目。每组选择1名小组长,负责项目结束后的效果演示。实践之前先将整体项目分成若干模块,每个成员负责其中的一个模块,同时各成员需熟悉项目中的其他模块知识。各组在实践过程中要记录各阶段运行的效果,并描述调试过程中遇到的各种问题,最终形成小组实践报告并制作PPT,在最后一次课上各组代表上台展示实践内容。

3. 课程反馈

在每一阶段的课程内容教师讲解及学生实践完成后,教师制作《“C语言程序设计”课堂教学反馈表》调查学生对课程内容的掌握情况。调查表主要从分解知识点及其实践两个方面,深入了解学生对C语言基础知识与相关AI知识的掌握情况。最后,教师根据学生的学习效果调整及优化教学内容、教学进度及教学方法。

4. 实验室支持

东华大学西门子先进自动化实验室为“C语言程序设计”课程的AI案例式实践教学提供了实验室支持。实验室配有300台高性能计算机,安装了Windows、Linux等操作系统,具有多套编程软件环境(如Dev-C++、Visual Studio等)。该实验室能够保障学生采用C语言完成小型AI项目,并完成课程最后的实践大作业,能够支持300名学生同时进行编程实践,为“C语言程序设计”课程的AI案例式实践教学提供了良好的实验室条件。

三、人工智能背景下“C语言程序设计”课程案例式教学改革实践

以AI项目“KNN算法进行手写数字识别”为例,介绍AI背景下“C语言程序设计”课程案例式教学改革实践。“KNN算法进行手写数字识别”项目可分为以下模块:(1)手写数字的二值化以及打印查看效果(循环、数组与打印语句);(2)测试集、训练集的划分(文件的读取);(3)KNN算法的实现(包括距离的计算及距离值的排序)和训练结果打印。以“手写数字的二值化以及打印查看效果”模块为例,介绍教学改革方法与内容。其实际效果如图2所示。

图2 手写数字图像二值化的效果

1. 理论教学改革

理论教学前教师先做一遍实验,并确认无误后整理出相应的资料和实验指导内容,包括实验步骤与算法解释等,同时对算法进行适当简化(提前给出阈值,并给出图像灰度值数组source),避免学生因为实验内容太难而望而却步。教师在讲完二维数组这一章的语法知识后,抽出一定时间给学生介绍二值化相关知识,例如二值化的阈值概念以及选取方法,加深学生对实验内容的理解。理论知识讲解后要求学生预习实验内容并形成预习报告,为实践课打好基础。

2. 实践教学改革

在实践课上,教师首先指导学生完成典型的实验习题,待大部分学生完成基础实验后,再进行AI实验的讲解并展示实验效果(图2)。教学思路如下:将图片中各个像素点的数值与给定的阈值相比较,形成0和1并存入对应的数组中,使用for循环和printf语句复现图片中的数字。学生根据教师的思路自行思考并完成实验,要求学生记录在调试过程中出现的问题,这样能快速提高学生的编程水平。在实验过程中教师要关注进度较慢的学生,并提供必要的帮助,避免出现部分学生跟不上实验进度。

3. 课堂反馈

本实验完成后,教师要求学生课下匿名完成课程反馈调查表(见表1),以了解学生对C语言基本数组知识的掌握情况以及对AI相关二值化知识的掌握程度,便于教师反思教学中的不足,为以后的教学积累经验。

表1 “C语言程序设计”课堂教学反馈表

四、结语

本文在分析“C语言程序设计”课程教学存在问题的基础上,结合当前AI技术的热潮,从理论教学和实践教学两方面探讨了AI案例式教学改革方案,重点是在理论教学中结合AI项目分解后的内容讲述相关基础知识点,最后通过一个实验项目的训练,完成整个实践教学环节。将AI小型项目分解后与实践教学相融合,并通过学生对知识点的掌握及应用情况反馈,适时调整教学内容及教学方法。在教学过程中,充分利用东华大学西门子先进自动化实验室的高性能计算平台,为学生完成基于C语言实现小型AI项目提供了良好的实验室支撑。

猜你喜欢
C语言程序设计C语言程序设计
基于Visual Studio Code的C语言程序设计实践教学探索
51单片机C语言入门方法
从细节入手,谈PLC程序设计技巧
基于C语言的计算机软件编程
高职高专院校C语言程序设计教学改革探索
以“学生为中心”的《C语言程序设计》教学设计探究
基于翻转课堂的《C语言程序设计》课程教学系统的实现与研究
浅谈《C语言程序设计》课程的教学改革
《C语言程序设计》课程的教学改革与实践
PLC梯形图程序设计技巧及应用