当前位置:首页 » 软件设计 » 计算机程序设计艺术

计算机程序设计艺术

发布时间: 2020-11-22 06:30:27

⑴ 如何阅读和学习《计算机程序设计艺术》

拿到一本书,应该先看他的封面或者扉页,对于前面的作者介绍和生平有一个大致内了解,这容是为了方便之后对于书中内容的理解,会知道该怎么基于作者的观点来理解作者的描述,也会根据这个,来思考自己的理解对于这本书的本意有多大的意义。

⑵ 计算机程序设计艺术的内容简介

本书作者D. E. Knuth是在计算机学界十分著名的学者,在本领域享有很高权威和盛名,他的这部著作是无数计算机专业人员的学习教材和参考读物,也是许多专业研究工作者经常阅读的经典。本书已被翻译为几十种文字在世界各地出版,英文原版书在国外已经是第11次印刷。
该书1999年底被American Scientist列为20世纪最佳12部学术专著之一(与狄拉克的量子力学、爱因斯坦的相对论、曼德布罗特的分形论、鲍林的化学键、罗素和怀特海德的数学原理、冯诺意曼和摩根斯坦的博弈论、维纳的控制论、伍德沃和霍夫曼的轨道对称性、费曼的量子电动力学等科学史上的经典著作并列)。
本书结合大量数学知识,分析不同应用领域中的各种算法,研究算法的复杂性,即算法的时间、空间效率,探讨各种适用算法等,其理论和实践价值得到了全世界计算机工作者的公认。书中引入的许多术语、得到的许多结论都变成了计算机领域的标准术语和被广泛引用的结果。另外,作者对有关领域的科学发展史也有深入研究,因此本书介绍众多研究成果的同时,也对其历史渊源和发展过程做了很好的介绍,这种特色在全球科学著作中是不多见的。
作者高德纳几十年来对此书倾注的心血难以计量,他力求随着有关领域的最新进展不断更新内容,力求随着原版书的不断重印令其技术的、史实的和出版方面的错误或不当减到极少(他为了能够满意地随时修订自己的著作,发明了计算机排版系统TEX和字形设计系统METAFONT,无偿公诸于世,使全世界的科技文献作者普遍受惠),现在其最新印次已很难找到错误,作者承诺以2.56美元兑奖励来酬谢任何一个错误的头一个发现者。而相关史实的新证据、相关研究的新进展、习题的新解答仍在及时充实到勘误表或新的印次中。

⑶ 计算机程序设计艺术到底是算法书还是纯数学书我翻半天没见一行代吗,

这位兄弟 我不知道你是不是计算机或者相关专业的,我简单给你介绍一下哈。
计算机程序艺术(下简称TAOCP)的的确确是一步史诗般的巨作,如果你是相关专业的话我觉得这本书读了会获益一辈子。TAOCP的作者是史上最年轻的图灵奖获得者(相当于计算机领域里面的诺贝尔奖了),而且要强调的是他获奖的原因不是其他,正是编写了这样一套书(七卷中目前只出到第四卷)。所以本套书的价值不言而喻。
对于您所问的TAOCP代码问题,建议你从本书的第一卷开始读起,作者在120页左右开始定义整套书所使用的机器。没错,就是构建了一台虚拟的计算机,其所有操作码也是自己定义的。说白了就是自己弄了一套汇编码。
要强调的是作者没有用高级语言并非时代限制(作者今日还在写书的余下几卷),而是处于对于贴近硬件以及理解机器工作方式而选择的!这正是本书的经典。语言易变,但思想永恒。
说老实话,语言不难学,看看第一卷120页左右那几小节就懂了,希望你好好阅读,有所收获!

⑷ 计算机程序设计艺术 半数值算法 讲了哪些算法

半数值算法,分“随机数”和“算术”两章。本卷总结了主要算法范例及这些算法的基本理论,广泛剖析了计算机程序设计与数值分析间的相互联系。
资料来源:http://ke..com/link?url=Geb_-bcrj839-mcJECYorbj7-GzwQOjXDlhGA8s6tdgI_zXlQbDZq#4

⑸ 跪求计算机程序设计艺术第一卷英文版。。。

这个暑假没有回家,就从图书馆借来了第一卷,发现里面的东西写的的确比国内的书写的好,可惜需要太多时间来挖掘,难度较大。如果做题目的话,一年能看完一本书也应该......

⑹ 如何阅读和学习《计算机程序设计艺术》

为了以后找工作更加方便,你可以选择一些比较热门的专业,例如电商、网络编程、电商财会、ui设计等等,发展前景大,能够进入的工作单位都比较容易找。其实这些计算机相关专业,学习起来还是比较容易的,上课好好听老师的思路,根据老师的指导走流程,祝你学到真本事

⑺ 如果把那三卷TAOCP(计算机程序设计艺术) 看完, 并把那里的习题做完, 能达到怎么样的水平

比尔盖茨会很爱你。

其实完全不需要什么外在的资源,就是死抠这已经出版的四册,把它抠完,你就是大ACE了。
话说这套书还没写完,图灵奖就迫不及待地颁给了它,史上最年轻的图灵奖得主。巨著、典章、圣典级别的东西。
反正我是看不下去……买了一套摆在书架上花供养,一翻就头晕,IT圣经的威力可不是开玩笑的……
话说过了这么多年了,题主看了吗?

⑻ 计算机程序设计艺术 英文版 电子版


一共三卷,2008年出版的,英文版PDF电子版,要吗?点我头像联系

⑼ 如何阅读和学习《计算机程序设计艺术(TAOCP)》

哦,上帝!《The Art of Computer Programming》引那位出名的王垠对的评论: 本来早就想想写一个对于Knuth的The Art of Computer Programming的看法。 没想到一去Amazon就找到一个同类 关于Knuth的 TAOCP,我想,大部分人声称看了他的书,或者买了他的书,不过是作为一种炫耀的资本或者摆设。我对门的同学几年前就买了一套三本,全新的精装本,花了 200多块钱。可是呢,他从来就没看。我把它借过来,看了几页就放在那里没有看了。我哪有时间看他用那些一个字节6位的机器语言实现简单的链表!有一天一个师弟走进来,看到那套书在我书架上,显示出一种敬畏感:“挖!师兄!你好牛啊!居然看这么高深的书!” 我一愣。嗯,不错嘛,这套书放在书架上可以让人对我刮目相看。这恐怕就是它对很多人的实际作用。还有人可以帮助神化这套书,同时也神化自己,比如他可以这么说:“谁要是看完了Don Knuth的 The Art of Computer Programming 我就雇用他!” 这样可以显得比一般看过书的人还要高一等。据说Bill Gates就是这么做的。我怀疑他自己看完过没有。 我讨厌这套书的一个原因就是Knuth故意用一个叫 MIX 的处理器的机器语言来写这本书。虽然在新版的书里他设计了一种新的处理器 MMIX,但是换汤不换药。他以为一部“永恒”的计算机编程书不应该使用高级语言,因为它们很容易过时。但是他错了,机器语言恰恰是最容易过时的东西,看看现在有多少牌子的更新换代的处理器就知道。而世界上确实存在非常高级的语言从60年代到现在都没有过时。我预言,MMIX会在不久的将来被淘汰。很好笑的是MMIX是在MIX上加了一个“M”,代表Millennium(千禧年)。关于它的专著也起名为 MMIXware---A RISC Computer for the Third Millennium。一千年甚至短短一百年,几十年以后,计算机还是不是二进制的集成电路都说不清楚,况且这个处理器其实就是从别的处理器比如RISC II, Sparc之类的捡了一点东西,没有什么大的创新。他就把这个处理器的模拟程序印在纸上卖,曰:“一个优秀的程序要像一部好的小说一样容易读懂。一个优秀的程序员会在将来拿到普利策奖。” 用机器语言写一点初级的计算机入门部分还可以,但是用来写整整一部书未免容易让读者只见树木不见森林了。看TAOCP最容易出现的一种现象就是,“哇!原来这个程序可以这么写。” 但是你不知道为啥那么写。虽然可以知道一些底层的原因,但是最根本的原理,读者始终不会明白。就像看清楚了一张图片上的每一个像素,却认不出图片上其实是一个熟人。看清楚了棋盘上每一个棋子能走的地方,却不能赢棋。Dijkstra 说计算科学不应该被叫做"computer science",就像外科手术不应该叫做"knife science"。可是这关Knuth什么事呢,他的书名叫做 The Art of... 再说他的支票吧…… 很多人拿了Knuth的支票就作为一种可以炫耀的东西。以前我就看到一个Cambridge的教授主页上挂着一个Knuth支票的照片。Knuth的支票真的可以作为炫耀的资本吗?告诉你们,我找到的错误都是typo而已,没想到他也给我支票。谁叫他打字不小心,Millennium都能打成 Millenium?嘿!我凑足了一顿饭钱的支票时就想去中国银行兑现,准备换了钱大吃一顿。可是银行的职员告诉我,他们必须把支票寄回美国才能拿到现金,办理这件事的费用大大高于支票本身的价值!所以Knuth相当于给我一些空头支票。Damn!早该想到的,他为什么不往大家的信用卡上面转账,而使用支票这种过时的东西!他明显觉得有他签名的支票,肯定谁也不会拿去兑现,甚至装裱在相框里作为纪念。hmmm... 算你狠~ 好了,啰里啰唆。还是看看这个别人写的书评。White elephant,这确实道出了我对这套书的感觉。 (但是评价者有些观点我不能苟同,比如“O(n)表示法足够了”。) 希望以后对 paper 也有这种公开的 comments! Dan Friedman 的故事 (4)——C311当我刚从 Cornell 转学到 IU 的时候,Dan Friedman 叫我去上他的研究生程序语言课 B521。我当时以自己在 Cornell 上过程序语言课程为由,想不去上他的课。Friedman 把我叫到他的办公室,让我在他旁边坐下来,和蔼的对我说:“王垠,我知道你在 Cornell 上过这种课。我也知道 Cornell 是比 IU 好很多的学校。可是每个老师的教学方法都是不一样的,你应该来上我的课。我和我的朋友们在这里做教授,不是因为喜欢这个学校,而是因为我们的家人和朋友都在这里。”后来由于跟 Amr Sabry(我现在的导师)的课程 B522 时间重合,他特别安排我坐在本科生的 C311 的课堂上,却拿研究生课程的学分。后来发现,这两门课的内容基本没有区别,只不过研究生的作业要多一些。 在第一堂课上,他说了一句让我记忆至今的话:“《The Little Schemer》和《Essentials of Programming Languages》是这门课的参考教材,但是我上课从来不讲我的书里的内容。”刚一开始,我就发现这门课跟我在 Cornell 学到的东西很不一样。虽然有些概念,比如 closure,CPS,我在 Cornell 都学过,在他的课堂上,我却看到这些概念完全不同的一面,以至于我觉得其实我之前完全不懂这些概念!这是因为在 Cornell 学到这些东西的时候只是用来应付作业,而在 Friedman 的课上,我利用它们来完成有实际意义的目标,所以才真正的体会到这些概念的内涵和价值。 一个例子就是课程进入到没几个星期的时候,我们开始写解释器来执行简单的 Scheme 程序。然后我们把这个解释器进行 CPS 变换,引入全局变量作为"寄存器" (register),把 CPS 产生的 continuation 转换成数据结构(也就是堆栈)。最后我们得到的是一个抽象机 (abstract machine),而这在本质上相当于一个真实机器里的中央处理器(CPU)或者虚拟机(比如 JVM)。所以我们其实从无到有,“发明”了 CPU!从这里,我才真正的理解到寄存器,堆栈等的本质,以及我们为什么需要它们。我才真正的明白了,冯诺依曼体系构架为什么要设计成这个样子。后来他让我们去看一篇他的好朋友 Olivier Danvy 的论文,讲述如何从各种不同的解释器经过 CPS 变换得出不同种类的抽象机模型。这是我第一次感觉到程序语言的理论对于现实世界的巨大威力,也让我理解到,机器并不是计算的本质。机器可以用任何可行的技术实现,比如集成电路,激光,量子,分子,基因…… 但是无论用什么作为机器的材料,我们所要表达的语义,也就是计算的本质,却是不变的。 而这些还不是我那届 C311 全部的内容。后半学期,我们开始学习 miniKanren,一种他自己设计的用于教学的逻辑式语言 (logic programming language)。这个语言类似 Prolog,但是它把 Prolog 的很多缺点给去掉了,而且变得更加容易理解。教材是免费送给我们的《The Reasoned Schemer》。在书的最后,两页纸的篇幅,就是整个 miniKanren 语言的实现!我学得比较快,后来就开始捣鼓这个实现,把有些部分重新设计了一下,然后加入了一些我想要的功能。这样的教学,给了我设计逻辑式语言的能力,而不只是停留于一个使用者。这是学习 Prolog 不可能做到的事情,因为 Prolog 实现的复杂性,会让初学者无从下手,只能停留在使用者的阶段。 我很幸运当初听了他的话,去上了这门课,否则我就不会是今天的我。 谁是真正的程序语言专家Knuth 也曾有类似的说法:“要是看不懂 TAOCP,就别当程序员。”他总是被誉为“计算机科学的神”,在他的演讲里大谈文学,艺术,上帝和宗教,给人陡增神秘感。他总是说程序员应该学习机器语言,而不是高级语言,机器才是不变的真理。但是 Knuth 却不是从科学的角度来看这个问题,而只是他个人的偏见。当他看到 Fortran, Lisp, ALGOL, Pascal, C, C++, Java 这些语言的发展仿佛没有尽头的时候,他并没有理解其中不变的原理。在程序语言的设计上,他不是一个强者。他很有可能根本不理解 lambda calculus 和类型理论,否则他不会设计出像 TeX 那样毫无章法的语言。TeX 排版的质量无可厚非,但是到了1978年还仍然采用程序语言专家们早已深恶痛绝的 dynamic scoping,再加上其它一些蹩脚的设计,说明他对程序语言理论缺乏理解。实际上 TeX 含有一个图灵完备的扩展语言,是因为 Knuth 采纳了 Guy Steele(Scheme 的发明者)的建议,然而 Knuth 却没有把它设计好。 Knuth 觉得机器是不变的真理,所以他坚持用机器语言来写作 TAOCP。但是由于机器语言缺乏抽象,程序员没法专注于真正的问题。使用机器语言来描述算法,会把本来很简单的问题都显得高深难懂,仿佛这书永远也看不完。有多少人真正的看过 TAOCP 呢?恐怕大部分人把这套书买回去,只是把它们摆在书架上做面子。只要有人说机器语言太难懂,这些人就会说你自己不够聪明,不配做程序员。而其实呢,他们自己都没看过。 机器不是计算的本质这个事实,很多人包括 Dijkstra,早就看到了。他说:“计算机科学是个错误的名字,因为它不是计算机的科学,这就像外科手术不是刀子的科学。”而这是几乎每一个程序语言专家都明白的道理。在他们的眼里,这不再是道听途说或者个人观点,而是可以用逻辑来证明的事实。真正明白计算本质的人,可以设计出全新的硬件来来满足语义的需要,而不是受控于处理器的设计。他们甚至可以超越集成电路,而使用另外的技术来制造机器。这些都说明,计算其实是独立于机器的。 有不好的想法不要紧,但是如果把不好的想法硬说成是好的,那就会阻碍历史发展了。我并不否认 Knuth 和 Ritchie 对算法,排版和操作系统的重要贡献,但是由于他们以及他们崇拜者经常在有关语言的事情上误导群众,所以觉得有必要指出他们的一些局限性。Linus Torvalds, Guido van Rossum, Eric Raymond, Paul Graham 也经常发表对语言的评论,被很多人奉为圣旨,但其实他们言论里面很少有真知灼见。 其实我要说的不过是,通常程序员们膜拜的偶像,大部分都不是真正的程序语言专家。希望你不要觉得这是危言耸听,实际上这些是大部分世界级的计算机科学家们很多年前就知道的事情。

⑽ kindle 能阅读计算机程序设计艺术吗

当然可以阅读,kindle相当于一个电纸书播放器,只要有计算机程序设计艺术书的资源,kindle就可以阅读。如果网络上没有相关资源,kindle就无法看了。

热点内容
美发店认证 发布:2021-03-16 21:43:38 浏览:443
物业纠纷原因 发布:2021-03-16 21:42:46 浏览:474
全国著名不孕不育医院 发布:2021-03-16 21:42:24 浏览:679
知名明星确诊 发布:2021-03-16 21:42:04 浏览:14
ipad大专有用吗 发布:2021-03-16 21:40:58 浏览:670
公务员协议班值得吗 发布:2021-03-16 21:40:00 浏览:21
知名书店品牌 发布:2021-03-16 21:39:09 浏览:949
q雷授权码在哪里买 发布:2021-03-16 21:38:44 浏览:852
图书天猫转让 发布:2021-03-16 21:38:26 浏览:707
宝宝水杯品牌 发布:2021-03-16 21:35:56 浏览:837