软件工程黄老师讲座

硬件

计算机可以没有软件

开关上就是软件

冯 诺依曼

现在计算机可以没有硬件

今天的AI实际上是统计 >=三维

现在的内存是二维-所以比较慢-如果能做出三维-效率能够提高

今天的AI 实际上拆解成了基本运算 e.g. Intel架构 IBM 图灵机程序

寒武纪芯片-将机器学习算法-硬件完成-所以效率大大提高-电路稍微复杂

所以计算机可以只有硬件

软件-拆解-配合硬件-现在已经出现瓶颈

anyarch

计算机并不是电 并不能自己考虑

与计算机交流 最早-开关(易出错)

冯诺依曼体系

冯 诺依曼: 提出了存储程序 分区-程序和数据放在一起,但是计算机需要划分

后来使用纸带交流-控制电子管的充放电

出现语言 但不在计算机内部-不是软件

汇编语言

总结-经常使用的其实只有10+指令,总结出来汇编语言

本质仍是机器语言,依然不是软件

只需要编译器 (高级语言-低级语言)

高级语言

早期程序员其实是数学家-将数学翻译成机器语言,给计算机执行

直接让计算机进行数学计算-Fortran-第一个高级语言

数学家可以直接编程

编程语言的价值-让更多的人可以编程-越来越接近自然语言 & 每句话代表的机器指令更多

软件 (经典)

程序越来越庞大-如果只看指令-容易出现大量错误且难以理解

出现 comment-注释-不会被编译

准确地写出注释实际上非常困难

提出软件 Software (ware表示那些东西)

定义

狭义 软件=程序,指令的集合

广义 计算机系统中的程序及其文档(不可执行的,但同样重要)

经典软件工程实际上很大部分围绕文档

程序 + 文档 / 计算机

数据结构

软件

新一代信息技术 new IT

  1. 新平台: 移动互联网,物联网…

  2. 新模式: 基于新平台产生的云计算,移动计算,嵌入式计算…

  3. 新思维: 技术和产业发展- 大数据思维,计算思维,互联网思维…

    • 计算思维

      以前的软件都是辅助型-锦上添花,今天的信息技术-不是考虑用IT技术解决一个什么问题,而是在已有IT系统(已经解决了基本的问题,计算机已经成为客观存在)上能够挖掘,开创出什么价值

      (刚开始学编程其实能够感觉到编程逻辑与人的思维模式不同 培养计算思维)

    • 互联网思维

      商业-无空间时间限制

      微创新-根据用户反馈改进

    • 大数据思维

      大数据4V: 量大 速度快 价值密度低 真实性无可靠

      数学计算-发现-再实验验证

      大量重复计算-计算机的迭代能力强-将理论推演,数据整理交给计算机

      ➡️ simulation 将实验和计算都在计算机上完成

      实验预测+理论推演+计算仿真+数据驱动

      (数据驱动是前面工作完成后,进行的尝试和发现,解释发现)

      人能够发现的知识越来越少,过去一百年没哟大的发现 -靠数据驱动的发现成为现在的主流

      基因疗法-基因切片&测序 直接看基因是否修复 (过去:哪里有问题治哪里)实际上DNA突变导致,先出现的部位(多对多-传统方式无法治疗癌症)

      Facebook-点赞-数据-用户画像

      随机样本 → 全体数据

      精准求解 → Probably 近似求解 大数据的数据 近似统计 vs 审计 概率编程

      因果关系 → 关联关系 (不知原因)

新 软件:

数据结构 + 算法 + 文档 / 计算机

大数据(非结构,不再明确的数据结构 人工智能标注师-具有误差) + 机器学习(结果-概率) + 开源(实际上自己的代码很少,开源维护缺少文档等问题) + 云计算(并行程序的调度-由云自动完成)

Why Software Define Everything

0%