吴培
【摘要】文章分析了中职校学生学习情况,就C语言课程的教学展开了分析阐述,并结合一线教学经验和Scratch编程软件探讨了新的教学模式,以期能够寓教于乐,使学生在游戏中学会、乐学,变以往的灌输式教学为学生的主动探究学习,培养学生的计算思维,提高C语言课程的教学效果。
【关键词】C语言程序设计;可视化编程;Scratch;计算思维;教学策略
一、引言
中职院校培养学生的目标是专业技能型人才,因而在中职院校计算机专业相关专业中,C语言程序设计俨然已是一门必修课,同时也是一门关键的专业基础课。作为一门经久不衰的程序设计语言,C语言有诸多优点:簡洁紧凑,灵活方便,丰富的运算符和数据类型,表达方式灵活多样实用性强,程序执行效率高,可移植性好,既可以使用C语言来开发系统软件,也可以使用其来编写应用软件,并且程序易于理解读懂,是很多高校计算机及相关专业首选必选的程序设计语言[1]。同时,当前流行的语言大多都是衍生自C语言,因此,C语言也是学习其他语言的基础。掌握C语言后,单片机及嵌入式开发等也便没那么困难。尽管C语言有上述诸多优点,但仍不能阻止其位列中职院校最难学习的课程之一,C语言的教学情况不容乐观。
二、中职院校C语言教学现状
1.学生观念树立不正确,学习积极性不高
中职院校生多为中考落榜考生,学生在起跑线上就已经差了大专及本科院校学生一大截。学生普遍存在学习积极性不高,学习主动性差,学习能力参差不齐,自我约束力不强等问题。且现代计算机编程语言随着计算机技术的日新月异飞速发展,流行语言如C++、Python、Java等,很多学生认为枯燥难懂的C语言已经过时,甚至认为早该淘汰这门课程,因此课前不预习、课上不听、课后不练的现象在中职院校中普遍存在。和基础课不同,C语言学习需要较好的逻辑思维和一定的数学英语基础,而中职学生在进入中职校之前,并没有任何编程基础,C语言本身与其他学科的关联性又不大,导致很多学生在零基础学习时很难听明白课程内容,久而久之就会失去学习的兴趣,学习参与度不高。
2.课堂教学形式亟待创新
虽然中职院校的C语言分升学班和技能班,但是在课程讲授的时候区别并不大,升学班为了应对升学及学测,更注重课程理论知识点的学习,技能班的授课思路和升学班相比较除了降低授课难度外,其他基本一致。这就导致了升学班的学生两极分化严重,实践操作性不强;技能班的学生消化课程内容吃力,提不起学习兴趣,惧怕和抵触编程课。虽然学校在课程安排的时候尽量给C语言安排了机房课,但是由于知识点把握不够,学生在机房还是听老师讲的多,自己练的少,加之授课例子大多缺乏实用性和趣味性,讲练脱节,因此学生无法形成自己的编程思想。
3.考核模式一直较为单一
学生在校学习情况最直接明确的反馈就是卷面分数,中职校也不例外。但是对于C语言这门课程,卷面考核无法体现出学生思考问题和解决问题的能力,无法考查出学生的编程思维和思路,长久的卷面考核容易导致学生对编程本质的误解。也有的学校对C语言实行实践考查,让全班50多名同学完成同一套上机试题,这同样反映不出学生的真实水平。
三、C语言教学策略初探
1.强调学习C语言的重要性,调动学生参与意识
学生在入校之初就应该清楚地认识到C语言在计算机语言发展历程中的重要地位,认识到只有学好了C语言,才能更好更轻松地学习和掌握其他语言。作为职校生,更应该掌握这一门关键性技术。在教学内容和案例选择上,教师可以多选择贴近生活,容易调动学生学习兴趣的案例,吸引学生进入编程世界,让学生正确认识到C语言重要性的同时,也确立其对编程的兴趣和信心,逐步建立计算思维。
2.采用多样化的信息化教学手段,锻炼学生计算思维
由于中职院校学生多,机房课每周给C语言排课最多4节,其余时间大多数学生触碰不到机房电脑。因此,在对教材内容进行合理规划的基础上,教师应当明确教学偏重点,合理调整教学进度,尽量将机房课的时间留给学生进行上机练习,并采用多样化的信息化教学手段,将计算思维融入教学的各个环节中去。中职学生现在人手都有一部智能手机,将其利用起来,进行课程学习,不失为一个好方法。如下文所示。
课程伊始,教师带领学生在手机端下载安装蓝墨云班课并进入创建好的班课,作为课程的学习平台使用。
课前,教师将任务书(导学案)、预习任务以文本和形象的微课的形式发送至学习平台,并上传课前测。学生完成预习任务后,完成课前测,并根据自己的掌握情况在班课平台与教师、同学进行在线交流和互助答疑。教师标记学生的存疑点,并据此及时调整课堂教学内容。教师在课程开始前就将课程整合为一个一个的任务,让接受任务的学生在工作中学习理论知识,在学习中完成工作任务,工学结合,交替进行。
课中,教师首先引导学生成立学习小组,画出本次任务的流程图,并使用Scratch软件将工作过程以搭积木的方式呈现出来,搭建出本次课任务所需的脚本,并修改、完善、运行脚本,直到达到任务所要求的效果。Scratch软件是美国麻省理工学院开发的一款计算机编程图形化入门软件,在这个软件中可以实现诸如变量、选择结构、循环结构、数组等C语言程序中的知识,使用该软件设计游戏的方式,能吸引中职学生的眼球,提高学生学习兴趣,且易操作,易理解,能将C语言的知识点内化在学生搭建游戏脚本过程中,搭建的过程更是计算思维得以锻炼形成的重要阶段。在创作过程中,学生能够发现问题,经过小组讨论,求助教师和同学,回顾学习微课等解决问题,从而在自主、写作、交流、分享的过程中,促进计算思维的养成。游戏搭建成功之后进入正式的编程环节,学生将各自的流程图和Scratch脚本转换成C语言编程语句,并编译链接运行,此阶段必不可少。在编程过程中,教师可以巡回观察,并给个别学生适当的引导,同时在学习平台上开展实时互动,进行师生交流、生生交流。编程的学习最终要落实到键盘上和实践中,教师从一开始就要给学生渗透多读多写、多写多练、注重实践的学习观,这样才能将C语言这门课程学好学透。
3.开展小组合作,创新考核模式
合作完成工作任务在以后的工作中亦非常重要,编程从来不是一个人独立完成的工作。因此在课程中,将学生按照组内异质、组间同质、各组水平平均,并根据单元任务不同随时调整的原则将全班同学按照每组4—6人分成任务小组,开展小组合作。同学们在合作中进步,在合作中成长。遇到问题时,可以进行小组讨论,头脑风暴,互相协助。在进行复杂任务时,也可分解任务到每一位组员,通力合作完成。
考核应同时注重形成性评价和结果性评价,C语言课程的考核应抓好蓝墨云班课学习平台这一重要工具对学生进行形成性评价。学生在平台学习资源的查阅,学习测试的完成情况,每次课的签到,课中答题,给其他同学答疑解惑点赞,课后提交作业考查等操作均能在平台上直接给出相应分值。教师根据每次课的编程任务完成的时间、正确性及编程思维给出每一个学生和每一个小组相应的得分。而结果性评价的考查,在学期末的时候,教师结合不同学生掌握情况的不同,给出不同的上机试题,给掌握情况较好的学生发送拔高性测试题,给底子薄弱基础较差的学生发送经典性测试题。结合蓝墨云班课学习平台平时成绩(占比50%)、卷面测试成绩(占比20%)、上机考查成绩(占比30%)等综合给出学生本学期的总成绩。
4.建设编程社团,提供实践条件
在课后,组织兴趣浓厚学有余力的同学加入编程社团,由于使用相同的编程语言,因此可以与本校的单片机社团合作,使用学校的单片机技能大赛实训场所作为编程社团活动基地。社团学生在此可以接触到单片机技能大赛的实验平台亚龙YL-236,将编写成功的程序加载到仿真器中并运行,可以实时观察到相应的运行结果,如流水灯、跑马灯、液晶显示等。在此将课上所学的知识点转化為生活中的实际问题,强化学生对所学内容的理解和掌握,并锻炼学生在实施过程中发现问题和自主解决问题的能力,促进学生计算思维的养成。社团中表现优异的同学将被选拔出来参加市级技能大赛,从而以赛促学,更大限度地提高学生的学习积极性和参与度。后续,可结合本校创客空间、结合校企合作项目,将学生在课上所学更多地应用到实践中工作中去。
四、以“冒泡排序”为例讲融合Scratch软件教学
传统课堂讲到“冒泡排序”的时候,经常出现教师在台上口干舌燥解释循环,循环套循环的概念一遍又一遍,而学生在座位上一脸懵、云里雾里的情况。笔者在课前就将冒泡排序的原理和方法以微课、flash动画的形式发送至学习平台,并同时上传相应的排序小游戏,让学生在游戏中按照微课的指引,找到并理解冒泡排序的方法。在课堂上,小组通力合作,使用Scratch软件制作冒泡排序小游戏,帮助学生更好更深层次地理解相关知识原理,对于程序的理解和编写有很大帮助。
五、结语
以上教学方法在实际教学中取得了较好的效果,同学们不再像一年级学习VB课程时乏味索然,而是每个人都不同程度地体会到了学习的愉悦,学有余力的同学孜孜不倦地在社团活动室探索编程世界,基础薄弱的同学也能完成C语言重要知识点的学习和过关检测。在教学过程中,教师要做很多的课前准备,如课程整合、微课制作等,并花心思设计每一堂课。在教师精心设计的课堂中,学生才能积极完成课前预热、课中投入、课后探索。在此过程中,Scratch软件起到的重要作用是显而易见的,不仅吸引了学生探究编程方法,而且帮助学生在搭建游戏的过程中形成编程思维和思路,给予学生自豪感和满足感。在这样的课堂中,教师只需起到一个引导者和指路者的作用,学生仍是课堂的主体和中心。
【参考文献】
朴志远.学生为中心的告知C语言课程教学改革[J].现代交际,2017(01):159-160.