基于“线下体验式教学+线上辅助教学”混合教学模式的C 语言课程教学改革实践

2021-05-22 15:45冯艳君王红霞马秀丽
关键词:上机程序设计体验式

冯艳君,王红霞,马秀丽

(沈阳理工大学信息科学与工程学院,辽宁沈阳 110159)

随着大数据、物联网、人工智能、云计算的飞速发展,新技术与各行各业实现了深度融合,产生了第四次工业革命下的工程新业态,这就为高等院校的人才培养提出了更高的要求。相对于传统的工科人才,未来新兴产业和新经济需要的是工程实践能力强、创新能力强、具备国际竞争力的高素质复合型的“新工科”人才。[1]24程序设计是实现信息技术与新工科的关键,对未来技术和产业起到引领作用。[2]C 语言程序设计是大部分工科专业的专业基础课,对大学生后续信息类课程的学习及程序设计能力的培养起着至关重要的作用。基于此,通过分析现代大学生特点和原有教学模式的弊端,对C 语言课程进行教学改革,采用“线下体验式教学+线上辅助教学”混合教学模式,提高学生学习兴趣,加深算法设计和编程感受,培养学生自主学习能力,注重计算思维训练和上机编程实践,以期提高学生的信息技术能力和自身综合素质。

一、C语言教学现状

C 语言课程是大部分工科专业学生学习的第一门专业基础课,通常设置在大学本科第一学期,这对于刚上大学的大一新生来说,既有利又有弊。学生刚刚步入大学,对于各种事物都充满了新鲜感和好奇心,尤其是程序设计,通过编程能够实现数据管理、数据分析,甚至做出各种有趣的游戏,这对于伴随着电脑游戏长大的新一代大学生来说,应该具有很大的诱惑力。但是,学习程序设计对于他们来说又有着一定的难度,因为大部分学生在上大学前对计算机原理一无所知,没有上机编程经验,头脑中没有程序设计的概念。再加上他们初次离开父母容易放飞自我,需要逐步适应自我管理、自我学习总结的大学学习特点。除此之外,他们既怀着希望老师细致讲解的依赖心理,又具有反抗“填鸭式”教学的叛逆心理,因此如何化解学生的这种矛盾心理,使学生乐于学习、学会学习,是大学老师面临的重要问题。

C 语言课程主要讲授C 语言编程语法和结构化程序设计思想。传统的教学模式是:教师先介绍语法格式,再介绍具体程序,这种教学思路主要的目的是让学生熟练地掌握C 语言语法,但却忽视了学生计算思维的培养和编程能力的提高,而后者本应是C 语言课程教学的重点。这种“一言堂”“灌输式”的讲解比较枯燥,容易使学生失去学习的兴趣,同时也不利于学生养成主动思考的习惯。传统的大班教学方式又使教师无法在一堂课内掌握所有学生的接受情况,不能及时解决学生的知识困惑,从而使C 语言课程的教学效果大打折扣。计算机行业是一个持续飞速发展的行业,技术在不断进步,学生需要具备终生学习的能力,否则就会被社会所淘汰。[3]大学教师承担着传授学生如何学习、引导学生找准自己职业方向的重要责任,这也是高等教育“立德树人”的根本目标。因此,有必要改革C 语言课程教学模式,改进教学方法,回归“授人以渔”的教学初心,以“学以致用、学用结合”为教学目标,以培养计算思维和编程能力为教学重点,最终提高学生的综合素质,助力学生终生成长。

二、基于“线下体验式教学+线上辅助教学”的混合教学模式

基于上述问题,提出“线下体验式教学+线上辅助教学”的混合教学模式,具体来说,线下将传统的课堂搬到实验室进行小班授课,利用“电子教室”使学生近距离体验算法设计和编程实现的整个过程,同时采用问题导向法等有效的教学方法和小组竞赛等竞争机制激发学生学习兴趣,并精简讲授内容,增加课堂互动和上机训练,使学生当堂消化所学内容。当然,课堂时间有限,学生感悟能力参差不齐,为了保证全员跟进,课前和课后均利用资源丰富的MOOC 平台安排线上形式的预习和复习任务,作业和答疑也依靠线上进行,结合MOOC 平台的过程数据和期末考试结果综合评判学生的学习情况。基于“线下体验式教学+线上辅助教学”混合教学模式的教学活动设计如图1所示。

图1 基于“线下体验式教学+线上辅助教学”混合教学模式的教学活动设计

1.线下体验式教学模式实施方案

(1)基于“电子教室”的小班授课。“电子教室”是一种在局域网内实现的多媒体信息交互平台,是集教学、控制、管理和电子点名等功能于一体的计算机辅助教学软件。[4]本校的信息技术实验室均安装了“电子教室”软件,将传统的“大班”授课改成基于“电子教室”的小班授课,这样,教师在讲解的同时,学生人手一机,可同步看到教师的讲解,从而拉近了教师与学生的距离。“电子教室”功能丰富、操作简单,为实验室的小班教学提供了极大的便利。利用“电子教室”的屏幕广播功能,学生在学生端电脑上可近距离观看教师的整个编程过程,恰似身临其境,体验非常深刻,避免了大班授课时后排学生看不清的问题。学生在遇到不懂的知识点时,可以利用“电子举手”进行提问,教师可进行实时的答疑解惑。在练习阶段,教师可以通过远程监控功能,查看每个学生的编程过程,归纳总结学生常犯的错误,并可以进行点对点的单独指导,还可以利用“学生演示”功能,请一位学生演示自己的程序,从而让全班同学了解正确或错误的提示。此外,教师还可利用“文件分发”功能给学生发布例子程序或上机任务,通过“接收文件”功能回收学生提交的程序文件。从上面的介绍可以看出,“电子教室”的运用,不仅实现了“理实一体化”教学,[5]而且加深了学生对C 语言编程的切身体验,使C 语言课堂教学在效率、管理和交互的有效性等方面均得到了提高。

(2)多种教学方法的有效运用。采用“问题导向法”“语义分析法”和“动画演示法”等教学方法,启发学生思考编程概念、程序运行原理的来龙去脉,再辅之以适时的提问和举一反三的练习,使学生增强学习的主动性和积极性,提高独立思考及分析问题、解决问题的能力。

问题导向法,即在引入一个知识点前,先提出一个待解决的实际问题,让学生思考如何解决,然后教师启发学生回答可能的解决方案,进而引出相关概念。在知识点相关的语法介绍完后,再完成前边问题的程序设计,这样学生很容易理解该知识点的语法及使用。例如,对数组的讲授,按照以下过程进行教学设计:首先提出问题,即求10 个数的平均数及所有小于平均数的数。学生能够想到定义10 个变量用来存放这10 个数,但教师可启发对于更多数据应如何处理,进而提出连续保存数据的解决方案。这样就可引出数组的概念了。在介绍数组的定义方式、引用方式、初始化方式后,教师即可给出前边问题的算法步骤并上机编程。

所谓“语义分析法”,是从汉语语文的角度,帮助学生分析一个概念涉及的语法点有哪些,进而引出语法定义格式,或者针对几个相似概念,辨别并记忆其语法定义上的区别。例如,在给出“数组是一组具有相同数据类型的数据的有序集合”的定义后,启发学生从字面语义思考“定义数组需要哪些要素?”,学生能回答出“数据类型”,但“有序”不知如何表达。在教师讲解数组在内存中的表示后,部分同学可推断出“要定义元素个数”这个答案,此时,教师就可将数组定义格式引出,学生很容易记住。又如,在介绍指针与数组的关系前,先帮助学生分析各词语的语义,如“指向数组元素的指针”是偏正短语,核心词是“指针”,“指向数组元素”是定语,因此,“指向数组元素的指针”是用来存放数组元素地址的指针变量,而“指针数组”也是偏正短语,核心词是“数组”,而“指针”是它的定语,因此,“指针数组”是指针变量的集合。通过这样的分析,学生就很容易区分开这两个概念。

对于晦涩难懂的程序算法,先针对特定数据,采取动画演示的方法,让学生理解算法的本质与思路,然后一步步总结出程序设计的步骤及各部分要素,进而写出整个程序,这种方法对于循环程序的设计及其循环条件的归纳尤其有效。例如,在讲解冒泡排序时,先以游戏的方式,按照冒泡排序的思想对5 个学生的身高进行排序,再以动画的形式一步一步地观察整数的排序过程,进而总结归纳出算法的思路及循环实现的关键语句,学生对程序实现的过程就会非常清晰。

(3)上机编程的魔鬼训练。每堂课教师演示编程后,要引导学生总结归纳此类问题的编程要点,使学生掌握这类问题的编程思想和编程步骤,然后将时间交给学生,让学生上机实现类似问题的程序,这样学生就能进一步体验到编程的乐趣,感受到分析问题和解决问题的快乐。在此期间可引入编程竞赛,以此激发学生的学习热情,加强彼此间的交流,又可提高学生上机调试能力,实现全员的有效参与和素质提升。另外,还可利用“电子教室”,请学生演示程序、讲解思路、分享创意、交流感受,并针对学生出现的问题和错误进行统一的纠正,这对于提高学生的表达能力、学习热情和上机调试能力非常有帮助。现代社会是竞争的社会,没有压力就没有进步,如此频繁的上机训练,能够增强学生的心理素质,提高学生的就业竞争力,这也是高等教育“立德树人”的本质需要。

2.线上辅助教学实施方案

在课堂教学之外,需要为学生提供预习和复习的有效途径。MOOC 以其开放性的学习资源、优质的师资、不限时空的自由学习方式及其丰富的互动功能为C 语言课堂教学提供了强有力的辅助教学平台。[6]本校基于超星平台采用东北大学的《高级语言程序设计》国家精品在线课程,作为C 语言课程的线上辅助教学方案。

在每堂课之前,教师为学生安排一定的在线预习任务,学生通过MOOC 平台完成与预习任务对应的课程讲解视听并完成指定数目的自测练习题。教师在上课前检查学生的预习自测题完成情况,并针对学生掌握得不好的知识点在课堂上进行重点讲解,对于一些过于细致的C 语言语法则留到课后作为拓展任务交给学生。在每堂课之后,学生需要到该MOOC 平台按时完成相应的拓展学习视频视听任务并提交相关的程序设计作业。个别学生还可对未理解的课堂内容利用在线课程进行复习与巩固,这样学生的C 语言基础就会掌握得特别牢固。除此之外,该MOOC 平台还提供了讨论区、题库、在线测试及统计功能,学生依靠这些功能可以向教师提问、进行编程训练、自测及自我评价,教师依靠这些功能可以实现答疑、组织阶段性考试及对学生学习过程的监督与管理。

MOOC 平台辅助教学方案的使用,不仅为学生提供了课下学习的有利途径,而且为教师的课堂教学精简了时间、提高了效率,这不仅激发了学生的学习热情,提高了学生的自主学习能力,而且为教师对学生的监管和评价提供了便利的工具。

三、教学改革的实施效果

通过对沈阳理工大学2016-2018 级计算机科学与技术专业学生实施“线下体验式教学+线上辅助教学”混合教学模式,教学效果得到了明显的提升,主要体现在以下3个方面。

(1)学生学习编程的热情高涨。基于“电子教室”的小班授课形式,使学生近距离体验到了一个问题从分析到算法设计,再到写出程序直至运行成功的整个过程,再加之以实际问题为导向的教学方法的使用,学生学会了、看懂了,自然有兴趣上机实践并继续深入学习。频繁的课堂练习与编程竞赛的引入,使学生积极参与编程的热情更为高涨。据统计,学生在学习完C语言课程后,有很多学生都加入了信息技术类的社团,或者报名参加学校大创项目和各级计算机类比赛,并且都取得了不错的成绩。

(2)学生C 语言课程期末考试成绩显著提高。通过“线下体验式教学+线上辅助教学”混合教学模式的运用,学生的C 语言基础得到加强,对程序设计原理的理解更加深入,问题导向法、语义分析法及动画演示法的运用,使学生对程序设计基本概念的掌握更加精准到位,因此学生的期末考试成绩逐年提升。这种混合教学模式是从2016 年开始实施的,表1 是计算机专业学生2015-2018 年C 语言课程期末考试成绩的统计,从中可以看出,2016-2018年的课程平均分和最高分比2015 年有明显提高,而且之后基本呈上升趋势,从2015-2018 年良好以上的学生人数在逐年增加,而不及格的人数在逐年减少,这说明这种混合教学模式达到了教学改革应有的效果。

表1 本校计算机专业学生2015-2018年C语言课程期末考试成绩统计结果

(3)学生的自主学习能力和动手能力显著增强。问题导向法的运用和课堂互动的增多使学生逐渐养成了主动思考的习惯,MOOC 平台在线学习任务的设置也使学生学会了自我学习和自我约束,通过一学期的训练,学生自主学习能力得到了明显的提升。课堂上机练习的增加和MOOC 平台题库训练及在线测试环节的设置,增加了学生上机编程的机会,学生的动手能力得到了显著增强。2018年,一名学生利用C/C++语言开发的中国象棋智能程序,在辽宁省计算机博弈大赛中获得了一等奖的好成绩,这说明学生从“线下体验式教学+线上辅助教学”混合教学模式中受益颇深。

四、结语

随着人工智能与“新工科”建设的兴起,计算思维成为三大支柱思维之一,培养程序设计能力是其主要任务,同时程序设计作为计算机学科和其他学科交叉融合的桥梁,学好程序设计可为未来创新性工科人才培养打下坚实的基础[1]27。实践证明,“线下体验式教学+线上辅助教学”混合教学模式符合应用型本科院校“精专与博通并举、突出实践与素质教育”的教学理念,有利于C 语言课程“培养程序设计与调试能力,应用计算思维分析和解决实际问题能力”的目标达成,对学生未来的升学和就业具有深远的影响。

猜你喜欢
上机程序设计体验式
周金应
体验式教学法在高中数学教学中的应用
体验式教学法在高中数学教学中的应用
标准化护理程序对体外膜肺氧合术患者上机各阶段用时的影响
体验式教学法在初中化学教学中的应用
体验式作文教学之我见
基于Visual Studio Code的C语言程序设计实践教学探索
小学生体验式写作教学策略探讨
从细节入手,谈PLC程序设计技巧
上机数控“可疑”的高毛利率