孙玉星 陈一飞
关键词:程序设计;思维导图;O2O;课堂教学
0 引言
随着“互联网+”技术的不断成熟,以及教学平台普及率的不断提升,Offline To Online(O2O) 混合教学模式在程序设计课程中应用越来越广泛。程序设计课程需要学生在掌握限制不太严格的C语言语法基础上,理解和运用C语言强大的运算功能和丰富的数据结构(指针),使用结构化程序设计思想解决日常生活中的常见问题,为以后的专业课学习打下坚实的基础。混合教学模式的引入,在一定程度上提高了教学效率,但依然难以解决C语言程序设计课程教学上的固有难题。
1 程序设计课程混合教学模式存在的问题
1.1 教学内容细琐繁杂且安排不合理
该课程教学内容细琐繁杂,除了不太严格的语法结构、灵活多变的运算方式、还包括编写和调试程序设计的实战技巧和常用思路与算法。学习过程中,学生还未理解掌握灵活的运算方式,就要面对程序设计与调试等实验压力;学生难以联系前后知识点并灵活运用到解决实际问题中。该课程还存在教学内容安排不合理的问题[1],主要包括:①知识布局不合理,例如,运算符和表达式集中在一章讲解难以让学生理解表达式用法的灵活性;②过于注重语法系统性,例如,对于一般编程中极少用到的指针访问二维数组、指向函数的指针等知识点,往往又需要学生花时间精力掌握。
1.2 实践教学实施困难
即使在线上线下混合教学模式中,学生实际动手能力的培养依然离不开线下实验教学,但是程序设计课程实验指导实施难度大,往往一位教师要解答一个班级学生的上机问题,而每位同学遇到的问题不尽相同,有限的时间内解决所有学生问题是实践教学面临的最大难题。另外,实验教学需要学生积极主动参与到课程学习中,但在实际教学过程中学生常常处于被动受教的状态,学生遇到问题时自主解决问题的意愿不强,如果没有得到教师、同学的帮助,往往会处于懈怠放弃状态,以上各类因素造成学生学完该课程实际动手能力依然较弱。
1.3 混合教学模式实施需端正学习态度的配合
相较于传统教学模式,混合教学模式对学生课外学习质量要求较高,要求学生通过线上自主学习掌握基础知识,并进行简单的学习效果评价[2]。如果学生学习能力弱或学习态度不端正,线上学习不能达到预期效果势必影响线下课堂知识的理解,进而影响程序设计课程的教学效果,导致不能达到预期的教学目标。
2 基于思维导图的混合教学模式
20世纪60年代Tony Buzan发明了思维导图,该图是表达发散性思维的有效图形思维工具。思维导图主要有以下三方面作用:一是加强记忆,思维导图通过浓缩知识点、理清知识脉络层次、使用图像便于形成视觉记忆、增强感觉体验等方式提升记忆能力;二是结构化思维,思维导图可以将课堂讲授知识点的层次脉络理清,让学生既能从全局上全面了解,又能深刻把握细节,甚至理解每个知识点细节之间的联系;三是发散性思维,思维导图可以帮助一个主题不断发散的可能,描述不断涌现的新想法,修正以前的想法,并创造出新的概念框架。
鉴于思维导图能高效压缩知识点,本文提出了基于思维导图的混合教学模式,如图1所示,该模式由学生学习过程和教师教学过程组成,两组过程都围绕思维导图展开,并且相互交错、相互影响。学生学习过程包括课前线上预习、线下课堂学习和课后复习与作业,并通過随堂测验检验学习成果。其中,线上预习阶段,学生需观看教师指定的线上视频资源和课本,理解知识点后绘制思维导图,将所有知识串联起来,并在思维导图上标注难点和预习中存在的问题。在线下课堂学习阶段,学生需根据老师课堂知识点的讲解对思维导图做修正补充记录,并进行上机实验。通过上机实验,将理论知识运用到实际问题中,从而达到知行合一效果。最终通过测验来检验知识点掌握情况,并将学习反馈信息记录到思维导图中,以便期末复习时抓住自己学习的薄弱环节。
教师的教学过程包括课前备课、课堂教学和课后教学分析三个阶段。在备课阶段,除了准备视频和教学资料以外,需根据学生预习时思维导图反映的问题修正教学设计方案,针对难以理解的知识点采用多样化的教学手段,促进学生快速理解知识点,并且根据修正的设计方案绘制思维导图。课堂教学阶段,改变传统的PPT与程序演示相结合的方法,使用思维导图作为串讲工具,让学生既能一览本次课程的教学内容又能理解教学内容之间的相互联系。使用思维导图进行串讲的同时,通过程序演示加深学生对知识点的理解,PPT仅作为遗漏知识点的补充讲解工具。课堂教学的实验指导是提升学生动手能力的关键,线下的实验指导比线上疑问解答更能让学生直观感受解决问题的思路和方法,增加现实中解决问题的信心。课后,教师需对学生的作业情况进行分析,修正思维导图和总结讲解方式方法的得失,从教学反馈中及时改进。
3 基于思维导图的混合教学模式的教学示例
3.1 使用思维导图构建知识点
教师根据多年教学经验,对教学内容和知识点进行整理,使用思维导图归纳提炼教学知识点,图2是函数定义与使用部分使用思维导图提炼的教学提纲。该提纲反映了函数定义与使用需要讲解三部分内容:1) 函数定义:讲解两种不同的函数定义方式,特别注重讲解函数返回类型的差别;2) 函数调用:配合不同的函数定义方式讲解不同的调用方法,并且注重讲解函数调用过程;3) 函数声明:用对比的方式讲解函数定义与函数声明之间的区别。提纲上除了列举所有的知识点,还体现知识点的讲解方法。
3.2 从学生预习思维导图发现问题
课前预习与否以及课前预习的效果是提升课堂教学效率和加快学生对知识点接受速度的关键,但是主动进行高质量预习的学生寥寥无几。授课前让学生以绘制思维导图的方式进行预习,不仅可以了解学生预习质量,还可以掌握学生对重点难点的理解程度,发现学生预习中存在的问题。图3展示了两位学生关于“ 函数定义和使用”的思维导图,从思维导图上可以看出学生的预习停留在按照书本目录罗列知识点阶段,还不能把握重点与难点。例如图3上侧的思维导图就反映出学生对函数调用过程这一知识点基本没有关注,下侧的思维导图反映出学生没有注意到函数参数传递的注意事项。
3.3 修正思维导图
教师在了解了学生预习思维导图所反映的问题后,对备课初期的思维导图进行以下修正(如图4) :1) 在思维导图上增加了简要的代码示例,并建立代码与知识点之间的联系以体现两者解读关系;2) 用显著颜色标注注意事项,强调学生在函数定义和使用时需要注意的关键点,避免学生在使用时犯一些常见错误;3) 增加部分学生关注的知识点,提升思维导图所反映知识点的完整性。修正后的思维导图能突出重点难点,帮助学生以最快的速度领略函数定义和使用的要义,并引导学生正确使用。
4 基于思维导图的混合教学模式的作用
4.1 降低知识点的繁杂程度
思维导图以简单的图表形式囊括每章所有知识点,将C语言零散的知识点,及其关联之处全部串联起来。学生通过预习、课堂讲解、和复习三阶段对思维导图的不断完善,快速理解和复习每个章节。思维导图也方便学生以最快的速度找到自己薄弱环节,进行知识总结,大大降低了C语言知识点细琐繁杂所带来的困难。
4.2 提升学生线上学习质量
目前针对学生线上学习质量的考核主要依据观看在线视频时长和线上作业完成情况,但如果只是播放视频并不观看,线上作业参考他人作业,这两个指标并不能真实反映学生线上学习质量;另外,学生的学习习惯和方法各不相同,硬性规定通过观看在线视频进行预习也不够人性化。引入思维导图后,允许学生采用阅读课本或观看在线视频的方式,在预习后绘制思维导图并在导图上标注难点和疑问,通过这种方式既能让学生主动对下周的课堂教学内容进行思考总结,又方便教师通过思维导图来评价学生预习质量,了解学生学习困难。
4.3 提升课堂教学效率、增加实践教学时间
对比传统的PPT与程序演示的方法,使用思维导图作为串讲工具有以下优势:1) 知识点展现和回顾速度快,例如,在讲解使用getchar函数实现大小写字符转换的示例时,需要帮助学生回顾西文字符的ASCII 码存储时,思维导图可以快速找到ASCII表,而使用PPT则需要打开前章节课件,并通过翻页慢慢找到知识点。2) 知识讲解提纲挈领,使用传统PPT时,知识点引入(例如循環结构的引入、函数的引入、数组的引入等)占多张幻灯片,讲解速度缓慢;而使用思维导图时,引入原因基本一语带过,教学节奏明显加快。3) 知识点前后联系阐述清晰,例如,课堂使用PPT讲解循环结构时,很难让学生快速理解循环控制方法(计数循环、条件循环、标记循环)和循环结构类型(当型循环、直到循环)之间的关系,而使用思维导图用简单的线条可以体现两者之间的联系与区别。表1对比传统课堂教学方法与使用思维导图作为串讲工具讲解知识点时实际用时情况,可见思维导图可以大大提升课堂知识点讲解速度。
通过思维导图串讲方式节省的课堂教学时间可增加学生上机实践时间,进而增加教师对学生实际编程时出现问题的指导时间,从而一定程度缓解实践教学遇到的困难。
4.4 增加了师生的互动渠道方式
思维导图作为知识载体的一种形式,贯穿整个教学过程,教师通过思维导图,了解学生的预习质量,且通过点评学生预习的思维导图,帮助学生提升预习质量,教学生自我学习的方法。学生也通过思维导图,预先对知识点进行加工整理,从被动接受知识转变为主动构建理解知识。教师通过对学生思维导图的观察,修正和更新课堂实际使用的思维导图;学生通过对比教师的思维导图和自己的思维导图,找到自己预习时的薄弱点,两者相互影响,相互促进,真正做到了教学相长。
5 结论
程序设计采用了基于思维导图的混合教学模式后,学生积极主动性得到明显提升,思维导图在帮助学生理解和掌握C语言的知识点上起到了积极的作用。实践证明,与传统的课堂教学和一般混合教学模式相比,这种模式能使老师及早发现学生的学习弱点,在教学中早做预防,对教师的教学水平和学生的学习质量都起到了积极的促进作用,程序设计课程的教学效果得到有效提升。