计算机科学不是科学 | MIT 6.001

计算机科学不是科学 | MIT 6.001

计算机学的本质——how to do

计算机科学不是科学,甚至也不是关于计算机。这是教授对于计算机学科本质的思考。
就如几何学,它起源于古埃及人为抵抗洪水泛滥,去进行土地测量。计算机不关于计算机,就像几何学不是关于测量。人们很容易将使用的工具(如计算机)当作一个新兴学科的本质,这是因为你并不了解它。

那么几何学的本质是什么?我们现在回头看,会认为他们是将空间和时间的直觉形式化,他们开始建立一种方式,用形式化的方式讨论数学真理,最终导致了公理化方法,发展出了现代数学

教授认为未来人们回头看计算机科学,会认为,计算机学科的本质是将过程的直觉形式化,试图发明一种方法来精确描述“如何做某件事”的知识

几何学——What is ture 例如:定义什么是根式
CS——how to do <-算法——如何求,是一系列步骤

不断提出更好的方法

为什么说计算机是魔法,因为程序编写有超越物理现实的自由度,其他工程要考虑现实规律,而软件在一定程度上是不需要的。它的限制来源于人脑。物理工程要考虑物理组件的极限与物理世界的规律,不过计算机世界也需要处理复杂度
所以说计算机学科是一个不断进步的学科,因为人们总在不断提出更好的方法

工程上用到的一些方法:

  • 黑盒抽象:封装。无需了解内部实现,可以直接使用。隐藏细节,脱身去构建更大的盒子

另外,计算机不是魔法,毕竟生活在物理世界,魔法(软件)背后也要有物理现实(硬件)的支撑。

结语与Lisp

本文灵感来源:计算机科学不是科学?MIT教授40年前的开场至今震撼,以及MIT 6.001 这门课的一部分。

后面要讲Lisp,而我没有听说过,所以去搜了一下:

“Lisp 不是一种语言,而是一种构建材料。” —— 它从未死亡,而是化身为现代编程的根基。

附上一些我搜集到的博客:
软件研发 --过时与小众语言 之LISP
为什么LISP语言如此先进(译文)

Lisp快速入门:30分钟Lisp入门教程(强推)但好像需要一些魔法

书籍推荐:《计算机程序的构造和解释(第 2 版)》适合深入学习,并且这本书看起来很有趣

也许某天会重启MIT 6.001这门课的学习,但当下还有其他事情要干,需要学习python还有其它东西,所以先搁置了。不知道这门课是否过时,但看到有人说,这种编程思想方面的内容永远不会过时(不知复述是否准确)。