MIT的计算机导论课程
一个8周课程
week1
第一讲:计算科学简洁
课程目标
- 能够让计算机为自己服务
- 学会计算机的思维
首先要知道计算机能够做什么?
只做两件事
- 计算
- 记录结果
自己有基本计算方法
但是我可以创造更多方法
计算机的运算速度非常快
存储容量也非常大
需要一个优秀的算法。
计算机的局限
1.太复杂的问题
例如,精确的天气预报和现代密码学
- 本身就不可能被解决的问题
例如:图灵停机问题(halting problem)
算法是一个概念,程序是算法的具体实现
计算思维模式意味着一切都可以看做是一个涉及到数字和公式的数学问题
为什么是计算?
什么是知识?
陈述性知识
程序性知识——how to(机械)
告诉一个方法去完成目标、解决问题
什么是平方根?
怎么找到平方根?
怎么把这些方法编程计算机能理解的过程
相对只能完成特定过程的计算机
我们有了冯诺依曼式计算机
程序计数器A program counter
指向程序将执行的下一条命令points the computer to the next instruction to execute in the program.
我们利用6种基本的运算就可以实现所有东西
我们的目的:理解程序性知识,然后变成机械性步骤
当我们谈及程序性语言的时候
- 熟悉所有的原始语句(结构)——数字、字母、运算符号
- 怎么把他们合法地组合在一起,实现我们的功能——语法,有点想英语语法那样
静态语义错误——顺序是对,没有用第三人称单数的动词形式
另一种错误:Semantics,语法上没有错误的,但是要的结果不是程序员想要的。
什么地方能够让我们出错?
- 语法错误——普遍而且容易被抓到
判定一个字串是否合法Determines whether a string is legal
2.静态语义错误——
判定一个字串是否有意义Determines whether a string has meaning - 语义错误——突然停止,永远运行,不是想要的。
赋予一个合法的语句意义Assigns a meaning to a legal sentence
这里具体说一下这三种错误的区别。
- 语法错误,就是明显不符合语法的错误。例如“cat I have”
- 静态语义错误,就是符合语法,但是有另外错误的语句,例如“I has a cat”
- 语义错误,就是有不止一种意思的语句
我们的目标
- 学习语法与语义
- 上述元素变成解决问题的方法,并被计算机理解
- 熟悉这种思维,选用合适的方法解决问题
设置编程环境
这个课程推荐使用的python编程环境 Enthought Canopy Python Distribution
而且不需要用python3.0以上的版本,只需要用到python2.7就可以了
第二讲:编程基础