梁新月 聂维
摘要:C语言程序设计是高校计算机科学与技术专业的一门核心基础课。针对C语言程序设计课程的特点和教学现状,分析教学存在问题,提出以培养学生逻辑思维能力、创新能力、分析问题和解决问题能力为目标的教学理念,进一步提出改革教学内容和教学方法的途径。
关键词:C语言程序设计;教学方法
中图分类号:G420 文献标识码:A 文章编号:1009-3044(2012)33-7974-03
C语言程序设计是计算机专业的一门专业核心基础课。但是,从以往学生的学习情况及后期应用来看,学生对该门课的掌握比较吃力,应用能力不足。笔者结合自己的教学体会,从教与学的角度进行分析,发现问题在于:一,目前所用教材难点集中、跨度大,容易使学生产生畏难情绪;二,教学理念陈旧,有些教师培养目标不明确,教学方法、教学手段不够灵活,导致教学过程中教与学不能有机融合。针对以上情况,对该门课程的教学改革提出一些新的建议,以供参考。
1建立以能力培养为目标的教学理念
在传统C语言教学中,采用以语言知识为主线、先理论后实践的教学方法,教学重点在语法知识上,容易使学生深陷复杂的语法知识的“泥淖”而产生畏学情绪,不利于对知识的掌握和实践应用。实践证明,建立以实际应用为背景,以提高兴趣、培养学生逻辑思维能力、创新能力、分析和解决问题能力为主线的教学理念,有助于学生在培养能力的过程中逐步学习语言知识,提高语言应用能力。
1.1理论教学方面
理论教学方面的改革主要是对课程教学内容进行整合。依据知识的难易程度和学生的学习规律,应用由简到繁、由易到难的进阶式学习方法,把教学内容的难点和重点分散到不同的教学阶段,建立如图1所示的教学结构模块,从而达到优化教学内容结构的目的。
1)将数据类型、运算符、表达式等繁杂、抽象的语法知识分散到各个教学模块。
2)分解语句、函数、指针、文件等难点内容。
以函数为例来说,在简单程序设计阶段教师就把函数的定义和调用方法介绍给学生,这样做的目的在于:一方面使模块化设计思想及早扎根于学生编程的思维习惯之中;另一方面把函数这个教学难点进行合理分散,使学生在多次应用和长时间练习之后最终牢固掌握函数的使用方法。
3)融入软件工程思想与软件测试技术。
以简单程序为例,引导学生体验从分析问题、设计算法、编码到测试的软件开发过程,使学生尽早了解软件工程的基本思想,并对每个测试用例的设计方法进行分析讲解,以便引起学生对测试环节的重视,培养学生具备软件工程的素质。
1.2实践教学
C语言程序设计课程的实验通常分为三大类:验证实验、设计实验和综合实验。实验教学以此三类实验为主线,循序渐进,以达到不同的教学目的。其模块化分层结构如图2所示。
1)验证实验。每学完一章知识点后,要求学生上机调试课后习题,深化对本章知识的理解,培养学生调试和测试程序的能力。
2)应用设计性实验。针对具体问题应用某个知识点设计简单的实现方案。如,在数组、函数、文件部分把前面各章学习的知识进行综合应用,安排各种典型算法和应用的编程训练,使学生在程序调试中不断复习基础知识,同时将基础知识和实际应用结合起来,锻炼学生解决具体问题的能力。对于验证实验和应用性实验,要求各组每个人都要完成并提交源代码。
3)综合性实验:学生以2~3人为小组组成项目组,组员能力的高低须呈阶梯状,完成一个小型应用程序开发。综合实验以小组为单位,通过相互协作共同完成,每个小组最终提交一份源代码,但每个人必须总结整理独立的设计报告。
2确立以案例法为主的教学方法
案例教学法是基于建构主义理论的一种教与学的模式,起源于19世纪20年代,由美国哈佛商学院(HarvardBusinessSchool)倡导。案例教学法在程序设计课程中的教学设计如图3所示:
在课堂教学中,选取既可体现C语言语法,又具有实用性的问题进行讲解。通过案例引入知识点,针对知识点再进行语法讲解,通过提出问题、算法设计,编码测试各阶段,逐步引导,使学生了解程序开发的基本流程。在教学过程中,注重激发学生的编程兴趣,强调学以致用,使学生在具体的案例中找到学习动力。对同一个问题,可以重复应用已有的实例,例如,求阶乘的例子,在循环结构、函数定义、函数的调用及递归时都可以用,通过将同一个案例贯穿到不同的知识点中去,让学生重点放在理解知识点本身,而不必在理解知识点的同时还要思考如何进行程序设计。
在实践课堂中,以学生为主。通过源代码编辑,编译,链接和执行各步骤的练习,使学生熟悉程序的执行过程;通过程序调试,修改程序中的语法错误和逻辑错误,使学生进一步掌握C语言语法规则;通过例题验证、习题调试,使学生加深对知识点的理解。
3搭建以课程资源网站为辅助的网络教学平台
课堂教学主要以教师为中心,教师占组织和主导地位。学生跟随教师的思路,难以调动学习的积极性和主动性;另,课堂教学受时间和空间的限制,教师讲授的内容和教学方法不能适应每一个学生。
利用校园网络平台建立课程资源网站,借助网站丰富的教学资料提供与课程资源相关的链接,包括多媒体课件、相关网络课程、学科网站、学习参考文献等进行辅助教学。丰富的教学资源不仅构建了强有力的教学支持环境,而且开拓学生的学习思路。另外,网络教学突破了时间和空间的限制,解决了课程知识点多、知识更新快、学生基础不均衡及学时少等实际问题,而且各种教学形式相互补充,有利于满足不同学生学习习惯的需要。
4结束语
C语言程序设计主要目的是培养学生的程序设计能力,初步了解软件工程的思想。该文从教学理念、教学内容、教学方法、实验教学等方面提出C语言程序设计课程教学的一些新的感悟,并在实际教学中进行了相应的试验和评估,教学效果良好。
参考文献:
[1]程一飞,程玉胜.《C语言程序设计》的教学探讨.安庆师范学院学报(自然科学版),2011(17):114-117.
[2]谭浩强.C程序设计(第3版)[M].北京:清华大学出版社,2008.
[3]胡枫.《C语言程序设计》的教学的设计[J].青海师范大学学报:自然科学版,2010(4):48-51.
[4]周鸣争.C语言程序设计教程[M].成都:电子科技大学出版社,2005.
[5]刘涛,严轶群.语言程序设计课程教学改革的研究与实践[J].电脑知识与技术(学术交流),2006(36):224-226.