系统学习编程
盲人骑瞎马5555
努力搬砖~
间歇性发奋图强~
展开
-
系统学习编程笔记(二)
计算机科学CS50[第1集] 算法,程序设计,语言等这门课程是哈佛大学的,这个老师富有活力和激情,我的第一反应,不是觉得自己在听课,而是觉得自己在欣赏一个话剧,对,就是这种话剧的感觉。相比于之前在大学里面上过的略感枯燥的计算机相关的课程,惊叹于世界顶尖学府的教学水平。第一节课是绪论,一般来说,感觉绪论即使看着玩的,但是目前我听了斯坦福的cs231n和吴恩达的《机器学习》课程,包括这...原创 2018-10-29 14:07:48 · 142 阅读 · 0 评论 -
系统学习编程笔记(十九)
阅读《编码》8 十的替代品之所以现在生活中常用十进制,是因为刚好人类长了十个手指头,如果只长了八个,那可能就是流行的八进制了吧。 二进制最大的问题是数字用完的很快。 本章讲述了很多有意思的二进制运算的模板,感觉以后可以拿来教小盆友运算啊,可以不局限于十进制的计算。 二进制与计算机之间有着紧密的联系。9 二进制数《老橡树上的黄丝带》这首歌背后的故事,的确令我感动了。尤其是描述到当...原创 2019-01-20 11:32:57 · 136 阅读 · 0 评论 -
系统学习编程笔记(二十一)
• 完成Python 教程。6 函数式编程 (二)sorted()函数也是一个高阶函数,它可以接收一个key函数来实现自定义的排序。 高阶函数的抽象能力是非常强大的,而且核心代码可以保持得非常简洁。练习:假设我们用一组tuple表示学生名字和成绩,请用sorted()对列表分别按名字排序:# -*- coding: utf-8 -*-L = [('Bob', 75), ('A...原创 2019-03-20 17:46:04 · 132 阅读 · 0 评论 -
系统学习编程笔记(二十二)
• 完成Python 教程。7 模块在python中,一个.py文件就称之为一个模块(Module)。 使用模块最大的好处就是大大的提高了代码的可维护性。 使用模块的另一个好处就是编写代码不必从零开始。因为我们编写程序时,经常引用其他模块。 使用模块还可以避免函数名和变量冲突。 为了避免模块名冲突,python又引入了按目录来组织模块的方法,称为包(package)。 每一个包...原创 2019-03-21 09:44:08 · 113 阅读 · 0 评论 -
系统学习编程笔记(二十三)
完成Harvard CS50x(哈佛大学:计算机科学)[第7集]线性搜索,二进制搜索本集的前面大概40分钟都在讲述用for循环去打印bottle beer的一首童谣;然后又花了一些时间讲述根据循环的自变量判断是否要用bottle还是bottles;接着开始了每节课好玩的游戏时间,就是在黑板上用白纸盖住了两个数组,然后让志愿者去找某个指定的数50;从而非常形象的演示了二分...原创 2019-03-22 09:29:03 · 114 阅读 · 0 评论 -
系统学习编程笔记(二十)
• 完成Python 教程。6 函数式编程 (一)函数是python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计。 函数是面向过程的程序设计的基本单元。 函数式编程是一种抽象程度很高的编程范式。 函数式编程的一个特点就是,允许把函数本身作为参数传入另一个函数,还允许返回一个函数。 函...原创 2019-03-19 14:05:50 · 141 阅读 · 0 评论 -
系统学习编程笔记(二十四)
阅读《编码》11 门布尔表达式可以用一个电路来表示,这样的电路有时被称为网络(network)。 继电器是通过放大微弱信号来生成强信号的。 继电器可以作为一个电流控制而非人为控制的开关。 连接继电器是建立逻辑门的关键。 继电器串联并联等引出了与门和或门。 还有继电器可以组成非门、或非门等。 四个逻辑门(与门、或门、与非门、或非门)和一个反向器,这些工具组合到一起其实就是原始...原创 2019-03-25 20:58:07 · 170 阅读 · 0 评论 -
系统学习编程笔记(二十五)
• 完成Python 教程。8 面向对象编程面向对象编程----Object Oriented Programming,简称OOP,是一种程序设计思想。OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。 面向对象的程序设计把计算机程序视为一组对象的集合,而每个对象都可以接收其他对象发过来的消息,并处理这些消息,计算机程序的执行就是一系列消息在各个对象之间传递。 ...原创 2019-04-08 14:04:30 · 108 阅读 · 0 评论 -
系统学习编程笔记(二十六)
• 完成Python 教程。9 面向对象高级编程数据封装、继承和多态只是面向程序设计中最基础的三个概念。 方法可以直接定义在class中,但是动态绑定允许我们在程序运行的过程中动态给class加上功能,这在静态语言中很难实现。 如果我们要限制实例的属性,python允许在定义class的时候,定义一个特殊的__slots__变量,来限制该class实例能添加的属性。 __sl...原创 2019-04-09 10:06:18 · 142 阅读 · 0 评论 -
系统学习编程笔记(二十七)
• 完成Python 教程。10错误、调试和测试高级语言通常都内置了一套try...except...finally...的错误处理机制,Python也不例外。 不需要在每个可能出错的地方去捕获错误,只要在合适的层次去捕获错误就可以了。 出错的时候,一定要分析错误的调用栈信息,才能定位错误的位置。 python内置的logging模块可以非常容易地记录错误信息,还可以把错误记录...原创 2019-07-30 22:20:22 · 114 阅读 · 0 评论 -
系统学习编程笔记(二十八)
• 完成Python 教程。11IO编程在IO编程中,存在速度严重不匹配的问题。例如说CPU输出100M的数据只需要1秒,而磁盘接收100M的数据需要10秒。针对这种情况,有两种解决方法:1 CPU等着,也就是程序暂停执行后续代码,等100M的数据写入磁盘以后,再接着往下执行,这种模式称为同步IO; 2 CPU不等待,只是告诉磁盘,你慢慢写,我干其他的去了,后续代码也可以立刻接着执行,...原创 2019-07-31 16:29:13 · 109 阅读 · 0 评论 -
系统学习编程笔记(二十九)
阅读《编码》13 如何实现减法在加法器上做一些改动,就可以实现减法。 不用负号就能表示正负数的方法,并且自由地将正数和负数用加法相加。 二进制数的麻烦之处就在于它们只是一些0和1,本身并没有任何含义。14 反馈与触发器电路的输出是什么呢?其实就是要么提供电压,要么不提供电压,在两者之间切换。我们也可以换种方式来表达----输出结果要么是0,要么是1。我们把这种电路称之为振荡...原创 2019-08-10 21:10:26 · 97 阅读 · 0 评论 -
系统学习编程笔记(三十)
• 完成Python 教程。12 进程和线程多进程在一个进程内部,需要同时运行多个子任务,这些子任务称为线程。 同时执行多个任务的两种常用方法:第一种是启动多个进程,每个进程虽然只有一个线程,但多个进程可以一块执行多个任务;第二种是启动一个进程,在一个进程内启动多个线程,这样多个线程也可以执行多个任务。 线程是最小的执行单元,而进程由至少一个线程组成。如何调度进程和线程,完全由操...原创 2019-08-16 10:49:20 · 101 阅读 · 0 评论 -
系统学习编程笔记(三十一)
阅读《编码》17 自动操作代码RAM阵列中存放的每一个代码都对应着数据RAM中要被加载或者加到累加器中的数,或者对应需要存回到数据RAM中的某个数。以这种方式使用的数字代码常常被称为指令码或操作码。 进位锁存器。 8位反相器和8位加法器一起构成了算术逻辑单元ALU(Arthmetic Logic Unit)。18 从算盘到芯片图灵第一篇论文发表于1937年,首次提出了可计算性(c...原创 2019-09-06 23:09:29 · 109 阅读 · 0 评论 -
系统学习编程笔记(三十二)
阅读《编码》20 ASCII码和字符转换美国信息交换编码(American Standard Code for Information Interechange),简称ASCII编码。 ASCII码是7位编码。 ASCII码的问题就是太美国化了。 1988年开始,几大著名计算机公司合作研究出一种用来替代ASCII码的编码系统,取名为Unicode(统一化字符编码标准)。 Unico...原创 2019-09-12 16:46:23 · 93 阅读 · 0 评论 -
系统学习编程笔记(十八)
阅读《编码》6 电报机与继电器 电报(telegraph)字面意思为“远距离书写”。 电磁铁是电报机的基础,在线路的一段闭合或断开开关,可以使线路另一端的电磁铁有所动作。 继电器是一个意义非凡的设备。它是一个开关,但是这个开关的闭合和断开并不是由人来操纵的,而是由电流来控制的。 7 我们的十个数字数字是我们平常能接触到的一种最抽象的编码。 如今我们所用的数...原创 2018-11-16 21:22:59 · 148 阅读 · 0 评论 -
系统学习编程笔记(十七)
• 完成 Python 教程。5. 高级特性5.1 切片记住倒数第一个元素的索引是-1。 tuple也是一种list,唯一区别是tuple不可变。因此,tuple也可以用切片操作,只是操作的结果仍是tuple。5.2 迭代5.3 列表生成式列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式。>...原创 2018-11-16 15:33:08 · 122 阅读 · 0 评论 -
系统学习编程笔记(十六)
• 完成 Python 教程。4. 函数定义函数时,需要确定函数名和参数个数; 如果有必要,可以先对参数的数据类型做检查; 函数体内部可以用return随时返回函数结果; 函数执行完毕也没有return语句时,自动return None。 函数可以同时返回多个值,但其实就是一个tuple。 请定义一个函数quadratic(a, b, c),接收3个参数,返回一元二次方程...原创 2018-11-16 14:27:12 · 316 阅读 · 2 评论 -
系统学习编程笔记(三)
计算机科学CS50[第2集] 算法,数据存储,磁盘,程序设计等昨天晚上看完了第二集,现在凭记忆回想一下。老师依旧富有激情的讲课,并且是真正把你当一个对计算机完全不懂的小白在以巧妙的方式给你介绍计算机科学相关的内容。1.为了介绍磁盘,老师专门买了一个软盘,并且在课堂上拆开,给大家介绍。老师介绍的是磁盘格式化其实并没有删除磁盘上的内容,你的数据还是在磁盘上,格式化的时候只是改写了部分字...原创 2018-10-31 09:36:05 · 413 阅读 · 0 评论 -
系统学习编程笔记(一)
计算机科学与python编程导论第一讲-计算科学简介 Lecture 1 - Introduction to Computation1.算法和程序之间的区别是什么?What is the difference between an Algorithm and a Program?算法是一个概念,程序是算法的具体实现。An algorithm is a conceptual id...原创 2018-10-27 17:12:33 · 550 阅读 · 0 评论 -
系统学习编程笔记(七)
计算机科学CS50[第3集] C语言,源代码,编译器(1) 本集主要介绍了C语言编写的一个hello world程序,使用的是gcc编译器,采用的是连接服务器进行代码的编译和运行,而其实这是工业界经常采用的方式。原来csv文件其实是用‘,’分割存储的文本文件,只是打开的时候看起来像Excel文件。详细介绍了一些转义字符。课程结束展示的了一个酷炫的C语言的写的程序,而带给我的感受...原创 2018-11-06 09:23:33 · 130 阅读 · 0 评论 -
系统学习编程笔记(八)
阅读《编码》2 编码与组合首先发现接收编码并解码比发送莫尔斯码要麻烦的多,这是因为目前只提供了一张“字母→莫尔斯码”的编码表,而缺少一张可以实现反向查询“莫尔斯码→字母”的译码表。 引出了四张译码表。 引出了码字的数目和“点”和“划”的数目的公式。 用一张树型图表示译码表,更加的形象了。 这张表可以确保我们不会对不同的字母定义相同的码字;其次通过这个表我们可以用尽可能短的码字来表示...原创 2018-11-06 19:27:23 · 98 阅读 · 0 评论 -
系统学习编程笔记(十二)
阅读《编码》3 布莱叶盲文与二进制码布莱叶双目完全失明,在巴比尔系统的基础上创建了布莱叶盲文。 布莱叶盲文中,每个书写文字中用到的字符(字母、数字、标点符号)都被编码成为2*3的点码单元的一个或者多个凸起的点。这个点码单元包含的点通常使用1到6的数字来编写。 英文版务中最常用的盲文系统被称为二级布莱叶盲文。 使用了6个点,共可以表示64组编码,而这64组编码中,有很大一部分根据上下...原创 2018-11-09 10:05:14 · 290 阅读 · 0 评论 -
系统学习编程笔记(四)
计算机科学与python编程导论第二讲-编程基础 Lecture 2 - Core Elements of Programs这一讲主要介绍了python的简单编程语句。练习包含的内容主要是一些预测表达式的值,加深对于python中的数据类型int、string、Boolean的认识,其中的类型转换。关于判断一个变量是否为字符串类型的时候,涉及到python版本的问题,有一些答案不被...原创 2018-11-02 11:14:50 · 143 阅读 · 0 评论 -
系统学习编程笔记(五)
阅读《编码》1 至亲密友这一章很简短,通过对于想要和朋友在夜幕降临以后继续交流引出了手电筒,通过手电筒的闪烁来传达一些信息再次引出了莫尔斯电码(Morse Code)。莫尔斯电码中有两种闪烁,长闪和短闪。大部分的编码必须易于理解,因为它们是人类交流的基础。口头话语或言辞;书面语言或文本,都是编码。手语,盲文等等。莫尔斯密码的一个缺点是没有区分大写字母和小写字母。两个不同的...原创 2018-11-02 17:16:17 · 115 阅读 · 0 评论 -
系统学习编程笔记(六)
任务3:• 完成 Python 教程。第一个python程序1.使用文本编辑器Python的交互模式和直接运行.py文件有什么区别呢?直接输入python进入交互模式,相当于启动了python解释器,但是等待你一行一行的输入源代码,输入一行,执行一行。直接运行.py文件,相当于启动了python解释器,一次性将.py文件执行完了,是没有机会以交互的方式输入源码的。比较好的方...原创 2018-11-02 21:52:54 · 100 阅读 · 0 评论 -
系统学习编程笔记(九)
计算机科学CS50[第4集] C语言,源代码,编译器(2)学习了char(1字节)、double(8字节)、float(4字节)、int(4字节)、long(4字节)、long long(8字节)四种数据类型。 使用gcc编译程序的时候,有时候需要非常繁琐的命令,课程组就自己写了一个make的命令,以方便大家不需要记住繁琐的命令。这种思想就是让大家把有限的attention放在重要的事情...原创 2018-11-07 10:05:15 · 110 阅读 · 0 评论 -
系统学习编程笔记(十)
• 完成 Python 教程。3. python基础3.1 数据类型和变量python的语句以冒号结尾时表示代码块,缩进时按约定俗成的应该是用4个空格的缩进,不要tab和空格混用。 python程序是大小写敏感的。 缩进的坏处就是重构代码的时候必须重新检查缩进是否正确,另外IDE很难像格式化JAVA代码那也格式化python代码。 python可以处理的数据类型包括整数、浮点数、...原创 2018-11-07 19:48:24 · 123 阅读 · 0 评论 -
系统学习编程笔记(十一)
计算机科学和 Python 编程导论第三讲-简单算法 Lecture 3 - Simple AlgorithmsProblemSet1: 使用for循环打印以下内容print "Hello!"print 10print 8print 6print 4print 2# There are always many ways to solve a programming pr...原创 2018-11-08 14:46:25 · 136 阅读 · 0 评论 -
系统学习编程笔记(十四)
计算机科学和 Python 编程导论第四讲-函数 Lecture 4 - Functions封装可以保护细节。 每一个函数调用都会创建一个新环境,新作用域,形式参数和输入数值在这里绑定。这就是静态域。 def clip(lo, x, hi): ''' Takes in three numbers and returns a value based on the v...原创 2018-11-14 10:19:10 · 157 阅读 · 0 评论 -
系统学习编程笔记(十三)
阅读《编码》5 绕过拐角的通信关于电流的接地,在英国人们称其为“earth”,在美国叫“ground”。(感觉对冷知识最感兴趣。。。) 问题的引出:新朋友的卧室窗户和你的卧室窗户不是对着的,然后如何继续用手电筒发送莫尔斯密码来交流? 引出了两节电池、两个灯泡、两个开关、导线组成的简陋的双向电报系统。 但是整个系统必须铺设很长的线路,如何设计电路节省导线呢? 引出了接地。 对于低...原创 2018-11-12 19:40:33 · 107 阅读 · 0 评论 -
系统学习编程笔记(十五)
完成 Harvard CS50x (哈佛大学:计算机科学)[第5集] 函数,全局变量,参数,返回值 [第6集] 参数,返回值 引出了函数,引出了函数声明,引出了内存,堆栈……想起了曾经熟悉的C++代码……马上又要写C++代码了……不知道能写的怎么样……常常惊叹于老师的热情……那是一份怎样的工作也常常感叹语听课同学的思考,其实或许我自己也有这样的疑惑,但我的第一反应不...原创 2018-11-16 09:33:42 · 133 阅读 · 0 评论 -
系统学习编程笔记(三十三)
阅读《编码》23 定位数和浮点数数学家定义了用两个整数的比值表示的一类数,称作有理数(rational number)或分数(fraction)。 无理数(irrational number)是一些更加奇特的数,它们不能表示为两个整数的比,这就意味着其小数部分是无穷的,而且毫无规律,没有循环。 如果某个数不是任何以整数为系数的代数方程的解,那么这个数称作超越数(所有的超越数都是无理数,...原创 2019-09-16 09:44:24 · 137 阅读 · 0 评论