文章吧-经典好文章在线阅读:计算机程序设计艺术(第1卷)读后感10篇

当前的位置:文章吧 > 经典文章 > 读后感 >

计算机程序设计艺术(第1卷)读后感10篇

2018-02-23 21:54:02 来源:文章吧 阅读:载入中…

计算机程序设计艺术(第1卷)读后感10篇

  《计算机程序设计艺术(第1卷)》是一本由[美] Donald E. Knuth著作,清华大学出版社出版的精装图书,本书定价:80.00元,页数:650,文章吧小编精心整理的一些读者的读后感,希望对大家能有帮助

  《计算机程序设计艺术(第1卷)》读后感(一):一些想法,同对Concrete Mathematics的评论

  总有人说因为这本书能提高编程水平,所以推荐看;还有人说经典就是经典,不得不看。个人觉得非常的反感

  当然他确实能给你一些tricky的灵感,但是

  如果你不从数学角度来读,不去理会他的数学思想,简直就是浪费时间。 TCS(Theoretic computer science)跟实际的计算机应用界差得很远,可以说是一个数学的世界理论计算机科学也是从数学的一个小分支发展起来的。

  在你连大O小o都搞不清楚, NP和NP-hard都搞不清楚,基本的插值多项式都不知道;或者连算法导论都没看,对数学分析没有兴趣,认为数学只是工具;写个算法不会用伪代码而一味的用C++或着JAVA来描述,那么可以说不必看这本书了,好高骛远

  这本书的内容不广,可以说窄,但是每一个点上都钻研的很有深度。还有对Mix的出现不是十分赞同,读者需要去学一遍他的汇编。不过那段用mix描述的电梯程序相当简洁,有兴趣的可以用高级语言改编一下玩玩。

  这里是数学的世界,渗透着机器处理问题的新式思维,一本很多TCS著名学者都不敢轻言“看懂”的书。

  不要人云亦云,因为“经典”而随随便便去阅读,要看这本书适合的读者。只有对数学和理论计算机有一颗虔诚安静的心,才能触及这本书的灵魂

  《计算机程序设计艺术(第1卷)》读后感(二):应该怎样读TAOCP

  谈谈我自己读这套书的心得抛砖引玉

  首先要清楚这套书的定位:它是古典的算法分析的工具书。

  1.古典(classic)体现在模型和问题上。

  模型就是顺序算法(sequential algorithms)的经典模型。大名鼎鼎的MIX并非是个程序设计语言这么简单,而是一个计算模型:即标准指令集RAM。这是个非常经典,也是非常符合现实的上界(upper bounds)模型。

  该书涉及到的问题是计算机科学诞生之初就自然面对的几个基本的算法和数据结构的问题。时至今日,这些问题还在应用中扮演着重要角色;在很多研究课题中,它们是基础或原型。

  2.算法分析(analysis of algorithms)是此书的核心

  TAOCP并没有综述算法设计(design of algorithms)的各种思想;也没有介绍证明问题下界(lower bounds)的各种技巧;也并没有对问题、模型、复杂度这些专题作出体系性的阐述。可以说,TAOCP的几乎所有的篇幅都放在了对具体算法的性能分析上,并把这条路走到了极致

  3.工具书。这最有争议,因为毕竟还有习题。一些介绍也饶有趣味,不太符合大家对工具书的枯燥这一成见。

  但把TAOCP看作工具书还是教材,这就关系到怎么去读这本书。

  (一)该顺着读还是跳着读:个人认为,没有哪本专业书是不能跳着读的。但前提是你对整个书的结构比较清楚,对它的内容也一定程度的熟悉。知道自己想要查阅的部分。如果是初学者,则不建议这么作,至少还是老老实实的把第一章顺序读下来。可是TAOCP并不是给初学者看得。

  (二)初学者适合读TAOCP吗:不太建议。但也要看如何定义初学者——吾生而有涯,而知也无涯。一定程度上,每个人都是初学者。读 TAOCP的前提,就是自己至少比较清楚轻重缓急,可以大概判断那些是根本,那些过时,那些是炫技。这根据每个人的需要,都有各自的具体情况,但至少心里要有点数。如果读书时觉得前路茫茫,完全不知哪里重要。那么去正经的选一门算法基础课才是更应该作的。

  (三)MIX值得用心学吗:这要首先清楚Knuth为什么要在这个讲算法的书里搞出个MIX。个人理解原因有三。其一,如上所述,计算模型;其二,作者个人的审美品味;其三,用于描述算法的语言。第一条里MIX是桥梁作用,确保数学上的严谨同时也足以代表现实中典型的计算机体系结构。第二条是美学意义。第三条的作用等于伪码。算法用MIX写一遍,这是为了确保上界算法在模型内的严谨性。整个书都没有用MIX模型来证明任何下界,因此除了确保严谨性,MIX没有在数学上起到实际的用途。因此,过分钻研MIX对于理解书中算法没有太多帮助。但如果纯粹只是个人兴趣则另说。

  (四)习题该怎么对待:TAOCP是为数不多的计算机专著里面能出这么多高水平习题的了。如果有大块的时间,能做一做当然最好不过。但如果只是一般的查阅,习题并非必要。不过有的习题本身就是经典问题。如果正文里没有找到想要的东西,不仿看看习题。

  (五)如何读正文里的算法分析:TAOCP里面的算法分析,算是古典算法分析里面的原教旨主义始作俑者就是Knuth本人,后面还有 Sedgewick和Flajolet等一干人等给他发扬光大。这一派的作风可以说分毫必究,连常数都不放过。但数学工具却无外乎初等的《具体数学》的工具。这是很好很强大的东西,掌握好了,无论研究还是工作都很方便。但其实TAOCP的数学都不算太难,仔细倒是真的。因此,如果时间不是特别充裕,对书中结构的了解,要比具体分析步骤重要。这些经典内容多少年就没变过,每次有用时都可以回来查查看,每查一次说不定会有新的收获

  (六)TAOCP的不足:前面已经提过了,下界(lower bounds)介绍的不够。下界结果,大多数只在章节结束讨论部分引用一下。第三卷的查找(searching)一章,一些近些年的下界方面的新进展都没有被引用,Knuth可能没有想到,数据结构这个经典方向这么多年来都在不温不火的不断前进着,尤其是下界。类似的也有第二卷的随机数(random numbers)一章,可以说连上界都严重过时,错过了去随机(derandomization)的黄金时代。好在其他几章这么多年来无甚进展,没怎么过时。

  许多人对TAOCP的推崇是无条件的,这里难免有人云亦云的成分。其实大可不必,读的人尽管放轻松。这么说不是因为TAOCP不值得推崇,而是就算把一切溢美之词都抛于脑后,随着岁月流逝,反复的阅读,你也一定会越来越喜欢这部书的。它的魅力经的起时间的考验

  《计算机程序设计艺术(第1卷)》读后感(三):八卦高德纳

  1. 高德纳曾在自传开头幽默地发问:“Donald Knuth真的只是一个人么?”作为现代计算机科学的鼻祖,他完成了编译程序、属性文法和运算法则领域的前沿研究,出版专著17部,发表论文150余篇(涉及巴比伦算法、圣经、字母“s”的历史等诸多内容),写出两个数字排版系统,同时在纯计算数学领域也有独特贡献。他获得的奖项难以胜数,其中包括ACM Turing Award颁发的图灵奖(1974),美国国家科学奖(1979),日本KYOTO奖(1996),瑞典科学院的Adelskold奖及冯诺伊曼奖。而他对荣誉不经意,据说那只代表至高荣誉的图灵碗被用来盛放水果。——回首过往,几十年时光如白驹过隙,大约是他自己对做出的成果如此之多也感到吃惊,所以才有以上一问。 2.八岁时的高德纳即显出超凡智力:当时某糖果商以小学生为参与对象举办了一项益智趣味比赛要求用“Ziegler’s Giant Bar”(分别为糖果厂名和出产的棒棒糖名)里的字母写出尽可能多的单词。高假装胃疼宅家两周,依靠一部大字典列出了4500个单词(超出裁判掌握的2000个单词一倍多),不仅使所在班级夺冠(奖品为一台电视机和每人一块Giant Bar),本人也赢得一付雪撬。其赛后感言曰:我还能写出更多。 3.在高中第一学年,高德纳并未对数学发生太大兴趣,他更喜欢音乐与作曲,一度考虑过报考音乐专业。这个爱好深度影响到他后来的生活及研究——他将写作喻为演奏管风琴,其书房里的确也摆放有一台特制的84管管风琴,此外他还会萨克斯和大号等乐器。所著《娱乐和游戏论文集》一书有四个章节内容涉及到高的“主要副业”——音乐;进入90年代,当连续工作几天需要放松一下时,他会着手谱写管风琴乐曲。 4.1956年以科均97.5的分数高中毕业进入凯斯理工学院物理专业后,高德纳中学创作的科幻小说《普茨比度量衡体系》发表于著名的《疯狂》(Mad)杂志,挣得平生第一笔稿费25美元及西屋“科学天才”提名奖。这个作品曾多次再版,直到作者即将退休的1991年还重印过一次。 5.大学一年级留校打工,毗邻的计算机房新到了一台IBM650——这个指示灯闪烁不定的庞然大物让高德纳生出莫大兴趣。当获准在晚上操作那台计算机后,他几天不眠不休地观察探究,并且改动了说明手册上的程序使之更加好用。一年后,高改入数学系,自此终生同计算机结缘。当时兼职学校篮球队的他用IBM650写了一个程序,用于对球员在每场比赛中得分、助攻、抢断、篮板球、盖帽等一揽子数据的分析评估,球队教练据此挑选球员,使凯斯理工学院赢得了1960年的联赛冠军。这个“神奇公式和程序”引来了当地媒体乃至CBS电视台的大肆报道,高所在球队和IBM650的合影被IBM印到了产品宣传册上。这段经历重要性不言而明,以至高德纳在巨著《计算机程序设计的艺术》第一卷卷首写下“献给曾经安装在开思理工学院的650型计算机,以纪念那些愉快的夜晚”的题辞。 6.上大二那年,某教授课堂上给出一个刁钻的题目,宣称谁能破解就可记成绩“A”。高跟大多数同学都以为那是道无解的题,直到某日他未赶上公共汽车,只能步行去看一个演出时,方决定利用路上的闲暇碰下运气。不承想问题很快便获得解决成功地得到了“A”。在接下来的那个学年里,他的离散数学成绩又一次被老师评为“A”。 7.高德纳1960年毕业于开思理工学院,因学业特别出色,被破例同时授予学士和硕士学位。之后在伯克利攻读数学博士期间,ALGOL60经常因为编译器不成熟出现故障,他为此编写了一个简单的测试程序,人称“Man or boy test”(男人男孩测试),可以译成“是男人就得-67”。高解释,用ALGOL60来编译这段程序,只要运行结果等于-67,就说明这个编译器没有问题了,是纯爷们儿。 8.习惯铅笔而非键盘写初稿,高将原因归咎于打字速度远高于思考速度(每分钟 80 个单词以上),而这会导致思考出现太多停顿,用铅笔可以让思考与输入速度保持一致——“我打字的速度比我思考的速度更快,这样当我试图用键盘创作重要内容时,就会产生同步问题。速度通常不会是最重要的标准。科学一般都难以迅速解释或迅速领会……我通常的工作方式是用铅笔和纸先把所有东西都写下来,然后在旁边放一个大废纸篓。然后使用Emacs将所有文本键入到机器中……特定的Emacs快捷键使得写书的过程有点儿像演奏风琴……” 9.“我戴着一顶计算机科学家帽子,而不是一顶数学家的帽子。”这似乎暗示了身为加州理工学院数学博士的高对数学家的某种成见——在他看来后者只知道“What is it(这是什么)”,而前者还知道“How to do it(如何做到这一点)”这可能是他心目中的数学与计算机科学的区别。 10.斯坦福大学曾让高德纳为自己选择个头衔,他确定的是“计算机程序设计艺术名誉教授”。高认为“计算机科学”不是科学(他很讶异人们为何如此喜欢科学),而是一门艺术。它们的区别在于:艺术是人创造的,而科学不是;艺术是可以无止境提高的,而科学不能;艺术创造需要天赋,而科学不需要。 11.传闻高改作业通常是随机翻到一页认真批阅,有了一个初步印象后,对剩下的内容就只大概看看了。阅读大致也照此办理:遇上大部头先读第316页,如果书比较薄就看第100页;随后就可以作出判断了,据说准确率还八九不离十。如果追随他的人很多,以后著书就要注意了:写到第316页或100页时一定要停下来多推敲下。这或许是高德纳推崇随机算法的结果。 12.“文学化编程(Literate Programming)”是高写的又一程序,他自称写这个程序的动机有二:A.让一个程序员(或许就是他自己)在某一日拿到普利策奖;B.让那些提出“结构化程序”的家伙在写“非文学程序”时,就像他当年写“非结构化程序”时一样怀有罪恶感——娃哈哈。有关“文学编程”设想的文字最先发表于英国的《计算机学报》,有人问为何不在美国发表,高答曰:美国人没文化,他们理解不了啊。 13.《美国数学月刊》刊载过高德纳一篇名为“卫生纸问题” 的论文,研究如何合理使用厕纸的算法,小节标题中使用了大量的“粪便学”词汇。编辑警告他,过度调侃的文风在我们这里是危险的,请三思!高替换了小标题里的某些词,但不想动文章标题,遂在给编辑的回信里写道:我用这个题目做过两次演讲,主题早已被广泛采用和讨论……云云。编辑无奈之下只好表示:“你的厕纸被接受了!”(斯坦福大学计算机科学系楼内的厕纸架可并放两筒厕纸,供如厕者取用。卷筒大小不等时,喜欢从大筒拿纸的叫big-chooser【大的选择器】,喜欢从小筒拿纸的则称little-chooser【小的选择器】;若两筒大小接近,一般人的选择可能是离手最近的。厕纸平时由janitor【看门人】负责更换,用完一筒换掉一筒;不过要是同时用完,恐怕就会有人遇上麻烦了……高研究的似是两筒纸同时用完的窘境出现的概率) 14.在伯克利毕业的前一年,著名的艾迪生-韦斯利出版社约初露头角的高德纳写一本编译器和程序设计方面的书,这件原本寻常的事最终成就了计算机科学史上的一个奇观。出版社1962年约稿,可直到1966年还动静全无,编辑忍不住去电催促,说都过去4年了,书写到啥程度了啊?高答才3000来页。编辑惊呼那干嘛还不交稿?答曰还没进入正题呢。编辑崩溃地说,那只能出多卷本了…… 15.《计算机程序设计艺术》第一卷于1968年推出,可真正能读完读懂的人为数并不多(传比尔•盖茨费时几个月才读完这一卷,然后说,如果你想成为一个优秀的程序员,那就去读这个《基本算法》吧)。高对此解释道:“我知道我的书是不容易读,不过要知道的是,如果不是我精雕细琢地写的话,它们会比现在难读一百倍。”1973年,这部刚出到第三卷的书(计划写七卷)已被计算机界视为“神作”,最初几年就卖出100多万套;译为俄、日、西、葡、匈牙利、罗马尼亚等多种文字后,更创造了计算机类图书的销售纪录。美国计算机协会(ACM)也不淡定了,1974年就将国际计算机界的至高荣誉“图灵奖”授予了他——此时的高德纳年方36岁,他迄今还是这项最年轻图灵奖获得者纪录的保持者。 16.获此殊荣后,令业界大跌眼镜的是:高宣布暂停写作,理由是现有的计算机排版软件效果太差,破坏了这套书的美。这不免引发作者是否江郎才尽,见好就收的猜测与怀疑——不料辍笔10年的高德纳以三个重量级创造性成果:字体设计系统METAFONT(其价值一言以蔽之:计算机界最懂字体的俩大腕,一是乔布斯,一是高德纳)、文学化编程(充分展示程序设计的艺术性:清晰,美感,诗意),尤其是最具革命性的排版系统TEX(至今仍是全球学术排版的不二之选)给出了强力回应。尽管如此,仍有人说高写完三卷 TAOCP就去研究TeX,其实是害怕写第四卷——不过他对这类风言风语根本不以为意:“一个人要把事情做的完美,只有跟上帝的意图保持和谐,现在上帝要我去写第四卷了。” 17.搁置手头的重要工作,费时10年专研排版美学打造TEX系统,原因其实很简单:数理图文排版以前一直使用金属活字,70年代以降始有激光照排,然而当时的计算机虽能替代人工排出普通的报纸杂志,但对处理复杂的数理公式却力不从心。高德纳试图为计算机写一个小玩艺儿解决上述问题,TeX的前半部分由此产生。编写过程中,他想参考J•伯克霍夫的Aesthetic Measures(《美学标准》)一书,在哈佛的图书馆几经查阅也未能如愿,之后好不容易在麻省理工学院找到。参考的结果是在TeX里加入一个变量badness,用以衡量一行文字的美感,变量越小文字就越美。 18. TEX功能强大、几近无懈可击,其版本号非自然数列,也非年份,而是不断逼近的圆周率(最新版本为3.1415926)——这等于宣告产品接近完美,已经不可能作大的改进了。高为此设置了悬赏奖金:谁找出TEX里的一个bug,就付给其2.56美元,找出第二个5.12美元,第三个10.24美元……依此累加。算法大师不可能不明白指数增长的可怕性(传说中的国王就是玩指数游戏输掉了江山),然而直到今天,他也未能为此付出多少钱。高的另一悬赏是向发现其著作中错误的人发奖,数额依旧是2.56美元始,因为“256美分刚好是十六进制的一美元”。不过寥寥几位获奖者都将有他签名的支票当作文物珍藏,并未打算去银行兑现。 19.作为开源代码运动最早的倡导者之一,高德纳将Tex 和Metafont无偿贡献给了世界,自己没有从中获取任何报酬。他的想法是,一个人一旦能够喂饱自己并有个安身之所,剩下的就是为别人做点什么了。“我尝试尽我所能的去熟悉电脑科学里的一些领域,然后把这些知识摘要成大家比较容易了解的方式,让没有那么多时间做这种学习的人也能够吸收它们”。为此他常常需要阅读超过20万页的文献,然后将之浓缩为两千页——他无意追赶最流行的内容,而是希望从日新月异的信息中萃取出能够存活到下个世纪的精华。 20. 1992年,高为潜心写作TAOCP从斯坦福提前退休,同时停用电子邮箱(他自1975年就开始玩电邮)。2008年,TAOCP前三卷出版30年后,第四卷在高粉的千呼万唤中终于面世,此际的高德纳已然是满头白发。对计算机科学的倾心热爱,使他为这部作品耗费了毕生心血:从及冠之年直至古稀老人。 21.高做过大受欢迎的“信仰与科学的关系”系列讲座,对访者问及的写作和信仰之间的关系,他回答说:“计算机科学是既壮观又幽美的,我尝试尽自己所能,以最恰当的方式来解释我所了解的某些片断……我相信,总有一些神秘的东西是超越人类的理解而存在的……我认为,上帝希望我能创造某些成果,而这些东西能够启发其他人去创造别的成果。” 22.高德纳这个中文名来自储枫教授(香港城大计算机科学系主任,华裔图灵奖得主姚期智的夫人)。以“高”为姓,据Knuth自述是因其个头高大,且辅音G和K读音接近;“德纳”则与“Donald”相谐,且在中文里含体面高贵之义。其时(1977年)高德纳携夫人及儿女John和与Jen正准备访问中国大陆——储枫给孩子也分别起了“高小强”、“高小珍”的名字,他们全家还同中国孩子在公园玩过无须语言交流的游戏。 23.有人视高为文艺复兴时期式的天才人物,因其不仅博学,更难得的是具超一流的动手能力——在分工日益细化,专业领域愈来愈狭窄的现代社会,这种博而专,基础与应用兼能,理论和操作并行的人才类型尤为罕见。如同一个人独力设计制造一架飞机,除了需要精通空气动力学理论,还须考虑机身上每一颗螺丝钉的固定方式,这确实不免让人想到欧洲文艺复兴时期列奥纳多•达•芬奇那样的全能巨人。 24. 唐纳德•欧文•克努特(Donald Ervin Knuth):1938年生于美国威斯康辛州密歇根湖畔的密尔沃基,斯坦福大学计算机科学系荣誉退休教授,排版软件TeX和字型设计系统Metafont发明人,所著描述基本算法与数据结构的巨作《计算机程序设计的艺术》被《美国科学家》杂志列为20世纪最重要的12本物理科学类专著之一,与爱因斯坦《相对论》、狄拉克《量子力学》、理查•费曼《量子电动力学》等经典比肩而立。

评价:

[匿名评论]登录注册

评论加载中……