CS106A 编程方法学(四)
Mehran Sahami 给出了一个简要的计算机发展史:
1800's Charles Babbage 提出了通用计算机的设想(谁要是说算盘就是最早的计算机,蹴鞠就是最早的足球,那我就……)。
Ada Byron 是世界上的第一个程序员,而且还是个女程序员。当时并没有计算机,她只是在Babbage 设想的计算机上编程 。
1930-40's : prototype 原型机
1946: ENIAC Electronic Numerical Integrator and Computer 第一台计算机诞生
1971: 1st microprocessor Intel 4004 第一块微处理器诞生
学了这么多年的计算机,其实一直没有特别合适的定义给 Computer Science,如果简称为 CS 的话,有时会被误以为是 Counter Strike 。这里给出的定义非常好:
Computer Science: science/study of program solving or computer/computation method.
计算机科学是研究“如何解决问题或者是运算方法”的学科。计算机科学一直以来并不被认为是真正的科学,而更多的是看作工程学科中的分支。维基百科有如下解释:
Computer science designates the scientific and mathematical approach in information technology and computing. A computer scientist is a person who does work at a professional level in computer science and/or has attained a degree in computer science or a related field.
如果按照这个解释,等我毕业了,也可以自称 Computer Scientist 吗?感觉有点奇怪。其实 Computer Engineer 更合我的心意。
machine language is a computer understands or in some sense what the microprocessor understands.
machine language is defined by what chip you have inside your computer … eventually going to boil down into a bunch of ones and zeros.
compilation is done by a compiler.
source code– compiled –> library – linked –> executable/application
JVM, Java Virtual Machine
JAR, Java Archive
a class just basically an encapsulation of some behavior and data.简单的说,类就是数据和行为的封装
class is template of the object 类是对象的模板
object is instance of class 对象是类的实例