关于C语言程序设计教学的一点思考

来源 :中国科技财富 | 被引量 : 0次 | 上传用户:ghchao0605
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要: C语言程序设计课程在高校的相关专业往往是编程的入门课程,从“门外汉”变成“门内汉”的过程不仅需要学习基础的概念、编程知识、编程方法,还需要能够把自己的智慧转换成计算机能够识别的代码,这个转换过程中思维方式也要发生一些变化,学习C语言、实现算法的过程的教学也需要对学生进行思维方式的引导和培养。
  
  C语言程序设计是计算机及信息管理专业的一门专业基础课,一般开在大一年级,课程教学过程中往往出现学生“听得懂、看得懂,编不出”的现象,也就是学生听得懂老师讲课,也看得懂书上或一些资料上的程序,但是到了让他们自己编程时,却编不出来的现象。针对这种现象,结合作者本人的教学经验,提出一些关于教学的思考。
  我们首先分析这种现象产生的原因,因为这是一个普遍现象,就要先分析学生的接受过程和学习能力了。
  C语言程序设计课程往往开在大一年级,绝大多数学生没有任何关于编程的基础,甚至于一些关于计算机的基础知识也似是而非,停留在对计算机的强大功能等表面的东西感兴趣,对于内部的原因不了解的感性认识上。刚开始他们很多人认为学编程类似于学习应用软件,较快的时间的学习就能够成为编程“高手”。而C语言程序设计作为入门的第一门课程,必须首次讲授关于编程的一些基本概念,比如常量、变量、数据类型、运算符、表达式等。这些内容相对显得枯燥一些,一部分性急的学生需要耐下心来继续学习,另外,由于这些内容是编程的基础,又要求学生深入掌握,对学生的心理就需要有所把握了。
  随着学习内容的推进,有些学生慢慢的跟不上了,能听得懂,自己编程则不知从何入手,究其原因,一方面是对算法没有掌握,一方面是对这门语言本身不太了解。算法是贯穿在整个编程过程中的,有了算法,也就有了编程的思路,学生对算法不理解或者掌握不够,直接影响编程,除此之外,对于把现成的算法变成C语言程序,许多学生虽然能编的出来,但是对解决问题的思路和方法不甚理解,如果没有给出现成的算法,就又不知如何是好了。这就要求教师在教学过程中,把算法讲透,用各种方法使学生理解算法,在这个过程中,还有一个关键的问题,就是思维的模式。
  计算机编程的思维不仅要求严谨,还要求能够符合编译器的能力。严谨的思维才能编出漏洞少的程序,符合编译器的能力则要求学生理解计算机能做什么,其在操作过程中是怎么做的,编译器能编译什么样的语句。当然具体操作过程是怎么做的并不需要知道具体二进制代码或命令,那不是C语言的研究范畴,这里需要学生理解的是计算机能够识别什么样的语句,虽然对常量、变量、运算符、表达式等学生已经有所了解和理解,但要把问题都分解到计算机能处理的语句的地步学生还不太适应,对于这种思维的培养和训练,作者认为是学习C语言的关键。算法本身没有这么细致,但是却是这种思维的精简的表达,对于要解决的问题,也是在计算机能识别什么能处理什么的基础上表达出解决的方法或步骤,为什么要细到这种程度,很多学生不清除,怎么细化到这种程度,很多学生一头雾水,由于对这种思维的不适应,很多学生自己考虑算法时,就表达不出来算法,当然编程序也跟着受影响。这种思维模式转变过来了,算法也就容易表达出来,程序也就可以转换过来了。这种思维模式的培养却是从学这门课开始,贯穿在整个C语言教学过程中的。
  学习C语言从引入常量、变量、运算符、表达式等基本概念的时候,思维已经进入编程的准备阶段,这个时候不仅要使学生理解这些概念本身是怎么回事,还需要让学生理解这些就是编程的素材,C语言解决所有的问题最终都要细化到语句,而语句就是这些内容组成的,怎么样能把这些常量、变量、运算符、表达式灵活的组合成解决问题的语句,这是编程的关键。就象我们如何把汉语的一个个单个的词汇组合成表达特定含义的语句一样 ,C语言的常量、变量、运算符、表达式相当于词汇,把它们组合成表达特别含义、执行特定内容的语句需要思维的处理和提升的过程,表达的最具体的就是程序,稍微粗一点就是算法了。而我们在结构化编程中,尤其是初学者,往往只能是从总体到具体、逐步细化、逐步分解的进行,有了计算机能够执行什么的清楚认识,写出算法往往就比较贴近实际。
  一个人如果知道很多的汉语词汇,但是不能把词汇连接成通顺的句子,那么就不能说这个人表达能力好。学习编程的过程中,如果知道具体的基本的概念和知识,而不能灵活的用来解决问题,就不能认为编程能力强了。因为计算机只是执行语句,不去主动解决什么问题,那我们编写程序,解决问题还需要思维的整理、方式、方法,当然这些方式、方法要能够在计算机上实现,就是编写算法的过程,教学过程也可以使学生理解这些方式,渐渐熟悉这种思维,熟悉编程语言。
  我们学习编程语言的时候很难象我们学习汉语一样,时时都有一个环境,那么只在课堂的时间去接触C语言,熟悉的进程必然较慢。课堂上的作用在于接触、理解,而要掌握则需要自己去试着使用的过程。也就是教师们常说的“C语言的编程能力不是看出来的 ,不是听出来的,而是自己动手练出来的”。教师在教学过程中,根据学生的接受能力、学习能力,化繁为简,学生可能能够接受的更快一些。作者个人的经验,打比方是个非常有效的办法,能够帮助学生对基本概念的理解,如对变量的理解,两个数交换的方法的理解、指针的理解等等。要让学生自己动手去编程序,除了课后布置的练习以外,课堂上的练习也是非常必要的。因为教师很难控制课后学生到底用了多长时间去编程、去思考编程,课堂上的练习又要占用大量时间,这和紧张的课时有些冲突,作者认为比较折中的办法是编程时教师多用板书,这样在板书过程中教师带动学生思维,学生能够跟着思考,部分代码教师可以特意空出来,告知学生这部分代码要做什么事,然后可以由学生补充完整。
  
其他文献
计算机网络利用是计算机网络对抗中信息获取的主要手段,移动代理的引入使得计算机网络利用系统具有更大的自主性。文章提出了一种基于移动Agent的利用体框架,其具备信息和知识
目的探析PDCA循环对降低PICC留置期并发症的效果。方法抽选2016年9月-2017年9月至我院治疗的90例PICC置管患者,按照挂号顺序将其分为实验组与对照组,各45例。对照组给予一般
诚信危机已经成为严重的社会问题,并非我国独有而是一个国际的通弊!会计人员失去诚信会给我国乃至全世界的经济健康发展带来不可估计的后果。谁应该对会计信息的失真负责?谁应
摘要:无论是信息管理系统,还是多媒体应用系统,都需要强大的数据库来支持,访问数据库则是应用程序必须具备的基本功能之一。Visual Basic 6.0提供了多种访问数据库的方法,包括数据控件、DAO(数据访问对象)、RDO(远程数据对象)、VBSQL以及ADO(ActiveX Data Objects)等。本文分析比较了两类VB对数据库编程的常用方法,总结了各类方法在VB中对数据库编程的使用原则。
本文在对块区配运估值算法进行简要探讨的基础上,重点介绍了两种最新的运动估值算法-预测搜索算法(PSA)和灰色搜索算法(GPS)。这两种算法利用了运动矢量的时间、空间相关性,可以明显的减小
本文分析了钢筋砼结构裂缝产生的原因,从设计和施工两个方面提出了预防措施。
本文介绍了车牌识别软件的实现过程,重点介绍了在车牌图像中分割车牌并进行区域处理的技术及其改进方法,如对传统模板卷积法的改进、颜色信息在车牌分割中的使用以及局部灰度
文章运用有限链环理论,研究了环R=Fpm+uFpm上的任意长度的负循环码,通过环R上线性码的剩余码及挠码给出了环R上长度为1的负循环码及其对偶码的结构,并分别确定了p=2和p>2时自对偶负
开发新型优质高强混凝土,满足结构设计要求,减轻结构自重、简化施工工艺,降低施工成本,改变传统的低强度等,已成为建筑施工科学研究发展方向之一。
泥石流是山区常见的一种自然灾害。泥石流中大量泥沙石块混合成一股赫稠的泥浆,像脱堰的野马一般沿陡坡奔腾而下,暴发突然,来势凶猛,破坏力大。其中泥沙石块的体积含量一般大干10%,最高达80%,流速一般为5-7米/秒,最高可达70-80米/秒,在数分钟到数十分钟内可将数十万立方米至数千万立方米土石搬出沟口,摧毁或掩埋沿途房屋、道路、农田及工程设施,造成重大地质灾害。    一、泥石流的分类    泥石流