程序设计毕业论文 第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曾强调指出,程序设计有静态、动态两个方面,程序本身的静态文本主要是指逻辑表达式:性质仅用逻辑方法分析的语法结构。运行程序的动态过程是上述静态文本语义的一部分。
自动程序设计
1950年,Turing的朋友Strachey使用计算机将高层“数学”描述转换成低层“机器语言”指令。他希望程序员能以更自然和符台人们习惯的方式思考和编写程序。可是,Turing本人对此想法井无兴趣,他早在1947年就指出,这不过是一件简单的事情。事实上,Turing非常精于机器语言,他能用机器码和32进位、低位在前的非正常表达直接并且方便地进行思考。
50年代后期,随着解释器、编译器技术的发展及FORTRAN、LISP、ALGOL的推出,程序员被从琐碎的工作中解放出来。
逻辑与程序设计语言
抽象逻辑程序设计
逻辑程序设计语言是逻辑学与计算机科学结合的典型代表。在回答“逻辑程序设计是什么”之前,先给出“逻辑是什么”的回答。因为逻辑程序设计的公理化概念依赖于逻辑自身的公理化概念。逻辑的研究通常有两条主要途径:
(1)模型论方法――在模型和句子之间建立满足关系。
(2)证明论方法――句子集之间的衍推关系。
这两种方法本身均不足以对逻辑程序设计进行公理化。
证明论方法可追溯到1959年.“关于元数学的基本概念”中的“推导关系”及 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不可证,则或者机器回答“失败”,或者机器永不停止,因此,下面三者等价:机器中的计算、逻辑中的演绎和标准模型中的可满足。
逻辑程序设计语言
20世纪50年代后期,John McCarthy等人直接使用符号逻辑作为IBM704机的程序。他们的系统LISP是实用逻辑程序设计语言的第一个重要例子。LISP本质上是Church的λ一演算。λ一演算讨论简单递归数据类型(有序偶对)、条件表达式以及用于列举一系列连续行为的强制“序列构造”。在70年代初,Robert Rowalski和Alain Colmerauer给出了PROLOG。PROLOG基于谓词演算的Horn子句归结。Horn子句归结涉及目标、子句、控制流、深度优先、回溯等概念以及几个强制式命令(如“cut”)。采用巧妙的技术,漂亮而且有效地实现了PROLOG。逻辑程序设计语言LISP和PROLOG的主要优点为:灵活、易书写、易修改,LISP和PROLOG通常被视为两种逻辑程序设计(函数程序设计和关系程序设计)的典范。抽象描述演绎程序设计的一般思想是将计算视为从表达式到一范式的归约,在抽象LISP中,主要指对适用于过程函数调用、条件表达式、序偶数据结构操作等归约规则的持续应用.在抽象PROLOG中,主要指β归约规则的持续应用。这些规则包括:分配“合取”、删除存在量词,化简表达式。将这两种形式合并可得统一的逻辑系统,其中含有两种程序设计的特点。目前,J. A. Robinson等人基于此思想给出了一新语言SUPER,它可用来解释归约逻辑如何在超大规模并行计算机上自然地实现。
LISP、PROLOG等语言表明了逻辑系统对计算机的应用,逻辑程序设计近乎于一种适当形式的知识阐述,在其中,从公理可导出用户询问的答案。在这种意义下,此类程序设计是连接一般计算到特殊AI系统的桥梁。Robert Kowalski等式“算法=逻辑十控制”概述了同时注重程序的描述、强制两方面的重要性。
5 结论(Conclusion)
综上所述,通过对逻辑与计算、计算机的起源、程序设计之间的相互关系的基本梳理和研究,可以充分说明计算机科学是逻辑的超大规模应用。
参考文献(References)
[1] 陆钟万.面向计算机科学的数理逻辑[M].北京:北京大学出版
社,_.
[2] 王元元.计算机科学中的逻辑学[M].北京:科学出版社,_.
[3] 王兵山,张强,李舟军.数理逻辑[M].北京:国防科技大学出版
社,1993.
程序设计毕业论文 第2篇
【关键词】计算思维 C语言程序设计 教学改革
引言
C语言一直在等级考试和实际应用中占有不可或缺的地位,逐渐也成为国内各高校工科专业广泛使用的教学课程。它作为一种优秀的结构化程序设计语言,其功能丰富、表达能力强、使用灵活方便、应用面广、目标程序效率高、可移植性好、既具有高级语言的优点,又具有低级语言能够直接操作底层硬件的特点,既适于编写系统软件,又能方便地用来编写应用软件。
一、计算思维的含义
2006年3月,美国卡内基・梅隆大学计算机科学系主任周以真教授在美国计算机权威期刊上提出:计算思维是运用计算机科学的基础概念进行问题求解、系统设计以及人类行为理解等涵盖计算机科学之广度的一系列思维活动。所以,在这里的“计算思维”不是狭义的计算机编程,而是运用计算机基本概念去求解问题、设计系统和理解人类行为。
二、C语言程序设计课程的现状
《C语言程序设计课程》作为高校理工类非计算机专业本科学生的一门的计算机基础课程,重要性不言而喻。C语言课程更是数据结构、C+面向对象程序设计、操作系统和软件工程等课程的基础,并可为这些课程提供实践工具。但是,一般而言,C语言程序设计所涉及的课程内容较为抽象,而大量的概念及语法更使得这门课程乏味无趣,降低学生的学习兴趣。并且,即便学习了这门课程,很多学生在处理问题时,仍不能利用C语言进行思维、表达,仍未建立起程序设计的计算思维模式,不会运用计算机基本概念去求解问题。
(一)无意识计算思维教学
传统教学模式的教学方式是:用大量的时间讲定义、语法、概念、语句,对学生的要求是注重接受、理解、记忆,讲课方式是老师讲、学生听。学生掌握的只是比较抽象、机械、静止、片面和孤立,他们不知道如何灵活地综合运用这些知识去解决实际问题,缺乏计算思维的培养。
(二)教学形式陈旧忽视整体思维培养
程序设计毕业论文 第3篇
关键词:程序设计语言 算法 编程能力
程序设计是高校本科生的一门重要基础课,计算机专业和非计算机专业都开设了这门课程,例如:《C程序设计》《Pascal》等高级语言程序设计,其目的是培养学生学会使用计算机语言编写适合自己专业特色的应用程序。这些课程与后续专业课程都有紧密的联系。例如:C语言程序设计课程不但是计算机学科的必修课程,而且更是《数据结构》《算法设计与分析》等其专业核心课程的先修课程。程序设计的水平在很大程度上决定了学生专业基础知识是否扎实,并直接影响到后续课程的学习和专业兴趣的培养。
程序设计语言可以培养学生运用算法来解决实际问题的能力,这种解决问题的方式是计算机所独有的。学生通过程序设计课程,可以掌握程序设计的基本方法并逐步形成正确的程序设计思想,能够熟练地使用某种程序语言进行程序设计并具备一定调试程序的能力,从而为后续课程打下坚实的基础,同时也为工程技术人员用计算机解决实际问题提供了方法。
1 程序设计课程教学中的问题
学生缺乏学习热情
程序设计语言课程的学习需要较强的逻辑思维能力和一定的数学、英语基础,因此一些基础较差的学生会显得力不从心,更有大部分学生在学习的过程中会感到枯燥、乏味,加上教师教学方法的单一,更使得一些学生对缺乏学习的热情,甚至对程序设计产生恐惧感。这种学习状态下,学生不可能很好地掌握程序设计的基本方法,当然也就谈不上学习效果了。
忽视实践课
2 教学方法探讨
为了提高教学效果,我们提出了一下几点建议。
兴趣教学
学生在学习程序设计语言之前,大多存在对计算机语言的认识误区,刚开始的时候知道这是一门计算机软件的关键课程,还有部分学生以为学习了C语言等课程就可以设计开发整个企业的软件,可以开发游戏软件,甚至还可以像黑客一样随意侵入他人的电脑,因而兴致勃勃,然而在学习的过程中,接触了大量难以理解和抽象的新概念、新名词、新术语、新规则的介绍,枯燥乏味的例题分析后,逐渐失去学习的兴趣。语法的单调枯燥容易使学生陷入到冗繁的语法规则之中。还有大部分学生在学习程序设计语言时觉得学习程序设计语言很枯燥,上机只会照着书本上的例子进行验证,这样的上机操作仅仅只是对书本上现成的程序例子做简单的验证,而程序设计这门课程的精彩之处恰恰是要求学生开发思维,进行有创造性的学习,验证性的上机操作极大地限制了学生的思维,于是很多学生对独立编写程序常常感到无从下手,也有部分学生眼高手低,别人编写的程序能够看懂,但是自己却不能编写程序,这样更使学生丧失了对程序设计语言的兴趣。传统的教学模式长时间使用会使学生的思维惰性化,不利于学生对知识的巩固和深化。通过培养学生学习的兴趣,可以使学生改变对程序语言的认识――从神秘到认为通过努力可以掌握,从索然无味到充满兴趣,从而完成学生心理从外部驱动到内在自愿。因此,要想教好程序设计语言课,在加大教学与研究力度的同时,还要先给学生进行兴趣教育。
在方法上,可以采用自然语言的思维建构程序设计语言的基础知识,例如,在C语言变量的教学中,要学生理解变量的实质是“被命名的存储单元”。可以将变量比喻成一个容器,这些“容器”依据其中的内容不同而不同。在讲解交换两个变量的值时,先让学生写出程序语句,但是学生很容易造成A=B;B=A的错误,这时可以举一个生活中的例子:一杯牛奶,一杯水果珍,如何互换?问题一提出,学生马上得出结论:引入第三杯子(变量),C=A;A=B;B=C,这样两个变量的值顺利互换。
例如:在C语言的教学中,C语言的关键字一般是英文单词或其缩写形式。例如:整型变量的关键字是int,可以向学生介绍int是英文单词integer(整数)的缩写,这样学生也就自然而然掌握了int这个关键字,并能够用int定义C语言的一个整型内存变量。如果按照这样的方法,首先将某种程序设计语言关键字的功能讲授清楚,再提示相应的英文单词,学生便将自然语言与程序设计语言的词汇表之间建立某种对应关系,这样有助于理解,也有助于记忆,进而在学习伊始就揭开了程序设计语言的神秘面纱,并建立起学习程序设计语言的兴趣。
自信心培养
学习了编程语言的语法,并不代表能开发良好的应用程序,正如学好了汉字,并不代表能写出好的文章。这就要求学生在学习编程语言的同时,需要加强编程练习。开始练习写程序、调试程序时,学生很容易犯各种低级错误,这也是他们的信心最容易受挫的时候,如何正确地引导他们从失败的困境中走出来是非常关键的。
在教学方法上,可以采用错例教学法来提高学生的自信心。
一般情况下,在课堂教学中,教学大纲要求把正确的知识传授给学生。为了加强学生对知识的理解,以及针对学生一错再错的问题,我们可以利用相应错例,如设计一段程序,在该程序中故意设计语法错误、语句错误、算法错误及在调试出现的错误,然后组织学生分组讨论,找出程序出错的位置和错误的原因,这样可以使错误率下降,还可以激发学生的求知欲,更好掌握学习内容。
算法为中心
程序设计不是仅仅要求学生学习语法规则,而是引导学生如何针对问题找出解题方法,这个结题方法就是算法。从某种意义上说,用算法解决问题的能力甚至比数值计算的能力更为重要。程序语言的传统教学以是以语法为主线,而不是以算法语法为主线,不论实验课还是理论课,教学多数是强调语法语句练习。学生从掌握程序设计语言到真正实现程序,是从量变到质变的一个飞跃。在解决问题的过程中,算法是最重要的。只有树立这样的教学目的,才不会让学生陷入程序设计语言学习的误区,避免他们学习了程序设计语言,仍然解决不了实际的问题;目前的程序设计语言课程教学方法中,大多不能突出“算法为中心”,从而使得程序设计语言课程偏离教学重点。因此,在培养和形成学生的综合程序设计能力时,必须注重算法分析,突出算法设计,强化算法注释,点拨算法疑难。
在教学方法上,可以采用算法归类的方法来进行程序设计教学。
在程序设计中,某些算法是存在共性的,对于这类问题,教师应在授课过程中引导学生有意识的进行归类,以及对问题进行延伸,达到举一反三的效果。如累加、累乘,以及之类的问题都是重复进行某种基本操作,不同的是参加运算的数和操作方式。解决这类问题只要根据问题本身找到相应的变量以及其相应的运算规律就可以了。
编程能力的培养
学生只有掌握了算法和程序设计方法的技能,才会很好的进行学习迁移。在教学中,我们可以依照精讲多练的方式来进行讲授内容,根据相应章节的知识点多举例子,让学生读程序模拟运行的结果、多做习题等方法来逐步培养学生算法和程序设计的能力。
实践教学活动的设计思想是以分层次培养为基础,以掌握课堂教学内容为目标,系统设计实践教学内容。采用实践教学与传统的课堂教学相结合的方式,可以增强授课教师与学生的互动。以讲解程序为主线,使学生能真正学到好的编程思想、编程习惯、编程算法和程序组织方法。这样做,一方面可以加深学生对所讲课程的理解;另一方面激发学生的学习兴趣、学习积极性,活跃课堂气氛。
采取以“案例”驱动的方法组织教学,让程序设计始终贯穿于整个教学过程之中。
在实践教学中采用课堂实践、实验课、课程设计、科技活动小组的多层次教学模式。课堂上在讲授例题和习题;实验课学生自己动手完成布置的实验题,在传统程序设计教学的教学大纲上减少基础型、验证型实验,增加设计型、综合型、创新型实验项目的比例,并采用独立编制设计型和综合设计型实验指导书;课程设计以3人的小组方式进行,使用较大型的程序让学生深刻体会程序开发的全过程,让学生设计具有一定难度的小型系统,在实验报告中提供系统分析、数据模型、系统流程和程序的完整内容,以此促进学生全面掌握本课程的内容,并初步体验软件工程方法,并培养学生的团队精神。为了防止学生互相抄袭,在学生提交大作业时,可以通过当面提问、解释代码含义等方法;科技活动小组由学生自愿组成,参与教师的科研项目或由教师指导选题,在传统的实践教学体系之外,增设创新实践学分学生可以通过科技竞赛以及各类创新活动计划,培养学生的初级科研能力和创新能力。
编程习惯的培养
在现代软件工程中,培养学生良好的程序设计风格也是一个很重要的目标。编程习惯需要从初学程序设计语言就开始培养。教师在实验教学中,应该强调和贯彻专业的编程规范,通过这种方式,不仅可以减少程序设计中错误,更重要的是帮助学生树立良好的程序设计风格,培养学生的技术素养,为今后的软件工程实践项目打下坚实的基础。
3 结语
程序设计毕业论文 第4篇
关键词:数学地质,数值分析,C语言程序设计,教学方法
数学地质解决地质问题的一般步骤或途径如下:第一,进行地质分析,定义地质问题和地质变量,建立正确的地质模型;第二,根据地质模型选择或研究适当的数学模型;第三,运用数值分析理论对数学模型进行求解;第四,运用C语言设计计算机程序,并上机试算;第五,对计算机输出成果进行地质成因解释,对所研究的地质问题作出定量的预测、评价和解答。为了很好地解决地质问题,需要同时学好《数学地质》、《数值分析》和《C语言程序设计》三门课程。本文将对《数学地质》、《数值分析》和《C语言程序设计》三门课程的教学内容和方法进行研究,并介绍瓦斯危险性预测数学地质软件的开发。
1数学地质的教学内容及方法
数学地质(mathematicalgeology)是六十年代以来迅速形成的一门边缘学科。它是地质学与数学及电于计算机相结合的产物,目的是从量的方面研究和解决地质科学问题。它的出现反映地质学从定性的描述阶段向着定量研究发展的新趋势,为地质学开辟了新的发展途径。数学地质方法的应用范围是极其广泛的,几乎渗透到地质学的各个领域。
数学地质的教学内容
数学地质的研究对象包括地质作用、地质产物和地质工作方法。通过建立数学模型查明地质运动的数量规律性。这种数量规律性具体表现为地质体的数学特征、地质现象的统计规律以及地质勘探工作中存在的概率法则。其内容可概括为以下3个方面:①查明地质体数学特征,建立地质产物的数学模型。例如矿体数学特征是指矿体厚度、品位等标志变化的数量规律性。按其属性可划分为矿体几何特征、空间特征、统计特征和结构特征等4类。比如,尽管矿产有多种多样,但矿石有用组分品位的统计分布却服从正态分布、对数正态分布等有限的几种分布律。从它们的分布特征可以分析判断其成因特点,而且各类数学特征还具有不同的勘探效应。②研究地质作用中的各种因素及其相互关系,建立地质过程的数学模型。如盆地沉积过程的数学模型,地层剖面的计算机模拟,岩浆结晶过程的马尔柯夫链分析等。③研究适合地质任务和地质数据特点的数学分析方法,建立地质工作方法的数学模型。论文写作,C语言程序设计。例如,对于地质分类问题,可根据研究对象的多种定量指标,建立聚类分析或判别分析的数学模型,对所研究的地质对象进行分类或判别。又如针对大量的描述性的地质资料,通常可将其转化为0~1变量,建立各种二态变量的多元分析模型(逻辑信息模型、特征分析模型、数量化理论模型等),以解决地质成因分析和成矿远景预测等各类地质问题。论文写作,C语言程序设计。
数学地质的教学方法
数学地质的教学方法可概括为:①数学模型法。应用最广泛的是各种多元统计模型。例如用于地质成因研究的因子分析、对应分析、非线性映射分析、典型相关分析;用于研究地质空间变化趋势的趋势面分析和时间序列分析方法等。②概率法则和定量准则。由于地质对象是在广阔的空间、漫长的时间和复杂的介质环境中形成发展和演变的,因此地质现象在很大程度上受概率法则支配,且具有特定的数量规律性,这就要求数学地质研究必须遵循和自觉运用概率法则和定量准则。同时,地质观测结果不可避免地带有抽样代表性误差,因此对各种观测结果或研究结论都要做出可靠概率的估计和精度评价。以矿产定量预测为例,不仅要求确定成矿远景区的空间位置,而且应给出可能发现矿床的个数及规模,发现矿床的概率,查明找矿统计标志的信息量、找矿概率及有利成矿的数值区间等。
数学地质的主要研究手段是电子计算机技术,其中包括:①地质过程的计算机模拟,该项技术可以弥补物理模型法和实验地质学法的不足;②建立地质数据库和地质专家系统,以便充分发掘和利用信息资源和专家经验;③计算机地质制图;④地质多元统计计算及其他科学计算。
2数值分析的教学内容及方法
数值分析(numericalanalysis)是研究分析用计算机求解数学计算问题的数值计算方法及其理论的学科,是数学的一个分支,它以数字计算机求解数学问题的理论和方法为研究对象。为计算数学的主体部分。
数值分析的教学内容
运用数值分析解决问题的过程:实际问题→数学模型→数值计算方法→程序设计→上机计算求出结果。数值分析的教学内容包括插值法,函数逼近,曲线拟和,数值积分,数值微分,解线性方程组的直接方法,解线性方程组的迭代法,非线性方程求根,常微分方程的数值解法。论文写作,C语言程序设计。
数值分析具有如下特点:第一,面向计算机。第二,有可靠的理论分析。第三,要有好的计算复杂性。论文写作,C语言程序设计。第四,要有数值实验。第五,要对算法进行误差分析。
数值分析的教学方法
根据数值分析的特点,教学时首先要注意掌握方法的基本原理和思想,要注意方法处理的技巧及其与计算机的结合,要重视误差分析、收敛性及稳定性的基本理论;其次,要通过例子,学习使用各种数值方法解决实际计算问题;最后,为了掌握数值分析的内容,还应做一定数量的理论分析与计算练习,由于数值分析内容包括了微积分、代数、常微分方程的数值方法,学生必须掌握好这几门课的基本内容才能学好这一课程。
3C语言程序设计的教学内容及方法
C语言是一种计算机程序设计语言。论文写作,C语言程序设计。它既有高级语言的特点,又具有汇编语言的特点。它可以作为系统设计语言,编写工作系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。因此,它的应用范围广泛。
C语言程序设计的教学内容
C语言程序设计主要有两方面教学内容:一是学习和掌握C语言的基本规则;二是掌握程序设计的方法和编程技巧。“规则”和“方法”即语言和算法,是本课程的两条主线,二者不可偏废其一。从一定意义上说,“方法”更重要,因为它是程序的灵魂。一旦掌握,有助于学生更快、更好地学习和使用其他的程序设计语言。
C语言程序设计的教学方法
C语言程序设计是一门实践性很强的课程,对C语言初学者而言,除了要学习、熟记C语言的一些语法规则外,更重要的是多读程序、多动手编写程序。学习程序设计的一般规律是:先模仿,然后在模仿的基础上改进,在改进的基础上提高。做到善于思考,勤于练习,边学边练,举一反三,学会“小题大做”,一题多解,这样,才能成为一个优秀的C程序员。
4瓦斯危险性预测数学地质软件的开发
瓦斯危险性预测包括瓦斯含量预测、瓦斯涌出量预测和瓦斯突出预测。在利用数学地质技术进行瓦斯危险性预测时,需要进行大量的计算工作,一般要求用计算机完成其数学建模和未采区预测工作。随着计算机软硬件和可视化技术的发展,编制高速、高效、准确、灵活、用户界面友善的数学地质预测软件,是瓦斯地质研究向定量化发展的需要。论文写作,C语言程序设计。
数学地质模型的建立
瓦斯含量预测和瓦斯涌出量预测采用回归分析建立数学模型,即通过规定因变量和自变量来确定变量之间的因果关系,建立回归模型,并根据实测数据来求解模型的各个参数,然后评价回归模型是否能够很好的拟合实测数据;如果能够很好的拟合,则可以根据自变量作进一步预测。
瓦斯突出预测采用判别分析建立数学模型,即按照一定的判别准则,建立一个或多个判别函数,用研究对象的大量资料确定判别函数中的待定系数,并计算判别指标。据此即可确定某一样本属于何类。
数学模型的求解
对建立的数学模型,采用迭代法对线性方程组进行求解,即利用计算机运算速度快、适合做重复性操作的特点,让计算机对一组指令(或一定步骤)进行重复执行,在每次执行这组指令(或这些步骤)时,都从变量的原值推出它的一个新值。
数学地质软件的开发
采用C语言编写计算机程序,开发数学地质软件。瓦斯危险性预测软件的操作较为简便,功能较为齐全。在软件主界面菜单栏的菜单项下面,可分别进入瓦斯含量预测,瓦斯涌出量预测、瓦斯突出预测的对话框模块。在对话框里分别输入变量数据和数据文件,运行数据文件,按下详细资料或判别结果按钮,可以查看运算结果。按下预测未知单元按钮可进入预测对话框。
5结论
1)对数学地质、数值分析、C语言程序设计教学内容及方法的研究为解决地质问题提供了便利途径。
2)瓦斯危险性数学地质软件的开发较好地运用了数学地质、数值分析、C语言程序设计的理论和方法,为数学地质、数值分析、C语言程序设计的教学提供了应用实例。
参考文献:
[1]韩金炎.数学地质[M].北京:煤炭工业出版社,.
[2]姚传义.数值分析[M].北京:中国轻工业出版社,.
[3]贾宗璞,许合利.C语言程序设计[M].徐州:中国矿业大学出版社,.
程序设计毕业论文 第5篇
关键词:就业;计算机;程序设计;教学
1 引言
伴随着社会和企业信息化的快速发展,社会对程序设计人才的需求量不断增长。面对这种就业形势,各级教育部门也加大了计算机程序设计[1]人才的培养力度,包括高职院校,由于高职院校在我国教育结构中所处的地位,使得其对计算机人才培养有一定特殊性。高职院校必须认清自己的教育使命,只有了解自身的教育状况和社会对人才的需求特征,才能科学地设计出计算机程序设计人才的培养模式。
2 软件行业就业需求与培养目标
当前软件行业的就业形势总体还是需求大于供应,随着社会和企业信息化的快速发展,软件行业人才缺口很大,由于计算机程序设计人才培养模式的落后,使得软件行业的人才结构呈现“两头小,中间大”的现象,即从事软件行业初级技术人才(软件蓝领)和高级技术水平(软件金领)的人才数量小,大部分人才都处于中等水平。根据这种就业市场的现状,作为高等职业院校,我们应该主要集中软件领域初级人才的培养,加强中级人才的训练,同时兼顾高级人才的开发。
要满足企业对程序设计人才的要求,我们应该提出有特色的培养目标。要对学生有精准的定位,尤其是专业技能水平的定位,要以培养初级水平软件人才为主要目标,加强校企联合,以实现学生专业对口就业,在实现专业理论知识教学的同时,加大学生实践能力的培养。实践教学是能实现这一培养目标的良好模式,实践教学的总体规划就是在教学中要重视实践的地位,使理论教学与实践教学相互渗透,同时加强教师对学生的实践指导,不断地提高实践教学的质量、方法[3]。
3 程序设计人才培养模式的重构
目前,我国高职院校计算机专业课程设计严重和社会实际需求脱节,主要表现在以下几方面:缺乏循序渐进地教学规划,将计算机类课程粗略地向学生讲授,甚至出现在学生快毕业时,还要教学理论课程;没有根据当今社会对计算机程序设计人才的具体需求安排课程教学,学生应对工作岗位的能力培养严重不足,如有的学校现在还教授早已被淘汰的FoxPro;学生缺乏实践操作能力,不能快速地融入实际工作中去。因此,实践教学和先进课程的安排也就显得尤为重要。在传统的高职教育中,针对计算机程序设计人才的培养,主要是讲授课本知识,然后是实习,在课本学习的过程中,缺乏实践的训练,而在实习过程中,也大多是流于形式,学生并不能在所实习的企业中获得较多的实践。因此[3]高职院校的教材应根据社会需求做出相应调整;加强课后上机实验和课程设计以弥补学生实践能力的不足。
在实际教学中所面对的学生的层次是不同的,因此我们只有从实践出发,让学生明白课程学习的目的和意义,同时让他们产生学习的兴趣,带动他们的积极性,只有这样才能够有效达到人才培养的目的,为此我重构出以下培养模式,如图1所示。
从图1中可以看出计算机专业培养模式体系结构从纵向看主要由两部分组成,即课程内容和课程安排。从横向看主要由三部分组成,左边是理论课程,包括前沿的技术原理和最新的概念、技术名词,中间是上机实验,主要安排课后习题的上机操作,如数据库系统安装,算法编程实现等,右边是项目实践,主要是较为完整的程序设计和系统开发。通过这样的课程安排,就可以使得学生通过循序渐进地学习方式提高自身的理论水平和实践能力。
该培养模式的核心思想就是在加强理论知识培养的同时,注重学生课后的练习,尤其是上机实验,计算机教材一般都有课后实践习题,让学生在课后通过实践操作进一步加深对理论知识的理解和认识,理论和实践相辅相成。同时教师也可以根据自己的经验,为学生布置一些趣味性的程序设计题,从而进一步带动学生的学习热情。在学期末,可以针对课程的特征布置一个较大的课题,比如软件工程课程,可以就某一特定的领域问题,为学生布置软件设计的课题,其中包含需求分析、概念设计和UML建模等,使学生对软件工程有一个整体而直观的认识。同时可以对学生们的作品做一个评选,选出优秀的作品加以点评,在增进学生荣誉感的同时,也为他们提供了知识共享的机会。
在具体的教学过程中,教师应该要善于采用启发式教学方法,加强课堂讨论,与学生进行互动,在解疑答惑的过程中,了解学生的学习进度和对知识的理解程度,要启发和引导学生独立思考问题和解决问题的能力,培养他们积极思维的良好习惯。充分调动学生学习的自觉性和积极性,从而提高他们分析问题和解决问题的能力。高职院校的课程要根据企业的实际需求来进行科学地设置,要加强校企联系,只有通过从企业获取到最新的人才需求的特点,才能设计出满足社会需求的计算机程序设计高职教育模式。
4 实践教学对程序设计人才培养的重要性
高职院校应该充分认识到实践教学对程序设计人才培养的重要性。实践教学被安排到了高职计算机专业课程设计中,是社会发展对教育影响的必然结果。实践教学除了针对专业课程的练习题和上机实验之外,还应该安排针对整个课程的课程设计和针对专业培养的项目实践两大部分,课程设计主要安排在学期末,主要是训练学生对某专业课程的综合应用能力,而项目实践则可以安排在学生毕业前,项目实践是根据实际案例进行特别设计的,使学生对软件工程有一个整体认识,对就业中的工作模式有所了解。理论和实践相辅相成,通过这种模式培养出的毕业生将更能满足企业的需求。
5 结束语
本文在传统理论教学模式上引入项目实践,加强了实践教学力度,突出项目实践是使毕业生快速满足企业要求主要方法,通过对课程的科学调整和加强学生的实践能力的培养,从而设计出新的以就业需求为导向的计算机专业程序设计人才的培养模式。
参考文献:
[1]许丽.高校人才培养方案研究综述[J].新课程研究:高等教育,2009(06):19.
[2]卢晓娟.高等学校计算机科学与技术专业实践教学体系与规范[M].北京大学出版社,
程序设计毕业论文 第6篇
计算机科学与技术本科生的基本学科能力可以归纳为计算思维能力、算法设计与分析能力、程序设计论文与实现能力、系统能力[1]。其中计算思维能力是指模型化、抽象思维能力、逻辑思维能力。系统能力是指计算机系统的认知、分析、开发与应用能力,也就是要站在系统的观点上去分析和解决问题,追求问题的系统求解,而不是被局部的实现所困扰。算法设计与分析能力、程序设计能力是计算机类专业学生应该具备的基本能力之一,是从抽象思维到具体应用方法的转换,涉及到阅读判断、思考分析、抽象综合、表达创造等多项能力,对计算机专业高素质人才的培养不可或缺。
从目前社会对计算机专业人才的需求来看,高校在培养学生的程序设计、算法设计与分析能力上所作出的努力还远远不够。本文探讨了计算机专业学生在程序设计、算法设计与分析方面存在的主要问题,给出了在课程与实践中提高学生的程序设计、算法设计与分析能力的具体措施。
1 现状与问题分析
近年来,企事业用人单位较普遍的反映是计算机类毕业生的实际应用知识、动手能力和程序设计开发经验严重不足,尤其是程序设计能力、算法设计与分析能力无法达到用人单位的要求。这不仅影响学生就业,更阻碍了其进一步发展与自我提升。
我们归纳了问题的主要原因。一是学生对于有关程序设计及算法的知识仅仅停留在了解的程度上,未能融汇贯通,进而应用这些知识解决实际问题。二是教师在讲解程序设计、算法设计与分析的相关知识时,并没有将理论与实际有机的结合。三是实际教学过程中并未对学生进行真正的软件项目开发训练。四是对第一门程序设计课程的教学不够重视。五是学生的数学基础差、逻辑思维能力弱,阻碍了学生进一步设计算法和分析算法。
2 程序设计、算法设计与分析能力培养的具体措施
教育教学工作应该以学生为主体,同时充分发挥教师的引领、指导作用,二者有机结合,才能充分调动学生的学习积极性和主动性,从而达到最佳的教学效果。因此本文以“学生为主体,教师为主导”这一思想为指导,结合本校的实际情况,以及教师在教育教学工作过程中遇到的问题和广大学生的反馈,从以下四个方面探讨教育教学改革的措施。
调整课程设置和教学目标
用计算机求解一个实际问题,首先要从这个实际问题中抽象出一个数学模型,然后设计一个解此数学模型的算法,最后根据算法编写程序,以便调试、编译、连接和运行,从而形成该问题的解。从实际问题中抽象出一个数学模型的实质,其实就是要用数学方法抽取其主要的、本质的内容,最终实现对该问题的正确认识。设计出解决问题的算法后,要清楚地知道算法的优劣处,如果是好的算法则不必对其怀疑而再浪费时间进行研究;如果不是好算法则应再进行改进。而如何知道算法的优劣,则需要学会分析算法。算法分析是对一个算法需要多少计算时间和存储空间作定量的分析。编程就是设计程序,用计算机来解决问题。
与数据结构和算法设计相关的课程较多,其中三分之二以上的专业课都需要学习编程,主要是提高学生编程能力和算法分析能力。对于本科生来说,这些课程的重要性是不言而喻的。如果掌握不好则会阻碍他们对编程能力乃至对计算机系统的认识和理解。因此,应该从课程的意义出发,以提高学生的编程能力和算法设计与分析能力为目标,结合计算机专业的特点与教学实际情况,将“C语言程序设计”、“面向对象程序设计”、“离散数学”、“数据结构”、“算法设计与分析”、“网络编程”、“Windows编程技术”、“操作系统”、“计算机网络”、“编译原理”和“数据库技术”等几门课程有机地结合起来,并充分利用它们内在的联系优化授课的顺序与内容,为学生提供一套以编程能力和算法设计与分析能力为中心的教学体系,为学好相应的课程打下坚实基础[2]。
“C语言程序设计”和“离散数学”作为计算机专业学生较早接触的两门课程,应该为后续专业课的学习打好基础。C语言是学生在大学接触的第一门编程语言,教学中应该重点介绍程序设计思想,并培养学生的逻辑思维能力、抽象能力、编程习惯,而不是一味地强调C语言的语法特性。同时,“C语言程序设计”这门课也为后续的数据结构、算法设计与分析课程做好实践上的铺垫。“离散数学”的概念、理论及方法应用于计算机科学与技术的诸多领域,并大量出现在“数据结构”、“数据库系统”、“编译原理”、“算法设计与分析”、“计算机网络”等专业课程中。此外,离散数学所提供的训练十分有益于学生的逻辑推理、抽象概括及归纳构造能力的提高,十分有益于培养学生严谨、完善、规范的科学态度。
通过“数据结构”课程,使学生了解数据对象的特性,学会数据组织的方法,以及各种类型数据的处理方法,同时培养学生良好的程序设计技能。“算法设计与分析”课程重点讲授分治法、贪心法、动态规划、回溯法、分支限界法,培养学生分析问题和解决问题的能力,使学生掌握算法设计的基本方法,熟悉算法分析的基本技术,并能熟练运用一些常用算法。“操作系统”、“计算机网络”、“编译原理”和“数据库技术”都是对前面学习到的一些基本的数据结构和算法的具体应用,再加上一些相关领域的专业知识。
在“操作系统”教学中,让学生了解操作系统的一些基本概念,如:进程和线程、虚拟内存、死锁等,并按操作系统的五大功能分模块进行介绍。通过相应实验帮助学生理解重要概念,如通过实现“银行家算法”让学生明白进程间的通信过程、模拟LRU算法了解页面如何置换,通过实验使学生更加深刻地理解有关概念[3]。对于“编译原理”这门课,由于其理论性较强,在教学过程中应该尽量多与实验相结合,在课堂上比较难理解的内容,例如词法分析中的有限自动机内容或语法分析中LL(1)文法的理解等等,都可以通过与实验结合来促进对课堂内容的理解,可通过完成词法分析器的实验了解编译器如何把输入的源程序转化为单词符号串。
加强实验性课程教学
计算机专业相关的课程总体来说理论性比较强[4-5],开设实验性课程有利于学生通过自己的实际操作加深对课堂知识的理解,同时强化编程能力、算法设计能力和创新能力。许多课程都有上机编程实验内容,如“C语言程序设计”、“面向对象程序设计”、“数据结构”、“算法设计与分析”、“Java程序设计”、“操作系统”等课程,都要求学生完成一定数量的设计性,完成验证性实验。我们设立了工程与学术实践、计算机软件课程设计、独立实验课程以及毕业设计等实训科目,坚持编程实践四年不间断。
实验贯穿于理论、抽象和设计过程;实验对软件的设计和实现、测试原理和方法起示范作用;实验不仅是对理论的验证,也是技术训练和能力培养,包括动手能力、分析问题解决问题能力、表达能力、写作能力等。教学活动是教师和学生不断交流的过程,实验是实现这个过程的桥梁,可以弥补课堂教学的不足,加深对理论过程的理解,启发学生深入思考,敢于创新,理论联系实际。
例如“编译原理”课程是计算机类专业的一门重要专业课。设置该课程是让学生学习编译系统的结构、工作流程及编译程序各组成部分的设计原理和实现技术,使学生通过学习既掌握编译理论和方法基本知识,也具有设计、实现、分析和维护编译程序等方面的初步能力。编译原理是一门理论性和实践性都比较强的课程。实验的目的是加深学生对课堂知识的理解,掌握几个主要编译阶段的处理方法,增强实践能力,能完成初步设计、编制和调试编译系统。
实验一词法分析器构造,通过对给定源语言词法分析程序的设计,加深对词法分析原理的理解,掌握源语言的接受、存贮、预处理和扫描分析,生成正确的单词符号串二元式序列。实验二语法分析器构造,借助于词法分析程序提供的分析结果,编写一个算符优先语法分析程序,程序能进行语法结构分析和错误检查并产生相应的归约信息。同时给出出错信息和错误类型,从而加深对语法分析的理解。进一步设计实现球类描述语言词法分析、语法分析实验(扩展实验),根据球类比赛技战术分析的需求,设计的解释器由词法器、语法器和语义分析模块三部分组成,词法分析器负责词法分析的预处理和输入单词的解释;语法分析负责输入码的语法结构检查和解释;在词法和语法分析器基础上,语义分析模块负责比赛技战术的分类与统计工作。
本校开设了“程序设计专题训练”、“计算机网络专题训练”、“操作系统专题训练”、“数据库专题训练”、“软件测试技术”、“嵌入式技术”等实践课程。如“程序设计专题训练”课程是C程序设计课程后续的训练课程,针对程序设计中常见问题,以专题形式进行训练。通过该课程的学习,使学生能深入理解C语言特性,掌握基本程序设计方法,学会常见问题的处理技巧,提高程序设计能力,为后续专业课程的学习打下良好基础。又如“操作系统专题训练”课程重点提高学生对操作系统的实际操作能力,使学生了解和掌握在Windows、Linux操作系统上运行的应用服务,对操作系统与外部接口(shell)有更深入的了解和认识。
为了能切实提高学生的编程水平和算法设计与分析能力,我们开设了“项目管理实践”、“软件课程设计”、“企业实训”、“学术与工程实践”等实践课程,如“项目管理实践”课程培养学生参与大型软件项目开发的基本能力,使学生能够熟练掌握软件开发环境使用和软件开发的基本方法,为毕业设计和就业提供了必要的技能训练。按照5-8人的规模成立软件开发项目组,以开发一个软件项目作为实训的主线;项目经理由学生担任,项目成员的角色由项目经理根据各成员的技能来确定;由实训方提供项目的用户需求,并且确定要开展的软件工程活动和管理活动及项目里程碑;根据开展的软件工程和管理活动,提取出一些关键知识点,以案例的方式进行项目培训,并将其用于项目开发的实践中,其中案例来自实际开发的软件和系统集成项目。
紧跟时代变化,实现多模态教学
首先重视教学内容的时效性,教师在教学过程中,不仅仅着眼于所选用的教材,还应融入前沿思想、技术和一些交叉学科的内容。例如在“编译原理”课程的教学中,不局限于一种语言,而应该选择多种不同体系结构的编程语言进行介绍;又例如可以选择C语言、Ruby、Python,甚至是苹果最新推出的Swift语言,通过比较这些语言的不同特征,给出其在编译过程中的各自特点,从而使学生对编译程序所做的工作有更加清晰透彻的了解。在“数据结构”、“面向对象程序设计”这类课程的教学中,可以多介绍一些国内外的文献、最新应用等,从多种不同角度引导学生程序阅读及编程的兴趣。这就要求教师关注计算机及电子信息产业发展研究的最新内容,并及时将这些新内容融入到教学工作中。
其次,重视教学方式的时效性,培养学生程序阅读能力、编程能力,其手段要紧跟时代步伐。充分利用互联网时代的MOOC,如北京大学的MOOC、浙江大学的MOOC、本校的MOOC等,将原先只能在电脑上或书本中的程序放在手机上,使学生可以随时随地从手机端进行学习。学生课外可以利用北京航空航天大学实验类MOOC的计算机网络实验课程、移动计算两门课程,通过计算机网络实验课程,了解网络基本原理,远程配路由器、交换机,组一个小的网络,掌握基本的网络故障排查方法。通过移动计算即Android编程,MOOC已经搭好大的框架,教学生编写小的app程序,并将编写好的代码嵌入到框架中。
通过促进在计算机系本科教学工作中多模态教学模式的实现,可以将原先计算机专业教学以课堂教学为主、课下上机实验为辅,其余全靠学生自觉学习的格局,转化为课堂教学为主导,智能端随时学习为辅,课下上机实验为监督检测的新格局。这样的格局摒弃了过去教学只能在课堂进行的成见,给予学生更多的学习自由,可以有效提高学生的程序设计、算法设计与分析能力,同时节约课堂时间,教师在课堂中能够有更多时间讲解一些更加实用的难以从书本中直接获得的知识。
注重对学生学习态度的引导
在对计算机系学生的调查中发现,后进生大多有“畏难”情绪。他们往往还未开始编程,就对自己的能力进行主观否定,这种特征在调剂生身上表现得较为突出。对于这种情况,教师在课堂上如果只单方面强调知识的重要性,甚至直接点出考试及格的重要性并不会对这类学生思维模式的转变有好处。教师在教学过程中,常常会不自觉地将自己体验过的应试竞争态度带入教学工作中,具体表现为:过于强调考试分数,为了提起学生的听课兴趣甚至以考试题型作为诱饵,经常强调奖学金和保研问题,整个教学工作围绕着考试等。这其实都是不正当的竞争指引方式,只会增强学生的厌学心理。
因此,计算机专业讲师在教学过程中,应格外注重对学生学习态度的指引,特别是在代码类课程的教学过程中,教师不应根据自己多年的代码编写经验来对代码进行讲解,而是应该想象自己是这种代码的一名新学生,对这类代码一无所知的情况下,可能会从哪里入手进行理解。与其说“这门课挂科了,你毕业就有危险”,不如说“学会写代码,你就可以自由驾驭整台计算机”;与其说“这种数据类型期末考试一定会考”,不如说“你玩的泡泡龙中,屏幕上的泡泡就可以用这种数据类型来写”。在教学中注重引导学生的学习兴趣,激发学生的学习热情和探索精神,真正做到以学生为本,从学生的角度理解教学,才能在教学工作中正确指引学生的学习态度,达到最佳教学效果。
3 总结
计算机科学是一门具有创造性意识活动的学科,计算机本质上是一个程序的机器,只有那些真正懂得程序的人才能懂得计算机。因此程序设计能力、算法设计与分析能力是一名合格计算机类专业的毕业生必须具备的两大基础能力。本文给出的具体措施,有效提高了学生的编程能力、算法设计与分析能力,以及分析和解决实际问题的能力,有利于培养经济社会发展急需的信息产业人才。