华洁
(淮南师范学院 数学与计算科学系,安徽 淮南 232038)
C语言程序设计课程实验教学综述
华洁
(淮南师范学院 数学与计算科学系,安徽 淮南 232038)
阐述了C语言的发展和演变,对C语言实验教学的各个方面进行了较为详细的探讨,旨在提高学生用C语言进行编程的能力,以便将来学有所用。
程序设计;C语言程序设计;实验教学
在当今这个信息社会中,现代科学技术的飞速发展,改变了世界,也改变了人类的生活。掌握现代科学技术知识,调整自己的知识结构和能力结构,使自己能够独立思考和解决所面临的各项任务和问题,是适应社会发展的趋势。如今计算机技术已经深入到人类生活的各个领域,无论学什么专业,将来从事什么工作,都必须具备计算机的基础知识和应用能力。
C语言是目前国内外广泛流行的、有着广阔发展前景的计算机高级语言,也是一种优良的系统描述语言。在各种高级程序设计语言中,C语言有许多优点,利用它我们既可以编写系统软件 (如:unix,它和C被称为孪生兄弟),也可以编写应用软件。学会使用C语言进行程序设计是计算机工作者的一项必备能力。
早期的操作系统软件主要是用汇编语言编写的,由于汇编语言依赖于计算机硬件,显而易见其程序的可读性和可移植性都是比较差的,所以为了提高系统软件的可读性和可移植性,改用高级语言编写,但是一般的高级语言又难以实现汇编语言对硬件操作的功能,在此种情况下,C语言就应运而生了。
C语言是1972年由美国的Dennis M.Ritchie设计发明出来的,并首次在Unix操作系统环境下使用。它由早期的编程语言BCPL(Basic Combind Programming Language)发展演变而来。在1970年, AT&T美国贝尔实验室的Ken Thompson根据BCPL编程语言设计出较先进的一种语言,取名为 B语言,Dennis.M.Ritchie在B语言的基础上设计出了C语言①谭浩强:《C程序设计》(第三版),北京:清华大学出版社,2005年。。
演变历程中的特点:
(1)最早1960年ALgol 60。它是一种面向问题的高级语言,计算能力强,但脱离硬件。
(2)1963年CPL语言。由剑桥大学推出,接近硬件,但规模较大,难以实现。
(3)1967年BCPL。剑桥大学Martin Richards对CPL做了简化,解决了控制硬件问题。
(4)1971年B语言。对BCPL进一步改进和简化,但程序过于简单,功能有限。
(5)1972~1973年C语言。在B语言的基础上设计出C语言,C语言既保持了BCPL和B语言的精练、接近硬件的优点,又克服了它们过于简单、数据无类型的缺点。
之后对C语言经过多次改进,在1978年C语言很快风靡全世界,成为世界上广泛应用的几种计算机高级语言之一。
计算机程序设计语言分为面向过程和面向对象两种。主要有:
(1)面向过程:Basic语言,C语言,Pascal语言,Fox语言等。
(2)面向对象:Visual Basic,Visual C,Visual Foxpro等。
在校本科生学习高级语言程序设计,所采用的程序设计语言由BASIC改为PASCAL,再由PASCAL改用C语言。C语言有很多优点:语言简洁、紧凑,使用方便、灵活;运算符和数据类型丰富;具有结构化的控制语句实现程序的模块化;允许直接访问硬件等等。
《C语言程序设计》这门课程是理工科各专业,尤其是计算机相关专业的学生一门非常重要的专业必修课。学生通过这门课的学习,能够掌握高级语言程序设计的基本思路和基本方法,逐步形成正确的程序设计思想,并能够熟练地使用C语言进行程序设计,从而提高学生的编程能力,为后续课程《数据结构》、《编译原理》、《数据库原理》等打下坚实的基础。
《C语言程序设计》同样是一门实践性很强的课程。熟练使用C语言编译环境,验证已有的程序,加强对理论知识的理解和掌握,学会编制简单问题的小程序;以上种种都必须在实验中得到训练。在具体实验中,学生需要对程序反复修改和调试,这是实验课必备的能力,它贯穿实验的整个过程,是学生学习和研究C语言程序设计最根本的方法。作为实验指导教师,在实验教学中应该努力改变单一枯燥的教学方法,把实验教学重点放到帮助和指导学生主动学习、积极思考和积极动手上来。使学生在实验中充分掌握实验技能和技巧,从而很好地完成实验教学任务。
4.1 合理的选用实验教材是完成实验教学任务的重要保证
C语言的数据类型较多,表达式丰富,语法结构复杂,知识内容量很大,它是教师难教、学生难学的课程之一。对于一些抽象的概念学生是必须要通过大量的上机实验去理解和掌握的,但是目前大部分高校都比较偏重理论部分,上机实验只是理论教学的一部分。在学时划分上偏重理论教学,通常都是按课堂教学:实验教学3:1的比例安排课时。选用合适的实验教材、制定合理的实验教学计划和进度,实验才可顺利进行,也是完成实验教学任务的重要保证。
笔者选用的实验教材是与理论课教材配套的新世纪计算机基础教育丛书《C程序设计题解与上机指导》谭浩强(第三版)一书,书中详细介绍了在Turbo C 2.0、Turbo C++3.0和Visual C++6.0这三种集成环境下编辑、编译、调试和运行程序的方法①谭浩强:《C程序设计题解与上机指导》(第三版),北京:清华大学出版社,2005年。,浅显易懂,有相应的操作截图,我认为是目前本门课程最适用的实验教材。
4.2 实验教学集成环境的合理选用是实验顺利开展的必备条件
实验集成环境的选用,一要考虑学生是否容易操作,二要考虑是否能使实验顺利开展,而得以很好地完成实验教学任务。
4.2.1 实验教学集成环境常用的版本
根据教材的更新和社会发展的需要,目前主要的上机编程环境采用Visual C++6.0版本,全国计算机水平考试(安徽考区)和全国计算机等级考试目前均采用此版本作为上机考试环境。在多年的实验教学中,先后安排的上机实验环境有Turbo C 2.0(DOS版),Turbo C 3.0(鼠标操作版)和Visual C++6.0。
4.2.2 选用Turbo C 2.0版本作为实验教学平台的优势
在多年的实验教学中,笔者总结得出:Turbo C 2.0版本更好用。它提供的菜单简洁齐全,使用的快捷命令简单快速,Turbo C 2.0环境的单步执行Trace into(F7)和Step over(F8)2个菜单功能的使用在实验教学中尤其重要,它能够帮助学生观察程序中每个语句的运行次序和全过程,并能够观察程序运行过程中变量值的变化情况,帮助学生理解局部变量和全局变量的有效范围,帮助学生理解参数是如何传递的,传值还是传址等等。不足之处是:仅能用键盘操作。所以我安排学生在实验教学的前段时间使用Turbo C 2.0上机环境进行实验,最后2周让学生熟悉Visual C++6.0环境,掌握其基本方法,使学生能够适应各类C语言程序的上机考试环境。两者配合,达到很好的实验效果。
4.3 结合理论教学的进度,合理地制定实验计划
实验计划的制定要依据实验教学大纲。在2006年笔者所在学校淮南师范学院参加本科教学水平评估中,笔者所在的数学与计算机科学系组织修订和健全各门课程的实验教学大纲,笔者撰写和修订了《高级语言程序设计》(C语言)实验教学大纲,根据实验教学大纲,制定相应的实验项目和实验进度。
在制定实验计划时,需要和理论课的进度相适应。实验计划的合理安排,是配合课堂教学,使学生理解和掌握所学知识的先决条件,它必须和课堂教学达到“同步”,实验内容超前,没法做实验,实验内容滞后太多,而使理论知识遗忘过多,也给实验的顺利进行带来不必要的困难。因此必须要结合理论教学的进度,才能制定出合理的实验计划。
4.4 重视实验课前的预习,写出客观而完整的实验报告
实验课时的压缩,使实验课的分分秒秒都要利用起来才能发挥实验课的作用。因此实验课前的预习是每个学生做好实验的必要准备。按照实验进度,我要求学生在实验前先了解本次实验的目的和内容,对所需要做的实验画出流程图,设计出相应的算法,并初步编写出C源程序,在上实验课的时候就能够直接输入、调试和修改自己编写的C源程序,这样既节省了时间又提高了学生思考问题的能力和编程能力。在实验中,一个简单的程序,都可能会出现许多小错误,不是漏了分号,就是关键词拼写错了,等等,所以学会调试和修改程序特别重要,我要求学生将调试过程中出现的错误及改正后的代码反映在实验报告中,错中求正,知识掌握的更巩固。
4.5 学生的主观能动性是提高学生实验效率的重要前提
学生的主观能动性是学生掌握知识的最重要的前提条件。教学过程是教师教与学生学的两个过程,在以学生为本的教育理念下,老师不仅是知识的传授者,更是学生的引导者和启发者,学生应当由知识的被动接受变为主动求知。在C语言实验课上,学生多动手、多动脑、勤练习是学好编程的关键。在实验中,学生总会出现这样或那样的错误,这时就需要教师引导他们开动脑筋,自己找出错误,在解决问题的同时加深对知识的理解和掌握,使学生的主观能动性得到充分发挥。
4.6 将经验传授给学生,进一步提高实验效果
全国计算机等级考试下半年起,把笔试部分也转到上机考试环境中来,因而实验中对动手能力的提高更要大大地加强。结合各类计算机C语言的考试题型,笔者将容易出错的知识点和内容进行归纳和总结,直接让学生得到经验,避免学生实验中走弯路,防止许多问题频频出现而反复辅导浪费不必要的时间,这也是提高实验效率的重要途径。比如:在改错题中,程序中的相等条件往往出错在“=”号,而应为相等“==”的运算,在编译中,C环境显示的这类错误信息不明显,有了经验,实验会达到突飞猛进的效果。
4.7 通过实战训练,充分掌握C语言编程能力
学以致用,学习了C语言,掌握程度如何,需要加以检验,更是检验实验教学的效果所在。在学期的后2周,安排学生进行C语言程序的上机模拟考试,限时模拟考试,最能检验学生对C语言的掌握程度和熟悉程度,程序填空、程序改错和程度编程,99套上机题,使学生在实战训练中找出薄弱环节和不足,再重点加强,使学生全面掌握C语言编程能力。
A review on experimental teaching of the C Programming Larguage
HUA Jie
The computer technology has a deep impact on all fields of the society.Programming ability is essential for a computer worker.In this paper,we make a comprehensive discussion on experimental teaching of programming in C.
programm ing;the C Programm ing Larguage;experimental teaching
G642.0
A
1009-9530(2013)04-0135-03
2013-01-10
华洁(1964-),女,淮南师范学院数学与计算科学系实验师。