前言:我们精心挑选了数篇优质计算机语言的概念文章,供您阅读参考。期待这些文章能为您带来启发,助您在写作的道路上更上一层楼。
关键词:OWL;相似度;本体
中图分类号:TP301.6文献标识码:A文章编号:1007-9599 (2012) 05-0000-02
一、引言
本体可以提供强大的知识表示方法,是信息检索领域中的重要内容。传统的本体概念相似度计算方法大多采用特定于描述语言的通用推理服务来进行匹配,这些方法忽略了概念的语义信息。在概念检索或语义查询系统的实验过程中,利用本体对领域知识进行建模,使查询结果满足语义方面的匹配,避免了基于关键字进行简单查询的局限性,在构建基于本体的语义信息检索系统的过程中,提高了查询结果的准确率和召回率。
二、本体描述语言OWL
OWL(Web Ontology Language)是语义Web中本体描述语言的标准。OWL在资源描述框架RDF(Resource Description Framework)的基础上,添加了更多的语义结构的声明,从而对RDF进行了扩展。OWL语言建立在描述逻辑DL(Description Logic)的基础上,因此OWL具备良好的知识表示能力和机器推理能力。领域知识本体可以做如下定义:
Onto=(V,C,P,H,R) (1)
其中:V表示概念词汇集,C表示本体概念,P表示属性,H表示层次,R表示概念之间的关系。
分析OWL语言中描述元素,对于基于语义特征的概念相似度计算方法非常重要。OWL语言中有四类不同的语义描述元素:
第一类描述元素用于定义本体中实体集合,主要包括类Class和实例Instance。
第二类描述元素用于生成一个本体的特征集合,包括描述本体实体的类层次描述元素和属性特征描述元素以及其他各种约束的描述元素。
第三类是用于描述实体之间,以及特征之间的异同关系的描述元素。
第四类是本体中的补充性的描述元素,以及现有算法尚不能有效支持的特征。
三、基于本体的概念相似度计算
(一)属性相似度
在现实世界中,事物可以由各种属性来进行描述和分类,属性的相似度可以通过两个概念属性集合的相似程度来进行计算。
其中,Ci∩Cj表示概念Ci与概念Cj的相同属性集合;Ci-Cj表示在概念Ci中存在而概念Cj不存在的属性集合;Cj-Ci表示在概念Cj中存在而在概念Ci中不存在的属性集合,α,β,γ为调节权重参数,且α>β=γ。
(二)语义层次距离
本体作为一种知识表示模型,其所包含的概念、属性和关系可以通过有向图的形式进行表示,节点表示概念,边表示关系,概念之间的语义距离可以表示为概念节点之间最短路径边的数目,用 表示。语义相似度和语义距离之间存在如下对应关系:
1.两个概念间的语义距离为0时,其相似度为1;
2.两个概念间的语义距离为无穷大时,其相似度为0;
3.两个概念间的语义距离越大,其相似度越小。
在本体中,如果两个概念的语义距离相同,那么概念的语义相似度由它们所处的层次决定,所处的层次越深,其所对应的语义相似度越高,反之则相反。
其中,h为本体有向图的最大深度,L为概念Ci和Cj之间有向边的数量。考虑到层次深度对语义相似性的影响,同时,层次深度也能判断出两个概念的上下位关系。综合考虑语义距离和层次深度,可以使用树形结构来对本体进行表示.
其中,hi和hj分别表示概念Ci和Cj在本体树中的深度; 表示本体树的最大深度; 为调节参数,对系统所需的相似度进行动态调节,表示本体树中深度和广度对概念相似度的影响。
(三)基于属性和语义距离的柔性相似度
本体概念的相似度要综合考虑概念的属性以及概念之间的关系,它们对概念的相似度具有重要的影响。综合考虑概念的属性和层次关系对概念相似度的影响,对公式进行权重调整,得到领域本体中两个概念的相似度计算模型.
其中, 是权重系数。由于概念相似度的主观性较强,因此对于不同的服务请求,可以通过权重系数的调节来决定本体概念的属性和层次关系对相似度的影响,从而确定系统所需要的相似度阈值。概念相似度的变化趋势是一种线形关系,参数的取值会影响相似度的大小,但是对概念的相似顺序没有影响。
(四)算法描述
给定相似度算法sim(Ci,Cj),该算法最主要的工作是计算两个概念的相似度。相似度算法描述如下:
第一步:预处理。构建相似度矩阵A,提供任意两个概念之间的相似度度量,其中Aij=sim(Ci,Cj)。显式定义所有的等价概念和反义概念的概念元素集合,赋值为1和0,在相似度矩阵A中,除了能被初始化的元素,其它每个概念的取值都与中参数取值有关的,因此,对同一个概念,可能得出不同的相似度,设定相似度的取值区间为(0,1)。
第二步,解析本体文件,并抽取出本体中的类、实例和属性,并根据其在本体树中所处位置设置参数构建特征向量,向量的相似性反映了本体中的类、实例和属性的相似程度。
第三步,计算概念之间的特征向量的公共属性和差异属性,并根据实际需要,设定概念差异的参数。
四、实验
本体概念相似度,即依赖于概念属性的相似程度,又依赖于本体概念的层次关系。概念的相似属性越多,说明两个概念越相似。而概念的层次关系反映了领域专家对概念的层次关系的定义,如果调整了概念的层次,相似度也会发生很大的变化。
实验所用本体数据采用Protégé 2000自带的pizza本体,pizza本体包含97个类命名,采用了OWL语言描述。该本体描述了领域内的概念、属性以及它们之间的关系,很好的体现了本体的语义特征。根据上述公式的计算方法得到的概念相似度结果。其中各参数取值为:ρ=5,α=0.6,β=γ=0.2,θ=0.2。
对于概念相似性的判断,通常以领域专家的判定作为标准。对于一般的概念,领域专家给定的概念匹配顺序为:同义概念>父子节点>相近属性的节点>兄弟节点>其它节点。虽然使用了不同的计算方法,但是得到的概念匹配顺序基本相同。实验结果客观地反映了本文所采用的概念相似度计算方法的有效性。
PizzaTopping与PepperTopping作为较近的属性结点,相似度要大于作为兄弟结点的PizzaTopping与PizzaBase,同时小于作为父子结点的PizzaTopping和VegetableTopping,同一个父节点VegetableTopping和CheessTopping与VegetableTopping和PepperTopping相比,属性相似度大的概念综合相似度大。
TF-IDF(Term Frequency Inverse Document Frequency)方法是文本相似度的计算方法中最为典型的一种方法[12],传统的TF-IDF方法是一种将文本转化为向量形式,用于计算文本相似度。该方法没有考虑到概念的属性相似性,本文利用领域本体改进传统的TF-IDF的空间向量模型:
其中, 是传统TF-IDF方法的计算权重; 是概念在领域本体中计算得到的权重; 是根据TF-IDF值对本体相似度进行加权处理得到的计算结果。
评价信息检索性能优劣的最通用和最重要的两个指标是查准率(Precision)和查全率(Recall),因此本文采用查准率P和差全率C对实验结果进行评估。
相似度的结果不同,会对查准率和查全率产生比较大的影响,一般情况下,查准率和查全率会呈现出相反的趋势。由于查全率对于大规模海量数据不容易进行统计,因此通常只有在数据规模较小的情况下才能统计出来,因此,查准率比查全率更容易进行统计,在实际应用中也更有意义。
实验所用测试数据来自Yahoo!网站收集的关于pizza的数据。本文采用支持向量机SVMs(Support Vector Machines)[14]分类方法,使用空间向量模型对测试文本集合进行分类测试。本文对两种权重表示的测试文本进行分类,对于不同的惩罚系数c进行实验比较,
利用本体改进的概念相似度计算方法,在不同的惩罚系数下,本文方法比传统的TF-IDF权重在分类准确率方面有一定的提高。实验表明本文方法能充分利用OWL的语义特征来计算相关概念之间的相似度,因而可以为基于本体的文本分类和聚类方法提供参考。
五、结论
本文提出了一种基于OWL语言描述的本体概念相似度计算方法,通过结合OWL属性特征与概念层次关系来计算概念相似度,并通过与传统的TF-IDF方法进行比较实验。实验结果表明,本文的相似度计算方法能够有效的反映出概念之间的语义相似度,对文本分类的准确率方面有明显提高。本文的后续研究将在现有探讨语义相似度的基础上,进一步分析本体描述语言所包含的语义特征与概念属性的权重问题等,这对于基于本体的文本分类和聚类问题研究有着积极的作用。
关键词:语义检索;概念语义树;语义相似度
中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2011)16-3809-02
Research on Method of Semantic Similarity Based on Concept Semantic Tree
HAN Xin, QIN Fan
(School of Electronics and Computer Science and Technology, North University of China, Taiyuan 030051, China)
Abstract: At present, the application of information retrieval has been widely used, but it is still a difficult thing to be accurate in the specific field of searching. This paper provides a semantic similarity calculation method based on the concept semantic tree, considering the concept of the semantic relations, hierarchies, and inheritance and other factors, as much as possible to improve retrieval efficiency in specific areas of information, and at final, demonstrate the feasibility of the method by experiment.
Key words: semantic retrieval; concept semantic tree; semantic similarity
传统的信息检索都是基于关键词查询的,因此在检索时可能会出现一堆用户并不真正需要的信息,导致查询结果的准确率很低,查全率也不令人满意,会出现“表达差异”,“词汇孤岛”等问题。语义检索就是把信息检索从传统的基于关键词层面提高到基于语义的层面,从语义方面着手,分析概念之间的内在联系,利用语义来组织、存储和获取信息,信息和语义的结合,使信息变成计算机可识别的知识,从而系统能识别出用户所需要的信息,提高检索的查准率和查全率。
1 语义相似度
语义相似度是对语义相似性的定量表示,语义相似度计算是信息检索、数据挖掘、知识管理等领域的基本问题。在信息检索中,语义相似度能够更多的反映文本概念是否符合用户的查询要求,相似度越高,说明文本内容与用户的查询请求越接近。
刘群、李素建[1]基于实例的机器翻译,提出语义相似度就是两个不同上下文本中的本体概念,在不改变文本的句法及语义结构的情况下可以互相替换的程度。如果位于不同上下文本中的两个概念词语在不改变文本的句法及语义结构的情况下可以互相替换的可能性越大,则说明二者的相似度就越高,否则相似度就越低。
当两个语义概念元素x,y相似时,用sim(x, y)表示两者之间的相似度,形式上,相似度计算满足[2]:
1)相似度的值为[0,1]区间中的一个实数,即sim(x, y)∈[0,1];
2)如果两个对象是完全相似的,则相似度为1,即sim(x, y) = 1 当且仅当x = y;
3)如果两个对象没有任何共同特征,那么相似度为0 ,即sim(x, y) = 0;
4)相似关系是对称的,即sim(x, y) = sim(y, x)。
2 概念语义树
使用层次化的树状结构来描述概念之间的逻辑关系,这种语义化的概念树为检索算法提供语义基础,在检索过程中不同的概念之间也有一定的相似性和相关性,因此需要处理概念树中祖孙节点、兄弟节点等不同类型的关系,我们考虑用概念间的相似度对其进行描述和量化,以提高检索的准确率为了计算概念相似度,作如下定义[3-4]:
定义1:在本体概念的树状层次结构中,如果概念A和概念B之间存在这样的关系:A是B的祖先,则称A和B为同支概念。概念A称为A和B的最近根概念,记为R(A,B),而A、B之间的距离dist(A,B)=dep(B)-dep(A),其中depth(C)为概念C在层次结构中的深度。如图1(a)所示。
定义2:在本体概念的树状层次结构中,如果概念A和概念B之间存在如下这样的关系:A不是B的祖先并且B也不是A的祖先,则称A和B为异支概念。如果概念R是A和B最近的共同祖先,并且是符合此条件的所有节点中距离概念树的根节点最远的一个,则称R为A和B的最近根概念,记为R(A,B),且A、B之间的距离为dist(A,B)=dist(B,R)+dist(A,R),如图1(b)所示。
定义3:概念C 称为概念A 和B 的语义相关概念,当且仅当概念C 满足如下的条件:当A, B 为同支概念时,C 在以A 为根的子树中且不在以B 为根的子树中;当A,B 为异支概念时,C 在以R 为根的子树中且不在以A 或B 为根的子树中。
在计算语义相似度时,A和B各自的子概念数以及它们的语义相关概念数对相似度计算结果也有影响, 当A,B为同支概念时,A的子概念由B的子概念和A,B的语义相关概念组成,前者所占的比重越大,则概念A,B的语义相似度越大;当A,B为异支概念时,R的子概念由A 的子概念、B 的子概念以及A,B 的语义相关概念三部分组成,前两部分的比重越大,则A,B 的语义相似度越大。
1)当A,B为同支概念时,A与B之间的语义关系为:
式中,m表示概念B的子概念数,n表示概念A的子概念数。
2)当A,B为异支概念时,A与B之间的语义关系为:
式中,m表示概念B的子概念数,n表示概念A的子概念数,X表示A与B最近根概念的子概念数。
定义4:两个概念之间的语义距离,是指在语义树中连接这两个概念的最短路径的长度。语言学研究认为,两个概念的语义距离越大,其相似度越低;反之,两个概念的语义距离越小,其相似度越大,两者之间可以建立一种简单的对应关系。特别地当两个概念之间语义距离为0 时,其相似度为1;当两个概念之间的语义距离为无穷大时,其相似度为0。两个概念之间的语义距离表达式为:
式中,distant(A,B)表示概念A与B之间的语义距离,weighti表示连接A,B的最短路径上第i 条边的权值。
定义5:概念的深度是指该概念与语义树根的最短路径中所包括的边数。因为在语义树中,每一层的概念都是对上一层概念的细化,由此可见,在语义距离相同的前提下,两个概念的深度和越大,概念之间的相似度越大;两个节概念的深度差越小;概念之间的相似度越大。概念深度的表达式为:
式中,depth(A)表示概念A的深度,n表示概念A与语义树根之间的最短路径中所包括的边数。
3 语义相似度计算方法
考虑概念语义树中概念之间的层次关系、继承关系及语义关系,我们提出下面这个关于语义相似度的就算方法:
其中:Level(A,B)表示概念之间的语义关系对相似度的影响;
Distant(A,B)表示概念之间的语义距离对相似度的影响;
Depth(A,B)表示概念之间的深度对相似度的影响。
但对概念语义树中层次结构分以下这两种情况考虑:
1)当A,B为同支概念时,A与B的语义相似度为:
2)当A,B为异支概念时,A与B的语义相似度为:
α,β,γ为调节因子,且α+β+γ=1.
4 实验结果
选取如图2一个简单的实例来计算语义相似度。
选参数α=0.6,β=0.3,γ=0.1,可得到“计算机”与其余各节点之间的语义相似度为:
参考文献:
[1] 刘群,李素建.基于《知网》的词汇语义相似度计算[J].Computational Linguistics Chinese Language Processing,2002,7(2):59-76.
[2] 李玲.面向流程诊断的企业知识相似度匹配工具研究与开发[D].哈尔滨:哈尔滨工业大学,2006.
[3] 王进,陈恩红,施德明,等.一种基于语义相似度的信息检索方法[J].模式识别与人工智能,2006(6):2-6.
一、前言
随着计算机的普及,我国越来越多的高校已经把计算机?n程作为公共教学内容,所有大学生能熟练地使用计算机,这也为计算机专业教学带来了巨大的挑战。如果继续使用过去传统的教学模式,计算机专业学生的计算机综合应用能力跟其他专业的学生相比并没有明显的优势,从而在就业方面受到来自其他专业学生的挑战。因此,各高校计算机专业的教师应该根据计算机行业的发展前景和发展热点,对计算机教学进行以就业为导向的改革,使教师教得新颖,使学生计算机应用能力得到全面提高,从而获得更好的就业机会[1]。基于CDIO理念的教学模式代表了近年来国际工程教育改革的最新成果。CDIO包括构思(Conceive)、设计(Design)、实现(Implement)和运作(Operate)四个阶段,它将产品研发到运行的完整生命周期运用到教学过程当中,是一整套工程教育理念和实施体系[2]。CDIO让学生可以通过实践的方式学习工程理论知识,积累工程实践经验并提升对专业知识的综合应用能力。本文通过对CDIO工程教学模式的研究,提出以就业为导向基于CDIO理念的大学计算机教学改革新方案,将计算机行业的发展热点内容加入到基础理论教学当中,并与实践能力训练相结合,使学生把基础理论运用到实践中,并且在实践中加深对基础理论的理解,真正达到学以致用的目的。从根本上提高学生的计算机综合应用能力和就业竞争力,满足社会对计算机工程人才的需求。
二、基于CDIO理念的大学计算机教学改革
CDIO理念下计算机改革的目的是从就业视角出发培养学生的工程实践能力,进一步提高学生的就业竞争力。因此,在进行教学改革时应当将CDIO理念与具体教学实际相结合,把构思、设计、实现和运作四个过程应用其中,如图1所示。
该方案中教师应当构思改革目标和方向,突出以就业为视角的大学计算机教学改革前瞻性和必要性,考虑以何种方法和步骤推进改革的顺利进行,将计算机工程实际与课程教学建立联系,为接下来的设计步骤做好准备,然后设计并构建出真实的计算机工程实践平台,还需安排相应的综合课程,为学生创建合适的工程实践场所,做好理论与实践学习相结合的前期准备。在实现部分,“填鸭式”教学等传统的教学模式已不可再套用,教师和学生的关系也亟待改变,教师应在学生主动学习的过程中起到引导作用。在运作部分,为了保证学生的学习效果,验证CDIO理念的实效,应当衡量每个学生对规定学习效果所完成的进度,要求教师对学生的学习效果进行评估。因而,CDIO理念下的大学计算机改革方式应包含以下四个方面的内容。
1.构思(Conceive)改革目标及方向。工程教育应该注重如何将学科知识转化为工程能力,这是工程教育的本质和出发点。面对当下计算机行业的巨大就业压力和残酷的竞争淘汰率,大学计算机教学改革更应当以此为改革的出发点和落脚点,这要求教师在进行教学改革前深刻构思改革目标和方向方法,思考何为改革、为何改革。显然,新时期的计算机教学改革对教师提出了更高的要求,教师不再进行单纯的课本知识的教授,而是转型成为兼具计算机工程项目的设计和专业知识的传授双重教学能力的“双师型”教师。
2.设计(Design)综合课程和工程环境。教师是计算机实践课程的设计者。由于现在的学生缺乏实际动手能力,计算机教学中应安排丰富的工程实践项目,尽量让学生以亲自动手的方式进行[3]。教师要基于CDIO理念的预期目标,以实现良好就业为着力点,合理安排教学内容和方法,设计出有助于学生计算机工程水平提高和积极情态建设的一体化课程,计算机类学生就业能力集中体现在实践项目的方方面面,教师在课程的选择和设计上也需要花费更多的时间,才能设计出以项目为主导的启发性知识链的教学模式。同时,教师也是工程实践场所的设计者。教师在设计课程的过程中,必须同时考虑设计与之相匹配的实践场所,工程实践场所的构建应以提升学生团队合作能力和动手能力为目标。
3.实现(Implement)师生角色的双重改变。传统教学模式下师生关系的特征表现为“以教师为中心,学生被动接受”。CDIO模式将不再局限于传统教学方法,学生的主动学习和经验学习应在CDIO环境下促进其工程实践能力与就业竞争力。有学者指出,CDIO理念要求教师不断创新,他们的教学风格要始终以学生为中心,要不遗余力的传授大纲中规定的软硬件开发以及系统构建的能力[4]。基于这一要求,在计算机教学过程中学生应进行“一体化学习”,即学生在工程实践环境中学习计算机学科知识的基础上,进一步培养其软硬件开发和系统构建能力。一体化学习是CDIO框架的重要特点之一,学生将完成从被动灌输到主动探究的转变,教师应当保证每位学生都能主动参与到团队项目开发中,使他们的团队合作能力和工程能力得到充分的培养和锻炼。CDIO理念下的实现过程,即在具体的计算机实践课程教学过程中,师生关系从教师管理学生转型为教师引导学生,教学模式从“填鸭式”知识传授转型为互动式探究讨论。
4.运作(Operate)良性循环的教学关系。对学生采用考核或评估的目的是为了考察学生的学习情况。传统的计算机课程评估方法往往采用的是正确率越高越优秀的试卷考核,且学生和教师之间缺乏学术沟通和实践交流。这样培养出来的学生多数都存在理论分数高、动手能力差的问题,毕业后在计算机行业也难以立足。与此相反,CDIO教学通过关注学生在学习前、学习中和学习后三个不同时期的学习“证据”,全面了解学生的学习成绩和学习情态的转变。这种评估聚焦在学生学习上,其作用是通过考核学生的计算机理论知识、实践能力和综合素质而得到学习效果的反馈信息,从而不断改进和完善课程设计、教学方法以及学习场所的设计和使用。显然,新型模式对学生计算机能力的考核由单一注重理论知识的传统模式向“知识+能力+素质”的综合考核模式转变,其中能力是指计算机工程实践能力,学习效果应反映在计算机工程技术上而非分数上。
【论文摘要】课程改革是高职教育的重点和难点,也是高等职业教育的核心任务,课程体系改革以培养高等技术应用性专门人才为根本任务,以适应社会需求为目标。以培养技术应用能力为主线。设计学生培养方案及构建课程、教学内容体系。本文就高职两年制《计算机应用技术专业》构建以就业为导向、能力为本位的双证课程改革进行探讨。
高职高专院校办学成败的重要标准之一就是社会和用人单位对学校和学生的认同。在高职高专院校倡导学历证书和职业证书并重的观念,有助于培养具有一定理论知识、熟练掌握职业基本技能、综合能力较强的技能型人才,对于增强毕业生就业能力具有极其重要的意义。“双证”并重,将从根本上推动高职高专院校人才培养模式的创新。
一、课程改革是培养应用性人才的核心任务
高等职业教育直接依存经济发展,直接为经济建设提供需要的人才资源,我国在推进新型工业化的过程中,政府、行业、企业和社会各界更加关注职业教育的发展。职业教育要适应经济和社会的发展的需要,必须提高自身的创新能力,不断推进体制创新、制度创新和深化教学改革。按照教育与社会发展的关系,教育对社会变革的反映,无论表现在教育思想的更新,还是教育方法的改革,最终都要聚焦于课程的改革,课程改革是高职教育改革的重点和难点,也是高等职业教育的核心任务,日益发展状大的高职教育应该抓住课程改革这个突破口,培养高质量的人才,适应知识经济、信息化社会发展的需要。
在新世纪,以微电子技术为基础,计算机、通讯、网络、自动化、电子技术为主体的信息技术是当前人类社会中发展最快、渗透性最强、应用面最广的先导技术。信息技术的广泛应用推动着以信息产品制造业、软件业、信息系统集成业和信息咨询服务业为主体的信息产业的发展。新世纪信息已成为重要的生产要素和战略资源,信息技术成为先进生产力的代表,信息产业将发展成为现代产业的带头产业,人类即将跨越工业时代进人信息时代。因此,信息化成为当今世界经济和社会发展的大趋势,大力推进社会和国民经济信息化是推进我国社会主义现代化建设的重要任务。信息技术和产业的发展不仅需要大批专业技术人才,而且还产生一批新的职业岗位,勿庸置疑,信息及相关职业将成为未来最走俏的职业。
信息技术的人才需求将呈多元化、多层次趋势,表现在科学、工程、技术、管理、服务诸多方面。不仅需要从事信息科学、信息技术研发的人才,而且更需要把研发成果转化为现实产品的技术和管理人才。在IT领域高职教育肩负着为信息产业及信息应用领域培养技术应用性人才的任务,他们是这一领域的技术专家和管理专家,可以在相应的行业、专业担任软件工程师、程序设计员、系统开发工程师、网络管理员、项目经理、市场营销和技术服务等职,从事设计、测试、系统维护、网络管理等方面的工作。
近年来高等职业教育研究与实践已取得丰顺成果,但高等职业人才培养尚存在着系统偏差,这一系统偏差集中表现为人才培养的效果与市场需求之间的差异和距离,而导致这一偏差存在的直接原因是课程,本应由高职培养的高素质技能型人才则由于培养效果与市场实际需要的差距,毕业生在就业市场很难满足雇主的要求。其结果是在这一领域“有需求没人才”。我国高职教育人才培养在教育结果与市场需求之间的系统性偏差是当前高等职业教育改革的关键,导致这一偏差的重要原因是课程模式的陈旧,因此课程改革已成为当前我国高职教育面临的核心任务,积极探索以就业为导向,以能力本位为核心,以产业需求为目标的课程改革是当务之急。
二、以能力为本位的双证课程改革
课程就其实质而言是一种在展开教育、教学等育人活动之前对育人方案的总体设计活动,它涉及教学思想与教学目标,教学内容与教学方法,教师队伍建设、教学基本条件与教学管理等方面。
(一)双证课程体系改革应遵循的指导思想
根据我国社会信息化和信息产业发展对人才需求的特点,考虑不同地区经济、社会和技术发展对职业教育与培训的不同要求,以提高学生的职业实践能力和职业素养为宗旨、以就业为导向、以能力为本位、以产业(行业)需求为目标构建专业培养方案。
(二)双证课程体系改革的基本原则
双证课程体系改革应以培养高等技术应用性专门人才为根本任务,以适应社会需求为目标,以培养技术应用能力为主线,设计专业培养方案及构建课程、教学内容体系。为保证课程体系改革这一目标的实现,必须坚持以下原则。
1、坚持双证课程设置的接轨原则即课程设置与就业需求接轨与行业(职业)标准接轨。课程体系建设,首先应考虑到社会和就业市场的需求应按照就业岗位所需技能有针对性地进行课程设置,同时将课程标准与职业标准有机结合起来,在培养方案中嵌人职业证书和部分企业证书的要求,帮助学生积累实际工作经验,使学生在不延长学制的情况下,同时获得职业证书,突出职业教育的特色。
2、坚持以能力培养为核心的原则围绕职业能力这个核心在进行课程体系设置时,必须确保各项能力目标都有相应的课程和课程模块。即以能力为中心构建理论教学体系和实践教学体系,拓宽基础,注重实践加强能力培养,提高综合素质。以能力培养为核心,必须突出课程的应用性,一方面要以解决实际问题为中心,打破学科界限,使内容组织服从于要解决的职业领域的问题;另一方面要强调课程模式的实践性,要求增加实践性教学环节的比重,使学生有机会将专业知识与职业技能结合起来,增强职业适应性。另外以能力培养为核心还应加强学生创业能力的培养,我们应在课程的设置和教学中注重创业能力培养渗透。
3、坚持课程体系的整合与开放原则整合是在原有的课程基础上或融合或组合或叠加,有机地整合成一种灵活实用的新型的高职课程体系,采用模块化的组合形式将知能与技能组成灵活的教学单元,便于课程目标和教学目标最佳实现。
教育实践和理论研究表明,创造能力之大小强弱,在很大程度上取决于创造主体知识面宽窄及各类知识的综合水平。因而,在设置课程体系时必须坚持开放性原则,为学生提供宽广的知识背景,也使学生在学习过程中学会知识的通透融合,相互整合并转化为能力,进而形成多学科,多视角的创新方式和能力。
(三)双证课程体系的主要内容
从知识本位转向能力本位是以就业为导向来设计高职课程内容的内在规律所决定的。双证课程内容以职业能力为本位,将使课程突破原有学科理论体系的束缚,形成鲜明特色的职业培养目标,使毕业生缩短与实际工作岗位的距离。
课程内容的职业能力化趋势是在强调教学内容的实际应用和实践,基础理论课服务于实际应用的需要,以“必需、够用”为度,在教学中不再保持学科体系的逻辑严密性;强调以职业所需的能力为主线,课程内容包括胜任岗位职业所需专业知识、工作技能和工作态度的培养,包含职业角色对从业者的各项能力要求;强调把职业资格标准融人课程体系推动课程教学与职业资格考试在教学内涵上的整合。在传统学科本位思想的影响下,高职院校课程设置大量使用诸如“基础课、专业基础课”等名词,为了摒弃旧的教育教学观点,真正摆脱传统学科教学的束缚,构建能力本位的课程体系,把课程设置分为通识课、通用技术平台课、认证课、专业任务课与实习。通识课包括必要的基础课程、文化素质课程、马列、体育课程、科技讲座。通用技术平台课程包括问题中心课程和技术中心课程。认证课程包括职业资格和技术等级证书课程。专业任务课包括职业单项能力任务课程和职业综合能力任务课程。}z}改变过去公共课占比重较大问题,因此有必要以“必需、够用”为度压缩公共课的比重,并且根据课程体系的整合原则,结合专业课程的学习需要,有机融合,使学生在两年内完成学习任务。 三、双证课程体系改革的实践
课程体系改革是一次复杂的系统工程,它涉及到教学的各个环节,随着改革的不断深人,它必将引发一系列的变革。
(一)教材建设方面教材是教学内容和课程体系改革的集中体现,也是课程建设的重点,教材要根据能力培养模式的总体设计,尤其是根据人才知识、能力、素质结构调整的整体走向,处理好传统内容与现代内容、传授知识与提高素质、基础与应用、继承与创新及统一性与多样性等关系,摒弃陈旧的观点和内容,反映最新学术研究成果;要重点开发既有理论、又有实践,适合培养技术应用和运用能力的课程和课程群;开发职业技能培训课程,帮助学生得到多种专业技能证书。围绕能力培养核心,根据信息产业对IT类复合型高技能人才的需求状况并结合我校实际,经充分论证,并参考CEAC(信息产业部计算机教育认证项目)的课程认证标准,开发编写系统教材,包括对((计算机应用基础教程))的修订和新编《C语言与数据结构》《网页设计与制作(三剑客十HTML十实训)》
在教材编写的过程中,要始终以素质教育的思想和观念为指导,立足以职业素质为基础,以职业能力为核心,以职业技能为重点的教材改革方案。培养学生热爱祖国,热爱大自然,热爱生命的思想情感及崇尚科学,实事求是的科学态度;注重人文精神的渗透,引导学生正确理解科学、技术与社会的关系,把学习知识,培养能力与体验情感有机的结合起来,使学生既具有较强的业务能力,又具有爱岗敬业,踏实肯干、谦虚好学和与人合作的精神,乐于在生产、建设、管理和服务第一线工作。
(二)学生成绩的考核考核是巩固学生所学知识,检查课程教学效果的重要环节。我们应当建立与课程体系改革相适应的一套科学而严格的考核制度。围绕能力培养,我们的考核方式应当多元化,考核可采用职业技能证书、笔试、口试、答辩、现场测试、实际操作等不同形式,考试与考查相结合。着重考核学生综合运用所学知识、解决实际问题的能力,通过改变考核方法,促进学生个性与能力的全面发展。坚持课程体系的开放性原则增加课外学分,鼓励学生自主学习和科研实践,对学生所取得的科研成果及获得的职业资格证书计算学分等,条件成熟的课程建立试题库,实行教考分离制度,以大纲为引导规范课程的教学,以考核检查课程的教学效果。
(三)实践教学环节实践教学是培养职业人才,提高教育质量不可或缺的重要环节,是技能型人才培养得失的关键。围绕能力培养核心,教学中要增加实践教学比重,在确定实践教学内容时,要使理论知识教学与技能训练有机地结合起来,要根据课程建设和改革的实际要求对实验实训内容进行系统化整合;跨课程的技能项目,要明确在哪门课程中完成以保证技能体系的完整性。
实践教学要改变过分依附理论教学的状况,探索建立相对独立的实践教学体系。实践教学在教学计划中应占有较大比重,要及时吸收科学技术和社会发展的最新成果,要改革实验教学内容,减少演示性、验证性实验,增加工艺性、设计性、综合性实验,逐步形成基本实践能力与操作技能、专业技术应用能力与专业技能、综合实践能力与综合技能有机结合的实践教学体系。要加强校内实验室和实习、实训基地建设。根据高职高专教育教学特点,不断更新教学仪器设备,提高仪器设备的现代科技含量,形成教学、科研、生产相结合的多功能实验室和实习、实训基地。同时要建设好相对稳定的校外实习,实训基地。
(四)师资队伍建设师资队伍建设是课程体系改革活动得以顺利开展的重要保证,为加强师资队伍建设,促进课程体系改革的顺利进行,应建立课程负责人制度,明确各门课程的课程负责人,并组建课程小组,从而建立一支稳定的课程教学队伍。由课程负责人组织制定并主持实施该门课程的改革规划,组织制定和修订课程教学大纲,课程教学规范等教学文件,组织本课程范围内的教学改革活动和教学方法的研究活动,负责本课程的教材建设,负责教师的岗前培训,努力建设“双师型”队伍。
关键词:SNS网络;计算机语言课;教学教辅
SNS网络是一种社区化网络平台,参与者可利用该平台进行聊天、交友、分享心情等活动,社区网络一经提出,吸引了很多青少年学生,在国内 ,特别以人人网、开心网等带有校园网络性质的校园网吸引了很多大学生,据调查表明,大学生参与这些网络主要目的是为了交友和娱乐,其中又以游戏为主,例如偷菜游戏就曾经风靡一时。计算机网络技术开发,虽然是以丰富人们的物质文化生活为目的,但是作为大学生而言,借助网络工具学习才是主要目的,因此很多学者就如何通过SNS网络进行教学教辅展开了研究,作者所在团队也展开了相应的研究,以江西省教育厅教学改革课题“SNS网络在计算机语言课教学中的应用”为依托,开展把SNS网络概念引入计算机语言课的教学实践。
计算机语言课教学有着和其他课程不同的特点,首先计算机语言课必须要求学生具备计算机,只有这样才能在学习过程中实践验证学到的理论,其次计算机语言课的学习对网络的依赖性较高,因为计算机语言是一种不断发展和创新的技术,要学好这门语言,就必须紧跟时代技术潮流,第三计算机语言课学习对团队要求较高,如今的软件工程已经不是小作坊式的概念,为了完成一项工程,必须集合数据库、界面、语言等多方面人力共同完成,而这些需求不能仅仅依靠项目组之间开会完成。因此根据以上计算机语言学习特点,总而言之一个小的开发团队就是一个小的社团,若干个团队组建一起就是一个大的网络社区,因此把SNS网络概念引入计算机语言课教学大有所为。
在把SNS网络引入计算机语言课程学习前,需要对学生进行一系列的调查研究,本文就调查过程中需要注意的一些问题,提出自己的观点,以供同行参考。
1、对学生计算机语言课程基础进行摸底:不同专业的学生,不同层次和年级的学生,其计算机语言基础不同,有些学生仅仅是学过基本的计算机语言,例如basic语言等,而有的学生则已经学习过高级面向对象语言,例如java语言,而有些学生则是第一次学习计算机语言,因此要摸清学生的语言基础,这对把SNS网络引入计算机课程教学教辅成功很重要。相关问卷可以设计为:之前学过什么编程语言?是否开发过应用软件?等等
2、对学生学习兴趣的摸底:即使是同样专业的学生,对计算机软件课程感兴趣的程度也不一样,有的学生甚至很厌恶学习计算机语言课,这些厌恶学习的学生调查问卷是调查问卷中的噪音数据,因此影响调查的真实性,保证调查问卷的数据真实性,就必须踢出这些学习的调查结果。
3、学习交流方式的摸底:有的学生学习喜欢一个人慢慢的摸索,有的喜欢在网上提问,而有的学生则很喜欢和同学进行交流沟通,因此在调查过程中,可以设计如学习过程中,你喜欢什么方式和老师沟通?利用网络进行语言课学习你认为是否有必要,你是否会参与等等问题。
4、对SNS网络的了解摸底:虽然SNS网络已经大行其道,但是对于SNS网络这一名词还是有很多人感到陌生,因此在调查之前要先讲明SNS网络的概念,并调查中要设计例如是否听说过人人网、开心网?是否进行过网上交友?如果您经常性进入某一网站,你最希望得到 ?如果有个学习论坛,你期待他能有什么功能?
5、对上网时间的调查:上网时间的调查目的是为了调查学生对网络的熟悉程度,对在网络上进行搜索能力的高低,同时也可以调查出学生利用网络进行自我学习的积极性和所占课余时间的比重。
当然进行调查问卷涉及方方面面,不可能仅仅是在以上五点,本文仅仅是从SNS网络引入计算机语言课教学调查问卷出发,就相关注意方面提出自己的观点,对于SNS网络在其他教学中的应用则应该根据实际情况而定。(作者单位:江西科技学院信息工程学院)
本文在江西省教育厅教学改革课题“SNS网络在计算机语言课中的应用”(编号为JXJG-11-19-15)和江西科技学院教学改革课题“SNS网络特性的教学辅助平台”(编号JY1303)资助下完成,特提出感谢。
参考文献
[1]谢晓林,余胜泉,程罡,等. 网络教学平台的新发展[J]. 开放教育研究,2007,13(5): 12-24.
关键词:计算机语言;创新方法;教学实效
中图分类号:G642 文献标识码:A 文章编号:1009-3044(2013)19-4465-02
计算机语言课程,在整个计算机学科体系中占据重要的地位。计算机语言课程的设置,有利于培养学生思维能力、分析实际问题能力的发展,有利于培养学生形成严密的逻辑思维能力。如何根据社会经济发展变化,提高计算机语言的教学实效,对程序设计语言课程的教学内容、教学方法、考核方式进行相应的改革,实现培养技术应用型和高技能型计算机人才目标,已经成为广大中职老师普遍关注和重点研究的课题。
1 营造课堂氛围,激发学生兴趣
建构主义学习理论认为,知识不是通过教师传授得到的,而是学习者在一定的情境(即社会文化背景)下,借助他人(包括教师和学习伙伴)的帮助,利用必要的学习资料,通过意义建构方式获得的。建构既是对新知识意义的建构,同时又包含对原有经验的改造和重组。在学习程序设计语言时,创建真实的教学环境,以探索问题来引动和维持学习者学习的兴趣和动机,让学生带着真实的任务学习,利用建构主义教学法创设学习情境,激发学生学习兴趣
兴趣是最好的老师,以建构理论为依托,创建并引导学生进入教学情境,只有身临其境,学生的兴趣才会被激发。学习计算机语言对中职学生来说是一件枯燥、难懂的事情,例如,在《VB程序设计》课程教学中,看到那些抽象的概念和难懂的语句,学生的学习兴趣就没了。为了避免学生出现对VB这门课的误解,对它失去兴趣,所以在初学时,教师不要一味地讲授纯理论知识,可以通过实例的演示,如:五子棋、俄罗斯方块等,体验用计算机语言编写的程序游戏所带来的乐趣,以此吸引学生的注意力和兴趣。还可以对日常生活中的一些数据进行统计,在这一系列的活动培养之后,学生对学习计算机语言就产生了兴趣,为了进一步培养他们的学习热情和主动学习的态度,此时让学生亲自动手上机验证并运行程序,让他们获得成功的喜悦,当他们获得这份喜悦之后,学习VB等计算机语言的兴趣也就自然产生并迫切想学习这门看似枯燥的学科了。这样,通过情境的创设激发了学生的学习兴趣,并让他们变被动学习为主动学习,结合现实生活的实例,充分调动了学习计算机语言的积极性,在教学过程指导学生运用所学的知识来处理生活中的一些事务,从而为他们提供了解决实际问题的机会,让他们从情境走入生活,又从生活返回情境当中总结并延伸所学的知识。有效地激发学生的兴趣,是提高教学实效的前提条件。
2 创新教学手段,提升教学实效
为了进一步提高计算机语言课程的教学实效,教师必须致力于创新教学手段。在建构主义理论的指导下,教师应当努力转变教育理念,逐步实现教学方法的创新。只有确实做到以学生为中心,以学生主体实践为主,以培养学生创新素质和健全人格、特别是创新精神和创新能力为基本价值取向的教育思想,那么,学生在整个学习阶段,才能够持续保持对学习的高度兴趣;学生对于计算机语言的实际应用能力,才能够得到明显提高;学生的整体素质,才能够得到有效提高;计算机语言课程的教学质量,才能够得到稳步提升。
2.1 加强创新的教育理念,培养学生主动探索知识的能力
转变教育理念是创新教育的前提。创新的教育理念是以学生为主体,教师为主导,培养学生创造性思维能力。这是一个复杂的过程,特别对于学习计算机语言的中职学生来说,是一个挑战。只有摒弃传统教学中的不足之处,避免满堂灌的教学方式,加强创新教育理念的培养,对教学过程进行改革和优化,才能很好地调动学生的学习积极性,取得更好的教学效果。
例如,在传授计算机程序设计的排序算法时,传统的教学就是以数字为例,老师讲、学生听,结果学生听得一头雾水,老师讲得精疲力竭还是无法把这一抽象的概念和算法完全传授给学生,如何能把抽象化具体?教师可以结合情境教学,让学生直接参与排队这一活动来加深学生的直观印象:在随堂的学生中抽取5名高矮不一的学生随机站立,然后让5名学生以不同的站法进行高矮不一的排队,教师按冒泡排序的方法指导学生演示,并对每次站法的改变进行记录。这样,随着传授知识的方式的改变,把一个抽象的概念转换成一次学生亲历的活动来体验,培养了学生主动探索知识的能力和实践能力,增强了他们学生计算机语言的信心。
2.2 采用创新的教学方法,培养学生的实际应用能力
一个有创造性的教师不单是上好一节课,而是怎样充分应用启发式、讨论式、参与式等创新的教学方法把比知识更重要的东西,即获得知识的方法、途径交给学生,发展学生的聪明才智,开拓学生思维来获得新的知识,培养他们的实际应用能力。为了达到这一效果,我尝试着用以下两种方法进行:
一是启发引导,开拓思维:学生学习,只有产生了兴趣,才会有动机,这样思维活动得以启动运行,获得信息,检验信息,使自己的知识水平由量变到质变,才能结出丰硕的成果,因此计算机语言教学中,对于一些基本概念可因势诱导,在实践的过程中去探知理论知识,改变以往的学习方法,加强学生对知识的理解和运用。
程序设计语言是实践性很强的课程,它必须掌握理论又注重实践经验,十分强调学生的动手能力。计算机语言的教材编写基本上把一些概念和算法都编排在课本的前面章节,在一开始学习计算机语言的时候,学生往往感到枯燥难懂。因此,必须采用创新的教学方法来启发引导学生进行学习。例如,在学习《VB程序设计》里关于对象、对象属性、方法、事件等概念,采用“实例分析”的方法进行传授,设计了一个计算并打印两门学科平均成绩的实例,然后指导学生完成如下操作:
1)在当前打开的窗体内添加命令按钮、文本框和标签,并分别设置各属性;
2)在命令按钮的单击事件过程中添加相应的代码;
3)按功能键F5运行程序。
学生完成任务得出正确的结果后,教师通过提问引导学生了解什么是对象的方法和事件,并从本例中找出对象的名称、对象的方法和事件过程。在学生基本掌握了这些概念之后,教师再进行归纳,进一步加深学生对这些概念的理解,也掌握了创建VB程序的基本步骤。不知不觉地,学生在愉悦的学习中拓宽了思维,解决了所有问题。
二是巧用方法,强化实践:以建构主义理论为依托的创新教学,倡导以“学”为中心的教学理念,围绕“真实任务”组织教学,学生在“任务驱动”下运用信息技术手段、搜集信息、处理信息、信息,最终完成任务。传统的教学注重理论,“讲而少练”或“讲而不练”,势必造成学生应付了事的学习态度。如何改善这种学习局面?必须以新的教学模式和教学方法引导学生自己动手,把理论知识运用在实践中去,让他们体验成功后的喜悦,激发他们的学习兴趣。以“任务”带动学习,在学习中不断探索挖掘更深层的能力,这是学习计算机程序设计所需要的一种方式。教师在设计任务的时候,应选择与他们实际生活相关的内容,以激发他们的兴趣。比如运用VB程序设计语言模仿设计一个QQ登录程序,这是学生都熟悉而且感兴趣的事情。一看到这个任务,学生的兴趣一下子被提起来,他们急于想看到自己的作品是否和网络上的QQ登录的界面一样,这就促使他们主动探索运用学过的知识,对于在设计的过程中遇到的问题也会自行寻求解决的方法,或请教老师、或自己查阅书本,培养了他们主动探知的精神和自主学习的态度。在完成这个界面设计后,他们更想能在局域网内(如在班级范围内)实现聊天的功能,这就促进他们更深入地钻研,不管成功与否,已大大提高了学生主动学习的热情。
“任务驱动”教学法证明了创新教育理念在教学过程中作用:能够以学生为主体,培养学生主动学习和深入研究的精神,强化了学生的实践操作能力。在计算机语言学习过程中,还可运用项目教学法、案例分析法等一些创新的教学方法引导学生自主学习,培养他们探索研究问题的精神和实际运用程序设计语言的能力。
3 改善评价体系,巩固教学实效
创新教育的教学评价不再是简单地对学习结果的评价,而应该采用过程性评价。它关注教学过程中学生智能发展的过程性结果,及时地对学生的学习质量水平做出判断。科学的评价体系能促进学生调节自我学习机制,是师生沟通的桥梁。能够客观地反映教师或学生在教与学的过程中的具体表现,促进教学效果的进一步提升,起到巩固教学实效的作用。
以算法为核心的计算机程序设计语言,对中职学生来说,学习起来是有一定难度,它包含了数学模型建构、逻辑推理等多方面知识,大部分中职学生文化课基础较差,底子薄,理解的程度也各不相同,获得知识的能力存在很大的差异,学习起来是茫茫然。过程性评价能够及时地发映学生学习中的情况,促使学生对学习过程进行积极地反思和总结,这在学习计算机语言是十分必要的。
例如,在VB程序设计综合实践活动中,教师采用任务驱动的方法让学生结合自己实际生活中的问题或对自己感兴趣的事项编写一个程序,比如:生活中的计算器、多媒体播放器或是娱乐方面的俄罗斯方块、猜数字、测试等,采用分小组的方式,并将学习进程分成三个阶段:填写主题,收集资料——分析算法,编写程序——展示交流,总结评价。在活动过程中,要求学生填写自我评价表和小组互评表,这是过程性评价的一个环节,通过自我评价,学生能够对自己在活动的整个过程进行反思和总结;小组互评,学生的成绩得到肯定,同时通过小组之间评价找出自己不易发现的问题。过程性评价对学习过程进行反思,更好地把握学习方式方法,进一步巩固了教学实效。
随着课程改革的不断深入,对创新教学提出了更高的要求和期待,创新教学方法的层出不穷为计算机语言的教学提供了保障,也大大提升了教学效果,为社会的需求作出一定的贡献。
参考文献:
【关键词】计算机语言;教学;措施
【中图分类号】G633.67 【文献标识码】B 【文章编号】1009-5071(2012)01-0281-02
计算机语言教学是让学员掌握人为计算机设计的语言特征,学会计算机语言程序设计技能,培养学员的创新能力。教学过程首先是让学员端正思想,明确学习计算机语言的意义;其次是让学员明白学习计算机语言最终就是学会编写程序。 下面谈谈计算机语言教学中存在的问题及计算机语言教学措施。
1 目前计算机教学中出现的主要问题如下
1.1 学生兴趣低、无法调动其学习兴趣:在计算机语言教学中,一般来说,学生兴趣比较低。学生往往认为要学习语言应该自己去专心地学,那样听老师讲课是无法很好地学习语言的,所以自学能力强的学生便自己去学习,而自学能力不强或者自觉性比较差的学生就可能会上课不听讲、下课不看书。而且学生对于整个语言学习不够重视,在考计算机等级考试和程序员的过程中,可以明显看出,很多学生都是抱着碰运气的态度去考的,而并没有明确的目的性。
1.2 计算机语言课教学深度与广度的不协调:计算机教学范畴之广确实让广大的计算机教育工作者在制定教学计划时不知从何下手,仅计算机语言就有几十种,并且在不断的更新,而教学的总学时却是不变的,为了让学生在校期间尽可能多的接受有关知识,为以后的就业工作创造条件,我们开设了Basic,PASCAL,C和汇编等多种语言课程,而每门课的总学时不过50学时左右,因此绝大多数讲授的只是语言最基本的语句和一些简单的算法设计,对于具体的语言版本却介绍不多如C语言只介绍标准C语言的语句和语法,对具体如Turbo C的库函数应用及其语言本身固有特点很少介绍或根本不予介绍,其结果学生语言知道不少,但没有一门是精通的。
1.3 学生程度参差不齐:在计算机语言课的教学过程中,发现学生计算机知识程度参差不齐,比如在授课的过程中,一些基础好的学生觉得早已听懂,而基础差的学生会觉得进度较快.这样使得基础好的学生不能深人学习,基础差的学生学习基础不扎实.从考试的结果看,各班的平均成绩差异较大,最高平均分比最低分相差25分以上,就是同一个班的成绩差异也较大.通过对考试的答卷进行分析,结果表明:学生对较死板的概念题答的较好,对简单的应用并且有确定答案的问题基本上也能回答,但对综合应用的题目大多回答错误。
1.4 程度设计能力差:笔者在调查过程中发现,学生最怕计算机等级考试(二级)中笔试的程序填空.机试的编程题,实际上难度并不大.从学生解决问题过程中可看出:结构化程序设计思想不强,几种常见算法如穷举、递推、迭代、递归、方程求解、字符串操作等不够熟练,综合运用知识能力较弱,缺乏创新思维.这样直接导致在完成程序填空时,阅读理解程序能力弱;编程时设计的程序结构不清晰、臃肿,可读性差,程序的效率较低。
1.5 程序调试能力差:表现在:许多学生虽拥有个人电脑,但多数学生只是比较熟悉Windows操作环境,不熟悉DOS操作环境,实验前没有做好充分准备。如不熟悉DOS命令的使用,不熟悉TC各菜单功能,不懂确立TC工作环境,不熟悉编译过程中出错的英文信息,甚至连syntax(语法)、statement(语句)、overflow(溢出)等单词都不认识,尤其当出现恶意语法错误时,C语言编译器也可能有故障隐患而给出名不符实的错误信息;不熟悉程序动态调试方法,如断点设置、单步执行、观察变量的当前值等;另外,学生录入程序的速度太慢,录入正确率低等。
2 计算机语言教学措施探讨
2.1 充分调动学生学习计算机语言的兴趣:对于计算机语言的学习来说,由于许多学生在以前并未接触过,所以他们会认为计算机语言是很深奥、很难学的,所以有许多人对计算机语言的学习缺乏信心。在这个时候,任课教师应该采取适当的方式激发学生的积极性和自信心。教师可以在上课过程中讲解目前计算机发展的历程和其中出现的重要人物,并讲解其中重要人物的成功历程,比如可以讲解国内“程序员之父”――求伯君老师以及他所组建的金
山软件公司。为了消除程序语言对学生的神秘性,教师可在课堂上当场编写一些小程序,并当场演示。教师也可讲解目前计算机程序人才的重要性和他们的待遇,以调动学生的兴趣和积极性。
1、程序设计是中学生计算机课程的基本内容吗?
2、必须“尽快终止”程序设计的教学吗?
最后提出了作者的看法:“中学计算机课程要以基础性知识和技能性操作为主,程序设计是更高层次的学习内容” 。在时间和学生的接受水平允许的情况下应该并尽可能早地在计算机课中安排一些程序设计内容,但内容和深度要根据不同年龄的学生认知特点做精心的安排。
当前关于中小学计算机课程设置的一个争论焦点是计算机课程中要不要有“程序设计”的内容,如果有,应该要求到什么程度?下面我们专门来讨论这个问题。
一、澄清几个概念
1. 计算机语言≠程序设计语言
在一些教师的脑中和普及计算机知识的书中,常把这两个概念混为一谈。例如一本全国范围发行的计算机普及读物中写道:“为了和电脑交流信息,也要通过语言,……,由于电脑语言就是用来告诉电脑按次序干什么事情的,所以电脑语言又称为程序设计语言。”可见这个问题不是个别人的问题,而是带有普遍性的问题,必须加以澄清。
什么是计算机语言?“①狭义的指计算机可以执行的机器语言。②广义的指一切用于人与计算机通讯的语言。包括程序设计语言,各种专用的或通用的命令语言、查询语言、定义语言等。”[1]现在一般采用后一种说法。
什么是程序设计语言?“泛指一切用于书写计算机程序的语言,包括汇编语言、机器语言,以及一般称为高级语言的完全符号形式的独立于具体计算机的语言。”[1]
上面两段引言很清楚地说明了计算机语言与程序设计语言之间的区别和联系。计算机语言是外延较大的概念,程序设计语言只是计算机语言下的一个属概念。“我们和计算机打交道,就要用计算机语言”这句话是对的,但用计算机语言与计算机打交道,不一定要用程序设计语言。我们用DOS命令,就是在用计算机语言棗命令语言;我们用鼠标单击某一图标,让计算机执行某一操作也是一种计算机语言。但它们都不是程序设计语言。当然这些命令语言,最后都要翻译成机器语言去执行,但这是计算机内部运行机制的问题,绝不能以此为理由把这两个概念混为一谈(否则也不用区分机器语言、汇编语言和高级语言了,因为它们最终也都要翻译成机器语言)。
弄清了这两个概念的不同,一些说法的正确与否也就不言自明了。例如有人说:“人们交流要通过语言,人要和计算机打交道,也要通过语言,所以要使用计算机必须学习程序设计语言。”前半句话指的是计算机语言,而后半句话指的是程序设计语言,由于“偷换”了概念,推理不合逻辑,结论也就不可靠了。当然说这句话的人,我相信绝不是有意的诡辩,而是由于概念的混乱,自己欺骗了自己。 我们使用计算机,和计算机打交道,一定要学习计算机语言。我们学习DOS命令,学习Windows操作,就是学习管理计算机资源的语言。我们学习某种应用软件的操作,也是学习计算机语言。总之,我们在学习计算机知识的过程中一直在学习计算机语言,一直是通过计算机语言和计算机打交道,但这不是程序设计语言。也就是说,学习使用计算机,一定要学习计算机语言,但不一定要学习程序设计语言。
2. 学习程序设计≠学习程序设计语言
在讨论中另一个模糊的概念是把学习程序设计和学习程序设计语言混为一谈。
我国著名的科学家马希文教授写道:“用一串符号把一个计算机过程描述出来,就是一个程序。……要制定一些严格的规则,以确定什么样的符号表示什么样的程序。这些规则的总和就叫做一种语言。”[2]
马希文教授又接着写道:“一个完整的程序设计过程大体有以下几个步骤:(1)要把程序的功能描述清楚。……(2)用程序语言把预定的计算方案书写出来。这是程序设计中最有特色的部分。简单的计算可以直觉地进行程序设计。复杂的计算往往可以由简单的程序按照各种模式搭配而成。然而,却没有一种机械的办法可生成各种程序,换句话说,程序的设计是一件具有创造性的工作。(3)证明程序的正确性。……(4)在实际工作中,试算和修正是不可缺少的。” [2]
从上面两段引言中可以看出,语言是“严格的…规则总和”,我们学习一种程序设计语言,就是学习这种语言的规则,即学习语法、语义、程序及其他一些规定。这里涉及的是严格的定义,严格的书写方法,没有任何的创造性可言(一个字母一个标点都不能错)。而学习程序设计是学习“设计过程”,内容主要是描述功能、书写方案、证明正确性和试算和修正。程序设计“是一件具有创造性的工作”,两者有着根本性的区别。 当然学习程序设计一般应选用一种语言作为工具,学程序设计就必须学程序语言,学习时两者是不可能绝然分开的。但问题是各自的地位是什么?以哪个作为重点?我们中小学的教学目标是什么?是让学生掌握一种程序语言呢?还是把程序语言作为一种载体,一种学习程序设计的工具,而把教学目标和重点落在程序设计的思想方法上?这就是当前计算机教学中的带根本性的分歧点。目前很多计算机教师在进行程序设计教学时,往往把很大的精力,甚至是主要精力放在语法和语义上,他们不自觉地把程序设计的课上成了“程序语言”课,违背了我们的教学目标,原因就是没有真正区别清楚程序设计和程序语言这两者之间的不同。
二、程序设计是中学生计算机课程的基本内容吗?
1.一部分人明确地提出计算机课中必须有程序设计内容,理由是“它是计算机学科的核心内容”。这里涉及到两个问题,一是程序设计是否是核心内容;二是中学计算机课程是否应该按计算机学科专业要求来设置内容。
对于第一个问题,在大学计算机本科教学计划《计算机教学计划1993》中列出了计算机学科主科目有九项,而“程序设计”仅是其中一项[3]。为什么在9项中只选择了“程序设计”这一科目为核心科目?为什么不选其他科目?理论上和实践上的根据是什么?
对于第二个问题早有定论,中学是基础教育不是专业教育,课程应该主要根据社会的需要来设置,同时考虑学生的接受能力和学科本身的需要。提出上述看法的人,不自觉地受到了“学科中心论”的影响,其理论基础就是错误的,因此论点也就不能成立。
2.有人认为,选“程序设计”内容是因为它可以培养学生的“分析问题和解决问题的能力”。这个论点在一定条件下说是正确的。我国十几年来在国内外计算机程序设计竞赛中,涌现出大批的优秀人才,这些学生的分析问题和解决问题的能力,通过程序设计锻炼确实有不同程度的提高,他们进入大学后的表现也证明了这点。 但研究任何问题不能脱离实际抽象地论证。我们这里谈的不是竞赛,不是少数优秀学生的课外活动,而是全体学生都要学习的计算机课程,即素质教育。目前我国计算机课一般在高一开设,总共只有60-70学时。在这几十学时内要学习计算机基本知识、基本操作,还要学习应用软件的使用以及操作系统的初步知识。这样留给学习程序设计的时间至多只有30多学时。在这样少的课时内,能学多少程序设计的内容?全体学生能达到什么水平?分析问题和解决问题的能力能有多大提高?根据笔者十几年的教学实践,至少需要40以上学时大部分学生才能学会初步BASIC程序设计,80以上学时才能进行真正的程序设计(算法设计),这时候才能真正谈及能力的提高。
另外,我们这里讨论的不是一些小问题,而是涉及到国家政策的制定,关系到千百万学生的大问题。因此结论必须有比较可靠的理论和实践根据,只凭个人直觉和的经验是不够的。提出这一结论的人能拿出什么比较可靠的科学的依据证明这一点?目前我们还没有看到。而国外一些实验却对这一假设作出了否定性的结论。美国的玛霞·林和她的同事在1985年的一份报告中表明,“在普通学校,学生在学习程序设计语言时,一般能力是重要的。能力低的组,最后程序设计语言成绩评定也低。能力高的组,最后成绩也高。”[4]美国银行街的柯兰德等人的报告也指出:“要成为程序设计的专家,至少要有500小时以上的上机时间,而大部分只有10-12台微机用于程序设计课的学校,上机时间很少,即使一些学生家里有计算机,对他们最后程序设计能力的测量,效果并不显著。”[4]虽然我国与美国相比有很多特殊性,美国的结论不能照搬到我国来,但还是有很大参考价值的。 因此,在较短时间内的程序设计课,能否使大部分学生的分析问题和解决问题的能力有所提高,仍是需要研究的课题。
3.有人提出学生学习BASIC程序设计目的是为了使他们懂得“计算机能做什么,是怎样工作的?”
这句话如果是在70年代或80年代初讲的,有一定的道理,因为那时计算机软件还很不丰富,使用计算机解决问题,大多数情况下还必须使用者自己编程。并且在编程时必须了解计算机的软硬件结构和工作过程。但在计算机的软、硬件的功能、数量和质量极大发展的90年代,还拿来作为学习程序设计的主要理由,似乎有些过时了。目前在简单的BASIC程序设计和具有强大功能的应用软件之间已产生了一道鸿沟,两者之间差距非常大,要通过简单的BASIC程序设计学习来了解现代计算机系统的功能,犹如“瞎子摸象”。在应用软件中表现出来的一些计算机能力,在简单的BASIC程序设计中很难得到。例如文字处理软件中的块操作和排版功能,超文本链接功能,在简单的程序设计学习中就很难体会到。反之,通过应用软件学习所能了解的计算机功能却大大超过简单程序设计中的功能。例如应用软件中的打印功能已大大超过BASIC中PRINT(打印)语句所能了解到的功能;输入功能也大大超过INPUT语句所能提供的信息。
马希文教授也早就指出:“我们研究程序设计时,可以选用一种适当的语言。这样,我们就可以只研究用语言书写的程序,而不去过问这种程序在具体计算机上到底是怎样实现的。从这个意义上说,语言就是一种抽象的计算机。”[2]也就是说学习程序设计,特别是高级语言的程序设计,了解的是抽象的计算机。什么是“抽象”?抽象就是“从许多事物中,舍弃个别的、非本质的属性,抽出共同的、本质的属性。程序设计中的抽象,马希文教授在上面这段话中已说得很明白,即“只研究用语言书写的程序,而不去过问这种程序在具体计算机上到底是怎样实现的。”。既然舍弃了“在具体计算机上是怎样实现的”内容,怎么能通过程序设计来懂得“计算机能做什么,是怎样工作的”呢?
当然上述说法在一定意义上还是有可取之处。一个计算机系统可以被看作是由硬件和软件按层次方式构成的,每层表示一组功能和一个接口。每一层都在一定深度和范围反映计算机系统的功能和工作状况[5]。学生们学习应用软件的知识和操作只是从最高层面上了解计算机的功能和工作状况。而学习程序设计则是从更深一层面,即语言处理层面来了解计算机的功能和工作状况。因此我认为如果上述说法改为“学习程序设计是从更深的层面,从语言处理的层面上了解计算机能做什么,是怎样工作的。”就无可非议了。
三、必须“尽快终止”程序设计的教学吗?
1997年国家教委收到了两封信件,一是联合国(UNDP/CPR)首席技术顾问大卫·艾伦写的;另一封是纽约市立大学约克学院传播技术级电脑中心主任黄哲操写的。信中他们对我国的计算机教育事业提出了很多好的建议,但也以美国为例对我们发出了警告:“尽快终止中小学作为普遍的教学要求的计算机语言课”“如不彻底改变方向,一切证据表明中国中小学计算机教学将面临最大的灾难。”
对于这样严厉的警告,我们应如何看待?当然应当认真地研究他们的建议和批评,吸取其中有用之处。但我认为,最了解中国的是我们自己,中国和美国相比较,在经济发展上,在文化传统上有很大的差别。在美国是好的经验,在中国不一定是好的;在美国行不通的、失败的办法,在中国可能会成功。我们已经有了十几年的计算机教育经验,我们必须根据我国的国情,来决定我们的政策。
我国的一些教师也有以上类似的看法,他们认为:“计算机学科没有必要学习程序设计,只需要学习计算机操作方法和一些社会上流行的软件使用就可以了。”而且还提出了“一些学生在学校学习了程序设计,到社会上完全无用,仍需从头学起”的说法。 由于计算机信息技术的发展,大量的软件涌现,计算机处理各种信息的速度和功能大大提高,一般的应用都有现成的软件,不必要自己编程。因此上面看法有其正确的一面。过去的计算机课教学,由于各种原因以BASIC语言教学为主,忽视和根本没有实际操作和应用软件的使用。不论是中学还是小学,不论是普通中学还是职业高中,无一区别都是一个模式。因此在一定程度上造成了学非所用的结果,特别是对准备毕业后立即就业的那部分学生。
但上述说法从基本点上、从理论上说是不正确的。首先,这种说法指导思想是受了“社会中心”论的影响,即当前社会上需要什么就学什么,是一种急功近利、实用主义的做法。
我们不反对从社会需要出发来考虑课程的设置,不但不反对,而且要提倡。我们也不反对学习一些实用的应用软件,而且赞同在新教材中增加一些应用软件的内容(我个人认为,在初中的计算机教材中,实用部分可以占全部内容的 70%到 80%)。但在这里,我们和持这些观点的人有一个根本上和原则上的区别:我们不但考虑社会当前的需要,而且更注重社会长远的需要。我们不但着眼于学生当前学习和就业的需要,更注重学生将来的学习以及终生教育的需要。出发点不同,在内容的选择上,在教材的安排上,以及在教法上,就会有根本性的区别。 上述观点第二个错误是混淆了不同教育的性质。普通中小学教育是素质教育,它与职业教育不同。上述观点把素质教育与就业教育等同起来了。
就是职业教育,上述观点也是不完全正确的。我们教给学生的不仅仅是知识和技能,而更重要的应该是能力。这就不能是“知其然,而不知其所以然”。不懂得汽车的基本原理也能开车,但绝不可能成为一名优秀的驾驶员。同样道理,如果只会一些具体应用软件的使用,不懂得有关的基本原理和知识,就不可能很好地使用计算机,成为一名优秀的计算机应用人员。我很赞同下面一段很有哲理性的话:“必须坚持技术基础教育和实用技术教育兼顾,... 如果不进行技术基础教育,就缺乏后劲,难以掌握高技术;如果不学习当地的实用技术,就不易起步,难以把最基本的科学技术运用于生产,把可能的生产力转化为现实的生产力。……按照布鲁纳的知识迁移理论, 扎实的技术基础教育,有利于学生去掌握实用技术,起到举一反三作用;良好的实用技术教育,有利于扩展和提高技术基础教育,起到触类旁通的作用。”[6]而且将来的社会职业的变动将是很频繁的,一生中职业变动四五种是常事。这就更要求我们的教育从学生的长远着想,注意基础知识的教育,注意能力的培养。
四、程序设计方法尽可能早学习
我认为计算机课程还是应该安排一些初步的程序设计的内容,而且越早越好。为什么要安排一些初步的程序设计内容?我的理由与上述的几种不同。
第一个理由是,计算机学科有于其他学科很不同的特点。关于这一点,当代著名的计算机科学家唐·依·克努特(D.E.Knuth)在他的巨著《计算机程序设计技巧》中有很精辟的论述。他写道:“能把问题的解法表达成计算机能够‘理解’的一种明显形式(这些机器没有普通的感觉;它还不会‘思考’。但它能准确地不折不扣地去做让它做的事情。当一个人初次试图使用一台计算机时,这是最难以掌握的概念)。”[7]。但是这个“最难以掌握的概念”又是真正学会使用计算机所不可缺少的。怎样来掌握它呢?经验告诉我们,学会计算机的初步操作,学习一些应用软件的使用,能初步了解这个概念。但是要真正理解和掌握这个概念,学习程序设计是一个较好的途径。程序设计要建立数学模型,要进行算法设计,这些就是克努特所说的“把问题的解法表达成计算机能够‘理解’的一种明显形式”;在用计算机语言进行编程时,就要了解有哪些语句,它们的功能的什么。这些实际上就是了解计算机“能准确地不折不扣地去做让它做的事情”。
第二个理由前面已说及,即学生们学习应用软件知识和操作只是从最高层面上了解计算机的功能和工作状况。而学习程序设计则是从更深一层面,即语言处理层面来了解计算机的功能和工作状况。
第三个理由是程序设计虽然不是计算机科学核心课程,但它是一个基础课程。计算机学科的其它课程,如操作系统、数据结构等,除学习一些理论外,很重要一项就是在计算机上实验,这些实验大部分要编程序,也就是要会用一种计算机程序设计语言编制相应的程序。所以大学计算机专业都把学习一种程序设计语言作为基础课程之一。如果在中学就给学生打下这方面的基础,就有利于学生今后的继续学习。那些在中学已学会了程序设计的大学生回来的反映,很清楚地证明了这一点,我们的基础教育任务之一是为高一级学校培养后备力量,也为学生将来进一步深造打下良好的基础。在中小学打下程序设计的基础,有利于他们进入大学的深造和就业以后的继续教育。
为什么要“尽可能早学习”呢?在计算机普及工作中,很多教师都有这样一种体会,只要内容和教法适当,程序设计入门,初中学生比高中学生容易,甚至高年级小学生比初中学生容易,最困难的是成年人(这里不是针对个别人,而是大多数人来谈的,即从统计的角度来谈的)。这种“怪”现象如何解释呢?
根据现代认知心理学的理论,人的头脑中的知识,不是杂乱无章地或简单地存储着的,而是有一定的结构,即认知结构。学习就是科学的逻辑结构和人的头脑中的认知结构之间的矛盾和转化。“当儿童认识一种新事物时,总是先用原有的图式(即认知结构)去同化(即把新知识纳入原有的认知结构中),如获成功,便得到认识上的平衡,否则就进行异化,调整原有图式或创造新图式,直至取得新的平衡为止”[8]。
程序设计是一种新的知识结构,它与其他学科的结构,如数学知识结构、物理知识结构等,有很大的区别。唐·依·克努特的论述中提到“这是最难以掌握的概念”,为什么“最难以掌握”?就是因为这种知识结构与以往人们学习的知识结构有很大的不同。
因此当一个初学者学习程序设计时,在把这种新的知识结构纳入自己原有的认知体系中(同化)时,由于结构差别太大,就会遇到原有结构的“顽强抵抗”,必须创建新的认知结构。而在这种新的认知结构的创建过程中,如果原有的认知结构越牢固,创立就越困难。一般地说,年龄越大认知结构就越牢固,越不容易改变。这就造成新的结构建立成人比高中生困难,高中学生比初中学生困难的现象,而小学生头脑像一张白纸,最容易接受新的东西。
从上面的分析,可以得出这样一个结论:尽早地学习“程序设计”这种知识,就会减少进一步学习的障碍。当然这种“程序设计”知识结构对于不同年龄的学生,它的内容多少,它的复杂程度的高低应该是不同的,应该有层次、有区别的。
1994年,联合国教科文组织(UNESCO)委托国际信息处理学会(IFIP),编写了指导世界各国计算机课程设置的文件《中学信息学课程》。其中有一段话,对于我们每个从事计算机教育的人会很有启发。现摘录如下:
“这里所指的程序设计非技术性的程序设计,更确切地说应该是把‘你自己做的事情’转变成‘别人能做的事情’。这就要求能详尽地描述完成任务的过程,以便其他的人或其他的设备能准确地重复这一项工作。
这种完成任务的‘自动化’就被称作程序设计,有时也称作算法程序设计──信息学的一个重要特点。当使用复杂或先进的软件工具(如电子表格、数据库管理系统、操作系统,甚至文字处理系统)时,用算法的思想来思考或解决问题是必要的。
程序设计是帮助学生获得解决问题经验的一种快速、明确而适合的途径,教学的目标不是培养‘小型的程序员’,而是使得学生能用程序设计的方式进行思考。本着这个思想,在学习过程中只要掌握‘必须了解’的,至于程序语言中的独有的特点和假设就不是很重要了。教师必须强调解决问题的方法,程序设计只是实现这个目的的一种手段。”[9]
儿童心理学中有一个“关键年龄”的说法,即在儿童发展的过程中,某一种技能或能力在某一特定时期最易获得,最易形成,如果错过这个时期,效果就会差些。例如2-3岁是学习口头语言的关键年龄,4-5岁是开始学习书面言语的关键年龄等。[10]那么,儿童青少年学习“程序设计”的关键年龄是在哪个时期?这是值得心理学家和计算机教育专家研究的课题。
五、初步结论
在中小学计算机课程中究竟要不要安排“程序设计”的内容?我完全赞同《指导纲要》的提法:“中学计算机课程要以基础性知识和技能性操作为主,程序设计是更高层次的学习内容” [11]。在时间和学生的接受水平允许的情况下应该并尽可能早地在计算机课中安排一些程序设计内容,但内容和深度要根据不同年龄的学生认知特点做精心的安排。
我个人建议,在条件允许的情况下,小学高年级可以学一些LOGO语言的程序设计,其主要内容是“海龟绘图”,通过LOGO学习一些几何知识,而在程序设计上只起到“熏陶”的作用,即起一个潜移默化的作用。初中阶段可以安排一些介绍什么是程序、什么是程序设计的简单的内容,只要求学生能理解一些简单的程序就可以了,不必要求能编程。高中阶段可以较系统地学习一些程序设计知识,了解程序设计过程,能编简单的程序,但在算法设计上只要求了解就可以了。另一方面可以大力开展以算法设计为主的课外活动和选修课,给那些程序设计感兴趣的学生提供一个良好的发展环境。
【参考书目】
[1] 王攻本主编:《计算机科学技术百科辞典》1993年,405、404页。
[2] 马希文:《程序设计学》科学出版社,1985年,1页。
[3] 《计算机学科教学计划93》电子工业出版社,1995年,9页。
[4] 陈琦:《中学计算机教育文选》光明日报出版社,1987年,145页。
[5] 孙钟秀等:《操作系统教程》高等教育出版社,1990年2页。
[6] 郭福昌:《试办农村综合初中,势在必行》《课程研究》1994年4期,7页。
[7] 唐·克努特:《计算机程序设计技巧》第一卷前言,国防工业出版社,1986年。
[8] 布鲁纳:《教育过程》文化教育出版社,1982年,28,31页。
[9] 《中学信息学课程》清华大学出版社,1995年,49页。
一、计算机语言教学现状分析
1.课程设置不恰当,课程间思维模式的转换不够
计算机语言的种类繁多,总的来说可以分为机器语言、汇编语言和高级语言三大类。根据教学大纲的要求,笔者学校的计算机应用(大专)专业开设了汇编语言、C语言和面向对象的C++语言课程。课程设置先后顺序为C语言、汇编语言、C++语言,C语言是高级语言,汇编语言是面向机器的语言,它相对于高级语言来说难学、难用、适用范围小,虽然简单,但是过于灵活,学习过高级语言的人再去学习汇编比一开始学汇编难得多,简从繁易,繁从简难,影响了学习效果。又比如先学C语言,学生养成了面向过程的思维模式,到学C++时,还是面向过程的思维模式,根本没有发挥出面向对象语言的优势来。
2.教材及课时的限制
现在的一些计算机语言教材,对教材中的所有的习题和上机操作题都附上答案,这为教师备课提供了方便,对学生的学习却没有好处,容易将学生的编程思维套入一个固定的模式当中,也给偷懒的学生创造了条件。另外,课时的限制导致了教学深度不够。学校开设的C++课程只有60学时,教材采用的是谭浩强主编的《C++面向对象程序设计》,由于课时及学生接受慢等种种原因,经常只能讲完“运算符重载”,而“继承与派生”以及后面的内容只能略有涉及或根本讲不到,而这些都是很重要的内容,导致学生没学到什么东西,老师也很为难。
3.教学方法滞后
教师在上计算机语言课程时,大多侧重语法的格式、功能、用法等方面的分析和讲解,而不是学生思维能力的培养。课堂教学教会了学生是什么、怎么样的问题,却没有教会学生如何用、灵活用。而且课堂内容多,教师忙于讲解,留给学生练习的时间太少,学生需要在动手实践中切身体会并消化知识的环节薄弱了,这是我们教学中经常忽视的部分。
二、计算机语言课程教学对象分析
1.学生基础较差、兴趣不高
技工院校的学生普遍存在基础较薄弱、自觉性较差和自学能力不强的特点,在学习计算机语言时,开始会怀着神秘、好奇的心情,随着教学内容的深入,有的内容比较抽象,有的内容需要记忆、思考,更甚于还要自己动手写程序,难度增大了,就失去了兴趣,调动不起积极性。苏霍姆林斯基认为,学生对学习的冷淡态度比学业不良更为可怕。当学生对语言学习的兴趣消失殆尽时,再美妙的语言结构体、再严谨的编程思维也无法激发出学生的学习热情,所以上机练习时,只会照着书上的例子,输入计算机,得出与书上结果一致的答案就交作业,并没有真正掌握语句的真正用法,到了要独立完成编程时就无从下手,而这常常会让计算机教师在语言教学中觉得毫无成就感,直接或间接影响教学,造成恶性循环。
2.学生学习有偏向,偏应用型软件的学习
以笔者学校为例,学生希望能在校多考取一些职业资格证以增加就业的砝码,学校的考证安排往往是以应用型软件比如办公软件应用、Photoshop、Flash等为主,因为这些课程更直观易懂,只要有足够的上机时间,大部分同学可以训练成为熟练的“操作员”,而语言方面的课程就是组织一些统考,学生只需应付理论考试就行,这些都直接导致了学生的学习偏向。
三、计算机语言课程教学探讨与思考
1.优化课程设置,根据各语言的特点开展教学
针对前面所述学校计算机语言课程设置的问题,应向学校教务部门提出,对三门课程的先后顺序进行修改,先上汇编语言,再上C语言,然后上C++,顺应学习计算机语言的规律。语言课程课时和其他课程课时、理论课时和上机课时应该科学分配,让学生不会出现专业课程上的偏向以及实践学习不足等情况。在教材的选取上,应综合考虑学生和老师的情况,择优选取。我们的教师也要加强对各种语言核心的理解,在教学过程中抓住该课程的本质,不仅要教给学生语言本身的知识,还要很好地渗透程序设计的思想方法,让学生养成良好的思维模式以适应时代的
发展。
2.明确教学目标,精心设计教学内容
任何一门课程,教学目标的正确确定可以为教学的实施指明方向。在课堂上我们不仅要教会学生如何读懂程序,如何根据需求编写一段正确的代码,并且在此基础上将独立的知识点串起来,形成自己的知识体系,而且要让学生真正体会到学这门课的的用途,学会独立思考、协同合作,学会用所学知识来解决实际的问题。所以我们在备课时,一定要兼顾知识与知识之间、知识与应用之间的关联,设计一些具有实用性的课堂练习,能把与练习有关的知识点紧密联系在一起而形成一张网,在这张网中,既能回顾旧知识,又能引入新知识,从而实现知识的综合运用。
3.改进教学方法,培养形象思维
计算机语言教与学的困惑的根源在于教师过于强调语法的教学,一开始就一股脑地向学生灌输数据类型、运算符、各种语句的用法等知识,只注重抽象、逻辑性思维,忽略形象思维,学生的学习热情在琐碎且枯燥的知识点中消磨殆尽,教与学进入了一个死胡同。在讲解计算机语言的概念、理论、方法时,可引导学生比对现实中的“生活原型”。比如C语言的指针概念是一大难点,我们找“地址”作为它的原型,“地址”是一个“范围”概念,它不仅包含开始信息,也包含结束信息,还包含此范围内数据的特征的信息,形象地理解了指针的概念后,对指针的重要性、指针的运算、通过指针获取数据的运算就有了一个实实在在的理解。这样的例子举不胜举,如变量和“容器”,循环和“时分秒的变化”,树结构和“族谱”等。因此,我们要注重培养学生的形象思维,引导他们养成科学的思维习惯。
4.重视启发,培养求异精神
目前的教学过程大多存在一个问题:学生的思维不够活跃,这与教师的授课方式很有关系。我们的课堂不应该还是那种“填鸭式”的课堂,应该更注重启发式的教学。比如讲C语言的赋值语句时,A和B的值分别为1和2,用赋值语句交换它们的值,我们可以启发学生,如果你有两只饭盒,一只盒装米饭,一只盒装菜,怎样将它们装着的东西交换过来?学生很容易想到,再找一个饭盒来进行交换操作。回到之前的问题,学生便能写出赋值语句:C=A;A=B;B=C。启发式教学还可以用在“求异”的时候,何为求异呢?任何一个程序的代码都不是唯一的,特别是涉及到一些算法或模块化的程序,都可以通过多种途径来实现。例如,讲循环结构程序设计时,求1+11+111+1111+……前n项的和。在找数列规律时大部分同学可以发现,第m项的值可以用t=t*10+1得出,这时应该再启发学生,是不是可以用其他方法呢?部分同学又找出也可以用t=t+10m-1得出。因此这种求异的态度能活跃学生的思维,激发学生的求知欲。
关键字:计算机语言教学措施
一、计算机语言教学概述
1.1计算机语言概述
语言是人类所特有的用来表达意思、交流思想的工具,由语音、词汇和语法构成一定的系统。计算机语言顾名思义是在计算机上使用的语言,是人类为了能使人与计算机间进行交流,专为计算机设计的语言,是以人类日常交流的语言为蓝本,变换成计算机可以读懂的信息符号。这些信息符号是按照一定的规则进行的编码,是人与计算机间特有的用来表达人的意思、交流思想的工具,并指导计算机进行信息的采集、分析、加工、处理、保存和利用等。计算机语言的种类非常之多,总的来说可以分成机器语言、汇编语言、高级语言三大类。目前通用的编程语言有两种形式:汇编语言和高级语言。高级语言是目前绝大多数编程者的选择,和汇编语言相比,它不但将许多相关的机器指令合成为单条指令,并且去掉了与具体操作有关,但与完成工作无关的细节(例如使用堆栈、寄存器等),这样就大大简化了程序中的指令。
1.2计算机语言教学
计算机语言教学是让学员掌握人为计算机设计的语言特征,学会计算机语言程序设计技能,培养学员的创新能力。教学过程首先是让学员端正思想,明确学习计算机语言的意义;其次是让学员明白学习计算机语言最终就是学会编写程序。
二、计算机语言教学中存在的问题
目前高职、专科计算机教学中出现的主要问题如下:
2.1学生兴趣低、无法调动其学习兴趣
在计算机语言教学中,一般来说,学生兴趣比较低。学生往往认为要学习语言应该自己去专心地学,那样听老师讲课是无法很好地学习语言的,所以自学能力强的学生便自己去学习,而自学能力不强或者自觉性比较差的学生就可能会上课不听讲、下课不看书。而且学生对于整个语言学习不够重视,在考计算机等级考试和程序员的过程中,可以明显看出,很多学生都是抱着碰运气的态度去考的,而并没有明确的目的性。
2.2计算机语言课教学深度与广度的不协调
计算机教学范畴之广确实让广大的计算机教育工作者在制定教学计划时不知从何下手,仅计算机语言就有几十种,并且在不断的更新,而教学的总学时却是不变的,为了让学生在校期间尽可能多的接受有关知识,为以后的就业工作创造条件,我们开设了Basic,PASCAL,C和汇编等多种语言课程,而每门课的总学时不过50学时左右,因此绝大多数讲授的只是语言最基本的语句和一些简单的算法设计,对于具体的语言版本却介绍不多如C语言只介绍标准C语言的语句和语法,对具体如TurboC的库函数应用及其语言本身固有特点很少介绍或根本不予介绍,其结果学生语言知道不少,但没有一门是精通的。
2.3学生程度参差不齐
在计算机语言课的教学过程中,发现学生计算机知识程度参差不齐,比如在授课的过程中,一些基础好的学生觉得早已听懂,而基础差的学生会觉得进度较快.这样使得基础好的学生不能深人学习,基础差的学生学习基础不扎实.从考试的结果看,各班的平均成绩差异较大,最高平均分比最低分相差25分以上,就是同一个班的成绩差异也较大.通过对考试的答卷进行分析,结果表明:学生对较死板的概念题答的较好,对简单的应用并且有确定答案的问题基本上也能回答,但对综合应用的题目大多回答错误。
2.4程度设计能力差
笔者在调查过程中发现,学生最怕计算机等级考试(二级)中笔试的程序填空.机试的编程题,实际上难度并不大.从学生解决问题过程中可看出:结构化程序设计思想不强,几种常见算法如穷举、递推、迭代、递归、方程求解、字符串操作等不够熟练,综合运用知识能力较弱,缺乏创新思维.这样直接导致在完成程序填空时,阅读理解程序能力弱;编程时设计的程序结构不清晰、臃肿,可读性差,程序的效率较低。
2.5程序调试能力差
表现在:许多学生虽拥有个人电脑,但多数学生只是比较熟悉Windows操作环境,不熟悉DOS操作环境,实验前没有做好充分准备。如不熟悉DOS命令的使用,不熟悉TC(TurboC)各菜单功能,不懂确立TC工作环境,不熟悉编译过程中出错的英文信息,甚至连syntax(语法)、statement(语句)、overflow(溢出)等单词都不认识,尤其当出现恶意语法错误时,C语言编译器也可能有故障隐患而给出名不符实的错误信息;不熟悉程序动态调试方法,如断点设置、单步执行、观察变量的当前值等;另外,学生录入程序的速度太慢,录入正确率低等。
三、计算机语言教学措施探讨
3.1充分调动学生学习计算机语言的兴趣
对于计算机语言的学习来说,由于许多学生在以前并未接触过,所以他们会认为计算机语言是很深奥、很难学的,所以有许多人对计算机语言的学习缺乏信心。在这个时候,任课教师应该采取适当的方式激发学生的积极性和自信心。教师可以在上课过程中讲解目前计算机发展的历程和其中出现的重要人物,并讲解其中重要人物的成功历程,比如可以讲解国内“程序员之父”——求伯君老师以及他所组建的金山软件公司。为了消除程序语言对学生的神秘性,教师可在课堂上当场编写一些小程序,并当场演示。教师也可讲解目前计算机程序人才的重要性和他们的待遇,以调动学生的兴趣和积极性。2以问题为核心,以数据类型的发展为主线来组织教学
课堂教学内容如何组织是教师备课的重要步骤,教学内容组织是否恰当对教学效果有着直接的影响。教师必须对教材仔细分析,充分理解课程的特点,采用最合适的方式来组织教学。
计算机语言虽然比较简单,但要记忆的知识还是较多的,且存在着如何使用这些知识的问题。课堂上若罗列知识点,学员是可以勉强记住的,但要学会使用就较为困难了。在教学过程中,除了必要的说明外,大部分知识都应从问题引入,这样一是比较自然,这些知识都因实际问题的需要而设计,其存在是合理的,有利于记忆;其二也解决了在何种情况下使用与如何使用的问题。当然罗列是需要的,但应放在总结的时候。
当语言的基本数据类型、语句与控制结构讲完后,学员对语言是入门了,但要解决实际问题是不够的,这时应从问题的需要出发引人新的数据组织方式——构造类型,从基本类型——数组——记录——记录数组——动态数据结构——文件。每一个新的类型都是已有的类型克服其缺点,继承其优点而得到的,这符合人思维发展规律,也符合计算机语言本身发展的规律,同时对提高学员解决问题的能力是非常有利的。
3.3教学时间的安排,精讲、多练。
计算机语言教学是一门实践性很强的课程,一定要动手多写程序,通过写、通过思考才能有所进步。对于不同语言编写的程序而言,其实只是表现形式不一样,实际上内容的本质是完全一样的。因此,只需花三分之一的时间在语言本身的讲解上,而剩余三分之二的时间应当放到学生程序内容的考虑以及上机的调试上,应当给学生以更多的实践的机会。
学生在学习的过程中,对课程的认识包括两方面的含义,一是理解,对课程内容的理解;二是应用,如何在自己的程序中加以应用,而应用是学生学习语言的最终目的。教师的职责是教给学生机器可以理解的语句和结构,但关键还是要让学生自己去实践。因此,要给学生提供各种不同的场景(问题),让学生体会在不同的场景中该如何与机器进行交流,即:如何写出能与计算机进行沟通的程序,让计算机帮助用户解决问题。通过对各种不同问题的尝试解决,不但有利于对计算机语言的熟练掌握,而且对计算机的工作流程以及特点也会有更深的体会。
3.4应避免学生的思维定势,培养学生的创造性思维。
对于同一个问题来讲,如果程序能够正确地解决问题,那么这个程序就是正确的,但是这个程序好不好,又有其他的因素制约,比如,程序的可读性,是不是容易让人理解;程序的结构,结构是否合理、符合逻辑;程序的执行效率以及程序所占用的存储空间等。因此,一个程序的好坏,衡量的标准有很多,而且并不是绝对的,可能不同的程序,优、缺点不同,适应的场合、对象也就不同。
通常每个人都有自己独特的思维方式及视角,所以应鼓励每一个同学将自己对某一问题的考虑讲出来,不要局限于某种标准答案之中。应将不同的想法列出来,一一进行对比,找出不同的优、缺点,这对培养学生的创造性思维很有帮助,可以让学生看到相同的问题有不同的解决方式,并且能够理解不同解决方式的优点、缺点。
学生作为国家未来的栋梁、信息时代的接班人,应该得到好的计算机教育,作为教师,应该在计算机语言的教学中抓好每个环节,使学生能挑起未来国家建设的大梁。
参考文献:
[1]谭浩强、田淑清.《BASIC语言——QBASIC》(第五次修订本),科学普及出版社1999版
[2]常艳,任明海.对计算机语言教学方法的探讨.辽宁警专学报.2003年1月
关键词:重要性;汇编语言;程序;教学
中图分类号:G640 文献标志码:A 文章编号:1673-291X(2014)19-0275-02
引言
汇编语言是最接近于机器语言的编程语言。如果说机器语言是计算机操作的本质,那么汇编语言就是最最接近本质的语言。汇编语言操作直接面向硬件,所以,我们在使用汇编语言的时候,能够感知计算机的运行过程和原理,从而能够对计算机硬件和应用程序之间的联系和交互形成一个清晰的认识。这也是最能够锻炼编程者编程思维逻辑的,只有这样,学习者才能形成一个软、硬兼备的编程知识体系,这是任何高级语言都无法给予的!相对于繁复的高级语言,汇编语言指令集合更简约,指令操作更直接,从汇编开始学习更符合循序渐进的学习原理。所以,对于计算机技术初学者或者自学者,汇编语言重要性无可替代。
一、汇编语言的特点
汇编语言(Assembly Language)是面向机器的程序设计语言。汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。汇编语言作为一门语言,对应于高级语言的编译器,需要一个“汇编器”来把汇编语言原文件汇编成机器可执行的代码。高级的汇编器如MASM,TASM等等为我们写汇编程序提供了很多类似于高级语言的特征,比如结构化、抽象等。在这样的环境中编写的汇编程序,有很大一部分是面向汇编器的伪指令,已经类同于高级语言。现在的汇编环境已经如此高级,即使全部用汇编语言来编写windows的应用程序也是可行的,但这不是汇编语言的长处。汇编语言的长处在于编写高效且需要对机器硬件精确控制的程序。
在汇编语言中,用助记符(Memoni)代替操作码,用地址符号(Symbol)或标号(Label)代替地址码。这样用符号代替机器语言的二进制码,就把机器语言变成了汇编语言。因此汇编语言亦称为符号语言。
汇编语言比机器语言易于读写、调试和修改,同时具有机器语言全部优点。但在编写复杂程序时,相对高级语言代码量较大,而且汇编语言依赖于具体的处理器体系结构,不能通用,因此不能直接在不同处理器体系结构之间移植。
二、汇编语言的重要性
(一)汇编语言是学习高级语言的基础
从应用层面上来讲,我们不得不承认高级语言在软件开发市场上的重要地位。虽然这种现象很普遍,但是也对计算机语言初学者与教育者带来了一定的负面影响,造成了他们对高级语言学习的盲目推崇。在高校的计算机教学中,要求学生必须学习C语言,java以及C++等高级语言,虽然出发点是好的,但是由于学生的计算机基础普遍不高,导致课程结束后,学生甚至都不具备编写最简单程序的能力。这是值得我们反思的现象。
一般而言,人们都认为学习计算机最基础的是C语言,这种观念是错误的,真正的基础语言是汇编语言。作为一种基础语言,只有学好汇编语言,才能更好地理解C语言等高级语言。汇编语言与高级语言在对内存读取的操作上原理不一样,前者的操作简单地说是内存地址而进行的,而C语言的操作需要学会指针的概念。指针是抽象的专业性概念,能否学好C语言最关键的是如何建立这一概念与实际的内存两者之间的思维映射,这一点恰好就是汇编语言教学过程的重点。除此之外,通过汇编语言,我们也能把高级语言中的常用概念及基本操作形成特定的映像,而深入地剖析这些映像,恰好是我们学好C语言的基础。
由上可知,学习计算机语言,我们应该脚踏实地地从最基本的汇编语言开始,通过循序渐进的学习,更熟练地掌握那些面向对象的高级计算机语言。
(二)汇编语言是重要的应用技术
由于就业市场的错误导向,许多学习者放弃汇编语言等基础语言的学习,从学习初始就专攻高级计算机语言,以图谋取一份高薪酬的工作,这个出发点虽然无可厚非,但是这种好高骛远的学习方法确却是不明智的。
第一,任何一个学习过程都必须遵守循序渐进的原则,我们的知识结构是一个复杂的结构,是由众多单一的课程有机组成,如前文所述,如何挣取更多的报酬不能成为学习汇编语言的唯一目的。编程人员更应该注重通过对汇编语言的学习来完善自己的知识结构。
第二,计算机汇编语言同样是一项主流的应用技术。对于初学者来说,计算机语言的应用舞台不仅仅是形形的软件,很多硬件设施也包含了大量的嵌入式语言程序,如主板、电脑芯片等,这些程序的计算机语言就是高效、直接的汇编语言,由此可见,汇编语言在计算机领域仍扮演者非常重要的角色。
(三)汇编语言帮助我们更好的理解整个计算机系统
一般而言,汇编语言的应用的确实不如高级语言广泛,但对于计算机语言学习者来说,它的重要性是非常明显的。机器指令是人们利用机器逻辑功能的前提,也是各种程序能实现功能的必需条件。软件与硬件系统功能的实现都以机器的逻辑功能为基础。汇编语言可以对机器指令进行更加直接的描述。掌握汇编语言就能理解机器指令,理解机器指令就能掌握逻辑功能,从而理解软件系统与硬件系统的工作原理,实现软件系统与硬件系统的功能,为学习计算机语言打下牢固的理论基础与实践基础。
三、汇编语言的应用
1.破解密码软件的核心部分,还有杀毒软件的扫描部分,它们都要求有很高的执行速度,要用到汇编语言才行。
2.unix操作系统的启动部分,这些部分与硬件密切联系,而汇编语言是直接对硬件操作的,所以用汇编语言是最能胜任的。
3.据有关资料统计,用汇编语言编写的程序通常要比C语言程序的执行速度快10倍以上。有些游戏程序的部分一秒钟需要调用几千次,如果用其他语言来编写的话,可能你在玩游戏的时候,时间都花在了等待上。
4.用汇编语言来编写病毒最好不过了,那效率是非常快的,如果没有汇编语言,世界上的黑客要少掉一半。
5.只要高级语言能完成的工作,汇编语言都能完成,而且汇编语言能完成的工作有的高级语言就不能完成,所以汇编语言仍然有举足轻重的作用。
6.现在用纯汇编来编写程序的几乎没有了,而是通过在高级语言里插入汇编程序,所以汇编一般用来搞嵌入式开发。
结束语
总之,汇编语言在计算机语言发展过程中扮演了不可替代的角色。对于教师,要采用正确的教学方法,激发学生的学习兴趣;对于学习者,要正确认识汇编语言的重要性;对于编程人员,如果想在计算机编程之路走得更远,必须从汇编语言开始,才能完整完善的建立计算机编程知识体系。
参考文献:
[1] 宋胜女.浅谈汇编语言教学[J].信息化教学,2011,(7):84.
[2] 朱定华.微机原理、汇编与接口技术(第2版)[M].北京:清华大学出版社,2010.
[3] 李黎.《汇编语言程序设计》课程教学改革探索[J].产业与科技论坛,2013,(12):168-169.
[4] 陈燕俐,许建.“汇编语言程序设计”课程教学改革探索[J].中国电力教育,2012,(11):55-56.
[5] 彭虎,周佩玲,傅忠谦.微机原理与接口技术[M].北京:电子工业出版社,2011.
Talk About the Importance of Applied Undergraduate Colleges Assembly Language Learning
WEN Xue-wei
(Department of Finance and Economics Information Engineering of Heilongjiang University of Finance and Economics,Harbin 150025,China)
关键词:教学改革;计算机语言类课程;课程改革
中图分类号:G642.0 文献标识码:A DOI:10.3969/j.issn.1003-6970.2012.01.041
引言
随着计算机技术的飞速发展,信息化社会已经来临,计算机渗透到社会的的各个角落,正在深刻影响着人类社会发展的整个过程。目前,计算机水平已经成为衡量大学生业务素质与能力的突出标志,计算机课程涉及高校所有的专业范围。是学生今后专业学习中不可缺少的重要基础知识。它为今后的学习和工作他下坚实的基础,具有重要的意义。然而,通过学生参加教师科研项目、学生自主科研项目以及各种编程赛事,我们发现在学校教学内容与社会需求之间的“鸿沟”依然存在。如何提高不同层次的计算机应用水平,计算机教学课程改革研究已是当务之急。
1教学改革研究的定位
目前,围绕大学计算机课程教学方法的改革与创新这一主题进行的研究与探索已有许多。如,文章针对Java语言理论课和实践课两者时间间隔较长的问题,提出了“互动式”教学方式,给出了一种“建―仿一读一改一写”的教学方法和针对重点与难点的讨论式教学方法;文章结合在C++语言与应用课程教改中的实践,运用实例引出语法概念,通过趣味练习提高学生的学习兴趣,设置课程设计来增强学习效果;文章分析了程序设计语言初学者的特点,提出了运用形象思维,引导学生转变思路及提高课堂教学的启发性。文章构思了以建构主义理论为指导、研究学生认知规律、导入课程时巧设情景、课堂中巧设疑问、设立语言课程设计训练、建设教学管理平台等教学环节,在教学中采用启发式教学,倡导创新思维。
2006年12月,教育部高等学校计算机科学与技术教学指导委员会提出的《高等学校计算机科学与技术专业发展战略研究报告暨专业规范(试行)》,将计算机科学与技术专业人才分为科学型、工程型、应用型;计算机科学与技术专业规范分为4个方身:计算机科学方向、计算机工程方向、软件工程方向、信息技术方向。在分析了4个研究方向的核心课程设置的基础上,我们认为可以将计算机科学与技术专业课程进行分群或分类,具体可以分为计算机语言类课程(汇编语言、C程序设计、高级语言程序设计、C++或Java面向对象程序设计、网络程序设计、数据库等)、计算机基础及系统知识类课程(计算机导论、计算机组成基础、计算机体系结构、操作系统、计算机网络等)、算法及开发方法类课程(算法分析与设计、数据结构、软件工程、离散数学、UML建模工具等)和实践类课程(数据结构课程设计、数据库课程设计、软件工程课程设计、软件实习、毕业设计等)。计算机具有较强的相关性。几类课程群间存在着密切互促关系。如图1所示,其中箭头表示支撑。
从图1中可以看出,计算机语言类课程对其他几类课程起到重要的支撑作用。计算机语言类课程是培养3类计算机科学与技术专业人才所共需的。事实上,非计算机专业人才对计算机语言类课程的学习也是必需的,如目前高校几乎所有的专业都开设C语言程序设计。因此,对计算机语言类课程教学改革研究变得尤为重要。本文在教学研究立项的基础上对计算机语言类课程的教学改革深入探讨。
2计算机语言类课程教学改革的系统化模型
教学的最基本功能是知识传授,知识传授是为了知识获取,教是为了学。因此,我们的关注点也应从教的条件和质量更多地向学习质量转移。应该全面树立以学生为本,以优化教学互动过程为重点的本科教育教学改革思路,从以传授知识为主的传统教学向以培养认知能力为主的研究教学转变。
从教改实施过程角度上讲,计算机语言类基础课程教学改革应可以看作是一个系统工程。应当大胆更新教育观念,积极探索教学内容、教学方法和教学改革的新途径,全面实施教学改革新举措,使学生在计算机学习的理论、方法、能力三方面打下比较扎实的基础。我们以教学计划、教学大纲、教学内容、教学方法、教学过程、教学手段、教学管理、考试形式、实验改革和教师自我提高在内的计算机语言类基础课程教学全面改革(参见图2);以立体化教材、多媒体课件和现代网络为依托,将所得的阶段性成果及时应用于理论和实践教学中。
在改革过程中要求几个重要环节密切配合,我们重点探讨解决以下几个问题:为何目前学生表现出动手能力弱,不能很好地适应社会需求;如何配置理论教学和实践教学耦合力度;如何增设案例教学,提高分析能力;如何扩展学生参与实践的渠道,提高实践能力;如何加强教材建设;如何进行教师自我提高;如何改进考核方式;如何在改革过程的诸多环节中加强管理,提高改革项目的可控性。
3教学改革具体环节采取的措施
计算机语言与其他课程相比,语法规则固定,逻辑思维较强,因此比较枯燥。要完成好计算机语言教学,关键在于激发学生的学习兴趣,在教学过程中要坚持学生为主体、教师为主导的教学原则,通过明确培养目标、丰富讲授内容、强化实践教学、完善教学方法等途径,提高学生创新思维和创造能力、培养学生的学习兴趣,让学生主动、愉快地学习,才能取得良好的教学效果。围绕图2所示的计算机语言类课程教学改革的系统化模型中的主要环节以及前面提到的诸多问题。我们在教改实践中采取了以下措施:
(1)明确课程培养目标.组织调查计算机语言类课程理论教学、实践教学现状。特别注意学生群体反应语言类课程的学习瓶颈,分析目前存在的问题。在进行了充分的调研后,提出、修订了语言类课程的理论教学/实践教学大纲调整理论课时与实验课时耦合度明确实验项目的名称与内容、保证系列课程之间实验内容的连贯性。
(2)强化理论教学内容与教学方法改革。由于计算机语言类课程实际上是培养学生的工程技术动手能力,目前理论教学内容通常是从概念入手,通过知识传授,配以上机练习;因为理论课和实践课两者时间间隔较长,实验课手忙脚乱,有时甚至草草收场,难以引起学生的兴趣,更达不到提高实际编程能力的效果,严重影响了其他相关课程群教学工作的正常开展。对此我们做了如下工作:①将部分理论课程(约1/3)转移到大实践教学环境下进行,使用启发式、互动式方法,让学生在学习理论知识点的同时,配合教师的实际例程模仿教学,不仅可提高学生的学习热情,也可以加强对理论知识的掌握。②面向应用需求(即目标驱动)组织教学内容。重点引导学生掌握分析问题的方法,利用语言完成目标的能力,而不应将教学的重点放在语言本身。如“面向对象程序设计”课程进行了“教师科研向教学转化”处理,将科研成果同课程理论知识点进行关联讲解。③加强案例教学、增加理论教学内容信息量。这些信息的
内容应当是领域上的、相关技术层面上的,这样能够扩大学生的知识面,这对学生真正掌握运用语言的能力至关重要。如在“面向对象程序设计”课程中,在讲解一个利用支撑语言完成任务时,可附带讲解C/S及B/S模式程序设计,并分析两者的优缺点及目前工程领域采用的主流模式。该环节要求教师经常优化教学内容,并及时对教案、课件等教学文件作相应修改。④引入新的互动方法。如目前所有参与教改的课程都增设了教学内容信息网站、论坛等平台以增加师生交流。
(3)深化实践教学内容与教学方法改革,促进知识向能力的转化。在传统的实践教学体系之内,第一、丰富实验教学内容减少基础型、验证型实验,将以往的验证型实验融合理论教学内容移到实践环境下进行的课程中;增加设计型、综合型、创新型实验项目的比例,并独立编制设计型和综合设计型实验指导书。这一环节组织教研项目力量研究讨论进行设计型实验与综合设计型实验的设计,特别重视教师科研成果的转化。第二、根据需要曾设课程设计。在课程设计中,让学生设计具有一定难度的小型系统,在实验报告中提供系统分析、数据模型、系统流程和程序的完整内容,以此促进学生全面掌握本课程的内容。为了防止学生互相抄袭,在学生提交大作业时,可以通过当面提问、解释代码含义等方法避免。第三、以真实课题为牵引,将科研成果转化为教学实验内容,通过“干中学”,强化课程理论知识与科研项目实训的结合。我们的做法是教师在第一课堂教学过程中,公布自己的科研课题,分解出子课题,学生按兴趣选择子课题组队,根据学生的研究工作亮,认可学生的课外学分数;没有科研项目的教师要求开设“开放实验室项目”,考核方式相同。在此过程中,指导教师要注意测试学生的相对能力,对“素质生”鼓励其自主学习和研究的主动性,指导其申请校内外的“学生自主科研立项”。在传统的实践教学体系之外,增设创新实践学分学生可以通过科技竞赛以及各类创新活动计划,完成课程培养目标的相应要求。为了加强研究方法训练,提高学生的实践创新能力,鼓励学生参加国家大学生创新性实验比赛,如“蓝点杯”、“挑战杯”、“泛珠三角安利杯”。目前我们教师团队指导的学生已经国内获得多个奖项。
(4)制定有效机制,提高教师队伍水平。计算机领域知识更新相当迅速,特别是层出不穷的语言类技术更是如此。作为教学活动的指导者教师必须不断地吸取新知识,并及时应用于教学当中,以扩大学生知识面、强化领域知识。第一、遇到岗位竞聘制度确定课程主讲教师,实践表明,这有利于解决教学内容老化问题;第二、强化语言类基础课程教学团队建设,实施教学工作的传、帮、带和老中青结合,鼓励青年教师参加培训,激励教师参加校内外交流;第三、鼓励教师申请主持或参加科研项目,促进教师不断学习和掌握学科前沿与先进技术,并及时将其融入理论或实践教学中。如项目组成员目前正承担各类科研项目5项,完成学院组织的“科研成果向教学转化”活动的有3位教师;第四、注重于企业合作,建立于企业联合培养的新途径。如教学团队成员中有2人在企业中挂职工作。
(5)适应教改过程,强化教学管理。第一、在前述的移至实验室环境下的理论教学改革、实验教学改革及实践教学改革等环节的影响下教学管理环境发生了变化,带来了教学管理上的诸多问题,教学管理手段也应当作相应的改变。如移至实验室环境下进行的理论教学,与传统的教学环境相比,课堂的可控制性降低。为此我们制定了新教学环境下教学活动管理策略、新教学活动开展办法。第二、利用实验教学网站,实现实验教学管理。
(6)改进考核方式,完善教学评价体系。第一、改变以结果评价成败的传统做法。强调重在过程、重在育人理念。加强对理论教学过程(如内人预习、课内互动、课后讨论、完成结果等)及实践教学过程(如实验方案制定、相关知识预习、实验操作情况、工作态度、结果报告等)进行多元综合考核。第二、鼓励学生参加计算机相关赛事、学生自主科研、教师科研项目、创新计划等教学体系外活动并制定了相应的学分折算机制。
4结束语
通过计算机语言类基础课程教学改革系统方案的实施,我们取得了良好的教学改革效果和诸多一手材料。如理论教学和实践教学课时分配策略、硬件环境基本需求说明、新教学环境下教学活动管理策略、新教学活动开展办法、教改前后学生动手能力测试及参加各类科研项目或竞赛效果量化图表等资料。计算机语言类基础课程群是计算机其他3类课程群的重要支撑,其教学改革对其他3类课程教学改革的影响可以进一步研究。
参考文献
[1]王伦津,王晓峰.Java语言互动式教学模式的探索[J].宁夏工程技术,2005,4(2).
[2]康丽军.“数据结构”教学探索[J].太原大学学报,2007,8(2):7981.
[3]景雪琴.c++语言程序设计课程教学探讨[J].高等教育研究学报,2005,28(2):87 89.
[4]张敏霞.程序设计语言课程教学方法改革的探索和实践[J].中国高教研究,2004,4(2):89 90.
[5]姜永玲,赵延博.谈创新教育在计算机基础课程[J].教学研究,2007,30(2):159 161.
关键词:教学语言;数学基础;学习手段
中图分类号:TP393.07
计算机语言伴随着计算机而诞生,作为人与计算机之间传递信息的媒介,计算机语言分成机器语言,汇编语言,高级语言三大类。汇编语言的实质是和机器语言一样的,都是直接对硬件进行操作,其区别是汇编语言的指令采用了英文缩写的标识符,虽然同样需要将每一步具体的操作用命令的形式写出来,但是比之机器语言更容易识别和记忆。但是汇编语言的使用也有明显的缺点,汇编源程序一般比较复杂冗长、容易出错,要求程序员有极高的计算机专业知识水平,因此高级语言才是程序员们普遍使用的编程语言。计算机语言的教学,是为了让学生通过程序设计的学习进行各种硬件软件的应用开发。
1 选好教学语言
先说说教学语言的选择,高级语言的种类很多,但真真适合入门教学的却不多。现实中我们通常把面向过程的语言安排在入门阶段么,选择有三个:BASIC、C和PASCAL。BASIC语言,就名称的含意来看,是"适用于初学者的多功能符号指令码",是计算机早期发展史上应用最为广泛的程式语言。优点是构成简单、功能较全、适用面广、执行方式灵活,缺点是结构不够严谨,同时采用的是解释器翻译程序,费时较多。在后期的面向对象的语言的学习中,BASIC衔接的是VisualBasic,而VisualBasic虽然简单易学,但是运行时需要调用的动态连接库非常巨大,平台的移植性也非常差。而Pascal语言,最初就是被严格的设计成教学之用,目的就是强行要编程者使用结构化编程。从这一点上来说,Pascal是最初接触计算机语言的入门者们很不错的选择。但是相对于它严谨的被人称道的结构,Pascal的操作符不如C语言简洁易懂,同时也使得一些低级操作,如“位”操作变得较为困难。Pascal的升级是Delphi,许多人会说Delphi比较容易上手,但是如同没有白吃的午餐。Delphi的工业标准和可移植性远远及不上C++。取代了辉煌一时的Pascal语言的是C,C的编译器更快,并具有优秀的内置编辑器和调试器。很容易与汇编语言结合,不仅仅是在软件开发上,各类科学研究中都有对C语言的广泛应用。C++语言是具有面向对象特性的C语言的继承者。跟流行的Java比,C++的效率要高很多。在应用上,数据库应用程序开发、通信、手机等嵌入式系统和服务器端后台编程,几乎都是C++的天下。
2 打好数学基础
相对于人类所说的自然语言,编程语言是一种专门设计来表达计算过程的形式语言。
有着严格的语法规则。不同于英语等外语的学习,需要语境语感的培养,计算机语言类课程的学习,必须预先打好的基础是数学。计算机语言是计算机科学的分支,而计算机科学实际上却是数学的一个分支。程序设计的过程,就是解决问题的过程,而且是通过数学的方式来解决问题,编程只是用程序语言把你解决问题的方法写下来而已。程序设计重在设计二字。翻开我们的教学课本就会发现,在学习之初,问题的解决方法都是提供给学生的,学生只要照着给定的思路把文字语言翻译成计算机语言而已,到了课本的后面,这种解题方法的给出就很少出现。程序=数据结构+算法。所以说,编程语言其实只是工具,具体解决问题的时候还是靠算法,这个算法就是数学,有些算法很难,需要高深的数学知识,在学习了一段时间之后,学生的编程的能力就会逐步拉开档次,这就缘于各人解决问题的能力高低,这其中数学能力就是一个很重要的因素。
在计算机诞生初期,能够编写程序的都是数学家。时至今日,计算机已经进入了各个行业,程序的编写也在各种领域都有着广泛的应用,大部分的程序编写并不是要有很高深的数学知识,更多的是要求能够应用相应的数学方法,就是从众多的对象中找到共同属性的方法。结构化的程序的设计,无论多么复杂,总是由顺序、选择和循环这三种结构来实现的。从这个角度来看,我们的程序套用这三种结构其实就像是在使用三个不同的数学公式一样,只不过不是简单的挨个使用,而是循环交替的套用而已。
3 动手上机运行是最重要的学习手段
无论什么样的语言,最终的目的都是在于应用,要想挥洒自如的应用新知识新语言,实践练习永远是必不可少的一个环节。计算机语言的教学中,既有理论又有实践,既讲方法又讲动手能力。但是教师们会发现对于学生而言,语法和结构是那么的枯燥乏味,对象、属性、方法和事件又是多么的抽象难懂。所以很多学生会觉得,计算机语言太难懂太难学了,在这种想法下,我们的教学效果也就可想而知了。因此在“教”的这一方面,改用从简单的实例入手,让学生观看、模仿,在实际解决问题的过程中去领悟这些概念,就更加能体现出计算机语言的应用能力来了。
在“学”的这一方面,学习计算机语言同样没有捷径可走,只有先从最简单的程序开始动手写,而且必须要自己亲自动手写,即使是打印出“Merry Christmas!”这样的简单语句,都必须亲自动手操作一遍,有时候书上看得是很明白,往电脑面前一坐大脑就短路了,上机一写不是这里错就那里错!有的同学,把程序写在作业本上,发现了问题,就在作业本上把程序修改了一遍又一遍,还不一定能通过编译,倒不如老老实实地把代码输入电脑,看看是不是能运行,运行得到的结果是不是和预期的一样。有错误有问题,到电脑上去修改,修改完就编译,再去查看结果。当然也不是机械式的照着老师抄完就完了,而是写完要多去想想,为什么要这么想,多问几个为什么,多去理解解题的思路。比如是输出某个图形这样的题目,在完成之后,我们也可以在正确的程序上对某些语句进行修改,再看看修改后输出的图形会有怎样的变化。诸如此类的练习,经过一段时间之后,我们对于语句和算法的掌握肯定是要胜于那些喜欢在纸上谈兵的同学的。
4 学习的是方法和思想
我们学习了一门或两门计算机语言,不仅是学习了这种语言的语法和结构,更多的理解了编程的思想,学到的是用计算机语言去解决问题的方法,养成的是严谨的编程习惯,不同计算机语言之间,差异的可能是语法、语句和命令,但是这样的差异是非常表面的,内里的编程思想是想通的,所谓“一法通万法通”,在这里就是很适用的。掌握了学习的方法,抓住了编程的思想,之后学习任何其他的技术都会非常轻松。
5 “广泛”的教,“精细”的学
今后发展的方向也实在是太多。因此,我们的学校总是会尽可能多的开设课程,总是希望这些课程能涵盖所有的方向和领域。作为学生,毫无疑问的是要把这些课程都学习一遍的,但是这样的学习应该是有所侧重的。学生要弄清楚自己的目标,最重要的是要确定自己的职业发展,然后,再有目的性的去学习知识比如说技术领域,有很多发展方向:网络、数据库、底层算法、框架、架构、UI设计,性能优化,系统集成,太多太多。不需要漫无目的地学,这样也好,那样也好,所以都去学,结果学了又没用上。人的精力毕竟有限,所有知识都尽力去学的结果就是所有的知识你都不精通。所以,要先确定目标,然后做出选择,再制定计划,有的是需要学到精通,有的只要了解即可。老师也应该鼓励引导学生各自选择自己的发展方向,在广泛的教学基础上,钻研性的学习。
教授计算机语言,就是教授编程,而编程,是一门技术,它和语言学习一样,有需要掌握的语法和词汇;和数学一样,有解决特定类型问题的流程方法;它像各种工艺和艺术创作一样,有技术、工具以及人们经年累月发展起来的最佳实践方案。只要肯付出时间和耐心,“教”与“学”都将是一件非常有成就感的事情。
参考文献:
[1]李蕾.论信息技术教育的发展与教学变革[J].科技情报开发与经济,2007,26.
[2]樊颖军.浅谈计算机语言教学[J].科技信息,2008,21.
[3]刘洋.计算机语言案例教学中的教学策略[J].中国科教信息,2006(8):280-281.
关键词:计算机语言;Java语言
中图分类号:TP311.52 文献标识码:A文章编号:1007-9599 (2011) 12-0000-01
Computer Software Development Language Specification
Zhao Xianfeng
(Shanghai Boke Information Co.,Ltd.,Shanghai200333,China)
Abstract:Software is the corresponding concept and hardware,computer technology and its applications with the gradual expansion of software technology development and R&D is increasingly widespread attention.In the development of computer languages,after a preliminary sort,Java language in many computer languages stand out as a fashion and technical personnel,particularly suitable for Internet application development.The World Wide Web and its commercial impact has been comparable to the impact of the PC spreadsheet.
Keywords:Computer languages;Java language
一、前言
近年来,计算机软件开发技术出现了革命性的发展,大批面向特定对象的程序设计语言及开发工具相继出现,并且日益显示出其强大的生命力。用计算机语言程序设计软件,语法是编写程序的文法规则,不能有误,否则计算机语言编译或解释系统就会检测出程序有语法错误,用户的计算机程序就不会被“翻译”成机器语言被正确执行,因此应掌握准确的语言规范,才可能有效完成任务。计算机语言种类繁多,各类计算机语言有着其特有的功能与优点。
二、Java语言的由来
Java语言最早诞生于1991年,起初被称为OAK语言,是SUN公司为一些消费性电子产品而设计的一个通用环境。他们最初的目的只是为了开发一种独立于平台的软件技术,而且在网络出现之前,OAK可以说是默默无闻,甚至差点夭折。而网络的出现改变了OAK的命运。
三、Java语言的规范
(一)平台无关性。Java语言所具有的平台无关性是指使用这种语言编写的程序能不作修改地在任何一台计算机上正确运行,它的数据类型与机器无关。Java虚拟机(Java Virtual Machine)是建立在硬件和操作系统之上,要运行一个Java的源程序,只需有Java编译器将其翻译成中间代码,然后由Java虚拟机在计算机平台上对字节码进行解释执行即可。所以Java语言使它成为目前网络应用开发中最受欢迎的程序设计语言。(二)面向对象方面。Java语言是一种完全面向对象的语言。它不像C++语言那样保持着C语言的兼容性。整个Java程序完全由类组成,main方法也作为类的特殊成员放在起始类中,程序从起始类的main方法开始执行。Java中类成员的访问级别有4种,无法修饰符也作为一种访问级别介于private与protected之间。而在C++中类成员的访问级别只有3种,无修饰符作为默认的访问级别其效果相当于private。(三)可读性方面。Java语言对C++语言作了许多改进,其中重要的一点是:去掉了C++中的指针类型,对程序中出现的对象、数组及字符串类的变量统一作为引用变量来处理。作为引用变量,其特点是先要创建或确定它所引用的对象,这可以通过创建后赋值或赋初值等多种手段来实现。而引用变量的优点是既具有指针变量所具有的效率高、功能强等特点,又具有较好的可读性,完全可以像C++语言中的直接定义的对象那样使用。此外,Java语言中还去掉了宏定义,使用import语句指定本程序所使用的外部类。去掉了全局变量,相应的功能可通过类中的公用变量来实现。去掉了联合类型、结构和枚举,其功能可用其他的语法成分来实现。总的来说Java解决了容易引起问题的语法成分,从而大大地提高了程序的可读性。(四)安全性方面。Java语言具有很高的健壮性与安全性。在程序的编译和运行时,Java都要对代码中可能出现的问题进行严格地检查。与此同时还提供了字节码校验器、文件访问控制等安全保障机制。Java舍弃了C++的指针对存储器地址的直接操作,程序运行时,内存由操作系统分配,这样可以避免病毒通过指针侵入系统。Java对程序提供了安全管理器,防止程序的非法访问。例如电子商务是当今的热门话题,然而传统的编程语言难以胜任电子商务系统,电子商务要求程序代码具有基本的要求:安全、可靠、同时要求能与运行于不同平台的机器的全世界客户开展业务。Java以其强安全性、平台无关性、硬件结构无关性、语言简洁同时面向对象,在网络编程语言中占据无可比拟的优势,成为实现电子商务系统的首选语言。(五)网络应用方面。作为一种网络程序语言,能够使用Java语言及其开发工具方便地开发出包括客户端、本地和服务器端的多种不同运行机制的网络应用程序。此外,Java还为网络应用程序的开发提供了类库,使开发者能比较容易地实现基于TCP/IP的分布式应用系统。Web浏览是现在国际网甚至局域网的主要使用方式。文档能很容易地显示文本和各种图片,他还能提供超文本链接。浏览器调用HTML语言写的文档,HTML/WWW浏览器技术只限于文本和图像。如果你想播放一种声音或运行一个演示程序,你不得不下载那个文件并用你本机上的能理解和运行那个文件格式的程序来播放它。Java程序和它的浏览器Hot Java,提供了可让你的浏览器运行程序的方法。你能从你的浏览器里直接播放声音。你还能播放页面里的动画。Java还能告诉你的浏览器怎样处理新的类型文件。现在所有手机的嵌入开发(手机游戏)等都由Java语言开发实现。
四、结论
目前中国国内的计算机语言应用认证主要有微软的MCSD、IBM以及SUN的SCJP,常用计算机语言主要包括C、C++、Java、VB、Fortran、Delphi\PowerBuilder等等,但除了Java可广泛应用于不同平台,其他语言都受到操作平台类型的限制,使编程工作复杂化,重复编程工作人员的劳动,降低了效率。因此Java也就越来越多地受到重视,被广大计算机工作者接受。特别是其基于internet的操作性,更使其方便地在网络上传播应用,加之其执行速度比其他开发语言要快,更适应现代经济发展的需要。我们可以乐观地预计Java语言的规范性将使之成为世界上最普及的计算机程序开发语言。
参考文献:
(一)派生
隐喻在人类对计算机科学的认知、理解和推理中起着重要的作用,并反过来激发、促进了计算机隐喻性词汇的生成。派生形式具有构词力强、词义宽广、结合灵活等特点,为隐喻性计算机英语词汇提供了取之不尽、用之不竭的源泉。例如,lap-top是lap(膝)和top(顶部)的叠加,人们根据其形象的比喻将便携式电脑称之为laptop。同样地,桌面电脑被称为desktop。再例如,reboot是前缀re(表示再、重新之意)与boot合成的新词。boot作动词时,可作为蹬踢之解。在计算机操作中,由于某种原因造成暂时中断或未能正常继续时,似乎需要借助加力“踢一下”,程序才得以恢复进行。同样地,reinforce(加固,加强),re-key(重新键入)。此外,与词根hyper(超,超级的)有关的用在电脑世界里的派生词随处可见:hyperlink(超级链接),hypermedia(超媒体),hypertext(超文本,超级文本)再如,由词素micro后面加上其它词构成表示“微”的新词microprocessor(微型处理器),microcompute(r微型计算机)microwave(微波),microelectronics(微电子学)等。
(二)缩略
人们对那些频繁使用的概念或术语倾向于用缩略式来代替,以隐喻更多的信息。缩略词可以使计算机英语词汇使用起来方便、简洁,易于上口,节省书写和打印时间以及文章篇幅等。如CPU是CentralProcessingUnit(中央处理器,中央处理单元)的首字母缩写词,它是整个计算机的系统控制和数据处理中心。又如PC(PersonalComputer)是有别于公用的或集体的“个人计算机、微机”,再如HTTP(HyperTextTransferProtocol超文本传输协议)。此外,网络的开通也应运而生了许多隐喻性计算机电子邮件缩略语,如BBS(BulletinBoardSystem)——畅言或获取信息的聊天区,等。
(三)截短
截短词,即把原词截短成两部分,只保留前面一部分,大量地存在于计算机语言中,特别是在菜单、提示、DOS及WINDOWS命令中,这样生成的词使用起来既方便快捷又简洁高效。,如dir是directory的截短词,即用最少的三个字母dir隐含该词在计算机语言中“列目录”之意。这类的例子也很多,如de(ldeletes删除)、DEF(definition定义)、DISC(disconnect断开)、Mac(Macintosh)、pri(primary第一的,主要的)、docs(documents文件)等。另外,还有一种特殊的截短词形式,它把单词中的元音字母去掉,只留下辅音字母,如DRV(drive驱动器)、MD(made建立子目录)、RDBL(readable可读的)、LMT(limit界限)、INCLD(include包括)等。
(四)赋新
任何词的词汇意义是人们的知识对客观事物、观点和关系的反映,是在词中固定下来的某种联想。通过这种联想,词可以称为语言外部的客观事物,表达指物性意义。计算机词汇中吸收了当代许多学科领域中的尖端科技成果,生成了大量的新词汇。这类词汇在经历了语义变化以及隐喻修饰之后,原词的意义已经荡然无存,以全新的语义出现。如Clone一词,原意是“植物无性系”,后来科学家们用来指根据遗传基因而产生的一模一样的复制品或复制活动,汉译为“克隆”,Clone一般指的是由计算机专业人员将与品牌机功能相近的不同零部件组装而成的微机。Bus原意是公共汽车的意思,但在计算机语言里,它却意为总线。计算机词汇中这类旧词赋新义的词还有很多,如peripheral(设备),Monitor(显示器)等。
二、计算机语境中概念隐喻的主要模式
(一)计算机是人
计算机是人:一方面,计算机是一个系统,由不同的部件构成,每一部件都有自己的作用,缺一不可;另一方面,健康的身体取决于人体各器官的相互协调,缺一不可。因此两者之间存在可比性,把人的特征投射到计算机领域有利于我们对计算机的理解和认识。例句:Mycomputeristhinkingabouttheproblem.(我的计算机还在思考这个问题。)例句:Thememorymanagerisactuallyprettysmart.(存储管理程序实际上是很聪明的。)
(二)计算机是工厂
计算机的工作就像工厂的生产,首先,它具备一定的生产设施如machine(机器)、processor(处理器)、device(设备)、household(仓库)、modulate(模板)等。同时,operatingsystem(操作系统)进行资源distribute(分配)和manage(管理)。另外,为了保证预期的quality(质量),还应对产品进行debug(调试),最后产品才能package(封装)出厂。例句:MostofthedevicesconnectedtothecomputercommunicatewithCPUinordertocarryoutatask.(大多数连接到计算机上的设备通过与中央处理器通信完成作业。)
(三)计算机是办公室
隐喻是我们在开发软件时经常采用的观念,计算机是办公室隐含在计算机软件语言和图标中。办公室是人们熟知的概念,其中有windows(窗户)、desks(办公桌)、printer(打印机)、trashcan/recyclebin(垃圾桶)、documents/files(文件夹)等。当我们使用微软文字处理软件时,我们可以setup(建立)、edit(编辑)、save(存储)、sort(分类)、retrieve(恢复)和print(打印)文件,这些活动正是我们在现实的办公室里能看到的,现实办公室的构架(原始域)被投射到计算机领域。
(四)计算机是容器
计算机就像一个容器,有inputdevice(输入设备)、outputdevice(输出设备)、CPU(中央处理器)、Peripheral(设备),它甚至还有entrance(入口),你可以login(进入)或logout(退出)该容器,save(存入)或retrieve(调出)你所要的资料;同时,它还拥有一定的capacity(容量),如果内容太满,则可能出现fillout(溢出)的情况,这时,你可能要delete(清空)回收站或free(释放)一些磁盘space(空间)。例句:Lowdiskspace.(磁盘空间不足。)例句:Deletesomeunusedfilestofreesomediskspace.(删除一些没用的文件,释放一些磁盘空间。)
(五)计算机是餐馆
计算机是餐馆,中央处理器是整个计算机的系统控制和数据处理中心,你可以简单的将其认为是一个熟练的厨师,中央处理器可以处理从输入设备输入数字数据,将其输出到某输出设备。当计算机关机时,在随机存取存储器中的信息将会丢失,正如同盘子被那个厨师所清洗干净一样。界面广泛应用于文字处理程序中,而菜单(menu)一词使人联想到餐馆就餐的场景,步入餐馆,看看菜单,点上几道自己喜欢的菜。在计算机领域里,显示屏向顾客(计算机用户)显示菜单(一系列功能),供顾客点单。
(六)计算机是建筑物
计算机是建筑物的隐喻可从三方面分析:首先是有关建筑物结构方面被投射到计算机领域就有:architecture(构架),window(窗口),workstation(工作站),wallpaper(墙纸)等;其次有关建筑物功能作用方面被投射到计算机领域就有:platform(平台)port(端口)library(图书馆)等;最后就是有关建筑物活动被投射到计算机领域就有:signin/login(进入),signout/logout(退出)等。
三、隐喻对计算机英语词汇的理解和记忆的认知作用
通过以上分析,我们认识到,隐喻普遍存在于计算机英语词汇中,计算机英语词汇的隐喻特征也十分显著。因此,从理论上说隐喻对计算机隐喻词汇记忆和理解必然起着十分重要的认知作用。通过隐喻这一认知工具,通过概念隐喻的映射,我们可以对计算机英语词汇进行全新的理解。尤其是对那些由普通词汇引申而来的多义词,我们可以从概念隐喻的角度来进行更深层次的理解。正如隐喻对普通词汇的理解与记忆所起的认知作用一样,这种隐喻式的理解方式必然也有助于计算机英语词汇的记忆。