jacky解读麻省理工《计算机科学与Python编程导论》第1集
文:@数据分析-jacky(朱元禄)
(一)导言
本课程讲的中心思想就是五个字:计算机思维
Python只是辅助工具,是辅助大家理解计算机思维,仅此而已
- 急功近利是人性,适得其反是结果:我们看到有很多讲Python的资料,严格意义上来说,并不是Python入门,只是帮大家找找敲代码的感觉,而已;
讲师太大牌了,主讲人是麻省理工校长 Eric;
本系统课程的坑:大神知识渊博,喜欢旁征博引,难免一讲嗨,一些辅助的知识点风头会盖过主线,导致主线不是那么清晰,这就需要大家多捋顺主线逻辑,有主次的学习;
(二)计算机的发展史
在大牌的讲师,要系统的讲述一个课程,也都要从历史开始讲,这是必然的
关于计算机历史的逻辑线,Eric并没有像普通教授那样照本宣科按照时间年限开始讲,而是从计算机的两大能力展开的,把握住这个逻辑,我们就可以听明白第二部分了;
2.1 逻辑线的展开-计算机的两大能力
无论我们是说计算机思维也好,Python编程也好,我们能依靠的载体是不是都是计算机,计算机也是我们解决实际问题的工具,那么怎样才能利用好这个工具呢?是不是最大程度的把工具的能力发挥出来;好,要发挥出工具(计算机)最大能力,就要弄清楚2个问题:
第一个问题就是:计算机的能力是什么?
第二个问题就是:我们怎样把计算机的能力充分的发挥出来?
2.1.1 计算机的能力是什么
能力1:计算
能力2:存储
- 计算机所具有的两个根本特性——超快的计算速度和超大的内存。计算机拥有的计算速度,可以达到每秒钟十亿次,与此同时,相较与需要存储的内容而言,计算机具有近乎无限的存储空间。正是因为在这两个惊人特性的组合,便赋予计算机强大的功能。
2.1.2 如何充分发挥计算机的能力
(1)用算法将计算能力发挥到极致
(2)用数据结构将存储能力发挥到极致
- 虽然我们拥有超快的计算速度,但是面对异常复杂的问题时,单纯蛮力式的进行运算,是不明智的。这时候算法就派上了用场,通过一些巧妙的的算法,我们可以把一个问题简单化,这样运算自然简单了许多。同样的道理,面对复杂的问题,需要存储的内容和数据是巨大的,如何通过巧妙的存储以利于数据的读写,这就是数据结构的内容了。这也是为什么我们一般会把算法和数据结构放在一起讲授,因为它们本来就是一个整体。
2.2 计算机的发展史就是计算和存储能力的发展史
(1)第一阶段:固定程序计算机-为算法制造的机器
- 说白了就是只能解决特定问题的计算机,比如说我们最常见的计算器,当然Eric教授用他深厚的内功给我们举了很多例子,告诉我们什么同样也是固定计算机,比如专门解决线性问题的Atanasoff计算机(1941),二战时期专门破译代码的bombe计算机,
(2)第二阶段:存储程序计算机-既能计算又能存储的计算机
(三)编程语言只是工具,而已
为了说明这个问题,Eric从下面几个方面展开,其实都是为了说明,Python只是一个工具,他真正要教授的是编程思维;
3.1
计算思维的过程,概括起来主要有四个内容——抽象、可计算、运行、优化。 具体说来,面对一个问题的时候,先利用抽象能力,找到问题的本质,随后将其转换为可计算的内容来运行得到结果,但是到这一步并未结束,在得到结果后我们还有对其进行优化,以得到更好的结果,而且这个优化过程是往复多次的。
jacky解读麻省理工《计算机科学与Python编程导论》第1集的更多相关文章
- (2)麻省理工:计算机科学和 Python 编程导论
语义描述了我们如何从那些表达式中推导出相关的含义,从而解决我们想解决的问题. 语法描述了如何将合法表达式组合在一起. 我们要选择什么样的编程语言? 1. 不管我们选什么,都有如下过程: 输入信 ...
- (1)麻省理工:计算机科学和 Python 编程导论
本门课用的语言是python2.7,我的主要学习语言是C++11,所以不是特殊说明,则认为和C++中的是一样的(不管是语法还是表达式),当然,也有我不懂而错认为与C++一样的东西~ Week1 第一讲 ...
- Python编程导论第2版|百度网盘免费下载|新手学习
点击下方即可免费下载 百度网盘免费下载:Python编程导论第2版 提取码:18g5 豆瓣评论: 介绍: 本书基于MIT 编程思维培训讲义写成,主要目标在于帮助读者掌握并熟练使用各种计算技术,具备用计 ...
- MIT 计算机科学及编程导论 Python 笔记 1
计算机科学及编程导论在 MIT 的课程编号是 6.00.1,是计算机科学及工程学院的经典课程.之前,课程一直使用 Scheme 作为教学语言,不过由于 Python 简单.易学等原因,近年来已经改用 ...
- (麻省理工免费课程)C语言内存管理和C++面向对象编程
此课程有全部讲义和习题. 课程描述实在得令人发指.翻译如下: 您是否由于自己的Python程序比同僚们的C程序慢而垂头丧气?你是否想不用JAVA实现面向对象?加入我们,学习C和C++吧!我们带您从简单 ...
- 麻省理工《C内存管理和C++面向对象编程》笔记---第一讲:认识C和内存管理
最近一年都在用.net和Java,现在需要用C了.昨天看到博客园首页的麻省理工开放课程,就找来看看,正好复习一下.这门<C内存管理和C++面向对象编程>不是那种上来就变量,循环的千篇一律的 ...
- python编程入门之简介
引用百度百科: Python是一种面向对象.直译式计算机程序设计语言,由荷兰人Guido van Rossum发明于1989年,1991年发行第一个公开发行版.它常被昵称为胶水语言,它能够很轻松的把用 ...
- Linux运维人员如何学习python编程
Linux运维人员如何学习python编程 从不会写代码,到自己独立能写代码解决问题 .这个问题很重要!盲目学习所谓的项目,最后 还是不会自己写代码解决问题.首先解决了独立能写代码解决问题,再通过项目 ...
- Python 编程规范-----转载
Python编程规范及性能优化 Ptyhon编程规范 编码 所有的 Python 脚本文件都应在文件头标上 # -*- coding:utf-8 -*- .设置编辑器,默认保存为 utf-8 格式. ...
随机推荐
- Mysql分表和分区的区别、分库和分表区别
一,什么是mysql分表,分区 什么是分表,从表面意思上看呢,就是把一张表分成N多个小表,具体请看:mysql分表的3种方法. 什么是分区,分区呢就是把一张表的数据分成N多个区块,这些区块可以在同一个 ...
- VBA Excel宏(二)
在本章中,我们来学习如何逐步编写一个简单的宏. 第1步 - 首先,在Excel 2016中启用“开发者”菜单.要完成这个设置,请点击左上角菜单:文件 -> 选项.如下图所示 - 第2步 - 点击 ...
- nodejs入门API之url模块+querystring模块
关于URL的一些基础内容 URL模块的API解析 URL的参数URLSearchParams类 querystring模块 一.关于URL的一些基础内容 1.1 定义: 在WWW上,每一信息资源都有统 ...
- 什么是N+1查询?
在Session的缓存中存放的是相互关联的对象图.默认情况下,当Hibernate从数据库中加载Customer对象时,会同时加载所有关联的Order对象.以Customer和Order类为例,假定O ...
- 虚拟机和hadoop
摘要:VMware虚拟机安装Win10,Win10用虚拟机安装教程 微软发布Win10预览版下载地址后,用WMware虚拟机安装Win10是很好的选择.如何用VMware虚拟机安装Win10,Win1 ...
- springboot 部署到tomcat,获取根路径问题。空格变为%20
String path = ResourceUtils.getURL("classpath:").getPath()+"static/upload"; Syst ...
- django启动通过ip或是域名访问
setting.py里面的ALLOWED_HOSTS = ['localhost','域名','本机ip'] 启动时一般都是命令行 python manage.py runserver [端口号] ...
- 微软Surface低端版本将问世
平板电脑现如今已走进千家万户,其触屏的操作相比笔记本电脑更加方便,屏幕也比手机大很多,是家用玩机的首选.虽然微软也在这一领域有所发力,推出了Surface这一产品,但其高昂的售价使得其在市场上的表现并 ...
- libssh2--ssh2实例
#include "libssh2_config.h"#include<libssh2.h>#include<libssh2_sftp.h> 上述为所包含必 ...
- NLP学习(2)----文本分类模型
实战:https://github.com/jiangxinyang227/NLP-Project 一.简介: 1.传统的文本分类方法:[人工特征工程+浅层分类模型] (1)文本预处理: ①(中文) ...