柯亮亮
(铜陵职业技术学院,安徽 铜陵 244000)
伴随着科技的迅猛发展和网络的普及,“互联网+教育”是目前教学模式发展的趋向。根据教育部有关文件提出在2020年完成“人人皆学、处处能学、时时可学”的信息化教育建设目标。而混合式教学形式正是运用这一理念,将以往的线下教学和线上教学有机融合起来,打造“以学生为主体,教师为主导”的混合式教学形式的现代课堂。
当前,很多国内高校都进行了混合式教学的探索和实践,也取得了一定的成果。根据多年从事《C语言程序设计》课程一线教学经验,同时参考兄弟院校先进做法,对该课程做了大胆的教学改革探索。选择《C语言程序设计》为教改对象的缘由一是因为作为计算机学科专业的程序入门基础课程,影响面广,受关注高;二是因为《C语言程序设计》作为我院校级精品课程,拥有广泛的视频、动画、题库等网络线上资源,为混合式教学的开展提供了保障。
由于《C语言程序设计》课程是计算机学科程序设计类体系课程的入门课,故该课程学习成效直接影响后续程序类课程的学习。根据多年承担一线教学实践任务,发现各高职院校在该课程的教学中都表现在如下四个方面的主要问题:
《C语言程序设计》课程通常开设于计算机类专业大一新生第一学期,由于新生军训占用大概两周时间,C语言课程教学总体学时就比较紧张。而教师一味的为了完成教学大纲所限定的教学任务内容,不得不采用“满堂灌”的讲授方式,课堂与学生互动较少,学生只能被动的接受,学习效果不理想。再者《C语言程序设计》课程所涉及的知识点比较宽泛,语法规则繁多,前后章节内容连贯性较强,作为大一新生的初学者学习起来比较吃力,加上高职学生存在懒学、惰学的现象,一旦错过某些章节内容的理论学习,后续章节内容存在“跟不上”的现象,慢慢就对该课程比较畏惧,逐渐丧失学习热情和兴趣。
通过对历届学生问卷调查和访谈可以得知,很多计算机类学生不知道为什么学习《C语言程序设计》,学习它又可以用来干什么。大部分计算机类学生仅仅停留在学习该课程可以通过考试取得国家或省级计算机二级证书,理解比较狭隘。学生如若学习目标都不明确,再加上不当的学习方法和习惯,势必不会有过多的学习兴趣和动力,那么课程的教学效果当然不会太理想。
由于《C语言程序设计》课程涉及的概念、语法规则偏多,而且比较抽象,随着课程的深入,难度逐步加大。如果教师在教学内容安排上还是照本宣科,缺乏实用性和趣味性,势必难以激发学生的学习热情,影响教学效果。再加上每周有限学时的实践教学,如果实践之前没有精心的组织好,那么实践就仅仅停留在验证书本实例的层面,造成学生只会课本上的例子,不会解决实际问题,它极大地影响了学生的学习热情和兴趣。
目前很多高职院校的《C语言程序设计》的教学还是以往的讲授法为主,课上大部分时间都是“填鸭式”的讲授,与学生的互动较少,忽视了以“学生为主体、教师为主导”的现代教育观念,难以激发学生的学习兴趣和热情。
作为为地方经济建设培养职业技能型人才的高职院校,课程的目标确立要服从于专业人才的培养目标。《C语言程序设计》是计算机学科专业基础课,重点是培养学生的逻辑计算思维能力,经过该课程的学习后,学生应该具有基本的程序设计能力,能够利用计算机来解决实际问题,并且具备优良的职业修养和逻辑思维能力,以满足社会对技能应用型人才的能力需求。只要学生明白了课程的学习目的,才会激发学生的学习动力,进而提高课堂的教学效果。
当前市场上高职类《C语言程序设计》教材数量颇多,但有特色的高职类的《C语言程序设计》教材并不多见。并且这些高职教材或多或少沿用本科的教学思路来编排教学内容,过多的把焦点放在理论知识的严密性、完整性讲授要求上,忽视了高职学生的基础、能力、心理和学习特点,也一定程度上分割了理论和实践教学,不能适应“教、学、做”相融合的教学理念。因此,考虑到高职学生的学情,以“提出问题—解决问题—总结归纳”为主线的计算思维来科学组织教学内容,使学生“边理论、边实践,学一样,会一样”的循序渐进式的学习,增强学生学习的信心,激起他们的求知欲,从而促进学生自主学习,达到较为理想的教学效果。
由于C语言课程内容涉及的知识点颇多、概念抽象等诸多问题,假如没有科学的教学方法,就不能充分调动学生学习的积极性,也将会影响学习的成效。所以教师可以通过如下几种方式来提高学生学习热情和兴趣。
1、启发式教学
教师在讲授该课程的时候,要尽量避免“一支粉笔、一块黑板、几张PPT”的满堂灌的讲授方式,应注意营造轻松、快乐的学习氛围,通过创设问题情境,层层设问,从而引导学生思考进行启发式教学。比如在讲授分支结构if语句的章节内容时,创设问题情境:现要求给学生考试成绩定个等级的问题解决方法?
(1)问题1:若考试分数score大于等于90分且小于等于100分,则考试成绩等级为优秀,这个问题如何解决?教师课堂上引导学生用单分支if语句来演示解决这个问题:
if(score>=90&&score<=100)
printf“(该同学考试成绩为:优秀/n”);
(2)问题2:若考试分数score大于等于60分且小于等于100分,则输出合格,否则为不合格,这个问题又如何解决?此时教师在简明讲述分支语句知识后启发学生试着用if…else语句来解决这个问题:
if(score>=60&&score<=100)
printf“(该同学考试成绩为:合格/n”);
else
printf“(该同学考试成绩为:不合格/n”);
(3)问题3:若考试分数score大于等于90分且小于等于100分,则输出优秀;若考试分数score大于等于80分且小于90分,则输出良好;若考试分数score大于等于70分且小于80分,则输出中;若考试分数score大于等于60分且小于70分,则输出及格,否则就输出不及格,这个问题又该如何解决?此时教师首先简要讲解多分支语句的理论知识后,然后再引导学生思考如何用if…else if…else多分支语句来试着解决这个问题:
if(score<60)
printf“(该同学考试成绩为:不及格/n”);
else if((score<=70)
printf“(该同学考试成绩为:及格/n”);
else if((score<=80)
printf(“该同学考试成绩为:中/n”);
else if((score<=90)
printf(“该同学考试成绩为:良好/n”);
else
printf(“该同学考试成绩为:优秀/n”);
最后教师与学生共同分析归纳,同时要求学生进行举一反三的临摹实践锻炼,比如让学生解决日常生活中交个人所得税的问题;保险公司职工工资问题(工资=底薪+提成(提成根据职工卖出的保险份数))的问题;通过创设一系列问题情境来解决实际问题,从而激发学生的学习动力和兴趣,达到理想的教学效果。
2、案例式教学
教师在讲授枯燥的C语言知识的时候,可以通过学生感兴趣的事情入手,这样更贴近学生,他们也更能够接受。比如在讲授函数章节内容时,要求学生设计一个简单的计算器。教师首先演示编写加法函数:
通过演示编写加法函数的同时教师讲授函数的定义、调用、声明的相关知识点,然后要求学生仿照案例,编写减法函数、乘法函数、除法函数:
学生通过自身实践编写三个函数来完成简单的计算器程序,让学生在学习实践中获得知识的成就感,增强学生学习的自信心和积极性。又比如讲授循环结构和分支结构章节,可以通过编写猜商品价格游戏程序:
让学生在课堂小游戏中学习和掌握循环结构与分支结构的综合运用。再如在讲授字符串和数组内容时,可以通过简单的投票系统程序案例来讲授字符串函数和数组的应用,让学生体会到C语言可以解决很多的问题,增强学生的求知欲。
3、任务驱动式教学
教师在组织实施课堂教学的时候,要注重高职学生的学情,多站在学生的知识结构层面来设计教学任务,任务的设计要考虑到层次性、渐进性、实用性,让所有学生都在学习过程中都能体验到获得知识的成就感。比如可以把求1到10的阶乘之和分成三个子任务:
①分别求1到10的阶乘:
②将1到10的阶乘相加求和:
③举一反三:求10以内的奇数阶乘和:
分别将任务下达给各个小组,提高学生的参与度和团体协作精神,让小组学生逐步完成难度不同任务的同时,学会活学活用,激发他们的学习兴趣和热情。
4、翻转课堂模式教学
C语言程序设计课程很容易受到教学过程中的时间、空间的限制,面对教学内容多、难度大等因素的影响,采用翻转课堂混合式教学模式实现线上线下的相融合教学。云课堂作为翻转课堂模式教学的一种典型应用,可以在教学中灵活加以运用。比如C语言中的指针章节内容复杂、晦涩难懂,可以采用云课堂的教学模式来组织教学。首先教师在上课之前,将精心制作的指针微课小视频或者指针FLASH小动画等课程内容资料、小提问和小讨论上传至云课堂,学生可以在线自主学习和在线提问,通过云课堂可以统计出多少学生在线学习,云课堂的讨论区能够实现教师、学生之间在线讨论,及时解除学习中的困惑;课中的时候,教师进行重难点讲解和共性问题的讨论与解答,安排典型例题讲解和编程实践练习;课后学生进行云课堂的指针章节的巩固练习和拓展学习,教师进行教学反思和总结。通过运用翻转课堂的混合式教学,既秉承了学生的主体性、教师的主导性现代教育理念,同时又提高了学生的学习热情和兴趣,也促进了教学质量的提高。
C语言在计算机学科体系中占有重要的位置,那么能否科学合理的评价学生的该课程的考核成绩,关乎学生对学习计算机类专业的热情和兴趣。而传统的以一张试卷的成绩来结束该课程显然是不科学的,因此多元化的课程考核机制是非常有必要的。笔者将C语言程序设计课程的考核的成绩主要分为理论考核+实践考核+云课堂线上考核三个版块,具体的最终分数的计算公式为:总评分数=平时分数(15%)+技能考核分数(30%)+云课堂线上考查分数(15%)++期末卷面分数(40%)。通过对课程考核的多方面的改革,能够正确的评估学生对该课程学习的效果,同时也提高了学生学习的热情和动力。
针对对C语言程序设计在传统教学中出现各种的弊端,运用现代教学理念和教学手段、教学模式对该课程进行了教学改革与实践,并在我院17级计算机网络技术专业的教改实验班共56人进行了问卷调查,发放问卷56份,收回问卷53份,无效的问卷3份(填写不完整),调查反馈统计结果如图1所示。
(I)改革后的教学模式您是否能接受?
(II)改革后的教学模式能否提升您的学习兴趣?
(III)改革后的教学模式是否对您学习有助?
(IV)改革后的课程考核您是否满意?
(V)您认为C程序设计课程的理论教学哪个重要?(VI)您认为C程序设计课程的线上教学和实践教学和线下教学哪个重要?
图1 C语言程序设计教学改革后的问卷调查结果
通过问卷调查的结果分析来看,大部分同学还是能够接受改革后的教学模式,并且认为改革后的教学对自己的自主学习和激发学习热情还是有帮助的,同时高职的学生认为实践比理论更为重要,这与他们的知识结构、心理承受能力以及未来要成为技能型人才等因素影响所决定的。
C语言课程教改成效评价是多方面的,其中期末考试分数也是反映学生掌握知识程度如何的一方面。因此,对17计算机网络技术专业3个平行班进行统一命题制卷和统一时间考试,最终对3个平行班级期末卷面分数做了对比统计,如表1所示:
表1 C语言期末卷面成绩统计分析表
从期末考试卷面分析来看,教改后的实验班学生掌握C语言知识较扎实,最终卷面成绩也比较理想。虽然一次成绩不能完全说明问题,但是通过教改后的学生学习积极性提高了;学生的编程能力也较强;团队之间的协作能力也增强了;这些都说明了教改对C语言课程教学起到促进作用。
随着互联网+教育的理念的不断深入以及技术的不断成熟,传统的教育教学模式势必受到影响,教育要面向现代化、信息化是教学改革的必然趋势。文章对高职院校C语言程序设计课程进行了教学目标、教学内容、教学方式、教学模式以及课程考核等方面做了改革和实践探索,总体上来看,改革的效果良好。但同时也存在着一些不足,比如C语言程序设计的翻转课堂的教学模式的实施,在线下和线上的课程衔接方面、课堂教师组织答疑、探讨方面都存在一些瑕疵。故教学的改革没有终点,只有根据社会人才需求和学生具体的学情不断的进行教学改革探究,才能培养出适应经济发展的职业技能型人才。