1901020043-自学训练营-MIT60001-DAY1

学员信息

  • 学号:1901020043
  • 学习内容:MIT 6.0001 LECTURE 1 +Python 编程导论(第2版)(第1章+第2章的2.1)
  • 学习用时:4小时

学习笔记

收获总结:

  1. Computers only know what you tell them. Computers only do what you tell them to do.

  2. 计算机能且只能做两件事——执行计算与保存计算结果(perform calculations and remember results),但它把这两件事做到极致。

  3. 计算机思维:

    七种关系:1.大和小 2.快和慢 3.多维度和单一维度 4.网络和个体 5.自顶向下和自底向上 6.全局和局部 7.成本和表现

    两个原则:1.等价性原则 2.模块化原则 ——(吴军的谷歌方法论)

  4. 算法:是一个有穷指令序列,描述了这样一种计算过程,即在给定的输入集合中执行时,会按照一系列定义明确的状态进行,最终产生一个输出结果。(简单步骤,控制流,何时结束)

  5. 通用图灵机:可以接受任意一个图灵机 M 的编码 ,然后模拟 M 的运作。

  6. 邱奇-图灵论题:任何在算法上可计算的问题同样可由图灵机计算。(如果一个函数是可计算的,那么一定可以通过对图灵机进行编程实现这种计算。)

  7. 停机问题:是否存在一个程序P,对于任意输入的程序w,能够判断w会在有限时间内结束或者死循环。

  8. 图灵完备性:在可计算性理论里,如果一系列操作数据的规则(如指令集、编程语言、细胞自动机)可以用来模拟单带图灵机,那么它是图灵完备的。图灵完全性通常指“具有无限存储能力的通用物理机器或编程语言”,所有现代编程语言都是图灵完备的。

  9. 每种编程语言都有基本结构、语法、静态语义和语义。

  10. Python的基本结构包括字面量和中缀操作符;语法定义了字符和符号组成句子的正确形式;静态语义定义了哪些语法有效的句子是有意义的;语义为每个语法正确又没有静态语义错误的句子关联一个含义。

  11. 程序如果没有正确运行,就应该表现出明显的错误。只要有可能,我们都应该以这种方式编写程序。

  12. 对象是Python程序处理的核心元素。Python有4类标量对象:int,float,bool,None

  13. 在Python中,变量仅是名称,没有其他意义(非常重要)。变量名可以包含大写字母、小写字母、数字(不能以数字开头)和特殊字符_,变量名称大小写敏感,保留字不能做变量名。

  14. 恰当的选择变量名和添加注释是提高程序可读性的好方法。

  15. 总结:看英文字幕虽然很难但是不会像中文字幕令人不舒服;明确计算机的边界,能做什么,不能做什么;学习计算机思维的相关知识很重要,得到有很多文章讲解,应该再看一些相关书籍;个人偏好一些概念的认真理解,会额外耗费很多时间,是否有用在以后的学习中会验证;养成好的编程习惯,先从变量名和注释开始;多输入代码,刻意练习的技巧可以考虑如何用在这里。
    遇到的难点与问题(是否解决):对停机问题的理解还不够,先放放,过一周再看。