翻转课堂在《C语言程序设计》课程教学中的应用
2018-06-02俞庆英陈传明夏芸
俞庆英 陈传明 夏芸
摘要:《C语言程序设计》是高校为非计算机专业理工类学生开设的一门公共基础课程,在传统教学中普遍存在着学生学习主动性不够、编程思维欠缺、解决问题能力不足、学习漫无目标等现象。该文探讨C语言程序设计课程翻转课堂的教学新模式,通过基于教学视频的翻转课堂和基于交流互动的面对面课堂两种不同教学环节的设计,充分发挥教师的个性化指导作用,调动学生的学习积极性,提升学生发现问题和解决问题的能力,促进师生交流以及学生之间的协同合作,使C语言程序设计方法在不同专业领域内能真正发挥其作用,从而提升《C语言程序设计》课程的教学质量。
关键词:C语言;程序设计;翻转课堂;面对面课堂;教学模式
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2018)10-0163-03
Abstract: C language programming is a common basic course for the students of non-computer science and engineering major in colleges and universities. In traditional teaching, there are common phenomena such as students lack of learning initiative, lack of programming thinking, lack of ability to solve problems, and aimless learning. This paper discusses the new teaching mode of C language programming flipped classroom. Two different teaching links are designed. One is the flipped classroom based on teaching videos. The other is the face-to-face classroom based on interaction. The new teaching mode can fully use teachers' personalized guidance, mobilize students' autonomous learning enthusiasm, enhance students' abilities to find and solve problems, and promote the exchange of teachers and students as well as the cooperation between students so that C language programming can truly play its role in different fields of expertise, so as to continuously improve the teaching quality of C language programming course.
Key words: C language; programming; flipped classroom; face-to-face classroom; teaching mode
1 引言
《C语言程序设计》是众多高校为大一理工类新生开设的一门公共基础课,属于大学计算机基础中的程序设計类课程。对于非计算机专业的学生而言,学习程序设计类课程将有助于他们理解哪些是计算机擅长解决的问题,知晓怎样的方式方法是计算机擅长的手段,从而能更好地利用计算机来解决本专业领域内的问题。
在《C语言程序设计》公共基础课的实际教学过程中,作者发现,学生们在课堂上保持注意力集中的时间非常有限,由于该课程不是非计算机专业学生的专业基础课程,所以,学生的学习积极性普遍不高,上机实践的兴趣不浓厚,导致课堂学习效果较差。随着课程内容的增加,学生们普遍觉得不懂的知识越积越多,学习的自信心严重受挫,进而又影响新课的学习效果,产生恶性循环。因此,为了提高《C语言程序设计》课程的教学效果,必须及时对学生欠缺的知识内容进行补充,并培养学生的自学能力[1]。
随着新时代计算机技术、多媒体技术和网络技术的不断发展,翻转课堂作为一种新型教育学习模式应运而生[2],它不仅在网络上提供优秀教师的教学视频,还有单元测试、教学论坛等,为解决《C语言程序设计》课程传统教学中存在的问题提供了崭新的思路。在《C语言程序设计》课程中,各章节知识点具有较强的完整性和逻辑性,实验运行环境易构。各个学校可根据相应的教学大纲对教学视频进行严密的组织和编排,其内容和深度层层递进,便于理解和掌握,学生观看结束后还可以进行随堂测试,必要的话还能向授课教师进行课后提问。在经济全球化飞速发展的今天,翻转课堂打破传统的教育理念和方式,为《C语言程序设计》课程的教学模式带来了历史性的变革,它使得教育资源平等化,更带来了先进的线上评价系统,使学习效果更加明显,效率显著提高。
2 《C语言程序设计》课程教学现状及存在问题
2.1 教学现状
目前,各个高校设置的专业越来越多,不同学科不同专业对计算机基础课程的要求相距甚远。因此,将学生按照专业分为理工类、文科类和艺体类是大多高校在开设大学计算机基础课程时参考的一个主要标准。在大一第一学期往往不分专业,高校均统一开设计算机应用基础课程,第二学期则分专业进行分类教学。其中,《C语言程序设计》课程就是第二学期针对理工类新生开设的计算机公共基础课程。
当前的《C语言程序设计》公共课教学设置具有一定的局限性。一方面,简单地按照文、理、艺这种单一的专业大类划分进行教学,不能很好地体现出各具体专业对计算机知识和技术的个性化需求。另一方面,由于学生的计算机基础和应用能力参差不齐,针对同专业所有学生制定统一的教学大纲和教学计划,难以获得良好的教学效果。有的高校在大一学生入学时组织测试学生计算机应用能力的分级考试,根据成绩来实施分级教学。这样的教学模式虽然可以缓解一定的教学压力,但是依旧不能体现出不同学生对程序设计类课程学习的不同要求,无法充分调动学生的学习积极性。
2.2 存在的问题
在传统的《C语言程序设计》课程教学模式中,教学的主体为教师,教学流程主要包含三个部分:教学设计、课堂讲授和教学考核[3]。传统教学模式存在的主要问题有:
1)教学设计以教师为中心
《C语言程序设计》课程的传统教学设计以教师为中心,由任课教师设计教学大纲、教学内容和教学环节。在课堂教学过程中,大多数教师的教学方式还停留在简单的讲授和提问上,教师引导学生参与和配合其各个教学环节,很少能够提供学生自学、讨论、设计和合作的机会;课堂教学主要讲述的是C语言的语法、概念、算法和应用实例,学生被动地听课,缺乏学习的主动性和积极性。此外,教师只会根据学生整体的认知水平开展教学,无法顾及不同学生的学习状态,学习慢的学生往往跟不上教学进度,久而久之,这些学生就会对这门课程产生恐惧和厌烦心理,并最终放弃学习。所以,这种简单的课堂“教——学”模式很难获得良好的教学效果[4]。
2)课堂讲授为单向的知识灌输
《C语言程序设计》课程的教学重点包括结构化程序设计、数组、函数、指针、结构体和文件等内容。其中,数组、函数、指针和结构体是教学难点。教师注重C语言语法知识的讲授,忽视学生对算法的理解和对编程技巧的灵活掌握。根据制定的教学大纲,在课堂教學中,教师强调要考核的知识本身而非掌握知识的能力和方法,学生则被动地接受知识。
对于非计算机专业的学生来说,本课程的教学重难点仅通过教师的单向传授是远远不够的。要想学生能做到灵活应用所学技术解决本专业领域的问题,必须要让所有学生都能自主思考和设计,而这是教师进行单向知识灌输的讲授方式难以实现的目标。
3)忽视课前预习与课后复习的作用
《C语言程序设计》课程的传统教学始终注重课堂上面对面的教学过程,虽然,教师在课堂上会鼓励学生进行课前预习,带着问题来学习以提高上课的效率;同时,也会鼓励学生进行课后复习,从而巩固所学知识。然而,《C语言程序设计》是一门强调理解力、逻辑性和实践性的课程,具有一定的学习难度。课前预习和课后复习均无人指导,会抑制学生学习积极性,降低课堂的学习效率。
4)教学考核形式单一
《C语言程序设计》课程的传统教学考核方式大多是单一的笔试形式。一方面,为了顾全班级的总体成绩水平,教师出题时,对基本语法的填空选择、程序阅读等易得分的题型较为青睐,而安排很少的设计算法或解决实际问题类的试题。另一方面,往往只重视期中和期末的结果性考核,而忽视过程性考核;这就导致了学生们平时学习松懈,到了期中和期末考试之前,才突击学习的不良现象。学生这种应付考试的心理,会直接影响其学习的积极性,更谈不上活学活用了,所以,教师根本无法实现课程教学的实际目标。
3 翻转课堂及其应用
3.1 翻转课堂
翻转课堂(Flipped Classroom,简称FCM)又称反转课堂(Inverted Classroom),它起源于美国,是指教育者借助计算机、多媒体和网络技术,利用教学视频把传授知识的过程放在课堂外,给予学生更多的自由,允许学生自主选择最适合自己的学习方式接受新知识,并根据视频自主完成在线测试,确保课前能够深入学习,之后再带着疑问到面对面课堂上完成知识内化,促进师生之间、学生之间有更多的交流与沟通,确保在课堂上能真正引发观点的相互碰撞,把对问题的思考引向更深的层次[1]。
作为一种全新的颠覆传统教学手段的教学理念与方法,翻转课堂日益成为全球教育界关注的改革热点,它有着传统教学所无法比拟的独特优势[5]。引进翻转课堂并将其应用在《C语言程序设计》公共基础课程的教学实践中,可以为高校学生的计算机基础课程学习提供便利,从本质上实现大学计算机基础课程教学的深化改革,从而,切实提高大学生综合运用程序设计知识解决本领域实际问题的能力。
3.2 《C语言程序设计》课程翻转课堂的应用模式
翻转课堂主要包括两个教学环节:(1)课前,学生通过观看教师事先提供的教学视频自主学习新知识,归纳出相关问题;(2)课内,学生通过参加教师组织的面对面课堂活动实现知识内化[6]。
翻转课堂的教学效果主要取决于视频设计制作的质量与面对面课堂活动设计的质量这两个方面。因此,这不但对教师在C语言教学知识体系的把握、视频制作技术及面对面课堂活动的设计等方面提出了更高要求,而且对学生的自主学习与自我控制能力的要求也更高。
如图1所示,《C语言程序设计》课程翻转课堂的应用模式中主要包含两个教学部分:一是翻转课堂,二是面对面课堂,两者相辅相成,互为补充。在翻转课堂部分,教师的作用是完成相关教学视频的设计制作,主要包括知识导入、提出问题、任务驱动、问题讲解和动态演示几种方式和表现手段;学生则是自主学习教师提供的教学视频,重点是巩固知识、思考问题、自主学习、测试训练和归纳疑问,完成第一次知识的内化。在面对面课堂部分,首先,教师进行课堂启发,学生按照自主学习带来的问题进行提问,师生之间进行辩论互动,解决相关疑问;其次,教师提出应用实例,由学生现场完成,学生进行问题分析,教师进行启发指导,学生们进行分组讨论冰编程实现;第三,教师给出评价总结,并提出下一个知识点,学生们在课后进行总结,并进行下一个知识点的翻转课堂自主学习。在这一部分,学生完成第二次知识的内化。
针对《C语言程序设计》课程传统教学模式存在的问题,提出以下翻转课堂与面对面课堂相结合的教学新模式,具体包含以下几个特点:
1)教学视频模块化
在翻转课堂部分,将《C语言程序设计》课程中的重难点提取出来,制作短而精的模块化教学视频,每个视频都只有10-15分钟的时间,符合学生身心发展特征,学生在自主学习时不会觉得疲倦厌学。每个视频都分别针对某一特定问题,方便查找。通过计算机网络发布的视频,学生可以自主控制,不清楚的地方可以回看,需要思考的地方可以暂停,这种方式有利于学生的自主学习。例如,可以设置如下模块[7]:C语言基本语法成分、常量和变量、运算符和表达式、if分支语句、switch分支语句、while循环语句、for循环语句、一维数组的定义和引用、函数的定义、函数的调用、指针变量的引用、结构体类型声明、结构体变量的引用等。
2)教学视频主题突出
要想完成自主学习,学生必须具有高度的自觉性和良好的自控能力。因此,教学视频制作时应尽量避免教学无关的因素对学生注意力的影响。例如,视频中无需出现教师头像以及录播室内的场景,最佳状态是,借助大屏幕和黑板对信息进行展示和相关演示,配合以讲解的画外音,使学生关注的就是教学内容本身,并且能不断地思考,提出问题,记录相应的内容。如同教师对学生进行一对一的讲解一样,针对《C语言程序设计》这门逻辑性要求较高的课程,高度集中的注意力是十分重要的学习要素。
3)学生学习过程的重构
学生的学习过程一般由两个阶段组成:(1)知识传授,是通过教师和学生之间的互动来实现的;(2)知识内化,是学生在课后自行完成的。由于缺少教师和其他同学的支持和帮助,知识内化阶段常常会让学生感到很困难,久而久之,就抑制了学生的学习积极性。翻转课堂对学生的学习过程进行了重构,使得传统教学模式追求的课前预习和课后复习的理想状态成为了现实。知识传授在面对面课堂之前完成,老师提供教学视频和在线辅导;知识内化在面对面课堂上通过交流互动来完成,教师根据测试反馈提前了解到每个学生的学习困难,可以在课堂上给予有效的个性化辅导,学生们也能带着自学的疑问进行自主提问、参与问题的设计,现场的问题解决也促进学生之间相互交流,更有助于促进学生的知识内化过程。
4)个性化的学习与巩固
学生观看了教学视频之后,是否能理解学习的内容,需要辅助验证。因此,在视频后面可以提供几道相关测试训练题,帮助学生及时检测,对自己的学习情况作出判断。一方面,如果问题回答得不好,就可以回看视频,强化学习,仔细思考相关问题。同时,教师也能及时查看学生们的答题情况,增进对学生的了解。另一方面,学生对所学知识还可以不断进行复习和巩固。实时测评使得学生学习的相关环节能够得到过程性的考核验证,同时有利于教师真正了解每个学生。
基于模块化的视频教学、实时的教学反馈和问题的提炼设计,翻转课堂以学生学习体验为核心,翻转了教学流程,增加了知识内化的次數,降低了知识内化的难度[8]。
3.3 翻转课堂的应用意义
为了适应C语言课程的教学要求,翻转课堂不是将教师所授内容直接录制下来发到网上,而是将其教学大纲进行优化整合,将视频剪辑为多个视频模块,视频内容短而且模块化,按问题组织知识点,以知识点开展教学。
在《C语言程序设计》课程翻转课堂与面对面课堂教学新模式下,学生们节约了课堂内的宝贵时间,能够更专注于基于问题驱动的主动式个性化学习,促进师生之间的相互交流,鼓励学生们共同研究并解决问题,从而获得对C语言程序设计方法更深层次的理解。在面对面交流之前,学生们可以通过观看视频、网上讨论来完成自主学习,能在任何时候去查找需要的视频和相关资料,进行反复学习巩固。每个模块化视频短小精炼,有助于学生集中注意力,提高学生的学习兴趣。教师不再占用面对面课堂的时间来单向传授知识,所以,教师也有更多的时间与每个学生分别进行交流,个性化的辅导能有效避免部分落后学生遇到的学习挫折。课后,学生自主选择学习内容和学习节奏,教师则促成学生们的个性化学习。这样,学生的学习更加灵活和主动,学生的学习参与度更强,最重要的是学生可以按照自己的专业发现自己感兴趣的问题,使C语言程序设计方法在不同专业领域内能真正发挥其作用。
4 结语
作为一门大学计算机基础课程,《C语言程序设计》涉及面广,受众群体大。其翻转课堂的全新教学模式,颠覆了传统教学模式,是课堂外视频资源和面对面课堂教学相结合的产物。该教学模式重构了教学流程、优化了教学方法,基于不同学科不同专业的计算机应用需求,实现了课程内容的开放式选择。可有效提高学生的学习积极性和主动性,培养学生的逻辑思维能力和C语言编程实践能力。此外,在线试题的验证能让学生和老师充分了解学习情况,从而达到培养学生灵活使用C语言程序设计方法解决实际问题的教学目标。
《C语言程序设计》课程翻转课堂教学模式可以对传统教学模式的不足之处进行弥补和完善,是网络开放教学与课堂教学相结合的信息化教学新模式,可以将《C语言程序设计》课程跃升至深度探究、思辨、互动与实践的新高度,不断提升该课程的教学质量。
参考文献:
[1] 李名, 李瑞萍. 翻转课堂在大学计算机课程中的应用研究[J]. 中国教育信息化, 2016(8): 55–57.
[2] 秦炜炜. 翻转学习:课堂教学改革的新范式[J]. 电化教育研究, 2013(8): 84–90.
[3] 孙忠梅, 吴晓凤. MOOC、翻转课堂与教学流程再造研究[J]. 成人教育, 2015(6): 53–56.
[4] 王瑞. 翻转课堂的关键要素:以领导力教学为例[J]. 高等教育研究学报, 2015, 38(4): 41–46.
[5] 崔艳辉, 王轶. 翻转课堂及其在大学英语教学中的应用[J]. 中国电化教育, 2014(11): 116–121.
[6] 马秀麟, 赵国庆, 邬彤. 翻转课堂促进大学生自主学习能力发展的实证研究——基于大学计算机公共课的实践[J]. 中国电化教育, 2016(7): 99–106.
[7] 罗永龙, 方群. C语言程序设计[M]. 北京: 科学出版社, 2013.
[8] 祝智庭, 管珏琪, 邱慧娴. 翻转课堂国内应用实践与反思[J]. 电化教育研究, 2015(6): 66–72.