凌动魅力

Tag: 计算机

汇编语言的应用

基础性的程序需要使用汇编语言,如

  • BIOS
  • bootloader
  • 驱动程序

或软件的逆向工程也涉及到汇编语言:

  • 计算机病毒
  • 免杀
  • 加密
  • 脱壳
  • 外挂
  • Rootkit
  • 软件调试
  • ……

考研日记D1 CS学生的数学学习

浏览了电子科大几乎所有的CS专业,对考研数学的要求都是301,和数学专业的难度一致。

国内高校的CS专业会教授如下几门数学课程:

  • 高等数学(微积分)
  • 工科数学分析
  • 离散数学
  • 线性代数
  • 概率论与数理统计

高数和工科数学分析通常不会同时出现,俺翻阅了两门课的目录,绝大多数重合,都是函数、极限、导数、微分、不定积分、定积分、微分方程,连学习的顺序都一样!难度上感觉工科数学分析的难度要小一些,中国大学MOOC上今天这门课刚开。

俺在网上检索了“CS学生数学应该学到什么程度”,下面直接援引果壳上前辈的回答

本人是数学系的, 但其实真正的爱好是计算机. 当年报志愿的时候不知听谁说了句, 学计算机, 想搞软件就去学数学, 想搞硬件就去学物理, 然后就报了数学. 在数学系, 感觉思维确实受到了训练, 但所学的课程却大多与计算机没什么”直接”联系. 要真的搞计算机, 还是需要自己多折腾计算机的课程, 还有多实践. 其实我觉得在计算机中用到数学, 主要是设计,选择和分析算法的时候会用得到.如果你只是想”设计”好的程序, 可能并不需要太多数学. 但是要是想成为计算机科学者或工程师, 恐怕还是要学一学数学的.

首先谈谈应用比较广泛的基础课:

像大家提到的微积分, 线性代数,概率论,数理统计, 随机过程什么的都是基础中的基础, 在各个学科中都有着广泛应用的.

微积分除去作为 “基础” 的作用不谈, 在用计算机建立模型的时候常常会用到.

线性代数就更有用了, 像著名的 page rank 就是特征值理论的一个重要应用. 很多问题最终都能化为求解线性方程组问题(例如, 用有限差分法或有限元法解偏微分方程, 用最小二乘法求最佳逼近,等等). 线性代数知识还常在机器学习或数据挖掘中被用来降低数据的维度. 还有很多其他的应用.

概率论,数理统计,随机过程在最近的人工智能的各个领域则是非常重要的基础, 很多机器学习算法都是基于统计模型的, 像 Bayes 统计什么的应用极为广泛(例如垃圾邮件过滤.)

离散数学和数值分析什么的和计算机的关系就比较容易看出来了. 离散数学不同的书选取的内容不大一样, 不过一般都有逻辑阿, 图论阿, 有的还有自动机什么的, 一看就和计算机关系紧密. 数学理论大多是抽象的, 想在计算机上用就离不开数值分析了; 用数值方法解一些无法求出解析解的方程也很有实用价值.

再谈谈和不同专业相关的数学知识:

像是信息安全, 编码方面的, 数论知识自然不可缺少, 建议多学一些代数知识, 也包括代数几何啊什么的. (复变函数什么的都是基础啊….)

像是(离散)算法方面的, 可以学学 Knuth 的具体数学, 另外还得学些运筹学, 图论, 组合数学什么的.

像是图形处理方面, 恐怕就需要很多几何知识了, 学几何这玩意代数和分析都得好, 像解析几何, 射影几何, 微分几何, 黎曼几何, 代数几何, 拓扑学呀都在这个领域用的上. 还得熟悉样条理论, 曲线与曲面的表示啊等等.

图像处理, 也需要不少数学. 最近利用偏微分方程,反问题啊来研究图像处理的很热门. 还有傅立叶分析, 小波分析呀都很有用.

人工智能相关的话, 得把概率, 统计, 随机过程什么的学的更深入一些.

总结来说就是俺刚列出的那几门课,尽可能学!另外,俺最近在网易云课堂上发现了一批空前强大的计算机专业课程,简直欣喜若狂,如果能早点有中国大学MOOC,想必俺今天的计算机水平又是另一番光景~

课程表

咳咳,牛皮不吹大了,老老实实学习去。

Copyright © 2017 凌动魅力

蜀ICP备15003767号-1 Up ↑