MIT6.00 1x 第一讲-计算机科学简介-笔记

6.00.1x 计算机科学和PYTHON编程导论

1. 计算科学简介(Introduction to computation)


1.1 计算科学基础(Basics of computation)

怎样进行计算机编程?怎样编写计算机能够理解的指令?
更重要的是如何拥有计算思维(computational thinking)
也就是说,不仅要能够熟练地使用计算机,
还要让计算机完成交代的任务,用它解决问题。

  • 一台基本的计算机能做什么?

    • 进行计算(performs calculations)
    • 存储结果(remembers the results)
  • 这些计算指的是什么?

    • 制作商提供给计算机的内置(built in)运算
    • 我们自己创建的计算方法(our own methods of calculating)
  • 现代计算机有多快,容量有多大?

    • 将一个儿童橡皮球悬在离地一米的地方然后放手。
      如果让它就这么落下去,考虑地球引力的话,
      那么,当它碰到地面时,计算机已经执行了
      10亿次操作。非常快
    • 如果我们假设1byte重1ounce(约28克),
      一台典型的电脑通常有成百上千个GB的存储容量,
      一台计算机中就有大约3亿吨的存储容量。非常大
  • 计算机没有局限性吗?有

    • 事实上,互联网上现在大约有450亿可供搜索的页面。
      如果我们假设每个页面有大约1000个词,每个词需要10次操作,
      我们要花5.2天来搜索互联网才能找到要找的东西。
    • 计算机很快,但是面对一些复杂任务(破译加密、天气预报)
      但同样需要设计更聪明、智能、灵敏的算法(good algorithm design)去解决问题。
      有些问题甚至是无解的,如图灵停机

1.2 知识的类型

  • 陈述性知识(Declarative knowledge)

    • 描述事实,如:数字x的平方根是数字y,可得y * y = x
    • 单凭以上描述不能解平方根
  • 程序性知识(Imperative knowledge)

    • 或者称为操作方法或者方法,给予我们找到新信息的方法。
      how to methods or recipes, give us ways of finding new information
    • 可以将算法想象为方法(algorithms are recipes),即做某件事的一系列机械步骤。

1.3 基本的机器架构(basic machine architecture)

  • 如何将算法变为计算机内的机械过程?

    • 固定程序计算机(fixed program computers),如计算器、Alan Turing的bombe
    • 存储程序计算机(stored program computer),通过指令序列有序控制算法步骤
      That sequence of instructions will be built from a
      predefined set of primitives.这个指令序列将由一套预先定义的原语组成。
  • 什么是原语(primitives)?

    • 图灵证明计算机内只需要6种原语就可以计算任何东西
    • 直接的原语操作序列很复杂,现代编程语言提供一套更方便的原语集。
    • 任何东西只要对某一种语言是可计算的,对其他任何语言也是可计算的。
      语言只是工具

    • MEMORY — 内存
    • countrol unit — 控制器
    • Program counter — 程序计数器
    • ARITHMETIC LOGIC UNIT (ALU) 算术逻辑单元
    • accumulator — 累加器

    A computational mode of thinking means that everything
    can be viewed as a math problem involving numbers and formulas.
    计算思维模式意味着一切都可以看做是一个涉及到数字和公式的数学问题。

1.4 编程语言的特点

  • 提供一套原语集(a set of primitive operations)
    它们预先定义好,是ALU的组件
  • 拥有基本元素,比如数字、字符串、操作符
  • 语法(syntax),字符串的字符和符号有良好的组合
  • 语义(静态语义static semantics、全语义semantics)

  • 可能出现的错误?

    • 语法错误,容易被计算机捕获
    • 静态语义错误
    • 没有语义错误,但不是我们想要的结果

Learn the syntax and semantics of a programming language.
Learn how to use those elements to translate “recipes” for solving a problem into a form that the computer can use to do the work for us.
Computational modes of thought enable us to use a suite of methods to solve problems.

我们的目标是学习编程语言中的语法和语义,使用那些基本元素,将我们解决问题的方法(算法),转化成计算机能够理解的形式,从而利用计算机解决问题。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值