C语言程序设计教学探讨,《C语言程序设计》教学方法探讨

2023-10-09 16:20

本文主要是介绍C语言程序设计教学探讨,《C语言程序设计》教学方法探讨,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

41528d3028836879cd698677c3999917.gif《C语言程序设计》教学方法探讨

《C语言程序设计》教学方法探讨 【摘要】针对目前《C语言程序设计》教学效果不理想的问题,结合教学实际,分析教学过程中存在的问题,针对计算机专业新生的教学方法进行探讨,提出需要做好第一堂课的引导,启发式教学,理论课与实验课有机结合以及改革传统的考核方式等建议。 【关键词】C语言程序设计;计算机;教学方法;启发式教学 C语言是一种结构化的程序设计语言,是后续学习《数据结构》《操作系统》等专业课程的基础。它入门简单,特别适合于初学者学习。目前很多院校都将《C语言程序设计》课程作为计算机专业大一新生的第一门程序设计语言课程。 随着计算机的普及,目前刚入学的新生可以熟练的操作计算机,但对于计算机的原理等理论知识的了解几乎为零。《C语言程序设计》课程是他们接触到的第一门专业课,如何进行教学将直接影响学生的学习兴趣。目前C语言的教学没有得到很好的教学效果,学生往往是到了大二、大三阶段,随着计算机专业知识的学习才慢慢理解程序设计的真谛,才真正学会使用C语言编写程序。 《C语言程序设计》课程教学效果不理想的状况普遍存在,很多专业课教师对其教学体系、教学方法等进行研究和讨论[1-4],期望找到提高教学质量的途径。 1 C语言教学中存在的问题 笔者为《C语言程序设计》课程教师,主要针对计算机专业大一新生进行讲授。面临C语言教学效果不理想的问题,在教学过程中不断探索适合的教学方法和手段。首先结合教学实际,分析目前C语言教学中存在的主要问题。 1.1 教学过程中过分注重语法 大多数教师往往在简单介绍C语言特点后,就开始就讲解C语言的基本数据类型、基本运算符与表达式。对于初学者来说,接受这些内容很困难,即使是有些学生记住了,但也不是真正理解了这些内容在程序设计语言中的作用。这将导致初学者感觉C语言是很难学、很枯燥的一门课程,一开始就无法理解。同时也忽略了学生程序设计思维方式和编程能力的培养。 1.2 教学方法以教师讲解为主 C语言目前的教学方法主要是板书结合幻灯片演示,以教师的“教”为主体,主要讲授C语言的基本语法及基本编程思想。这种教学方式下,学生主要以听为主,被动学习,枯燥的内容无法吸引学生注意力,也无法调动学生积极性,得不到良好的教学效果。 1.3 教学课时少,教学内容多 C语言程序设计入门容易,深入难。三种基本程序设计之后还包括数组、指针、结构体等内容。而《C语言程序设计》的课程往往是32理论学时,在有限的学时内完成所有C语言程序设计的内容,就出现课时少、教学内容多的情况,无法定期的对前面内容进行总结和练习,令学生无法透彻理解所学内容。 1.4 课堂教学与实验教学脱离 由于教学条件的限制,大多数高等院校的C语言课程都是将理论课与实践课分开进行。理论课所讲的内容,学生听过之后,没有亲手实验,导致记忆不深,理解不到位。到实验课时,已记不清理论课所讲的内容和注意事项,教师需要在实验课上将关键知识点再重复一遍。这种情况减少了学生的练习时间、增加了教师工作量,也反映了这种教学方式的不合理,课堂教学没有起到应有的作用。 1.5 考试方式古板 目前的C语言考试方式主要是闭卷考试。考试题目通常包括选择、填空、阅读程序等题目,这些题目考核的只是C语言程序的基本语法,而忽略考核学生的程序设计思维方式和编程能力。 2 C语言教学方式探讨 针对C语言教学中出现的问题,我们就如何对大一新生开展C语言程序教学进行探讨。使初学者能够真正理解程序设计的本质,认识到程序设计语言的重要性,提高学习积极性,主动学习,从而培养学生程序设计思维方式以及编程能力,为后续学习打下基础。 2.1第一堂课的引导 《C语言程序设计》是计算机专业新生接触到的第一门专业课,也是第一门程序设计语言课程。第一堂课的内容至关重要,它决定着学生是否对此门课程感兴趣,也决定着后续的学习质量。笔者在实际教学中发现,第一堂课的引导必不可少。引导的内容如表1所示,主要向学生介绍程序、程序设计语言、程序设计的概念,以及程序设计语言的发展历程。介绍三个概念时,从学生的角度出发,从他们熟悉的软件着手进行讲解。让学生从总体上了解到本门课程的大致作用以及意识到本门课程学习的必要性。 在学生已经对本门课程有了大概的了解,对程序设计语言有了总体的认识之后,再去从计算机的发展历程和当时的实际需要出发介绍程序设计语言的发展,让学生了解C语言所处的位置及基本特点。理清学生思路,同时也激发了学生的学习兴趣。这时可以以学习外语的过程为类比,告诉学生接下来要学习“单词――数据类型”。 2.2有效选取教学内容,启发式教学 C语言课程,教师主要的教学目的是培养学生的编程思维以及编程能力,而不是将C语言的所有语法及知识点都传授给学生。所以教师应该选取基本的教学内容,采用启发式教学,这样既解决了课时少的问题,同时也培养了学生的自学能力。 以C语言中的构造数据类型为例,当给学生讲解数组时,启发学生自行思考,让学生掌握学习方法,并通过反复的练习培养思维方式和编程能力。学生在掌握数组使用方法的同时,也了解了整个学习过程。而后续的结构体内容将不在课堂上讲授,而是鼓励学生自行学习,抽出时间为学生答疑,培养学生自学能力。 2.3理论课与实验课的有机结合 理论课与实验课的分离导致理论课无法起到应有的效果。对于《C语言程序设计》课程最佳的上课方式应是将二者合二为一。老师讲解基本理论之后,学生可以马上对所学知识进行实验,加深理解。然而并不是所有的院校都具备这样的教学条件,当不具备条件时,教师应该在理论课上让学生自己动手写程序,调动学生积极性,打破被动学习的局面。而在实验课上,教师应重复理论课中的重要知识点,同时教师需要设计好实验方案,使学生循序渐进的对所学内容进行练习。实验课内容应以学生的创新为主,而不应该是让学生机械的验证教科书后的程序。 2.4改革期末考核方式 C语言的考核方式也不利于培养学生的思维方式以及编程能力。教学过程中无论是教师的“教”还是学生的“学”暂时还无法脱离最终的期末考核。而目前的考核方式往往会令学生,甚至包括教师偏离最终的教学目的。因此需要对目前C语言程序设计的考核方式进行变革,可以用上机考核代替笔试,这样可以充分体现学生的编程能力。或者将最终的期末考核变换为类似毕业设计的小型课程设计。我们最终的目的是为考核学生的思维方式和编程能力,具体形式还要根据各个院校的要求以及学生的特点决定。 3 结语 作者针对目前C语言程序设计教学效果不理想的状况,分析了目前此门课程教学过程中存在的问题,并结合自身的教学经验,对计算机专业新生的《C语言程序设计》课程的教学方法提出了几点建议,作者将会在后续的工作中验证这些教学方法的效果,并不断进行改革和完善。 参考文献: [1]赵钦,郝丽珍,郭鲜凤.高级程序设计语言教与学切入点探析[J].太原大学学报,2012(13):114-116. [2]鲁红英,肖思和,孙淑霞.“C/C++程序设计”课程教学改革与实

这篇关于C语言程序设计教学探讨,《C语言程序设计》教学方法探讨的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/174083

相关文章

Go语言中泄漏缓冲区的问题解决

《Go语言中泄漏缓冲区的问题解决》缓冲区是一种常见的数据结构,常被用于在不同的并发单元之间传递数据,然而,若缓冲区使用不当,就可能引发泄漏缓冲区问题,本文就来介绍一下问题的解决,感兴趣的可以了解一下... 目录引言泄漏缓冲区的基本概念代码示例:泄漏缓冲区的产生项目场景:Web 服务器中的请求缓冲场景描述代码

Go语言如何判断两张图片的相似度

《Go语言如何判断两张图片的相似度》这篇文章主要为大家详细介绍了Go语言如何中实现判断两张图片的相似度的两种方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 在介绍技术细节前,我们先来看看图片对比在哪些场景下可以用得到:图片去重:自动删除重复图片,为存储空间"瘦身"。想象你是一个

Go语言中Recover机制的使用

《Go语言中Recover机制的使用》Go语言的recover机制通过defer函数捕获panic,实现异常恢复与程序稳定性,具有一定的参考价值,感兴趣的可以了解一下... 目录引言Recover 的基本概念基本代码示例简单的 Recover 示例嵌套函数中的 Recover项目场景中的应用Web 服务器中

Macos创建python虚拟环境的详细步骤教学

《Macos创建python虚拟环境的详细步骤教学》在macOS上创建Python虚拟环境主要通过Python内置的venv模块实现,也可使用第三方工具如virtualenv,下面小编来和大家简单聊聊... 目录一、使用 python 内置 venv 模块(推荐)二、使用 virtualenv(兼容旧版 P

Go语言中使用JWT进行身份验证的几种方式

《Go语言中使用JWT进行身份验证的几种方式》本文主要介绍了Go语言中使用JWT进行身份验证的几种方式,包括dgrijalva/jwt-go、golang-jwt/jwt、lestrrat-go/jw... 目录简介1. github.com/dgrijalva/jwt-go安装:使用示例:解释:2. gi

Go 语言中的 Struct Tag 的用法详解

《Go语言中的StructTag的用法详解》在Go语言中,结构体字段标签(StructTag)是一种用于给字段添加元信息(metadata)的机制,常用于序列化(如JSON、XML)、ORM映... 目录一、结构体标签的基本语法二、json:"token"的具体含义三、常见的标签格式变体四、使用示例五、使用

Java内存区域与内存溢出异常的详细探讨

《Java内存区域与内存溢出异常的详细探讨》:本文主要介绍Java内存区域与内存溢出异常的相关资料,分析异常原因并提供解决策略,如参数调整、代码优化等,帮助开发者排查内存问题,需要的朋友可以参考下... 目录一、引言二、Java 运行时数据区域(一)程序计数器(二)Java 虚拟机栈(三)本地方法栈(四)J

Go语言使用slices包轻松实现排序功能

《Go语言使用slices包轻松实现排序功能》在Go语言开发中,对数据进行排序是常见的需求,Go1.18版本引入的slices包提供了简洁高效的排序解决方案,支持内置类型和用户自定义类型的排序操作,本... 目录一、内置类型排序:字符串与整数的应用1. 字符串切片排序2. 整数切片排序二、检查切片排序状态:

基于Go语言实现Base62编码的三种方式以及对比分析

《基于Go语言实现Base62编码的三种方式以及对比分析》Base62编码是一种在字符编码中使用62个字符的编码方式,在计算机科学中,,Go语言是一种静态类型、编译型语言,它由Google开发并开源,... 目录一、标准库现状与解决方案1. 标准库对比表2. 解决方案完整实现代码(含边界处理)二、关键实现细

如何合理管控Java语言的异常

《如何合理管控Java语言的异常》:本文主要介绍如何合理管控Java语言的异常问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、介绍2、Thorwable类3、Error4、Exception类4.1、检查异常4.2、运行时异常5、处理方式5.1. 捕获异常