1.概述
计算机包括 硬件 (hardware) 和 软件 (software) 两部分。硬件包括计算机中可以看得见的物理部分。而软件提供看不见的指令。这些指令控制硬件并且使得 硬件完成特定的任务。程序设计(设计程序)定义: 创建(或开发)软件(写代码)。软件包含了指令(代码),告诉计算机做什么。应用场景: 软件遍布我们周围。除了个人计算机,飞机、汽车、手机甚至烤面包机中,同样运行着软件。程序设计语言软件开发人员在称为程序设计语言的强大工具的帮助下创建软件。(java,python,scala,c,c++,php等等)
1.1 如何选择该学习哪种程序设计语言?
1.程序设计语言有很多种,每种语言都是为了实现某个特定的目的而发明的。2. 你会困惑哪种语言是最好的。事实上, 没有“最好”的语言。 每种语言都有它的长处和短处。3. 经验丰富的程序员知道各种语言擅长的应用场景,因此,会尽可能的掌握各种不同的程序设计语言。4. 如果你掌握了一种编程语言,应该会更容易上手其它的编程语言。关键是学习 如何使用程序设计方法来解决问题。这也是本套课程的主旨。
2.计算机硬件介绍
在个人计算机上,总线搭建在主板上,主板是一个连接计算机各个部分的电路板。
冯·诺依曼体系结构 是现代计算机的基础,现在大多计算机仍是冯·诺依曼计算机的组织结构,只是作了一些改进而已,并没有从根本上突破冯体系结构的束缚。冯·诺依曼也因此被人们称为“计算机之父”。计算机应该有:1.输入数据和程序的输入设备2.记忆程序和数据的存储器3.完成数据加工处理的运算器4.控制程序执行的控制器
5.输出处理结果的输出设备
2.1 计算机硬件介绍-中央处理器
现在的CPU都是构建在一块小小的硅半导体芯片上,这块芯片上包含数百万称为晶体管的小电路开关上,用于处理信息。1. 中央处理器 (Central Processing Unit,CPU) 是计算机的大脑。它从内存中获取指令,然后执行这些指令。2.包括:控制单元 (control unit) 和算术 / 逻辑单元 (arithmetic/login unit) 。(1) 控制单元: 用于控制和协调其他组件的动作。(2) 算术/ 逻辑单元: 用于完成数值运算 (+ 、 - 、 * 、 /) 和逻辑运算 ( 比较 ) 。3.每台计算机都有一个内部时钟,该时钟以固定速度发射电子脉冲。时钟速度越快,在给定的时间段内执行的指令就越多。速度的计量单位是 赫兹 (Hz) , 1Hz 相当于每秒 1 个脉 冲。随着CPU速度不断提高,目前以 千兆赫 (GHz)来表述。(1khz = 1024hz、1mhz = 1024khz、1Ghz = 1024mhz)4.最初一个CPU只有一个核(core)。核是处理器中实现指令读取和执行的部分。一个多核CPU 是一个具有两个或者更多独立核的组件。可提高 CPU 的处理能力。IT定律之计算机行业发展规律(CPU)1.摩尔定律 (Moore’s Law)摩尔定律是由英特尔(Intel )创始人之一戈登摩尔(Gordon Moore )提出来的。其内容为:当价格不变时,集成电路上可容纳的元器件的数目,约每隔1-24个月便会增加一倍,性能也将提升一倍。换言之,每一美元所能买到的电脑性能,将每隔18-24个月翻一倍以上。2. 安迪 - 比尔定律 (Andy and Bill’s Law)安迪-比尔定律(Andy and Bills Law)描述了硬件产商和软件产商之间的关系。即比尔要拿走安迪所给的 (What Andy gives, ill takes away) 。
个人电脑工业整个的生态链是这样的:以微软为首的软件开发商吃掉硬件提升带来的全部好处,迫使用户更新机器让惠普和戴尔等公司收益,而这些整机生产厂再向英特尔这样的半导体厂订货购买新的芯片、同时向Seagate等外设厂购买新的外设。在这中间,各家的利润先后得到相应的提升,股票也随着增长。各个硬件半导体和外设公司再将利润投入研发,
按照摩尔定理制定的速度,提升硬件性能,为微软下一步更新软件、吃掉硬件性能做准备。当然,微软和其它软件开发商在吃掉大部分硬件提升好处的同时,或多或少地会给用户带来—些新东西。3. 反摩尔定律 (Reverse Moore’s Law)反摩尔定律:Google的前CEO埃里克·施密特提出的:如果你反过来看摩尔定律,一个IT公司如果今天和18个月前卖掉同样多的、同样的产品,它的营业额就要降一半。IT界招它称为反摩尔定律。反摩尔定律对于所有的IT公司来讲,都是非常可怕的,因为一个IT公司花了同样的劳动,却只得到以前一半的收入。反摩尔定律逼着所有的硬件设备公司必须赶上摩尔定律所规定的更新速度,而所有的硬件和设备生产厂活得都是非常辛苦的。
2.2 计算机硬件介绍-存储设备
内存中的信息在断电时会丢失。那我们可以考虑将程序和数据永久的保存在存储设备上。当计算机确实需要这些数据时,再移入内存,因为从内存中读取比从存储设备读取要快得多。存储设备主要有以下三种:1. 磁盘驱动器: 每台计算机至少有一个硬盘驱动器。硬盘(hard disk) 用于永久的保存数据和程序。2. 光盘驱动器(CD 和 DVD) : CD的容量可达 700MB 。 DVD的容量可达 4.7GB 。3. USB闪存驱动器:USB: Universal Serial Bus,通用串行总线。可以使用USB将打印机、数码相机、鼠标、外部硬盘驱动器连接到计算机上。USB闪存驱动器很小,可用于存储和传输数据的设备。
2.3 计算机硬件介绍:内存
计算机CPU和内存的交互是最频繁的,内存是我们的高速缓存区,用户磁盘和CPU的交互,而CPU运转速度越来越快,磁盘远远狠不上CPU的读写速度,才设计了内存比特 (bit) 和字节 (byte)1. 在讨论内存前,先清楚数据是如何存储在计算机中的。2.计算机就是一系列的电路开关。每个开关存在两种状态:关(off)和开(on)。如果电路是开的,它的值是1。如果电路是关的,它的值是0。3. 一个 0 或者一个 1 存储为一个比特 (bit) ,是计算机中最小的存储单位。4. 计算机中是最基本的存储单元是字节 (byte) 。 每个字节由 8 个比特构成。5.计算机的存储能力是以字节和多字节来衡量的。如下:
千字节(kilobyte,KB) = 1024B 兆字节(megabyte,MB) = 1024KB 千兆字节(gigabyte,GB) = 1024MB 万亿字节(terabyte,TB) = 1024GB PB指petabyte,它是较高级的存储单位,其上还有EB,ZB,YB等单位。 6.内存(也叫 Random-Access Memory,RAM):由一个有序的 字节序列组成,用于存储程序及程序需要的数据。
7.一个程序和它的数据在被CPU执行前必须移到计算机的内存中。
8.每个字节都有一个唯一的地址。见下图。使用这个地址确定 字节的位置,以便于存储和获取数据。
9. 一个计算机具有的RAM越多,它的运行速度越快,但是此规律是有限制的。10.内存与CPU一样,也构建在表面嵌有数百万晶体管的硅半导体芯片上。但内存芯片更简单、更低速、更便宜。
11.实测发现:内存存取数据的速度比硬盘的存取速度快10倍,在某些环境里,硬盘和内存之间的速度差距可能会更大。而CPU的速度比内存不知还要快多少倍。当我们把程序从硬盘 放到内存以后,CPU就直接在内存运行程序,这样比CPU直接在硬盘运行程序就要快很多。
12.内存解决了一部分CPU运行过快,而硬盘数据存取太慢的问题。 提高了我们的电脑的运行速度。内存就如同一条“高速车道”一般,数据由传输速度较慢的硬盘通过这条高速车道传送至CPU进行处理!
13.但内存是带电存储的(一旦断电数据就会消失),而且容量有限,所以要长时间储存程序或数据就需要使用硬盘。
14.内存在这里起了两个作用:1. 保存从硬盘读取的数据,提供给 CPU 使用2. 保存 CPU 的一些临时执行结果,以便 CPU 下次使用或保存到硬盘
2.4 计算机硬件介绍:输入和输出设备
1.常见的输入设备:键盘(keyboard)和鼠标(mouse)
2.常见的输出设备:显示器(monitor)和打印机(printer)
3.显示器屏幕分辨率:是指显示设备水平和垂直方向上显示的像素(px)数。
1.分辨率可以手工设置。2. 分辨率越高,图像越锐化、越清晰。
品牌尺寸 像素 像素密度 华为mate 20 x 7.2 2244x1080像素 345ppi 华为mate 20 6.53 2244x1080像素 381ppi 华为mate 20 pro 6.39 3120x1440像素 538ppi 小米8 SE 5.88 2244x1080像素 423ppi 小米8 6.21 2244x1080像素 401ppi 苹果 iphone8 4.7 1334x750像素 326ppi 苹果 iphone8 plus 5.5 1920x1080像素 401ppi 计算公式: 像素密度 =√[( 长度像素数 )^2+( 宽度像素数 )^2]/ 屏幕尺寸
2.5 计算机硬件介绍:通信设备
1.计算机可以通过通信设备进行联网。2.常见的设备有:1. 拨号调制解调器 :使用的是电话线,传输速度可达 56 000bps(bps: 每秒比特 )2. DSL(数字用户线) :使用的也是电话线,但传输速度叫上面的快 20 倍3. 电缆调制解调器 :利用有线电视电缆进行数据传输,通常速度比 DSL 快。4. 网络接口卡( NIC ) :将计算机接入局域网( LAN )的设备。局域网通常用于大学、商业组织和政府组织。速度甚至可达1000Mbps5. 无线网络 :在家庭、商业和学校中极其常见。计算机可通过无线适配器连接到局域网或internet 上。
3.计算机发展史上的鼻祖
3.1 阿兰·图灵
最近半个世纪以来,世界计算机科学界的重大进步,离不开图灵等人的 理论奠基作用和多方面的开创性研究成果。 图灵是当之无愧的计算机科 学和人工智能之父。 甚至认为,他在技术上的贡献及对未来世界的影响 几乎可与牛顿、爱因斯坦等巨人比肩。图灵论文中的“ 用有限的指令和有限的存储空间可算尽一切可算之物 ” 理论让当时所有的科学家震惊美国计算机学会(ACM )的年度“图灵奖”,自从 1966 年设立以来,一直是世界计算机科学领域的最高荣誉,相当于计算机科学界的诺贝尔 奖。至今,中国人只有 姚期智 院士获该奖项。
3.2 冯·诺依曼
20世纪最重要的数学家之一,在现代计算机、博弈论、核武器 和生化武器等诸多领域内有杰出建树的最伟大的科学全才之一, 被后人称为 “计算机之父”和“博弈论之父 ” 。计算机基本工作原理是存储程序和程序控制,它是由世界著名数学家冯· 诺依曼提出的。 最简单的来说,冯诺依曼理论的要点 是:数字计算机的数制采用二进制;计算机应该按照程序顺序执行。同样有着“计算机之父”称号的冯· 诺依曼的助手弗兰克尔在一 封信中写到:“…… 计算机的基本概念属于图灵。按照我的看 法,冯· 诺依曼的基本作用是使世界认识了由图灵引入的计算机 基本概念……”根据冯诺依曼体系结构构成的计算机,必须具有如下功能:1.把需要的程序和数据送至计算机中。2.必须具有长期记忆程序、数据、中间结果及最终运算结果的能力。3.能够完成各种算术、逻辑运算和数据传送等数据加工处理的能力。4.能够根据需要控制程序走向,并能根据指令控制机器的各部件协调操作。5.能够按照要求将处理结果输出给用户。
4.操作系统
1.操作系统 (Operating System) 是运行在计算机上的最重要的程序,它可以管理和控制计算机的活动。2.硬件、操作系统、应用程序和用户之间的关系如下图。3.操作系统的主要任务:
1.控制和监视系统的活动
2.分配和调配系统资源3.调度操作
5.万维网
万维网(World Wide Web,www, 环球信息网)常简称为 Web, 发明者蒂姆 · 伯纳 斯· 李。分为 Web 客户端和 Web 服务器程序。 WWW 可以让 Web 客户端(常用 浏览器)访问浏览Web 服务器上的页面 。 是一个由许多互相链接的超文本组成的系统,通过互联网访问。在这个系统中,每个有用的事物,称为一样“资源”;并且由一个 全局“统一资源标识符”( URI )标识 ;这些资源通过 超文本传输协议(Hypertext Transfer Protocol ) 传送给用户,而后者通过点击链接来获得资源。
软件架构 B/S(浏览器) C/S(QQ等) browser server client server万维网是无数个网络站点和网页的集合,它们在一起构成了 因特网 Internet 最主要的部分(因特网也包括电子邮件、Usenet 以及新闻组)。它实际上是多媒体的集合,是由超级链接连接而成的。我们通常通过网络浏览器上网观看的,就是万维网的内容。
6.学习经验探讨
1.锻炼“双核”处理,边听讲思考,边做“笔记”
2.纸上得来终觉浅,绝知此事要躬行!
1.第一层次:看得懂(依赖于视频、书、贴子)
2.第二层次:练的熟 ( 每天代码必须实现 2-3 遍 )3.总结: 三分看,七分练3.建立行之有效的学习方法
1.学习编程的捷径:敲,狂敲
2.“模仿”好的编码习惯
3.整理、回顾:每天花30min整理
四种心态
1.不是“没听懂”,而是“记不住”
2.要为成功找理由,不为失败找借口
3.战略上藐视”对手”,战术上重视”对手”
4.“代码虐我千百遍,我视代码如初恋”