您好, 访客   登录/注册

高校计算机专业C语言教学目标探讨

来源:用户上传      作者: 李 莉 张丽君

  【摘要】计算机专业的教学目标,不仅仅在于本课程的知识学习,还要兼顾后继课程的要求和特点,为计算机专业学生的继续学习打下坚实的基础。本文讨论了计算机专业C语言教学目标与其它专业的不同,以期更好地开展计算机专业的C语言教学工作。
  【关键词】C语言 教学目标 程序设计思想 软件工程
  
  目前,有相当多的高等学校不但将C语言列为计算机专业学生的必修课,而且是理工科非计算机专业的必修课。对于计算机专业学生来说,C语言程序设计是一门专业基础课,对后续专业课程至关重要;对于非计算机专业的理工科学生来说,这是一门公共基础课,是各专业学生的计算工具。专业不同,教学目标就应该有所差别。但是,现在很多高校并没有一定的区分,而是统一的教学目标,统一的教学模式,过于注重语句、语法和一些细节,基本上是以高级语言自身的体系为脉络展开的。这样,就给计算机专业学生学习后续课程及研究生阶段的课题研究留下了隐患。在这里,笔者对计算机专业C语言的教学目标做一个简单的探讨。
  
  一、程序设计思想的培养
  
  对于计算机专业学生而言。程序设计以及后来的软件设计是整个计算机专业发展的一个重要方向,因此,程序设计思想的培养对于学生来说至关重要。思想的培养不能单单通过做大量的题目,而是要有一定的方法,循序渐进才能做到事半功倍的效果。
  计算机编程思维的形成并不是一蹴而就的,对于从未受过算法设计训练的学生来说,刚开始编程时,可能会感到无从下手。对此,我们可以从整体到具体细节,一步步引领学生来进行编程。
  
  1.把程序设计简单归纳为数据输入、加工处理与结果输出三个部分。学生遇到问题时,首先,分析已知的数据是什么,需要求解的数据是什么。然后,就是由已知求未知的过程,把这一过程用C语言描述出来就可以了。对于讲解的每一道题目,我们都让学生这样来分析,慢慢地,学生就会有一个整体的认识了。
  
  2.针对“由已知求未知的过程”,就是我们所说的算法了,它是程序的灵魂。算法就是我们的思考过程。但要把思考过程一步步描述出来还是不简单的。首先,我们可以通过放慢我们的思考过程或加长我们的思考过程来实现。例如,5个整数求最大值。有的同学说,我一眼就看出来了,根本不需要思考。那我们如果来求50个数或者100个数的最大值,这次我们就不会一眼看出答案了,这时候,我们的思考过程就清晰了,先求出前两个数的最大值放到变量max中,在拿max和第三个数比较,最大值仍放到max中,max再和第四个数比较……以此类推,最后max里放的就是所有数据的最大值。这就是一种算法。把它用C语言描述出来就可以了。其次,我们需要通过做大量的题目或阅读大量好的程序,来积累一些好的算法。
  
  3.把算法描述为C程序。这一步,需要学生们认真掌握C语言的语法规则。学生需要做大量的针对性的单项练习,一个一个规则来掌握。还要在具体的程序编写中进行综合练习。有具体的使用环境中,这些语法的掌握应该是不难的。
  
  二、与后继课程密切联系
  
  过去的C语言教学多注意基本概念的掌握,对于算法与程序设计的风格未能系统的训练,与后继课程《数据结构》的教学严重脱节。C语言的教学重点固然是C语言的各种数据类型及应用,但是《数据结构》中的许多基本概念与思想也应渗透到C语言的教学中去。
  
  1.C语言的发明就是为了方便操作系统的开发,因此具有丰富的指针结构与位操作功能,这在unix操作系统中已经得到了很鲜明的体现。操作系统的设计涉及许多复杂的数据结构。为了实现这些结构,C语言构造了许多复杂的数据类型,如函数指针,结构指针函数,不一而足。这些模式很简洁地描述了数据的关联模式。显然。C语言许多数据类型本身就是复杂的数据结构的抽象,这一抽象过程就构成了这种结合的基础,这种交叉、渗透还是学生高涨学习情绪的最好切入点。
  
  2.通过C语言中的数据排序,数据查找这些题目的实现,对于数据排序和查找算法的分析比较,我们就可以和数据结构课程中的查找、排序章节结合起来,对查找排序的各种方法作进一步的了解。
  
  3.学习指针这一章时,通过链表的建立、插入、删除等的学习,可以和《数据结构》课程的线性表中的单链表建立联系,再通过与数组知识的结合,又可以和线性表的顺序存储结构,静态链表产生联系。这样不仅使学生们对后继课程有个较详细的了解,加强了课程之间的联系。还进一步提高了大家的学习热情。
  
  三、把软件工程的思想融入教学
  
  随着学生对程序设计语言的学习进步,自然地产生了软件设计的渴望,老师要适时引入一些软件的基本设计方法,对启迪学生悟性很有好处,也使学生找到学习的门路。主要可以从两个方面加以引入。
  
  1.在教学中加入面向数据流的设计方法,这是一种传统的结构化软件设计方法(简称SD),对于初学者易于理解,尤其是在C语言程序设计的课程设计中有很好的效果。让学生了解软件设计的一般方法,程序的模块化结构和数据的输入/输出结构,明确模块间的控制关系,从总体上把握软件的结构,在课程后期的综合练习中有特别的意义。
  
  2.在编程过程中加入程序健壮性、安全性的问题
  在程序设计中,适时提醒点拨学生注意编程安全很有必要。例如,在设计“学生成绩管理系统”时,键盘录入的某课程成绩或者在数据文件中提供的成绩数据的范围、属性是否正确的检查,就是编程的安全问题中的被动式保护性编程。在整个程序设计课程中,到处都是编程安全例子。例如・数组界限是否正确?表达式中是否有0分母情况?使用链表结构时,须要检查其连接情况,等等。
  再者,对于程序的健壮性,使学生们认识到,一个程序。不仅仅输入一个合法数据能得到一个正确的输出。这个程序就是正确的。而输入一个非法的数据,他也能给出一个合理的输出,这才是一个正确的、健壮的程序。例如,输入三角形的三边,求面积。如果我们输入三个数据。就出一个面积数据,那这就不是一个健壮的程序,必须是输入的三个数据能构成三角形,才输出面积;如果构不成三角形,就应该输出一行提示:输入非法。这样的程序才是个正确的程序。
  ,
  
  四、总结
  
  C语言程序设计课程是大学计算机专业的一门非常重要的基础课程,对学生的程序设计思想的培养至关重要,把教学目标定位到不但学好本课程的知识,还要兼顾后继课程的学习和引导。在课程中密切联系数据结构课程的知识,融入软件工程的思想,把老师的深厚的工程经验传递给学生。既能开阔学生的思维和眼界,又能加强学生深入学习后续专业课的兴趣。


转载注明来源:https://www.xzbu.com/9/view-1010549.htm