浅谈C语言课程教学

来源 :成功•教育 | 被引量 : 0次 | 上传用户:pboss
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  [摘要]C语言作为一门高级程序设计语言,其重点是培养学生掌握程序设计的思想和方法,难点是作为程序设计的入门课程,应当如何引导学生突破传统的思维方式,学会分析问题和解决问题,培养程序设计的新思想。这里笔者谈谈在从事C语言教学过程中的一些经验和想法。
  [关键词]算法 C程序设计 教学方法
  
  一、 引言
  
  程序设计语言类课程的指导思想是:使学生通过学习既掌握高级编程语言的知识、编程技术和基本算法,又掌握程序设计的思想和方法,更具备利用计算机求解实际问题的能力,能灵活运用高级语言进行程序设计。在C程序设计教学中,如何将教学的重点放在思路、算法、编程构思和程序实现上,提高学生的编程能力是我们教师值得考虑解决的问题。
  
  二、 注重教学的方式方法
  
  笔者认为教学方法和教学模式并不是一成不变的,现实中由于教学目的、教学内容及学生情况等因素的千差万别,没有哪一种教学模式或方法是普遍适用的,惟一的原则就是根据实际情况采用合适的教学模式和教学方法。比如大学新生入学就学习C语言,在接受新知识和理解新概念的能力方面有一定的差异,那么我们就应该适当降低教学难度,让他们先熟练掌握基本的知识点后,再深入。相对于计算机的一些纯理论课和实操课来说,《C语言程序设计》注重由设计算法到书写程序并进行调试的整个过程,显得抽象、复杂,这也是大多数学生抱怨程序设计太难、不好学的主要原因。因此,我就将第一次课定为上机实验课,给出几个简单并有输出结果的程序源代码,让每个学生编辑并调试。当他们”编”的程序成功地输出结果的时候,学生对程序设计的兴趣自然就产生了。在此基础上,再进行一些简单的修改,让程序得到不同的结果,并解释原因,然后提出新的问题,让学生思考如何修改程序以解决新的问题。整个教学过程中应该把解题思路、方法和步骤当作授课的重点,让学生明白如何分析并解决实际问题,逐渐培养学生进行程序设计的正确思维模式。
  1.在教学过程中用启发、引导的方法;设置一些难度不一的问题,引导学生思考,活跃他们的思维。问题是最好的老师,是学生学习的引导者,没有问题便没有深入。在教学过程中,引导学生在问题解决中学习,要留给学生时间思考、讨论、解决问题,从而让学生对这些知识点记忆深刻并更深入地展开学习。
  例如,在讲数组的概念时,老师可以先设置问题:编程计算10个人的英语平均成绩。根据以前所学,学生会想到:需要说明10个类型相同的变量用于存放这10个人的英语成绩。再进一步要求:计算50个人的英语平均成绩。这时候如再说明50个变量,则会将问题麻烦化,学生此刻需要讨论该如何合理说明变量。再深入一步:求100个人的英语平均成绩。此时,当教师引出数组的概念、分析数组的性质时,学生不仅能够很容易记住数组的性质,还能够知道在什么情况下使用数组类型,事半功倍。
  2.教给学生正确的学习方法,引导学生掌握程序设计的思想;经验丰富的软件设计者都知道程序设计的关键在于找到解决问题的方法,即算法。结构化程序设计的思想,是当拿到一个任务时,首先应将这个问题自顶向下逐步细化,逐层向下分解,直到满足每一个要求。实现时,可以先用流程图、N-S图或PAD图描述出算法,再将之转化成程序。C语言作为大学第一门程序设计课程、面向毫无程序设计经验的一年级新生开设,问题是:他们根本不知道什么是软件工程,也不能立刻掌握问题的全貌,很难读懂流程图、N-S图描述的算法,更不用说问题的转化。伪代码是接近于自然语言描述算法的工具,英文字符少,简单易懂,便于掌握和表达,也易于转换成高级语言。在讲课时,采用自顶向下的方法讲解每一道程序设计题,可采用伪代码语言描述算法,将问题描述成几个子问题或子功能,再将子问题进一步细化,直到所有子问题或子功能都能用语句描述为止。
  例:编写程序计算1~100的累加和。
  这个程序实现比较容易,可以作为循环结构讲解的入门题目。老师在给出程序之前可以先和学生讨论:如果要从数1加到数100,是不是要定义100个变量来表示1至100?这样实现可以吗?有没有简便的算法?答案是肯定的,从而给学生引出循环的概念。然后先进行以下分析:
  ①要解决问题,需要定义几个变量,变量的类型如何确定。
  ②变量需要定义初始值吗?
  ③求累加和。
  ④输出结果。
  进一步分析:
  ①经过分析可以定义两个变量,分别设变量i用于累计加法运算的次数,做计数器使用,同时也可作为存放加数的变量,变量sum用来存放连续加法运算的累加值;根据题目要求其类型应为整型(int)。
  ②因为累加从1开始,所以变量i被赋初值1;存放累加和的变量sum要先将其内容清空,即sum=0。
  ③使用循环结构求出累加和。
  ④输出sum的值。
  将③再进一步深入:
  ◆ 让学生分析循环继续的条件是什么(i<=100);当满足循环条件时如何实现求和运算(sum=sum+i;);变量i作为每次累加的加数,其内容一定要是变化的,从1变化至100(i++;),同时此语句可使循环结束,从而避免死循环。
  这种方法可以引导学生了解程序设计的思路和方法,有助于他们把握问题全局,分阶段逐步深入细化。
  3.有选择地运用多媒体教学;直观、形象的多媒体教学可以使学生在有限时间内迅速理解、掌握、获取更多知识和信息,教学过程中,应有选择地使用多媒体教学,如使用幻灯片、视频、动画等,可以将C语言中的语法规则和逻辑推理的内容直观、形象地讲授给学生,加深其对问题的理解,实现将抽象问题形象化、枯燥问题生动化的效果。对于多媒体教学不易实施的程序设计方法的讲解,我们采用传统的教学方法配合适当的板书,教会学生如何思考、推理,如何用语句实现算法,培养了学生的抽象思维、逻辑推理能力。
  4.算法设计是重点,注重典型算法的教学
  算法是程序设计课程的教学重点,也是难点。所谓算法就是为解决一个问题而采取的方法和步骤。可以说,程序设计的灵魂是算法,而语言只是表示算法的一种工具而已。没有正确的算法,计算机将解决不了任何问题。因此,在开始进行语言教学之前,应先简单介绍如何分析问题、设计算法并将算法正确表示出来,以保证更好地进行后面的教学。
  对于C语言所涉及到的算法,应进行部分精讲,同时还应注意这些算法之间的联系,也为后续课程打基础。这些典型算法有选择法、筛选法、起泡法、折半查找法等算法。在讲解算法时,应该与课程的相关内容进行结合,如选择法可以结合选择程序设计结构;筛选法、起泡法等算法可以结合数组、函数部分进行教学。这样学生在熟练掌握这些算法的同时,也学习并掌握了相关课程内容,并逐渐养成了在程序设计时进行触类旁通思考的思维模式。
  
  三、积极培养学生综合运用知识及自己动手的能力
  
  程序设计课程的实践性很强,学生只听不练根本达不到学习该课程的目的。曾有学生问:用程序实现比较两个数的大小有什么用?这些说明教材的例题注重理论实现,离实际应用较远,学生学习积极性不高,兴趣不大,甚至抄作业应付老师。只有让学生动手编写他们感兴趣的程序,学生才会有成就感,才会对课程产生兴趣,学起来才会比较从容。如何让学生综合应用所学知识解决实际问题,激发其学习兴趣,提高其学习的主动性?我们可以加入课程设计的环节。课程设计是对一学期所学知识的总结和巩固,其选题既要与实际生活或工作相关,满足实际需求,又能够让学生感兴趣、能够运用所学知识解决。设计的题目也可以具有一定的规模,可将其分成几个子题目,让学生分组完成,组内分工合作,既培养了学生的团队协作精神,又锻炼学生的动手能力。
  
  四、增加交流机会,经常总结,及时解决教学过程中的问题
  
  在教学过程中,老师应尽可能地增加与学生交流、沟通的机会,让学生将学习中遇到的问题及时提出来,以了解学生对课程内容的掌握情况。有时教学中也会遇到解决不了的问题,就会利用课后查找相关资料,与有经验的教师讨论,从而解答学生的问题。从与学生交流的过程中,笔者发现函数部分是C语言的一个难点,尤其是如何调用函数、参数如何进行传递等知识点,很多学生在学习这部分内容时掉了队,因此我建议教学时,应在详细解释函数定义和函数声明的含义之后,重点讲解函数调用。
  以上是笔者在教学中的一些经验体会,实际在教学过程中值得探讨的问题还有很多,比如教学中应适当给予学生鼓励、本科阶段的学生应该如何培养其自学能力等。在C语言教学中,应把逻辑和编程解题思路放在首位,教会学生如何分析问题、解决问题是关键。教学是一门艺术,也是一门学问,它是教师的创造性、能动性、表演才能和科学水平的综合体现,如何将教学对象的内在积极性与潜能充分发挥出来,从而达到最佳的教学效果,还需要进行一个长期的探索、实践并总结。
  
  参考文献
  [1]谭浩强.C程序设计(第二版)[M].北京:清华大学出版社,2004
  [2]郑立华,张莉.在C程序设计教学中注重培养学生的综合编程能力[J].计算机教育,2005
  [3]吴文虎.程序设计基础(第二版)[M].北京:清华大学出版社,2004.9
其他文献
[摘要]时代的召唤,人类文明的进步, “NBA”季前赛义无反顾地介入了中国,这是历史发展的必然产物,我们应该审视“NBA”;反思中国体育文化,五千年文明历史的长河酿造了中国文化独特魅力——礼文化;炎黄子孙从兵马佣到都江堰再到万里长城,都显示了中华民族的魄力、勇气、智慧和毅力;从兴盛的唐王朝到鸦片战争;从封建禁锢到1840年西方坚船利炮打开国门后,中国人从沉睡中微微地睁开眼,不家思索被选择的接受了各
期刊
[摘 要]教育部在2002年宣布对各高等院校每五年进行一次本科教学工作水平评估(简称本科教学评估);国内有的高校为了建立科学规范的内部管理制度,先后建立了ISO9000族质量管理体系(简称质量管理体系)。本文从“否定之否定规律”在教学实践中的运用这个角度,分析了ISO9000质量管理标准在教学过程中的作用,呼唤教学过程的规范化和系统化。  [关键词]ISO9000质量管理标准 否定之否定 教学实践
期刊
[摘 要]设置辅导员,使其助理参与学生工作,既可以培养和教育一批优秀的学生干部,以优秀典型影响带动普通学生,又可缓解辅导员工作压力,减轻学校负担,以创新的工作思路指导鲜活的学生工作实际,坚持正面教育与典型示范结合,以利和谐校园的建设。  [关键词]辅导员助理 学生工作 思路创新    近年来,我校学生人数不断增加,校本部现有全日制普通本专科学生近8000人,而目前学校专兼职辅导员不足20人,辅导员
期刊
[摘要]在网络条件下要想保持大学生思想政治工作实效性,就必须遵循学生思想的发展规律,充分考虑学生的个性化、信息化、虚拟群体化等特点,教育方式实现由说教式向互动式转变,教育过程注意网上与网下的衔接,教育目标由注重普遍化向注重个性化转变;要正确认识和利用网络的引导教育,加强对网络的管理,建立网络信息评价机制,强化网下思想政治教育活动的实践功能。  [关键词]网络 大学生 思想政治工作 实效性    互
期刊
2007年的高等学校英语应用能力B级考试已结束,笔者有幸参加了2006-2007年的历次B级考试的监考工作,摘录了学生试卷中出现的典型错误。本文从错误入手,分析了学生在英译汉中所存在的普遍问题,从而揭示了英汉翻译教学中的缺陷并提出了几点改进意见。    一、错误原因    1.理解方面  在历届英汉翻译答卷中,学生因理解错误或理解不透彻而丢分的现象最为严重。首先表现在对字词的理解上。例如在翻译“N
期刊
[摘 要]中国教育哲学自80年代重建以来,如何从理论的高度,以广阔的视野来构建它的理论体系,始终是摆在所有浸染此道学人面前的一道难题。在沿革与突破、迷茫与希望的沉浮中,教育哲学学科体系也呈现出阶梯式的演变范式,它的独创性、包容性、规范性和指导性也更加地突显出这门学科的“智慧性”特点。  [关键词]教育哲学 学科体系 反思性体系    教育哲学学科体系的问题,关系到学科自身发展的关键问题,作为一门基
期刊
目前,在高校学生班级中,生源的分布区域日趋广泛,由于地域、家庭经济条件、个人思想状况的不同,使部分学生在学习、生活、工作中产生了一定的困惑。经济困难生自卑、思想障碍生恍惚、疾病缠身生自弃、上网成瘾生痴迷、成绩较差生没信心等。这些学生的表现与困惑,形成了班级特殊群体。拿班级200多人来说,统计资料显示,特殊群体人员占班级人数的43%,数量之大,人员之多,给班级管理及思想稳定工作带来了一定困难。作为一
期刊
[摘要]针对当前图书馆界有关图书馆核心价值的讨论,认为图书馆只有充分实现读者权利,确保读者公平、公正地使用图书馆,才能体现图书馆的核心价值,发挥图书馆服务于社会的功能。  [关键词]图书馆 核心价值 读者权利    图书馆的核心价值,是图书馆界对于自己的责任或使命的一种系统说明。近年来国际图书馆界一项重要活动,就是研究与确立图书馆核心价值。  1998年,ACRL主席论坛上,一项针对大学图书馆员做
期刊
当今的世界是一个经济迅速发展的时代,也是一个信息暴炸时代,轻轻敲击一下键盘就会有五花八门的信息从屏幕上奔涌而出,纷繁芜杂的信息给还未成熟的中学生带来了极大的影响,易对中学生造成“信息污染”,互联网也成为部分中学生荒废学业,逃避现实,畸形生活,甚至走上违法犯罪道路的险滩暗流,在很大的程度上为学校正常教育带来干扰,为教师凭添许多担忧。中学生为何会迷恋网络?网络对中学生的有哪些影响?我们该如何防范和引导
期刊
随着科学技术的飞速发展和人们对水利工程质量要求的不断提高,水利工程质量的内涵和外延都有了不同程度的延伸和拓展。水利工程如同其他任何具有使用功能的产品一样,形体设计、装潢的完美,给人只能是感官上的享受。人们购买、消费的最终目的是使用,使用功能的质量,不仅有设计原因造成的,更多的是施工质量方面的原因造成的。水利工程施工企业通过消灭水利工程施工过程中的质量“通病”,提高水利工程的施工质量,多创优质工程,
期刊