计算机语言的概念十篇

发布时间:2024-04-29 08:06:08

计算机语言的概念篇1

关键词:计算机网络隐喻性词语

一、隐喻性计算机词语产生的理论基础

认知语言学认为,隐喻不仅是语言修辞手段,而且是一种思维方式。当人们要认识和描写以前的事物,而原有的语言符号不能表达新概念时,人们往往依赖已知的概念及表达方式以加深对不熟悉事物的认识和了解,通过想象和联想,看到概念之间的联系,从而从一个易于理解的源域(sourcedomain)概念映射到一个较难理解的目标域(targetdomain)概念。本文正是以此为理论基础对本论题进行考察。

辩证唯物主义认识论认为,语言是联系思维和外部世界的现实中介,“主体的认识成果和意识内容只有借助于语言才能获得持久的存在形式”,①人们认识的成果必须以语言的形式展现出来。语言中,词汇对社会生活的变化最为敏感,概念的形成依靠语言中的词,因而人们的认知成果更多地通过词汇表现出来。

当代西方人本哲学家认为,人类最初的思维方式是神话思维、隐喻思维等非逻辑思维。对于这种非逻辑的东西,人们常常运用隐喻化语言来体现。在当代科学认识活动中,主体实际上必须应用一种形式化的演绎方法,用不反映事物终极事实的隐喻性词语对认识客体的本来状态进行假设,创造性地提出语言模型,采取新的认识方法来把握客体。这种思维方式就表现为科学语言的隐喻特征。与其它认知科学一样,科学家们在探索计算机领域时,用已知的概念来认知未知的概念,以具体喻抽象,以通俗喻科学,创造出了大量的隐喻性计算机词语,这是隐喻所具有的认知功能的充分体现。

根据上述理论,我们把通过隐喻方式创造出来的计算机及网络词语称为隐喻性计算机词语。通过研究这些词语,我们发现,隐喻不仅在计算机领域普遍存在,而且体现了我们对计算机的认识。

二、计算机隐喻性词语分析

1.计算机是人

认知语言学认为“人们习惯从自身的角度出发,从行为动机、情感特征,以及行为方式来理解和认识人体以外的东西”。②为了生动形象地描述一个物体或抽象概念,人们会把无生命的东西看成是有生命的。这种拟人化的过程也是一种隐喻,称为本体隐喻(ontologicalmetaphor)。通过人们在谈论计算机时常有的如下表达方式,我们可以得出“计算机是人”这一隐喻概念。

(1)我们知道HtpC的关闭模式是将电脑由运行转为睡眠模式(即进入待机模式)。(《微型计算机》,2006年第2期)

(2)难道电脑中毒了?(《微型计算机》,2006年第9期)

(3)病毒和木马经常利用操作系统漏洞直接导致电脑死机。(《微型计算机》,2006年第9期)

在以上的这些例子中,计算机被赋予了人的特性。一方面,计算机是一个系统,由不同的部件构成,每一部件都有自己的作用,缺一不可。另一方面,健康的身体取决于人体各器官的相互协调,缺一不可。因而,我们把计算机当成人一样来理解,计算机可以“睡眠”,能因感染“病毒”而发出“死”的行为。

类似拟人化的计算机隐喻词语还有“传染、入侵、记忆、对话框、程序语言、发送、读取、破解、主板(motherboard)、子板(daughterboard)、子窗口(childwindow)”等。每一个这样的隐喻都是由人类自身的特征这一源域到计算机这一目标域的投射。

2.计算机是容器

本体隐喻中最典型、具有代表性的是容器隐喻(containermetaphor)。这种隐喻的物质基础是:人在自然界中占有一定的空间和位置,是独立于周围世界以外的实体,以皮肤作为界面,有体内和体外之分,因此每个人本身就是一个容器。人们将这种概念投射到人体以外的其他物体上,甚至将一些抽象、无形的事件、活动也看作一个容器。当人们把这种概念投射到计算机这一具体事物上,那么计算机也被当成了容器。如:

(1)“勇气”号的病因是电脑存储器中的数据堆积过多,耗尽了存储器的存储空间。(《京华时报》,2004)

(2)如果对方没有处理供热投诉,热线信息将长时间保存在电脑中,相关部门将根据信息及时进行追踪处理。(《新京报》,2006)

(3)面对这一“流氓”行径,小孙无可奈何,只得请人清空计算机,重装系统。(《湖南日报》,2006)

从上面的例子中可以看到:人们将“人本身就是容器”的概念映射到计算机上,计算机被概念化为容器。在映射过程中,属于某一领域的相关概念转移到另一领域,而这一映射过程的基础是两个领域存在某些方面的相似性,这种相似性不完全是因为客观事物本身具有相似的特征,也因认知主体在不同概念之间辨认或创造的共享特征和联系。隐喻思维方式使人们看到了计算机和容器概念之间的联系,参照容器经验域来理解计算机,对容器中的物质人们可以发出存放、清除、查找的行为,同样人们也可以对计算机中的信息资料进行存储、清空、寻找。

三、网络领域中隐喻性词语分析

计算机网络是基于计算机技术而建立起来的,因此网络中的隐喻语言现象也是计算机用语隐喻所包含的内容之一。文中提到的网络隐喻专指已经渗透到人们生活各个领域,并为人们所关注的互联网中存在的隐喻现象。

1.互联网是生物系统

传统上,我们把互联网视为一种交流的媒介,现在我们把互联网当成一个与生物体系非常相似的信息环境。以这个新的角度看待互联网,我们发现在这个虚拟的生物系统中,有许多生物不断地生长、消亡。计算机有不同的“种群”:大型计算机、小型计算机、个人计算机、掌上电脑,等等,所有这些计算机都要遭遇“病毒”(病毒程序)的“入侵”。为了避免“感染”病毒,计算机被注射疫苗――安装防御病毒程序,这些程序能够“查杀”病毒。此外,在互联网中还有其他生物存在,如“蠕虫”(可自我复制的互联网病毒),它们在互联网这个信息平台上不断地自我繁殖,从一个生命机体(计算机设备)传播到另一个。如果“蠕虫”太多,将会阻碍互联网上信息的传播。在互联网这个生物系统中,还存在着许多的“臭虫(bugs)”(系统、设备或程序中的一种错误或故障),电脑黑客开发这些“臭虫”去攻击互联网中的电脑设备。“蜘蛛”(一种网站搜索程序)是这个信息交流平台的另一个重要的生命机体,它不断地在互联网上“爬行”,搜索信息。在“蜘蛛”这一种搜索程序的帮助下,我们能够使用百度、Google等搜索引擎查询我们需要的信息。

除了以上我们提到的“病毒”“入侵”“蠕虫”“臭虫”“蜘蛛”等词语外,还有一些隐喻性的网络词语能够反映出“计算机是生物系统”这一隐喻概念,如“地鼠”(一种互联网搜索引擎)、“千年虫”、“网络蚂蚁”(下载软件)、“网络蚊子”(下载软件),等等。这些熟悉的词语使我们能够更好地理解与互联网相关的许多抽象概念。

2.互联网是社会

在互联网这一虚拟的环境中,存在着几乎与我们现实社会相对应的每一个事物。互联网上有“网上超市”“网络商场”“网络银行”,人们可以“网络购物”从事“电子商务”;有“电子图书”“电子期刊”,人们可以就读“网络大学”;还有“网恋”“网络爱情”“网络中介”“网络警察”,等等。我们几乎可以把存在于现实社会中的任何事物概念,甚至包括现实社会所遵行的行为准则、道德规范等抽象概念都投射到互联网中。近年来“信息高速公路”成为使用频率极高的词语。以下是从报刊中摘取的有关互联网报道的新闻内容:

(1)如今,数字地球已成为发达国家为抢占科技、经济制高点的一个与信息高速公路相提并论的战略。(《人民日报》,2006)

(2)而建在清华的中国教育和科研网络中心,更是为之提供了四通八达、连接全国和世界的信息高速公路。(《中国教育报》,2006)

从上面的例子可以看出,“信息高速公路”成为计算机网络隐喻中的一个中心概念,它是组织人们有关信息服务的概念系统中的一个重要的核心概念。下面是源域高速公路和目标域互联网的对应情况:

从上面的对应情况中,我们可以看到目标域的概念和源域概念有着本体对应效果,这种形象对应是通过隐喻来实现的。

我们不仅将网络视为高速公路,还认为网络是社区。社区隐喻概念强调的是在网络虚拟空间人们之间的交流。人们可以通过“电子邮件”“论坛”“电子公告板”“聊天室”等这些方式进行交流,这些交流方式摆脱了空间距离的限制,可以使身处世界各地的人们通过互联网进行实时的交流。这样方便快捷的交流拉近了世界各地的人们之间的距离,仿佛世界各地的人们在一个共同的社区里互相交流。

互联网还是一本书。我们从书的特征来看,每一本书都有封面,标显出书的内容。每一个网站也有封面,我们称其为“主页”。主页中包含着与主页相关的信息,每一条信息又可以看作是一个书页,我们称其为“网页”。从“浏览、浏览器、个人书签、网页搜索、标记、网页图片、网络版权、远程目录、阅读器软件”等词语中我们能够发现,“书”这一认知域的许多元素能够被投射到目标域互联网中,互联网被隐喻成由“网页”构成的书。

上面讨论的互联网中的隐喻词语不是任意制造出来的,它们扎根于与我们不断相互作用的自然和文化环境中。

3.其他隐喻

“冲浪”是我们经常提到的词语,当我们说“在网上冲浪”时,在人们的思维中互联网被隐喻化为海洋。“冲浪”一词所激活的场景是:人们遨游在广阔的信息海洋,为了防止迷失,我们用“导航”系统获取所需信息。

此外,还有很多词语能够反映出“网络是交易场所”这一隐喻概念,如网络营销、网上采购、网上拍卖、网上消费、网上银行、网上赚钱、虚拟市场,等等。

结语

从认知角度,通过对与计算机及网络相关的词语的考察,我们发现,首先隐喻的言语现象在计算机领域普遍存在,并体现了我们对计算机的认识。其次,隐喻不仅能够在人类对计算机科学的认知、理解和推理中起着重要的作用,而且会反过来激发、促进隐喻性计算机词语的生成,极大地丰富汉语的词汇系统。

注释:

①王晓升.中国人民大学博士文库:语言与认识[D].北京:中国人民大学出版社,1994:184.

②Lakeoff,Johnson.metaphorweLiveBy[m].Chicago:Universityofpress,1980:33.

参考文献:

专著:

[1]冯晓虎.隐喻――思维的基础篇章的结构[m].北京:对外经济贸易大学出版社,2004.

[2]束定芳.隐喻学研究[m].上海:上海外语教育出版社,2000.

[3]束定芳.语言的认知研究――认知语言学论文集[C].上海:上海外语教育出版,2004.

[4]蓝纯.认知语言学与隐喻研究[m].北京:外语教学与研究出版,2005.

[5]赵艳芳.认知语言学概论[m].上海:上海外语教育出版社,2000.

论文:

[1]赵艳芳.语言的隐喻认知结构――我们赖以生存的隐喻评价[J].外语教学与研究,1995,(3).

[2]刘宁生译.我们所依存的隐喻[J].修辞学习,1992,(6).

[3]范立云.计算机英语隐喻的认知价值[J].四川大学学报(哲学社会科学版),2004,(1).

[4]林丽芳.论计算机英语的隐喻性[J].厦门大学学报(哲学社会科学版),2001.

[5]刘秀花.论科技术语的隐喻性[J].东华大学学报(社会科学版),2004,(9).

计算机语言的概念篇2

关键词:本体;本体检索;语义相似度计算

1引言

随着internet的日益发展和普及,本体在信息采集、信息检索及本体集成等方面的应用越来越广泛。2002年12月18日berners-lee在国际xml2000的会议提出semanticweb(语义网)的构想[1]。在semanticweb中,语义相似度算法是实现基于本体的检索、采集等的关键问题。因此语义相似度算法的好坏成为信息检索效率高低的重点,于是改良语义相似度算法是一个迫切的问题。

关于语义的相关性,国内外专家已经做了大量的工作:resnik根据两个词的公共祖先节点的最大信息量来衡量两个词的语义相似度。agirre等在利用wordnet计算词语的语义相似度时,除了结点间的路径长度外,还考虑到概念层次树的深度、概念层次树的区域密度。鲁松研究了如何利用词语的相关性来计算词语的相似度。lisujian等提出了一种词语语义相似度的计算方法,计算过程综合利用了《知网》和《同义词词林》。朱礼军等引入了计算语言学中的语义距离思想来计算领域本体中概念间的相似度。

本文总结前人的经验,并将概念的数据类型考虑其中,这样概念的语义相似度就更加精确。

2本体与领域本体

本体(ontology)作为一种能在语义和知识层次上描述信息的概念模型,自被提出以来就引起了国外众多科研人员的关注,并在计算机的许多领域得到了广泛的应用,如知识工程、数字图书馆、软件复用、信息检索和web上异构信息的处理、语义web等。www.133229.Com

2.1本体的概念

目前对本体的定义有很多,专家们认为由studer等人在1998年提出的“本体是共享概念模型的明确的形式化规范说明。[3]”最为精确。它包含4层含义:概念化(conceptualization)、明确(explicit)、形式化(formal)和共享(share)。

(1)概念化:指通过抽象得出客观世界中一些现象(phenomenon)的概念模型。

(2)明确:指所使用的概念及使用这些概念的约束都有明确的定义。

(3)形式化:指本体是计算机可读的(即能被计算机处理)。

(4)共享:本体中体现的是共同认可的知识,反映的是相关领域中公认的概念集,它所针对的是团体而不是个体。

2.2本体的分类

guarino[5]在1997年对本体依照领域依赖程度,分为顶级(top-level)、领域(domain)、任务(task)和应用(application)ontologies共4类。其中:

(1)顶级ontologies描述的是最普通的概念及概念之间的关系,与具体的应用无关,其他种类的ontologies都是该类ontologies的特例。

(2)领域ontologies描述的是特定领域中的概念及概念之间的关系。

(3)任务ontologies描述的是特定任务或行为中的概念及概念之间的关系。

(4)应用ontologies描述的是依赖于特定领域和任务概念及概念之间的关系。

本文主要就是基于领域ontology来设计与研究语义相似度计算方法。

3语义相似度计算

语义相似度是判断几个概念之间的语义的相似程度。在信息检索中,它反映的是用户查询关键词的意义上的符合程度。

3.1语义相似度计算原则

语义相似度的计算原则是为了本体内部概念间相似度计算更加准确而提出的[2],其内容如下:

(1)量化原则:相似度是一个数值,取值范围应该在[0,1]之间[3],如果两个概念完全相同,那么他们的相似度为1,完全不同,相似度为0。

(2)简单性原则:计算相似度的同时应该考虑计算复杂度[4],复杂度应该尽量降低。

(3)充分利用本体的特性。

(4)可调节性:可调节性是指相似度的计算结果可通过某些参数来调节,词语相似度是一个主观性比较强的概念,可调节性可以满足不同的需求,适应不同的情况[2]。

(5)类型性:在计算概念相似度的时候,也应该将概念的数据类型考虑其中,这样能提高概念相似度的精度。

(6)对称性:sim(c1,c2)=sim(c2,c1),对称性有利于概念相似度之间的对比与换算。

3.2相似度计算方法

本文建立了一个简单的医疗系统的本体,如图1所示。class:表示的是类,subclassof:表示的是本体中最主要的关系,即概念之间子类的关系,也就是继承关系。例如:c0是c1,c2的父类,而c1与c2则是c0的子类。

利于owl语言构建此本体的代码片段,如下:

xmlns:rdf="/1999/02/22-rdf-syntax-ns#"

xmlns:xsd="/2001/xmlschema#"

xmlns:rdfs="/2000/01/rdf-schema#"

xmlns:owl="/2002/07/owl#"

xmlns="/ontology1243997987.owl#"

xml:base="/ontology1243997987.owl">

……

……

(1)语义距离:是两个概念在本体树中的最短距离,记作distant(a,b)。①语义距离越大,其语义相似度越低。反之越大。②两个概念的父节点是同一个,那么distance=1/n(n表示与该节点有共同父节点的子节点的个数)③同一概念的语义距离为0。例如:图1中所示的distance(c5,c5)=0,distance(c7,c8)=0.5。

(2)datatype(数据类型属性)的相似度:是两个概念的数据类型的比较得出来的一个参数值,记作simdt(a,b)。如果两个概念的数据类型相同,则simdt(a,b)=1。如果不同,则simdt(a,b)=0。

(3)objectproperty(对象类型属性)的相似度[5]:是类与类之间的关系,记做simobject(a,b)。和分别表示概念和的对象类型属性的个数。的对象类型属性所对应的概念为,的对象类型属性所对应的概念为,则概念的对象属性的语义相似度为:

(4)本体概念的深度:是概念在本体树中的层数,记作depth(a)。

(5)调节因子:是为了满足系统的特定需要而设定的特定参数。由于词语相似度是一个主观性比较强的概念,所以必须使用调节因数来具体情况具体分析。它通过对本体树的广度与深度的控制来调节特定的语义的相似度。本文用k来表示调节因数。

综合得出语义相似度算法的公式:

式中sim(c1,c2)表示概念c1、c2的语义相似度,distance(c1,c2)表示概念c1、c2的语义距离,simdt(c1,c2)表示概念c1、c2的数据类型的相似度,simobject(c1,c2)表示概念c1、c2的对象类型的相似度,k表示调节因子,depth(c1)表示c1的的深度(即本体树中的层数),分别是数据类型属性和对象类型属性在属性相似度中的权值,,且。

3.3实验结果

根据本文得出的语义相似度算法,即上述公式计算出表1所示的本体树的语义相似度。

3.4基于本体语义相似度的应用

begin;

input:查询表达式q={w1,w2,……,wn}and语义相似度的临界值k;

result=null,i=0;

while(q[i]的语义相似度>=k){

result[i]=q[i]+相关概念集;

i++;

}

returnresult;

end;

4结束语

人与机器之间的有语义的交流近年来成为了人们研究的焦点与瓶颈。本体由于其共享性和明确性以人与机器的语义交流的基础进入了人们的视野。本文通过建立本体树,利用其层次之间的关系来设计概念的语义相似度算法。同时将概念的数据类型与对象类型也考虑其中,这大大提高了概念的语义相似度算法的精度。但是由于本文只考虑了基于单个本体的相似度算法,不能满足多个领域本体间概念的相似度算法。在以后的研究中,会将此算法扩展到多个领域来设计,以便大幅度提高概念的语义相似度的精度,进而优化基于本体的信息检索及信息采集。

参考文献

[1]berners-leet,hendlerj,lassilao.thesemanticweb[j].scientificamerican,2001,284(5):34-43.

[2]李鹏,陶兰.一个改进的本体语义相似度计算及其应用[j].计算机工程与设计,2007,28(1):226-228.

[3]刘建,李素建.基于《知网》的词汇语义似度计算[j].中文计算机语言学,2002,7(2):59-76.

[4]andreasen

计算机语言的概念篇3

本节的学习对象是八年级的学生,他们已具备一定的观察、思考、分析和解决问题的能力,熟悉常见的应用软件。但他们对用计算机程序解决问题接触甚少,把程序设计看得高深而神秘,容易产生厌学、怕学的情绪,从而失去学习的信心。学生已经在数学课中学习过求图形的面积和周长、解方程等相关知识,为学习程序设计打下了基础。

学习内容分析

本节课是苏科版八年级《初中信息技术》第四章第一节“程序设计简介”的内容,是本章的起始课。本节课的主要内容是认识程序设计、了解程序设计语言、体验程序设计的过程。用计算机程序解决问题是信息加工和处理的一种重要手段,计算机就是靠人编写的计算机程序来解决实际问题的,计算机程序是一组操作指令或语句序列,程序设计的一般过程包括确定算法、编写程序、调试程序。

教学目标

知识与技能目标:了解计算机程序的概念;了解程序设计语言的种类。

过程与方法目标:通过“解方程”实例引入程序设计。

情感态度与价值观目标:通过探究“求图形面积、周长”实例,经历计算机解决问题的过程,学会用计算机程序解决问题。

教学策略

本节内容中含有的概念较多,如果教师只是照本宣科,就无法激发学生的学习兴趣,使他们迸发出思维的火花。概念是进行逻辑思维的最初形式,是进行逻辑思维的物质基础。任何一个概念的形成都是一个不断完善、发展的过程。教学时,要还原概念的生成与发展过程,才能让学生更好地体验概念、感受概念,最终形成对概念的认知。为此,笔者通过引入程序、走进程序、体验程序、畅想程序这些学习活动,期望学生在活动中感悟程序、程序设计的概念,认识程序设计语言,体验程序设计的过程。

教学过程

1.创设情境,引入程序

师:在日常生活中,我们经常使用计算机解决以下各类问题:①如何在体检表中,快速找出身高最高的学生?(电子表格)②绘制一个圆形,可以使用什么工具软件?(画图、wpS、photoshop)③解一元二次方程呢?前面两个问题我们可以使用电子表格、画图等软件来解决。第三个问题呢?我们现有的软件能解决吗?没有合适的软件,我们可以自己编写程序。

学生体验用程序来解一元二次方程(如图1)。

小结:用计算机解决问题时,首先应考虑选择现有软件,当没有合适的软件时,需要自己编写程序来解决问题。

设计意图:借助问题引导学生思考,唤起学生的求知欲,总结出用计算机解决问题的几种方法。利用解方程这个小程序,帮助学生感受计算机程序的作用,调动他们开发程序的愿望,明确学习内容。

2.感知生活,走进程序

用计算机能识别和执行的语言,编排完成具体工作的操作序列。

师:计算机所能识别的语言是什么呢?我们一起来认识它(分析程序代码)。

活动三:了解程序设计语言。

观看微视频“程序设计语言”,思考以下问题。

①程序设计语言分为哪三种?(机器语言、汇编语言、高级语言)

②计算机唯一直接识别的语言是什么?(机器语言)

③我们一般使用哪种语言编写程序?(高级语言)

④高级语言程序如何转换成机器语言程序呢?(用高级语言编写的程序必须先翻译成机器语言程序,计算机才能识别和执行,翻译方式有解释与编译两种,如图2)

设计意图:合理地创设问题情境,引导学生利用生活中的问题进行探究学习,即解方程的步骤、查看解方程程序的代码,由生活中的程序过渡到计算机程序,便于学生接受、理解和运用知识。借助微视频学习任务单,引导学生认识机器语言、汇编语言、高级语言等几种程序设计语言的特点。

3.范例引领,体验程序

活动四:分析范例,体验求三角形面积的程序。

①求三角形面积。

师:实现方法是输入底、高(面积=底×高÷2),点击计算按钮,输出面积(如图3)。为了使描述更加清晰、直观,我们一般使用流程图呈现(如图4)。

小结:这是我们解决求三角形面积问题的方法。计算机解决问题和人解决问题一样需要解题步骤和方法。这种计算机解决问题的步骤和方法称为算法。自然语言是最直接的描述算法的工具,用流程图表示算法,直观形象,易于理解。解决问题的过程,就是实现算法的过程,而计算机程序就是算法的代码实现,是计算机可以执行的。

②打开求三角形面积程序,切换代码界面,对照流程图,尝试读懂程序。

③学生运行程序,查看结果。

活动五:模仿范例,设计求长方形周长的程序。

①分析问题,确定算法。

教师对比求三角形面积的方法,引导学生确定求长方形周长的算法(如图5)。

②启动VB,完善程序。

学生模仿求三角形面积的程序编写求长方形周长的程序。

③运行和调试程序。

师:按F5键运行程序,观察结果,运行成功了吗?如果没有成功,仔细查看输入的代码,找出错误,修改后再次运行!

学生演示程序,教师引导学生共同探寻程序中的错误并修改,直至运行成功。

④提炼程序设计的一般过程(如图6)。

设计意图:知识不是从他人那里获得的,也不是道听途说的,更不是被推导、想象或猜测出来的,而是由学生亲身经历习得的。首先以学生熟悉的三角形面积为例,通过分析算法、查看代码、运行程序,初步了解程序设计。在此基础上,模仿编写求长方形周长的程序,增加感性认识。在熟悉的情境中轻松体验计算机程序设计的思想,在运行程序的过程中发现错误、改正错误,体会到程序编写并不是一次就能成功的,需要反复调试。从而经历和体验计算机程序设计的一般过程,感悟计算机程序解决问题的魅力。

提炼升华,畅想程序

1.思维导图,复习巩固(如图7)

2.观看视频,畅想程序

教师介绍软件、app与程序之间的关系。(软件是由程序、数据、文档资料组成的,其核心是程序;app是智能手机的第三方应用程序)

观看视频《一名12岁的手机应用开发者》,并说一说你想设计一个什么样的程序?

3.拓展思路,明确方向

计算机语言的概念篇4

本文将从数理逻辑观点看计算机系统结构、计算机软件与理论和计算机应用技术的核心课程,以此探讨数理逻辑的理论基础作用。

1公理系统及数理逻辑简介

亚里土多德在逻辑史上第一次应用了形式化、公理化的演绎系统,类似自然演绎系统,为逻辑的形式化开了先河。亚里士多德关于演绎证明的逻辑结构给出基本概念,通过定义派生概念;给出公理或公设,通过逻辑证明定理。这种由初始概念、定义、公理、推理规则、定理等所构成的演绎体系,称为公理系统。

欧几里德整理、总结和发展了希腊古典时期的大量数学知识,形成了《几何原本》。实质公理系统,给出点、线、面、角等23个原始定义概念,给出5条公设、5条公理,由公理公设出发加以证明了467定理。这也标志着公理学的产生,是实质公理学的典范。

俄国数学家罗巴切夫斯基提出从直线外一点,至少可以做两条直线和这条直线平行公理,从而发现了锐角非欧几何;1854年黎曼提出在同一平面内任何两条直线都有交点公理,从而发现了钝角非欧几何。非欧几何从直观的空间上升到抽象空间,使得人们认识到区分感性直观与科学抽象的重要性。

弗雷格第一个严格的关于逻辑规律的公理系统。在1879年出版了著作《概念文字:一种模仿算术语言构造的纯思维的形式语言》,他完备地发展了命题演算和谓词演算,第一次把谓词演算形式化,标志着数理逻辑的发展由创建时期进入奠基时期。

皮亚诺提出了自然数算术的一个公理系统用逻辑演算表述数学、推导数学。关于自然数论的五个公理一直沿用到现在,成为自然数论的出发点。

罗素(B.Russell)继承皮亚诺的研究,完备了命题演算和谓词演算的成果,以集合论为基础,对自然数作出定义,证明自然数满足皮亚诺的五个公理。罗素总结了数理逻辑的成果,和怀特海合著了《数学原理》,他的成果汇集成为一本巨著,奠定了数学的基础。

希尔伯特1899年的《几何基础》,第一个逻辑理论问题是公理的无矛盾性,在实数的算术理论中为欧氏几何构造一个模型,这实际上就是笛卡儿几何,在此模型中欧几里德何五组公理都真;第二个逻辑理论问题是公理的相互几独立性,利用模型方法作出了证明。《几何基础》已经发展成为一个形式公理系统。《几何原本》里,点线面都有定义。在《几何基础》里,这三个概念没有定义,也没有直观的解释,这是形式公理方法的特征。由于《几何基础》的基本概念没有直观的具体内容,这个系统可以有各种不同的解释即模型。

1931年,《关于数学原理》一书证明了数理逻辑的不完全定理。在数理逻辑发展史上具有划时代意义。哥德尔完全性定理,哥德尔不完全性定理,给出包括自然数公理的系统一定时不完备的,即一定存在逻辑真的公式,是不可证明的。

欧内斯特・内格尔在《科学的结构》中提出四种科学说明的模式:演绎模型、或然性说明、功能性说明以及发生学说明。在科学说明中,演绎模型是最重要的方法之一。鲁道夫・卡尔纳普《世界的逻辑构造》中,提出构造系统的任务要把一切概念都从某些基本概念中逐步地引导出来,形成概念系谱。一种理论的公理化就在于:这个理论的全部命题都被安排在以公理为其基础的演绎系统中,这个理论的全部概念都被安排在以基本概念为其基础的构造系统中。

在人类发展过程中,数理逻辑是最重要的系统的知识表示和科学说明方法,从而形成概念系谱,获得可靠定理。数理逻辑是计算机专业的基础理论,本文将讨论它也是计算机专业的理论基础。

2逻辑公理系统

2.1逻辑公理系统

逻辑公理系统有初始符号、公式规则、公理以及推导规则四部分。

(1)初始符号

个体变元x1,x2,…

个体常元c1,c2,…

函数符号:f11,f21,......;f12,f22,......;

谓词符号:p11,p21,......;p12,p22,....;

逻辑常项:",Ø,®;

逗号:,;

括号:(,)

(2)项和公式

个体常元是项;

个体变元是项;

若是t1,…,tn项,则是fi(t1,…,tn)项。

若是t1,…,tn项,则pi(t1,…,tn)是公式。

若a是公式,则(Øa)是公式;

若a和B是公式,则(a®B)是公式;

若a是公式,则("xa)是公式。

(3)公理

公理模式a1:p®(Q®p)肯定后件律

公理模式a2:(p®(Q®R))®((p®Q)®(p®R))蕴含词分配律

公理模式a3:(Øp®ØQ)®(Q®p)换位律

公理模式a4:"xp®ptx其中,项t对于p中的x是自由的。

公理模式a5:"x(p®Q)®(p®"xQ)其中x不是p中自由变元。

(4)推导规则

分离规则(简称mp规则):从p和p®Q推出Q。

概括规则(简称UG规则):从p推出("xp)。

2.2证明与定理

定义设Γ是公式集。如果公式序列a1,a2,…an中的每个公式ai满足以下条件之一,则称它为an的从Γ的一个推演(演绎)。其中Γ称为推演的前提集,称an为结论,记为Γ├an。

(1)ai是公理;

(2)aiÎΓ;

(3)有j,k

(4)有j

定义如果├a,则a是定理。

希尔伯特给出的证明论告诉我们,一个证明是一个有穷序列,它的每一步或者是公理、或者是前提或者是推导规则产生的公式。歌德尔不完全性定理证明表明,不存在一个通用算法,判定任意公式是否是定理的证明。因此,定理的证明一定依靠人的洞察力、创新性和运气。一旦一个定理用逻辑公理方法给出证明,那么,人们理解证明过程就仅是逻辑定义和逻辑关系的变换,且证明的每一步或者是公理、或者是前提或者是推导规则产生的公式。因此,如果计算机基础理论建立在数理逻辑基础上,给出逻辑的证明,对于理解概念、性质和定理将变得精确而简单。

2.3完备的基础理论

一个具有等词公理的理论是完全的,等词公理如下:

(1)tt

(2)t11t21Ù…...Ùt1nt2n®f(t11,…,1n)f(t21,…,t2n)

(3)t11t21Ù…...Ùt1mt2m®R(t11,…,1n)R(t21,…,t2n)

peano给出了自然数公理,其语言L={+,∘,s,0},其中+,是二元运算符,s是一元函数符(后继运算符),0为常元。公理如下:

(1)"x(s(x)¹x)

(2)"x"y(x¹y®s(x)¹s(y))

(3)"x(x+0=x)

(4)"x"y(x+s(y)=s(x+y))

(5)"x(x∘0=0)

(6)"x"y(x∘s(y)=x∘y+x)

(7)(p(0)Ù"x(p(x)®p(s(x))))®"xp(x)其中p(x)是任意公式。

peano给出的自然数,有一个常元0,三个运算s、+和∘。(1)-(2)是有关运算s的公理;(3)-(4)是有关运算+的公理;(5)-(6)是有关运算∘的公理;(7)是数学归纳法。

歌德尔不完全性定理表明包含peano自然数公理的系统是不完全的。人们证明自然数仅包含公理(1)-(4)和(7),这样的理论是完全的。

因此,我们给出的证明系统的基础理论,包括逻辑公理、等词公理和peano的完全性公理,以增强证明能力。

3数理逻辑是理论基础

3.1计算机理论基础

计算机专业主要理论包括数理逻辑、集合论、图论、代数系统、形式语言与自动机理论等,数理逻辑是它们的基础,因为它们的基本概念、导出概念都可以采用数理逻辑方法定义,定理的证明都可以采用数理逻辑的公理化方法证明。

(1)策梅罗一弗兰克尔公理集合系统

集合论可以用公理化的方法定义一个无悖论的集合系统,策梅罗一弗兰克尔公理集合系统是重要的稽核公理系统,也记为ZF系统,它包括外延性公理、无序对公理、空集公理、替换公理模式、分离公理模式、幂集公理、并集公理、无穷公理、正则公理。

(2)图论

图是集合的有序偶G=,其中,V是顶点集合,e是边的集合。因此,图论的理论都可以用集合方法讨论。

(3)代数系统

代数系统主要包括群、环、域。如群可以用公理方法表示,其定理可以用公理化方法证明。

定义设G是一个非空集合,是它的―个代数运算,如果满足以下条件:

结合律:"x"y"z((x∘y)∘z=x∘(y∘z))

左单位元:"x(e∘x=x)

左逆元:"x$y(y∘x=e)

则称G对代数运算。作成一个群。

(4)形式语言与自动机理论

1956年,美国语言学家乔姆斯基从产生语言的角度研究语言,将语言形式地定义为由一个字母表Σ中的字母组成的一些串的集合。对任何语言L,使得LÍΣ*。1951~1956年间,克林从识别的角度研究语言,在研究神经细胞中建立了自动机,他用这种自动机来识别语言。对于按照一定的规则构造的任一个自动机,该自动机就定义了一个语言,这个语言由该自动机所能识别的所有句子组成。乔姆斯基将语言分为四类,即正则文法、上下文无关文法、上下文有关文法和短语结构文法。文法产生的所有句子组成的集合就是该文法产生的语言。1959年,乔姆斯基通过深入研究将研究成果与克林的研究成果结合了起来,不仅确定了文法和自动机分别从生成和识别的角度去表达语言,而且证明了文法与自动机的等价性。

形式语言与自动机主要的基本概念是语言、语法和自动机。这些基本概念以及定理可以用数理逻辑的方法定义和证明。

定义:若Σ是字母表,且LÍΣ*,则称L是Σ上的语言,L={α|αÎΣ*}。

定义:设文法G=。如果"a®bÎp,a®b均具有如下形式:

a®ω,a®ωB其中,a,BÎV,ωÎt*,则称G为右线性文法,L(G)称为右线性语言。

定义:如果G=是正则文法,则文法G产生的语言L(G)称为正则语言,记为RL。

L(G)={ω|SÞ*ωÙωÎt*}

定义:文法G=称为上下文无关的(context-free),如果p中的产生式具有形式:

a®ω其中aÎV,ωÎ(V∪t)*

定义:如果G=是正则文法,则文法G产生的子句。

定义:确定有穷自动机,记为DFa。字母表Σ上的有穷自动机m是一个系统,m=,其中,Q是状态的一个非空有穷集合,Σ是一个输入有穷字母表,δ是Q×Σ®Q的一种映射,q0是初始状态集,q0ÎQ,F是终止状态集,FÍQ,δ映射表示为qi=δ(qj,a)。

定义:δ*是Q×Σ*®Q的一种映射,q'=δ*(q,ω),qÎQ,q'ÎQ,ωÎΣ*,有

δ*(q,ε)=q,δ*(q,ωa)=δ(δ*(q,ω),a),δ*(q,aω)=δ*(δ(q,a),ω)

定义:设m=,mÎDFa,L(m)是m接受的语言,则L(m)={ω|δ*(q,ω)ÎF}。

3.2硬件基础

数字逻辑与数字部件设计主要包括组合逻辑与时序逻辑原理,数理逻辑的命题演算是其基础。基于mipS指令集,设计寄存器、加法器、移位器、控制器、多路选择器、计数器、比较器等数字部件的逻辑功能。数理逻辑的命题演算将这些逻辑部件的功能表示为真值表,根据真值表表达的逻辑功能,变换为“与、或、非”逻辑运算的逻辑范式。这些逻辑范式的“与、或、非”表达为相应的逻辑部件即实现数字逻辑部件。借助于硬件描述语言和eDa软件工具,完成包括寄存器、加法器、状态机等在内的一系列计算机基础硬件组件的设计和开发。

在计算机组成原理,基于mipS指令集,设计数据通路(如下图),而后根据每条指令的指令周期的动作,设计指令控制逻辑,从而实现计算机组成原理的CpU设计。

数理逻辑的命题演算作为组合逻辑、时序逻辑以及控制逻辑的基础,使学生能够从逻辑的角度完成对数字逻辑部件的设计;通过数据通路的设计,控制逻辑的设计完成功能计算机的设计工作。以此为基础利用HDL实现指令系统的子集及部分相应的计算机功能部件,完成一个功能型计算机硬件的核心部分,并能在其上运行简单的汇编程序。

4软件基础

在1966年G.Jaccopini和C.Bohm证明的"任何程序逻辑可用顺序\选择和循环等三种结构来表示"的定理基础之上,即(1)序列结构;(2)选择结构,if-then,if-then-else;(3)循环结构,while-do。

一个程序规范可表示为由两个谓词构成的二元组(φ,ψ)。其中φ描述了所欲求解问题必须满足的初始条件,这个条件限定了输入参数的性质,称为初始断言或前置断言。断言ψ描述了问题最终解必须具备的性质,称为结果断言,或后置断言。程序断言是对程序性质的陈述。最重要的一个程序断言形如:

{φ}S{ψ}

其中φ和ψ是两个谓词,它们联合起来构成一个规范(φ,ψ)。S是一个程序。φ称S的前置断言,ψ称S的后置断言。断言{φ}S{ψ}称为S关于(φ,ψ)的正确性断言。它的意义为:“若S开始执行时φ为真,则S的执行必终止且终止时ψ为真。”

Hoare定义了一条赋值公理和四条推理规则,它们是:

赋值公理:{p(x,g(x,y))}yg(x,y){p(x,y)}

条件规则:{pÙR}F1{Q},{pÙØR}F2{Q}Þ{p}ifRthenF1elseF2{Q}或{pÙR}F1{Q},{pÙØR}F2{Q}Þ{p}ifRdoF1

while规:p®i,{iÙR}F1{Q},(pÙØR)®QÞ{p}whileRdoF{Q}

并置规则:{p}F1{R},{R}F2{Q}Þ{p}F1;F2{Q}

结论规则:p®R,{R}F{Q}Þ{p}F{Q},{p}F{R},R®QÞ{p}F{Q}

证明程序部分正确性的公理化方法就是依据以上的几条公理和规则进行的。推理过程一股有两种形式:(1)根据给出的不变式断言,建立一些引理,根据这些引理和赋值公理,对程序F中的每一个赋值语旬Fi导出相应的不变式语句{Ri}Fi{Qi};(2)再根据这些不变式语句和上述的四条规则逐步地组成越来越长的程序段,一直到推演出{φ(x)}p{ψ(x,y)为止。这样,就证明了程序F的部分正确性。

5小结

计算机语言的概念篇5

关键词:计算思维;C语言;教学改革

中图分类号:tp3-4;G712

C语言是我院针对非计算机专业开设的计算机类公共基础课程,也是计算机专业及相关专业的专业基础课。在该门课程的教学中一直存在一些问题:[1]

(1)我院非计算机专业学生约占全体学生的90%,大部分学生认为自己毕业又不从事计机软件开发,与后续课程结合又不紧密,所以学习的主动性和自觉性下降。人在课堂,心却不在听课状态,厌学情绪明显,学习效益低下。

(2)C语言的课程采取大班上课,学生的水平参差不齐,随着程序设计知识点增多,大量的难以理解和记忆的新概念、新术语、新规则出现以后,学生逐渐感觉课程难度大,更加无心学习。

(3)课堂内容与实际问题脱节C语言是一门理论和实践性都很强的课程。教学中重理论轻实践,实践课时不足,对程序设计能力的培养不够。

(4)重语法,轻算法。现有的C语言教材中首先要介绍编程涉及的语法格式,然后讲解语法要点和注意事项,对算法描述内容涉及甚少。再加上计算机等级考试的内容主要包括选择题、判断题、填空题、程序填空、程序改错、程序编程题等,都是侧重语法,无疑这种考查方法使得学生的程序设计能力降低。

(5)C语言的语法结构一般都是零散的,学生难于相互关联、总结,采用的案例也是比较零散、短小的、关联不大。学生经常是学会了全部的语法,但仍不知道这门课能做什么,能解决什么实际的问题,甚至不知道如何解决问题。

1计算机思维

近年来,随着“计算思维”概念的提出,各大高校相继把“计算思维”引入到计算机类课程教学中,围绕计算思维能力的培养开展课程教学。那么,究竟什么是“计算思维”?

计算机思维的概念和特征:周以真教授于2006年在CommunicationsoftheaCm期刊上首次提出了计算思维的基本概念:计算思维是运用计算机科学的基础概念进行问题求解、系统设计以及人类行为理解等涵盖计算机科学之广度的一系列思维活动为便于理解。计算思维作为一种思维活动,它不是僵化的一种具体问题的解决方法,而是具有很好普适性的思考方式,提供的是一种方法论。[2]

2如何在C语言课程中培养计算思维能力?以下针对这些问题谈一下笔者的认识和看法

(1)重视实验教学。C语言程序设计是一门实践性很强的课程,实验教学环节尤为重要。目前我院通过优化调整现有学时比例达到课程改革的目的。将C语言程序设计的学时重新分配:该课程总课时为72学时,其中学时调整为理论和实践学时各占一半。在教学内容符合省等级考纲要求的基础上,课程采用课堂讲授与实验操作相结合的方法,使学生动手能力得到了较大的提高。实验内容要具有一定的趣味性或实用性,比如银行存款利息和if结构结合、出生月份的计算和switch结构结合等,采用日常生活中的问题从而激发学生学习的兴趣。实验过程按照“验证―调试―设计”的顺序进行设计。1)验证:安排学生对学习过的内容利用现有的简单程序进行验证;2)调试示例:编写简单的程序作为调试示例,在其中设置学生经常遇到的各种小错误(包括语法错误、逻辑错误);3)编程练习:根据编程示例,让学生能用灵活运用所学知识,求解新的问题解决类似的问题,既巩固了所学知识,又提升了学生的分析问题和解决问题的能力。在实验教学过程中,授课教师还要注意引导、启发学生积极思考。让学生在亲手操作中学习知识、消化知识,运用知识,强化计算思维。培养他们积极思维,自己发现问题、解决问题的计算思维能力。[3]

(2)采用项目驱动的方式进行教学。针对于C语言的语法结构过于零散的情况,可以采用项目驱动的方式。本着一个项目贯穿整个课程教学的思想。可以选用涵盖所有知识点的“猜数游戏”经典程序,让学生围绕这个程序循序渐进地学习,便于思维训练的连贯性。[4]

(3)案例式教学。案例式教学通过先提出问题――分析问题――解决问题的过程中讲授所需知识点。在讲解案例时,我们先提出具体问题,后引导学生去体会为了解决问题而产生的大脑思考过程,将人的想法转写成计算机能够处理的表达式或操作步骤。在课堂上教师借助案例题把C语言的基本概念和方法传授给学生。这种案例式教学能更好地引导学生去分析问题、解决问题,特别是提高学生如何自主寻求解决方案的独立思考能力。

(4)重视算法的作用。将C语言中常用的算法进行归类,在教学过程的不同阶段,分别引入这些算法。好的算法不一定适用于每个问题和每个学生,通过算法的多样性使学生深入理解到计算机求解同一问题可用不同的方法。而掌握计算机求解问题的各类方法,也是培养学生计算思维的关键。例如“素数”求解问题:如果n能被2~(n-1)之中任何一个整数整除,则表示n肯定不是素数,不必再继续被后面的整数除;反之就是素数。按照这种方法求解的程序是:

for(i=2;i

if(n%i==0)break;

这样For循环要执行n-2次,经过分析我们发现并不需要使用这么多次判断。只要条件满足n能被2~之中任何一个整数整除,则n就不是素数,因此可以将程序更改为:

for(i=2;i

if(n%i==0)break;

这样n值越大改进后程序运行效率越高。对于求解某一区间内的素数如求100~200间的素数我们可以通过以下程序来判断:

for(n=101;n

for(i=2;i

if(n%i==0)break;

上面的例子充分说明利用算法的简化和优化,可以帮助学生举一反三地学好C语言课程。

(5)改革考核内容。一直以来,C语言课程的考核都是针对于期末考试和省二过级而设定的,内容主要是针对C语言语法知识的掌握、常用算法的识记和应用、初步的程序设计开发能力等方面来设置的,并没有有意识地针对计算思维能力的培养来设置考核内容。注重计算思维能力培养的C语言课程应在考核内容设置上更多更明确地体现出对学生运用计算思维求解问题的能力的考核。例如,考核常用算法的识记和应用时,应侧重对最初算法的改进或扩展用于实际问题求解的考核。加大算法的运用比例,增加程序设计题的占有率,从学生的考核中强化计算思维能力的培养。[5]

3结束语

通过C程序课程中的若干改革尝试,将计算思维培养融入到理论教学和实践教学的各个环节,培养学生用计算机自主解决问题的能力,从而提高学生的创新思维和创新能力都有积极的作用。

参考文献:

[1]于晓强,赵秀岩,闫丕涛.计算机程序设计课程中计算思维能力的培养[J].计算机教育,2013(13):18-21.

[2]张雪伍,常晋义.计算思维在C++程序设计教学中的应用[J].计算机教育,2013(13):52-56.

[3]董卫军,邢为民,索琦.贯穿计算思维的(C语言程序设计)课程改革[J].教改创新,2012(11):48-49.

[4]丁金凤,李英梅,徐建山.基于计算思维的程序设计类课程教学实践[J].学科建设与教学改革,2012(15):65-68.

[5]李倩.C语言程序设计课程中计算思维能力的培养[J].网络安全技术与应用,2013(12):111.

计算机语言的概念篇6

关键词:C语言;程序设计;教学改革;能力培养;计算机辅助评测

中图分类号:G642文献标识码:B

1背景

随着计算机技术的迅速发展和日益普及,越来越多的高校毕业生涌入计算机技术及应用产业,特别是软件产业。这些人中不仅有计算机专业的毕业生,也有些非计算机专业的毕业生。在与这些非计算机专业学生的竞争中,计算机专业的学生并未表现出明显的专业优势。造成这一现象的一个重要原因就是,计算机专业学生所掌握的基础专业知识和能力,缺乏专业性的深度和广度,计算机专业学生所学的一些专业课程和专业基础课程没有为学生提供足够的专业知识和训练。课程改革前的C语言课程就是这样一门在专业性方面有待加强的专业基础课程。

程序设计是计算机专业学生的基础课程,程序设计能力是计算机专业人员的重要专业基础能力,C语言是目前计算机专业工作者的第一语言。随着计算机技术和知识的普及,越来越多的非计算机专业学生也在这一层次和深度上掌握了C语言知识和运用能力。与此同时,计算机专业在C语言的教学方面依然采用原来的教学内容和教学方法,在程序设计知识的深度和广度以及C语言的运用方面没有大的进展,导致计算机专业学生与非计算机专业学生之间在这方面的专业能力差距逐渐缩小甚至消失。计算机专业学生所完成的程序在程序结构、程序的可靠性、可维护性、可扩展性、程序的时空效率、以及程序的风格和可读性等方面与非计算机专业学生的程序差别不大。

造成上述这种情况的原因,从教学方面看主要有三点:一是目前“C语言程序设计”课程的教学内容偏窄偏浅;二是教学方法不适当;三是实验考核手段落后。从学生学习的角度看,也存在对学习内容和方法不适应的问题。大多数的学生从小学到中学,已经适应了记概念、背知识点、应付书面考试的学习模式,对于灵活运用所学知识去分析解决问题,缺乏必要的训练。当程序设计教学仍然是以程序设计语言为主、以概念为主、以书面教学为主时,就更会强化学生原有的思维模式和学习方法,把这门课程当成以概念和知识点学习为主的理论型课程,忽视了对实际能力的培养。

2指导思想

C语言课程是培养学生专业能力的重要课程,其教学效果对学生今后其他专业课程的学习以及毕业后的专业工作前景都有重要的影响。为解决C语言课程在程序设计能力培养方面的不足,需要根据当前学生的特点,在课程教学目标、课程指导思想、课程内容设置和组织、练习和考试的方法及重点等方面进行调整和改革,使学生在掌握运用C语言进行程序设计的同时,在分析问题和解决问题的能力上有显著的进步,在程序设计的各个环节养成良好的习惯,为后续的专业课程学习提供必要的程序设计知识和能力,为今后深入掌握专业化的程序设计能力打下良好的基础。

对于计算机专业的学生来说,C语言课程的教学目标不仅仅是使学生了解和掌握C语言本身,而且应该使学生深入掌握程序设计的思路和方法。C语言课程应该是学习使用C语言进行程序设计的课程,而不是仅仅学习C语言本身的课程。程序设计语言与程序设计是互为表里的。程序设计的作用是表达程序设计者的思想,是按照计算机所能理解和执行的方式描述需要让计算机完成的工作,而程序设计语言则是表达这种思想的工具。在程序设计工作中,首先需要明确的是所要表达的思想到底是什么,也就是到底需要计算机按照什么样的步骤来执行计算过程,产生什么样的计算结果。至于采用什么样的语言,以及这种语言的细节,则是第二位的。因此,对于没有程序设计经验的学生的教学,必须把程序设计的思想和方法放在中心的位置,而把程序设计语言作为讲述程序设计思想和方法的工具。

3课程的内容和安排

为使学生通过C语言的学习掌握程序设计的能力,养成良好的程序设计习惯,并在分析问题和解决问题的能力上得到培养和锻炼,需要在课程的教学内容和侧重点上进行必要的调整,在教学方法上进行必要的改进,在实验和考核的手段上进行必要的革新,在教学过程的组织和安排上与其他相关课程更好地协调。

首先,需要把教学的重点从C语言本身转移到程序设计的思路和方法、以及运用C语言进行程序设计上来,把讲授语言的概念转变为讲授语言运用,把对概念的讲授由抽象的分析和讲解转变为通过实例和经验对概念的学习。教学内容应当围绕程序设计的思想和方法进行组织,把C语言作为讲解程序设计的工具,在讲解程序设计的思想、方法和步骤的过程中,根据程序描述的需要,本着由简到繁,由浅入深的原则,逐步讲解C语言中的知识点,特别是C语言要素在程序设计中的运用。

其次,“C语言程序设计”课程是一门实践性和应用性很强的课程,因此这门课程在教学方法上必然要不同于其他各种理论性课程。它不是以概念的学习为中心,而是以概念运用能力的培养为中心。对于概念和基本知识的掌握,更多地不是通过理论分析,而是通过对实例的分析和在实践中的运用。对练习题的分析、讲解、讨论以及在练习现场的答疑都是教学中的要点。对一些复杂概念的引入和探讨只有在学生具有了相当的实践经验时进行,才能使学生真正地接受。

第三,在教学安排方面要充分考虑C语言的基础性、应用性、专业性的特点,以及该课程与其他课程的关联和配合。复杂的程序设计知识需要有“数据结构”等先修课程作为基础,同时,基本的C语言知识和程序阅读和理解能力,也是其他一些专业课程,包括“数据结构”等课程在内的基础。为了适应学生知识水平和学习能力的现状,并考虑与其他课程的衔接和协调,我们把“C语言程序设计”课程的内容分为两个部分,分两个阶段讲授。第一个阶段主要针对没有程序设计经验的初学者讲授程序设计的基本方法和C语言的入门知识,第二阶段主要是在第一阶段的基础上进一步提高学生的程序设计能力,培养学生专业化程序设计能力的基础,以及对C语言的深入理解和把握。

第一阶段课程教学的重点内容是程序设计的基本思路、步骤和方法,以及简单的程序设计技术和C语言的运用,目的是培养学生程序设计的基本能力和初步培养学生良好的程序设计习惯,使他们知道如何着手分析一个问题,如何把解决问题的过程分解成一个个紧密衔接的步骤,如何用C语言准确地描述这些步骤,以及当程序出现错误时如何迅速准确地发现问题的原因,找到解决的方法。在这一阶段的教学中,在讲授方法上应以例题分析和讨论为主,避免从概念到概念的论述,特别注意避免过于深奥的概念的引入和讨论,以免学生在未掌握程序设计基本方法和思考习惯的情况下把注意力不适当地投入对概念理解的过分追求。对于概念和理论,应该只对必要的内容做适当的介绍,更多地把学生的注意力引入到对这些概念的运用中。应该更多地讲授使用C语言进行程序设计的实例,通过实例讲授分析问题的方法以及程序设计的基本思路、过程和步骤。对于C语言本身,主要应介绍各种基本语言要素和使用方法,介绍简单程序的编写、调试和运行过程和操作步骤,讲授一些基本的算法、数据结构的C语言实现方法和特点。对于C语言的语法和语义,应尽量通过例题的示范进行概括性的介绍。对于其中的细节,则应留给学生通过上机实习,自己逐步深入了解和掌握。这一阶段的教学目标是使学生能阅读和理解一些较为复杂的程序,并能在较短的时间内独立完成具有初等难度、长度约几十行的程序的设计、实现和调试。

第二阶段的教学主要集中在对程序设计能力、特别是专业程序设计能力基础的培养上。在学生学习了“数据结构”及其他相关的课程之后,可以进一步引入专业化的程序设计思想,介绍专业化的程序设计应当考虑的一些问题,对比不同的解题思路实现的难易程度,对比不同的算法和实现方法在时空效率方面的优劣,对比不同的程序设计风格对程序的可读性、可维护性、可扩展性、可移植性等方面的影响,讲授程序质量的判断标准等。在这一阶段也可以引导学生进一步深入理解C语言中的一些重要概念和C语言的特点,使学生在C语言运用的技巧方面得到锻炼,在程序设计的水平方面得到提高。这一阶段的教学内容包括对C语言属性、特点和重要概念的深入讲解、对C语言中难点的深入分析,对程序设计思路、过程和步骤的进一步系统化,以及信息领域常用算法的实现,程序和软硬件系统的关系,程序的调试和测试,程序的时空效率和优化,程序设计的风格,中型程序的结构和组织等。在掌握了这部分内容之后,学生应该能够独立完成较为复杂的,长度在百行以上的程序的设计、实现和调试,知道如何充分测试一个程序,以保证其运行的可靠,知道如何正确地组织一个较大的程序,以保证其可维护性和可扩展性,知道如何优化一个程序,以满足对时空效率的要求。在这一阶段的教学过程中,在教学方法上可以更多地采用启发式的方法,可以拿出一定的时间展开课堂讨论和习题分析,引导学生主动地学习。同时,在练习题方面也可以适当提供一些难题,以便为学有余力的学生提供更大的学习空间。

4练习和考试

程序设计课程是一门实践性很强的专业技术课程。只有加强实践环节,让学生在失败的和成功的实践中通过自己的经验积累才能切实掌握实际知识的运用能力。在课程教学的过程中不仅要重视理论教学,重视教学内容的设置,也要重视实践环节的设置,重视为学生提供具有及时监控和反馈环节的实践环境。在课程的考核环节,应该以检验学生的实际程序设计能力为主,关键概念为辅。对于语言的语法细节和使用方式,则不应单独作为考核的题目,而应该与对程序设计能力的考核有机地融和在一起,以改变学生读书、背概念、应付考试的学习模式。

程序设计题目和源程序答案具有高度的灵活性和差异性,难以进行常规的标准化评测。受评测方式的制约,传统程序设计语言的练习及考试一般以标准化的笔试题为主,偏重于考察程序设计语言的基本概念和语法细节,而程序设计题目所占比重较小。这种练习及考试方式易于导致学生忽视编程实践能力和理论联系实际能力的培养。为此,需要在练习和考试中改变传统的方法,要求学生以实际程序设计为主进行练习,通过实际程序设计对学生的学习效果进行考核。这种练习和考试的方式改变了练习的目的,使练习由过去简单地复习课堂的讲授内容改变为由学生通过实践环节进行自学。这样,课堂讲授就可以集中对关键内容上,而不必在语言本身的细节上花费过多的时间。

5技术支持手段

为采用“以实际程序设计为主进行练习,通过实际程序设计进行考核”的实践及考试方式,需要为学生在编程实践中提供具有及时监控和反馈功能的实践环境,并在课程作业方面增加程序设计题目的比例。这样,不但可以提高练习和考试的强度,使得习题更加接近实际程序设计的要求,而且也更能检验教学效果和学生的实际程序设计能力。学生的答题工作全部在计算机上进行,提交的答案必须是不存在任何语法和逻辑错误、能解决一个完整问题的源程序。学生在学习阶段必须重视实际编程能力,提高对代码质量和编程风格的要求,养成良好的编程习惯。同时,这也可以改变以往基于经验和直观感觉的人工阅卷方式,提高阅卷的效率,减轻教师的阅卷负担,保证成绩评定的准确和公正。而且,在C语言这样一门具有很强实践性的信息技术专业基础课程的实践环节采用基于信息技术的自动化支持手段,其本身也是对学生的一种示范和启发。

在自动化的评测系统中,最重要的问题是对程序设计题目的评测方式和标准。对程序的评价既有内在属性的指标,如功能、性能、正确性、可靠性等,也有外在属性的指标,如程序的结构、可读性、风格等。根据本课程的教学要求,程序评测系统主要采用内在属性指标,学生所完成的程序必须通过编译,产生可执行代码文件,在计算机上运行,根据题目的要求读入输入数据,进行正确的运算,产生正确的输出数据,才能得分。这种方式可以检查学生程序语法和基本功能的正确性。对程序的功能完整性和性能的评测通过设计具有不同难度的输入数据来完成。这样,就可以对学生的程序在问题分析、数据结构和算法的选择、实现的正确性和效率等多个方面产生适当的区分度。同时,为了全面提高学生专业化程序设计的能力,也可适当引入一些外在属性的指标以及相应的评测手段,以检验学生程序在程序的结构、可读性、风格等方面的水平。

根据这些原则,我们设计和实现了一个基于web的程序设计语言练习及考试评测系统,并开通了C语言课程教学网站。该练习及考试评测系统由配置工具、命题及题库管理工具、web应用服务器、程序题评测服务器、考试控制工具、成绩统计工具等组成,具有很强的可配置性和可扩展性,能够适应不同的练习和考试要求。为防范考试中可能的作弊行为,系统提供了实时网络监测工具和程序源文件及可执行码的功能;在一场考试中可以使用具有相同难度的多份试卷,以避免相邻座位学生之间的交流和抄袭。练习及考试评测系统既支持程序设计类型的试题,又支持单选、多选、填空等标准化试题。为适应练习和考试的不同要求,对所提交的答案可以分别设置为立即评测和定时评测。这样,在练习过程中学生就可以及时得知自己的答案是否正确,并及时改正错误。练习及考试评测系统可以自动完成对学生成绩的评测和统计,并根据需要生成成绩表。这样,不仅可以使教师及时准确地掌握学生的成绩,发现存在的问题,而且可以大大减轻教师的工作负担。

计算机语言的概念篇7

[关键词]领域本体 本体学习 文本 概念 关系

[分类号]tp182

本体的本质是概念模型,通过概念模型对信息作完全的形式化描述。它描述某个领域甚至更广范围内的概念及概念之间的关系,使得这些概念和关系在共享的范围内具有大家认可的、明确的、唯一的定义,这样,人机之间以及机器之间就可以进行交流。领域本体用于描述特定专业领域,定义该领域的概念和概念之间的关系,描述该领域的基本原理、主要实体和主要活动,提供领域内部知识共享和知识重用的公共理解基础。

近年来,随着语义网运动的发展,作为基础性工作的一部分,实现自动或半自动构建本体逐渐成为一个研究热点,而用来实现本体元素自动获取的一系列方法和技术称为本体学习。

按照数据源的结构化程度,本体学习技术分为三大类:基于结构化数据的本体学习技术、基于半结构化数据的本体学习技术和基于非结构化数据的本体学习技术。数据库中的数据是典型的结构化数据,而XmL、HtmL、DtD等包含隐含结构的数据称为半结构化数据。非结构化数据是指没有固定结构的数据。文本数据是非结构化数据,大量存在于web中,是用来构建本体的最重要的数据源。因为现有的研究方法在处理半结构化数据时,通常按照纯文本对待,所以一般将基于非结构化数据的本体学习和基于半结构化数据的本体学习统称为面向文本的本体学习。

本文将概念、概念间关系视为本体的构成要素,对比分析相关的面向文本的本体学习的一系列方法和技术,并结合实例阐明领域本体学习的步骤与方法,进而讨论当前领域本体学习技术存在的主要问题和进一步的研究方向,为构建领域本体理清思路。

1 面向文本的领域本体学习

根据本体的定义和结构,本体学习的任务可分为三部分:①概念的自动获取;②概念间关系的自动获取;③公理的自动获取。现有研究主要集中于概念和关系的获取,公理的获取研究较少,所以本文着重讨论前两者。

首先,自然语言处理技术(naturelanguageprocess-ing,nLp)是面向文本的本体学习的基础,这是因为文本数据缺乏一定的结构,要使机器能够自动地理解文本并从中抽取出所需要的知识,则必须利用自然语言处理技术,如词性标注、词义消歧和短语切分等技术对其预处理;然后,在此基础上,利用基于统计、基于规则或机器学习等方法从中获取知识。

1.1概念获取方法

领域概念是领域知识在文本中的外在表现,是在特定领域内具有语义的词或短语的集合。领域概念的获取就是从领域文本集合中抽取最能够代表该领域概念的概念集合,这个过程包括从领域文本中抽取术语集合、词性规范以及领域概念的筛选和确定。

1.1.1基于词典的方法 专业词典和叙词表等经过领域专家多年的有序组织,涵盖了学科领域内的表达事物相关概念的大量词汇。同理,也可以利用停用词表识别无用的常用词。以此为依据,从文本中抽取领域概念或过滤无用词汇,准确高效、简单易行,国内外有很多成功的实践,但叙词表和词典的维护及更新比较缓慢,词汇覆盖面有限,所以经常作为一种基础性方法获取基本概念,需要进一步结合其它方法进行扩充。

1.1.2规则方法 基于规则的方法是指利用人工总结的语法规则、词法规则、语义规则等获取概念。例如,可以使用标注工具对文本进行词性标注,按照词语的形态特征从语料中提取术语。该方法实现比较简单,如果制定的规则完备、合理,则能达到一个比较高的准确率。但是,规则的编写需要具有语言知识和语言学背景的人员,人力资源昂贵,并且规则的制订往往要依赖于具体的语言、领域和文本格式,系统缺乏适应性,不易移植。

1.1.3统计方法 基于统计的方法是近年来常用的方法之一,它利用一些简单的统计量来衡量几个连续字符组成词的可能性。常见的简单统计量有词频、互信息、熵和C-value等。通过计算领域相关度和领域一致度等方法,对候选术语集进行过滤,获取真正的领域概念。基于统计的方法的缺点是容易产生数据稀疏现象,一般适合于输入数据不再改变的系统,即非增加的本体学习系统。

1.1.4机器学习的方法 机器学习的方法需要首先建立一个学习模型以模拟一个特定的任务,然后在已标注的训练集上应用学习算法,在得到一个推广性能最好的学习模型之后,即可从文本中抽取概念。

基于机器学习的方法是目前一种较为有效的概念获取方法,不再依赖于领域专家,只需要有一定专业知识的人对语料进行人工标注,而且能够将概念获取问题转换成丰富的机器学习算法所能解决的问题,但是机器学习的方法会产生噪音数据,影响结果可信度。

1.2概念关系获取方法

不同的组织和研究机构,给出了不同的语义关系类型。联机英语词汇检索系统wordnet将概念之间的语义关系分为同义关系、反义关系、相似关系、上下位关系、整体一部分关系、继承关系和因果关系;微软公司开发的概念知识库系统mindnet把语义关系标记为24种不同的语义类型,包括同义关系、部分关系、属性关系、方式关系、意图关系、目标关系等;知网Hownet共定义了16种语义关系,如上下位关系、同义关系、整体-部分关系、工具-事件关系。

杜小勇等在获取本体中概念之间关系时主要考虑两种类型的关系:分类关系(taxonomy)和非分类关系(non-taxonomy)。分类关系主要指概念之间具有典型的分类结构,将概念组织成树状层次结构,每一个树中的概念都与其它概念构成上下位关系,体现了概念间的包含关系;非分类关系又称为非层级关系,主要指概念之间不具有典型的分类结构,但是概念之间具有一定的联系,反映了概念间的某些语义关系,类型多种多样,非分类体系主要考虑相关概念对的提取。概念间关系的常用获取方法有:基于语法模式的方法、基于概念聚类的方法、基于关联规则的方法、基于词典的方法、机器学习方法、形式概念分析法,或者这些方法的混和。

1.2.1基于语法模式的方法 基于语法模式的方法是在分析处理大量相关文本的基础上,发现频繁出现的语言模式,通过将文本中的单词序列与模式依次进行匹配判断,进而识别语义关系。这类方法的主要缺点是需要事先获得关系模式,但随着领域的变化可能要重新对其进行设计;而且模式的表示形式如果过于“严格”或“宽松”,都将会影响语义关系获取的召回率或精度。

1.2.2基于概念聚类的方法 聚类的实质就是使属于同一类别的个体之间的距离尽可能地小,而不同类别的个体间的距离尽可能地大。大多数聚类方法都具有特征选择或特征抽取、聚类算法设计或选择、聚类确认和结果解释4个基本步骤。利用概念之间的语义距离,对概念进行聚类,同一类簇中的概念将具有语义近似的关系。同时,也可以进行层次聚类,聚类的结果就是概念间的分类关系。关于概念层次聚类的研究有很多,但多存在一个共同的局限性,即只能得到概念间严格的层次关系。

1.2.3关联规则挖掘的方法 数据挖掘中的关联规则方法是用于获取概念间的非分类关系的常用方法,基本思想是如果两个领域概念经常出现在同一个语法单元,即出现在同一句子、同一段落或同一文档中,则这两个概念之间必定存在着一定关系。而它们之间联系的紧密程度和它们所在的语法单元有关。这个语法单元的语义内在聚合度越紧,那么这两个概念之间的紧密程度越高。但是大部分方法都停留在判断两个概念之间是否存在关系的层次上,难以进一步确定拙取出的概念之间具体是什么关系。

1.2.4基于词典的方法 很多词汇词典中定义了同义词、近义词和反义词等知识。叙词表也可视为语义词典,叙词之间的关系利用等同关系、等级关系以及相关关系三种语义关系来描述,可用来获取本体中概念间的分类关系。

1.2.5机器学习方法 与概念获取一样,人们对概念关系获取问题建立了一个学习模型,力求能把语言知识和统计规律相互融合在一个模型框架中,通过对大量真实语料的学习来确定模型的参数,进而解决概念关系获取问题。

1.2.6形式概念分析法 形式概念分析(formalcon-ceptanalysis,FCa)是应用数学的一个分支,它建立在概念和概念层次的数学化基础之上。目前FCa的方法已经大量运用在概念聚类、数据分析、信息检索、知识发现和本体工程的应用之中。其概念通过属性来描述,能够从给定数据中提取出隐含概念以及概念之间的关系,形成概念模型(概念格),并用符号形式化的方式来表现,因此,采用FCa的方法可以帮助构建本体。

FCa的优点在于覆盖度比较大,而缺点是准确度不高而且容易产生数据稀疏现象。当前FCa适用于构建轻量小规模领域本体,不能自动提取除偏序、层次、相似等关系之外的复杂的语义关系。

2 实例

2.1简单实例

此实例使用统计方法提取概念,利用基于关联规则与模式匹配相结合的方法,提取概念问的分类关系。基本框架如图1所示:

其框架可分解为如下步骤:

・收集领域文集和一般对比文集。

・文档预处理。应用nLp技术进行分词。

・抽取候选术语集。候选术语的提取采用基于统计的方法,计算术语的频率。通过设置术语在领域中的出现频率阈值过滤出现频率很低的词或短语。对于一些在各个领域中出现频率特别高但不能反映领域专有知识的常用词,可以通过停用词表把它们过滤掉。

・过滤候选术语集生成概念集。通过选取,虽然从候选术语集中除去了常用词和出现频率较低的词,但集合中还包括一定数量的与领域无关的词,它们常常出现在多个领域文集中但又不在停用词表中,这时必须对候选术语集进行过滤。采用领域相关度和领域一致度相组合的方法来对候选术语集进行过滤,以生成真正的领域术语。这种方法需要对比文集做支撑。

・通过关系提取算法抽取分类关系并建立分类层次体系。利用基于关联规则与模式匹配相结合的方法提取本体概念间关系,其基本思想主要是:首先利用关联规则中的算法,如apriori算法,在领域文集中发现频繁项目集;然后,利用由频繁项目集产生的关联规则搜索领域文档集,找出含此关联规则的句子,发现其中的模式,并人工排除不是分类关系的模式;最后再用模式匹配的方法抽取出领域文档集中的分类关系并建立概念间的层次关系。

2.2复杂实例

主要研究如何从大量专业文本中自动获取领域概念及概念间三种基本关系的方法。

2.2.1概念的自动获取 利用机器学习的方法,采用分类思想获取领域概念,把领域概念获取问题看成是一个二值分类问题。处理流程包括三个步骤:

・预处理:预处理输入的是训练文本,输出是带标记的候选领域概念集。首先利用自动分词方法和最大词串匹配算法等自然语言处理技术得出候选领域概念集。然后,对候选概念集进行人工标注,若是专业术语标注为正例,否则为负例。

・训练:输入是带标记的候选领域概念集,输出是一个训练好的预测模型。在获得候选概念集后,需要将这些候选概念表示成计算机可以识别的格式,以便训练分类模型。

首先,选用频度特征、词特征、邻居词特征这三类特征,为每一个候选领域概念构造一个带有类别标记的特征向量,由此得到一组训练数据样本。然而这样的样本向量空间维数非常高,给计算带来巨大压力。可针对邻居词特征的特点,筛选出最有代表意义的邻居词特征,降低特征向量的维数。

其次,需要计算不同特征的权重,从而能够更加准确地描述特征项在领域概念中的重要性以及不同特征项对分类所起的不同作用。这里的难点在于非平衡数据处理问题,即在候选概念集中,真正领域概念的个数远远小于非领域概念的个数,也就是说,样本中正例数据与负例数据分布极度不均匀。在文本分类中,有单边统计量特征选择方法和双边统计量特征选择方法两种方法。在非平衡数据下,前者容易使分类器误将负例判断为正例;而后者会导致漏选一些有用的负特征。

最后,运用分类算法从标注的训练数据中,学习一个推广性能最好的分类模型。项目选取了目前在文本分类中获得较好结果的4种分类算法:决策树、朴素贝叶斯、支持向量机和感知器,训练得出4个分类器。

・分类:利用训练好的分类预测模型预测新文本中的候选领域概念,得到真实的专业术语。

2.2.2概念关系获取 概念之间存在着各种不同形式的关系,此示例主要研究如何从文本中自动获取两个概念间的三种最基本的语义关系,即:①同义关系;②上下位关系:也称为从属/上属关系,子集/超集关系,或iS-a关系;③整体-部分关系。

领域概念关系获取问题可转换成一个多类分类问题,要求一个多类分类器能够正确区分同义关系、上下位关系、整体-部分关系三类词对。通常多类分类问题的求解是将其分解成一系列两类分类问题的组合来求解。具体处理流程包括三个步骤:

・预处理:利用前文方法中获得的领域概念集,检索领域语料。查找同时含有两个或两个以上领域概念的句子。然后将句子中的领域概念两两组对,形成候选关系词对集。

・训练:输入是每一个候选词对和每一个候选词对所在的句子,输出是一个训练好的分类模型。

在获得候选领域概念关系词对集后也需要将这些特征词对表示成计算机可以识别的格式,以训练分类模型,得到分类器。通过对标注语料的分析,选用词序特征、词形特征和上下文特征这三类特征,采用相关标引方法,组成特征向量表示每一个候选词对。

在将候选概念关系表示成特征向量之后,使用分类算法,从标注的训练数据中,学习一个推广性能最好的分类模型(分类器)。项目结合朴素贝叶斯和感知器两种分类算法的优点,提出混合分类算法,用以训练领域概念关系分类模型,取得较好的效果。

・分类:将新文本中的所有可能关系词对分别对应于同义关系分类器、上下文关系分类器、整体一部分分类器。经过归一化处理后,选择分值最高所对应的类别作为该词对的最终类别。

3 当前存在的主要问题及进一步的研究方向

经过几代人的努力,与本体自动构建相关的人工智能、自然语言处理等计算机技术已经得到长足的改进和完善,但是,其发展速度明显落后于网上文本内容的增速。在语义网尚未普及、本体和相关元数据相对匮乏的现阶段,我们还是要在这条艰苦的研究道路上继续探索,不断提高本体学习的自动化程度,把语义网运动的蓝图演变为现实。

本文按照领域本体概念和概念间关系这两个构成本体的核心要素,分层次探讨现阶段面向文本的领域本体学习的常用方法以及各种方法的优劣性和适用范围。在验证实例中,详细阐明了自动构建领域本体的思路、步骤和具体方法,并对实验结果加以评价。应当指出的是,在实际应用中不必单一使用某一种方法,为了达到更好的本体学习效果,可以将多种方法相结合,或者在构建核心本体的基础上,再运用其它方法对本体进行增量。

3.1文本分类技术

文本数据是web中大量存在的一类非结构化的数据,也是用来构建本体的最重要的数据源。根据文本的内容或属性,由计算机自动分类,提取领域概念和概念之间的关系,是形成数据语义的一种有效的辅助手段。虽然文本分类技术近年来得到快速发展,在文本特征表达、特征降维、分类器设计、语料库方面作了大量工作,但仍然面临着很多问题。目前常用的文本分类方法在分类过程中的特征选取、权重计算和分类算法等方面,都存在一些不足之处和局限性。例如当类别规模增大时,准确度会急速下降,以至于分类结果不可用,而且在处理复杂类别的结构时也面临着巨大挑战。可见,对文本分类问题的研究是一个漫长的过程,其中,形成一种成熟的领域概念获取方法是一个长期目标。

3.2概念间关系获取

领域概念关系获取的正确性和难易程度,除了技术因素之外,还依赖于所处学科的复杂性以及领域知识所研究的范畴和所处层次。

在构建学科领域本体时,对于概念关系明确、严格的理工科类,如计算机科学,关系的提取相对容易处理。而对于经济学、管理学等交叉学科,概念的分类和界定存在很大困难。

同时,领域知识所研究的范畴和所处层次也有很大差异,这也是影响领域概念关系正确获取的一个关键因素。在《软科学手册》中,知识被分为0级、1级、2级知识:有关领域里的事实、定理、方程、实验对象和操作知识等常识性知识和原理性知识称为“0级知识”;经验性的知识(如经验规则、含义模糊的建议、不确切的判断标准等)称为“1级知识”;关于如何运用上述两级知识的知识,称为“2级知识”。显然,以当前的技术水平构造1级以上较为复杂的领域本体,将存在很多难以克服的困难。

因此,在不同的研究领域,因为研究方向不同,研究的侧重点也应有所不同。例如,在计算机科学领域,关注的是技术和方法的创新、改进与完善。而在数字图书馆领域,则应综合领域知识的复杂度、方法技术的特点与成熟度等多种因素,从不同层次建立相应的研究策略。

计算机语言的概念篇8

关键词思维模式计算思维程序设计教学改革

中图分类号:G424文献标识码:a

0引言

随着计算机在各个行业的广泛应用,计算机基础教育成为每个入学大学生的必修课,而C语言程序设计又是计算机基础教育里面的一门非常重要的课程。需要学习C语言程序设计的原因有:(1)C语言语法结构很简洁精妙,可以写出高效程序,大多数程序员愿意使用C语言去描述算法本身;(2)C语言深入到系统底层;(3)很多新型的语言都是衍生自C语言,掌握了C语言,再经过简单的学习,就可以掌握和使用新型语言去开发了,例如Java。第三个原因也从另一个侧面证明C语言是程序设计的重要基础。

C语言作为入门来讲是比较合适的语言,用处广泛,可以学会优秀的程序风格。想学会C语言,有初中数学和英语的基础就够了,但是如果想深入学好C语言程序设计,必须要有好的抽象的思维能力,这种抽象的能力就是计算思维。众所周知,计算机是一个应用工具,如何将这个工具应用好,是学生在学习时代乃至进入到社会必须熟练掌握的。要灵活使用计算机进行程序设计,基于计算思维的C语言程序设计教学方法发挥着重要作用。

1计算思维概念

2006年3月,卡内基·梅隆大学周以真教授阐述了计算思维:计算思维是运用计算机科学的基础概念进行问题求解、系统设计以及人类行为理解等涵盖计算机科学之广度的一系列思维活动。对于计算机专业的学生来说,理解这一概念并非易事,而对于非计算机专业的学生来说,很难让他们理解计算思维。因此,仅仅知道计算思维这个概念是远远不够的,关键在于,将一些日常生活中常见的实例,用C语言程序来实现,而在这个实现过程中,就用到了计算思维理念。要想初步认识计算思维理论,就要借助于现实生活的例子,通过这些简单的例子,更深入地理解计算思维这一思维模式,在实践中,用计算思维来指导学生编程,这样一来,学生编程的出发点更高,考虑问题更全局化,编出来的程序更健壮、更通用、更科学。

要理解计算思维,首先要从科学思维来入手。科学是指反映现实世界各种现象的本质与规律的分科的知识体系。科学思维(简称思维)一般指的是理性认识及其过程,也即经过感性阶段获得的大量材料,通过整理和改造,形成概念、判断和推理,以反映事物的本质和规律。科学思维主要分为理论思维、实验思维和计算思维三大类。

理论思维经常碰到,例如公理。实验思维的先驱应当首推意大利著名的物理学家、天文学家和数学家伽利略,他开创了以实验为基础具有严密逻辑理论体系的近代科学。计算思维则是人类求解问题的一条途径,但决非要使人类像计算机那样思考。计算思维的本质是抽象和自动化。如同所有人都具备“读、写、算”能力一样,计算思维是必须具备的思维能力。

计算思维概括起来有以下三个特点:(1)计算思维吸取了问题求解所用的一般数学思维方式,颠覆了现实世界中巨大复杂系统设计与评估的一般工程思维方法和理解心理及人类行为的一般科学思维方法。(2)计算思维建立在计算过程的能力和限制之上,由人和机器执行;计算方法和模型可以处理那些原本无法由个人独立完成的问题和系统设计。(3)计算思维最根本的内容是抽象;计算思维中的抽象完全超越物理的时空观,以致完全用符号来表示;与数学的与物理的抽象相比,计算思维的抽象更为丰富,也更为复杂。

2基于计算思维的课程教学方法

正是由于计算思维的抽象能力有助于复杂系统的问题求解,所以应该结合计算思维在C语言程序设计中的应用,为学生开设一门“怎么像计算机科学家们一样去思维”的课程,让学生们一开始就喜欢上编程,因为计算思维不仅仅属于计算机科学家,而是属于每个学生的基本技能。

以前,非计算机专业学生在学习C语言程序设计的教学过程中,教会学生C语言语法,告诉学生怎么编程,这种教学方法和模式对学生深刻学习C语言程序设计是很片面的。根据我们的教学实践,我们发现,需要一种思维模式来指导大学生学习C语言程序设计,不是为了编程而编程,而应该把编程当作是一种有趣学习,这种思维模式就是计算思维,它对学生们理解C语言乃至动手熟练编程起着非常重要的作用。因此,在教学的过程中,首先需要给学生们讲解计算和计算思维。当然,首先要从经常会碰到的生活中的简单的例子开始的,例如“求1+2+3+……+100”,让学生对计算思维概念有一个初步认识与理解,这样才容易让学生们拥有计算思维的思想,学生们也可以从一个更高的角度来全面理解和应用C语言编程,这对于非计算机专业的学生学习C语言程序设计无疑是一个好思路。

将计算思维融入到C语言程序设计,需要将C语言程序设计课程进行相应的整合,如何将计算思维巧妙地应用到C语言程序设计课程中,提高学生应用计算机知识抽象和分解问题的能力,对于非计算机专业的学生学习C语言程序设计和老师讲解此课程都是一个不小的挑战。在讲授此课程的过程中,我们对学生计算思维能力的培养做了系列的尝试和探索,面向非计算机专业的C语言程序设计,其计算思维的思想主要体现在如下几个方面,如图1所示。

(1)实例教学法。在C语言程序设计的教学过程中,需要讲授C语言的顺序、选择及循环三种基本结构,因为这三种结构贯穿着整个编程过程。对于数组、函数和指针等几部分内容,为了在教学过程中加强学生的计算思维能力培养,教学过程中选取几个例子进行深度剖析,这些例子不仅要有代表性,并且要以学生容易理解为前提,更贴近学生的现实生活。

(2)交互式教学法。讲练互动的交互式教学方法始终贯穿讲课过程中,“先讲后练”、“先练后讲”、“边讲边练”,老师在整个讲授的过程中,不再是演独角戏,而是边讲边同学生进行问题探讨的探索者,引导学生更深刻地理解问题,直至用多种方法灵活地解决问题,当学生的学习思路打开了,很难的问题也就不是问题了。

(3)课程设计方法。课程设计本来是为计算机专业的学生开设的课程,目的是让学生有更好更多的锻炼机会,加深对课程的理解。而作为公共课的C语言程序设计,一直以来,没有开设课程设计,事实上,公共课的C语言程序设计课程设计其实是非常有必要设置的。

计算思维在课程中的体现不是凭空存在的,而是要自己去体会和思考的。我们可以在课程设计中,给学生很贴近生活的例子,例如开发图书管理系统和学籍管理系统,在整个课程设计的过程中,将学习内容分解到各个阶段的设计,从而掌握计算思维能力在解决实际问题的具体应用。课程设计中的系统演示、项目答辩和系统说明书,这三者之间是有密切关系的,首先分团队合作设计系统,系统中的子函数分到每个成员解决,将主函数调用子函数,实现系统的总体功能;然后,在每个小组中选择代表答辩,在答辩的过程中,我们可以相互提出问题,探讨解决方案;最后书写详细的系统说明书,这三个阶段必不可少,成为一个设计整体,让学生们充分体会和享受整个编程过程,从而对C语言程序设计更加有兴趣和信心。

3结论

需要将计算思维理念融入到课堂教学中,因此基于计算思维的C语言程序设计课程在整个课程设置过程中得到了反复强化,最终目标是将计算思维能力转化成学生的思想,使他们具有独立学习和研究的能力,这对大学生们在大学阶段后续的学习是大有裨益的,这也是一种值得推广的C语言程序设计教学方法。计算思维是能够在抽象的多个层次上的思维,而不仅仅是计算机编程。编程实现的是计算思维中的一个内容,但它还包含有抽象与建模、算法选择、资源选择与调度、优化与评估、模拟与仿真等诸多的内容。计算思维的引入有效地帮助学生进行研究性学习和自主学习,可以得到比以前单纯的讲授为主的教学模式更好的教学效果。与此同时,学生可以将计算思维能力应用到其他课程中,逐步提高各方面的能力,这对培养学生发现问题、解决问题及进行独立思考都有很重要的作用。计算思维能力的培养要面对所有的人,它的应用也是无处不在的。

L芑鹣钅浚何浜嚎萍即笱Ы萄а芯肯钅浚ㄏ钅勘嗪牛?012X46)

参考文献

[1]九校联盟(C9)计算机基础教学发展战略联合声明[J].中国大学教育,2010(9).

[2]陈国良,董荣胜.计算思维与大学计算机基础教育[J].中国大学教学,2011(1).

计算机语言的概念篇9

关键词:高职院校;程序设计;教学改革;相关性分析

中图分类号:G642文献标识码:B

计算机软件(程序)是使计算机系统发挥强大功能的灵魂,掌握了程序设计就可以了解程序的运作方式,帮助解决软件在使用中所出现的问题,因此,“程序设计”也就成为各高职院校绝大多数专业必学的一门技术基础课。但是,由于课程本身概念抽象、不易记忆、枯燥无味,再加上高职学生生源复杂,综合素质不一等因素,课程的教学效果并不理想。

本文所引用的数据来源于一所民办性质的高职学院,虽不能以偏概全,却也可以让我们看到课程教学的一些现状,促使我们对课程进行不断地改革探索和调整。

1“程序设计”课程教学的现状

早在1997年,教育部高教司的“155号文件”中,就明确提出了对大学生进行计算机教育的内容和目标,制定了非计算机专业三层次教育的思想模式。目前高职计算机教育也是遵循这一模式。全国高校计算机基础教育研究会在“中国高职院校计算机教育课程体系2007”(CVC2007)中,将它描述为三个阶段:第一阶段面向各个专业的学生,课程为“信息技术应用基础”;第二阶段面向各大专业,侧重服务于专业教学的程序设计类技术课程,如“高级程序设计语言”或“数据库与程序设计”等;第三阶段为应用于专业和职业的计算机技术课程。

在进入第二层次开始学习程序设计类技术课程时,各高职院校基本上还是沿袭传统的教学模式:即用一种高级语言(如C、VB或者VFp)的书做教材,以这种语言自身的语句体系为脉络展开教学,详细地讲解语句、语法甚至一些细节内容,学生学习一个语句就做一些与该语句有关的习题。学习过程中学生积极性低,难于动手,时常课程学完了可编程水平、分析解决实际问题的能力还是没有得到提高,收获甚微。并且,就课程本身的考核成绩来说,也都不太理想,有时候教师不得不采用将考试成绩“开平方根乘以10”的办法来提高成绩。

2009年春季学期,本人在开设的“从问题到程序”选修课里对来自于全院各专业的80名学生进行了摸底测试,并对其中刚刚学完C语言的08级相关专业50名学生的成绩进行了统计与分析,其中最高分只有56分,平均分只有30.4分,可以说成绩相当不理想。表1是某高职学院近三年来参加全国计算机等级二级考试(C、VB、VFp)的成绩汇总表。

全国计算机等级考试是一门以掌握程序设计语言为内容的考试,考试方法简单,题目愈出愈偏,难以真正体现出“程序设计”课程重实践应用的特点,因而不能拿它作为衡量课程教学效果的标准。但正是由于它教考分离、统一标准的测试方式,却能比较客观地反映出一些问题。

虽然一所学校的成绩不能代表整体教学的情况,但从这些较低的成绩与通过率上还是反映出“程序设计”课程教学现状的严峻形势。

2产生问题的主要原因

2.1课程本身的问题

对于我们高职学生来说,难学的课程通常是诸如“数学”等概念抽象、逻辑性强的课程,像photoshop等直观形象的课程,教学效果较好。而程序设计类的课程,和数学一样,几乎都有自己的一套封闭的名词术语和运行机制,其抽象的特征使课程既难教也难学。

学生学习C语言,一般在刚开始的“数据类型”、“运算符与表达式”时就出现了问题。“数的定长表示”、“变量”等与他们高中所学知识的相异,“数据类型”、“运算符”、“算法”等复杂抽象的概念与繁多的规则,使他们望而生畏。如果前面简单的小程序写不出做不对,学生对后面的内容就更无从下手,从而增加了挫折感,削弱了积极性,产生抵触情绪及排斥心理,更有甚者放弃了对课程的学习。

2.2学生本身的问题

“数学、英语成绩不好”是很多高职学生为学不好程序设计找出的理由。计算机科学是数学的一个分支,数学基础好的人,能较容易地理解算法的精髓,并可能写出时间与空间复杂度都有明显改善的算法。但对于高职课程教学来讲,强调的是入门,要求的只是学习基本的程序设计思想,逐步培养学生的算法思维,养成良好的编程习惯,因而对数学及英语的要求其实并不高。作者对上述选修课班级同学的高考成绩与C语言摸底成绩进行了相关性分析,如表2所示。

以上分析的样本单位数为50,显著性水平为5%时的相关系数临界值为0.28,表明分析结果符合显著性检验。

依照统计学上的相关性分析理论,表明“程序设计”课程成绩与同学们的数学、英语成绩关系并不大,而与能体现学习习惯及自觉性的总成绩有显著相关。较低的高考成绩说明他们是应试教育的“失败者”,入学时或多或少都存在着求知欲减弱、学习热情降低的情况,甚至有部分同学还抱着来学校混几年的思想;另外,刚刚从中学的应试教育进入到高职的应用型、技能型职业教育,许多学生对新的学习方式、方法都不知所措,就更加重了他们的失落、自卑、茫然、厌学等消极情绪。

2.3教学方式的问题

很多学生在初学程序设计的时候,不能足够重视编程实践,在看懂了书上例题做了几道习题后,就以为掌握了相关知识。其实对于程序设计入门来说,最重要的是逐步培养用程序设计语言思考和表达的能力。对于这一点的缺失,我们教师的教育和教学方法也难辞其咎。很多教师在“程序设计”教学时多以教授语法为主,就题解题编程的现象普遍存在,没有引导学生如何合理规范地使用语言,更重要的是没有教授学生学习程序设计的一些原理,没有告诉他们判断程序实现优劣的正确标准。这些问题不仅仅是一名教师的教学水平问题,同时也是一所学校的教育制度与教育理念的问题。此外,也确实有一些老师自身的程序设计水平有限,自己也只知道一些语法,只会写应付书本习题的代码,难以引导学生认识和追求真正的程序设计。

3解决的办法与措施

3.1分模块教学,改革“程序设计”课程体系

就像谭浩强教授在《C程序设计》里所定义的那样,程序是由算法、数据结构、程序设计方法与语言工具和环境4个部分所组成,我们的“程序设计”课程教学也应包括这4个方面的内容。但是,“程序设计”课程一般只有64学时,并还有逐步减少的趋势。对于高职院校来说,要在这64学时内保质保量地完成教学任务是非常困难的,并且效果也难以保证。因而我们应改革现有教学体系,将其内容按模块进行划分,分阶段实施,以提高课程的教学质量。

不管“程序设计”课程选用什么样的计算机语言,我们都可以将它分为3个模块,第一个模块可称为“程序设计语言基础”大模块,主要包括程序设计语言的基本概念、基本要素(如变量、数据类型、表达式、语句与控制结构、程序书写规范等)以及输入/输出格式等内容;第二个模块是程序设计语言的主体(如函数、数组、指针等);第三个模块是程序设计应用,主要为综合编程实训及高级编程应用(如结构体、共用体等)。在教学时,3个模块可以分为三个阶段来实施。第一个阶段在大一上的后半学期开设“程序设计基础”课程,教学内容可选用简化的C语言作为“过程设计语言(pDL)”,精简第一模块的内容,增加程序设计思想、编程方法等内容,教学时淡化语言本体,强调程序设计思想的学习,使学生快速建立程序设计的基本概念,培养学生的基本程序设计能力,了解程序设计语言的作用和差异,养成良好编程习惯;第二阶段就是以某种高级语言为主体的“程序设计”课程,教学重点为第二模块的内容,时间在大一下学期;第三阶段就是以第三个模块为主要内容的项目程序设计综合实训,可安排在大二上学期用一周的时间完成。

3.2把握课程特点,改革传统教学模式

“程序设计”是一门有着自己鲜明特点的课程,它强调逻辑分析,注重创造和灵活的表达,实践性非常强。传统教学模式是按照“提出概念――解释概念――举例说明”三部曲来进行的。高职教育的特点决定了计算机教育应当以应用为主、理论为辅。如过分强调语法规则只会将高职学生带入歧途,这样的教学结果往往是学生写程序时不知如何下手。因而,我们必须把握课程自身及教学对象的特点,改革传统教育模式,采取“提出问题――解决问题――归纳提高”的新三部曲,直接面向应用,按应用需要组织课程,从问题的需求引导知识的讲授,让学生了解从“问题”到“程序”的渐进转化过程,使学生由被动接受变主动学习,充分发挥主观能动性,实现我们的教学目标。

3.3采用案例教学,改变传统教学方式

传统教学方法所采用的“先理论,后实际;先抽象,后具体”教学方式,加重了概念抽象复杂、内容枯燥乏味的“程序设计”课程学习难度。计算机语言并不是不强调概念,但过分强调只能起到事倍功半的作用。现代学生的感性接受能力一般都很强,因此我们可采用案例教学,改变传统教育方式,实施“先实际,后理论;先具体,后抽象;先个别,后一般”的新教学方式,这是符合课程教学特点和高职学生认知规律的。

事实上,绝大多数的“程序设计”概念与知识都是要用到程序中去的,因而我们可以用程序去演示这些知识点的作用和含义,就像我们做物理试验去演示一个物理现象一样,“程序设计”课程的教学就会由抽象变得形象,促进学生理解与掌握。在选择编程实例时,也应注重题目的趣味性,将“穷举算法”、“多重循环”、“回推递归”等理论知识溶入所举的趣味性案例中。还应鼓励学生在生活、学习中自己找题来做,适时开设小课题研究、征集一些各学科应用计算机解决的典型案例。充分激发他们的好奇心和热情,将学到的理论知识和现实生活实际问题紧密结合,达到学以致用的目的,增加他们的成就感,提高他们的学习兴趣。

4结语

“程序设计”课程教学是一个广泛而深远的工作,对计算机教育工作者来说,它是值得不断探讨的课题。我们应从高职教育的特点入手,以职业需求为目标,制定确实可行的培养方案,以学生为中心,按模块分阶段循序渐进地组织教学。在实施过程中,采用案例教学方式,加大实践教育环节,注重学生自信心及独立思维能力的培养,从而提高课程教学质量。

参考文献:

计算机语言的概念篇10

随着计算机技术的发展和网络的普及,网络语言(包括计算机术语)已经成为人们生活中的一部分,本文以新生计算机术语“云计算”为分析对象来说明隐喻概念体系的工作机制,同时也证明了隐喻的普遍性和重要性。

一、隐喻的理论基础

Lakoff和Johnson在其著名的《我们赖以生存的隐喻》一书中,提出了隐喻不仅仅是一种修辞现象,本质上更是人们的认知手段和思维方式,隐喻是通过概念之间的跨域映射实现的。隐喻和认知语言学密不可分。

二、“云计算”概念

最近,一个比较常用的新生计算机隐喻就是“云计算”。“云计算”是一种基于因特网的超级计算模式,在远程的数据中心,几万甚至几千万台电脑和服务器连接成一片,用户通过电脑、笔记本、手机等方式接入数据中心,按各自的需求进行存储和运算。“云计算”是对分布式处理、并行处理和网格计算及分布式数据库的改进处理,是一种网络计量式服务的计算模式。在“云计算”模式中,用户所需的应用程序并非运行在个人计算机上,而是运行在互联网大规模服务器集群中,所有的数据也存储在互联网数据中心。

三、“云计算”隐喻分析

我们知道,大自然会影响到人们生活的方方面面,同样,对自然现象的感知会成为人们认知世界的一部分。人们对各种自然现象的变化会产生不同的感受,比如阳光明媚的天气会使人心情舒畅;阴云连绵的日子又会使人感觉沉闷。天空中的云朵千变万化,自然会激发人们无穷的想象。“云”这个隐喻反映了人们对自然现象的概念化过程,而云的相关概念不是孤立存在的,而是相互联系的,具有系统性的,因此,人们在认知不熟悉的事物时会联想到有相关特点的自然现象“云”。那么,业界为什么只用“云计算”而不采用“森林计算”或是“海洋计算”呢?首先我们可以根据一些相关的汉语成语和英语惯用说法来了解下“云”的基本含义。

1.“云”喻数目众多:当人们看到天空中云朵漫漫,数不胜数时,就自然和“众多”这一义项产生联系。例如:“云山云海”、“宾客如云”。在英语中有这样的说法:themosquitoeswerecominginclouds.

2.“云”喻不实际、虚幻:云具有飘忽不定、变幻无穷的特征。人们对云的这种体验产生了“不实际、虚幻缥缈”这一义项。如“云诡波谲”、“过眼烟云”、“风云变幻”。Hewaslostintheclouds.

综上所述,在本质上,云是不透明的;云通常也是大规模并且有一定距离的;云可能是重叠的,它们可能会动态地相交或分裂。正是基于以上特点,在计算机网络理论应用中,很长时间以来“云”本身在网络图中一直用以表示黑匣子设备或者实体,这些黑匣子设备或者实体对外的接口是为人熟知的,但是其内部的路由和处理方式对于网络用户完全不可见。由“云计算”概念可知,“云计算”是基于因特网系统平台的;“云”是数据存储和应用程序的服务中心;“云”的背后隐藏着巨大的计算资源,包括硬件和软件。因此,“云计算”内部的事物是不透明的,没有具体的边界,而且是动态的、大范围、大规模的网络数据传输。

根据概念整合理论,在“云计算”这一概念形成之前,首先存在两个输入空间:源域(自然物质云)空间和目标域(计算机网络“云计算”)空间。两个空间之间的对应元素存在部分映射关系:第一,源域中的云通常规模巨大,而目标域中的“云计算”则是由大规模的集群化服务器提供服务的;第二,自然物质云是不透明的,而“云计算”是在因特网中进行的,人们是看不到其内部结构的,此外,人们还常常用云状图来表示网络设备;第三,自然云是大范围交错重叠分布的,而“云计算”的数据传输正是通过大范围交错相织的互联网实现的。当然,自然云会给人带来虚幻的印象,但在“云计算”这个隐喻中并无明显的相似特点对应。其次,类属空间和每一输入空间之间进行映射,这时与对应元素映射关系无关的特点就会被排除掉。两输入空间元素的相似的结构组织会映射在类属空间里,在云和“云计算”的概念里,这种相似结构分别是数量、性质、方式。两个输入空间中的对应元素是产生映射关系的基础,用实线表示,而两个输入空间中的元素与类属空间和合成空间中元素之间的映射关系用虚线来表示。源域空间云的相关特性与目标域空间“云计算”的相关特性一起投射到合成空间,在组合关系过程中相关的元素会合二为一,不相关的元素则会以独立元素的形式出现,因此产生以下概念:“云计算”是通过大量计算机终端实现的;“云计算”是一种后台服务;“云计算”是一种覆盖广泛的网络服务。再经过概念完善和扩展的认知运作过程形成层创结构,在“云计算”这个层创结构里,人们便会有以下理解:“云计算”非常高效便利,使网民能够共享无限的公共资源和实时的网络服务。这样“云计算”的概念就逐渐清晰了。

层创结构能够创造出新的意义结构,因此隐喻化的概念往往会比原始概念更加丰富。经过类推,我们还可以理解其它与云相关的计算机术语,如:“云资源”、“云鉴定”、“云潜能”、“云存储”、“云安全”等,从而可以使相关的计算机术语更加通俗化,帮助我们去了解未来信息技术的发展方向。