MIT 计算机科学及编程导论 Python 笔记 1
计算机科学及编程导论在 MIT 的课程编号是 6.00.1,是计算机科学及工程学院的经典课程。之前,课程一直使用 Scheme 作为教学语言,不过由于 Python 简单、易学等原因,近年来已经改用 Python 作为教学语言了。更多介绍
最初知道这个课程的时候大概是在 2014 年,对于做事拖沓的我,这门课程已经从低清随堂录制变成了 edX 平台的一门 高清的 MOOC,转眼间已经大三,希望自己能够完成自己曾经定下的计划。以下是在我在学习本课程时的一些笔记,在此与大家共享、共勉。
What does a computer do?
- Fundamentally a computer:
- Performs some calculations
- Remembers results
- What calculations?
- Built in primitives
- Creating our own methods of calculating
Simple calculations are not enough, so good algorithm design also needed to accomplish a task.
Despite its speed and storage, a computer does have limitations
- Some problems still too complex
- Some problems are fundamentally impossible to computer (e.g. Turing's Halting Problem)
Knowledge
- Declarative
- Imperative (likes a recipe, "how-to")
Computers
- Fixed-program computers (earliest computers)
To solve specific problems- Atanasoff (1941) - linear equations
- Turing bombe
Stored-program computers
- Program is a recipe. Each programming language provides a set of primitive operations.
- Given a fixed set of primitives, a good programmer can program anything.
Anything you can do with a language, you can do with another.
About python
- High(√) vs. Low
- General(√) vs. Targetted
- Interpreted(√) vs. Compiled
Aspects of languages & Common Errors
Aspects | Description |
---|---|
Primitive constructs | numbers, strings, simple operators |
Syntax | which strings of charactres and symbols are well-formed |
Static semantics | which syntactically valid strings have a meaning |
Full semantics | what is the meaning associated with a syntactically correct string of symbols with no static semantic errors |
- 语法用来描述语言中,什么表述是合法的。
- 静态语义表示什么程序是有意义的,哪种表达是有意义的。
- 完整语义即程序想达到什么目的,运行程序会产生什么效果。
Goal
- 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.
References
MIT 计算机科学及编程导论 Python 笔记 1的更多相关文章
- 【和孩子一起学编程】 python笔记--第一天
[该随笔记录本人在阅读过程写的笔记和一些问题,格式比较随意,不定时更新] 由于该书使用的python版本为2.5,本人使用的为3.6. 第一章: 遇到的第一个问题: 1.3节 输出指令: print ...
- 【和孩子一起学编程】 python笔记--第四天
第十一章: 可变循环 newStars = int(input("how many stars do you want?")) for i in range(newStars): ...
- 【和孩子一起学编程】 python笔记--第二天
第六章 GUI:用户图形界面(graphical user interface) 安装easygui:打开cmd命令窗口,输入:pip install easygui 利用msgbox()函数创建一个 ...
- 【和孩子一起学编程】 python笔记--第五天
关于python2在python3中的改动: https://mp.weixin.qq.com/mp/appmsg/show?__biz=MjM5MDEyMDk4Mw==&appmsgid=1 ...
- 【和孩子一起学编程】 python笔记--第三天
第十章 游戏时间:Skier 首先安装pygame,直接在cmd命令控制框里键入pip install pygame就可以了 代码: import pygame, sys, random skier_ ...
- Python编程导论第2版|百度网盘免费下载|新手学习
点击下方即可免费下载 百度网盘免费下载:Python编程导论第2版 提取码:18g5 豆瓣评论: 介绍: 本书基于MIT 编程思维培训讲义写成,主要目标在于帮助读者掌握并熟练使用各种计算技术,具备用计 ...
- python笔记 - day7-1 之面向对象编程
python笔记 - day7-1 之面向对象编程 什么时候用面向对象: 多个函数的参数相同: 当某一些函数具有相同参数时,可以使用面向对象的方式,将参数值一次性的封装到对象,以后去对象中取值即可: ...
- python核心编程第二版笔记
python核心编程第二版笔记由网友提供:open168 python核心编程--笔记(很详细,建议收藏) 解释器options:1.1 –d 提供调试输出1.2 –O 生成优化的字节码(生成 ...
- python笔记之编程风格大比拼
python笔记之编程风格大比拼 虽然我的python age并不高,但我仍然愿意将我遇到的或者我写的有趣的python程序和大家一块分享,下面是我找到的一篇关于各类python程序员的编程风格的比较 ...
随机推荐
- Linux(Ubuntu)下载安装破解Matlab2016
跳过废话, 直接看教程 前言 笔者平常不是很喜欢用Matlab, 因为所需要的功能都能被Python替代, 而Matlab的肥和慢实在令人难以忍受. 在Linux系统下安装Matlab也比Window ...
- git 打卡的第一天
因为某种原因,所以不得不重新巩固下前端的基础知识,从最基本的学习还得额外的学习新知识,倍感压力之大. 昨天初略学习下git,算是自己学习的一个新知识.简单记录下,希望四海八荒的大神看过来,有错的请指导 ...
- UINavigationController实现全屏滑动返回功能
说明: UINavigationController默认在push出的控制器中都有边沿滑动返回功能,但是只能从屏幕左边滑才能返回,若从屏幕中间画并没有效果.下面实现全屏滑动功能. 探究: 系统默认能够 ...
- JavaScript 中的 this 问题总结 !
2016-12-28 vvv阿城 JavaScript 转自 https://qiutc.me/post/this-this-this-in-javascript.html#call,_apply, ...
- SharePoint 2016 文档库的新功能简介
今天,重装了一下SharePoint 2016,想多了解了解,看到一些自己平时没注意的功能,或者新的功能,分享一下给大家. 1.界面上操作的变换,多了一排按钮,更像SharePoint Online了 ...
- [Linux] - Linux下安装jdk,tar方式
下载jdk的linux下版本,下载页面http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.ht ...
- java初级开发程序员(初识java)
据我们老师讲说:“学习java高级语言,每个程序员最初写的一个程序就是helloword,向世界打招呼! public class HelloWord{ //必须和文件名相同 public sta ...
- devexpress控件layoutview特效之一旋转木马的实现
1.devexpress有很多很好的特效,最近做了个旋转木马的特效,给大家分享下.效果图如下: 2.这里的控件为gridcontrol,里面的view为layoutview.数据绑定的代码与其他gri ...
- JMeter使用简单教程
去Apache JMeter官网下载最新的Windows下的zip安装包并解压 进入JMeter安装目录下的bin目录,双击jmeter.bat,运行JMeter程序 打开测试计划主界 ...
- Matlab立体标定mat转换成Opencv的CvMat
最近在做基于双目视觉的三维重建.比较opencv和matlab工具箱的立体标定结果精度时,发现貌似如果手工选取角点不那么离谱的话,matlab标定结果精度更高也更鲁棒.就想先用matlab标定好相机, ...