标题:
学习计算机的内容与方法
[打印本页]
作者:
战略
时间:
2013-11-2 00:41
标题:
学习计算机的内容与方法
学习计算机的内容与方法
一、学习计算机的目的
计算机包括计算机科学与计算机技术两方面,其中计算机科学是描述计算机原理和构造软件方法的理论,计算机技术则是解决问题的实现手段。可以看出,计算机科学与计算机技术是道与术的关系,一个提供思想一个提供手段。
这里要指出一个常见的误区,有一部分人认为学习与编程无关的诸如硬件、系统、网络都是没意义的,甚至还以此引申到“计算机专业学不到有用的编程技术”。这样的观点是把计算机和编程等同起来。然而事实上编程只是计算机科学与技术的一个分支,计算机专业就不应该全部学习编程。如果说“软件工程专业应该全部学习编程”还有一定的道理,而把它应用于计算机科学与技术就存在以偏概全的问题。因为学习计算机是要学习计算机这个机器的原理及其应用,而不是仅仅就是编程。计算机与编程是体和用的关系,脱离了机器的原理了解,自然在编程应用就会受限,所以即便只是想学编程,也是需要了解机器的原理。
那么学习计算机与学习编程的区别在哪呢?学习编程仅仅是通过软件的手段解决问题,而学习计算机则是站在一个更高的层面,研究解决问题的一般方法,并且恰当地使用软件、硬件甚至管理的手段来解决问题。也就是说,学习计算机的层面更高,手段更加多样。这里的“解决问题”对学习编程的人仅仅只是一个具体的软件,即怎么制作软件的问题,而对学习计算机的人则是现实的问题,比如怎么设计信息系统,怎么设计控制系统,这就涉及到怎么分析和统筹规划的方法论问题。所以学习计算机侧重于学习解决问题的思路,而学习编程则侧重于学习解决问题的具体方法,学习计算机在提出方案构想方面更胜一筹。
由以上分析,我们看到,学习计算机主要就是学习怎么解决问题,因而需要学习解决问题的思维和工具,这里的工具不仅仅包括编程软件,硬件技术,更重要的是它们所依赖的平台。可以看出,通过学习计算机不仅仅可以提高解决问题的能力,还可以提高思维能力,这就是学习计算机的目的。计算机科学具有实践科学和思维科学的两重属性,它能够提高我们对事物的分析能力,对现实的生活也是有帮助的。
二、学习计算机的内容
计算机在解决问题上具有工程、架构、算法、工具四个层面,具体来说包括:
工程:从资源分配和计划上统筹安排的方法,需要良好的开发流程
架构:把一个大问题分解为构成系统的各个部分及其关系,使其能够满足需求并能应对需求的变化
算法:解决具体问题的程序步骤,需要良好的数据结构作基础
工具:包括计算机平台的原理,编程工具,硬件工具,工程工具
这里面工具是最基础层面,算法则是面对小问题,架构是分解大问题,工程是保证项目有序开展的手段
从思维层面看,需要学习经验的、理论的等方法,具体来说包括:
动作思维:边写程序边调试的方法,通过实践方法培养
形象思维:从代码看出程序的运行流程,已知数据能推断结果
抽象思维:针对具体问题抽象的表示数据结构和算法,针对一个具体项目抽象的表示架构,设计合适的流程,用系统方法分析问题
灵感思维:能够针对问题,集合各种知识提出创造性方案
经验思维:能够恰当使用经验快速解决问题
理论思维:遇到问题能够恰当使用理论
辩证思维:能够分析一个方案的优劣,选择恰当的方案
逻辑思维:能够按逻辑推导各种结果
类比思维:能够从一个系统获得解决问题的大致方案
整合思维:对所学知识和经验有条理的分类,形成系统
三、学习计算机的方法
学习计算机的方法包括实践、思考、阅读、总结、交流等,使用这些方法最为关键的在于恰当的结合,以达到作用互补,互相促进的目的,原则包括:
①实践基础原则:通过对具体项目实践获得感性认识,以便为思考,阅读打下基础
②理论指导原则:选用思维理论和计算机科学进行指导,以避免实践的盲目性
③定期总结原则:以便应用时方便搜索
④专题思考原则:针对理论或实践的问题有针对性思考,使思考有目的性
具体来说包括:
实践:
①通过边写程序边调试培养动作思维
②通过项目经验培养经验思维
③通过对代码跟踪培养形象思维
思考:
①通过对程序优劣分析培养辩证思维
②通过对程序正确性分析培养逻辑思维
③通过项目需求的分析设计培养抽象思维
④通过对理论的应用培养理论思维
⑤通过合理积累知识、实践和思考的统筹安排来孕育灵感,培养灵感思维
阅读:
①通过对各种计算机原理类书籍的阅读积累计算机原理的知识并培养理论思维、辩证思维、逻辑思维、抽象思维,并通过类比实践问题培养类比思维
②通过对程序设计方法类书籍的阅读积累各种方法的知识并培养理论思维、辩证思维、逻辑思维、抽象思维、经验思维、形象思维
③通过对哲学思维管理心理类书籍的阅读积累各种思维方法,孕育各种解决问题的灵感,培养灵感思维,并通过类比实践问题培养类比思维
④通过对数学类书籍的阅读积累各种数学方法,培养理论思维、逻辑思维、抽象思维
总结:
①通过对阅读所产生的知识以及使用条件进行归纳,培养抽象思维、整合思维、辩证思维
②通过对实践所产生的经验以及使用条件进行归纳,培养整合思维、经验思维、辩证思维
③通过对思考所产生的知识进行归纳,培养整合思维、逻辑思维、抽象思维
交流:
通过交流可以激发灵感,培养灵感思维,可以发现各种经验的优劣,培养辩证思维
四、学习计划
上面介绍了众多的学习内容、方法,那么怎么综合这些方法呢?这就需要制定一个分期计划,有不同侧重点,互相促进。在计算机学习上依据实践、阅读、思考的不同侧重点,可以分三个阶段:
1.实践阶段
主要目标是培养实践能力,主要是进行软件编程的实践来入门, 软件编程虽然仅仅是一个手段,但是一个十分有代表性的手段而且易于实践。这个阶段的目标是能够开发小型项目,并且尝试中型项目(可能会失败,但这种体验会有利于以后的学习),能力要求是培养动作思维、形象思维、经验思维。知识要求是掌握一门程序设计语言及积累各种项目的经验,建议用2年完成这个阶段,具体分为2个小阶段:
(1)学习技术阶段
在这个小阶段中要根据学习内容设计若干开发项目,通过实践掌握具体技术,并辅以看编程技术入门书。这个小阶段培养动作思维。语言建议使用所见即所得的工具,如;VB,JAVA,C#等,避免没有图形界面带来的枯燥乏味,可以选择简单的小游戏来实践。学习的重点是语言本身,在游戏中可能会需要用到各种库函数,只在需要用时学习不需要系统掌握,这些库函数的积累对以后的提高是很有帮助的。具体地说可以分4期
第1期:掌握顺序分支循环,可以做投资游戏,股票,彩票,猜数字,数字拼图
第2期:掌握数组结构函数,可以做贪吃蛇,五子棋,单挑,对对碰,简易大富翁
第3期:掌握面向对象技术,包括封装,继承,多态,接口,可以做三国内政,简易战棋,象棋
第4期:掌握各种图形、文件技术,可以做拼图,老虎机,俄罗斯,泡泡龙,打雪人,坦克,推箱子,其中坦克,推箱子可以制作关卡,用编辑器方式生成关卡
在学完这些技术后建议把技术书系统过一遍,把所学编程技术知识条理化
(2)实践项目阶段
在这个小阶段中通过实践项目培养形象思维和经验思维,分2期:
第1期:尝试各种小游戏的开发,以积累经验,并将其归纳出来,形成初步的游戏开发指南,指导以后开发,如果在这些小游戏的开发中需要算法,可以初步学习数据结构和算法来解决问题。可以做射击类,策略类,棋牌类,角色扳演类的游戏
第2期:初步尝试开发一个较大规模的游戏,可能会因为代码管理不良而混乱,不过没关系,这正是下个阶段要解决的
2.理论阶段
主要目标是培养理论思维能力,需要通过阅读大量的计算机科学的书来完成。这个阶段的目标是系统的掌握计算机原理及思维方法,能够通过初步地创造性运用计算机理论来指导实践,能力要求是培养理论思维,逻辑思维,抽象思维,类比思维,辩证思维,整合思维,知识要求是各门计算机科学学科及其应用经验。建议用2年完成这个阶段,分为2个小阶段:
(1)软件开发方法学习阶段
在这个小阶段中,主要是通过对工具、算法、架构、工程的学习,并辅以实践和思考,培养理论思维,逻辑思维,抽象思维,具体分3期:
第1期:掌握高级语言、离散数学、数据结构、数据库和算法。高级语言应学习C++以便后续学科的学习,因为很多教材都是以C或C++的语言作为基础。离散数学了解数理逻辑、集合论,代数结构、图论。数据结构部分以集合论和图论为基础理解各种数据结构的本质,理解抽象数据类型本质是代数结构,能运用线性表、矩阵、树、图等数据结构,算法部分能运用算法策略以及查找、排序、组合等算法。数据库部分以数理逻辑和集合论为基础理解关系代数、数据依赖等数据管理方法。其中这些学科的学习应有读书笔记。
第2期:掌握面向对象(OOAD)、设计模式、软件架构,其中面向对象讲述从问题域建立对象模型的方法,设计模式讲述能够适应的需求变化的设计方法,软件架构讲述设计架构需考虑的因素和方法。这部分的学习同样要有读书笔记。
第3期:掌握软件工程、敏捷开发,形成需求、分析、设计、实现、测试的工程观以及瀑布、增量、原型、敏捷的过程模型,尤其是敏捷过程中的一些原则。了解工程中的资源配置。这部分的学习同样要有读书笔记。
在这些知识学习完,应做个中型项目,应用基本的工程原理组织开发,开发应有文档组织,同时有良好的架构和算法。
(2)计算机平台原理学习阶段
学习计算机平台的原因在于任何程序都是通过一定的平台执行的,程序运行的结果或多或少受平台的影响,也就是说程序仅仅是影响平台运行的因素而已。不了解平台不利于很多技术的学习,也会在程序遇到各种奇怪时无从下手找错。学习计算机平台不宜过深,而是应该把握其基本通用的原理,以更好理解高级语言,而不是学习具体机器的各种细节,但是可以通过具体机器加深对计算机平台的理解。
学习计算机平台的另一个原因就是培养思维,计算机系统思维具有内在一致性,学习前人分析设计计算机系统的抽象思维、逻辑思维,辩证思维对于提高系统设计能力是有很大帮助的,要学会把现实问题与计算机系统问题类比,从而拓宽思路。
计算机系统的学习具体分4期:
第1期:数字逻辑和组成原理。共同构成硬件系统的学习,前者学习硬件系统的基本逻辑,包括逻辑电路的运算逻辑、触发器的存储逻辑,还有触发器和逻辑电路组成的时序电路的时序逻辑,后者学习用数字逻辑构造CPU,内存,I/O系统的方法,通过学习可以认识到硬件和软件的逻辑等价性,在实际中根据成本、灵活性选择合适的实现手段,而非单纯的软件实现手段。另外,要学习构造硬件系统的系统思想。
第2期:汇编语言和编译原理。对于认识高级语言本质非常重要,前者学习高级语言在底层的实现形式,后者学习把高级语言变为汇编语言的方法,学习时要思考高级语言的各个成份与汇编语言的对应关系,高级语言的语法分析的状态机思想,各成份语义分析的算法。要体会语言理解的状态机本质。
第3期:操作系统。对于认识各种开发库非常重要,要学习其各类资源管理的方法,体会其本质时间管理、空间管理、物质管理的思想
第4期:网络。对于理解网络编程非常重要,要学习其资源子网和通信子网两部分的组织协调方法。体会其本质是对不同主体之间的关系协调的社会本质
这些学习完要以高级语言和软件开发环境为载体,系统地整理这些系统与其的关系。
3.思维阶段
主要目标是培养思维能力,主要是通过学习思维、心理、哲学掌握思维的一般方法,形成创造性思维的能力。这个阶段的目标是能够运用所形成的良好思维能力解决各种问题,能力要求是培养灵感思维、抽象思维、逻辑思维。知识要求是思维、心理、哲学的有关知识,建议用1年完成这个阶段,具体分为2个小阶段:
(1)学习思维、心理、哲学阶段
这个小阶段的主要目标就是掌握思维、心理、哲学知识,并通过哲学初步培养训练思维。分3期:
第1期:学习逻辑学,批判性思维,创造性思维,以掌握动作思维、形象思维、抽象思维、灵感思维的特征、适用范围和方法。能够在具体思维活动中意识到用的思维方法,协调地使用各种思维解决问题
第2期:学习认知心理学和学习心理学,了解认识过程的感觉,知觉,注意、记忆,思维等环节的心理规律,以及陈述性知识、程序性知识、策略性知识的学习心理规律和方法,能够在具体思维活动中遵循心理规律
第3期:学习西方哲学史、现代西方哲学、中国哲学史,了解不同哲学家对本体论、认识论、方法论的不同看法,避免自己对这些问题看法陷入到历史的重复错误中,吸收一些有益的思想,同时通过对哲学史各种问题的思考也是对自己思维的训练。另外,还能对中西文化优劣有更深刻的认识,知道其适用范围
这些学习完要以本体论、认识论、方法论、心理规律、思维方法为线索整理自己的看法
(2)思维应用阶段
这个小阶段的主要目标就是通过运用思维来学会思维,通过以课题为核心来进行思维训练
确定一个研究课题,把所学思维和知识应用于其中,以体现计算机科学解决问题的本质。所研究课题可以是软件方面的,如游戏、AI系统,也可以不是软件方面的,如管理、医学、经济。但是解决问题的方案必须是有明确算法步骤和系统架构,组织上需要明确的流程,实现上未必需要软件或硬件,用文字描述也行。这些要求是计算机科学思维的必备特征,也是计算机科学的核心。
在实际解决生活问题时算法步骤和系统架构都不是必须,所以这也说明计算机科学解决问题的局限性。
五、学习计算机三个不同目的和计划要求
1. 以制作软件(游戏)为目的
只需要按学习计划第一阶段学习再学习些编程技术即可,如想进阶可以学习第二阶段的第一小阶段
2. 以设计系统(引擎,AI)为目的
只需要按学习计划第一、二阶段学习再学习些数学,管理学即可,如想进阶可以学习第三阶段的第一小阶段
3. 以解决现实问题或锻炼思维为目的
需要按学习计划三个阶段依次学习
作者:
葉影心
时间:
2013-11-2 10:59
我来学习学习
欢迎光临 轩辕春秋文化论坛 (http://xycq.org.cn/forum/)
Powered by Discuz! 5.0.0