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

计算思维的过程,概括起来主要有四个内容——抽象、可计算、运行、优化。 具体说来,面对一个问题的时候,先利用抽象能力,找到问题的本质,随后将其转换为可计算的内容来运行得到结果,但是到这一步并未结束,在得到结果后我们还有对其进行优化,以得到更好的结果,而且这个优化过程是往复多次的。

转载于:https://www.cnblogs.com/shujufenxi/p/10128276.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/414003.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何理解Java中的自动拆箱和自动装箱?

小伟刚毕业时面的第一家公司就被面试官给问住了,记忆尤深啊… 如何理解Java中的自动拆箱和自动装箱? 自动拆箱?自动装箱?什么鬼,听都没听过啊,这…这…知识盲区… 回到家后小伟赶紧查资料,我…

[js] 实现多张图片合成一张的效果

[js] 实现多张图片合成一张的效果 原理是使用canvas画布。在页面加载前 mounted方法里:setTimeout(() > {this.changeimg();}, 1000);changeimg( )方法:changeimg(){var self this;var imgsrcArray [require(../../assets/image/income/background…

chrome浏览器中解决embed标签 loop=true 背景音乐无法循环的问题。

今天试了下在html网页中加入背景音乐并设置为循环播放。一开始用<embed>标签&#xff0c;设置loop"true", 但是结果发现在IE浏览器可以&#xff0c;但是在chrome浏览器却无法实现循环&#xff0c; 播放完一次自动停止了。代码如下&#xff1a; <embed src&q…

基于Docker的Redis集群简单搭建

环境&#xff1a;Docker ( Redis:5.0.5 * 3 ) 1、拉取镜像 docker pull redis:5.0.52、创建Redis容器 创建三个 redis 容器&#xff1a; redis-node1&#xff1a;6379redis-node2&#xff1a;6380redis-node3&#xff1a;6381 docker create --name redis-node1 -v /data…

[js] ajax如何接收后台传来的图片?

[js] ajax如何接收后台传来的图片&#xff1f; 1.设置responseType为 Blob&#xff0c;2.将Blob保存为文件个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

Python 全栈开发十 socket网络编程

一、客户端&#xff08;client&#xff09;服务端&#xff08;sever&#xff09;架构 在计算机中有很多常见的C/S架构&#xff0c;例如我们的浏览器是客户端、而百度网站和其他的网站就是服务端&#xff1b;视频软件是客户端&#xff0c;提供视频的腾讯、优酷、爱奇艺就是服务端…

[js] js源代码压缩都有哪些方法?它们的压缩原理分别是什么

[js] js源代码压缩都有哪些方法&#xff1f;它们的压缩原理分别是什么 方法 1.在线工具 2.webpack原理 1.删除注释 2.变量名方法名字符精减个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与…

基于Docker方式实现Elasticsearch集群

文本环境&#xff1a;Docker (Elasticsearch6.8.5 * 3) 1、拉取Elasticsearch docker pull elasticsearch6.8.52、创建es挂载目录 创建3个文件夹用于存放es挂载地址&#xff1a;es01、es02、es03 [rootCentOS7 ~]# mkdir /es-cluster [rootCentOS7 ~]# cd /es-cluster/ [ro…

[js] 不用 + eval Function 实现加法

[js] 不用 eval Function 实现加法 // 使用位运算符实现 function add (a, b) {if (a 0 || b 0) {return a || b;}while (b ! 0) {let i b;b (a & b) << 1;a a ^ i;}return a; };个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&…

基于Docker搭建Gitlab代码存储

关于Docker搭建Gitlab&#xff0c;在19年时就已经在博客发过文章了&#xff0c;今天重新回顾一下。 1、拉取镜像 docker pull gitlab/gitlab-ce默认拉取最新版本&#xff1a; 2、创建Gitlab配置 创建GitLab 的配置 (etc) 、 日志 (log) 、数据 (data) 放到容器之外&#xff…

Java Web开发技术教程入门-JavaBean组件与Servlet

补更&#xff1a;阅战阅勇第7/8/9Days笔记昨天我们了解了JDBC技术的一些日常操作&#xff0c;对于数据库而言&#xff0c;不仅仅的只有“增&#xff0c;删&#xff0c;改&#xff0c;查”。博主觉得最重要的是SQL语句的优化&#xff0c;一个“完美”的SQL语句可以大大减少程序的…

[js] 写一个 document.querySelector 的逆方法

[js] 写一个 document.querySelector 的逆方法 document.queryNode function(node){if(node.id){return # node.id;}if(node.className){return . node.id;}return node.nodeName; };个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但…

读书笔记--Android Gradle权威指南(上)

本篇文章已授权微信公众号 dasu_Android&#xff08;大苏&#xff09;独家发布 最近看了一本书《Android Gradle 权威指南》&#xff0c;对于 Gradle 理解又更深了&#xff0c;但不想过段时间就又忘光了&#xff0c;所以打算写一篇读书笔记&#xff0c;将书中一些我个人觉得蛮有…

[js] 如何判断对象是否属于某个类?

[js] 如何判断对象是否属于某个类&#xff1f; obj.proto class.prototype 可以递归去找obj instanceof class个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

基于Docker搭建私有镜像仓库

通常我们在docker中拉取的镜像都是在docker hub在线存储库中获取的&#xff0c;这个在线存储库里的docker镜像可以由任何用户发布和使用&#xff0c;显然这在某些场景下是不适用的&#xff0c;比如某些互金的隐私项目&#xff0c;或者是公司完全处于内网状态不能访问外网&#…

[js] 说说你对js沙箱的理解,它有什么应用场景?

[js] 说说你对js沙箱的理解&#xff0c;它有什么应用场景&#xff1f; 在微前端有用到js沙箱&#xff0c;例如qiankun框架&#xff0c;主应用的js运行和子任务的js运行不会相互影响&#xff0c;是使用es6的proxy来实现的个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后…

volatile理解了吗?

到这里大家感觉自己对volatile理解了吗&#xff1f; 如果理解了&#xff0c;大家考虑这么一个问题&#xff1a;ReentrantLock&#xff08;或者其它基于AQS实现的锁&#xff09;是如何保证代码段中变量&#xff08;变量主要是指共享变量&#xff0c;存在竞争问题的变量&…

Linux|CentOS下配置Maven环境

1、下载maven包 wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz如果提示 wget: 未找到命令&#xff0c;请尝试如下指令安装 wget yum -y install wget2、解压下载的maven压缩吧 tar -xzvf apache-maven-3.3.…

[js] 纯函数和函数式编程有什么关系?

[js] 纯函数和函数式编程有什么关系&#xff1f; 函数式编程是一种编程思想&#xff0c;纯函数是这种思想的基本要实现函数式编程&#xff0c;我们所封装的方法应该是抽象的&#xff0c;应该是和外部状态无关系的&#xff0c;也就需要是纯函数的&#xff0c;这样才能保证抽象的…

PHP 超级全局变量

PHP 超级全局变量列表: $GLOBALS $_SERVER $_REQUEST $_POST $_GET $_FILES $_ENV $_COOKIE $_SESSION 转载于:https://www.cnblogs.com/alexguoyihao/p/9086857.html