您好, 访客   登录/注册

高校非计算机专业《C语言程序设计》课程现状及研究

来源:用户上传      作者: 李 坤

  摘 要: 目前国内各个高校大多在非计算机专业开设了计算机语言课程,C语言作为一种广泛流行的结构化程序设计语言,成为了大多数高校非计算机专业计算机语言课程的教学语言。C语言既适合于开发系统程序,又适合于开发应用程序;既具有高级语言的功能强大、使用灵活的特点,又具有汇编语言适合编写底层应用程序的实用性。其对于非计算机专业的学生来说也具有很强的实际应用价值,例如单片机编程方面,过去一般采用汇编语言,而现在采用C语言编程已经广泛流行并且成为一种发展趋势。因此学好C语言对于高校非计算机专业学生来说是具有现实意义的。该文针对目前高校非计算机专业《C语言程序设计》课程中常出现的一些问题进行了分析探讨,并从找准教学切入点、激发学生学习兴趣、培养学生学习能力几方面给出了解决这些问题的对策。
  关键词: 高校非计算机专业 《C语言程序设计》 问题 解决方法
  
  1.课程教学现状
  由于《C语言程序设计》这门课进入我国高校非计算机专业课堂的时间并不很长,而且在学校里往往又是年轻教师授课,教学经验不够丰富,《C语言程序设计》本身涉及的知识面又较广,因此在实际教学过程中往往教学效果不是很理想。我也在教学过程和课后调查中发现许多学生存在这样一种情况:理论课能听懂,到了实践课却不能理解程序含义;当时学习当时有效果,过后很快遗忘;课程学习完成后,依然只会输入课本例程调试运行,设计性、创造性能力不足等现象。我对以上几个问题加以分析,并提出自己的几点看法。
  2.问题分析
  2.1关于理论清楚、实践茫然的问题。
  由于学习《C语言程序设计》课程的学生都是刚学习完《大学计算机基础》的大一学生,经过一个学期的学习,他们的计算机能力只是刚刚进入了解计算机的最基础层次,一般学生还不能形成一个完整计算机系统的逻辑模型,对于学习《C语言程序设计》课程的许多概念,例如:内存地址、I/O接口、数据的存储和编码等还没有足够的认识。然而《C语言程序设计》又是一门既包含了高级程序设计语言特点,又包含了低级程序设计语言特点的课程,也就是说《C语言程序设计》课程的理论知识渗透到计算机学科知识体系的多个层次和方面,像计算机体系结构,数据结构,等等。但是学生恰恰缺乏这方面的知识,这就要求教师必须从不同层次、不同角度来讲授《C语言程序设计》这门课程,并且在每个知识点都找到合适的切入点。正是由于《C语言程序设计》这门课程涉及的知识面广,因此对于学生来说,要想学好《C语言程序设计》这门课程,就需要有经验丰富的教师的正确引导,否则就只能是在课堂上什么程序都能看懂,一到编译环境中,就手足无措。再加上学生计算机英语水平有限,不能很好地看懂编译错误提示信息,缺乏修改错误的经验和技巧,这就造成了理论与实践的脱节,严重影响了教学效果。
  2.2关于教学效果不持久的问题。
  C语言作为一种计算机语言,具有运算符丰富、数据结构丰富、语法限制不太严格、程序设计自由度大等优点。正是这些优点使得C语言语言简洁、紧凑,使用方便、灵活。但又是由于这些优点,造成C语言需要记忆的内容较多,学习起来不容易上手。学生在开始学习C语言的过程中,也不能一下子体会到C语言的这些优点,反而很容易会认为C语言很复杂,很难学,一旦学生先入为主地有了这个看法,就会产生畏惧心理,造成学生学习C语言不认真,前学后忘的情况。所以教师在教授《C语言程序设计》这门课程的时候,要注意如何去激发学生的学习兴趣。大一的学生求知欲是很强的,虽然在初学《C语言程序设计》这门课程的时候不一定就对此门课程感兴趣,但这只是直接兴趣。在教师的引导下,学生能感觉到这门课程的重要性,可能对自己今后的学习或者工作产生帮助,他也会产生强烈的学习兴趣,不过这时候的兴趣已经成为了一种对学习结果看重的间接兴趣。不管是直接兴趣还是间接兴趣,都可以激发学生对C语言的求知欲,使得学习起来事半功倍。
  2.3学生创新能力不足的问题。
  我在实际教学中发现,很多学生在学习了一段时间的C语言后,拿起书本,也能正确地输入程序,调试运行。但是如果让他脱离课本,随便出一个课本以外的题目,他就感觉到无从下手,好像什么都不会了。这就说明我们在课堂教授的知识是死的,学生学习之后只是知其然,而不知其所以然,一遇到新问题,或者现实问题,往往缺乏描述问题、分析问题、解决问题的能力。尽管经过很长时间的学习,学生还是没有把课本上的知识变成自己的知识,还不能活学活用。教师也往往不能注意到这一点,虽然很用心地准备,很用心地讲授,学生也很用心地学习,但就是不能取得良好的教学效果。这里所说的创新能力并不是说让学生学习完这门课程之后,什么C程序都能编写,而是要注重培养学生的分析问题、解决问题的能力。这是因为《C语言程序设计》这门课程的目标定位就是让学生通过学习这门课程之后能懂得结构化程序的设计思想;能让学生掌握计算机软硬件的基本知识;能培养学生使用计算机分析问题、解决问题的方法和意识,为学生将来从事相关专业领域的计算机应用和开发设计打下一个坚实的基础。这几点一定要在我们的教学过程中体现出来,也要让学生明白学完这门课程就想编写出高水品的程序是不现实的,但是通过学习《C语言程序设计》应该掌握一种规范的解决问题的方法,在遇到新问题时,就要有意识地运用学到的知识去分析解决。
  3.解决方法
  3.1找准教学切入点,加强实践环节。
  教师在课堂上讲授课程的时候为了取得良好教学效果,往往总是不厌其烦地反复讲解程序,期望学生能够听懂、学会。实际上这个时候学生往往真正听明白的只是教师用自己的语言翻译过的程序。例如整型变量与字符型变量通用的问题,学生知道是可以通用的,却往往不知道为什么,到了实践环节使用时,不是忘记了,就是出错。所以教师在讲授这个问题的时候就必须从根本出发,复习、补充像存储单位、ASCII码、整数的编码等基础知识,要让学生站在计算机的角度上看待整型变量和字符型变量。这其实就是一个教学切入点的问题。另外教师在学生的实践环节中,也要注意帮助学生自己解决调试程序中出现的问题,而不是学生程序有了问题,简单地一改正,只要运行正确就行,而是应该仔细地向学生说明为什么会出错,出错的情况下,编译环境会怎么反映,以及怎么根据错误提示来解决这个问题。对于具有普遍性的问题,教师还应集中讲解,这样才能达到比较良好的教学效果。
  3.2注意教学方式,激发学生学习兴趣。
  学生学习任何课程时都存在一个学习兴趣的问题,如果是对一门课程的学习过程本身感兴趣,这是一种直接兴趣;如果是对学习的结果感兴趣,对这门课程的重要性而感兴趣就是间接兴趣。对于《C语言程序设计》这样一门普遍让学生感到枯燥、难懂的课程,想让学生对之感兴趣,是有一定困难的。但是针对学生求知欲强这一客观特点,教师可以采用一些方法来调动学生的学习积极性。教师在上课的时候,应该强调这门课程的重要性,要举例说明C语言在实际工程中的应用,还应该给学生演示一些C语言编写的图形应用程序,像用C语言解决五子棋、汉诺塔等趣味问题。特别是要根据学习进度,给出一些超前一点的程序题目让学生课后完成。这样让学生感到学有所用,开始是被动地学习,是为了完成学习任务的学习,最后在不断的练习、应用中转变成自发地、主动地学习,让对C语言不感兴趣的学生渐渐地产生兴趣,让间接兴趣变为直接兴趣。
  3.3注意引导学生,培养学生主动分析问题、解决问题能力。
  现在的高中还是以应试教育为主,学生毕业时基本没有程序语言设计基础,加之这种应试教育使得许多学生习惯于那种死记硬背的学习方法,对于程序语言设计这种特别需要独立分析问题、解决问题的能力的课程极不适应 。这就要求教师在授课的过程中循序渐进,慢慢培养学生的这种能力,注意在课堂上多问为什么,让学生跟随教师的引导,主动去思考,渐渐地培养出学生拿到一个问题就能独立分析,独立解决的能力。例如在for语句的学习中,学生对两层循环及多层循环特别难以弄清,主要因为在两层循环及多层循环中,变量的变化过程比较复杂,学生缺乏一定的逻辑思维能力去推算整个变量变化的过程。这个时候我们就要在黑板上一步一步地推出变量是怎么变化的,外层变量是怎么控制内层变量的。虽然这样可能花费的时间稍多,但是为了培养学生分析问题的能力,绝对值得。
  4.结语
  学好C语言是需要一个较漫长的过程的,仅凭上课的时间远远不够。只要我们在教学过程中找好切入点,深入浅出,抓住学生的学习兴趣,培养出学生的自学能力,让学生感觉到学习C语言的乐趣,感觉到C语言的实用性,学生就能利用课余时间,自发地、有目的地学习。这样,通过教师的讲授与学生的自学相结合,就能达到C语言课的教学目标,取得一个良好的教学效果。
  
  参考文献:
  [1]谭浩强.C语言程序设计(第三版)[M].北京:清华大学出版社,2005.
  [2]刘娜娜.非计算机专业计算机教学改革的研究[J].黑龙江高教研究,2006,7.
  [3]黄锋华,张丽.C程序设计课程案例式教学的探索与实践[J].农业网络信息,2007,3.


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