编辑 | 南乔River
6.0001 6.0002 = ?
6.0001 和 6.0002 是MIT课程代码,两门课程组合成了一个小系列,用一学期的时间,为没有任何计算机背景的学生,讲清楚『计算思维』这个基础又抽象的关键内容,并充满信息地敲下人生第一行Python代码。
6.0001《Introduction to Computer Science and Programming Using Python》(计算机科学与Python编程导论)
https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-0001-introduction-to-computer-science-and-programming-in-python-fall-2016/
6.0002《Introduction to Computational Thinking and Data Science》(计算思维和数据科学入门)
https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-0002-introduction-to-computational-thinking-and-data-science-fall-2016/
作为入门课程,6.0001和6.0002可以说非常好地完成了它们的使命!
两门课程以知识广度为更高的目标,将分支、循环、字符串、近似、函数、元组等娓娓道来,并且将内容深度控制在了非常友好的层面,初学者也能理解计算并通过程序解决实际的问题。
选择Python(而不是C/C )作为编程语言,教授们也用心良苦——Python语法简单易学、容易调试、不用进行内存管理,学生们可以关注更核心的『计算思维』。
wow~ ⊙o⊙
大神来教『幼儿园』
Dr. Ana Bell
哥伦比亚大学学士、普林斯顿大学硕博士,研究方向是计算生物学,《Get Programming: Learn to code with Python》一书的作者。
Prof. Eric Grimson
MIT校长,ACM、IEEE、AAAI Fellow,研究领域为计算机视觉和医学图像分析。教授的这门计算机编程入门课已有15000名MIT学生,并且是50名MIT博士的论文导师。
Prof. John Guttag
MIT电气工程和计算机科学系主任,研究机器学习、计算机视觉在医学、金融和体育领域的应用。教学致力于帮助学生构建计算思维,是《Introduction to Computation and Programming Using Python》这本神书的作者。
6.0001讲了什么?
我们从6.0001课程着手,一起看看课程设计者精心构造的『计算思维』世界,是由哪些知识组成的。
视频序号 | 英文标题 | 中文标题 |
---|---|---|
1 | 1.1 - What is Computation? | L1.1- 什么是计算科学 |
2 | 1.2 - Shell vs. Editor | L1.2- shell与编辑器 |
3 | 1.3 - Python vs. Math | L1.3- Python与数学 |
4 | 1.4 - Bindings | L1.4- 连接(bindings) |
5 | 2.1 - Branching and Iteration | L2.1- 分支与循环 |
6 | 2.2 - Strings | L2.2- 字符串 |
7 | 2.3 - Comparisons | L2.3- 程序中的「比较」逻辑 |
8 | 2.4 - Branching | L2.4- 分支 |
9 | 2.5 - While Loops | L2.5- while循环 |
10 | 2.6 - For Loops | L2.6- for循环 |
11 | 3.1 - String Manipulation, Guess and Check, Approximations, Bisection | L3.1- 字符串操作、近似、插入等 |
12 | 3.2 - String Manipulations | L3.2- 字符串操作 |
13 | 3.3 - For Loops With Strings | L3.3- 字符串的for循环处理 |
14 | 4.1 - Decomposition, Abstraction, and Functions | L4.1- 分解、抽象与函数 |
15 | 4.2 - Function Calls | L4.2- 函数调用 |
16 | 4.3 - Functions as Arguments | L4.3- 函数参数 |
17 | 5.1 - Tuples, Lists, Aliasing, Mutability, and Cloning | L5.1- 元组、列表、重命名、元素更改与复制 |
18 | 5.2 - Tuples | L5.2- 元组 |
19 | 5.3 - Simple Lists | L5.3- 简单列表 |
20 | 5.4 - List Operations | L5.4- 列表操作 |
21 | 5.5 - List Aliasing/Mutation | L5.5- 列表重命名与元素更改 |
22 | 6 - Recursion and Dictionaries | L6- 递归与字典 |
23 | 7.1 - Testing, Debugging, Exceptions, and Assertions | L7.1- 测试与调试、异常处理与断言 |
24 | 7.2 - Black Box and Glass Box Testing | L7.2- 黑盒与白盒测试 |
25 | 7.3 - Errors | L7.3- 错误处理 |
26 | 7.4 - Exceptions | L7.4- 异常处理 |
27 | 8.1 - Object Oriented Programming | L8.1- 面向对象的编程 |
28 | 8.2 - Class Definition | L8.2- 类的定义 |
29 | 8.3 - Class Instance | L8.3- 类的实例 |
30 | 8.4 - Methods | L8.4- 类方法 |
31 | 8.5 - Method Call | L8.5- 方法调用 |
32 | 8.6 - Special Methods | L8.6- 特殊函数(方法) |
33 | 9.1 - Python Classes and Inheritance | L9.1- python类与继承 |
34 | 9.2 - Getters and Setters | L9.2- get与set系列处理 |
35 | 9.3 - Subclass | L9.3- 子类 |
36 | 10 - Understanding Program Efficiency, Part 1 | L10- 程序效率分析 1 |
37 | 11 - Understanding Program Efficiency, Part 2 | L11- 程序效率分析 2 |
38 | 12 - Searching and Sorting | L12- 搜索与排序 |
学习收获
通过课程的学习,我们可以不仅可以掌握如下知识点,也能将其串联成完整的Python编程应用技能,为后续计算机科学专业方向(比如网站开发、数据科学、人工智能)应用与落地做好准备。
- A Notion of computation / 计算的概念
- The Python programming language / Python编程语言
- Some simple algorithms / 一些简单算法
- Testing and debugging / 测试和调试
- An informal introduction to algorithmic complexity / 算法复杂性的非正式介绍
- Data structures / 数据结构
参考链接
[1]课程官网:https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/
[2]B站课程视频:https://www.bilibili.com/video/BV1Dw411f7KK
[3]6.0001资源汇总页:http://blog.showmeai.tech/mit-6.0001/
THE END
转载请联系本公众号(ShowMeAI-Hub)获得授权