APP下载

编程应用类课程的综合式课堂教学模式探索
——以中国计量大学“Python机器学习”课程为例

2023-12-08曹松晓

教育教学论坛 2023年44期
关键词:当堂编程机器

曹松晓,宋 涛

(中国计量大学 计量测试工程学院,浙江 杭州 310018)

引言

机器学习是近些年研究和实际应用中的热门[1],在当前“智慧计量”的大背景下,在计量与测控教学中采用机器学习是未来的一大发展趋势,而Python是目前人工智能、机器学习和深度学习领域应用最为广泛的一种编程语言[2],容易入门且功能强大,因此,笔者面向中国计量大学计量测试工程学院的研究生开设了一门以Python为编程工具,以深入了解机器学习各种概念、方法及其算法的Python实现为目的的课程——“Python机器学习”。机器学习作为一个热门的研究方向,探索其优秀的教学方法一直是每个教育工作者持续追寻的目标[3]。

“Python机器学习”作为一门具有较强理论性和很强应用性的编程类课程,探索一种综合式课堂教学模式,使学生能在有限时间内融汇各方面的知识,真正学有所得,是此类课程教学中必然会面对和亟须解决的一个问题。针对编程类课程教学,已经有不少学者提出了各种行之有效的方法,如翻转课堂模式[4-5]、线上线下混合模式[6]、解决问题为导向模式[7]和项目式教学[8]等,笔者试图取各家所长,探索一种综合式的适合本校研究生的课堂教学模式。

一、编程应用类课程的综合式课堂教学模式和方法探索

(一)因材施教,与时俱进

“Python机器学习”课程是一门新设立的课程,在之前的课程体系中,没有一门将Python编程与机器学习相结合的综合性课程,而这两者之间的关系在实际科研和应用中密不可分,因此有必要在课程建设期间,不断优化和更新现有的教学内容,实现二者的有机结合,同时紧跟前沿学术和技术变化,使学生学习到更新、更实用的内容。

1.根据学生基础,动态调整编程教学比重。由于本校的研究生来自不同高校和专业,编程基础参差不齐,且每年的情况都会有所变化,同时Python作为当前最热门的编程语言之一,越来越多的学生在本科阶段就已自学过相关内容,因此有必要针对每学年学生的编程基础,动态调整Python编程相关的教学比重。基于此思想,在每学年的课程开始前,笔者会在课程教学群中发起关于编程基础的投票调查,从而可以较为准确地了解整个班级中有多少人已经学习过Python,有多少人完全是新手,以适当地调整编程相关教学内容的课时和比重,如图1所示。

图1 2020—2021学年教学班的Python编程调查结果

通过这种有针对性的问卷调查形式,笔者较好地掌握了学生的基础,清楚地了解到在当前教学班中,有85%的学生没有Python的编程基础,因此笔者在本次的教学中适当地加大了对Python基础知识的讲解,以照顾绝大部分学生的学习情况。

2.跟踪学术动态,添加最前沿的成果和方法。机器学习是当前学术研究和实际应用中的热点,特别是在学术领域中,机器学习的方法和成果日新月异。因此,在教学过程中,教师要紧跟学术前沿,及时将最新的有代表性的成果融入日常教学中,使学生对课程有更强的代入感和参与感。例如,在本学年的教学中,当课程进行到神经网络基础的多层感知机模型(MLP)时,由于其方法已经有几十年的历史,在部分学生看来可能已经过时了,然而在相同的时间段,有学者在Google上发表了一篇颇具影响力的文章——“MLP-Mixer: An all-MLP Architecture for Vision”,这篇论文让这个原本看似古老的方法重新焕发了生机。笔者在教学过程中,从宏观角度系统介绍了这个学术成果,从学生听课的反应来看,大家都表现出了极大的兴趣,同时对MLP方法有了更为直观和深刻的理解。

(二)当堂编程,边学边练

不同于以往编程类课程一部分课时集中课堂学习,一部分课时上机编程的教学方法,笔者在“Python机器学习”课程的教学过程中,探索了“当堂编程、边学边练”的进行模式,即在课堂中,鼓励学生携带笔记本电脑来听课,在讲课过程中布置较小的编程作业,让学生当场编写提交,然后现场点评,让大家一起来讨论和分析别人所写代码的优点和缺点。

如图2是在上课过程中给学生布置当堂编程作业时,学生在课程教学钉钉群里提交的代码。通过与全班学生一起分析代码的优点和缺点,学生可以在课堂上快速掌握特定的知识点,避免出现上完课后就忘记,再次上机时得再学一遍的尴尬。

图2 当堂编程时学生所提交的代码截图

(三)既听又讲,翻转课堂

自开设“Python机器学习”课程以来,课程组根据其教学特点,确定了以课堂教学为主,结合实践大作业、论文答辩的教学模式。在整个课程教学过程中,教师会根据当前机器学习研究的热点,布置1~2次有一定难度的实践大作业,让学生以更贴近实际的方式来分析和解决问题。在课堂教学过程中,结合翻转课堂的形式,让学生当堂演示自己编写的程序,并通过让学生讲解自己使用Python机器学习方法解决实际问题时所用的方法、遇到的问题及思考内容,进一步提高学生对机器学习的理解和认识。

(四)重视板书,从零推导

受新冠病毒感染疫情影响,“Python机器学习”课程第一次上课是网上授课,所有的教学内容都是通过PPT课件的方式来讲解的,这种讲解方式对于编程相关的内容是非常合适的;但是对于机器学习理论基础相关的内容来说,则不太合适,PPT课件的教学方式会使所有的公式和理论推导被一带而过,学生没有充足的时间消化和理解其中的理论知识,特别是涉及数学的相关知识,最终导致很多学生对机器学习的一些经典方法仍是一知半解。针对这种情况,在近两个学年的教学中,进行了较大幅度的改变,在涉及机器学习理论知识时,如《线性模型》《支持向量机》《神经网络》等章节,大胆地尝试了纯板书教学的方式,在10 学时左右的课程中,不用任何PPT 课件,将每个方法的数学原理,从零开始一步一步用板书推导,将每个知识点都尽量讲深讲透。通过这种教学方式,学生对机器学习理论相关知识有了更深层次的理解,同时,教师对自己所教授的内容有了更深刻的理解。手写教案如图3所示。

图3 手写教案

(五)线上线下,同步教学

在课程教学和建设过程中,笔者在学校最新的超星平台上,搭建和完善了“Python机器学习”课程的教学网络平台。

在新搭建的网络教学平台中,涵盖了课程中的所有内容,包括课程介绍、教学方法、教学条件、课件PPT、手写教案、课程教学视频等。在网络教学平台的课程章节内容建设过程中,充分利用平台自带的诸多功能,在每个课时中,首先用文字描述本节课的讲授重点和要点,同时每个课时都要有一个讲课视频,视频内容与上课的内容保持一致,使想学习的学生可以随时复习之前所学的内容。同时在网站风格上参照慕课的风格,简洁明了,内容丰富齐全。这样一来,学生如果在课堂中错过了某些关键环节,可以通过课后线上补习的方式来进行补漏和巩固,给学生提供了更多的学习资源和机会。“Python机器学习”网络教学平台界面如图4所示。

图4 “Python机器学习”网络教学平台界面

(六)项目导向,实战实练

在课程教学过程中,将采用理论教学与实践教学交叉进行的教学方式,以理解和掌握经典机器学习方法和深度学习方法为目标,以Pycharm和Jupyter Notebook为Python编程语言的开发载体,在传授学生机器学习理论知识的基础上,着重培养学生的系统设计能力和系统开发能力,通过选取课题组在日常科研中遇到的项目和课题,如基于机器学习的人体行为识别、缺陷检测、目标跟踪等,作为针对性的实践项目,让学生通过解决实际问题的方式,从根本上提高学生的实际动手能力,为今后的科研和工程项目开发掌握必要的技能。

二、教学效果总结和分析

自课程开设三年以来,共300余名学生参与了本课程,除第一年因新冠病毒感染疫情原因全程线上教学,较难面对面了解学生的学习情况之外,在后面两个学年的教学中,学生对这种综合式的教学模式较为认可,课程参与度较高,特别是“当堂编程,边学边练”的模式,与他们之前的课堂教学模式有较大不同,因此课堂氛围活跃,学生通过当场讨论自己和其他学生提交的代码,分析各自的优点和缺点,较大幅度地提高了编程的思维模式和方法。

当前的教学模式也有值得反思和改进之处,如目前有10课时是纯板书教学,包含了大量的数学公式推导和理论证明,由于部分学生的数学功底稍弱,容易跟不上,从而降低了继续听讲的兴趣。因此,在后续教学过程中,一方面需要将板书与PPT适当结合,尽量将这一部分理论内容讲得生动有趣,以吸引学生的课堂注意力;另一方面,也需要适当缩短理论公式推导的教学时间,提升实际动手编程的比重,使整体教学方案更加合理化。

猜你喜欢

当堂编程机器
机器狗
机器狗
初中化学当堂训练现状分析与对策
编程,是一种态度
编程小能手
纺织机上诞生的编程
不怕死的留下
未来机器城
小学高年级数学当堂练习设计有效性例谈
“当堂检测”在课堂教学中的重要作用