来源:微信公众号“大学计算机基础”
最近构建一张关于计算机科学与技术专业课程的 Concept Map,发现可以从数学课程开始构建这个专业的知识体系,删除了部分自己不感兴趣的课程(网络、数据库、游戏等),从而作出了如下的课程安排,以下学习顺序与大多数高校的课程设置有很大不同,也并不适合完全没有编程基础的同学自学,但非常适合有一定编程基础且想要系统掌握该学科知识体系的同学,从而做到知其然也知其所以然。
## 集合论
- Set Theory [Kenneth Kunen]
- Set Theory [Thomas Jech]
- 集合论:对无穷概念的探索 [郝兆宽]
## 图论
- Graph Theory [Adrian Bondy, U. S. R. Murty]
- 图论 [王树禾]
## 数理逻辑
- Logic for Applications (应用逻辑) [Anil Nerode, Richard Shore]
- A Mathematical Introduction to Logic (数理逻辑) [Herbert B. Enderton]
- 数理逻辑 [汪芳庭]
## 电工电子学
- 电工学简明教程 [秦曾煌]
------
## 拓扑学
- Basic Topology (基础拓扑学) [M. A. Armstrong]
- Topology (拓扑学) [James R. Munkres]
## 组合学
- Discrete Mathematics and Its Applications (离散数学及其应用) [Kenneth H. Rosen]
- Introductory Combinatorics (组合数学) [Richard A. Brualdi]
- Concrete Mathematics : A Foundation for Computer Science (具体数学:计算机科学基础) [Ronald L. Graham, Donald E. Knuth, Oren Patashnik]
## 计算理论
- Introduction to the Theory of Computation (计算理论引导) [Michael Sipser]
## 数字逻辑电路
- 数字电路基础 [阎石]
------
## 形式语言与自动机
- An Introduction to Formal Languages and Automata (形式语言与自动机导论) [Peter Linz]
- Introduction to Automata Theory, Languages, and Computation (自动机理论、语言和计算导论) [John E. Hopcroft]
## 可计算性理论
- Computability and Logic (可计算性与数理逻辑) [George S. Boolos]
## 计算复杂性理论
- Computational Complexity : A Modern Approach [Sanjeev Arora, Boaz Barak]
## 计算机组成原理
- Computer Organization and Design : The Hardware/Software Interface (计算机组成与设计:硬件/软件接口) [David A. Patterson, John L. Hennessy]
------
## 形式语用学
- Programming Language Pragmatics (程序设计语言:实践之路) [Michael L. Scott]
## 形式语义学
- The Formal Semantics of Programmin (程序设计语言的形式语义) [Glynn Winskel]
## 编译原理
- Compilers, Principles, Techniques and Tools (编译原理) [Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman]
- Modern Compiler Implementation in C (现代编译原理:C 语言描述) [Andrew W. Appel]
- Advanced Compiler Design and Implementation (高级编译器设计与实现) [Steven S. Muchnick]
## 微机原理
- 微机原理与接口技术 [孟虎]
## 计算机体系结构
- Computer Architecture : A Quantitative Approach (计算机体系结构:量化研究方法) [John L. Hennessy, David A. Patterson]
------
## 程序设计语言
- Thinking in Java (Java 编程思想) [Bruce Eckel]
- CLR via C# [Jeffrey Richter]
- The C Programming Language (C 程序设计语言) [Brian W. Kernighan]
- The Standard C Library (C 标准库) [P. J. Plauge]
- C Programming : A Modern Approach (C 语言程序设计:现代方法) [K. N. King]
- C Interfaces and Implementations : Techniques for Creating Reusable Software (C 语言接口与实现) [David R. Hanson]
- C++ Primer [Stanley B. Lippman]
- The C++ Programming Language (C++ 程序设计语言) [Bjarne Stroustrup]
- The C++ Standard Library : A Tutorial and Reference (C++ 标准库) [Nicolai M. Josuttis]
- STL 源码剖析 [侯捷]
- Effective C++ [Scott Meyers]
- More Effective C++ [Scott Meyers]
- Effective STL [Scott Meyers]
- Effective Modern C++ [Scott Meyers]
- Inside the C++ Object Model (深度探索 C++ 对象模型) [Stanley B. Lippman]
- Modern C++ Design : Generic Programming and Design Patterns Applied (C++ 设计新思维) [Andrei Alexandrescu]
- Python Cookbook [Alex Martelli]
- The Python Standard Library by Example (Python 标准库) [Doug Hellmann]
- Python 源码剖析 [陈儒]
## 数据结构与算法
- Introduction to Algorithms (算法导论) [Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein]
- The Art of Computer Programming (计算机程序设计艺术) [Donald E. Knuth]
- Data Structures and Algorithm Analysis in C++ (数据结构与算法分析:C++ 语言描述) [Mark Allen Weiss]
## 算法分析与设计
- Introduction to the Design and Analysis of Algorithms (算法设计与分析基础) [Anany Levitin]
- Algorithmic Puzzles (算法谜题) [Anany Levitin, Maria Levitin]
## 汇编语言
- 汇编语言 [王爽]
## 操作系统
- Modern Operating System (现代操作系统) [Andrew S. Tanenbaum]
- Operating Systems : Internals and Design Principles (操作系统:精髓与设计原理) [William Stallings]
- Understanding the Linux Kernel (深入理解 Linux 内核) [Daniel P. Bovet, Marco Cesati]
- Linux Kernel Development (Linux 内核设计与实现) [Robert Love]
- Programming Applications for Microsoft Windows (Windows 核心编程) [Jeffrey Richter]
-----------------------------------------------------------------------------------------------------------------------
## 线性代数
- 线性代数 [李尚志]
- 高等代数简明教程 [蓝以中]
- Linear Algebra Done Right (线性代数应该这样学) [Sheldon Axler]
- Introduction to Linear Algebra (线性代数导论) [Serge Lang]
- Linear Algebra and Its Applications (线性代数及其应用) [David C. Lay]
- Introduction to Linear Algebra [Gilbert Strang]
- Linear Algebra and Its Applications [Gilbert Strang]
## 数学分析
- 简明微积分 [龚昇]
- 数学分析新讲 [张筑生]
- Thomas' Calculus (托马斯微积分) [George B. Thomas]
- 数学分析 [卓里奇]
- 数学分析习题集 [吉米多维奇]
- Mathematical Analysis (数学分析) [Tom M. Apostol]
- Mathematical Analysis [Vladimir A. Zorich]
- Principles of Mathematical Analysis (数学分析原理) [Walter Rudin]
## 概率论
- A First Course in Probability (概率论基础教程) [Sheldon M. Ross]
- 概率论 [苏淳]
- 概率论与数理统计 [陈希孺]
- 概率论与数理统计教程 [茆诗松]
## 数理统计
- 数理统计学简史 [陈希孺]
- 数理统计学教程 [陈希孺]
- Introduction to Mathematical Statistics (数理统计学导论) [Robert V. Hogg, Allen T. Craig, Joseph W. McKean]
- All of Statistics (统计学完全教程) [Larry Wasserman]
- 数理统计 [韦来生]
------
## 矩阵论
- 线性代数与矩阵论 [许以超]
- 矩阵论 [方保镕]
- Matrix Analysis (矩阵分析) [Roger A. Horn]
## 常微分方程
- 常微分方程 [阿诺尔德]
## 实变函数
- 实变函数论 [那汤松]
## 复变函数
- 复变函数 [严镇军]
- 复变函数论方法 [拉夫连季耶夫, 沙巴特]
## 随机过程
- 随机过程 [伊藤·清]
- Stochastic Processes (随机过程) [Sheldon M. Ross]
- Introduction to Probability Models (应用随机过程:概率模型导论) [Sheldon M. Ross]
## 回归分析
- 回归分析 [谢宇]
## 运筹学
- Introduction to Operations Research (运筹学导论) [Frederick S. Hillier]
------
## 偏微分方程
- Basic Partial Differential Equations (基础偏微分方程) [David Bleecker]
- Partial Differential Equations [Lawrence C. Evans]
## 实分析
- 陶哲轩实分析 [陶哲轩]
- Real Analysis [Halsey L. Royden]
- Real Analysis : Measure Theory, Integration, and Hilbert Spaces [Elias M. Stein, Rami Shakarchi]
## 复分析
- 简明复分析 [龚昇]
- Complex Analysis (复分析) [Lars V. Ahlfors]
- Complex Analysis [Elias M. Stein]
## 数值分析
- Numerical Analysis (数值分析) [Timothy Sauer]
## 最优化理论
- 最优化理论与方法 [袁亚湘]
- 最优化理论与算法 [陈宝林]
- 非线性优化计算方法 [袁亚湘]
- Nonlinear Programming (非线性规划) [Dimitri P. Bertsekas]
- Convex Optimization (凸优化) [Stephen Boyd, Lieven Vandenberghe]
- Numerical Optimization (数值最优化) [Jorge Nocedal, Stephen Wright]
## 多元统计分析
- 多元统计分析 [王静龙]
- 实用多元统计分析 [管宇]
- Applied Multivariate Statistical Analysis (实用多元统计分析) [Richard A. Johnson]
------
## 泛函分析
- 实变函数论与泛函分析 [夏道行, 吴卓人, 严绍宗, 舒五昌]
- Introductory Functional Analysis with Applications [Erwin Kreyszig]
- Functional Analysis (泛函分析) [Walter Rudin]
## 测度论
- 测度论讲义 [严加安]
- Measure Theory (测度论) [Paul R. Halmos]
## 数学模型
- Mathematical Modeling (数学建模方法与分析) [Mark M. Meerschaert]
- A First Course in Mathematical Modeling (数学建模) [Frank R. Giordano, William P. Fox, Maurice D. Weir]
## 机器学习
- 机器学习 [周志华]
- Computational Intelligence : An introduction (计算智能导论) [Andries P. Engelbrecht]
- 统计学习方法 [李航]
- The Nature of Statistical Learning Theory (统计学习理论的本质) [Vladimir N. Vapnik]
- 支持向量机:理论、算法与拓展 [邓乃扬, 田英杰]
- Machine Learning (机器学习) [Tom M. Mitchell]
- Machine Learning in Action (机器学习实战) [Peter Harrington]
- Pattern Classification (模式分类) [Richard O. Duda]
- Pattern Recognition And Machine Learning [Christopher M. Bishop]
- The Elements of Statistical Learning [Trevor Hastie, Robert Tibshirani, Jerome Friedman]
- Machine Learning : A Probabilistic Perspective [Kevin P. Murphy]
- Probabilistic Graphical Models : Principles and Techniques (概率图模型:原理与技术) [Daphne Koller, Nir Friedman]
## 电路分析
- 电路原理 [江缉光, 刘秀成]
- Introductory Circuit Analysis (电路分析导论) [Robert L. Boylestad]
------
## 信号与系统
- 信号与系统 [郑君里]
- Signals and Systems (信号与系统) [Alan V. Oppenheim, Alan S. Willsky]
## 数字信号处理
- 数字信号处理:理论、算法与实现 [胡广书]
- Digital Signal Processing : A Practical Guide for Engineers and Scientists (实用数字信号处理:从原理到应用) [Steven W. Smith]
- Discrete-Time Signal Processing (离散时间信号处理) [Alan V. Oppenheim, Ronald W. Schafer, John R. Buck]
## 数字图像处理
- Digital Image Processing (数字图像处理) [Kenneth R. Castlema]
- Digital Image Processing (数字图像处理) [Rafael C. Gonzalez, Richard E. Woods]
## 计算机图形学
- The Nature of Code (代码本色:用编程模拟自然系统) [Daniel Shiffman]
- Fundamentals of Computer Graphics (计算机图形学) [Peter Shirley, Michael Ashikhmin, Steve Marschner]
- Computer Graphics : Principles and Practice in C (计算机图形学原理及实践:C 语言描述) [James D. Foley, Andries van Dam, Steven K. Feiner, John F. Hughes]
- Physically Based Rendering [Matt Pharr, Greg Humphreys]
- OpenGL Programming Guide (OpenGL 编程指南) [Dave Shreiner]
------
## 认知神经科学
- Principles of Neural Science (神经科学原理) [Eric R. Kandel]
- Cognitive Neuroscience : The Biology of the Mind (认知神经科学:关于心智的生物学) [Michael S. Gazzaniga, Richard B. Ivry, George R. Mangun]
- The Quest for Consciousness : A Neurobiological Approach (意识探秘:意识的神经生物学研究) [Christof Koch]
- Theoretical Neuroscience : Computational and Mathematical Modeling of Neural Systems [Peter Dayan, Laurence F. Abbott]
- 视觉信息处理的脑机制 [寿天德]
- Neuronal Dynamics : From single neurons to networks and models of cognition [Wulfram Gerstner, Werner M. Kistler, Richard Naud, Liam Paninski]
## 神经网络
- Neural Networks : A Comprehensive Foundation (神经网络原理) [Simon O. Haykin]
- Neural Networks and Learning Machines (神经网络与机器学习) [Simon O. Haykin]
- Neural Networks for Applied Sciences and Engineering (神经网络在应用科学和工程中的应用) [Sandhya Samarasinghe]
- Neural Network Design (神经网络设计) [Martin T. Hagan]
- Parallel Distributed Processing [David E. Rumelhart, James L. McClelland]
- Deep Learning [Ian Goodfellow, Yoshua Bengio, Aaron Courville]
- Learning Deep Architectures for AI [Yoshua Bengio]
## 计算机视觉
- Concise Computer Vision : An Introduction into Theory and Algorithms [Reinhard Klette]
- Computer Vision : A Modern Approach (计算机视觉:一种现代方法) [David A. Forsyth, Jean Ponce]
- Computer Vision : Algorithms and Applications (计算机视觉:算法与应用) [Richard Szeliski]
- Multiple View Geometry in Computer Vision (计算机视觉中的多视图几何) [Richard Hartley]
- 计算机视觉中的数学方法 [吴福朝]
- Learning OpenCV : Computer Vision with the OpenCV Library (学习 OpenCV) [Gary Bradski, Adrian Kaebler]
--------------------------------------------------------------------------------------------------------------------------------------------
## 其他
- Code : The Hidden Language of Computer Hardware and Software (编码:隐匿在计算机软硬件背后的语言) [Charles Petzold]
- Computer Science : An Overview (计算机科学概论) [J. Glenn Brookshear]
- Structure and Interpretation of Computer Programs (计算机程序的构造和解释) [Harold Abelson, Gerald Jay Sussman, Julie Sussman]
- Computer Systems : A Programmer's Perspective (深入理解计算机系统) [Randal E. Bryant]
- Artificial Intelligence : A Modern Approach (人工智能:一种现代方法) [Stuart J. Russell, Peter Norvig]
- On Intelligence (人工智能的未来) [Jeff Hawkins, Sandra Blakeslee]
- Introduction to Data Mining (数据挖掘导论) [Pang-Ning Tan, Michael Steinbach, Vipin Kumar]
- Refactoring : Improving the Design of Existing Code (重构:改善既有代码的设计) [Martin Fowler]
- CUDA by Example : An Introduction to General-Purpose GPU Programming (GPU 高性能编程 CUDA 实战) [Jason Sanders, Edward Kandrot]
- The CUDA Handbook : A Comprehensive Guide to GPU Programming (CUDA 专家手册:GPU 编程权威指南) [Nicholas Wilt]