C语言程序设计的模块化教学研究

来源 :亚太教育 | 被引量 : 0次 | 上传用户:maomao11111
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:C语言课程包括语法与算法两方面的内容,二者密切相关,对于写好一个C程序,缺一不可。鉴于以往教学中存在的问题——轻算法/重语法,或轻语法/重算法,都无法很好的培养学生的程序设计能力。因此,我们将课程教学划分为六个模块,通过六个模块的训练培养学生六个方面的能力:灵活运用C语言语法的能力、读程序能力、写程序能力、程序调试能力、程序优化能力、规范编程能力,目的在于使学生不仅会编程序,还会编好程序。
  关键词:C语言;模块化;程序设计
  一、引言
  20世纪90年代以来,C语言迅速在全世界普及推广,至今依然是最常用、最受欢迎的编程语言之一。同时“C语言程序设计”是很多高等学校的一门基本的计算机课程。该课程在计算机教育和计算机应用中发挥着重要的作用。
  该课程最初的教学模式为:注重语句、语法细节的讲解,对如何用计算机解决问题的方法和思路讲得不够,课程的训练着重于C语言语法和简单程序的阅读,而对学生编程能力的训练不够。结果导致学完该门课程,绝大多数学生不会编程,这样就给后续课程留下了缺憾。针对这种情况,我们对该课程的教学进行了改革,具体为:课堂上注重编程思路的分析和讲解,对C语言本身只讲大语法,例如if语句的功能、循环语句的功能等,而更细节的语法由学生在编程实践中自己学习。几年的教学实践表明,我们的改革在提高学生的编程能力方面取得了一定的效果,但另一方面,我们发现由于在课程教学中侧重于编程思路的讲解及训练,C语法本身的讲解及练习偏少,而二本院校的学生其自学能力及学习的自觉性较差,导致很多同学在编程时思路正确,但由于对语法的理解不够深入,在编写程序时不能正确灵活地选用语句,程序出错时也不知如何修改,阅读程序的能力也很差。
  “C语言程序设计”课程涉及到两个内容——C语言和程序设计。C语言是程序设计的工具,主要涉及语法和语义两个方面;而程序设计需要掌握对问题求解过程的理解与描述方法。两个概念密切相关但又互不相同,如果只会用工具,无法编写程序;如果只会程序设计的方法,不会使用或用不好工具,也无法编写程序。因此,我们对以往的教学模式进行了调整。
  二、模块化的教学设计
  (一)本课程的教学目标
  “C语言程序设计”课程的核心教学目标就是教会学生使用C语言进行设计程序,使学生掌握程序设计的基本思想和方法,具有灵活应用这些思想和方法编写出C程序来解决实际问题的能力。同时,还要培养学生较强的程序调试能力和程序阅读能力,让学生学习基本的编程规范,养成良好的编程风格,了解程序优化的方法和原则,为将来编写高效的程序做准备。
  (二)实施模块化教学,全方位、多角度进行编程训练
  我们将课程教学划分为C语言语法理论练习、程序阅读、程序跟踪调试、程序优化、编程规范、程序设计六个模块,通过六个模块的训练培养学生六个方面的能力:灵活运用C语言语法的能力、读程序能力、写程序能力、程序调试能力、程序优化能力、规范编程能力。
  1.C语言语法理论练习
  在课程的学习中,C语言作为编程的工具非常重要。掌握基本的语法规则是编程的基础,如果不掌握必要的语法规则,连最简单的程序也编不出来,或者编出来的程序错误百出,无法运行。而C语言的语法知识点多、覆盖面广,因此我们创建了C语言语法理论练习题库,包括单项选择题、多项选择题、判断题几种题型,在每次上机课前给学生布置与本周上机内容相关的语法练习题作为上机预习内容,使学生先熟悉即将用到的语法,并且使用技术手段促使学生必须在上机课前完成预习内容,以保证预习效果,为上机课做好准备。
  2.程序阅读
  一切学习都从模仿开始,编程也一样。编程就像写文章,如果想成为一名卓越的作家,在能写出任何拿得出手的东西之前,需要品读其他伟大作家的文章,吸收不同的风格,看看前辈已尝试过的东西,從中吸取精华,自己的知识才会慢慢增长,自己的作品最终才会透露出些许成熟。编写代码和写作一样,对于程序员来说,阅读优秀的代码就如同作家阅读优秀书籍一样重要。
  对于初学C语言的学生,阅读程序就从一本优秀的教材开始,要求学生将教材上的源程序代码一个一个的输入到电脑中,编译运行,并且用纸和笔记录下程序的运行过程,对每一个程序都认真剖析、认真阅读,在输入代码的过程中慢慢就可以品出程序的好坏了,例如,如果发现自己输入了很多重复代码,那就可以看出至少这个程序的结构就不好,需要改进。除了教材,还为学生推荐一些经典的C语言书籍,让学生阅读和剖析书上的源代码。我们还收集了经典的程序代码,为学生布置阅读程序的作业,作业的形式多样,有传统的读程序写结果的题型,也有自己设计的新题型,例如选程序注释、为程序添加注释等,选程序注释就是给出源代码,让学生为指定代码选择已给出的注释;为程序添加注释就是给出源代码,让学生为程序的指定行添加注释。
  3.程序跟踪调试
  在程序的开发过程中,程序调试的重要性并不亚于编写代码,因为一个设计得再好的程序,也难免会出现错误,这些错误需要通过调试来排除,通常程序的功能越复杂,调试过程的工作量也就越大。
  编写程序时可能产生的错误通常可以分为三大类:语法错误、运行时错误和逻辑错误。语法错误是程序代码违反了C语言的语法规则而产生的错误,语法错误在编译阶段就会被编译器检查出来。
  运行时错误只有在运行时才会体现出来,例如,在应用程序过程中打开了并不存在的文件,或者使用越界的指针等等。运行时错误可以在集成调试环境下通过设置断点、单步跟踪、添加监视等方法来查找和排除。
  逻辑错误是由于程序算法不完善而产生的运行结果不符合程序设计功能的问题,这一类错误比较难以检查,一般需要通过监视和检查程序中数据的变化情况,来检查错误发生的位置。
  大多数初学C语言的学生在面对错误提示时,无从下手,不知错在哪里,如何修改。为了培养学生调试程序的能力,对于不同的错误类型采用不同的方式教学。对于语法错误,我们将常见的错误编成一个文档提供给学生,供学生查阅,同时要求学生上机写程序时每个人都带一个小本子和一支笔,当程序出现语法错误时,记下英文错误提示信息和解决相应错误的方法,用于积累经验,避免以后编程时再犯同样的错误或犯了错误知道如何修改,此外,还布置程序改错题对学生进行相关训练。对于运行时错误和逻辑错误,我们为学生介绍了不同的调试方法,例如使用注释程序的方法缩小错误范围,使用增加printf函数查看程序运行中相关变量的变化,使用调试工具监视和检查数据变化情况来判断错误位置。此外,还设计了程序跟踪调试的题目训练学生,让学生在实际的操作中学习和领会调试工具及调试方法。以下是我们设计的有关调试练习的一个题目,该类题可以实现计算机自动评阅。   4.程序优化
  程序优化指的是针对同一问题的不同程序进行比较、调整或修改,将程序变为语句比较少、内存占用量比较小、运行速度比较快的程序。每一个学习程序设计的人都应该了解程序优化的一些常用方法和技巧。在课程中我们为学生介绍了一些程序优化的原则(主要是运行时间的优化),还设计了一些程序优化的题目让学生练习,在期末考试中也要考核,目的是使学生了解程序优化的概念,具有程序优化的意识。
  5.编程规范
  现在我们用的软件都是规模相当大的,非常熟悉的Windows操作系统,Office办公软件,各种网络管理软件等,都是需要一个庞大的研发团队才能完成,如果没有规范,那开发出来的将是一堆电子垃圾,没有任何用处;没有成功的规范,一定没有成功的软件;大型软件的成功并不是某个人的智力决定的,它是严格按照规范来生成的。
  有人说,印度十个人编程,会编出一样的东西,而中国十个人编程可能会有十种风格。因为我们忽略了一个重要问题,即“顾客”的感受,程序的编写是给别人看的,而不是只给我们自己看。因此,我们参考了业界比较推崇的一些编程规范,制定了适合C语言初学者使用的编程规范,目的在于培养学生良好的编程规范和意识、素质,促进所设计程序安全、健壮、可靠、可读与可维护。在课上我们强调和要求程序的可读性、规范性等编程规范,在平时的作业和期末考试中,一个程序的得分由程序结果和编程规范两部分决定,计算机会对程序结果和编程规范进行评阅,程序中如果有3个或以上的规范错误,该程序计为0分。
  6.程序设计
  程序设计课程就是要培养学生利用计算机分析和解决问题的能力,学习怎样用计算机的方式去思考和解决问题。程序设计不是听会的,也不是看会的,而是自己练会的。学生只有在编写大量程序之后,才能获得真知灼见,找到感觉,最后能运用自如。因此,我们给学生提供了大量的上机练习时间,上机时我们将机房设置为实验环境,学生在限定的时间、限定的机房内完成老师布置的程序,并由计算机自动评分,如果发现有错,还可以根据提示反复修改提交。在实验环境下,由于无法使用U盘等外部设备、无法使用外网,学生之间无法互相拷贝程序,每个学生都只能自己动手,不可能依赖其他同学,无法吃大锅饭。
  除了上机实验课的编程,为了让学生巩固所学,还布置了课后编程作业,也是限定时间提交,计算机自动评分。
  期末考核也采用全机考的方式,不考死记硬背的东西,考核学生程序设计、程序调试、查阅资料等能力,计算机自动评分,对就是对,错就是错。
  通过大量的编程练习,学生编写程序及调试程序的能力普遍有了较大提高。
  三、结语
  “C语言程序设计”是一门重要的课程,对于零编程基础的学生来说,同時又是一门困难的课程,为了上好这门课程,多年来我们一直致力于该课程的教学研究和改革,经过多年的努力,我们的教学取得了良好的效果。
  参考文献:
  [1]谭浩强.C程序设计(第四版)[M].清华大学出版社,2010.
  [2]李越辉.C语言程序的跟踪与调试[J].东西南北(大学生),2007,2:38-41.
  [3]马晓娟.浅析程序的优化[J].电子制作,2014,11:89-90.
  [4]郑秀雷.计算机教学过程中关于编程规范的一点思考[J].科教文汇,2011,30:53.
  [5]吴文虎,等.程序设计基础(第3版)[M].清华大学出版社,2010.
  (作者单位:成都信息工程大学)
其他文献
略论我国城市社区服务的功能转换郑蓉城市社区服务是近年来我国兴起的群众性服务活动。它是在市、市辖区政府的统一领导和各级民政部门的具体指导及协调下.以街道为主体,居委会
【正】 目前在美国,一种由计算机控制停放车辆的自动控制系统已问世,它可使车辆停放安全、迅速,且不会错乱。它是在欧洲广泛使用的机械电梯式停车场基础上加以改进,把自动齿
如果你是一个团队的管理者,当你发现在集团的另一团队承担的项目有可能失败时,你会袖手旁观吗?
摘 要:实验实训教学是医学教育教学工作的重要组成部分,是护理专业学生获取医学间接知识和直接知识的重要媒介和手段,是培养和提高护理专业学生业务素质的重要抓手和途径。实验实训课程质量的高低直接关系到学校培养人才的社会认可度和学校的发展潜力。在临床护理学课程的实验实训教学过程中,医学院校要更加注重实验实训基地建设,优化教学环节,革新教学方法,培养学生的创新意识和实践技能操作能力,保证护理人才的培养质量,
从美国到新加坡再到中国,从参加G7财长会议到赶赴IFM/WB年会再到频繁会晤中国政府高官,亨利·保尔森担任美国财政部长后的第一次东方之行在9月19至22日的三天时间内安排得格
齐齐哈尔清末藏书楼具有百年历史,是市级文物保护单位,在城市快速的发展中因地处老城区,改造开发的迫切性需要运用理性的态度去看待这项工作,对于历史文化街区的空间改造应本
该文将几个典型的有机实验进行了改进,以其微型化的优势及微波技术的应用,将Ritter反应(试剂毒性较大)、硼氢化钠还原(药品价格较高)以及Fries重排(反应时间较长)等实验付诸于基础教
《中央组织部、国务院国资委党委关于加强和改进中央企业党建工作的意见》下发后,各中央企业结合改革发展稳定实际,通过党委(党组)中心组专题学习、召开党委书记座谈会、党员领
【正】 王夫之(1619—1692)字而农,号姜斋,湖南衡阳人。他生当天崩地陷的明清易代之际,是一位坚贞不屈的爱国志士和杰出的启蒙思想家。晚年隐居石船山著述讲学,著书三百余卷,
孔子中庸的审美观孔子崇尚中庸。在《论语·雍也》中他提出:“中庸之为德也,其至矣乎!”把中庸当作仁德的最高体现。孔子讲中庸,是指观察事物,处理问题,要有一个适当的标准。《