《C程序设计》课程教学之我见

(整期优先)网络出版时间:2024-05-10
/ 2

《C程序设计》课程教学之我见

孙荣侠

天津滨海职业学院 

摘要:《C程序设计》课程作为一门程序设计课程,对高职的大部分学生而言是一门头疼的课程,作为一名从事多年程序设计类课程的教师,根据自己多年的教学经验,本文从教师和学生的角度来阐述如何提高《C程序设计》课程学习效果。

关键词:由难到易 由易到难 真实案例  教学流程

高等职业院校学生大部分学习基础较差,学习思维不很积极主动,而《C程序设计》课程一般开设在大一第一学期,其思维与我们高中学习其他课程有很大不同,需要学生有一定的编程思维,要学好这类编程课程对高职学生来说有一定的难度和挑战,很多学生很难驾驭这门课程。所以在平时的授课中,《C程序设计》课程是大一学生学习的老大难课程,也是老师教授课程的心头大患。

一、学习过程存在问题

1、学习状态偏差

大一新生本来学习基础较差,学习积极性欠缺,学生兴趣低,《C程序设计》课程本身抽象不好理解,一部分学生畏难情绪重,不肯动脑,不愿琢磨,缺乏自学环节,对这类课程要求及格万岁,学习精力严重投入不足。

2、《C程序设计》课程特点及内容编排

 《C程序设计》课程学习过程是由基本概念基本语法到到语句学习再到最后编制程序的学习,在前面很长一段时间都是基础语法的学习,比较枯燥,没有任何作品呈现,只是一些简单的程序用来强化基础的概念与语法,一部分同学觉得枯燥乏味没有意义失去学习兴趣。但是这种程序设计类课程学习一般是越往后学习越理解前面语法的含义和应用,后面的知识学习是对前面学习内容的综合应用,所以只要能坚持学习,最后会有收获的。

3、兴趣不够

有的学生畏难情绪重,对于程序设计这类难度大的课程听不懂就望而却步,导致上课不认真听讲,课后也缺乏重新学习研究的过程,编程时直接输入现成的代码,缺乏自己动脑自己试着编程的过程,把好好的编程课上成了打字课。如果缺少自己动脑编程的过程,编程能力是很难提高的。只有在不断编程不断调试的过程中通过不断修改程序最后得到正确的结果才能建立起编程的思维,掌握编程技巧和方法,提高编程能力,最终学好程序设计类课程。

二、改进方法

针对学生的这些问题,为了激发学生的程序设计类课程的学习兴趣和编程能力,通过不断摸索和总结,在多年课程教学总结出一些心得和方法,在提高高职学生学习《C程序设计》课程编程兴趣方面效果良好。

1、教学流程的控制

在平时的授课中,除了在教学方法上不断改进,采用项目教学法,案例教学法,分组讨论法等等,教学手段采用教学做一体化,这些方面改善学生学习积极性和保证课堂效果外,在授课过程中,教学内容的讲授流程安排也可以直接影响学生的学生积极性,在编程教学过程中学生如何做什么时候做,老师如何讲什么时候讲,给学生辅导时具体辅导到什么程度,如果开启学生自己思维鼓励学生自己编程调试,这个过程我经过设计,是由难到易的过程。

1)第一步,先运行程序执行结果,让学生熟悉程序完成功能以及执行结果。

2)第二步,根据执行结果讲解本程序是如何处理得到这样的结果,即算法设计过程,同时鼓励学生应用自己的想法来写程序进行调试。

3)第三步,结合程序设计结果,把执行结果分成不同功能块,但要保证每个功能块是一个相对完整的功能,然后启发学生完成每个功能块的编程,在这个过程如果遇到有集中的问题和一些需要准备的工作,我会集中讲解,涉及到一些复杂的算法我会给学生分析解决问题过程,但是代码实现是让学生自己去完成,细分后的功能难度降低了很多,大部分学生都跃跃欲试,后面的结果证明很多学生都能写出70%到100%的代码编写,在这个过程中鼓励学生可以讨论,可以一起调试。当学生调试出一个功能模块后,后面的功能模块自己就会去尝试去编,当他们独立完成后特别兴奋,感觉有成就感,而且对编程有了新的认识,以前畏惧如虎的编程课其实也很容易学,树立了学生的编程学习自信心和学习编程课的兴趣。

2、 真实案例选择与设计讲解过程

    在授课过程中我发现案例的选择直接影响学生对本次编程的兴趣,所以我就尽可能选择跟我们生活息息相关的一些案例,让他们认识到此次编程可以解决实际问题,进而激发学习的兴趣,然后再引导学生编程实现。然后在编程讲解过程中逐渐加大编程难度,引导学生自己编程实现功能,这个过程是由易到难的过程。以下是我讲课中选择的几个典型案例。

案例一:最传统的题目:交换两个变量的值

解析:交换两个变量的值,学生是想不到应用第三者变量的。通过实例交换两个手上的餐具实现过程来讲解变量的交换,学生很容易就理解了。同时通过这个程序让学生进一步理解赋值的意义和应用。

设计完成本程序后,后面学习了选择结构后我们进一步扩展,编程求出1、两个变量的较大值2、三个变量的较大值或者较小值。3、对三个变量进行排序。在这个过程中锻炼了学生分析问题解决问题的能力,培养了学生的编程能力,激发了学生的学习兴趣,效果非常良好。根据班级学习情况,我还会进一步增加难度,这个过程的实施过程中,有的学生就会提问如果对一组数进行排序如何实现?学生开始有了独立思考的过程。启发学生接触数组的概念,数组的定义,以及如何实现排序的若干种算法。

案例二:福利彩票双色球号码的生成。

解析:福彩双色球6+1先产生6个篮球,再产生1个红球,很多学生的父辈或认识的朋友都会参与双色球彩票游戏,学生比较熟悉,看到这个案例也很兴奋,摩拳擦掌,跃跃欲试。

这个案例解决方案有算法设计,我会提前讲解算法,让学生自己写代码,最后我欣喜的发现,思维活跃的学生不仅能圆满完成,而且大家写出来的代码实现并不尽相同,但都能实现。在这个过程中学生有了编程的成就感,同时认识到其实编程并没有那么难,增强了他们学习编程的信心,提高了他们学习编程的兴趣。

案例三:金子塔的编程实现。

解析:金字塔的设计要应用循环结构,其中应用到循环的嵌套问题。在这里我们就会给学生讲解循环几个语句是如何嵌套的,如果有嵌套结构,执行过程是怎样的?并且跟单重循环进行比较讲解。

学生实现金字塔的编写调试成功后。进一步对金字塔进行各种变形,启发学生根据每种变形分析跟之前已经实现的金字塔的样式变化,然后分析写出代码。这样的变形大概有4种。在这个过程大部分学生的学习热情比较高涨,思维也很活跃,最后大部分同学可以类似的处理方法的九九乘法表的编写。

三、结论

《C程序设计》课程比较抽象,解决问题思路不同于常规,对于大部分学生而言,学好编程课是一件难事,对高职学生而言同样如此甚至更难,作为一名高职程序设计类课程任课老师,要把这类课上好也是一种挑战。本文站在老师角度从两个方面总结了如何提高高职学生学习编程的兴趣,分别是分化程序功能,降低难度,逐步设计,让学生自己能完成代码编写,这是一个由难到易的过程;选择真实案例,逐步提高难度,这是一个由易到难的过程。不同案例采用不同方法,最终达到增强学生学习编程的信心,提高学生学习编程的兴趣。