如何提高高职学生的编程能力
2019-09-10孙荣侠
孙荣侠
摘要:程序设计类课程作为高职计算机类专业的一门专业课,一直是学生学习的难点课程。本来作者从一名程序设计类教师的角度,根据自己的教学经验,指出了高职学生在学习编程类课程存在的问题,以及自己在教学中是如何提高学习编程的兴趣,提出来几点教学心得。
关键词:编程;由难到易;由易到难;真实案例;教学流程
在计算机相关专业中,程序设计类课程作为专业课之一一直是学生学习的难点课程。高等职业院校学生大部分学习基础较差,学习思维不很积极主动,而程序设计类课程比较抽象,其思想与我们日常处理问题思路有很大出入,需要学生建立一定的编程思维,掌握编程技巧和方法,要学好这类课程对高职学生来说有一定的难度和挑战,很多学生很难驾驭这门课程。所以在平时的授课中,程序设计类课程是学生学习的老大难课程,也是老师教授课程的心头大患。
一、学习过程存在问题
1、学习状态偏差
目前高职群体是90后、00后, 这个时代的学生家境较好, 从小到大受到物质文化的影响, 再加上程序设计类课程本身抽象不好理解,没有实际的作品可以呈现,导致学生失去学习兴趣,学生学习状态是不肯动脑,不愿琢磨,拒绝听课,对这类课程要求及格万岁,学习精力严重投入不足, 考试考试考什么, 学生就学什么, 考试不给范围就不会考,甚至范围必须具体,有的学生甚至考前背诵程序代码,应付考试。
2、程序设计类课程特点及内容编排
程序设计类课程学习过程是由基本概念基本语法到到语句学习再到最后编制程序的学习,在前面很长一段时间的学习比较枯燥,没有任何作品呈现,只是一些简单的程序用来强化基础的概念与语法,一部分同学觉得枯燥乏味没有意义会会中途放弃。但是程序设计类课程学习一般是越往后学习越理解前面语法的含义,后面的知识学习是对前面学习内容的综合应用,所以只要能坚持学习,最后会有收获的。
3、兴趣不够
有的学生畏难情绪重,对于程序设计这类难度大的课程听不懂就望而却步,导致上课不认真听讲,课后也缺乏重新学习研究的过程,编程时直接输入现成的代码,缺乏自己动脑自己试着编程的过程,把好好的编程课上成了打字课。如果缺少自己动脑编程的过程,编程能力是很难提高的。只有在不断编程不断调试的过程中通过不断修改程序最后得到正确的结果才能建立起编程的思维,掌握编程技巧和方法,提高编程能力,最终学好程序设计类课程。
二、改进方法
针对学生的这些问题,为了激发学生的程序设计类课程的学习兴趣和编程能力,通过不断摸索和总结,以我讲授《ASP.NET》为例,在多年课程教学总结出一些心得和方法,在提高高职学生学习编程兴趣方面效果良好。
1、教学流程的控制
在平时的授课中,除了在教学方法上不断改进,采用项目教学法,案例教学法,分组讨论法等等,教学手段采用教学做一体化,这些方面改善学生学习积极性和保证课堂效果外,在授课过程中,教学内容的讲授流程安排也可以直接影响学生的学生积极性,在编程教学过程中(以下以《ASP.NET》课程为例)学生如何做什么时候做,老师如何讲什么时候讲,给学生辅导时具体辅导到什么程度,如果开启学生自己思维鼓励学生自己编程调试,这个过程我经过设计,是由难到易的过程。
1)第一步,先运行程序执行结果,让学生熟悉程序完成功能以及执行结果。
2)第二步,根据执行结果讲解前台页面设计及其包含控件和其他元素,然后让学生完成这部分设计即页面创建。
3)第三步,结合程序设计结果,把执行结果分成不同功能块,但要保证每个功能块是一个相对完整的功能,然后启发学生完成每个功能块的编程,在这个过程如果遇到有集中的问题和一些需要准备的工作,我会集中讲解,涉及到一些复杂的算法我会给学生分析解决问题过程,但是代码实现是让学生自己去完成,细分后的功能难度降低了很多,大部分学生都跃跃欲试,后面的结果证明很多学生都能写出70%到100%的代码编写,在这个过程中鼓励学生可以讨论,可以一起调试。当学生调试出一个功能模块后,后面的功能模块自己就会去尝试去编,当他们独立完成后特别兴奋,感觉有成就感,而且对编程有了新的认识,以前畏惧如虎的编程课其实也很容易学,树立了学生的编程学习自信心和学习编程课的兴趣。
2、真实案例选择与设计讲解过程
在授课过程中我发现案例的选择直接影响学生对本次编程的兴趣,所以我就尽可能选择跟我们生活息息相关的一些案例,让他们认识到此次编程可以解决实际问题,进而激发学习的兴趣,然后再引导学生编程实现。然后在编程讲解过程中逐渐加大编程难度,引导学生自己编程实现功能,这个过程是由易到难的过程。以下是我讲课中选择的几个典型案例。
案例一:登陆功能设计
解析:登陆是最常用的网上功能,学生经常上网会进行各种登陆,与现实生活息息相关,要自己去编写实现肯定有兴趣。
先让学生完成最简单的登陆,不限制任何条件,只要实现登陆功能。然后加深难度,限制登陆次数,让学生自己尝试完成,互相讨论,找到原因后思考新的解决方案,最后修改直到成功,总有一部分同学最后总能圆满完成。在这个过程中锻炼了学生分析问题解决问题的能力,培养了学生的编程能力,激发了学生的学习兴趣,效果非常良好。根据班级学习情况,我还会进一步增加难度,让他们给登陆进一步加上验证码功能,其实部分思维活跃的同学会提前提问验证码的做法。
案例二:福利彩票双色球号码的生成。
解析:福彩双色球6+1先产生6个篮球,再产生1个红球,很多学生的父辈或认识的朋友都会参与双色球彩票游戏,学生比较熟悉,看到这个案例也很兴奋,摩拳擦掌,跃跃欲试。
这个案例解决方案有算法设计,我会提前讲解算法,让學生自己写代码,最后我欣喜的发现,思维活跃的学生不仅能圆满完成,而且大家写出来的代码实现并不尽相同,但都能实现。在这个过程中学生有了编程的成就感,同时认识到其实编程并没有那么难,增强了他们学习编程的信心,提高了他们学习编程的兴趣。
案例三:超市收银终端系统的完成。
解析:超市购物是我们生活中不可或缺的一部分, 让学生根据超市收银完成操作,自己编程模拟收银终端编写程序,完成收银过程。
通过给学生分化收银过程,分析把收银过程这个实际问题如何转化为计算机问题,同时引导他们逐步实现收银过程,最后大部分学生基本可以完成代码的编制。
三、结论
程序设计课程比较抽象,解决问题思路不同于常规,对于大部分学生而言,学好编程课是一件难事,对高职学生而言同样如此甚至更难,作为一名高职程序设计类课程任课老师,要把这类课上好也是一种挑战。本文站在老师角度从两个方面总结了如何提高高职学生学习编程的兴趣,分别是分化程序功能,降低难度,逐步设计,让学生自己能完成代码编写,这是一个由难到易的过程;选择真实案例,逐步提高难度,这是一个由易到难的过程。不同案例采用不同方法,最终达到增强学生学习编程的信心,提高学生学习编程的兴趣。