数据驱动的程序设计类课程创新改革与实践

2024-01-05 02:03史晟辉彭四伟江志英汪凌峰李睿琪
数字通信世界 2023年11期
关键词:程序设计编程育人

史晟辉,张 红,彭四伟,胡 伟,江志英,刘 勇,汪凌峰,李睿琪

(1.北京化工大学信息科学与技术学院,北京 100029;2.北京化工大学国际教育学院,北京 100029)

1 研究背景

教育部发布的《关于一流本科课程建设的实施意见》[1],《教育部办公厅关于推荐新工科研究与实践项目的通知》[2],麻省理工学院MIT启动工程教育改革“新工程教育转型(New Engineering Education Transformation,NEET)”计划[3]等举措,明确提出一流工科本科课程对学生培养的要求。王雷等学者[4]对新工科人才能力培养提出了计算机程序设计课程改革的思考。针对课程建设,加拿大教师技能培训机构(Instructional Skills Workshop,ISW)提出了BOPPPS教学结构[5]。姚婉清、赵国琰等学者[6-7]对BOPPPS教学模式的教学设计要素进行了分析,并通过案例进行课程改革。肖睿等学者使用在线教学平台,研究了学习者参与方式[8]。社会的进步、信息技术的发展、网络资源的丰富、课程手段的多样化、课程改革的全面推进、教学基础数据的累积,更进一步推进了程序设计类课程改革创新。

程序设计、数据结构、编译原理等程序设计类课程是工科计算机专业软件类重要课程。程序设计类课程实践性非常强,学生编程能力不达标。如何在课堂内外利用多个在线课程平台,发挥平台各自优势,促进学生编程能力提升?在学习过程中,学生存在被动听课、被动学习的习惯。课堂作为大学教学的主战场,如何在有限的时间内,持续保持学习应有的态度、变被动接受为主动参与?如何将时事、前沿引入,增加学生兴趣?针对上述在教学过程中存在的问题,开展基于数据驱动的程序设计类课程创新改革,培养工科程序设计人才能力,是课程实践的重点。

2 程序设计类创新课程设计

2.1 教学目标制定

程序设计类课程改革应从知识、能力、素养三个角度重新梳理课程目标,体现信息化的科技元素,考虑结合专业课程的育人职责,剖析讲授的知识点,制定知识、能力和素养融合的三目标。知识目标是使学生掌握基本知识,通过对简单应用问题进行分析及编程实现;能力目标是使学生具备运用课程知识,分析、抽象并编程解决大型复杂实际问题,培养学生抽象问题、构建优化编程和计算思维能力;素养目标是使学生能够通过团队协作编程解决复杂问题,分析比较团队角色的任务和作用,培养团队协作精神,培养学生探索创新和科技服务社会的精神,实现科技育人、立德树人。

2.2 教学流程设计

教学流程要合理展现教学内容,要为其合理有效服务。根据课程特点、设定目标的不同,将教学内容设计成不同的教学形式。程序设计类课程的教学流程从课前、课堂和课后三个部分,从教师、学生、师生互动材料三个角度,从教学流程和线上线下支持的对应关系等多个方面设计。

课前设计主要了解学情、提前预习,包括课程通知、发布预习资料;课堂设计主要通过交互式教学激发学生学习兴趣、引发思考,包括课堂讲授、组织交流讨论、小测验、实时问卷等互动;课后部分包括帮助学生巩固提高、延展知识,具体内容包括发布作业、拓展视频、文献、前沿探索等课后资料并组织答疑讨论、对课程反馈进行课程反思。课前和课后的学生学习情况及反映出的问题都可以通过课程平台给出统计数据,下次课堂教师统一反馈解答。每段学习有讲课,有交互,有答疑,给学生构建充分交互的环境。

3 数据驱动的程序设计类课程创新改革与实践

3.1 课程闭环支撑平台建设

利用学校提供的在线资源平台和课程直播平台,以及课程团队建立的程序设计在线评测平台,发挥各平台优势,建设创新课程“资源-直播-考核”闭环支撑平台,如图1所示。充分发挥课前、课中和课后三个时间维度的作用,建设作业、通知、问卷、课件、微视频等课程在线资源平台,积累每门课程每个学生过程制学习轨迹数据;建设课堂交互、课堂实录视频等智慧课堂直播平台,积累历史课堂实时数据;建设程序设计在线评测试平台,积累每门课程每个学生限时程序设计及每周程序设计作业等在线实时评测数据;每个学期建立企业微信课程群等实时交流平台,发布各种即时通知、投票、问卷等,实现课堂内外知识拓展及多样化教学资源应用,共创良好教学环境,解决学生学习时间、空间局限性的问题。师生按时有序发布与提交作业,师生在线上进行互动,彼此遵守网络文明。信息技术助力,师生共创良好的教学环境。

图1 课程闭环支撑平台

在课堂内外利用多个在线课程平台,数据及时反馈,方便针对学生编程能力考核,促进学生编程能力的提升。实时交流平台、资源平台、课程直播实录、程序在线评测优势互补闭环支撑平台,为课程创新改革提供实施平台。

3.2 BOPPPS有效教学结构设计

BOPPPS是以教育目标为导向,以学生为中心的有效教学结构,包括六个教学环节:导入(Bridge-in,B)、目标(Objective/Outcome,O)、课前测(Pre-assessment,P)、参与式教学(Participatory Learning,P)、课后测(Post-assessment,P)和总结(Summary,S)。

课程结合BOPPPS有效教学结构,在“B”(导入)中,引入具有程序设计解决方案的知识相关案例;在“O”(目标)中,明确指示能力育人三目标;在“P”(课前测)中,对导入问题进行提问,或回顾前序知识;在“2P”(参与式教学)中,通常引入与知识点相关、引发思考的课程案例,通过同伴教学、交流互动进行师生、生生参与式教学;在“3P”(课后测)呼应回答“B”或者“1P”的问题,或者提出新的思考问题。在“S”(结论)中,可以布置相关作业,或者给出前沿素材,提供扩展阅读。BOPPPS教学结构的设计,参与式教学让学生从被动到主动学习。

3.3 科技育人元素融入

针对课程知识内容,融入课程科技育人元素。结合当前实际问题、时事和前沿技术,挖掘课程育人元素,创建课程科技育人案例集。分析科技育人元素案例,剖析背后支撑的计算机专业知识,重新设计成待编程解决的实际问题,融入课程内容,润物于无声中。

科技育人案例从课前贯穿课中,再到课后。课前邀请毕业的优秀师兄师姐录制视频,讲述计算机学习过程和体会,让学生对编程、专业和责任等的重要性再认识,同龄人的话能够更好让学生重新审视学习的认识误区;程序调试视频是学长们专门录制的“在不同的IDE环境下如何调试程序”视频,给师弟师妹快速入门赠送的专业礼物,体现学生学习的传承与奉献;课程设立程序答疑志愿者,通过互助解决程序疑难问题,培养学生奉献精神。

课堂中教师在讲解集成开发环境IDE时,通过介绍开源与免费软件,让学生明白软件版权保护的意义;在讲解软件开发过程时,讨论软件正版与盗版,让学生更了解计算机伦理;在讲解“类”章节时,通过讲述汽车与其组件的关系来区分类和对象的区别,引申到前沿的自动驾驶技术与局限,让学生认识软件缺陷与BUG;在讲解约瑟夫环时,拓展到密码与区块链技术,引申到计算机伦理与安全;在讲解模式匹配问题时,拓展到常用的搜索引擎工具及技术,引出版权与侵权问题;在讲解稀疏矩阵时,通过电影影评评分存储的实现的实例,让学生了解大数据技术。对于团队编程实践部分,创建解决实际问题,帮助他人的校园导航、实用小工具等团队协作育人案例。

围绕信息技术育人设计,包括我国计算机发展、国内外计算机发展差距、面对重大疫情计算机人的职责、计算机伦理与法律等主题,实现学生从知识、能力到素养的有效转化,增强了学生学习兴趣和对知识的渴望。

3.4 数据驱动的课程创新改革实践

通过对在线教学资源平台、智慧教学直播平台、程序设计在线评测平台和实时交流平台产生的学生当前和历史学习轨迹数据进行分析,了解学生对课程知识点的学习掌握情况,优化了线上线下课堂知识点的设置,使得课程学习更科学有效。通过程序在线评测平台,系统自动实时评测周个人编程作业;通过北化在线资源平台,学生能够互评团队协作编程项目,使得多个课程平台的优势能够充分发挥且互补,帮助学生提升了编程能力。

程序设计类课程课堂使用BOPPPS有效教学结构,运用师生讨论、生生讨论、同伴教学等多种参与式教学方法,通过课堂直播互动数据、答疑讨论区和课堂评价等学生反馈数据进行分析,可以看出学生互动参与度比较高,学习积极性和主动性较好,以及对课程教学方法有较高的认可度,学生学习从被动接受到主动参与的改变比较明显。

通过北化在线资源平台提交的国产自主研发的编译器等科技育人案例分析、搜索引擎的前沿技术研究报告,可以看出学生查阅了大量文献,给出了前人研究的各种方法,并提出了自己的观点,学生对于理论应用实践的兴趣非常浓厚。

课程通过改革创新,学生在编程能力上效果明显,以某学期程序设计课程为例,学生的平时作业和期末考试都在程序在线评测平台进行,其平时编程作业平均得分为78.84,期末编程考试平均分为75.07,每个学生程序平时编程作业得分和期末编程考试得分如图2所示。

图2 课程平时编程作业得分和期末编程考试得分对比

从图2中可以看出,程序在线评测平台的数据表明学生平时实时编程训练成绩和期末成绩得分趋势相当,均围绕80分上下分布,程序在线评测平台学生平时编程数据基本上和其期末成绩成正比关系。因为在整个学习过程中程序在线平台都对学生开放,学生平时也主动自主地参加编程训练。

以学号尾号为0011的学生学习情况为例,如图3所示,给出其学习情况与所在班级学生平均学习情况进行对比,可以看出0011学生在各项任务中的表现,除了团队任务和期末考试和班级平均情况相当,其它指标都优于平均线,表明学生在解决复杂问题以及有限时间内处理问题的能力需要提高,根据此数据可以进一步对学生进行个性化学习指导。

图3 以0011学生学习情况与课程平均学习情况对比数据

通过学生学习轨迹及成绩数据分析反馈,能够发现问题,进行课程反思并改进优化,形成课程创新改革闭环,推进课程良性建设发展。该课程的建设获得广泛认可,课程体系与课程模式目前已经在其他课程中推广应用。

4 结束语

程序设计类课程通过积累的多年海量教学数据整理和分析,明确了教学目标,优化了教学流程,建设了课程闭环支撑平台,设计了与课程教学内容相关的BOPPPS有效教学结构,融入了科技育人元素,进行了课程创新改革实践,提升了学生的编程能力,改变了学生被动学习的习惯,增加了学生学习的兴趣,实现了课程知识、能力和素养目标的达成。

猜你喜欢
程序设计编程育人
文化育人的多维审视
育人铸魂守初心 赓续前行谱新篇
编程,是一种态度
元征X-431实测:奔驰发动机编程
编程小能手
基于Visual Studio Code的C语言程序设计实践教学探索
纺织机上诞生的编程
从细节入手,谈PLC程序设计技巧
高职高专院校C语言程序设计教学改革探索
PLC梯形图程序设计技巧及应用