您的位置:首页 > 其它

开始学习SICP:课前准备

2008-04-13 11:39 295 查看
MIT计算机科学与人工智能实验室给出的关于SICP的课程资料、课程安排、课后作业和其他的有关Scheme语言、MIT-SCHEME的帮助

http://sicp.csail.mit.edu/Fall-2007/

下面摘录几段我认为很经典的语录:

“Pascal是为了建造金字塔-壮丽辉煌、令人震撼,是由各就其位的沉重巨石筑起的静态结构。而Lisp则是为了构造有机体-同样的壮丽辉煌并令人震撼,由各就其位但永不静止的无数简单的有机体片段构成的动态结构。”

说实在话,到现在,我还是不能完全用自己的语言来解释上面这段话,主要是自己还没完全理解Pascal和Lisp代表的两类语言的特性

“我们的目标是,使完成了这一科目的学生能对程序设计的风格要素和审美观有一种很好的感觉。他们应该掌握了控制大型系统中的复杂性的主要技术。他们应该能够去读50页长的程序,只要该程序是以一种值得模仿的形式写出来的。他们应该知道在什么时候哪些东西不需去读,哪些东西不需要去理解。他们应该很有把握地去修改一个程序,同时又能保持原来作者的精神和风格。”

真的能达到这个目标吗?期待...

“心智的活动,除了尽力产生各种简单的认识之外,主要表现在如下三个方面:1)将若干简单认识组合为一个复合认识,由此产生出各种复杂的认识。2)将两个认识放在一起对照,不管它们如何简单或者复杂,在这样做时并不将它们合二为一。由此得到有关它们的相互关系的认识。3)将有关认识与那些在实际中和它们同在的所有其他认识隔离开,这就是抽象,所有具有普遍性的认识都是这样得到的。—— John Locke, The Essay Coneering Human Vnderstanding (有关人类理解的随笔)”

很多时候,我们都停留在第一方面,对于自己熟悉的事物做到了第二方面,但第三方就做的很少了。而后面提到的一种强有力的语言提供的三种机制:基本表达形式、组合的方法和抽象的方法就是对应上述三方面提出来的。

”一个计算过程确实很像一种神灵的巫术...初学程序设计的人们就像巫师的徒弟们那样,必须学习如何去理解和预期他们发出的咒语的效果...软件工程大师们能组织好自己的程序,使自己能合理地确信这些程序所产生的计算过程将能完成预期的工作。“

在很多时候,很多人并不能做到上述一样完全理解自己所写代码的“威力” ,而是要通过实际的运行后才能看到,但看到的是全部的“威力”吗?我看未必,隐藏的“威力”就是大量的bug了

本书之所以经典,很大一方面是因为给出了很多关于计算机语言、程序构造 的近乎醍醐灌顶的解释,让人顿悟

但可惜的是,Scheme语言现在用的很少了,网上有关这方面的讨论也很少,我们自学的有了问题很难找到答案,如能提供更多的有关SICP和Scheme的资料,在下不胜感激。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: