-
计科入门1: 强大与愚昧
普通类 -
- 支持
- 批判
- 提问
- 解释
- 补充
- 删除
-
-
Coursera
计划以如下学习笔记的形式,用更贴近中国读者的形式展示其内容【中文,例子…】
希望对大家学习计算机科学有所帮助
Full credit to Mr. Nick Parlante at Stanford University
-
电脑= 强大 + 愚蠢
之所以说他强大,是因为他可以以惊人的速度运行人类给予其的指令
一秒内运行几十亿次的条命令
而这个惊人的运行速度,成就了计算机在现实世界中很多非常神奇和实用的功能。
----------------------------------------------
问题:
想想计算机在以下生活领域有什么应用?
通信
购物
理财
安全保障
交通
医疗
娱乐
…
----------------------------------------------
然而于此同时他又很愚蠢,因为他唯一能做的就是“机械的”按照我们规定的指令行事
而且我们的指令必须完全无错,否咋计算机就无法理解了
----------------------------------------------
例子:
请用2秒先阅读下面这句话,再回答这个问题:汽车是第几次工业革命的产物?
----------------------------------------------
作为第二次工革业命最伟大明发之一,汽车改我变了们的生活。
----------------------------------------------
看完上句话,我们可能很轻松的回答出来以上问题的答案,是:第二次工业革命。
但是我们仔细研究就会发现
这句话有好多错误
作为第二次工革业命最伟大明发之一,汽车改我变了们的生活。
----------------------------------------------
之所以这样我们还能够理解文章,是因为我们有模糊思考的能力
然而如果把这句话给计算机理解,他就完全不能理解了
告诉计算机的指令必须严格按照规定,没有错误。【过一会儿的纠错的程序实例,你会有更深层次的理解】
----------------------------------------------
这个课程让我们更好的理解计算机
理解其“机械”的一面和其“强大”的一面
了解计算机能做什么,不能做什么
从而有机的把计算机的这两面联系起来
学会用这个魔盒把我们的生活变得更加的丰富多彩
----------------------------------------------
-
计算Computing
可以把刚才所讲的计算机的“运行”特点用以下图表示出来

任何的计算机的“运行”的核心驱动力都是 其中的运行的代码段【code】
而代码段都是有一个个小的指令组成的【instruction】
虽然计算机能够每秒运行20多亿次这种小小的指令
TA的任务的核心还只是
从上到下“机械的”把所有的指令组成的代码段运行一遍
----------------------------------------------
那现在问题就出现了

一边是简单的机械运行指令集合,一边是生活中复杂的计算机应用,比如给照片去红眼
运行机理的简单和运行效果的强大是如何契合在一起的呢?
----------------------------------------------

答案很简单,你,我,TA,是我们程序员搭建了计算机机械话运行和强大功能之间的桥梁
就好像把大象关到冰箱里需要3步一样
-
搭桥也要三步
我们考虑想要实现什么样的功能:是去红眼?还是让距离天涯海角的2人互联通信?还是…
然后我们分析我们想要实现的功能,把他逐步分解,分解再分解。用我们的创造力把他分解成由n个指令组合成的代码段
然后计算机就会运行我们的所有的代码段中蕴涵着的指令,实现我们所设计的功能
----------------------------------------------
通过这样的过程
我们很好的结合了我们人类强大的思考能力
和计算机基于相对低的价格的强大的运算能力
实现了美妙的各种功能
-
开始编程
OK,我们马上开始编程
但是注意:就好像搭积木一样,我们刚开始智能一个一个小积木的搭建
逐渐的我们就会能用我们已经构建的小结果,做一些很酷的事情
比如解决传说中的“猴子,月亮和香蕉”的计算机视觉特效问题【先吊一下大家的胃口】

我们要用的编程语言叫做:JavaScript【注意,JavaScript除了和Java拼写有雷同的地方除外,没有任何关系】
这个语言在任何的编译器中都可以被直接运行,随意给我们创建了良好的编程基础
【注意:我们这里并不是要用JavaScript来进行"高保真"的现实世界复杂编程
比如:

哈哈,给大家开个玩笑,这个是为了节省空间,把我们的编写的代码压缩到一起了
在现实世界中,我们也不会直接这样写代码的 ^_^】
----------------------------------------------
下面请大家在另一个窗口打开这个链接,注意不要离开本页哦
http://www.stanford.edu/class/cs101/code-1-introduction.html
----------------------------------------------
-
第一段代码
-
第二段代码

通过以上这段代码
我们学习到2种新的语法内容:
如何打印一连串的字符【我们学称:字符串】
如何给程序写一些小
注,但是不要让计算机运行
----------------------------------------------
练习:
打印如下内容:

----------------------------------------------
OK, 现在鼓励大家随便尝试以下【一定要用于“胡乱尝试”哦!!!】,比如:
如果把print全变成大写怎么样:PRINT(1, "b");
或者少一个双引号呢?:print(1, "b);
少一个括号会出现什么结果?print(2, "c", 3;
没有逗号呢?print(1 "b");
----------------------------------------------
通过我们刚才的练习,我们可能会发现以下内容频繁出现【也可能没有出现,主要看我们是否随便尝试了,这里鼓励大家随便尝试一下】

相信大家都经历,而且更正了小的语法错误
这个尝试的过程让我们了解到了以下两点:
----------------------------------------------
- 你在编写的时候可能会遇到一些小的语法错误,但是注意:小的语法错误在编程初期非常的正常,甚至是非常编程的老手,每天也会犯下各种个样的小的编程的语法错误。我们主键的会熟悉常见的问题,并减少我们出错的可能。不要让刚开始的这些小小的挫折挫伤我们的积极性
计算机对语法错误,再小的语法错误也是没有容忍性的
这也是我们之前讲过的他的机械性的一个非常典型的体现
----------------------------------------------
OK,这就是我们第一件的内容了。最后一个经验结束这一讲的内容:
----------------------------------------------
-
百看不如一练。
就好像游泳一样,只学习理论,不下水,永远也学不会游泳的。所以:
别忘了去以下地方试试水:
本课程的课堂日志+练习部分:http://www.stanford.edu/class/cs101/
本课程的课后习题部分:https://class.coursera.org/cs101-selfservice/quiz/start?quiz_id=19 【这个的登陆需要你在Coursera网站的注册】
----------------------------------------------
下次见
-
-
- 标签:
- 强大
- Computing
- 运行
- 指令
- 代码
- 功能
- JavaScript
- Computer
- 问题
- 语法错误
- 编程
- 机械
- 计算机
-
加入的知识群:



学习元评论 (0条)
聪明如你,不妨在这 发表你的看法与心得 ~