HI,欢迎来到云研学术,期刊咨询:130-7314-7102  订阅咨询:130-7314-7102 
0
首页 精品范文 计算机程序设计论文

计算机程序设计论文

时间:2022-11-09 11:06:47

计算机程序设计论文

第1篇

关键词:逻辑;计算;计算机

中图分类号:TP3 文献标识码:A

1 引言(Introduction)

20世纪30年代,Godel、Church、Turing等逻辑学家给出了“可计算”概念的严格定义。Turing于1936年发明了一种抽象机器――第一台通用数字计算机。该机器可用来辅助求解数学基础问题。1940年,Turing的逻辑抽象机付诸实践。Turing设计了ACE计算机。von Neumann主持研制了EDVAC和IAS计算机。50年代,计算机科学成为一门独立的学科。从那时起,逻辑与计算机科学间的联系越来越紧密,主要表现在计算机理论、复杂性理论、类型论、程序设计语言的形式语法和语义、编译技术、程序规范和验证、并发理论、知识工程、归纳学习[1]、数据库理论、专家系统、定理证明、逻辑程序设计和函数程序设计等方面。

2 逻辑与计算(Logic and computing)

计算机是逻辑和技术的共同产物20世纪30年代,逻辑学家Godel、Church、Turing提出了计算的抽象概念。40年代中期,Turing和von Neumann主持设计、制造了第一台计算机。此外,他们的工作为理解计算过程和计算形式化的发展打下了广泛的逻辑基础。

如今逻辑仍是新颖计算机体系结构抽象思想的重要来源,这些新结构包括推理机、数据流机、数据库机、重写机。逻辑为程序设计提供了一整套的思想,同时为程序的推理提供了系统的框架。逻辑在程序设计语言的理论和设计方面发挥着重要作用,数理逻辑可视为两类主要逻辑程序设计语言的直接模型。一类是基于Church的λ一演算[2]的函数程序设计语言,如LISP、ML、LUCID、MIRANDA。另一类是基于Horn子句归结的关系程序设计语言,如PROLOG、PARLOG、GHC。Peter Landin早在20世纪70年代就指出,像ALGOL这样的语言也不过是对Church的λ一演算稍加扩充后的“语法变形”。后来,Martin-Lof直觉主义类型论被用来研究更高层的程序设计语言。其突出特征是程序正确性证明自动伴随着程序书写过程。

为设计、理解、讲解计算机及程序设计语言,为编写、分析程序以及进行有关性质的正确推导,逻辑在发挥着重要作用。逻辑学家本身亦可称为抽象工程师。

为分析知识表达和推理的过程以及综合用于表达和推理的机器,逻辑为我们提供了语言及技术。

在人工智能研究中,逻辑在下述诸方面得到成功应用。

(1)知识表示的模型。

(2)机器归纳推理和学习的组织。

(3)自动演绎系统的理论基础。

然而,与逻辑在计算的理论和实践中的作用相比,逻辑在人工智能中的作用更多的是引发人们的争论。要结束这种争论,必须更好地理解自然智能与人工智能的差别。与此同时,逻辑的倡导者和批评者均应做出更多的工作来阐述各自的观点。

3 逻辑与计算机的起源(The origin of logic and

computing)

在现代计算机的发明过程中,逻辑起决定性的作用。这一点并未被人们广为接受。抽象计算机发明于1936年,该发明由1930年Godel的重要逻辑发现所引发。1936年Godel有关计算的理论鼓舞Turing来寻求一种既严格又抽象的逻辑模型。这种模型不仅是关于计算过程的,而且是关于计算机本身的。以此为辅助的理论概念。Turing证明数学的形式系统是不可判定的,从而解决了Hilbert第三问题。尽管Turing的最初计算机仅是抽象逻辑概念,但在这之后的10年(1937―1946)中,Turing成为了实用计算机的设计、制造、使用的领头人。

Turing机似乎是真正计算机的抽象。然而,它却创立于20世纪30年代。抽象Turing机是人们可以执行的可能计算模式的理想模型。Turing本人的最大成就是证明了一些Turing机是“通用的”――它们可模仿任何Turing机的行为,他所给出的通用机是如今的存储程序通用计算机的抽象原型。每个特殊机器的编码描述是一程序,它可使通用机当专用机使用。

Turing的工作有一明显的技术解释,不需要对每个计算任务都建造一个独立的机器,而只需建造一台机器――通用机器。人们可以通过编写适当的程序来做所需的计算,事实上,Turing本人动手建造了一台通用机。

von Neumann在阐述EDVAC、IAS机的设计和操作时,侧重用抽象的逻辑描述语言来说明,很少涉及详细的工程细节。关于机器的系统结构和程序设计原则,全都用抽象概念来阐述,今天可以看出,von Neumann和Turing在计算机设计和程序设计方法学等主要问题上所依照的正是逻辑原则。相反,精确的工程细节相对说来是次要的。从那时起,重视逻辑抽象(相对具体实现)就成为计算机科学的指导原则。

4 逻辑与程序设计((Logic and programming)

Turing和von Neumann在有关程序设计的讨论中多次强调“流程图”的重要地位。此后,“流程图”很快成为早期程序设计的一种标准逻辑工具。直到目前,“流程图”仍应用于有关计算的形式推理中。Hoare、Dijkstra、Floyd等有关程序推理逻辑原则的思想尽在Turing和von Neumann的料想之中。Turing和von Neumann曾强调指出,程序设计有静态、动态两个方面,程序本身的静态文本主要是指逻辑表达式:性质仅用逻辑方法分析的语法结构。运行程序的动态过程是上述静态文本语义的一部分。

4.1 自动程序设计

1950年,Turing的朋友Strachey使用计算机将高层“数学”描述转换成低层“机器语言”指令。他希望程序员能以更自然和符台人们习惯的方式思考和编写程序。可是,Turing本人对此想法井无兴趣,他早在1947年就指出,这不过是一件简单的事情。事实上,Turing非常精于机器语言,他能用机器码和32进位、低位在前的非正常表达直接并且方便地进行思考。

50年代后期,随着解释器、编译器技术的发展及FORTRAN、LISP、ALGOL的推出,程序员被从琐碎的工作中解放出来。

4.2 逻辑与程序设计语言

4.2.l 抽象逻辑程序设计

逻辑程序设计语言是逻辑学与计算机科学结合的典型代表。在回答“逻辑程序设计是什么”之前,先给出“逻辑是什么”的回答。因为逻辑程序设计的公理化概念依赖于逻辑自身的公理化概念。逻辑的研究通常有两条主要途径:

(1)模型论方法――在模型和句子之间建立满足关系。

(2)证明论方法――句子集之间的衍推关系。

这两种方法本身均不足以对逻辑程序设计进行公理化。

证明论方法可追溯到1959年Tarski.A.“关于元数学的基本概念”中的“推导关系”及 Hertz和Gentzen提出的衍推关系S。

以一阶逻辑[3]为例,存在许多不同的证明演算(如Hilbert系统、Gentzen系统、自然演绎系统等)。其中,起关键作用的是衍推关系S,因为,它在许多不同系统中保持不变。一阶衍推关系├ 满足三条性质:

(1)自反性,即φ├φ。

(2)单调性,即如果г├φ,г′г,则г′┝φ。

(3)传递性,即若г├φ,г∪{φ}┝ψ, 则г┝ψ。

可将自反性视为一公理模式,单调性视为弱化规则,传递性视为切割规则。

(弱逻辑程序设计)逻辑程序设计语言中,程序P是逻辑L中的一理论。当程序被执行时,用户可做询问(询问属于P语言中一特别句子类)。当用户提出一询问φ时,如φ是P中公理的可证推论,则机器将返回证明φ为真的一集回答。可视这些回答为对φ的不同证明。如果由P得不到询问φ的证明,则或者机器在有穷时间之后停止并提示“失败”,或者机器永不停止。因此,机器中的计算与逻辑中的演绎等价。

从实用上考虑,机器中的实现必须能行,使得该语言实际适合一大类应用。否则,最好将这样的系统描述成一定理证明器。

将计算等同于演绎时没有涉及模型概念,一个理论原则上有许多模型。然而,在解决一特定问题时如计算一数值函数,心中通常有一模型(如整数、实数),这样的模型是给定理论的指定模型或标准模型。

在逻辑程序设计文献中,标准模型指程序描述的“封闭世界”。标准模型通常被刻划为初始模型。

用IP表示程序P的指定模型。在这样的模型中,我们主要的兴趣不是(在所有模型下均成立的)有效性,而是在模型IP下的可满足性。

(强逻辑程序设计)逻辑程序设计语言中程序P是一逻辑L中的一理论,程序P的数学语义是P的模型IP。程序P进入机器后,用户可提出关于什么性质在其模型中满足的问题。这种被称为询问的问题,是P语言中的特定句子,并满足性质:模型IP满足φiffφ从P的公理可证。当用户提出询问φ时,若φ是P公理的可证推论,则机器给出φ真的回答。这样的回答可视为φ的证明。换言之,语言的操作语义是通过证明论给出的。如果φ从P不可证,则或者机器回答“失败”,或者机器永不停止,因此,下面三者等价:机器中的计算、逻辑中的演绎和标准模型中的可满足。

4.2.2 逻辑程序设计语言

20世纪50年代后期,John McCarthy等人直接使用符号逻辑作为IBM704机的程序。他们的系统LISP是实用逻辑程序设计语言的第一个重要例子。LISP本质上是Church的λ一演算。λ一演算讨论简单递归数据类型(有序偶对)、条件表达式以及用于列举一系列连续行为的强制“序列构造”。在70年代初,Robert Rowalski和Alain Colmerauer给出了PROLOG。PROLOG基于谓词演算的Horn子句归结。Horn子句归结涉及目标、子句、控制流、深度优先、回溯等概念以及几个强制式命令(如“cut”)。David.H.D.Warren采用巧妙的技术,漂亮而且有效地实现了PROLOG。逻辑程序设计语言LISP和PROLOG的主要优点为:灵活、易书写、易修改,LISP和PROLOG通常被视为两种逻辑程序设计(函数程序设计和关系程序设计)的典范。抽象描述演绎程序设计的一般思想是将计算视为从表达式到一范式的归约,在抽象LISP中,主要指对适用于过程函数调用、条件表达式、序偶数据结构操作等归约规则的持续应用.在抽象PROLOG中,主要指β归约规则的持续应用。这些规则包括:分配“合取”、删除存在量词,化简表达式。将这两种形式合并可得统一的逻辑系统,其中含有两种程序设计的特点。目前,J. A. Robinson等人基于此思想给出了一新语言SUPER,它可用来解释归约逻辑如何在超大规模并行计算机上自然地实现。

LISP、PROLOG等语言表明了逻辑系统对计算机的应用,逻辑程序设计近乎于一种适当形式的知识阐述,在其中,从公理可导出用户询问的答案。在这种意义下,此类程序设计是连接一般计算到特殊AI系统的桥梁。Robert Kowalski等式“算法=逻辑十控制”概述了同时注重程序的描述、强制两方面的重要性。

5 结论(Conclusion)

综上所述,通过对逻辑与计算、计算机的起源、程序设计之间的相互关系的基本梳理和研究,可以充分说明计算机科学是逻辑的超大规模应用。

参考文献(References)

[1] 陆钟万.面向计算机科学的数理逻辑[M].北京:北京大学出版

社,1989.

[2] 王元元.计算机科学中的逻辑学[M].北京:科学出版社,1989.

[3] 王兵山,张强,李舟军.数理逻辑[M].北京:国防科技大学出版

社,1993.

作者简介:

第2篇

一、主要结构介绍

(一)知识结构

1、通用知识。通用知识是学习和掌握专业基础理论、专业知识的基础和工具,并对今后从事的计算机应用工作起辅助和支持作用。通用知识包括扎实的文化、社会科学和法律知识,以及计算机数学基础、计算机应用基础、C语言程序设计、计算机网络基础、操作系统原理等专业必备的基础理论知识。

2、专业知识。专业知识是从事计算机应用技术工作的根基。专业知识包括Visual FoxPro程序设计、VisualBasic .net程序设计、JAVA程序设计、图形图像处理、FLASH动画制作、网页制作等。

(二)能力结构

1、基础能力:计算机相关高等数学的应用能力;基本程序设计能力;计算机系统管理和维护能力;外语应用能力;汽车驾驶能力。

2、专业能力:使用高级语言进行程序的设计、调试和维护能力;熟练使用办公自动化系列软件的能力;运用关系型数据库Visual FoxPro设计和应用管理信息系统的能力;利用Visual Basic语言编制一般视窗应用软件的能力;计算机多媒体素材的处理能力;综合性网页设计与制作能力。

3、综合能力:社会适应能力;学习能力;竞争能力;组织与管理能力;创新与创业能力。

(三)素质结构

1、思想道德素质。具有科学的世界观、人生观和道德观,有明确的是非观念;具有爱国主义、集体主义精神,有良好的敬业、创新意识。

2、文化素质。具有高等数学、程序设计、数据处理等理工科知识,有一定的科学素养;具有必要的哲学、法律、职业道德等人文社科知识,有一定的文化素养。

3、业务素质。掌握计算机的基本知识,能够熟练操作各种常用应用软件;具有常用应用软件的安装、调试、使用和管理、维护能力;具有一般应用程序和数据库系统的编写和使用能力;具有以业务知识为基础,专业操作能力、创新能力为标志的较高的业务素质。

4、身心素质。具有强壮的体魄、旺盛的精力,掌握基本的擒拿格斗方法。养成科学的强身健体的习惯,具有良好的心理素质。

二、主要课程介绍

马克思主义哲学原理、高等数学、基础英语、C语言、汇编语言、数据结构、操作系统基础、离散数学基础、数据库原理及应用、微机原理与接口技术、邓小平理论理论、数字电路、线性代数、计算机导论、计算机组织与结构、马克思主义政治经济学基本原理概论、中国近代史纲要、英语二、物理(工)、离散数学、工程经济、操作系统、软件工程、数据结构、数据库原理、高等数学(工本)、计算机系统结构、计算机网络与通信、面向对象程序设计、概论论与数理统计(二)、课程设计、毕业设计。

三、应获得的职业资格证书

计算机硬件工程师、计算机二级三级、计算机国家二级三级、LINUX管理、平面设计师、网站设计师等。

第3篇

一、我校的计算机基础教育新旧课程结构的比较 旧课程结构根据高等教育的发展,对我校非计算机专业的计算机基础教学提出了新的要求,相应的课程体系改革为:计算机基础分为大学计算机基础、计算机技术基础和计算机应用基础三个层次,为必修课或选修课。其中:理工类建议选择C语言程序设计、java语言程序设计等,文科类选择VB程序设计、web程序设计等;第四、五学期各专业可根据专业培养需要选择。同时为了使同学们能更好的掌握知识,将《C语言程序设计》《java语言程序设计》《VB程序设计》《web程序设计》《动漫设计》课程分为两个学期完成,称为《C语言程序设计(1)》《C语言程序设计(2)》,其他课程以此类推。 二、教改具体措施以及效果 (一)全程机房教学,增强动手能力 教学方法是为实现教学目标、完成教学任务所采取的措施。传统的三中心(教师、教材、课堂)教学方法既不适应社会发展的需求,也不符合计算机教育的特色,必须改革。 我校的《大学计算机基础》由原来的课堂教学,改为全程机房教学,使同学们在边听教师讲解的同时,可以直接上机进行操作,在学习理论知识的同时,可以立刻得到对计算机操作的感性认识。通过三个学期的教改实践,完善了全程机房教学模式,对同学们使用计算机的动手能力有很大的提高。 (二)配套教学软件,提高学习能力 本课程组为《大学计算机基础》课程开发了一个《大学计算机基础辅导练习系统》,该系统分为抽题模块、答题模块、判卷模块,本系统为C/S结构,当管理员在服务器端设置好本次模拟练习的题型比例后,系统自动生成一套模拟试卷;所有的同学们可以在客户端进行答题,当答卷完毕时,由服务器端自动进行判卷并将本次练习的结果反馈给同学们;该系统可以提供给学习本课程的同学们经过教师的指导后,在课堂内外自行进行练习。以便同学们完成练习后,自己可以评判自身的学习程度,并在下一阶段的课内外学习中调整自己的学习状态。本系统已经提供给2005级大一学生进行了初步使用,体现了较好的作用。 (三)开发网络平台,整合教学资源 本课程组在调研了周边各高校的计算机基础教育的情况,开发了一个本校的《计算机基础教育中心教学平台》,在本教学平台上,提供了基础部课程的相关介绍,教学信息的,教学资料的下载等等功能,可以提供给任课教师所任课程重点难点详细介绍。对课堂教学起到了很好的补充作用,方便了同学们在课余时间继续学习计算机基础课程。在本课题的后续时间里,拟设计开发计算机基础教学课程的基于校园网教辅系统,使得同学们可以开展课余时间自由学习。 该平台具有以下优点:①发挥以计算机为基础的现代多种媒体的作用,使教学信息组织超文本化。多媒体的超文本特性可实现教学信息最有效的组织与管理。②在培养高级认知能力的场合中,因特网和校园网是协作学习的主要形式,实现了协作式教学。③教学过程的生动性是多媒体计算机的强大魅力之所在。在教学中可以同样重视教与学这两个部分。强调学生的参与意识,教与学成为两个相辅相成的部分。调动学生学习的主动性,培养学生的“发现式”学习能力,使学生不仅学会,而且会学。④在短时间里要获得大量的信息与知识,这在传统的教学模式中是可望不可及的,而以多媒体网络作为传播信息的渠道,使教师与学生、学生与学生之间,可以同时传播大量的信息,大大提高教学效率。 (四)编制多媒体课件,增加课堂吸引力 根据我校计算机基础教学的实际情况,我们重新编制了《大学计算机基础》《计算机程序设计A》《计算机程序设计B》的电子课件,使之更符合我校的实际教学情况,更符合浙江省计算机等级考试的要求。其中《计算机程序设计A》课件获得中国计量学院首届多媒体课件竞赛二等奖。改编后的课件具有以下优点:界面清晰、美观,结构清晰,例题丰富、并附有书本外的课后习题。 (五)出版教辅材料,同步教学改革 根据高等教育中对计算机基础教学提出的新要求,和结合浙江省计算机等级考试的要求,本课题组编制了《C语言程序设计实验与习题指导》面向21世纪高等院校计算机系列规划教材,该教材由“科学出版社”出版,并于2005~2006学年第二学期开始投入我校、浙江工业大学等高校使用;根据我校学生应考浙江省计算机等级考试的需要,本课题组编制了《C语言辅导与讲义》、《VB程序设计辅导与讲义》,并与2005~2006学年第一学期开始投入使用,学生们反映良好。 (六)开发考试系统,改革测试手段 计算机基础课程是一门应用技术学科,主要凭试卷来检测大学生的学习效果,并不能完全反映出学生的实际能力。而且试题类型目前多是测试学生对所学知识是否了解,不是考核学生解决问题的能力,并没有挣脱应试教育的樊笼,严重影响了创新型人才的培养。现在这种考试方法,使得学生为了考试而学习,不能提高学生学习的积极性,不能发挥学生的创造力,这种考试方法与素质教育大相径庭。 本课题组开发了《大学计算机基础上机考试系统》,本系统具有抽题功能、答题功能、判卷功能、存储功能、输出功能,对其中的实践部分从以前的“纸上谈兵”改为“上机实战”。其中的判卷功能、存储功能、输出功能也使得该课程实现无纸化考试,该考试系统于2004~2005学年第二学期开始投入使用。新的考核方法给了学生一个发挥才能的空间,变被动的死记硬背为灵活的实践操作,使学生成为知识的主人。 四、实际作用与效果 通过对非计算机专业计算机公共基础课的教学改革与实践,对提高教学质量,效果明显。我校非计算机专业学生在学习C语言和准备迎接浙江省计算机二级考试中,选择了我校自行编制的《C语言程序设计辅导与讲义》《VB程序设计辅导与讲义》,取得了较好的成绩。#p#分页标题#e#  在该完成该课题的过程中,陆慧娟老师等于2005年11月在“首届大学计算机基础课程报告论坛”发表了《多科性大学计算机基础教学课程体系的改革与实践》教改论文,该文以本校的计算机基础教学为背景,探讨了非计算机专业计算机基础教学课程体系的设置、教学方法的改进和师资队伍建设等问题。黄俊老师等于2005年11月在“首届大学计算机基础课程报告论坛”发表了《配对编程教学模式在程序设计课程教学中的探索与实践》教改论文,配对编程方法是两学生并排在一台计算机上工作,协同完成一个设计、代码编写和调试的新的程序设计学习方法,该文对配对编程教学模式在计算机基础课程教学的应用进行了探索与实践,提出了配对编程在程序设计基础教学过程中存在的问题和解决的办法。 五、展望 在我校非计算机专业计算机基础教育的课程体系改革基本确定的情况下,继续加强教材,教辅材料,网络教学等方面的建设,鼓励教师积极参与教改项目的建设,争取早日在浙江省、全国获得教改的奖项。 1、针对新课程结构,加强教辅材料的建设;2、加强网络平台的建设,提高网络教学的覆盖面;3、积极开发新课程体系中的各科网络版教学课件;4、积极总结教改中的新成果,多出教改论文;5、积极参加学生学术竞赛,争取获得更好的成绩。

第4篇

    随着计算机现代智能的高速发展,计算机已经完全融入我们的生活,甚至占据了重要领域,从国家核心科技到每个人生活的小细节,都离不开计算机的覆盖和使用。我们简单的在键盘上操作几个键,打出一系列符号命令,就能使计算机按照人类的要求,高速运行和进展,从而达到人力所不能达到的速度和正确率。

    我们从小学习数学,数学是什么呢?数学是利用符号语言研究数量、结构、变化以及空间模型等概念的一门学科。数学,作为人类思维的表达形式,反映了人们积极进取的意志、缜密周详的逻辑推理及对完美境界的追求。数学更多的是一种抽象的概念,是一门重要的工具学科。人类利用抽象的概念及一些固定的定律形成理论,而脱离实际应用的概念并不是人类发展学习的初衷,而是利用它们来指导实际,化抽象为实体。而计算机就由此演化。1946年2月15日界上的第一台计算机诞生在宾西法尼亚大学,主要运用于高倍数的数学运算。时至今日,计算机直接能识别的语言仍然是1、0二进制代码。

    1 计算机中所需要的数学理论

    计算机学科最初是来源于数学学科和电子学学科,计算机硬件制造的基础是电子科学和技术,计算机系统设计、算法设计的基础是数学,所以数学和电子学知识是计算机学科重要的基础知识。计算机学科在基本的定义、公理、定理和证明技巧等很多方面都要依赖数学知识和数学方法。计算机数学基础是计算机应用技术专业必修并且首先要学习的一门课程。它大概可分类为:

    1.1 高等数学 高等数学主要包含函数与极限、导数与微分、微分中值定理与导数的应用、不定积分、定积分及应用、空间解析几何与向量代数、多元函数微分法及其应用、重积分、曲线积分与曲面积分、无穷级数、微分方程等。各种微积分的运算正是计算机运算的基础。

    1.2 线性代数 线性代数主要包含行列式、矩阵、线性方程组、向量空间与线性变换、特征值与特征向量、二次型等。在计算机广泛应用的今天,计算机图形学、计算机辅助设计、密码学、虚拟现实等技术无不以线性代数为其理论和算法基础的一部分。

    1.3 概率论与数理统计 概率统计与数理统计包含随机事件与概率、随机变量的分布和数学特征、随机向量、抽样分布、统计估计、假设检验、回归分析等。概率论与数理统计是研究随机现象客观规律并付诸应用的数学学科,通过学习概率论与数理统计,使我们掌握概率论与数理统计的基本概念和基本理论,初步学会处理随机现象的基本思想和方法,培养解决实际问题的能力。这些都是计算机编程过程中不可或缺的基础理论知识和技能。

    2 计算机编程中数学理论的应用

    计算机的主要专业知识包括计算机组成原理、操作系统、计算机网络、高级语言程序设计、数据结构、编译原理、数据库原理、软件工程等。计算机程序设计主要包括如:C语言、C++、JAVA、编译语言、汇编语言等编程语言的基本概念、顺序结构程序设计、分支结构程序设计、循环结构设计、函数、指针、数组、结构、联合以及枚举类型、编译预处理、位运算、文件等内容,掌握利用各种编程语言进行程序设计的基本方法,以及编程技巧。算法是编程的核心,算法的运用离不开数学,数学运算正是编程的基础。

    计算机科学是对计算机体系,软件和应用进行探索性、理论性研究的技术科学。由于计算机与数学有其特殊的关系,故计算机科学一直在不断地从数学的概念、方法和理论中吸取营养;反过来,计算机科学的发展也为数学研究提供新的问题、领域、方法和工具。近年来不少人讨论过数学与计算机科学的关系问题,都强调其间的密切联系。同时,人们也都承认,计算机科学仍有其自己的特性,它并非数学的一个分支,而有自身的独立性。正确说法应该是:由于计算机及程序的特殊性,计算机科学是与数学有特殊关系的一门新兴的技术科学。这种特殊关系使得计算机科学与数学之间有一公共的交界领域,它范围相当广,内容相当丰富,很富有生命力。这一领域既是理论计算机科学的一部分,也是应用数学的一部分。

    2.1 计算理论是关于计算和计算机械的数学理论。主要内容包括:

    ①算法:解题过程的精确描述。②算法学:系统的研究算法的设计,分析与验证的学科。③计算复杂性理论:用数学方法研究各类问题的计算复杂性学科。④可计算性理论:研究计算的一般性质的数学理论。⑤自动机理论:以研究离散数字系统的功能和结构以及两者之关系为主要内容的数学理论。⑥形式语言理论:用数学方法研究自然语言和人工语言的语法理论。

    2.2 计算几何学是研究几何外形信息的计算机表示,分析和综合的新兴边缘学科,它是计算机辅助几何设计的数学基础。主要内容如:贝塞尔曲线和曲面、B样条曲线和曲面、孔斯曲面。

    2.3 并行计算问题是 “同时执行”多个计算问题。他的延伸学科有:并行编译程序、并行程序设计语言、并行处理系统、并行数据库、并行算法。

    2.4 形式化方法是建立在严格数学基础上的软件开发方法。软件开发的全过程中,从需求分析,规约,设计,编程,系统集成,测试,文档生成,直至维护各个阶段,凡是采用严格的数学语言,具有精确的数学语义的方法,都称为形式化方法。

    2.5 程序设计语言理论是研究书写计算机程序语言的学科。主要内容如:研究语法、语义、语用以及程序设计语言的优劣。

第5篇

计算机产业已渗透到国民经济各个领率域和人民生活的各个方面,是衡量一个国家科技水平和综合国力的重要标志。计算及应用软件专业的应用论文联盟范围更是极其广泛,该专业主要培养具有系统掌握计算机基本理论和基本知识,能熟练运用计算机从事科技信息管理及软件开发,能从事各类图像设计与绘制,有较强的实践能力和自我发展能力以及硬件设备维护工作,符合社会市场经济需求的专门人才,实现“一张文凭,多种证书,一技之长,一专多能,品学兼优”的培养目标。

一、主要结构介绍

(一)知识结构

1、通用知识。通用知识是学习和掌握专业基础理论、专业知识的基础和工具,并对今后从事的计算机应用工作起辅助和支持作用。通用知识包括扎实的文化、社会科学和法律知识,以及计算机数学基础、计算机应用基础、c语言程序设计、计算机网络基础、操作系统原理等专业必备的基础理论知识。

2、专业知识。专业知识是从事计算机应用技术工作的根基。专业知识包括visual foxpro程序设计、visualbasic .net程序设计、java程序设计、图形图像处理、flas制作、网页制作等。

(二)能力结构

1、基础能力:计算机相关高等数学的应用能力;基本程序设计能力;计算机系统管理和维护能力;外语应用能力;汽车驾驶能力。

2、专业能力:使用高级语言进行程序的设计、调试和维护能力;熟练使用办公自动化系列软件的能力;运用关系型数据库visual foxpro设计和应用管理信息系统的能力;利用visual basic语言编制一般视窗应用软件的能力;计算机多媒体素材的处理能力;综合性网页设计与制作能力。

3、综合能力:社会适应能力;学习能力;竞争能力;组织与管理能力;创新与创业能力。

(三)素质结构

1、思想道德素质。具有科学的世界观、人生观和道德观,有明确的是非观念;具有爱国主义、集体主义精神,有良好的敬业、创新意识。

2、文化素质。具有高等数学、程序设计、数据处理等理工科知识,有一定的科学素养;具有必要的哲学、法律、职业道德等人文社科知识,有一定的文化素养。

3、业务素质。掌握计算机的基本知识,能够熟练操作各种常用应用软件;具有常用应用软件的安装、调试、使用和管理、维护能力;具有一般应用程序和数据库系统的编写和使用能力;具有以业务知识为基础,专业操作能力、创新能力为标志的较高的业务素质。

4、身心素质。具有强壮的体魄、旺盛的精力,掌握基本的擒拿格斗方法。养成科学的强身健体的习惯,具有良好的心理素质。

二、主要课程介绍

马克思主义哲学原理、高等数学、基础英语、c语言、汇编语言、数据结构、操作系统基础、离散数学基础、数据库原理及应用、微机原理与接口技术、邓小平理论理论、数字电路、线性代数、计算机导论、计算机组织与结构、马克思主义政治经济学基本原理概论、中国近代史纲要、英语二、物理(工)、离散数学、工程经济、操作系统、软件工程、数据结构、数据库原理、高等数学(工本)、计算机系统结构、计算机网络与通信、面向对象程序设计、概论论与数理统计(二)、课程设计、毕业设计。

三、应获得的职业资格证书

计算机硬件工程师、计算机二级三级、计算机国家二级三级、linux管理、平面设计师、网站设计师等。

转贴于论文联盟

第6篇

计算机科学与技术本科生的基本学科能力可以归纳为计算思维能力、算法设计与分析能力、程序设计论文与实现能力、系统能力[1]。其中计算思维能力是指模型化、抽象思维能力、逻辑思维能力。系统能力是指计算机系统的认知、分析、开发与应用能力,也就是要站在系统的观点上去分析和解决问题,追求问题的系统求解,而不是被局部的实现所困扰。算法设计与分析能力、程序设计能力是计算机类专业学生应该具备的基本能力之一,是从抽象思维到具体应用方法的转换,涉及到阅读判断、思考分析、抽象综合、表达创造等多项能力,对计算机专业高素质人才的培养不可或缺。 

从目前社会对计算机专业人才的需求来看,高校在培养学生的程序设计、算法设计与分析能力上所作出的努力还远远不够。本文探讨了计算机专业学生在程序设计、算法设计与分析方面存在的主要问题,给出了在课程与实践中提高学生的程序设计、算法设计与分析能力的具体措施。 

1 现状与问题分析 

近年来,企事业用人单位较普遍的反映是计算机类毕业生的实际应用知识、动手能力和程序设计开发经验严重不足,尤其是程序设计能力、算法设计与分析能力无法达到用人单位的要求。这不仅影响学生就业,更阻碍了其进一步发展与自我提升。 

我们归纳了问题的主要原因。一是学生对于有关程序设计及算法的知识仅仅停留在了解的程度上,未能融汇贯通,进而应用这些知识解决实际问题。二是教师在讲解程序设计、算法设计与分析的相关知识时,并没有将理论与实际有机的结合。三是实际教学过程中并未对学生进行真正的软件项目开发训练。四是对第一门程序设计课程的教学不够重视。五是学生的数学基础差、逻辑思维能力弱,阻碍了学生进一步设计算法和分析算法。 

2 程序设计、算法设计与分析能力培养的具体措施 

教育教学工作应该以学生为主体,同时充分发挥教师的引领、指导作用,二者有机结合,才能充分调动学生的学习积极性和主动性,从而达到最佳的教学效果。因此本文以“学生为主体,教师为主导”这一思想为指导,结合本校的实际情况,以及教师在教育教学工作过程中遇到的问题和广大学生的反馈,从以下四个方面探讨教育教学改革的措施。 

2.1 调整课程设置和教学目标 

用计算机求解一个实际问题,首先要从这个实际问题中抽象出一个数学模型,然后设计一个解此数学模型的算法,最后根据算法编写程序,以便调试、编译、连接和运行,从而形成该问题的解。从实际问题中抽象出一个数学模型的实质,其实就是要用数学方法抽取其主要的、本质的内容,最终实现对该问题的正确认识。设计出解决问题的算法后,要清楚地知道算法的优劣处,如果是好的算法则不必对其怀疑而再浪费时间进行研究;如果不是好算法则应再进行改进。而如何知道算法的优劣,则需要学会分析算法。算法分析是对一个算法需要多少计算时间和存储空间作定量的分析。编程就是设计程序,用计算机来解决问题。 

与数据结构和算法设计相关的课程较多,其中三分之二以上的专业课都需要学习编程,主要是提高学生编程能力和算法分析能力。对于本科生来说,这些课程的重要性是不言而喻的。如果掌握不好则会阻碍他们对编程能力乃至对计算机系统的认识和理解。因此,应该从课程的意义出发,以提高学生的编程能力和算法设计与分析能力为目标,结合计算机专业的特点与教学实际情况,将“C语言程序设计”、“面向对象程序设计”、“离散数学”、“数据结构”、“算法设计与分析”、“网络编程”、“Windows编程技术”、“操作系统”、“计算机网络”、“编译原理”和“数据库技术”等几门课程有机地结合起来,并充分利用它们内在的联系优化授课的顺序与内容,为学生提供一套以编程能力和算法设计与分析能力为中心的教学体系,为学好相应的课程打下坚实基础[2]。

“C语言程序设计”和“离散数学”作为计算机专业学生较早接触的两门课程,应该为后续专业课的学习打好基础。C语言是学生在大学接触的第一门编程语言,教学中应该重点介绍程序设计思想,并培养学生的逻辑思维能力、抽象能力、编程习惯,而不是一味地强调C语言的语法特性。同时,“C语言程序设计”这门课也为后续的数据结构、算法设计与分析课程做好实践上的铺垫。“离散数学”的概念、理论及方法应用于计算机科学与技术的诸多领域,并大量出现在“数据结构”、“数据库系统”、“编译原理”、“算法设计与分析”、“计算机网络”等专业课程中。此外,离散数学所提供的训练十分有益于学生的逻辑推理、抽象概括及归纳构造能力的提高,十分有益于培养学生严谨、完善、规范的科学态度。 

通过“数据结构”课程,使学生了解数据对象的特性,学会数据组织的方法,以及各种类型数据的处理方法,同时培养学生良好的程序设计技能。“算法设计与分析”课程重点讲授分治法、贪心法、动态规划、回溯法、分支限界法,培养学生分析问题和解决问题的能力,使学生掌握算法设计的基本方法,熟悉算法分析的基本技术,并能熟练运用一些常用算法。“操作系统”、“计算机网络”、“编译原理”和“数据库技术”都是对前面学习到的一些基本的数据结构和算法的具体应用,再加上一些相关领域的专业知识。 

在“操作系统”教学中,让学生了解操作系统的一些基本概念,如:进程和线程、虚拟内存、死锁等,并按操作系统的五大功能分模块进行介绍。通过相应实验帮助学生理解重要概念,如通过实现“银行家算法”让学生明白进程间的通信过程、模拟LRU算法了解页面如何置换,通过实验使学生更加深刻地理解有关概念[3]。对于“编译原理”这门课,由于其理论性较强,在教学过程中应该尽量多与实验相结合,在课堂上比较难理解的内容,例如词法分析中的有限自动机内容或语法分析中LL(1)文法的理解等等,都可以通过与实验结合来促进对课堂内容的理解,可通过完成词法分析器的实验了解编译器如何把输入的源程序转化为单词符号串。 

2.2 加强实验性课程教学 

计算机专业相关的课程总体来说理论性比较强[4-5],开设实验性课程有利于学生通过自己的实际操作加深对课堂知识的理解,同时强化编程能力、算法设计能力和创新能力。许多课程都有上机编程实验内容,如“C语言程序设计”、“面向对象程序设计”、“数据结构”、“算法设计与分析”、“Java程序设计”、“操作系统”等课程,都要求学生完成一定数量的设计性,完成验证性实验。我们设立了工程与学术实践、计算机软件课程设计、独立实验课程以及毕业设计等实训科目,坚持编程实践四年不间断。 

实验贯穿于理论、抽象和设计过程;实验对软件的设计和实现、测试原理和方法起示范作用;实验不仅是对理论的验证,也是技术训练和能力培养,包括动手能力、分析问题解决问题能力、表达能力、写作能力等。教学活动是教师和学生不断交流的过程,实验是实现这个过程的桥梁,可以弥补课堂教学的不足,加深对理论过程的理解,启发学生深入思考,敢于创新,理论联系实际。 

例如“编译原理”课程是计算机类专业的一门重要专业课。设置该课程是让学生学习编译系统的结构、工作流程及编译程序各组成部分的设计原理和实现技术,使学生通过学习既掌握编译理论和方法基本知识,也具有设计、实现、分析和维护编译程序等方面的初步能力。编译原理是一门理论性和实践性都比较强的课程。实验的目的是加深学生对课堂知识的理解,掌握几个主要编译阶段的处理方法,增强实践能力,能完成初步设计、编制和调试编译系统。 

实验一词法分析器构造,通过对给定源语言词法分析程序的设计,加深对词法分析原理的理解,掌握源语言的接受、存贮、预处理和扫描分析,生成正确的单词符号串二元式序列。实验二语法分析器构造,借助于词法分析程序提供的分析结果,编写一个算符优先语法分析程序,程序能进行语法结构分析和错误检查并产生相应的归约信息。同时给出出错信息和错误类型,从而加深对语法分析的理解。进一步设计实现球类描述语言词法分析、语法分析实验(扩展实验),根据球类比赛技战术分析的需求,设计的解释器由词法器、语法器和语义分析模块三部分组成,词法分析器负责词法分析的预处理和输入单词的解释;语法分析负责输入码的语法结构检查和解释;在词法和语法分析器基础上,语义分析模块负责比赛技战术的分类与统计工作。 

本校开设了“程序设计专题训练”、“计算机网络专题训练”、“操作系统专题训练”、“数据库专题训练”、“软件测试技术”、“嵌入式技术”等实践课程。如“程序设计专题训练”课程是C程序设计课程后续的训练课程,针对程序设计中常见问题,以专题形式进行训练。通过该课程的学习,使学生能深入理解C语言特性,掌握基本程序设计方法,学会常见问题的处理技巧,提高程序设计能力,为后续专业课程的学习打下良好基础。又如“操作系统专题训练”课程重点提高学生对操作系统的实际操作能力,使学生了解和掌握在Windows、Linux操作系统上运行的应用服务,对操作系统与外部接口(shell)有更深入的了解和认识。 

为了能切实提高学生的编程水平和算法设计与分析能力,我们开设了“项目管理实践”、“软件课程设计”、“企业实训”、“学术与工程实践”等实践课程,如“项目管理实践”课程培养学生参与大型软件项目开发的基本能力,使学生能够熟练掌握软件开发环境使用和软件开发的基本方法,为毕业设计和就业提供了必要的技能训练。按照5-8人的规模成立软件开发项目组,以开发一个软件项目作为实训的主线;项目经理由学生担任,项目成员的角色由项目经理根据各成员的技能来确定;由实训方提供项目的用户需求,并且确定要开展的软件工程活动和管理活动及项目里程碑;根据开展的软件工程和管理活动,提取出一些关键知识点,以案例的方式进行项目培训,并将其用于项目开发的实践中,其中案例来自实际开发的软件和系统集成项目。 

2.3 紧跟时代变化,实现多模态教学

首先重视教学内容的时效性,教师在教学过程中,不仅仅着眼于所选用的教材,还应融入前沿思想、技术和一些交叉学科的内容。例如在“编译原理”课程的教学中,不局限于一种语言,而应该选择多种不同体系结构的编程语言进行介绍;又例如可以选择C语言、Ruby、Python,甚至是苹果最新推出的Swift语言,通过比较这些语言的不同特征,给出其在编译过程中的各自特点,从而使学生对编译程序所做的工作有更加清晰透彻的了解。在“数据结构”、“面向对象程序设计”这类课程的教学中,可以多介绍一些国内外的文献、最新应用等,从多种不同角度引导学生程序阅读及编程的兴趣。这就要求教师关注计算机及电子信息产业发展研究的最新内容,并及时将这些新内容融入到教学工作中。 

其次,重视教学方式的时效性,培养学生程序阅读能力、编程能力,其手段要紧跟时代步伐。充分利用互联网时代的MOOC,如北京大学的MOOC、浙江大学的MOOC、本校的MOOC等,将原先只能在电脑上或书本中的程序放在手机上,使学生可以随时随地从手机端进行学习。学生课外可以利用北京航空航天大学实验类MOOC的计算机网络实验课程、移动计算两门课程,通过计算机网络实验课程,了解网络基本原理,远程配路由器、交换机,组一个小的网络,掌握基本的网络故障排查方法。通过移动计算即Android编程,MOOC已经搭好大的框架,教学生编写小的app程序,并将编写好的代码嵌入到框架中。 

通过促进在计算机系本科教学工作中多模态教学模式的实现,可以将原先计算机专业教学以课堂教学为主、课下上机实验为辅,其余全靠学生自觉学习的格局,转化为课堂教学为主导,智能端随时学习为辅,课下上机实验为监督检测的新格局。这样的格局摒弃了过去教学只能在课堂进行的成见,给予学生更多的学习自由,可以有效提高学生的程序设计、算法设计与分析能力,同时节约课堂时间,教师在课堂中能够有更多时间讲解一些更加实用的难以从书本中直接获得的知识。 

2.4 注重对学生学习态度的引导 

在对计算机系学生的调查中发现,后进生大多有“畏难”情绪。他们往往还未开始编程,就对自己的能力进行主观否定,这种特征在调剂生身上表现得较为突出。对于这种情况,教师在课堂上如果只单方面强调知识的重要性,甚至直接点出考试及格的重要性并不会对这类学生思维模式的转变有好处。教师在教学过程中,常常会不自觉地将自己体验过的应试竞争态度带入教学工作中,具体表现为:过于强调考试分数,为了提起学生的听课兴趣甚至以考试题型作为诱饵,经常强调奖学金和保研问题,整个教学工作围绕着考试等。这其实都是不正当的竞争指引方式,只会增强学生的厌学心理。 

因此,计算机专业讲师在教学过程中,应格外注重对学生学习态度的指引,特别是在代码类课程的教学过程中,教师不应根据自己多年的代码编写经验来对代码进行讲解,而是应该想象自己是这种代码的一名新学生,对这类代码一无所知的情况下,可能会从哪里入手进行理解。与其说“这门课挂科了,你毕业就有危险”,不如说“学会写代码,你就可以自由驾驭整台计算机”;与其说“这种数据类型期末考试一定会考”,不如说“你玩的泡泡龙中,屏幕上的泡泡就可以用这种数据类型来写”。在教学中注重引导学生的学习兴趣,激发学生的学习热情和探索精神,真正做到以学生为本,从学生的角度理解教学,才能在教学工作中正确指引学生的学习态度,达到最佳教学效果。 

3 总结 

计算机科学是一门具有创造性意识活动的学科,计算机本质上是一个程序的机器,只有那些真正懂得程序的人才能懂得计算机。因此程序设计能力、算法设计与分析能力是一名合格计算机类专业的毕业生必须具备的两大基础能力。本文给出的具体措施,有效提高了学生的编程能力、算法设计与分析能力,以及分析和解决实际问题的能力,有利于培养经济社会发展急需的信息产业人才。 

第7篇

论文摘要:计算科学主要讲述了一种科学的思想方法,计算科学的基本概念、基本知识它的发展主线、学科分支、还有计算科学的特点、发展规律和趋势。

引言:随着存储程序式通用电子计算机在上世纪40年代的诞生,和计算科学的快速发展以及取得的大量成果。计算科学这一学科也也应运而生。《计算科学导论》 正如此书的名字,此书很好的诠释了计算科学这一学科,并且指导了我们应如何去学好这一学科。使得我们收获颇多。并且让我深深的反思了我的大学生活。正如赵老师书中所讲的:“计算科学是年轻人的科学,一旦你选择了计算科学作为你为之奋斗的专业类领域,就等于你选择了一条布满荆棘的道路。一个有志于从事计算科学研究与开发的学生,必须在大学几年的学习中,打下坚实的基础,才有可能在将来学科的高速发展中,或在计算机产品的开发和快速更新换代中有所作为。

<一>什么是计算科学和它的来历

计算科学主要是对描述和变换信息的算法过程,包括其理论、分析、设计、效率分析、实现和应用的系统研究。全部计算科学的基本问题是,什么能(有效的)自动运行,什么不能(有效的)自动运行。本科学来源于对数理逻辑、计算模型、算法理论、自动计算机器的研究,形成于20世纪30年代的后期。

随着存储程序式通用电子计算机在上世纪40年代的诞生,人类使用自动计算装置代替人的人工计算和手工劳动的梦想成为现实。计算科学的快速发展以也取得大量成果,计算科学这一学科也也应运而生。

<二>计算科学的发展

a、首先先介绍图灵机

图灵机的发明打开了现代计算机的大门和发展之路。图灵机通过一条两端可无限延长的袋子,一个读写头和一组控制读写头的(控制器)组成它有一个状态集和符号集,而此符号集一般只使用0和1两个符号。而就是这个简洁的结构和运行原理隐含了存储程序的原始思想,深刻的揭示了现代通用电子数字计算机的核心内容。现在通用的计算机是电子数字计算机,而电子数字计算机的发展是建立在图灵机的基础之上。他的二进制思想使计算机的制作的简化成只需两个稳定态的元器件。这在今后的计算机制作上无论是二极管或集成电路上都显示了明显的优越性。

b、计算机带动的计算学科

1946年随着现代意义上的电子数字计算机eniac的诞生。掀起了社会快速发展的崭新一页。计算机工作和运行就摆在了人们的面前。

1、计算机语言

我们要用计算机求解一个问题,必须事先编好程序。因此就出现了最早的机器指令和汇编语言。20世纪50年代后,计算机的发展步入了实用化的阶段。然而,在最初的应用中,人们普遍感到使用机器指令编制程序不仅效率低下,而且十分别扭,也不利于交流和软件维护,复杂程序查找错误尤其困难,因此,软件开发急需一种高级的类似于自然语言那样的程序设计语言。1952年,第一个程序设计语言short code出现。两年后,fortran问世。作为一种面向科学计算的高级程序设计语言,fortran的最大功绩在于牢固地树立了高级语言的地位,并使之成为世界通用的程序设计语言。algol60的诞生是计算机语言的研究成为一门科学的标志。该语言的文本中提出了一整套的新概念,如变量的类型说明和作用域规则、过程的递归性及参数传递机制等。而且,它是第一个用严格的语法规则——巴科斯范式(bnf)定义语言文法的高级语言。还有用于支持结构化程序设计的pascal语言,适合于军队各方面应用的大型通用程序设计语言ada,支持并发程序设计的modula-2,支持逻辑程序设计的prolog语言,支持人工智能程序设计的lisp语言,支持面积对象程序变换的smalltalk、c等。

2、计算机系统和软件开发方法

现代意义上的计算机绝不是一个简单的计算机了而也包括了软件(系统软件、应用软件)。各种各样的软件使得计算机的用途大大增强。而软件开发也成为了一个重要课题和发展方向。软件开发的理论基础即是计算模型。随着计算机网络、分布式处理和多媒体的发展。在各种高级程序设计语言中增加并发机构以支持分布式程序设计,在语言中通过扩展绘图子程序以支持计算机图形学程序设计在程序设计语言中已非常的流行。之后,在模数/数模转换等接口技术和数据库技术的支持下,通过扩展高级语言的程序库又实现了多媒体程序设计的构想。进入20世纪90年代之后,并行计算机和分布式大规模异质计算机网络的发展又将并行程序设计语言、并行编译程序、并行操作系统、并行与分布式数据库系统等试行软件的开发的关键技术依然与高级语言和计算模型密切相关,如各种并行、并发程序设计语言,进程代数,petri网等,它们正是软件开发方法和技术的研究中支持不同阶段软件开发的程序设计语言和支持这些软件开发方法和技术的理论基础----计算模型

3、计算机图形学

在计算机的硬件的迅速发展中。随着它的存储容量的增大,也掀起了计算机的巨大改革。计算机图形学、图像处理技术的发展,促使图形化界面的出现。计算机图形学是使用计算机辅助产生图形并对图形进行处理的科学。并由此推动了计算机辅助设计(cad)、计算机辅助教学(cai)、计算机辅助信息处理、计算机辅助测试(cat)等方向的发展。图形化界面的出现,彻底改变了在一个黑色的dos窗口前敲代码输入控制命令的时代。同时也成就了一个伟大的公司microsoft 。

4、计算机网络

随着用户迫切需要实现不同计算机上的软硬件和信息资源共享。网络就在我们的需求中诞生了。网络的发展和信息资源的交换使每台计算都变成了网络计算机。这也促进计算机的发展和广泛应用。

<三>计算机学科的主线及发展方向

围绕着学科基本问题而展开的大量具体研究,形成学科发展的主流方向与学科发展主线和学科自身的知识组织结构。计算学科内容按照基础理论、基本开发技术、应用以及他们与硬件设备联系的紧密程度分成三个层面:

1、计算科学应用层

它包括人工智能应用与系统,信息、管理与决策系统,移动计算,计划可视化,科学计算机等计算机应用的各个方向。

2、计算科学的专业基础层

它是为应用层提供技术和环境的一个层面,包括软件开发方法学,计算机网络与通信技术,程序设计科学,计算机体系结构、电子计算机系统基础。

3、计算科学的基础层

它包括计算科学的数学理论,高等逻辑等内容。其中计算的数学理论涵盖可计算性与计算复杂性理论形式语言与计算机理论等。

<四>计算机的网络的发展及网络安全

(1)计算机网络与病毒

一个现代计算机被定义为包含存储器、处理器、功能部件、互联网络、汇编程序、 编译程序、操作系统、外部设备、通信通道等内容的系统。

通过上面定义,我们发现互联网络也被加入到计算机当中。说明了网络的重要以及普及性。21世纪是信息时代。信息已成为一种重要的战略资。信息科学成为最活跃的领域之一,信息技术改变着人们的生活方式。现在互联网络已经广泛应用于科研、教育、企业生产、与经营管理、信息服务等各个方面。全世界的互联网internet 正在爆炸性的扩大,已经成为覆盖全球的信息基础设施之一。

因为互联网的快速发展与应用,我们各行各业都在使用计算机。信息安全也显得格外重要。而随着计算机网络的发展,计算机网络系统的安全受到严重的挑战,来自计算机病毒和黑客的攻击及其他方面的威胁也越来越大。其中计算机病毒更是很难根治的主要威胁之一。计算机病毒给我们带来的负面影响和损失是刻骨铭心的,譬如1999年爆发的cih病毒以及2003年元月的蠕虫王病毒等都给广大用户带来巨大的损失。

我们想更好的让计算机为我们服务,我们就必须很好的利用它,利用网络。同时我们也应该建立起自己的防护措施,以抵抗外来信息的侵入,保护我们的信息不受攻击和破坏。

( 2 )计算机病毒及它的防范措施:

计算机病毒是一组通过复制自身来感染其它软件的程序。当程序运行时,嵌入的病毒也随之运行并感染其它程序。一些病毒不带有恶意攻击性编码,但更多的病毒携带毒码,一旦被事先设定好的环境激发,即可感染和破坏。

<一>、病毒的入侵方式

1.无线电方式。主要是通过无线电把病毒码发射到对方电子系统中。此方式是计算机病毒注入的最佳方式,同时技术难度也最大。可能的途径有:①直接向对方电子系统的无线电接收器或设备发射,使接收器对其进行处理并把病毒传染到目标机上。②冒充合法无线传输数据。根据得到的或使用标准的无线电传输协议和数据格式,发射病毒码,使之能够混在合法传输信号中,进入接收器,进而进人信息网络。③寻找对方信息系统保护最差的地方进行病毒注放。通过对方未保护的数据链路,将病毒传染到被保护的链路或目标中。

2.“固化”式方法。即把病毒事先存放在硬件(如芯片)和软件中,然后把此硬件和软件直接或间接交付给对方,使病毒直接传染给对方电子系统,在需要时将其激活,达到攻击目的。这种攻击方法十分隐蔽,即使芯片或组件被彻底检查,也很难保证其没有其他特殊功能。目前,我国很多计算机组件依赖进口,困此,很容易受到芯片的攻击。

3.后门攻击方式。后门,是计算机安全系统中的一个小洞,由软件设计师或维护人发明,允许知道其存在的人绕过正常安全防护措施进入系统。攻击后门的形式有许多种,如控制电磁脉冲可将病毒注入目标系统。计算机入侵者就常通过后门进行攻击,如目前普遍使用的windows98,就存在这样的后门。

4.数据控制链侵入方式。随着因特网技术的广泛应用,使计算机病毒通过计算机系统的数据控制链侵入成为可能。使用远程修改技术,可以很容易地改变数据控制链的正常路径。

<二>病毒攻击的防范的对策

1.建立有效的计算机病毒防护体系。有效的计算机病毒防护体系应包括多个防护层。一是访问控制层;二是病毒检测层;三是病毒遏制层;四是病毒清除层;五是系统恢复层;六是应急计划层。上述六层计算机防护体系,须有有效的硬件和软件技术的支持,如安全设计及规范操作。

2.严把收硬件安全关。国家的机密信息系统所用设备和系列产品,应建立自己的生产企业,实现计算机的国产化、系列化;对引进的计算机系统要在进行安全性检查后才能启用,以预防和限制计算机病毒伺机入侵。

3.防止电磁辐射和电磁泄露。采取电磁屏蔽的方法,阻断电磁波辐射,这样,不仅可以达到防止计算机信息泄露的目的,而且可以防止“电磁辐射式”病毒的攻击。

4.加强计算机应急反应分队建设。应成立自动化系统安全支援分队,以解决计算机防御性的有关问题。

很多公司都有因为电脑被入侵而遭受严重经济损失的惨痛经历,不少普通用户也未能避免电脑被破坏的厄运,造成如此大损失的并不一定都是技术高超的入侵者所为,小小的字符串带给我们的损失已经太多。因此,如果你是数据库程序开发人员、如果你是系统级应用程序开发人员、如果你是高级计算机用户、如果你是论坛管理人员......请密切注意有关字符漏洞以及其他各类漏洞的最新消息及其补丁,及时在你的程序中写入防范最新字符漏洞攻击的安全检查代码并为你的系统安装最新的补丁会让你远离字符带来的危险。经常杀毒,注意外来设备在计算机上的使用和计算机对外网的链接。也可以大大有效的避免计算机被攻击。

<五>总结

在学了计算科学导论之后,让我更深入的了解了我将来要从事的学科。计算科学导论指导着我们该怎么学习计算机。让我更清楚的知道我们信息安全专业的方向。正如计算科学这座大楼一样,在不断的成长。信息安全也必将随着网络的进一步发展而更多的被人们重视。总之学习了这门课之后让我受益匪浅,也知道自己应该好好努力,争取在自己的专业领域上有所成就。

参考文献:

1、《计算科学导论》(第三版),赵志琢著 ,科学出版社2004版

2、《计算机病毒分析与对抗》 傅建明 彭国军 张焕国编著武汉大学出版社2004版

第8篇

Abstract: At present, computer science has been concerned and become an independent academic field, which is not separated from the promotion of mathematics theory. As an important link between mathematics and computer, program plays a dual role in mathematics development and computer application. In this paper, the relation of mathematical theory in computer science was discussed.

关键词: 计算机;数学;关系

Key words: computer;mathematics;relation

中图分类号:TP31 文献标识码:A 文章编号:1006-4311(2013)09-0220-02

0 引言

随着计算机现代智能的高速发展,计算机已经完全融入我们的生活,甚至占据了重要领域,从国家核心科技到每个人生活的小细节,都离不开计算机的覆盖和使用。我们简单的在键盘上操作几个键,打出一系列符号命令,就能使计算机按照人类的要求,高速运行和进展,从而达到人力所不能达到的速度和正确率。

我们从小学习数学,数学是什么呢?数学是利用符号语言研究数量、结构、变化以及空间模型等概念的一门学科。数学,作为人类思维的表达形式,反映了人们积极进取的意志、缜密周详的逻辑推理及对完美境界的追求。数学更多的是一种抽象的概念,是一门重要的工具学科。人类利用抽象的概念及一些固定的定律形成理论,而脱离实际应用的概念并不是人类发展学习的初衷,而是利用它们来指导实际,化抽象为实体。而计算机就由此演化。1946年2月15日界上的第一台计算机诞生在宾西法尼亚大学,主要运用于高倍数的数学运算。时至今日,计算机直接能识别的语言仍然是1、0二进制代码。

1 计算机中所需要的数学理论

计算机学科最初是来源于数学学科和电子学学科,计算机硬件制造的基础是电子科学和技术,计算机系统设计、算法设计的基础是数学,所以数学和电子学知识是计算机学科重要的基础知识。计算机学科在基本的定义、公理、定理和证明技巧等很多方面都要依赖数学知识和数学方法。计算机数学基础是计算机应用技术专业必修并且首先要学习的一门课程。它大概可分类为:

1.1 高等数学 高等数学主要包含函数与极限、导数与微分、微分中值定理与导数的应用、不定积分、定积分及应用、空间解析几何与向量代数、多元函数微分法及其应用、重积分、曲线积分与曲面积分、无穷级数、微分方程等。各种微积分的运算正是计算机运算的基础。

1.2 线性代数 线性代数主要包含行列式、矩阵、线性方程组、向量空间与线性变换、特征值与特征向量、二次型等。在计算机广泛应用的今天,计算机图形学、计算机辅助设计、密码学、虚拟现实等技术无不以线性代数为其理论和算法基础的一部分。

1.3 概率论与数理统计 概率统计与数理统计包含随机事件与概率、随机变量的分布和数学特征、随机向量、抽样分布、统计估计、假设检验、回归分析等。概率论与数理统计是研究随机现象客观规律并付诸应用的数学学科,通过学习概率论与数理统计,使我们掌握概率论与数理统计的基本概念和基本理论,初步学会处理随机现象的基本思想和方法,培养解决实际问题的能力。这些都是计算机编程过程中不可或缺的基础理论知识和技能。

2 计算机编程中数学理论的应用

计算机的主要专业知识包括计算机组成原理、操作系统、计算机网络、高级语言程序设计、数据结构、编译原理、数据库原理、软件工程等。计算机程序设计主要包括如:C语言、C++、JAVA、编译语言、汇编语言等编程语言的基本概念、顺序结构程序设计、分支结构程序设计、循环结构设计、函数、指针、数组、结构、联合以及枚举类型、编译预处理、位运算、文件等内容,掌握利用各种编程语言进行程序设计的基本方法,以及编程技巧。算法是编程的核心,算法的运用离不开数学,数学运算正是编程的基础。

计算机科学是对计算机体系,软件和应用进行探索性、理论性研究的技术科学。由于计算机与数学有其特殊的关系,故计算机科学一直在不断地从数学的概念、方法和理论中吸取营养;反过来,计算机科学的发展也为数学研究提供新的问题、领域、方法和工具。近年来不少人讨论过数学与计算机科学的关系问题,都强调其间的密切联系。同时,人们也都承认,计算机科学仍有其自己的特性,它并非数学的一个分支,而有自身的独立性。正确说法应该是:由于计算机及程序的特殊性,计算机科学是与数学有特殊关系的一门新兴的技术科学。这种特殊关系使得计算机科学与数学之间有一公共的交界领域,它范围相当广,内容相当丰富,很富有生命力。这一领域既是理论计算机科学的一部分,也是应用数学的一部分。

2.1 计算理论是关于计算和计算机械的数学理论。主要内容包括:

①算法:解题过程的精确描述。②算法学:系统的研究算法的设计,分析与验证的学科。③计算复杂性理论:用数学方法研究各类问题的计算复杂性学科。④可计算性理论:研究计算的一般性质的数学理论。⑤自动机理论:以研究离散数字系统的功能和结构以及两者之关系为主要内容的数学理论。⑥形式语言理论:用数学方法研究自然语言和人工语言的语法理论。

2.2 计算几何学是研究几何外形信息的计算机表示,分析和综合的新兴边缘学科,它是计算机辅助几何设计的数学基础。主要内容如:贝塞尔曲线和曲面、B样条曲线和曲面、孔斯曲面。

2.3 并行计算问题是 “同时执行”多个计算问题。他的延伸学科有:并行编译程序、并行程序设计语言、并行处理系统、并行数据库、并行算法。

2.4 形式化方法是建立在严格数学基础上的软件开发方法。软件开发的全过程中,从需求分析,规约,设计,编程,系统集成,测试,文档生成,直至维护各个阶段,凡是采用严格的数学语言,具有精确的数学语义的方法,都称为形式化方法。

2.5 程序设计语言理论是研究书写计算机程序语言的学科。主要内容如:研究语法、语义、语用以及程序设计语言的优劣。

2.6 数据库原理与技术,这方面用到的重要数学基础主要包括:集合论,二元关系及其推理(尤其是研究关系数据库),研究数据分布与数据库结构又涉及相当多的图论知识。

计算机科学的发展有赖于硬件技术和软件技术的综合。在设计硬件的时候应当充分融入软件的设计思想,才能使硬件在程序的指挥下发挥极致的性能。在软件设计的时候也要充分考虑硬件的特点,才能冲破软件效率的瓶颈。达到硬件和软件设计的统一,严格的说这并不轻松,一般的程序设计者很难将这样的思想贯穿在其程序设计当中。各个方面都显示,计算机原本只是数学的一个实践分支,然后随着这半个世纪计算机科学的广泛应用和高速发展,计算机的发展势头甚至超过了数学的理论研究,甚至有了计算机的发展带动数学的向前推进。然而计算机与数学相辅相成的关系毋庸置疑,也无法脱离。数学的发展仍然是计算机的基础,计算机把数学更好的运用到军工民等各各领域,从而达到双赢的好局面。数学理论以及数学思维方式在现代计算机科技中的应用举足轻重,无论是计算机工作原理的设计还是计算机系统与软件的不断完善都与数学家的贡献密不可分。没有数学作为基础,就不会有现代的计算机技术。建立在数学原理之上的计算机技术又反过来促进了数学科学本身的发展,数学也得到了更多的应用。

参考文献:

[1]张景云.现代信息技术与数学课程的整合[J].农村・农业・农民(A版),2010,(11).

[2]尹琛.信息技术与英语教学有效整合研究[J].软件导刊, 2005,(11).

[3]林玉娟.信息技术与中学数学课程的整合[J].山东教育学院学报,2006,(05).

第9篇

中图分类号:G424.1 文献标识码:A

Improving the Experiment Equality on the C Programming

by Group Teaching in the Network Environment

ZHU Juan

(Information Science and Technology, Jiujiang UniversityJiujiang, Jiangxi 332005)

AbstractGroup teaching method is an important method that used widely in the practical classes. And it is important to reform the teaching model, and to improve the teaching quality. In this paper, the method of group teaching is introduced to the experiment of C programing class. By developing the group strategy, the students complete the experiment tasks by team working. The result proves that the method of group teaching is valuable in the C programing class.

Key wordsgroup teaching; teaching mode; teaching feedback

0 引言

C程序设计课程受众非常广泛,普通地方高等院校几乎都有开设,对计算机专业的学生而言,这是程序设计的入门课,也是专业核心课;对非计算机专业学生而言,这是通过计算机等级考试的核心科目,是必选通识课。

随着计算机理论教学的逐步深入,C程序设计课程的教学模式也几经改革,取得了很大的进步,但是,还存在着一些问题:C程序的教学往往过于强调语法的讲授,对如何分析和解决问题讲得不够透彻,没有把编程思路放在主体地位上;过于注重课堂讲授,对学生编程能力和程序调试能力的训练不够,忽视学生实际动手能力的培养。C程序作为一门程序设计类课程,实践能力是其重要的环节,虽然大多数高校都安排了实验上机环节,但是将近一百人的课堂,只有一个教师进行指导,这样的实际情况下,教师对学生实际操作的指导是远远不够的。因此,往往在一个学期结束之后,仍然有不少同学甚至不能进行简单的程序调试。

针对以上现状,本文试图构建分组实验的教学模式,提高C程序课程实验教学的质量,提高学生编程能力。

1 分组实验教学的概念

分组实验教学是根据实验课程及现有学生特点进行分组,使之以组为单位来完成实验任务,以提高实验教学效果,促进学生动手能力的提高。

2 分组教学的准备

2.1 分组实验设施的配置

C程序设计课程的实验教学一般都分配有专业的实验室,人均一台电脑,安装有专业的实验软件,一般为Turbo C2.0或Visual C++6.0,学生以自己的电脑为单位独立完成实验任务。本文拟提出的分组实验教学模式,在原有的实验设施的配置之上,还需要配置有网络连接,通过网络实现分组讨论。

2.2 小组的划分

在以往的类似分组实验教学活动中,对学生的分组一般是按学号顺序进行分组,这样的分组会导致学生学习能力在各小组分配不均匀,可能会出现有的小组实验能力特别强而另外小组实验能力非常弱的情形。因此,本文拟提出以学生上一学期的期末成绩作为分组的依据,每五人一组,使得成绩好和成绩较差的学生在各组基本平均分配。

2.3 小组组长的指定

每个小组指定一名组长,组长在小组里很大程度上起到教师的作用,不仅自己完成实验任务,还要负责组织小组成员的讨论安排以及,帮组解决小组成员程序调试中出现的问题。所以,一般指定小组内成绩最好的同学为小组组长。

3 分组教学的实施

3.1 实验任务的布置

利用QQ群功能,以班级为单位构建一个班级群,然后各小组成员构建自己的小组群,便于实验任务的布置以及群之间的讨论。教师在班级群将实验任务出去,实验任务包括指定实验名称、实验内容、调试计划等,各小组的实验任务可以相同也可以不同。

3.2 分组实验教学的实施

算法讨论。由于C程序设计是一门程序设计类课程,实验内容主要以编写程序代码为主,而编程的核心是算法的分析与设计。以往很多同学无论是计算机专业还是其他非计算机专业的学生拿到程序题目就开始编写代码,没有算法设计这一环节,因此对于程序调试过程中的逻辑问题无(下转第40页)(上接第38页)法解决。所以,算法设计纳入本实验环节,小组长组织本小组成员在QQ小组群里首先对算法的思路进行讨论,确定行之有效的算法,甚至为了强化大家对于算法概念的掌握,可以要求一个题目用多个算法来实现。

代码编写。通过算法讨论,并确定算法的正确性之后,各小组成员分别独立完成自己程序代码的编写。

程序调试。程序调试时C程序设计实验课程的重要环节。再有经验的程序设计者也不可能将所有程序一次性编写成功,调试――修改――调试,这是程序设计必经的环节。而限制学生C程序实验课程教学效果提高的重要因素就是学生程序调试能力太差。学生往往缺乏程序调试的意识,成绩好的同学遇到问题问老师,成绩不好的同学遇到问题干脆放弃,长此以往,很多同学上机的兴趣就遗失了。本文拟通过分组的形式,遇到问题,小组讨论,众人拾柴火焰高,在小组长领导之下,对于简单问题,成员之间共同解决。对于实在解决不了的,由小组长发给教师,在教师的指导下解决。这样的解决方式,一方面锻炼了学生调试程序的能力,另一方面自己的问题自己内部解决也激发了学生的成就感启发了其继续学习下去的兴趣。

实验报告的编写。以往的实验报告按人头上交,每个学生每次实验课均提交一次实验报告,大部分同学的实验报告均照抄程序代码,敷衍了事。实验报告是对一次实验过程的总结,包括算法的设计,程序的调试等,认真的总结也是一次学习的过程。在本论文中,拟每个小组只需以小组为单位提交一份实验报告。这种形式,一方面避免学生将大部分精力投入抄写实验报告中,另一方面,通过小组长督促本小组成员对本次实验认真总结,除了算法的设计之外,更重要的是调试程序的经验。

4 分组实验教学的反馈与调整

笔者在所授课班级通过实施分组实验教学,班级学生实验动手能力整体比较高,国家计算机等级考试过级率也高出同类班级。

同时,对班级不同小组成绩进行横向比较,发现实验内容难易程度、小组长的沟通和组织能力以及小组成员的学习积极性是影响教学效果的重要因素。因此,需要在教学实践中不断加以关注和调整,发挥有利因素,抑制不利因素,使得分组实验教学模式在C程序设计课程教学中发挥更加重要的作用。

5 小结

将分组式教学模式引入C程序设计课程教学,就课程改革而言具有重要意义,实践证明通过分组式教学,学生的C程序设计理论知识得到了很好的巩固,编程动手能力得到了很大的提高,同时对学生的学习积极性也起到了很好的激励作用。

参考文献

第10篇

【论文摘要】 目前高职计算机应用专业教学计划的安排中普遍存在的问题是程序设计类课程比例偏大,科目数量偏多,单科学时数量不足,最终导致教学效果不佳。本文对此现象及其原因进行深入分析,并且给出了切实可行的建议,对高职计算机应用专业中设置程序设计类课程,具有一定的借鉴意义。 

1  目前高职计算机应用专业中程序设计类课程设置存在的问题

目前高职计算机应用专业教学计划的安排中比较普遍的问题是程序设计类课程比例偏大,科目数量偏多,单科学时数量不足。以某学校的教学计划为例,在全部 15门专业必修课程中共有8门课程是程序设计类课程,其中还不包括数据结构和软件工程等程序设计指导的课程,其涉及到的具体数据如下图 1:

从中看到程序设计类课程在专业必修课中所占的比例高达 50%左右,学生需要掌握的编程设计语言有 c,c++,vb,java,vc++和 oo(面向对象);还有一些学校教学计划安排中同样要求学生掌握 c,c++,vb,java和 delphi。但是,最终的结果并不理想。 

由于程序设计科目数量偏多,单科学时数量不足,所以这种教学模式只注重表层知识的灌输,而忽视学生知识的内化过程,忽略了学生的主体探究,就使课程的学习变得枯燥无味,课程学完后,学生除了学到一些呆板的语句外,其编程水平和分析、解决实际问题的能力没有得到应有的提高。学校的培养目标和培养方式与企业的需求出现了严重的脱节,培养出来的学生在今后工作中很难适应企业的实际岗位需求。 

2 原因分析及解决方案 

笔者认为产生问题的根源是教学计划安排的问题。高职教学不是职业培训班,不是说在大学中学习的程序设计语言越多就越能胜任未来的工作。随着计算机技术的快速发展,新程序设计平台出现的时候是不是还需要我们的学生重新回到学校学习呢?答案当然是否定的,所以这种教学计划的安排模式不益提倡;另一方面是程序设计类课程讲授的问题,目前大部分的讲法是“一言堂”,以语言语法作为讲授重点,而考核的重点(特别是标准化考试)也多以学生背诵语言概念点和语法规则为核心,导致的结果是学生花很大的精力学习语法,即使学生在考试中获取了高分,但还是不知道怎样通过编程去解决实际问题。 

笔者提出从两个方面来解决这个问题。首先针对教学计划安排的问题,可以安排一门程序设计语言(推荐为 c++),加大讲课和上机的学时数,通过这门课程系统详细的学习,透彻的讲解和学生充足的上机操作练习将使学生最后对程序设计的方法、面向对象的思路和编程解决问题的角度,甚至于编程的技巧、风格和习惯都具备很好的功底,而其他高级语言,例如 java,vb,vc++,delphi,pb,net等,可以采取指定选修课的方式。为了解决随之产生的师资力量不足的问题,可以采取跨学院开设指定选修课的方式,当然这需要各个学校之间协商行之有效的操作办法,互相承认学分。 

其次,针对程序设计类课程讲授的问题,一方面,在授课的过程中以程序设计为主线,每章讲述大量的例题。例题不是为了解释语言概念,而是从构造算法出发,着重讲解算法逻辑,以训练学生的实际编程能力为目标。为了开阔学生思路,可以对同一个例题给出不同算法的解决方案;另一方面,在上机和实训的过程中,加大学生动手能力的培养,让学生自己发现身边的问题,使用编程工具 自己解决;最后就是实习环节。通过与国内某知名公司人力资源管理人员交流发现,实习单位不乐意接受实习学生,对方建议学校请公司的技术总监作为学校的客座教授,以选修或讲座的形式把工作一线的经验、新技术的发展动态传授给学生,以弥补理论教学和实践应用相互脱钩现状以及实习的缺陷。 

3 实践效果 

(1)改进教学内容和方法,提高学生自主学习能力。程序设计教材基本上是以一系列语句为基础来讲解语句、语法等知识。例如,c++语言教材首先介绍了 c语言的一般概念,再介绍语句、函数、类和对象等面向对象程序设计的概念及其描述。尽管这些教材可以将一门高级语言的基本概念、语句系统等阐述得比较全面、准确,但是对学生能力的培养和研究型学习的促进起不了多大作用。因此,在程序设计课程的教学中我们补充讲解“如何进行编程”“如何提高编程能力”等内容;在课堂上增加算法设计的分析和讨论,强调算法设计的优化和程序的优化;通过典型案例教学,引导学生从生活中、社会上选择实用课题进行自主研究学习,并在学习过程中主动地运用所学知识来分析问题、解决问题。 

(2)加强算法设计的思维方法的指导。算法是程序设计的基础,在具体讲解某一实例时应把重点放在分析方法和分析过程上,引导学生自主简洁地描述解题的数学模型和算法。实践证明,指导学生讨论,通过发散思维来扩展和提高学生的编程能力在教学中充分利用线索引导学生探索,举一反三,触类旁通;鼓励他们大胆对传统算法推陈出新,对学生的开拓精神和发散思维能力的培养效果十分明显。 

(3)加强了程序设计能力的培养。程序设计贯穿计算机学科教学的全过程,程序设计能力是计算机学科学生应具备的第一能力。在教学中应加强学生程序设计能力的培养,循序渐进地引导学生建立程序设计颇具特色的符号抽象和归纳推理的思维过程。在这一过程中,充分调动学生学习的兴趣及主动性,学生主动地进行思考、分析,从而提高了分析问题,解决问题的能力。 

(4)增加课程设计环节,加强系统统筹能力的培养。在程序设计课程教学的最后安排课程设计,让学生用相对较长的时间,应用所学的程序设计知识完成一个比较复杂的课题。在这一环节中,采用先进的程序设计理论指导课题设计,使学生通过课程设计学会运用面向对象的理论来分析系统,掌握面向对象的程序设计方法和算法设计方法。同时,注重程序书写风格的训练、上机调试与测试程序能力的培养,使学生的抽象思维能力、逻辑思维能力和实践能力在实践中得到进一步的提高,也增强了学生的系统统筹能力。 

[参考文献] 

[1]高林,鲍洁等.人才培养模式的改革与创新[j].计算机教育,2004,(1). 

[2]徐福缘.实践与探索:快速 实现由专科向应用技术型本科院校的转变[j].教育发展研究,2003,(8). 

[3]余组光.我国高等职业教育院校发展模式探讨[j].中国职业技术教育,2003,(5). 

第11篇

《Visual Basic程序设计》课程是中职计算机专业的主要课程之一,几乎所有的南京市中职学校的计算机专业均开设了此课程。然而,通过调查发现,实际教学中普遍存在教师认为难教,学生认为难学的现象。很多学生反映,看编程书如看“天书”,有些学生只上了几节课就惧怕编程,甚至直接放弃。原因主要有:

1.教材内容偏难、偏旧,与岗位脱节;2.教学方法单调、呆板,教学形式单一;3.职校生源素质的日趋下滑。然而,培养能够适应软件蓝领等工作需要的中等技术人员是中职计算机专业教育的主要目标之一。针对目前教学与生产实际相脱节的现状,寻找一种有效的、适合中职程序设计的课程设计模式,以帮助中职学生将所学习的程序设计理论知识转化为软件开发所需要的技能和能力是当务之急的一项工作。

一、中职《Visual Basic程序设计》课程的课程目标分析

1.总目标

本课程的设计总体目标是:以就业为向导,以能力为本位,以职业实践为主线,以项目课程为主体,以计算机二级资格考试为考核依据,使学生了解程序设计在本专业的应用、发展及其趋势,培养学生的科研素质。主要培养学生理解程序设计的基本概念,建立起程序设计的基本思路,提高学生的理论知识水平。其中包括算法的概念、程序设计中的基本技巧和一些常用算法;能够阅读、理解源程序和设计解题流程的能力;了解结构化程序设计和面向对象程序设计的思想,能编制出风格良好的程序;最后达到使用VB建立一个小型的应用系统的目的。

2.具体目标

(1)职业技能目标。通过本课程的学习,使学生在程序设计和应用软件的开发两个方面都得到锻炼,具有用VB开发Windows环境下应用程序的能力的要求。

(2)职业知识目标。①使学生掌握面向对象程序设计的基本思想。可视化编程是最直观的编程方法,程序人员只需绘制界面,VB自动产生界面代码,就可以完成许多步骤。这样大大地提高了程序设计的效率。封装、继承、多态是面向对象程序的主要特征。正是这些特征使程序安全、可靠、可重用、易维护,成为当今新兴的计算机技术,有力地促进了多媒体应用技术的发展。②使学生理解程序设计的基本概念。学生应具有较为熟练地使用顺序、选择、循环三种基本结构编程序的能力,建立起程序设计的基本思路,提高学生的理论知识水平。主要包括算法的概念、程序设计中的基本技巧和一些常用算法;能够阅读、理解源程序和设计解题流程的能力;了解结构化程序设计和面向对象程序设计的思想,能编制出风格良好的程序;最后达到使用VB建立一个小型的应用系统的目的。③使学生具有程序调试和出错处理的能力。源程序的输入到计算机运行很难一次成功,总会出现这样那样的错误。学生要掌握相关的程序调试方法,如输出中间变量、设置断点、分步执行方法等,对出错程序进行分析和处理。

(3)职业道德情感目标

学习VB主要是学习编程的思想方法,只要学会VB,以后学习其它编程语言就会很容易掌握,所以重中之重就是培养学生认真细致的学习态度以及强烈的责任心和良好的敬业精神。

二、中职《Visual Basic程序设计》课程的模块划分

通过市场调查和访谈,企业需要的计算机蓝领人才应具备计算机软件编程与应用的基础理论、基本技能,精通程序设计语言,了解软件项目的开发流程,能够从事计算机软件初级编码或开发、软件调试和软件测试及技术服务与软件销售等能力的应用型技术人才。

中职《Visual Basic程序设计》课程的项目化设计,更适合目前中职学生的学习能力和实际情况。教师利用现有条件,借助人工创造,设计一个特定的、仿真实的工作项目和工作情境,并将学习者引入其中,在教师的指导下,通过学习者自身的体验与实践操作,将理论知识运用到实践中,从而让学习者在学习过程中不知不觉地把所学习的理论知识转化为实际工作所需要的技能和能力。为此,我在进行项目化设计时,对原来的教学单元进行了重新设计。本课程划分的模块如表1:

第12篇

关键词:程序设计语言 算法 编程能力

中图分类号:G642.0 文献标识码:A 文章编号:1672-3791(2014)03(a)-0192-02

程序设计是高校本科生的一门重要基础课,计算机专业和非计算机专业都开设了这门课程,例如:《C程序设计》《Pascal》等高级语言程序设计,其目的是培养学生学会使用计算机语言编写适合自己专业特色的应用程序。这些课程与后续专业课程都有紧密的联系。例如:C语言程序设计课程不但是计算机学科的必修课程,而且更是《数据结构》《算法设计与分析》等其专业核心课程的先修课程。程序设计的水平在很大程度上决定了学生专业基础知识是否扎实,并直接影响到后续课程的学习和专业兴趣的培养。

程序设计语言可以培养学生运用算法来解决实际问题的能力,这种解决问题的方式是计算机所独有的。学生通过程序设计课程,可以掌握程序设计的基本方法并逐步形成正确的程序设计思想,能够熟练地使用某种程序语言进行程序设计并具备一定调试程序的能力,从而为后续课程打下坚实的基础,同时也为工程技术人员用计算机解决实际问题提供了方法。

1 程序设计课程教学中的问题

1.1 学生缺乏学习热情

程序设计语言课程的学习需要较强的逻辑思维能力和一定的数学、英语基础,因此一些基础较差的学生会显得力不从心,更有大部分学生在学习的过程中会感到枯燥、乏味,加上教师教学方法的单一,更使得一些学生对缺乏学习的热情,甚至对程序设计产生恐惧感。这种学习状态下,学生不可能很好地掌握程序设计的基本方法,当然也就谈不上学习效果了。

1.2 忽视实践课

计算机语言教学通常先讲概念,讲语法,讲例子,然后上机做练习,教学死板不利于将知识转化为能力。教师在理论课上常常是唱“独角戏”,学生被动地学习,缺乏主动思维。而上机实验课许多学生只对书本上现有的一些实例进行编辑调试。这种教学方法使得学生缺乏解决实际问题能力。

2 教学方法探讨

为了提高教学效果,我们提出了一下几点建议。

2.1 兴趣教学

学生在学习程序设计语言之前,大多存在对计算机语言的认识误区,刚开始的时候知道这是一门计算机软件的关键课程,还有部分学生以为学习了C语言等课程就可以设计开发整个企业的软件,可以开发游戏软件,甚至还可以像黑客一样随意侵入他人的电脑,因而兴致勃勃,然而在学习的过程中,接触了大量难以理解和抽象的新概念、新名词、新术语、新规则的介绍,枯燥乏味的例题分析后,逐渐失去学习的兴趣。语法的单调枯燥容易使学生陷入到冗繁的语法规则之中。还有大部分学生在学习程序设计语言时觉得学习程序设计语言很枯燥,上机只会照着书本上的例子进行验证,这样的上机操作仅仅只是对书本上现成的程序例子做简单的验证,而程序设计这门课程的精彩之处恰恰是要求学生开发思维,进行有创造性的学习,验证性的上机操作极大地限制了学生的思维,于是很多学生对独立编写程序常常感到无从下手,也有部分学生眼高手低,别人编写的程序能够看懂,但是自己却不能编写程序,这样更使学生丧失了对程序设计语言的兴趣。传统的教学模式长时间使用会使学生的思维惰性化,不利于学生对知识的巩固和深化。通过培养学生学习的兴趣,可以使学生改变对程序语言的认识――从神秘到认为通过努力可以掌握,从索然无味到充满兴趣,从而完成学生心理从外部驱动到内在自愿。因此,要想教好程序设计语言课,在加大教学与研究力度的同时,还要先给学生进行兴趣教育。

在方法上,可以采用自然语言的思维建构程序设计语言的基础知识,例如,在C语言变量的教学中,要学生理解变量的实质是“被命名的存储单元”。可以将变量比喻成一个容器,这些“容器”依据其中的内容不同而不同。在讲解交换两个变量的值时,先让学生写出程序语句,但是学生很容易造成A=B;B=A的错误,这时可以举一个生活中的例子:一杯牛奶,一杯水果珍,如何互换?问题一提出,学生马上得出结论:引入第三杯子(变量),C=A;A=B;B=C,这样两个变量的值顺利互换。

例如:在C语言的教学中,C语言的关键字一般是英文单词或其缩写形式。例如:整型变量的关键字是int,可以向学生介绍int是英文单词integer(整数)的缩写,这样学生也就自然而然掌握了int这个关键字,并能够用int定义C语言的一个整型内存变量。如果按照这样的方法,首先将某种程序设计语言关键字的功能讲授清楚,再提示相应的英文单词,学生便将自然语言与程序设计语言的词汇表之间建立某种对应关系,这样有助于理解,也有助于记忆,进而在学习伊始就揭开了程序设计语言的神秘面纱,并建立起学习程序设计语言的兴趣。

2.2 自信心培养

学习了编程语言的语法,并不代表能开发良好的应用程序,正如学好了汉字,并不代表能写出好的文章。这就要求学生在学习编程语言的同时,需要加强编程练习。开始练习写程序、调试程序时,学生很容易犯各种低级错误,这也是他们的信心最容易受挫的时候,如何正确地引导他们从失败的困境中走出来是非常关键的。

在教学方法上,可以采用错例教学法来提高学生的自信心。

一般情况下,在课堂教学中,教学大纲要求把正确的知识传授给学生。为了加强学生对知识的理解,以及针对学生一错再错的问题,我们可以利用相应错例,如设计一段程序,在该程序中故意设计语法错误、语句错误、算法错误及在调试出现的错误,然后组织学生分组讨论,找出程序出错的位置和错误的原因,这样可以使错误率下降,还可以激发学生的求知欲,更好掌握学习内容。

2.3 算法为中心

程序设计不是仅仅要求学生学习语法规则,而是引导学生如何针对问题找出解题方法,这个结题方法就是算法。从某种意义上说,用算法解决问题的能力甚至比数值计算的能力更为重要。程序语言的传统教学以是以语法为主线,而不是以算法语法为主线,不论实验课还是理论课,教学多数是强调语法语句练习。学生从掌握程序设计语言到真正实现程序,是从量变到质变的一个飞跃。在解决问题的过程中,算法是最重要的。只有树立这样的教学目的,才不会让学生陷入程序设计语言学习的误区,避免他们学习了程序设计语言,仍然解决不了实际的问题;目前的程序设计语言课程教学方法中,大多不能突出“算法为中心”,从而使得程序设计语言课程偏离教学重点。因此,在培养和形成学生的综合程序设计能力时,必须注重算法分析,突出算法设计,强化算法注释,点拨算法疑难。

在教学方法上,可以采用算法归类的方法来进行程序设计教学。

在程序设计中,某些算法是存在共性的,对于这类问题,教师应在授课过程中引导学生有意识的进行归类,以及对问题进行延伸,达到举一反三的效果。如累加、累乘,以及之类的问题都是重复进行某种基本操作,不同的是参加运算的数和操作方式。解决这类问题只要根据问题本身找到相应的变量以及其相应的运算规律就可以了。

2.4 编程能力的培养

学生只有掌握了算法和程序设计方法的技能,才会很好的进行学习迁移。在教学中,我们可以依照精讲多练的方式来进行讲授内容,根据相应章节的知识点多举例子,让学生读程序模拟运行的结果、多做习题等方法来逐步培养学生算法和程序设计的能力。

实践教学活动的设计思想是以分层次培养为基础,以掌握课堂教学内容为目标,系统设计实践教学内容。采用实践教学与传统的课堂教学相结合的方式,可以增强授课教师与学生的互动。以讲解程序为主线,使学生能真正学到好的编程思想、编程习惯、编程算法和程序组织方法。这样做,一方面可以加深学生对所讲课程的理解;另一方面激发学生的学习兴趣、学习积极性,活跃课堂气氛。

采取以“案例”驱动的方法组织教学,让程序设计始终贯穿于整个教学过程之中。

在实践教学中采用课堂实践、实验课、课程设计、科技活动小组的多层次教学模式。课堂上在讲授例题和习题;实验课学生自己动手完成布置的实验题,在传统程序设计教学的教学大纲上减少基础型、验证型实验,增加设计型、综合型、创新型实验项目的比例,并采用独立编制设计型和综合设计型实验指导书;课程设计以3人的小组方式进行,使用较大型的程序让学生深刻体会程序开发的全过程,让学生设计具有一定难度的小型系统,在实验报告中提供系统分析、数据模型、系统流程和程序的完整内容,以此促进学生全面掌握本课程的内容,并初步体验软件工程方法,并培养学生的团队精神。为了防止学生互相抄袭,在学生提交大作业时,可以通过当面提问、解释代码含义等方法;科技活动小组由学生自愿组成,参与教师的科研项目或由教师指导选题,在传统的实践教学体系之外,增设创新实践学分学生可以通过科技竞赛以及各类创新活动计划,培养学生的初级科研能力和创新能力。

2.5 编程习惯的培养

在现代软件工程中,培养学生良好的程序设计风格也是一个很重要的目标。编程习惯需要从初学程序设计语言就开始培养。教师在实验教学中,应该强调和贯彻专业的编程规范,通过这种方式,不仅可以减少程序设计中错误,更重要的是帮助学生树立良好的程序设计风格,培养学生的技术素养,为今后的软件工程实践项目打下坚实的基础。

3 结语

程序设计语言是高校素质教育的一个重要组成部分,对培养学生的综合能力起着重要的作用,探索程序设计课程教学方法,提高教学质量是计算机教育的工作者必须重视的问题,也是一个值得探讨的课题。教师应在自己的教学实践中认真观察、积极反思,将任务的设计原则与实际教学内容、教学对象相结合,设计出有效、实用的任务,从而帮助学生真正提高其程序设计语言运用能力,进而培养出对国家有用的人才。

参考文献

[1] 谭浩强.C语言程序设计[M].2版.北京:清华大学出版社,2003.

[2] 于清,吐尔根・依布拉音,阿里甫・库尔班.算法为先的C语言教学模式探讨[J].计算机教育,2009(20):96,106-108.

[3] 方红萍,陈和平.C语言课程改革与实践[J].电气电子学报,2007,27(5):11-13.