chili 默默学编程

SICP(1):课程提纲


资料来源:

https://github.com/DeathKing/Learning-SICP

视频地址:

https://www.bilibili.com/video/av8515129/index_1.html


本文目录:

1、(计算机科学)学科名称解释;

2、课程大纲;


(计算机科学)学科名称解释

计算机科学并不算科学,更偏向于工程技术(engineering)或者艺术(art);

科学更多是定义是什么,工程是弄清楚怎么做;

如平方根,数学中定义平方根是什么,而程序是弄清楚怎么计算;

也不仅仅关于计算机,不是讲如何使用计算机;

类似于几千年前埃及人的几何学;

当时的几何学是用来教人使用测量仪器,当时的那些测量仪器现在全被淘汰了,但是从那时候开始建立的几何学概念,对于时间空间的抽象,对后世影响巨大;

许多年之后,现在的计算机可能会被淘汰,现在的计算机科学也许很简单幼稚,但是现在所建立的抽象、规范等知识,也许会影响巨大;

计算机科学像是现代魔法,课程讲授的内容,就是魔法的咒语。


课程大纲

计算机科学,是在大系统中控制复杂度的技术;

处理的对象,是抽象的、理想化的元件,没有物理世界(现实)中的发热、测量精度的限制,唯一的限制就是人的想法。

本课程主要讲述处理复杂度中的三个手段,每个手段都有几个要点,概要如下:

1、黑盒抽象(black-box abstract)

  • 基本对象(primitive objects)

- 基本过程(primitive procedures)

- 基本数据(primitive data)

  • 组合(means of combination)

- 复合过程(procedure composition)

- 复合数据结构(construction of compound data)

  • 抽象(means of abstract)

- 对过程的定义(procedure definition)

- 简单数据抽象(simple data abstraction)

  • 通用模式(capturing common patterns)

- 高阶过程(high-order procedures)

- 过程与数据(data as procedures)


举了一个例子:平方根和函数不动点;


2、约定接口(conventional interfaces)

  • 通用操作符(generic operations)
  • 大规模程序(large-scale structure and modularity)
  • 面向对象(object-oriented programming)
  • 流(streams,operations on aggregates)

3、元语言抽象(Meta-linguistic abstract)

  • 解释器(interpretation apply-eval)
  • example:logic programming
  • register machines

reply ( 0 )