MIT 6.001.x学习笔记-1A
来源:互联网 发布:nicelabel 数据库 编辑:程序博客网 时间:2024/06/06 01:23
update04.24
万万没想到这个笔记也要update一下(。)
想了想,如果按我的理解的话,这节课基本就说了两个东西。一个是lisp的基本语法,然后举例子;另一个就是介绍了下黑箱子理论(中文是啥真不知道),编程就是搞出一个黑箱子,外界只看到了一个箱子(里面是啥不知道也不关心)跟一个出口一个入口,入口是输入,经过箱子(也就是我们编写的程序)的处理之后再从出口输出。怎么做这个黑箱子呢,原来那块已经说了就不再重复了(喂)。一开始的时候直接开宗明义地说明了,CS是控制复杂度的科技(是这么翻译吧?),可以想到算法跟数据结构在整个CS的学习中将有着怎样重要的地位了。
第一节课,一上来说computer science这玩意儿跟science无关跟computer无关,简单来说就是techniques of controlling complexity啦。也就是CS的终极是算法的意思吗
这门课把LISP作为教课的语言,举了black-box abstracion的一个例子,来旁证他举的一个流程:由primitive objects组成combination,抽象一下成abstraction,最后capturing common patterns,简单来说就是用基本元素组成比较复杂的东西,进行一下抽象,最后变成一个可调用的函数之类的玩意儿。按老师的说法就是要establish conventional interfaces啦。我觉得就是实现一个库
举的这个例子呢,是怎么搞个大新闻求x的平方根。作为一个之前学过一丢丢C的新手,第一反应是弄个while循环出来然后二分法走起,当然啦这个也是差不多的,毕竟算法都一样,就是实现的语言不同而已。LISP的做法可以说颇有些麻烦,不过想想它的primitive objects就那么几个也难怪了hhhhhh
LISP跟我之前稍许接触过的所有语言都不一样,它的操作符是放在左边的。举个例子,3*5在LISP是这么干的:(* 3 5).也没有像分号这种标志着语句结束的东西,这一点python倒是比较像它了。由于primitive objects太少,所以导致要define一大堆东西,比如说最后老师举的那个求平方根的例子,最后完成的程序看起来跟伪代码似的。
这个try guess,他称之为block structure。反正这个block structure也是有点儿黑箱子风范,用户管你这个东西里面怎么实现的,直接调用函数——输入数值——里面代码咣哧咣哧跑的样子不用表现出来——输出结果,over啦。
- MIT 6.001.x学习笔记-1A
- MIT 6.001.x 学习笔记-1B
- MIT 6.00.1x 笔记
- MIT 6.00 1x Lecture 4 - Functions 学习笔记
- MIT 6.00 1x Lecture 5 Recursion 递归 学习笔记
- MIT 6.00 1x Lecture 6 Objects 对象 学习笔记
- MIT 6.00 1X Lecture 7 Debugging 学习笔记
- [MIT 6.00.1X]学习地址
- MIT 6.00 1x Lecture 3 - Simple Algorithms 简单算法 学习笔记
- Torque2D MIT 学习笔记(1) ---- 了解
- (MIT)Deep learning 学习笔记(1)
- Torque2D MIT 学习笔记(27)
- Torque2D MIT 学习笔记(3) ---- 脚本语法(1)
- MIT 6.828 学习笔记1 阅读boot.S
- MIT-6.00.1x-L11-P6
- MIT 6.00.1X --Week 3
- Torque2D MIT 学习笔记(2) ---- 目录结构
- Torque2D MIT 学习笔记(6) ---- 模块管理
- 一个名叫草泥马的项目:thefuck
- 剑指offer 平衡二叉树判别
- poj 2676九宫图(很基本的DFS?卧槽,我要会写就成kuangbin了)
- js返回css样式的color值
- python迭代器中的魔法方法
- MIT 6.001.x学习笔记-1A
- Android中在ListView的Adapter实现启动Activity和改变Activity属性
- SVN服务器搭建与使用一
- 输出以下图案:星形平行四边形
- 河南工业大学2017“玲珑杯”程序设计竞赛 10
- 初学CSS-浮动、盒子模型、伪类、伪元素、定位———Day4学习笔记
- opencv实现几幅图像拼接成一整幅大图
- 算法导论学习之快速排序
- 一千行MySQL学习笔记