title: 计算机科学与技术本科专业有哪些核心课程？应该如何安排学习顺序？各个课程推荐哪些经典教材？
desc: 例如：<br><ol><li>计算机学科导论和 C 语言<br><li><li>汇编操作系统C数据结构离散数学数值分析和计算机组成原理<br><li><li>计算机编译原理和数据库 <br><li><li>计算机网络与安全和软件工程<li><ol><br>还有其它的诸如：高数线性代数离散数学网络原理网页设计多媒体技术汇编语言面向对象的设计语言Java 编程ASPSQL等<br><br>我在网上搜了好多，大家说法都不一样，我也搜集了一些教材，但不知道是否全面，而且也不知道学习顺序，我的思路是这样的：<br><ol><li>先学习 C 语言和 C。教材有：C programming language-KampRC traps and pitfallsAlgorithms in C 和 Expert C Programming<br><li><li>学习数据结构。清华大学严蔚敏数据结构，目前还未找到经典的国外教材<br><li><li>学习算法。算法导论和具体数学及其应用<br><li><li>计算机组成原理。Computer Organization and Design The Hardware-3rd-David Patterson<br><li><li>计算机系统。CSAPP<br><li><li>操作系统。鸟叔的私房菜和计算机网络<br><li><ol><br>我也看了一下清华大学等名校的本科课程，但是课程好多啊，哪位大侠能够按照循序渐进由浅入深的学习顺序给介绍一个合理的顺序？如果没时间推荐教材的话，我可以根据推荐的课程来搜一下，然后补充进来，让这个话题有一个综合的完整的答案。
topic: 计算机科学
content: 零基础直接从C Primer Plus开始看起，中间有几章，讲IO和位运算的部分可以先跳过。全书下来就大概知道程序是个啥长啥样，再重看一遍，至少C语言基本功就很扎实了。数据结构和算法看数据结构与算法分析：C语言实现，吃下来这本书这方面就算有感觉了，至少知道各种数据结构和算法都是啥玩意了。之后再看高级的算法书也有底了，感觉不错可以直接看算法导论了。深入理解计算机系统学完C和基本数据结构就可以开始看，越早