C语言教学质量的思考与实践
摘要:本文从 C 语言的教学入手,在如何提高非计算机专业的计算机语言教学质量的教学工作中做了一些努力,目的是为后续计算机类课程的学习打下良好的基础。
关键词:教学方法;综合性实验;题库建设;考核方式
1 前言
随着计算机科学的发展,计算机逐渐成为了人们生活中不可缺少的工具,而程序设计是人类利用和开发计算机各种功能最直接的方法,因此,对于理工科的学生而言,掌握一门高级语言及其基本编程技能是必要的。除此之外,在学习高级语言程序设计的过程中,通过分析、分解、归纳、整理最终得出算法的思维能力的训练,有助于培养、提高学生分析问题和解决问题的方法与能力。目前,C语言是近年来国内外得到迅速推广使用的一种高级程序设计语言,它功能丰富,表达能力强,使用灵活方便,应用面广,目标程序效率高,可移植性好等诸多优点使得C语言程序设计几乎成为高等理工院校本科低年级必开的一门重要计算机程序设计课程。我院将理科不好的女生学计算机行吗C语言作为理工科学生的第一门程序设计语言课程。
绝大多数学生在学习C语言程序设计这门课前,对计算机语言、算法、数据结构和程序设计一无所知,更没有任何抽象建模的基本知识,加上初学C语言时涉及的概念比较复杂抽象,规则繁多,以致多数学生普遍反映C语言难懂难学。如果前面简单的小程序写不出做不对,当涉及较复杂算法的程序时就更无从下手,慢慢地就会产生一种排斥心理,甚至放弃对C语言更深入的学习,这就是该门课教学质量普遍不高的症结所在。面对上述情况,许多教师一直都在努力研究、探索、改进教学方法和手段,目的就是将学生顺利地领进计算机语言程序设计的大门,对后续计算机语言程序设计课程的学习起到了奠定基础的作用。
2 选定一本合适的教材
C语言同所有算法语言一样都由自己特定语句组成,每条语句又有自己的一些特定使用规则。现在有关C语言程序设计的教材版本很多,作为C语言程序设计课程的教材,介绍的都是C语言的语法规则和定义,这些内容相对来说既枯燥又难记,在讲授的过程中,难以引起学生的兴趣。
我们一直选用潭浩强编写的《C程序设计》。它的特点是章节划分合理,内容完整,叙述清楚,例题适中,有代表性,属于经典性教材。但它也存在叙述过于细致,略显繁琐的缺点,
相应配套的实验指导没有解题思路,且习题偏重于数学,面向客观事物的领域不够宽,所以面向不同专业可选择的习题不足。C语言教学的最终目的是使学生在牢固掌握理论知识的基础上,具备一定的编程能力。如何将程序设计的理论与实践相结合,是C语言教学中的重点。我们结合专业特点,选用或自编实验题目,尽量提高学生学习的兴趣。
3 教学与实践
3.1 兼顾课堂教学和学生自学的多媒体课件
利用各类计算机软件,根据本校学生的特点,制作出高水平的C语言程序设计多媒体课件。使教学过程具有形象、直观、生动、信息量大等特点。
讲授“C语言程序设计课程,要充分利用多媒体课件,但不能过于依赖课件,我们观察教师若自始至终坐在课堂控制台前,始终以课件授课,难以达到好的教学效果。教师必须在使用课件的同时,穿插使用黑板,将重要知识的演绎过程强调出来。
将课堂教学和网络教学相结合,制作适合自学的网络版课件,发布到课程建设网络平台。该课件应层次结构清楚,较之课堂用教学课件内容更加全面、详细。能够自由选择章节,使用
方便,供学生下载、学习。
3.2 综合性实验
C语言的教学模式通常是以语言的语法系统为主线,以小型练习、验证性实验为训练手段,往往只对一两个语法要点进行有针对性的练习。一般的C语言课程,大致是按照数据类型-基本结构-数组-函数-指针-结构体-文件这样一个顺序来组织的。在课程的起始阶段,系统地讲述C语言的各种数据类型和输入输出格式,极为琐碎,需要花费大量的时间,又没有足够多的例子来映证这些内容的重要性,导致进入程序设计缓慢。
我们根据C语言的特点,将教学划分为两个大的阶段:前者主要包括程序基本结构、数据类型与操作符、数组与字符串、函数等基本的语言要素,有了这些知识,学生就能够解决完整的编程问题;后者主要包括指针、结构体、文件等语言要素,有了这部分知识,学生应该能够解决更高级的编程问题。
在前一阶段,应该以较快的速度,让学生接触程序基本结构、数据类型、输入输出的灵活用法、数组、函数等编程基本概念,在这些知识积累到一定程度后,应加以梳理和总结,消化
前面的各知识点,使之达到一定程度的系统化,这时给出一两个较大的综合实例程序,分析其结构与语句,也就是引领学生读懂程序,通过解释程序中各个语句的作用,使学生进一步掌握程序语言的一些细节知识,能够修改程序的片断,观察程序的运行行为,然后再要求学生模仿已有的程序去做相似的问题,让学生对C语言编程的概貌有所了解。此时可安排一次期中测验,以起到巩固、复习的作用。
第二阶段,是深入学习的阶段。要讲清指针、结构体、文件的应用特点和优势,尤其是指针的内容,鼓励学生在程序设计时多用指针完成,这时的程序设计已有第一阶段做基础,在程序设计上可以对学生提出更高的要求。
为了加强教学效果,我们在两个阶段之后,各布置了一个综合性实验让学生练习。综合性实验的编程问题覆盖了前面所讲过的全部或大部知识。由于综合性实验涉及的问题较完整和较有实际意义,因此能够引起学生的兴趣,并使其复习前段时间所学的知识,以达到强化教学的效果。
3.3 引导学生带着问题学习
C程序设计语言的知识体系是一个循序渐进的过程,先后的知识点相关性很大,语句简洁、紧凑,语法限制不太严格,程序设计自由度大。在系统的教学过程中,大部分学生的语法细节掌握得相当好,但是涉及到较大的实际编程问题时,还是显得困难;还有的学生始终无法学会如何把实际问题也就是算法转化为程序语言,他们面对一个问题,往往心中只有一些模糊的想法,而无法写出一行行的程序,久而久之,连原来学会的语法细节也遗忘殆尽。这一问题是目前C语言教学中普遍存在的。这是因为学生缺乏预习的学习习惯,并未带着问题听课,而是等着老师的灌输,所以比较生硬地理解语句。
针对上述问题,我们提出,应该在C语言教学中紧密结合专业特点,编选带有专业特点的题目,采用提出一个实际问题,分析、确立解析该问题的算法,实现逐项转换成程序语句的方法,放弃过度追求语言知识本身的系统化和细节化的做法,通过一系列精心设计的案例,让学生在编程的过程中进行学习。这样将纯粹的学习语言和真正的应用相结合,有助于学生对计算机语言的深入理解,同时学生也感兴趣;从而培养了学生分析问题、解决问题、综合思维的能力。
采用上面的教学模式后,我们发现,许多原来花费大量时间也难以讲清的问题,现在学生领会和理解这部分知识就比较自然。
3.4 认真选题,灵活多样,激发学生的学习兴趣
课堂教学,教师要适当使用课堂练习和提问,运用多种方式活跃课堂气氛。首先,课堂练习的题目要有趣味,结合实际。如模拟计算器、猜数字或字母游戏、查本班某一个或多个同学的信息等程序设计。我们曾通过查本班某一个或多个同学的信息的程序运行完成抽查点名。教师可以让学生在课堂上自编简单程序并进行演示,不拘泥于一种算法,若发现学生有新颖的、独特的算法,教师应鼓励学生自己讲解个人的解题思路,尽量让学生自由发挥。必要时,还可以布置一个小系统,如简单的学籍管理系统等,让学生综合运用所学知识去加以实现。其目的是在有限的学时内,尽可能地提高学生的编程能力。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。