关于计算机技术的学习我想是这样的:学校开设的任何一门科学都有其滞后性,不要总认为自己掌握的某门技术就已经是天下无敌手了,虽然现在JavaVBCC++用的都很多,怎能保证没有被淘汰的一天,我想NET平台的诞生和X#语言的初见端倪完全可以说明问题。换言之,在我们掌握一门新技术的同时就又有更新的技术产生,身为当代的大学生应当有紧跟科学发展的素质。举个例子,就像有些同学总说,我做网页设计就喜欢直接写html,不愿意用什么FrontpageDreamweaver。能用语言写网页固然很好,但有高效的手段你为什么不使呢?仅仅是为了显示自己的水平高,unique 我看真正水平高的是能够以最快的速度接受新事物的人。高级程序设计语言的发展日新月异,今后的程序设计就像人们
在说话一样,我想大家从xml中应是有所体会了。难道我们真就写个什么都要用汇编,以显示自己的水平高,真是这样倒不如直接用机器语言写算了。反过来说,想要以最快的速度接受并利用新技术关键还是在于你对计算机科学地把握程度。
计算机技术牵扯的内容更为广泛些,一项一项说恐怕没个一年半载也说不清。我只想提醒大家的还是那句话,技术与科学是不能分家的,学好了科学同时搞技术,这才是上上策。犹如英语,原先人们与老外交流必须要个翻译,现在满马路的人都会说英语。就连21世纪英语演讲比赛的冠军都轮不到英语系的学生了。计算机也是一样的,我们必须面对的一个现实就是:计算机真就只是一个工具,如果不具备其它方面的素养,计算机系的学生虽然不能说找不到工作,不过总有一天当其他专业性人才掌握了计算机技术后将比我们出色许多。原因就在于计算机解决的大都是实际问题,实际问题的知识却是我们少有的。单一的计算机技术没有立足之地。
我想是时候指出:学习每一个课程之前,都要先搞清这一课程的学习目的。这一学科的应用领域。据我自身所了解到的同龄同学和低年级的同学的学习状况:他们之中很少有人知道学一个学科的学习目的,期末考试结束了也不知道学这科做什么用。这就失去了读计算机科学的意义。当然这与现存的教育思想不能说一点关系都没有。
总的来说,从教育角度来讲,国内高校的课程安排不是很合理,强调理论,又不愿意在理论上深入教育,无力接受新技术,想避开新技术又无法避得一干二净。我觉得关键问题就是国内的高校难于突破现状,条条框框限制着怎么求发展。我们虽然认识得到国外教育的优越性,但为什么迟迟不能采取行动?哪怕是去粗取精的取那么一点点。我们需要改变。从我们自身角度来讲,多数人4年下来既没有学习计算机科学的学术水平,也没有学习计算机技术的那种韧劲。在我刚上大一时,我的计算机科学入门导师,淮北煤炭师范学院王爱平教授曾经对我说过这样一番话:“当你选择了计算机这一门科学,就意味着你踏上了一条不归路,就意味着你一生都要为之奋斗……你的身后是悬崖,只有向前走,不能往后退。”
有些同学说按照这样学习学的东西太多,有的未见得有用,我想打个形象的比方:学校学出来的人都是一个球体,方方面面的知识都应具备。可是社会上需要球体的地方很少,反而需要的是砖和瓦,即精通某一行的人才。但是对于同等体积的物体,用球体来改造是最方便最省事的。学校的学生很多,为了能够使更多的学生来适应这个社会,学校也就不得以把所有的学生都打造成一个球体,然后让社会对这些学生进行再加工,成为真正能够有用的人才。即使你非常清楚自己的将来要干什么,并且非常下定决心要走自己的路,这一步你也必须走,世界是在不断变化的,你不能预料未来。想清楚,努力去干吧!
必须结束这篇“胡侃”了,再侃下去非我力所能及。其实计算机还有很多基础课都值得一侃。怎奈我造诣有限,不敢再让内行耻笑。对于博大精深的计算机科学,我只能说我永远都是个Beginner.最后声明:这些只针对本科阶段的学习。即使把这些全弄通了,前面的路还长,计算机科学需要我们为之奋斗学习计算机科学需要韧性,更需要创新,需要激情。深刻学习理论知识,勇于接受新技术的挑战,这才是我们这一代人应具有的素质。最后送大家一句话“Wake up every day with a feeling of passion for the difference technology will make in people's life!”。
实习快要结束了,虽然只有短短的20天,但却给我留下了深刻的印象,我实习的部门it中心,虽然人数不是很多,但里面员工的朝气、团结和热情,以及对工作认真负责的态度让我深受感动!每次遇到不懂的问题,或者通过当面交流,或者通过邮件,it部门的员工孙鹏、沈欣蔚、赵坤杰、朱吉、李君总能耐心的给予解释,让我备感鼓舞!和另外一名和我同样是实习生李卿交流也让自己从他那学到了很多的东西!我相信,通过这次实习 对我来说是个很好的人生经历,对我以后走上工作岗位打了一剂很强的预防针,收益非浅. 具体来说,以下是我20天来在公司的所学,所见,所闻:
1,对公司有了总体的认识,熟悉了公司的环境,对所在部门it中心的工作职责有了 明确的了解.
2,对公司的网络拓扑有了直观的认识,对局域网的组建,子网的划分,ip地址的分配, 以及如何配置子网掩码、网关、dns服务器等等有了实际的网络工作经验!
3,通过和工作人员去配线房、核心机房检查,增强了对工作中遇到故障的更加感性的认识.
4,熟悉了notes这个群件软件的安装、工作环境以及使用中经常遇到的问题.
5,通过在线bbs和私人邮件回答了it中心服务管理论坛上员工使用notes中遇到的问题。
6,了解了用户notes邮件恢复、备份策略以及网络监控系统软件。
7,旁听了it中心关于qa、cc、cq以及企业应用架构方面的培训,接触到了软件开发流程, 规范,以及检查单方面的知识。
关于笔试:个人感觉难度并不是很大。考试的题目量比较少,在考前做好有针对性、有计划的复习,问题应该问题不大,但是必须有执行! 复习内容全部集中在考试大纲,着眼于教材的每章节的知识点。
因为考试涉及到的知识点比较散,在我看这种考试无所谓重点不重点,所以复习时尽量面面俱到,至少有印象! 我建议大家采用三步走的方法。 第一步:初看教材。
看看目录和章节标题,从头翻到尾大致了解下这门科目是什么玩意儿,再仔细看看书后面附录的考试大纲,了解会考些什么,记住考试是绝对不会超出大纲的。要说重点,那里面列出来的'知识点都是重点。 第二步:研读教材。
一章一章,一节一节,一段一段地阅读教材内容,可能会感觉不好啃,但是一些概念,术语。关键词、语句只要把握其含义及用处即可,不必太深入。
(1)不懂的先放一放,不要死琢磨,继续往后看,当你看完后面的,再回过头来时差不多就清晰了。 (2)注意总结,做笔记之类。很多死的知识点也要反复看,牢记。因为考试中有比较多的题目是直接考原句的,就是在一句话中挖出一个关键词,让你选择或者填空。
(3)对于女生和文科生而言,困难肯定是有的,但切记浮躁,或陷入挫折中无法自拔,其实,考试并不难,坚持两个月的复习,一般就过了。 这一步需要花大量的时间,可以把书来回看,但一定要把握各知识点,形成总体印象! 第三步:针对教材,做习题。 多做题,找感觉。这一点就不详述了,不做题肯定没办法应试,题做得多,自然对考试的类型、涉及到的知识点有更深的把握。另外,考试中也会出现历年反复考的题目,所以多做真题,多练习。 关于上机:其实笔试是很好过的,因为这种考试环境我们最适应了,但机试就不同,它对我们得操作能力要求很高,所以我们一定要加强上机操作练习,加强编程训练。 考试时的题目一般是从题库里抽取的若干题目,一般有三至五个小题,量很少,但是很要人脑力,既要读懂程序代码,又要会查找程序错误,要应付这种考试,唯一的方法就是平时多操作,多做习题册上附带的上机模拟系统里面的题目,每天做一两个。 平时做笔试题目的编程题目时,如果不知其所以然,也要立即上机验证,这样坚持下去,我想问题也不大。 坚持每天复习一点点,每天练习一点点,每天上机一点点,相信两个月的时间,二级考试证书没问题!
近期,学校组织了计算机培训。当我听到这一消息时,第一感觉就是我也要参加培训吗?因为大大小小的计算机培训、考试也经历过好几次了。虽然自我感觉水平不高,但总觉得这种培训的意义不大。因为大凡这种培训都是应付了事,教师教得不认真,学员学得也不认真。但是从学校的整体工作要求出发,我还是报名参加了培训。
一、开卷有益,爱不释手
然而,在我参加培训的第一晚上,我就发现自己错了,此次的电脑培训与以前参加过的培训大相径庭。以前的培训都是应付考试的,实用性不强,而且那时学的东西,在工作中用的不多,时间长了不用也就忘记了。而这次培训的内容最显著的特点,就是实用性和工具性很强,都是平时工作中经常用到的。参加培训的第一课时,我就专心致志地听讲,把学习内容与以前操作不规范或不熟练的地方进行对比,感觉学习效果很好,受益匪浅。特别是E_CEL的学习,因为平时用得比较少,掌握的也不多,不想去进一步的学习,所以对E_CEL的操作不熟悉。这一次正好帮我解决了这一问题。通过次培训,使我的E_CIL的操作有了新的认识,也掌握了几种方法。还有幻灯片的制作,原来从没有制作过,通过这次学习发现也不是想象中的那么难。简单的制作我已经基本上掌握。现在想起来这种培训是必要的,正所谓 磨刀不误砍柴工 。
二、蓦然回首,柳暗花明
正因为学习上有所收获,思想上也就豁然开朗起来。说实话,近几年,觉得自已也不再年轻了,还学什么啊?得过且过吧。虽然对待工作还是尽心尽力地去做,但对于学习的态度则是能应付就应付,不想应付就是偷点懒吧。因为这种思想的存在,在学习上的动力就不足了。通过这次培训,我觉得要改变这一错误的思想,想把各项工作做好,就必需要不断的学习,不断的充电,也只有不断的学习、充电,才能提高自已的工作能力。古人云, 活到老、学到老 ,这句话是很有道理的。
三、由此及彼,学以致用
电脑培训暂告一个段落,闲暇之余,我开始静静地长思。由于学校的信任,我从上学期中段到校办工作。尽管我全力以赴,不辞辛苦,做了很多的工作,但我知道自已离 出色 还有很大的一段距离,离学校对我的期望还相去甚远。固然有能力、水平、经验、性格等原因,但是最重要的原因还是思想上的对学习不重视,导致了有的工作不能出色的完成。由于办公室工作的特殊性,要求工作人员思维严密、灵活应付,要能够迅速理解领导的意图,沉着应对复杂的局面,这样才不致于在完成工作时,总是手忙脚乱、丢三落四。通过这次培训,我认识到只有沉下身来,静下心来认真学习,踏实做事,多用心,多动脑,才能让工作有好的起色。为教育事业奉献我微薄的一份力量!
随着信息技术的高速发展并迅速渗透到社会生活的各个方面,计算机日益成为人们学习、工作、生活不可缺少的基本工具,再过不了几年,不会使用计算机,就会象不识字一样使人举步维艰。进入大学,计算机无时无刻在伴随着我们,给我们在学习的生活增添了乐趣。然而这个学期将是展现自我能力的一个好时机,在这个学期里我们要进行全国计算机应用技术的考试。这就要看你在平时上课有没有认真听讲,在上操作课的时候有没有认真的完成老师所布置的任务,还有平时自己积累的知识跟经验,这些都将成为面临考试的一项重要的准备工作。
计算机课是一门知识性和技能性相结合、理论性和操作性都很强的科目,既不同于人文课程又和计算机的专业课有所区别。我们应该坚持“边讲边练、精讲多练”的做法,因材施教,激励着我们的学习兴趣,积极拓展我们的学习目标,使我们为今后走向社会在具体工作岗位上的计算机应用打下良好的基矗对一些从小就没有养成良好学习习惯的同学,出现了一些在学习过程中不够自觉的现象。但是老师你总是很耐心的指导我们教育我们,使我们正确的认识计算机在我们学习生活中的重要作用。在刚开始的计算机教学中,老师你每节课安排相应的练习任务,抓住乐我们学习计算机的心理特点,完成的同学可以在课堂上作自己的事,比如玩下小游戏,聊下qq等加强了同学们的积极性。如在英打字练习时,每节课要是比上节课进步一分钟,或是在在汉字录入部分,每分钟比上节课进步5个字,就可以自由练习。上机课时你总是在同学间教育我们怎样做对的事,怎样使用正确的指法,怎样才能更快的打好更多的字。
打字成绩好的同学在学习任务的驱动下,可以更好的掌握更多更全面的计算机知识。让后为了争取自由时间去游戏,会很好地完成学习任务。在计算机课中,并不会完全的在两节课时间里让大家完全的做练习,在完成教学任务的情况下,给予了我们一片自由的游线天地,满足了我们的好奇心,又达到了计算机学习的目的。使我们在课堂上更加积极的去完成作业,使自己可以得到更多的自由的时间,这样也要求我们更加熟练的掌握老师上课时所讲内容。以练为主,讲练结合。以练为主,讲练结合。许多知识是靠在操作实践中而获得的,所以我在操作实践中可以获得知识,动手实现最基本的操作,从中获得成就感,培养动手操作→观察现象→分析原因→概括总结这一获得知识的过程,如在文字处理软件教学中,老师你提出乐一些问题让学我们来思考,比如如何利用Shift键快速输入大小写字母?引导我们大胆探索,从操作中去找方法,这样在实践中使我们充分掌握了Shift键的作用,茅塞顿开,从中得到了乐趣,并体会了掌握计算机知识必须以练为主的真谛,培养了解决实际操作问题的能力。初学者对计算机都是比较薄弱的,对一些应用操作理解起来很困难要从整体上较好理解很把握应用软件,不是仅仅靠买几本专业书就能知道的,我们平时不仅要多做练习,记笔记,还要实际应用。
要多了解相关知识,读思考,多提问题,多问几个为什么,要学以致用,计算机网络使学习、生活、工作的资源消耗大为降低。我们是新一代的人用的都是高科技,也随着现在的社会日新月异,高科技的,需要老师掌握一定的计算机知识,才能更好的帮助我们。
不过有时也要动我们的脑子,要个人亲身去体会,去实践,把各项命令的位置,功能,用法记熟,做熟。提高我们整体的知识,打好基础
最初,我了解了计算机的硬件与系统软件的安装,维护知识.在学习这一部分内容时授课老师深入浅出,让我们自己积极动手操作,结合实践来提高自己的操作能力,使每个学员得到了一次锻炼的机会.
其次,学习了常用的办公软件,主要有WORD,EXCEL,POWERPOINT等,以及常用的几种软件的应用技巧,同时也学习了一些解决实际应用过程中经常出现的问题的方法,相信这次学习,会让我在今后的工作中运用电脑时能够得心应手.为了提高大家的认识,老师不仅采用实物演示的办法,而且还为我们提供实践操作的机会来为大家讲解有关组建局域网以及网络维护方面的知识,介绍了一些平时我们很少用到的网络检测命令,对我们今后维护自己的局域网络有很大的帮助.
同时在方远电脑学校的学习中我们不仅学到很多计算机方面的知识,更重要的是增进了和其他学员之间的交流.同学们坐在一起畅所欲言,互相讨论,交流,把自己不理解,不明白的地方提出来,让老师来帮助解决,这样使得相互之间都得到了学习,巩固知识的机会,提高了学习的效率.
通过这次学习我真正体会到了计算机知识的更新是很快的,随着教育体制的改革和教育理念的更新,以及信息技术的飞速发展,如何接受新的教育理念,转变我们传统的教育观念,来充实我们的专业技能,已经成为我们每一个人必须要解决的第一个问题.只有不断地学习,才能掌握最新的知识,才能在以后把工作做得更好.我们也渴望能够多学关于计算机方面的知识.我相信在更多的学习机会中,我们懂的也会越来越多。
每个学校本系里都会开一门离散数学,涉及集合论,图论,和抽象代数,数理逻辑。不过,这么多内容挤在离散数学一门课里,是否时间太紧了点?另外,计算机系学生不懂组合和数论,也是巨大的缺陷。要做理论,不懂组合或者数论吃亏可就太大了。从理想的状态来看,最好分开六门课:集合,逻辑图论,组合,代数,数论。这个当然不现实,因为没那么多课时。也许将来可以开三门课:集合与逻辑,图论与组合,代数与数论。(这方面我们学校已经着手开始做了)
不管课怎么开,学生总一样要学。下面分别谈谈上面的三组内容。
古典集合论,北师大出过一本《基础集合论》不错。 数理逻辑,中科院软件所陆钟万教授的《面向计算机科学的数理逻辑》就不错。现在可以找到陆钟万教授的讲课录像,自己去看看吧。总的来说,学集合/逻辑起手不难,普通高中生都能看懂。但越往后越感觉深不可测。
学完以上各书之后,如果你还有精力兴趣进一步深究,那么可以试一下GTM系列中的《Introduction to Axiomatic Set Theory》和《A Course of Mathematical Logic》。这两本都有世界图书出版社的引进版。你如果能搞定这两本,可以说在逻辑方面真正入了门,也就不用再浪费时间听我瞎侃了。
据说全中国最多只有三十个人懂图论。此言不虚。图论这东东,技巧性太强,几乎每个问题都有一个独特的方法,让人头痛。不过这也正是它魅力所在:只要你有创造性,它就能给你成就感。我的导师说,图论里面随便揪一块东西就可以写篇论文。大家可以体会里面内容之深广了吧!国内的图论书中,王树禾老师的“图论及其算法”非常成功。一方面,其内容在国内教材里算非常全面的。另一方面,其对算法的强调非常适合计算机系(本来就是科大计算机系教材)。有了这本书为主,再参考几本翻译的,如Bondy & Murty的《图论及其应用》,人民邮电出版社翻译的《图论和电路网络》等等,就马马虎虎,对本科生足够了。再进一步,世界图书引进有GTM系列的"Modern Graph Theory"。此书确实经典!国内好象还有一家出版了个翻译版。不过,学到这个层次,还是读原版好。搞定这本书,也标志着图论入了门。
离散数学方面我们北京工业大学实验学院有个世界级的专家,叫邵学才,复旦大学概率论毕业的,教过高等数学,线性代数,概率论,最后转向离散数学,出版著作无数,论文集新加坡有一本,堪称经典,大家想学离散数学的真谛不妨找来看看。这老师的课我专门去听过,极为经典。不过你要从他的不经意的话中去挖掘精髓。在同他的交谈当中我又深刻地发现一个问题,虽说邵先生写书无数,但依他自己的说法每本都差不多,我实在觉得诧异,他说主要是有大纲的限制,不便多写。这就难怪了,很少听说国外写书还要依据个什么大纲(就算有,内容也宽泛的多),不敢越雷池半步,这样不是看谁的都一样了。外版的书好就好在这里,最新的科技成果里面都有论述,别的先不说,至少是“紧跟时代的理论知识”。
组合感觉没有太适合的国产书。还是读Graham和Knuth等人合著的经典“具体数学”吧,西安电子科技大学出版社有翻译版。 抽象代数,国内经典为莫宗坚先生的“代数学”。此书是北大数学系教材,深得好评。然而对本科生来说,此书未免太深。可以先学习一些其它的教材,然后再回头来看“代数学”。国际上的经典可就多了,GTM系列里就有一大堆。推荐一本谈不上经典,但却最简
单的,最容易学的:这本“Introduction to Linear and Abstract Algebra"非常通俗易懂,而且把抽象代数和线性代数结合起来,对初学者来说非常理想,我校比较牛的同学都有收藏。
数论方面,国内有经典而且以困难著称的”初等数论“(潘氏兄弟著,北大版)。再追溯一点,还有更加经典(可以算世界级)并且更加困难的”数论导引“(华罗庚先生的名著,科学版,九章书店重印,繁体的看起来可能比较困难)。把基础的几章搞定一个大概,对本科生来讲足够了。但这只是初等数论。本科毕业后要学计算数论,你必须看英文的书,如Bach的"Introduction to Algorithmic Number Theory"。
计算机科学理论的根本,在于算法。现在很多系里给本科生开设算法设计与分析,确实非常正确。环顾西方世界,大约没有一个三流以上计算机系不把算法作为必修的。算法教材目前公认以Corman等著的"Introduction to Algorithms"为最优。对入门而言,这一本已经足够,不需要再参考其它书。
现在的我已经是一名计算机工程师了,可是回想大学刚毕业时,我还是一个毛头小伙子,什么都不懂,更别提是计算机工程师了。在社会上摸爬滚打几个月后,感觉自己什么都不是,什么都不懂,在社会上立足很难。
痛定思痛,我经过长时间的考虑,我还是要回到校园中去,我要加强自己的专业知识。于是我报考了成人教育学院,在成教院里主攻计算机技术,希望自己能够考去计算机工程师,理想就是这么远了,不能太远。
我于__年获得计算机工程师技术资格,从__年元月起,被聘为公司计算机工程师至今。自任现职以来,严格履行计算机工程师的岗位职责,认真学习,努力工作,较好地完成了本职工作和领导交给的个项任务,任现职以来年度任职考核全部优秀。
通过几年来的学习和实践,不仅专业知识得到了一定的拓展,而且利用专业知识解决实际问题的能力也得到了进一步的提高。本人将在今后的工作中加强理论学习,不断完善自己,为计算机事业的发展做出更大的成绩。
一、不断加强理论学习,拓宽知识领域
计算机行业是个飞速发展的行业,计算机技术更是发展的日新月异,因此,不断加强理论学习,拓展知识领域,进行知识更新,也是形势所迫。为了加强自身计算机水平的提高,于__年在微软授权培训中心接受microsoft sql65和microsoft nt4培训,并获得中国微软颁发的双科结业证书;同时,为了掌握计算机更前沿的技术,充实自己的理论知识,与__年取得国家教委颁发的“计算机科学与技术同等学历硕士学位综合课程考试”合格证书。通过学习,不仅丰富了自己的理论知识,更加强了在计算机应用中的实际解决问题的能力。
二、思想政治表现:
能认真学习拥护党的领导,坚持四项基本原则,热爱祖国,遵纪守法,具有良好的思想素质和职业道德,能用“三个代表”的要求来指导自己的行动。积极要求进步,团结友善,明礼诚信,曾于__年公司计算机应用大赛中荣获一等奖,并于__年度被公司评为“优秀职工”。现将任职七年来的情况汇报如下:
三、总结经验,不断提高理论水平
任职七年来,根据生产实际中存在的问题,不断总结经验,提高理论水平。
四、完成本职工作的质和量
本人熟悉本专业领域的国内外现状和发展趋势,具有丰富的计算机理论知识和计算机在企业管理方面的经验,具有较强的解决本专业实际问题的能力,能将本专业与相关专业相互配合,协调解决有关技术难题,能指导工程师工作和学习。任职期间,较好的完成了公司下达的责任目标。
1、参加撰写公司的计算机与信息工作计划。
2、在__年至__年间,利用三年的时间,进行了公司计算机网络综合管理系统的建设与实施工程,使公司企业办公自动化以及生产调度自动化走向现代化的前沿。
3、__至__年年,先后为公司以及下属部门独立编制了具有本企业特色的软件。
4、受经理的委托,为部分技术人员和管理人员累计授课达数百课时,在授课过程中,自己能将理论结合实际,深入浅出,圆满完成了教学任务,提高了本公司技术人员素质和职工素质,为计算机的普及做了一定的贡献。
5、任职期间,不仅建设了本公司的企业内部与互联网的网站,打开企业的知名度,受到领导的表彰。
6、参与完成了公司项目。该项目投入使用后具有显著的经济效益,年节约资金150万元。
7、主持完成了总公司系统,实现无纸化办公。
8、__年年作为主要负责人之一完成了总公司的管理信息系统,取得一定的社会和经济效益,使公司服务上了一个新的台阶。
五、工作业绩:
1、本人自参加工作以来,一直在从事计算机技术工作。工作中,注重技术成果的推广应用。
2、__至20__年,在“公司系统”中,本人进行了部分模块的软件编写工作,该系统经省、市科委鉴定,被一等奖。本系统的完成,较好的解决了公司问题,取得极大的社会经济效益。
计算机科学与技术这一门科学深深的吸引着我们这些同学们,上计算机系已经有近三年了,自己也做了一些思考我一直认为计算机科学与技术这门专业,在本科阶段是不可能切分成计算机科学和计算机技术的,因为计算机科学需要相当多的实践,而实践需要技术;每一个人(包括非计算机专业),掌握简单的计算机技术都很容易(包括程序设计),但计算机专业的优势就在于,我们掌握许多其他专业并不“深究”的东西,例如,算法,体系结构,等等。非计算机专业的人可以很容易地做一个芯片,写一段程序,但他们做不出计算机专业能够做出来的大型系统。今天我想专门谈一谈计算机科学,并将重点放在计算理论上。
计算机理论的一个核心问题——从数学谈起:
记得当年大一入学,每周六课时高等数学,天天作业不断(那时是六日工作制)。颇有些同学惊呼走错了门:咱们这到底念的是什么系?不错,你没走错门,这就是计算机科学与技术系。我国计算机科学系里的传统是培养做学术研究,尤其是理论研究的人(方向不见得有问题,但是做得不是那么尽如人意)。而计算机的理论研究,说到底了,如网络安全,图形图像学,视频音频处理,哪个方向都与数学有着很大的关系,虽然也许是正统数学家眼里非主流的数学。这里我还想阐明我的一个观点:我们都知道,数学是从实际生活当中抽象出来的理论,人们之所以要将实际抽象成理论,目的就在于想用抽象出来的理论去更好的指导实践,有些数学研究工作者喜欢用一些现存的理论知识去推导若干条推论,殊不知其一:问题考虑不全很可能是个错误的推论,其二:他的推论在现实生活中找不到原型,不能指导实践。严格的说,我并不是一个理想主义者,政治课上学的理论联系实际一直是指导我学习科学文化知识的航标(至少我认为搞计算机科学与技术的应当本着这个方向)。
其实我们计算机系学数学光学高等数学是不够的(典型的工科院校一般都开的是高等数学),我们应该像数学系一样学一下数学分析(清华计算机系开的好像就是数学分析),数学分析这门科学,咱们学计算机的人对它有很复杂的感情。在于它是偏向于证明型的数学课程,这对我们培养良好的分析能力极有帮助。我的软件工程学导师北工大数理学院的王仪华先生就曾经教导过我们,数学系的学生到软件企业中大多作软件设计与分析工作,而计算机系的学生做程序员的居多,原因就在于数学系的学生分析推理能力,从所受训练的角度上要远远在我们之上。当年出现的怪现象是:计算机系学生的高中数学基础在全校数一数二(希望没有冒犯其它系的同学),教学课时数也仅次于数学系,但学完之后的效果却不尽如人意。难道都是学生不努力吗,我看未见得,方向错了也说不一定,其中原因何在,发人深思。
我个人的浅见是:计算机系的学生,对数学的要求固然跟数学系不同,跟物理类差别则更大。通常非数学专业的所谓“高等数学”,无非是把数学分析中较困难的理论部分删去,强调套用公式计算而已。而对计算机系来说,数学分析里用处最大的恰恰是被删去的理论部分。说得难听一点,对计算机系学生而言,追求算来算去的所谓“工程数学”已经彻底地走进了误区。记上一堆曲面积分的公式,难道就能算懂了数学?那倒不如现用现查,何必费事记呢?再不然直接用Mathematics或是Matalab好了。
我在系里最爱做的事情就是给学弟学妹们推荐参考书。中文的数学分析书,一般都认为以北大张筑生老师的“数学分析新讲”为最好。万一你的数学实在太好,那就去看菲赫金哥尔茨的“微积分学教程”好了但我认为没什么必要,毕竟你不想转到数学系去。吉米多维奇的“数学分析习题集”也基本上是计算型的东东。书的名气很大,倒不见得适合我们,还是那句话,重要的是数学思想的建立,生活在信息社会里我们求的是高效,计算这玩意还是留给计算机吧。不过现在多用的似乎是复旦大学的《数学分析》也是很好的教材。
中国的所谓高等代数,就等于线性代数加上一点多项式理论。我以为这有好的一面,因为可以让学生较早感觉到代数是一种结构,而非一堆矩阵翻来覆去。这里不得不提南京大学林成森,盛松柏两位老师编的“高等代数”,感觉相当舒服。此书相当全面地包含了关于多项式和线性代数的基本初等结果,同时还提供了一些有用的又比较深刻的内容,如Sturm序列,Shermon-Morrison公式,广义逆矩阵等等。可以说,作为本科生如能吃透此书,就可以算高手。国内较好的高等代数教材还有清华计算机系用的那本,清华出版社出版,书店里多多,一看就知道。从抽象代数的观点来看,高等代数里的结果不过是代数系统性质的一些例子而已。莫宗坚先生的《代数学》里,对此进行了深刻的讨论。然而莫先生的书实在深得很,作为本科生恐怕难以接受,不妨等到自己以后成熟了一些再读。
正如上面所论述的,计算机系的学生学习高等数学:知其然更要知其所以然。你学习的目的应该是:将抽象的理论再应用于实践,不但要掌握题目的解题方法,更要掌握解题思想,对于定理的学习:不是简单的应用,而是掌握证明过程即掌握定理的由来,训练自己的推理能力。只有这样才达到了学习这门科学的目的,同时也缩小了我们与数学系的同学之间思维上的差距。
概率论与数理统计这门课很重要,可惜大多数院校讲授这门课都会少些东西。少了的东西现在看至少有随机过程。到毕业还没有听说过Markov过程,此乃计算机系学生的耻辱。没有随机过程,你怎么分析网络和分布式系统?怎么设计随机化算法和协议?据说清华计算机系开有“随机数学”,早就是必修课。另外,离散概率论对计算机系学生来说有特殊的重要性。而我们国家工程数学讲的都是连续概率。现在,美国已经有些学校开设了单纯的“离散概率论”课程,干脆把连续概率删去,把离散概率讲深些。我们不一定要这么做,但应该更加强调离散概率是没有疑问的。这个工作我看还是尽早的做为好。
计算方法学(有些学校也称为数学分析学)是最后一门由数理学院给我们开的课。一般学生对这门课的重视程度有限,以为没什么用。不就是照套公式嘛!其实,做图形图像可离不开它,密码学搞深了也离不开它。而且,在很多科学工程中的应用计算,都以数值的为主。这门课有两个极端的讲法:一个是古典的“数值分析”,完全讲数学原理和算法;另一个是现在日趋流行的“科学与工程计算”,干脆教学生用软件包编程。我个人认为,计算机系的学生一定要认识清楚我们计算机系的学生为什么要学这门课,我是很偏向于学好理论后用计算机实现的,最好使用C语言或C++编程实现。向这个方向努力的书籍还是挺多的,这里推荐大家高等教育出版社(CHEP)和施普林格出版社(Springer)联合出版的《计算方法(Computational Methods)》华中理工大学数学系写的(现华中科技大学),这方面华科大做的工作在国内应算是比较多的,而个人认为以这本最好,至少程序设计方面涉及了:任意数学函数的求值,方程求根,线性方程组求解,插值方法,数值积分,场微分方程数值求解。李庆扬的那本则理论性过强,与实际应用结合得不太紧。