APP下载

微课C 语言课程教学应用研究
——以递归函数为例

2019-02-27李海琦

软件导刊(教育技术) 2019年12期
关键词:程序设计知识点微课

李海琦,杨 成

(江苏师范大学 智慧教育学院,江苏 徐州221116)

1 C 语言课程教学分析

1.1 课程特点

《C 程序设计》课程这门计算机编程语言入门课程面向对象是大学生,学生通过学习这门课程可以了解计算机编程语言语法规则,编写与调试程序的一些技能与方法也能为学生所掌握,学生分析问题与解决问题的能力能够得到提高,学生的计算思维素养也能得以加强[1]。有关文献指出:《C 程序设计》课程的教学原则遵循“一个完整的程序设计是在算法操作下执行而成的,是由数据结构与程序设计方法进行抽象描述的[2]。”所以,如果在教学中只是直观介绍C 语言的概念以及如何定义与使用数据类型,那么程序设计知识会被学生认为是处理问题的工具,计算机也会被学生认为是程序运行的工具,这样程序设计结构知识中所有的思维方法就不能得到体现。

1.2 教学存在问题

(1) 不能充分调动学生的学习兴趣。“兴趣是最好的教师”,C 语言课程的专业性较强,有较复杂的语法概念,规则多样,使用也较灵活,学生面对程序代码会产生厌倦状态,不能集中精力,课堂上易走神,教学效果不好。

(2) 教学方法陈旧。教师在黑板上写、讲解是传统的教学方式,基本是根据语句、语法、讲解习题与练习这种步骤,但是知识点越来越多,学生觉得学习越来越吃力,由此产生厌倦心理。

(3) 不够重视实践性环节。学生上机练习时,常常不了解实验的目的或内容,也有因基础知识掌握程度不够导致不知如何上机练习,因而开始转移注意力玩别的事情,况且教师的精力也是有限的,不能面面俱到,照顾不了所有学生,所以许多学生上完课一点收获都没有。

(4) 课时少。对于一些非计算机专业的学生,学校在安排课时的时候课时量较少,这就导致教师在课堂上对于一些问题不能精细讲解,学生也不求甚解,导致教学效果不佳。微课的出现可以弥补课时量的不足,让学生可以学到更多的在课堂中无法延伸与拓展的问题。

2 微课概念及应用优势

2.1 微课

“微课”是指按照新课程标准及教学实践要求,以教学视频为主要载体,反映教师在课堂教学过程中针对某个知识点或教学环节而开展教与学活动的各种教学资源有机组合[3]。较短的时间、较小的容量、较精的选题、突出的主题、较强的代表性是微课的一些主要特点。制作出的教学视频不但不受时空以及环境的限制,而且学习者可以进行自主学习。

2.2 微课特点及其应用于C 语言教学中的优势

(1) 授课时间短。一些学习者缺乏较高的学习自主性,而且不能长期的全神贯注听讲。微课是以知识点为单位、时长为8 -10min 的高效率微型课,其直观形象、短小精悍,非常适合学生注意力集中时间普遍较短的特征,对激发学生学习兴趣,提高自主学习能力很有帮助[4]。

(2) 授教学内容简短,针对性强。由于在传统教学过程中,时间长、内容多几乎是一节课讲解的特性,而且学生也不可能长时间全神贯注,致使教学效果不好。微课是提取出重难点问题进行讲授,这些重难点问题完整且独立、示范性与代表性都强。传统课堂内容中的某个知识点的中心内容等一个片段或一个环节,被微课分段成一个个模块,即一个单一知识点。尽管《C 程序设计》课程有繁杂的知识点,涉及到较多的内容,但知识点之间相对来说较独立,所以容易被分割成一个个小知识点,由于微课的内容也是完整且短小的,所以适合将这些知识点制作成微课。

(3) 授课堂容量比较小。微课教学的容量较小,一般在10m 左右,也支持一般的网络化视频在线播,需要的视频教学内容能够通过视频播放被教师与学生通畅的观看,教师设计的教学内容也能被查阅,教师与学生也能够充分利用课件与练习题等相关资源。而且各大主流互联网媒体如微信、QQ 等也要有适合的媒体格式可以播放。

(4) 授课堂随意性比较强。在课堂教学活动中下载的文件被随意保存在文件夹里,目的是满足学生进行随意性学习,还能使学生的自主学习能力得到提高,而且资料也能随时随地为学生所查阅。微课程所追求的速度目标是只要有网络的地方,便能流畅的观看视频。所以就算课时少,学生也能利用微课学习更多的知识来弥补不足。

(5) 授便于教师与学生互动。目前高校C 语言教学课堂模式,都是一个教师教授几十人,对于有问题的学生,一个教师难以让学生在教学中得到细致的教学指导,尤其是在教学的实验环节,由于教师监管不足,使得不少学生会在上机实践课程玩游戏、上网聊天,对于C 语言的实践教学学习不置可否。学习者利用教学视频或者其他资源进行学习,学完以后,微课的练习题可以被学生用来检验自己知识掌握的程度,可以向教师提问不理解的地方,学生的反馈可以为教师所用来了解学生的学习情况,学生也可以在一段时间后利用教学视频进行复习。

对于初学者来说,《C 程序设计》课程的学习有一些难度,比较容易忘记之前学习的知识,学生需要一种能帮助他们回顾以往知识的教学资源,即使得不到教师指导依然能够学习。微课教学内容呈现的方式比较独特,而且教学内容以视频为主,还具有能满足学生及时巩固知识的可重复、可共享的特点,能在很大程度上增强学生的学习兴趣。

表1 “递归函数”微课脚本

3 微课的设计与制作——以C 语言递归函数为例

3.1 设计分析

录屏讲解型微课,主要采用以直接感知为主的方法进行软件操作的演示与示范,学生可以一边观看微课一边进行软件的操作练习。当遗忘操作步骤时,还可以再次打开微课进行学习。由于C 语言是一门程序设计语言,所以主要采用录屏软件方法进行微课的制作。C 语言课程中前后内容紧密联系,所以必须清晰且连贯的选取知识点。先确定要制作的主题,针对典型问题进行设计,对难点进行细分,充分体现微课的短小精悍、完整的特点,C 语言程序设计课程中的一个知识点——递归函数教学将被作为案例进行微课的设计。递归算法是一种相当重要的算法,是现实世界中局部与整体相似性的体现,是解决日常问题的一种常用算法[5]。本文之所以选择递归函数,是因为它具有较大的教学难度且有较高的知识地位,函数的嵌套需要先进行学习并了解,因为它属于关键性概念而且是需要重点突破的难点。在确定主题之前,一定要了解学生的学习困难,认真观察与准备,微课的设计过程一定要完整,对于无关紧要、主题不明显、没有特色或对学习者没有吸引力的教学内容或活动,没有必要作为微课进行开发,那样起不到微课引导自主学习的效果,还增加微课管理系统的负担与教学内容的冗余[6]。C 语言公共课学生为非计算机专业,所以认识递归现象、领悟递归现象的本质并且能针对某些问题写出算法与递归程序作为本微课定位的教学目标。

3.2 微课制作——以C 语言递归函数为例

(1) 微型教学视频的设计。教学视频的内容要依据知识点来选定。考虑到时间问题,必须精炼的选择视频内容。在讲解递归函数时,视频中应该包含函数概念、要素及条件、移动盘子过程的演示、任务情景的求解、概括函数特点与编程等内容。微课脚本设计主要从教学过程、界面、内容、解说以及时间5 个方面进行编写,编写内容如表1 所示。

(2) 课堂教学活动设计。微型教学视频应该作为在微课教学模式下的课堂教学活动的核心,即在课堂上的教学活动应该围绕视频展开。递归函数微课教学模式包括以下几个部分:微课导入、创设情境并讲授新课、拓展练习、答疑与课堂小结。

3.3 微课应用实践

3.3.1 微型教学视频录制与后期制作

按照微课教学视频的设计方案及案例脚本,选择合适的视频记录工具与后期制作工具制作与处理视频。

3.3.2 课堂教学过程

(1) 微课导入。导入语: 程序设计的最基本单位是函数,函数可以被调用,这节课要学习的是函数的调用,学习之前先留一个问题给大家,即“如何求解n! 的值”?

(2) 创设情境并讲解新课。首先播放汉诺塔游戏中3个盘子的移动过程,看完之后让学生自己进行模拟游戏,将3 个座分别标为A、B、C,将A 座上3 个盘子移到C 座上,按照“大者在下,小者在下”的规则:①将A 上的上面两个盘子借助C 移到B;②再把A 余下的大的移到C 上;③将B 上的2 个借助A 移到C;

用视频播放多个盘子的移动过程,总结出规律: 把n 个盘子从A 移至C,需将n -1 个借助C 移到B 上,把A 上余下的一个移到C 上,将B 上n -1 个借A 移到C 上,①与③都要借助一个工具来把n-1 个盘子移到另一个上,这个操作可以用一个递归完成。假如10 个盘子,要移1 023 次,假如64 个盘子,要移1 844 亿亿次,如果移动一次计为1ms,则需要60 万年能移完64 个盘子! 尝试让学生进行编程,教师运用递归调用原理进行编程,师生程序做出对比,运用递归编出的程序不到10 行,由此引出递归调用原理,递归的概念及要素。

(3) 拓展练习。为了加强学生对概念的掌握程度,选择一个典型的“你几岁”的问题:5 个人在一起,假如他说比第4 个人大两岁,第4 个人又说比第3 个人大两岁,第3 个人又说比第2 个人大两岁,第2 个人又说比第1 个人大两岁,第1 个人10 岁,问第5 个人多少岁? 让学生进行推理,推理过程中明白递归不是无限进行的,有一个结束递归的条件,该条件即为第一个人的年龄。运用此例巩固递归的条件。

(4) 答疑。回到课前提出的问题——“如何求解n! 的值”,给出提示,如果要求10! 的值,必须先求出9! 的值,同理,还要求出8! 的值,以此类推,直到求出1! 的值,再逐步返回求出10!,通过该例,巩固学生对新知识的理解度,更好的掌握递归函数地概念以及结束条件。

(5) 课堂小结。总结、回顾递归函数的相关知识点,再针对不同知识能力水平的学生布置一些课后作业加强练习、拓展知识。

3.4 教学评价及反思

教学活动结束以后,学生们对知识的掌握程度以及知识应用能力是否有提高,可以根据如表2 所示的教学评价表来检测,了解教学任务的完成度以及是否达到教学要求,微型教学视频应用的效果或者是否存在一些问题是需要着重考虑的。教师在反思教学活动中的环节时可以依据教学评价的结果,根据评价的结果及时的改善教学计划或转换教学方法,让教学质量与教学水平得到更大的进步。

表2 评价指标表

3.5 微课在C 语言课程教学中的教学效果分析

(1) 学习能力提高。经过“微课”的教学,学生都可以根据学习情况,按需选择学习内容,随时查缺补漏,找到自己的薄弱点,进行针对性巩固练习,遇到问题也可以通过各种渠道解决,而不仅仅依靠问教师,学生的学习能力得到了很大的提升。

(2) 学习氛围好转。“微课”教学深深吸引了学生的注意力,充分调动了学生学习的积极性,学生开始主动学习,主动完成任务,查找资料,整体的学习氛围很浓厚。

(3) 学习效果显著。通过观察,学生学习微课这种简短精练的视频,学习压力减小许多,学生从被动学习变为了主动学习,学习效果非常显著。

学生学习一个知识点用时较短,还有思考环节可供学习者自主进行,检验学习效果可以通过完成阶段练习来进行。如果自己完成不了或是有困惑,可以在完全掌握知识之前一直学习或练习。这种学习方式相当灵活,给学习C语言课程的学生带来了很大便利。因此学生的学习积极性以及创造性明显增强。

猜你喜欢

程序设计知识点微课
一张图知识点
初中数学课堂教学中如何有效导入微课
一张图知识点
第四页 知识点 歼轰-7A
医学专业“Python程序设计”课程教学改革总结与思考
基于Visual Studio Code的C语言程序设计实践教学探索
微课在幼儿教育中的应用
微课在高中生物教学中的应用
微课在初中历史教学中的应用
从细节入手,谈PLC程序设计技巧