硬件
计算机可以没有软件
开关上就是软件
冯 诺依曼
现在计算机可以没有硬件
今天的AI实际上是统计 >=三维
现在的内存是二维-所以比较慢-如果能做出三维-效率能够提高
今天的AI 实际上拆解成了基本运算 e.g. Intel架构 IBM 图灵机程序
寒武纪芯片-将机器学习算法-硬件完成-所以效率大大提高-电路稍微复杂
所以计算机可以只有硬件
软件-拆解-配合硬件-现在已经出现瓶颈
anyarch
计算机并不是电脑 并不能自己考虑
与计算机交流 最早-开关(易出错)
冯诺依曼体系
冯 诺依曼: 提出了存储程序 分区-程序和数据放在一起,但是计算机需要划分
后来使用纸带交流-控制电子管的充放电
出现语言 但不在计算机内部-不是软件
汇编语言
总结-经常使用的其实只有10+指令,总结出来汇编语言
本质仍是机器语言,依然不是软件
只需要编译器 (高级语言-低级语言)
高级语言
早期程序员其实是数学家-将数学翻译成机器语言,给计算机执行
直接让计算机进行数学计算-Fortran-第一个高级语言
数学家可以直接编程
编程语言的价值-让更多的人可以编程-越来越接近自然语言 & 每句话代表的机器指令更多
软件 (经典)
程序越来越庞大-如果只看指令-容易出现大量错误且难以理解
出现 comment-注释-不会被编译
准确地写出注释实际上非常困难
提出软件 Software (ware表示那些东西)
定义
狭义 软件=程序,指令的集合
广义 计算机系统中的程序及其文档(不可执行的,但同样重要)
经典软件工程实际上很大部分围绕文档
程序 + 文档 / 计算机
数据结构
软件
新一代信息技术 new IT
新平台: 移动互联网,物联网…
新模式: 基于新平台产生的云计算,移动计算,嵌入式计算…
新思维: 技术和产业发展- 大数据思维,计算思维,互联网思维…
计算思维
以前的软件都是辅助型-锦上添花,今天的信息技术-不是考虑用IT技术解决一个什么问题,而是在已有IT系统(已经解决了基本的问题,计算机已经成为客观存在)上能够挖掘,开创出什么价值
(刚开始学编程其实能够感觉到编程逻辑与人的思维模式不同 培养计算思维)
互联网思维
商业-无空间时间限制
微创新-根据用户反馈改进
大数据思维
大数据4V: 量大 速度快 价值密度低 真实性无可靠
数学计算-发现-再实验验证
大量重复计算-计算机的迭代能力强-将理论推演,数据整理交给计算机
➡️ simulation 将实验和计算都在计算机上完成
实验预测+理论推演+计算仿真+数据驱动
(数据驱动是前面工作完成后,进行的尝试和发现,解释发现)
人能够发现的知识越来越少,过去一百年没哟大的发现 -靠数据驱动的发现成为现在的主流
基因疗法-基因切片&测序 直接看基因是否修复 (过去:哪里有问题治哪里)实际上DNA突变导致,先出现的部位(多对多-传统方式无法治疗癌症)
Facebook-点赞-数据-用户画像
随机样本 → 全体数据
精准求解 → Probably 近似求解 大数据的数据 近似统计 vs 审计 概率编程
因果关系 → 关联关系 (不知原因)
新 软件:
数据结构 + 算法 + 文档 / 计算机
大数据(非结构,不再明确的数据结构 人工智能标注师-具有误差) + 机器学习(结果-概率) + 开源(实际上自己的代码很少,开源维护缺少文档等问题) + 云计算(并行程序的调度-由云自动完成)
Why Software Define Everything