赵仕波 鲁红英 何建军(成都理工大学,四川成都610059)
C/C++语言教学体系研究与重建*
赵仕波鲁红英何建军
(成都理工大学,四川成都610059)
摘要:文章从分析自然语言教学体系出发,分析了当前C/C++语言教学中存在的主要问题,提出了基于自然语言教学体系的C/C++语言教学体系重建,并给出了新的C/C++语言教学体系模型。
关键词:自然语言;C/C++语言;教学体系;重建
Abstract:starting from the analysis of the natural language teaching system,analyzes the main problems existing in the teaching of the C/C++language,from the inherent rule and habit oflanguage learning,based on natural language teaching system,the C/C++language teaching system was reconstructed,and gives the new C/C++ language curriculum teaching system model.
Keywords:natural language;C/C++language;teaching system;reconstruction
计算机教育在现代大学教育中占据非常重要的位置,而计算机程序设计是大学生计算机教育的一门重要课程,适合理工科专业的C/C++语言程序设计课程已经成为各高校计算机语言及程序设计的必修课程。
学生对计算机语言课程的掌握对利用计算机解决实际问题具有非常重要的意义,从长期的教学实践来看,大多数学生对C/C++语言的掌握非常困难,其主要原因在于C/C++语言本身语法规则众多,学生掌握比较困难,同时在传统的C/C++语言的教学中,学生的思维习惯与传统教学体系不相吻合是一个重要原因。根据人的思维习惯,按照语言本身固有的规律,对C/C++语言课程的教学体系进行重新研究和重建是提高C/ C++语言教学实效的有效途径。
语言是实现信息交流的重要工具,掌握一门用于交流的语言是实现良好的交流目的最基本的要求。自然语言作为人与人交流的基本工具,特别是母语都有其自身的特点,在自然语言的学习中,往往都需要按照自然语言本身的特点进行学习才有利于对自然语言的掌握和运用。
那么,自然语言具有什么样的特点和规律呢?一个人从咿呀学语到能顺利交流一般要经过一个漫长的学习过程,最开始基本上都是从一个字一个字,一个词一个词开始学习,当掌握了一定的字词后然后学习遣词造句,一个句子才能表达一个完整的意思达到交流的目的。所以在自然语言的学习中总是按照字、词、句、篇、章这样一个过程进行学习,这种学习过程是符合人的认知规律。正是自然语言的学习有这些特点,因而在学习自然语言时在掌握了基本的字、词、句以后,还要学会谋篇布局,才能写出结构完整、意思表达明确文章,达到完整交流的目的。这就是传统的自然语言教学的基本特点和体系,这种特点和体系符合学习的认真规律和学习习惯,是容易让人接受和掌握的。
C/C++语言教学在我国的高等教育中已经开展多年,各类教材繁多,但从教学体系来看基本上差不多。总是首先对C/ C++语言程序的基本结构进行介绍,试图让学习者首先对程序本身有一个基本的认识,接着讲解数据的基本类型、表达式的基本形式、程序的基本结构、数组、函数、指针与文件、结构体与共用体等。其教学体系结构如图1。
这些教学体系主要以C/C++语言本身的特点开展教学,以程序=数据结构+算法的基本思想为出发点,首先介绍C/ C++语言程序的基本结构,试图首先让学习者在头脑中建立C/C++程序的基本框架,让学习者尽快掌握程序设计的能力,然后对数据类型、运算符、表达式、等内容进行学习。然而,从教学实践中我们发现,按照这种教学过程,学生很难掌握,特别是对初次接触程序设计的学生,对计算机程序是如何工作的,人机如何实现交互,这些概念在学生的头脑中很难建立起来。学生很难用计算机的思维方式来思考怎样解决问题。一是对程序的结构、繁多的语法难以掌握,对例程阅读困难,另一方面难以下手编写程序。但是对某些在中学学习过计算机语言的同学来说,学习就相对容易得多,这是什么原因呢?其核心的问题是作为计算机语言它是人和计算机进行交流的工具,我们编写程序就是希望计算机按照我们的计划和要求去实现我们的工作。但是如何来实现人和计算机的交流,就必须按照语言的学习规律来加以学习,学习让计算机能够识别,学习者也能够掌握,能达到学习者和计算机之间实现交流的程序设计语言。
C/C++语言作为一种计算机程序设计语言,作为人与计算机交流的一种工具,具有自然语言的一切功能和特性。首先,他们的功能是一致。无论自然语言还是机器语言,它们都是交流的工具,自然语言是人与人交流的工具,而机器语言是人和计算机间交流的工具。从本质来讲并没有质的区别。其次它们的结构是一致的。语言主要由字符、语义和语法组成,语言需要具有特定语义的符号,然后这些符号需要按照一定的语法组合起来表达特定的意思。自然语言的字符各不相同,比如英语的字符主要是字母,而汉语的字符主要是汉字,字母和汉字都有不同的语义,然后这些具有一定语义的字符按照各自的语法组合起来构成了不同的语句来表达不同的意思。C/C++语言其实质是人与计算机间的交流工具,和自然语言一样,由特定的字符,语义和语法组成。
在C/C++语言中规定的字符比较简单,主要由字母、数字以及其他特定符号组成,这些非常简单,很容易掌握。和自然语言一样,仅仅有字符不足以表达完整的意思,需要有字、词、句的概念。在C/C++语言字是由字符按照一定规则组合起来的,包括关键字,32个,保留字以及用户自己定义标识名。词是由字组成的,在C/C++语言中的词是由字按照一定规则组织起来具有一定意义的式子,也就是表达式,包括算术表达式,关系表达式,逻辑表达式等。字和词是构成句子的基本单位,只有句子才能够表达完整的意思,在C/C++语言中句子则是按照一定语法规范由字、表达式组合起来具有特定意义的式子,包括变量定义语句,表达式语句,空语句,控制语句以及输入输出语句等。
在自然语言中,在有了字词句的基本概念以后就可以写文章了,写文章是对语言的综合应用,表达各种观点,实现深入而复杂的交流,在C/C++语言中写文章就是怎样编写程序,在自然语言中,一篇文章可以包含分成一个段落或多个段落,段落是构成一篇文章的最小单位,写文章时总是一个段落一个段落地写,每个段落都有其自身的意义,相对独立,但是如果一篇文章有多个段落,段落与段落见必然有一定联系,这些段落都为整篇文章服务,围绕一个中心。在C/C++语言程序设计也就是运用C/C++语言的字、词、句来写文章,C/C++语言程序的基本单位是函数,函数向自然语言中的段落一样,是一个相对独立的单位,一个程序可以只有一个函数也可以由多个函数组成,如果有多个函数,这些函数与函数之间必然有一定的联系,这些函数是服务于这个程序所要解决的中心问题。
有了这些基本思想以后,在C/C++语言的教学体系中,我们首先从C/C++语言的字、词、句开始学习,在掌握了语言的这些基本东西以后,再学习程序的基本结构,学习如何编写程序,学习如何通过编写程序让计算机去完成相应的工作。按照这个程序和体系去安排C/C++语言程序设计的教学,符合语言的基本特点,也符合人的认知规律,学生在学习中就容易掌握了。
在实际教学中,我们按照自然语言的学习规律,针对现有的C/C++语言教学体系中存在的问题对C/C++语言教学体系进行了重新构建,形成了一套新的C/C++语言教学体系。这个体系由两部分组成,包括基础篇和提高篇,基础篇首先从自然语言的基本特点切入,介绍自然语言和机器语言的共同特点,然后学习C/C++语言的字、词、句、篇、章,也就是学习C/C++语言的保留字、关键字、自定义标识符,数据类型,表达式,语句(输入输出语句,变量定义语句,表达式语句),基本函数(不带参数),顺序结构,通过对这些基础知识的学习,学习者可以对C/C++语言就有一个全局的概念,了解C/C++程序的基本结构,能够阅读一些简单的程序,也能够编写一些简单的程序,学生容易建立对C/C++程序的整体认识,如果需要处理复杂的问题就需要进一步学习,进一步学习安排在提高篇中,在提高篇中主要介绍循环结构,选择结构,数组,函数的参数,指针,文件、结构体与共用体以及面向对象等。具体教学体系如下:
基础篇
第1章自然与C/C++语言
第2章字——C语言的标识符与基本数据类型
第3章词——C/C++语言运算符与表达式
第4章句——C/C++语言的语句
第5章篇——C/C++语言的函数
第6章章——C/C++语言程序
提高篇
第7章控制结构
第8章数组
第9章指针
第10章文件
第11章结构体与共用体
第12章类与对象
第13章继承与派生
第14章多态性
经过对C/C++语言程序设计课程教学体系的重新构建,以学生对自然语言的学习习惯为切入点开展对C/C++语言程序设计的教学,在尊重学生的认知规律的同时,又高度契合C/ C++语言本身的特点,循序渐进地开展学习。在基础篇的教学中由于学生还没有对C/C++语言建立较为完整的概念,所以不安排上机实践,主要以讲授为主,避免学生在没有基础知识的时候接触程序产生畏难情绪,降低学习兴趣。而在提高篇的教学中,主要安排上机实践,课程设计,结合提高篇的学习,解决实际问题,提高动手能力。这种教学体系的设计在实际教学中取得了良好的效果。
参考文献
[1]谭浩强.C语言程序设计[M].北京:清华大学出版社,2005.
[2]孙淑霞,何建军,肖阳春.C语言程序设计[M].北京:电子工业出版社,2005.
[3]王开铸.实用C语言程序设计[M].哈尔滨:哈尔滨工业大学出版社,2002.
[4]郭俊凤,朱景福.C程序设计案例教程[M].北京:清华大学出版社,2009.
[5]杜红.《C语言程序设计》教学体系研究[J].西安:长江大学学报(自然科学版),2004.
[6]王付山.C程序设计教学探讨[J].计算机教育,2007,6.
[7]张静.C语言程序设计教学改革的探讨[J].理论探新,2002,11:344-345.
中图分类号:G642
文献标志码:A
文章编号:2096-000X(2016)12-0062-02
*基金项目:四川省2014-2016年高等教育人才培养质量和教学改革项目(编号:11100-15Z006/004)
作者简介:赵仕波,男,副教授,研究方向为计算机应用。