计算机科学与技术学习心得3.docx

上传人:b****6 文档编号:5158466 上传时间:2022-12-13 格式:DOCX 页数:5 大小:20.41KB
下载 相关 举报
计算机科学与技术学习心得3.docx_第1页
第1页 / 共5页
计算机科学与技术学习心得3.docx_第2页
第2页 / 共5页
计算机科学与技术学习心得3.docx_第3页
第3页 / 共5页
计算机科学与技术学习心得3.docx_第4页
第4页 / 共5页
计算机科学与技术学习心得3.docx_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

计算机科学与技术学习心得3.docx

《计算机科学与技术学习心得3.docx》由会员分享,可在线阅读,更多相关《计算机科学与技术学习心得3.docx(5页珍藏版)》请在冰豆网上搜索。

计算机科学与技术学习心得3.docx

计算机科学与技术学习心得3

计算机科学与技术学习心得(3)

个一流计算机系的优秀学生决不该仅仅是一个编程高手,但他一定首先是一个编程高手。

我上大学的时候,第一门专业课是C语言程序设计,念计算机的人从某种角

度讲相当一部分人是靠写程序吃饭的。

在我们北京工业大学实验学院计算机系里一直有这样的争论(时至今日CSDN上也有),关于第一程序设计语言该用哪一

种。

我个人认为,用哪种语言属于末节,关键在养成良好的编程习惯。

当年老师对我们说,打好基础后学一门新语言只要一个星期。

现在我觉得根本不用一个星期,

前提是先把基础打好。

不要再犹豫了,学了再说,等你抉择好了,别人已经会了几门语言了。

汇编语言和微机原理是两门特烦人的课。

你的数学/理论基础再好,也占不到什么便宜。

这两门课之间的次序也好比先有鸡还是先有蛋,无论你先学哪门,都会牵扯

另一门课里的东西。

所以,只能静下来慢慢琢磨。

这就是典型的工程课,不需要太多的聪明和顿悟,却需要水滴石穿的渐悟。

有关这两门课的书,计算机书店里不难

找到。

弄几本最新的,对照着看吧。

组成原理推荐《计算机组成与结构》清华大学王爱英教授写的。

汇编语言大家拿8086/8088入个门,之后一定要学

80x86汇编语言。

实用价值大,不落后,结构又好,写写高效病毒,高级语言里嵌一点汇编,进行底层开发,总也离不开他,推荐清华大学沈美明的《IBM—

PC汇编语言程序设计》。

有些人说不想了解计算机体系结构,也不想制造计算机,所以诸如计算机原理,汇编语言,接口之类的课觉得没必要学,这样合理吗?

然不合理,这些东西迟早得掌握,肯定得接触,而且,这是计算机专业与其他专业学生相比的少有的几项优势。

做项目的时候,了解这些是非常重要的,不可能说,

仅仅为了技术而技术,只懂技术的人最多做一个编码工人,而永远不可能全面地了解整个系统的设计,而编码工人是越老越不值钱。

关于组成原理还有个讲授的问

题,在我学这门课程时老师讲授时把CPU工作原理誉微程序设计这一块略掉了,理由是我们国家搞CPU技术不如别的国家,搞了这么长时间好不容易出了个龙芯

比Intel的还差个十万八千里,所以建议我们不要学了。

我看这在各校也未见得不是个问题吧!

若真是如他所说,那中国的计算机科学哪个方向都可以停了,软

硬件,应用,有几项搞得过美国,搞不过别人就不搞了,那我们坐在这里干什么?

教学的观念需要转变的。

模拟电路这东东,如今不仅计算机系学生搞不定,电子系学生也多半害怕。

如果你真想软硬件通吃,那么建议你先看看邱关源的“电路原理”,也许此后再看模拟电

路底气会足些。

教材:

康华光的“电子技术基础”(高等教育出版社)还是不错的(我校电子系在用)。

有兴趣也可以参考童诗白的书。

数字电路比模拟电路要好懂得多。

推荐大家看一看我们北工大刘英娴教授写的《数字逻辑》业绩人士都说这本书很有参考价值(机械工业出版社的)。

原因很明了,

实用价值高,能听听她讲授的课程更是有一种“享受科学”的感觉。

清华大学阎石的书也算一本好教材,遗憾的一点是集成电路讲少了些。

真有兴趣,看一看大规模

数字系统设计吧(北航那本用的还比较多)。

计算机系统结构该怎么教,国际上还在争论。

国内能找到的较好教材为Stallings的\"ComputerOrganizationandArchitectureesigningforPerformance\"(清华影印

本)。

国际上最流行的则是“Computerarchitecture:

aquantitativeapproach\",byPatterson&Hennessy。

操作系统可以随便选用《操作系统的内核设计与实现》和《现代操作系统》两书之一。

这两部都可以算经典,唯一缺点就是理论上不够严格。

不过这领域属于

Hardcore

System,所以在理论上马虎一点也情有可原。

想看理论方面的就推荐清华大学出版社《操作系统》吧,高教司司长张尧学写的,我们教材用的是那本。

另外推荐一本《Windows操作系统原理》机械工业出版社的,这本书是我国操作系统专家在微软零距离考察半年,写作历时一年多写成的,教操作系统的专家

除了清华大学的张尧学(现高教司司长)几乎所有人都参加了。

Bill

Gates亲自写序。

里面不但结合windows2000,xp详述操作系统的内核,而且后面讲了一些windows编程基础,有外版书的味道,而且上面

一些内容可以说在国内外只有那本书才有对windows内核细致入微的介绍,

如果先把形式语言学好了,则编译原理中的前端我看只要学四个算法:

最容易实现的递归下降;最好的自顶向下算法LL(k);最好的自底向上算法

LR(k);LR

(1)的简化SLR(也许还有另一简化LALR)。

后端完全属于工程性质,自然又是anotherstory。

推荐教材:

KennethC.Louden写的“CompilerConstructionPrinciplesandPractice”即是《编译原理及实践》(机械工业出版社的译本)

学数据库要提醒大家的是,会用VFP,VB,Power

builder不等于懂数据库。

(这世界上自以为懂数据库的人太多了!

)数据库设计既是科学又是艺术,数据库实现则是典型的工程。

所以从某种意义上讲,数

据库是最典型的一门计算机课程——理工结合,互相渗透。

另外推荐大家学完软件工程学后再翻过来看看数据库技术,又会是一番新感觉。

推荐教

材:

AbrahamSilberschatz等著的\"DatabaseSystem

Concepts\".作为知识的完整性,还推荐大家看一看机械工业出版社的《数据仓库》译本。

计算机网络的标准教材还是来自Tanenbaum的《Computer

Networks》(清华大学有译本)。

还有就是推荐谢希仁的《计算机网络教程》(人民邮电出版社)问题讲得比较清楚,参考文献也比较权威。

不过,网络也

属于HardcoreSystem,所以光看书是不够的。

建议多读RFC,http:

//www.ietf.org/rfc.htm里可以按编号下载RFC文档。

从IP的读起。

等到能掌握10种左右常用协议,就没有几个人敢小看你了。

再做的工作我看放在网络设计上就比较好了。

数据结构的重要性就不言而喻了,学完数据结构你会对你的编程思想进行一番革命性的洗礼,会对如何建立一个合理高效的算法有一个清楚的认识。

对于算法的建立我想大家应当注意以下几点:

当遇到一个算法问题时,首先要知道自己以前有没有处理过这种问题.如果见过,那么你一般会顺利地做出来;如果没见过,那么考虑以下问题:

1.问题是否是建立在某种已知的熟悉的数据结构(例如,二叉树)上?

如果不是,则要自己设计数据结构。

2.问题所要求编写的算法属于以下哪种类型?

(建立数据结构,修改数据结构,遍历,查找,排序...)

3.分析问题所要求编写的算法的数学性质.是否具备递归特征?

(对于递归程序设计,只要设计出合理的参数表以及递归结束的条件,则基本上大功告成.)

4.继续分析问题的数学本质.根据你以前的编程经验,设想一种可能是可行的解决办法,并证明这种解决办法的正确性.如果题目对算法有时空方面的要求,证明你的设想满足其要求.一般的,时间效率和空间效率难以兼得.有时必须通过建立辅助存储的方法来节省时间.

5.通过一段时间的分析,你对解决这个问题已经有了自己的一些思路.或者说,你已经可以用自然语言把你的算法简单描述出来.继续验证其正确性,努力发现其中的错误并找出解决办法.在必要的时候(发现了无法解决的矛盾),推翻自己的思路,从头开始构思.

6.确认你的思路可行以后,开始编写程序.在编写代码的过程中,尽可能把各种问题考虑得详细,周密.程序应该具有良好的结构,并且在关键的地方配有注释.

7.举一个例子,然后在纸上用笔执行你的程序,进一步验证其正确性.当遇到与你的设想不符的情况时,分析问题产生的原因是编程方面的问题还是算法思想本身有问题.

8.如果程序通过了上述正确性验证,那么在将其进一步优化或简化。

9.撰写思路分析,注释.

对于具体的算法思路,只能靠你自己通过自己的知识和经验来加以获得,没有什么特定的规律(否则程序员全部可以下岗了,用机器自动生成代码就可以了).要有

丰富的想象力,就是说当一条路走不通时,不要钻牛角尖,要敢于推翻自己的想法.我也只不过是初学者,说出上面的一些经验,仅供大家参考和讨论。

关于人工智能,我觉得的也是非常值得大家仔细研究的,虽然不能算是刚刚兴起的学科了,但是绝对是非常有发展前途的一门学科。

我国人工智能创始人之一,北京

科技大学涂序彦教授(这老先生是我的导师李小坚博士的导师)对人工智能这样定义:

人工智能是模仿、延伸和扩展人与自然的智能的技术科学。

在美国人工智能官

方教育网站上对人工智能作了如下定义:

ArtificialIntelligence,orAIforshort,isa

combinationofcomputerscience,physiology,andphilosophy.AIisa

broadtopic,consistingofdifferentfields,frommachinevisionto

expertsystems.TheelementthatthefieldsofAIhaveincommonisthe

creationofmachinesthatcan\"think\".

这门学科研究的问题大概说有:

(1)符号主义:

符号计算与程序设计基础,知识表达方法:

知识与思维,产生式规则,语意网络,一阶谓词逻辑问题求解方法:

搜索策略,启发式搜寻,搜寻算法,问题规约方法,谓词演算:

归结原理,归结过程专家系统:

建立专家系统的方法及工具

(2)联接主义(神经网络学派):

1988年美国权威机构指出:

数据库,网络发展呈直线上升,神经网络可能是解决人工智能的唯一途径。

我想对于人工智能的学习,大家一定不要像学数学似的及一些现成的结论,要学会分析问题,最好能利用程序设计实现,这里推荐给大家ACM最佳博士论文奖获

得者涂晓媛博士的著作《人工鱼—计算机动画的人工生命方法》(清华大学出版社)。

搞人工生命的同学不会不知道国际知名的涂氏父女吧。

关于人工智能的书当然

首选《ArtificialIntelligenceANewSynthesis》NilsJ.Nilsson.鼻祖嘛!

关于网络安全我也想在这里说两句,随着计算机技术的发展,整个社会的信息化水平突飞猛进,计算机网络技术日新月异,网络成了当即社会各个工作领域不可缺少

的组成部分,只要有网络存在,网络安全问题就是一个必须解决好的问题,学习网络安全不是简简单单的收集一些黑客工具黑一黑别人的网站,而是要学习他的数学

原理,实现原理,搞清底层工作机制,这样才能解决大部分的现有问题和新出现的安全问题。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 艺术

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1