非计算机专业C语言课程教改实践
2011-12-31李建华张景安
计算机教育 2011年20期
摘要:结合非计算机专业对C语言程序设计课程学习的要求,针对教师与学生普遍认为C语言难教难学的现状,提出新的教学目的和教学方法。
关键词:C语言程序设计;教学目的;教学方法;多课程教学结合
基金项目:山西省教育科学“十一五”规划课题“地方高校计算机应用型创新人才培养模式研究”(GH—09223)。
作者简介:李建华,女,讲师,研究方向为人工智能。
当前在高等学校的本科教育中,从计算机科学到电子信息类专业,乃至理工科院校的所有非计算机专业,“C语言程序设计”几乎成了必开课程。有的是专业基础课,有的是公共必修基础课,有的是“非计算机专业的计算机基础课”。教学目的根据专业有所不同,有的是专业基础知识;有的只是为了掌握简单的编程;还有的是为了计算机等级考试。教学方法多遵循语言类授课方式,重点放在语法掌握上。C语言程序设计课程本身对教学要求比较高,学生不仅仅学习C语言程序设计的语法知识,更重要的是掌握程序设计方法。在以往的教学实践中,我们发现很多学生认为C语言程序设计课程是一门比较难学的课程。事实上除了计算机专业学生在后续课程或工作中要用到它外,其他专业学生在课程结束后几乎不再接触此知识。那么我们开课的目的不应该只停在学习编程上,明确新的教学目的,结合新的教学方法让学生对此有新的认识,这样学生学起来就会感到轻松,兴趣。
1明确新的教学目的
教与学的目的应该是一致的,如果学生将来不用编程,而是想通过学习这一门课程来提高其他方面的能力,如逻辑思维能力、研究能力、自学能力等,那么我们也应该改变教学目的。
1.1对逻辑思维能力的培养
教师可以开门见山地告诉学生,这门课程不仅是为了学编程,更重要的是培养更强的逻辑思维能力。这个能力在以后干任何工作都可以用上。编程时的算法跟每个人的想法一样,各有不同,可是编程的语法是固定的,机器不会去理解人,所以,写程序一定得有强的逻辑思维才能让机器帮你执行出想要的结果。这就要求学生们在编程时一定要思路清晰,思维缜密。如在循环嵌套时,就要分清内外层循环,比较简单的像二维数组的是行大还是列大,大的在外层,小的在内层,外层循环慢,内层循环快;稍复杂一点的,如求1~100之内的素数,用定义求,表示循环的语句如下:[1]
For(n=1;n<=100;n++)
For(i=2;i
外层For(n=1;n<=100;n++)表示1~100的数,For(i=2;i
For(i=2;i
这里的For(i=2;i
1.2对研究能力的培养
现在许多学生适应了在中学时期的强制性学习和应试教育,导致自学能力减弱,也就更没有独立思考的能力和研究能力,我们现在大学的学习目的主要是培养研究型学生。通过学C程序设计,可以培养自学能力、研究能力。
学习是为了解决实际生活中的问题,这样就需要对生活中的问题进行数学建模,而建好的模型是需要用机器来解的。这一系列过程需要大力思考。生活中的问题抽取什么样的量来设为变量,这些变量又有着怎样的关系,如何建立表达式,建好的表达式又怎样用程序算法来实现。例如,在没有学习数组时,我们需要求大量的数据,设许多个变量这是不可取的办法,需要我们用更巧妙的方法来解决。如解决古典数学问题兔子繁殖问题,这个问题的数学模型是Fibonacci数列。求出这个数列的前40个数。程序段如下:
F