当前C语言教学中存在的问题及对策

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:cuilu206
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:本文列举了在当前C语言教学中存在的课程教学目标不够明晰、知识布局不够合理、过于注重语法知识的系统性、程序讲解方法有待改进以及程序案例选题范围不够广泛等问题,并针对这些问题提出了相应的对策。
  关键词:教学目标;知识布局;真实情境法;推导构造
  中图分类号:G642 文献标识码:A
  文章编号:1009-3044(2019)33-0081-02
  C语言程序设计这门课程在我国高校中广泛开设已有二十多年,对于普及程序设计知识、推广计算思维的思想起到了不可或缺的作用。不过在C语言程序设计的教学过程中,还存在一些不足之处,尚有一定的改进空间,主要体现在以下几个方面。
  1课程教学目标不够明晰
  一门课程应该有明确的教学目标,不仅包括知识目标,更要包括能力目标。而在当前的大多数C语言教学大纲中,往往侧重于对知识目标的描述,对每一单元的知识点都有详尽的要求说明。而对于能力目标的要求,则比较笼统。往往只有针对课程整体的能力目标要求,而缺乏具体到每一单元的能力目标要求。
  由于强调课程的知识目标而不是能力目标,因而过于看重知识的系统性与完整性,追求大而全。比如,在一般编程中极少使用的指针访问二维数组、指向函数的指针和链表等内容,在教学大纲中往往也要求掌握。
  导致在教学中过于看重概念知识点的传授,而淡化了对能力培养的要求。其后果是只见树木、不见森林,尽管学习者对于各个知识点的掌握比较牢固,但是对于知识点之间的有机联系以及如何运用知识解决现实问题却缺乏深入的理解,影响了学习者编程能力的提高。
  针对上述问题,必须首先明确知识目标与能力目标之间的关系。在这两种目标中,能力目标才是居于支配地位的根本目标,知识目标只是对能力目标的补充,是为能力目标服务的,但是并不能取代能力目标。
  因此,在教学中应该以培养学习者综合运用知识解决现实问题的能力作为根本目标,而不再强调对知识点的牢固掌握以及知识覆盖的广度。
  2课程知识布局不够合理
  合理地选择知识点呈现的时机,合理地设计知识布局,对于帮助学习者更好地理解和掌握知识具有至关重要的作用。
  在C语言知识点布局方面存在的问题,主要体现在如下几个方面:
  (1)在多数C语言教材中,往往基于语法知识的系统性与连贯性,将C语言中常见的运算符与表达式集中到一章中讲解。对于一般的程序设计语言来说,这种布局方式或许没有什么不妥;但对于C语言来说并不适合。这是因为C语言的运算符与表达式异常丰富,用法特别灵活,本来就是C语言语法中的难点。
  由于这种布局方式无法体现语法知识与程序设计之间的联系,从而导致学习者对知识点在程序设计中的作用难以有深入的理解,进而会感觉枯燥乏味。
  解决这个问题的方法,就是根据知识点对编程能力目标的支撑作用,重新设计知识的布局。在顺序结构程序设计之前,只讲解加、减、乘、除、求余数和赋值这几种最基本的运算符;在选择结构程序设计部分,讲解关系、逻辑、条件和类型转换运算符;在循环结构程序设计部分,讲解自增、自减、复合赋值和逗号运算符。这种布局能够更好地体现知识点与程序设计之间的有机联系,同时由于是“即学即用”,因而更加有利于学习者对知识点的理解掌握。
  (2)字符串处理是C语言程序设计的重要功能。在多数C语言教材中,往往将有关字符串处理的内容分散到数组和指针两章中讲解。既容易造成重复,也难免存在不协调之处。例如,在字符数组部分将难以解释为什么不能给字符数组名赋值。这种布局方式的实质,是只注重知识的外在表现形式,而忽视了知识的内在功能性联系。
  解决上述问题的方法,是将字符数组和字符指针部分分别从数组和指针部分移出来,构成单独的一章,专门讲解字符串处理方面的内容。从而避免相似内容的重复,使得知识布局更加协调和自然顺畅。
  (3)指针是C语言中的一大特色功能,同时也是一大难点。在大多数C语言教材和教学大纲中,通常将有关指针的大部分内容集中到一章中讲解。表面上看起来似乎合理,实际上会造成“难点堆积”的效果,从而不利于学习者的理解掌握。
  针对上述问题所采取的对策,就是根据知识点在程序设计中的作用重新布局知识点。将有关指针的内容,分解为指针与数组、指针与字符串、指针与函数等三章。
  这种布局能够更好地体现知识的内在功能性联系,同时也分解了难点,因而更有利于学习者对于知识的理解与运用。
  3过于注重语法知识的系统性
  有些人认为编程离不开语法,语法是编程的基础,要想学好C语言编程,必须系统完整地掌握C语言的语法。由于将C语言语法看作学习编程的“预备知识”,因此在讲授编程之前,总是要对相关的语法知识进行深入细致地讲解。因为涉及的语法知识点比较多,因此通常采用堆砌罗列的方式逐一讲解。
  这种教学方式虽然花费了大量的课堂时间和精力,但是教学效果却并不理想。一方面学习者对于语法的理解不够深入,另一方面对于编程的促进作用也不明显。
  究其原因,采用“预备知识法”讲解C语言语法,会造成语法与编程一定程度的脱节,不利于学习者对语法的理解。
  另一方面,根据与程序设计联系的紧密程度,实际上可以将C语言的语法分为两类。一类是在编程中经常使用、同时也比较容易理解的常规语法。另一类是在编程中极少使用、同时也比较难懂的非常规语法,比如“逻辑运算的短路”“for语句的变形”;还有一些在实际编程中几乎不可能出现的语法,比如仁i i i 和a =a-=a a这样的表达式以及typedefint(*POINTER)O;这样的语句。
  显而易见,非常规语法对于编程的促进作用是非常有限的,反过来还会由于讲解这部分语法挤占了讲解编程方法的时间,影响了学习者编程能力的提高。
  上述问题的解决方案,是本着语法服务于编程的原则,在教学中着重讲解编程中频繁使用的常规语法,避免过多地讨论非常规语法。
  在讲授语法知识时,尽量用“真实情境法”取代堆砌罗列方式的“预备知识法”。所谓“真实情境法”,就是将语法知识点在真实的程序案例中展现出来,让学习者在学习编程的过程中自主地“发现”并逐步地积累语法知识。例如,在讲解计算球体体积的程序时,先用v=4/3*PI*pow(r,3)进行计算,然后通过运行程序发现结果错误,接着返回分析程序,再说明4/3实际上是整除,正确的写法是v=4.0/3*PI*pow(r,3)。
  由于将语法知识点与真实的程序“情境”相联系,因而更加有利于学习者对语法的理解,更容易给学习者留下深刻的印象。
  4程序讲解方法有待改进
  在C语言程序设计教学中,培养学习者基本的编程能力和初步的计算思维能力是教学的重点和难点。这两种能力的培养,归根到底需要借助于一个个编程实例实现。因此,如何设计更加有效的教学方法,更好地体现计算思维的思想,是问题的关键所在。
  在现有的C语言教学实践中,普遍采用“问题分析一一写出程序——解释说明”的步骤讲解程序。即首先针对问题进行分析,得出基本的编程思路,然后写出完整的程序,最后再对程序中的语句逐条进行解释说明。
  不过这种方式的教学效果并不理想,学习者通常能够读懂案例程序,并能理解其编程思路。但是当需要学习者自己编写程序时,却又往往感觉无从下手。其原因在于从编程思路到完整程序之间缺乏必要的推导过渡环节。学习者找不到编写各类程序结构的一般性规律,从而感觉无章可循。
  那么,能不能像求解数学问题那样,将程序一步步地推导出来呢?其实,编程的过程也是有规律可循的,完全可以通过归纳、演绎等逻辑推理方法,将程序一步步地推导构造出来。这种方法能够帮助学习者发现编程的内在规律,增强他们学好C语言的自信心。下面通过一个例子进行说明。
  例1.编程序计算1 2 3 … 100之和。
  该问题实质上是求等差数列之和,完全可以利用等差数列的求和公式来求。不过在这里采用一种累加的方法来求此数列之和,因为这种方法具有更好的通用性。
  算法設计如下:
其他文献
在基于视觉的人群计数研究中,针对计数中人群存在遮挡和个体尺寸不确定问题,提出一种多通道特征重构密度图的计数算法。模型利用膨胀卷积网络对图像进行多尺度特征提取,提高模型的感知区域,增强模型对尺度敏感性;通过多通道融合浅层特征生成人群密度图,结合基于Earth-Mover距离的生成对抗机制提高模型精度。为验证算法的有效性,分别与主流方法在标准数据集ShanghaiTech、UCF-QNRF、UCF-C
摘要:考试的个性化最终体现在组卷的策略上。传统的组卷策略是根据教师预先输入的要求从题库中抽取相应的题目。这种情况下,每个学生拿到的试卷都是一样的,那么,考试的分数以及答题的情况就不能正确地反映出学生掌握知识的情况,也就不能给学生的学习做出正确的指导,考试就失去了它原本的意义。因此,本文从满足学生考试个性化的需求出发,浅析了考试模块中利用了Agent技术实现的考试系统结构,并结合改良的遗传算法,实现
社会在发展,人们对于家庭生活现代化及智能化的要求也在不断提高,而随着相关技术的发展完善,物联网技术也早已在潜移默化间成了民众日常生活的重要组成部分。借助于各种信息传感器,物联网技术将日常生活中原本单一的物件组合成了一个整体,进而构建起了一个相互关联的网络,该文从物联网技术及智能家居的概念出发,对该技术在智能家居发展中的运用进行了分析探究。
摘要:随着我国网络建设的逐步完善与网络信息技术的快速发展,极大程度地促进了临床医疗的全面开放和远程计算机监护系统的运用。瘦课(Sooc)网创新创业学分认证云平台作为一种新兴的互联网云平台之一,也被逐渐的引入临床医学领域。这不仅有力促进远程教育的健康发展,也对医院健康远程计算机监护系统的设计与应用提供了理论基础与实践经验。该研究为了填补云平台在心血管疾病患者健康远程监护在线这一空白,搭建基于Sooc
摘要:互联网流量日益增加,各种视频流媒体流量集聚扩增,各个内容提供商、运营商、服务商,以及各种系统也都部署了适合自己不同需求的缓存设备,以适应大流量的访问,提高访问速度,降低访问延时,给用户以更快,更流畅,更好的感知和服务。同时系统的增加势必带来诸多的问题,本文以缓存系统的特性为例,简述了某些特定业务在谷歌内核浏览器上无法使用的现象,并结合抓包和码流分析原因,同时给出了临时和最终的解决方案。  关
摘要:随着信息技术的不断发展,为了提高教学效率,信息类课程教学基本都在计算机实验室进行,计算机实验室使用率不断提高。因此,将6S管理模式应用到计算机实验室管理中,使计算机实验室工作环境整洁美观,方便教学,显得尤为必要。  关键词:6S;管理;计算机;实验室;探索;实践  中图分类号:G642 文献标识码:A  文章编号:1009-3044(2019)33-0071-02  1概述  在信息化发展背
摘要:该文介绍了区块链概念、分类及Fabric框架技术,分析了非学历在线教育之现状及面临的问题,给出了基于Fabric构建非学历在线教育学习成果认证系统的设计和原型实现过程,对构建终身学习型社会具有一定的理论指导意义和实际应用价值。  关键词:区块链;在线教育;成果认证  中图分类号:G642 文献标识码:A  文章编号:1009-3044(2019)35-0232-03  近两年,被金融市场“比
摘要:云服务是当代信息时代的热点产品,它通过其高性价比、高利用率、高可扩展性及高容错性等特点得到各个行业和领域的青睐。然而,国内仍有很多高校没有进行教育云的技术升级。该文通过探讨当前虚拟化技术存在的问题,结合高校业务需求分析了教育云建设的必要性和可操作性。通过整合高校已有硬件与网络资源提出了一套基于docker技术建设教育云的低成本解决方案,对教育教学信息化云平台建设有一定的借鉴作用。  关键词:
摘要:我国高职院校不断扩招,生源质量参差不齐,学生结构日趋多元。随着新媒体技术与教育教学的深入融合,不仅给高职院校带来了积极正向的影响,也在一定程度上带来了消极负向的影响。因此,如何有效利用新媒体带来的正向影响,规避负向影响,借助新媒体完善高职院校班风建设的实践机制就显得尤为重要。本文以新媒体的特点和班风的重要性作为切入点,详细分析了新媒体推进班风建设的不同形式和重要作用。  关键词:新媒体;高职
流是Java开发中的一个非常重要和基础的概念。本文通过文件复制程序的实现,介绍了流的概念、常见流类的使用方法及步骤。