• 计科入门1: 强大与愚昧

    普通类
    • 支持
    • 批判
    • 提问
    • 解释
    • 补充
    • 删除
    • Coursera

    计划以如下学习笔记的形式,用更贴近中国读者的形式展示其内容【中文,例子…】

    希望对大家学习计算机科学有所帮助

    Full credit to Mr. Nick Parlante at Stanford University

    • 电脑= 强大 + 愚蠢

    之所以说他强大,是因为他可以以惊人的速度运行人类给予其的指令

    一秒内运行几十亿次的条命令

    而这个惊人的运行速度,成就了计算机在现实世界中很多非常神奇和实用的功能。

    ----------------------------------------------

    问题:

    想想计算机在以下生活领域有什么应用?

    1. 通信

    2. 购物

    3. 理财

    4. 安全保障

    5. 交通

    6. 医疗

    7. 娱乐

    ----------------------------------------------

    然而于此同时他又很愚蠢,因为他唯一能做的就是“机械的”按照我们规定的指令行事

    而且我们的指令必须完全无错,否咋计算机就无法理解了

    ----------------------------------------------

    例子:

    请用2秒先阅读下面这句话,再回答这个问题:汽车是第几次工业革命的产物?

    ----------------------------------------------

    作为第二次工革业命最伟大明发之一,汽车改我变了们的生活。

    ----------------------------------------------

    看完上句话,我们可能很轻松的回答出来以上问题的答案,是:第二次工业革命。

    但是我们仔细研究就会发现

    这句话有好多错误

    作为第二次工革业命最伟大明发之一,汽车改我变了们的生活。

    ----------------------------------------------

    之所以这样我们还能够理解文章,是因为我们有模糊思考的能力

    然而如果把这句话给计算机理解,他就完全不能理解了

    告诉计算机的指令必须严格按照规定,没有错误。【过一会儿的纠错的程序实例,你会有更深层次的理解】

     

    ----------------------------------------------

    这个课程让我们更好的理解计算机

    理解其“机械”的一面和其“强大”的一面

    了解计算机能做什么,不能做什么

    从而有机的把计算机的这两面联系起来

    学会用这个魔盒把我们的生活变得更加的丰富多彩

    ----------------------------------------------

    • 计算Computing

    可以把刚才所讲的计算机的“运行”特点用以下图表示出来

    任何的计算机的“运行”的核心驱动力都是 其中的运行的代码段【code】

    而代码段都是有一个个小的指令组成的【instruction】

    虽然计算机能够每秒运行20多亿次这种小小的指令

    TA的任务的核心还只是

    从上到下“机械的”把所有的指令组成的代码段运行一遍

    ----------------------------------------------

    那现在问题就出现了

    一边是简单的机械运行指令集合,一边是生活中复杂的计算机应用,比如给照片去红眼

    运行机理的简单和运行效果的强大是如何契合在一起的呢?

    ----------------------------------------------

    答案很简单,你,我,TA,是我们程序员搭建了计算机机械话运行和强大功能之间的桥梁

    就好像把大象关到冰箱里需要3步一样

    • 搭桥也要三步
    1. 我们考虑想要实现什么样的功能:是去红眼?还是让距离天涯海角的2人互联通信?还是…

    2. 然后我们分析我们想要实现的功能,把他逐步分解,分解再分解。用我们的创造力把他分解成由n个指令组合成的代码段

    3. 然后计算机就会运行我们的所有的代码段中蕴涵着的指令,实现我们所设计的功能

    ----------------------------------------------

    通过这样的过程

    我们很好的结合了我们人类强大的思考能力

    和计算机基于相对低的价格的强大的运算能力

    实现了美妙的各种功能

    • 开始编程

    OK,我们马上开始编程

    但是注意:就好像搭积木一样,我们刚开始智能一个一个小积木的搭建

    逐渐的我们就会能用我们已经构建的小结果,做一些很酷的事情

    比如解决传说中的“猴子,月亮和香蕉”的计算机视觉特效问题【先吊一下大家的胃口】

     

    我们要用的编程语言叫做:JavaScript【注意,JavaScript除了和Java拼写有雷同的地方除外,没有任何关系】

    这个语言在任何的编译器中都可以被直接运行,随意给我们创建了良好的编程基础

    【注意:我们这里并不是要用JavaScript来进行"高保真"的现实世界复杂编程

    比如:

    哈哈,给大家开个玩笑,这个是为了节省空间,把我们的编写的代码压缩到一起了

    在现实世界中,我们也不会直接这样写代码的 ^_^】

    ----------------------------------------------

    下面请大家在另一个窗口打开这个链接,注意不要离开本页哦

    http://www.stanford.edu/class/cs101/code-1-introduction.html

    ----------------------------------------------

    • 第一段代码

    在刚才打开的网页中,找到如下的位置【注意,我已经翻译了必要的地方,不要害怕英语 !!!】

    注意:不要忘了分号

    在我们的的代码段输入框中可以输入指令

    现在这两个指令的运行效果如下:

    点击运行后,通过计算机运行我们的指令print,就把指令接受的东西【我们叫参数】给显示【我们叫打印】出来了

    ----------------------------------------------

     

    练习:

     

    实现打印如下内容:

    • 第二段代码

    通过以上这段代码

    我们学习到2种新的语法内容:

    1. 如何打印一连串的字符【我们学称:字符串】

    2. 如何给程序写一些小

    3. 注,但是不要让计算机运行

    ----------------------------------------------

     

    练习:

     

    打印如下内容:

    ----------------------------------------------

    OK, 现在鼓励大家随便尝试以下【一定要用于“胡乱尝试”哦!!!】,比如:

    1. 如果把print全变成大写怎么样:PRINT(1, "b");

    2. 或者少一个双引号呢?:print(1, "b);

    3. 少一个括号会出现什么结果?print(2, "c", 3;

    4. 没有逗号呢?print(1 "b");

     

    ----------------------------------------------

    通过我们刚才的练习,我们可能会发现以下内容频繁出现【也可能没有出现,主要看我们是否随便尝试了,这里鼓励大家随便尝试一下】

    相信大家都经历,而且更正了小的语法错误

    这个尝试的过程让我们了解到了以下两点:

    ----------------------------------------------

    1. 你在编写的时候可能会遇到一些小的语法错误,但是注意:小的语法错误在编程初期非常的正常,甚至是非常编程的老手,每天也会犯下各种个样的小的编程的语法错误。我们主键的会熟悉常见的问题,并减少我们出错的可能。不要让刚开始的这些小小的挫折挫伤我们的积极性
    1. 计算机对语法错误,再小的语法错误也是没有容忍性的

    这也是我们之前讲过的他的机械性的一个非常典型的体现

    ----------------------------------------------

    OK,这就是我们第一件的内容了。最后一个经验结束这一讲的内容:

    ----------------------------------------------

    • 百看不如一练。

    就好像游泳一样,只学习理论,不下水,永远也学不会游泳的。所以:

    别忘了去以下地方试试水:

    1. 本课程的课堂日志+练习部分:http://www.stanford.edu/class/cs101/

    2. 本课程的课后习题部分:https://class.coursera.org/cs101-selfservice/quiz/start?quiz_id=19 【这个的登陆需要你在Coursera网站的注册】

    ----------------------------------------------

    下次见

    • 标签:
    • 强大
    • Computing
    • 运行
    • 指令
    • 代码
    • 功能
    • JavaScript
    • Computer
    • 问题
    • 语法错误
    • 编程
    • 机械
    • 计算机
  • 加入的知识群:
    学习元评论 (0条)

    评论为空
    聪明如你,不妨在这 发表你的看法与心得 ~



    登录之后可以发表学习元评论
      
暂无内容~~
顶部