笔记:麻省理工公开课《计算机科学及编程导论》
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
麻省理工公开课《计算机科学及编程导论》
课程主旨:帮助人们学习和了解计算机科学
课程目标:
教学战略目标:
1、帮助大一、大二学生入门。(本课程要求:零基础,没有任何编程经验)。
2、培养学生读、写小段代码的信心和能力。
3、理解计算科在解决技术问题中,能够和不能胜任的角色。
4、培养学生学以致用,将所学知识运用到工作或暑期兼职中的能力。
教学策略目标:
1、使用计算式思维的基本工具,写一些小规模程序。
2、理解他人所写的代码。
3、计算科学的功能和局限性及代价。
4、掌握如何将科学问题转换到计算机科学上(即描述实际问题,并将其转换为计算机语言)。
总结:计算式思维能力。读代码、写代码。计算机能做什么,不能做什么。其他领域的问题,描述清楚,然后转换成计算机语言。
课程使用语言:Python(请自行Google下载安装Python,安装完,运行Python交互式解释器Python Shell即Python GUI,在Python Shell中写下图片中的代码,具体代码见文章末尾附录)
注:>>>提示符的意思是,解释器让你输入一些东西。
计算式思维能力:
知识分为两类:
1、陈述性知识:事实的陈述。如,y是x的平方根,当y的平方等于x且y为正
2、过程性知识:对推导过程的描述。猜测、判别、返回结果。重复这些步骤。即,如何做。类比:食谱。原材料一步步组织,最好成为美味大餐。
计算机发展史:
1、固定程序计算机,只能做算术运算
2、存储程序计算机,给其指令,机器内部进行处理。
存储程序计算机内部组成:控制单元、算术逻辑单元ALU、内存、计数器PC
程序:简单说,就是计算机内部的一连串指令的集合。
关于语言之争:没有最好的语言,语言只是工具,适合自己理解,解决问题即可
语言的分类:
1、第一个维度:语言是高级语言还是低级语言;
低级语言:例如,汇编语言,其基本指令的层次还停留在将信息从内存的一出移动到另一处。
高级语言:设计者提供了大量的基本指令集
2、第二个维度:语言是广泛用途还是特定用途。例如,MATLAB就是特定用途的,只处理矩阵向量。
3、第三个维度:语言是解释型还是编译型
1、解释型语言,解释器在运行时是直接处理代码的。
解释型语言便于调试,因为处理的是原始代码,速度相对慢。
2、编译型语言,写完源码后,首先送入到编译器中,产生目标代码,然后再执行目标代码。
编译型语言有两个好处:一、帮助寻找代码的bug。二、在执行之前,将代码转化为更高效的指令。
编译型语言执行较快,但不便于调试。
区分语法和语义
语法:用来描述语言中什么表述是合法的。
语义:用合法的语言构筑内容,分为静态语义和完整语义。
静态语义,表示什么程序是有意义的。代码是有实际意义的。
完整语义,即程序想达到什么目的。(运行程序会达到什么效果。)
语法用来描述语言中,什么表述是合法的
再次提醒:本课程目标是计算式思维,我们的目标是通过基本指令集合,构筑复杂的程序,
1.附录:具体代码
2.Python2.7.3(default,Apr102012,23:24:47)[MSC v.150064bit(AMD64)]on
win32
3.Type"copyright","credits"or"license()"for more information.
4.>>>print'Hello World'
5.Hello World
6.>>>1+1
7.2
8.>>>2-1
9.1
10.>>>2*3
11.6
12.>>>1/2
13.0
14.>>>1.0/2.0
15.0.5
16.>>>1.0/2
17.0.5
18.>>>1/2.0
19.0.5
20.>>>1//2
21.0
22.>>>1.0//2.0
23.0.0
24.>>>10/3
25.3
26.>>>10%3
27.1
28.>>>2**3
29.8
30.>>>-3**2
31.-9
32.>>>(-3)**2
33.9
34.>>>mystring='Hello World'
35.>>>print mystring
36.Hello World