Bootstrap

计算机专业基础课教材推荐(无责任书评)

一、操作系统

操作系统应该是一门工程性较强的专业基础课,但目前国内主要以操作系统理论为主进行讲解,少有实现方面讲解,很多CS专业学生甚至不清楚实模式、保护模式的区别,对BIOS也无甚概念。南开大学的赵炯老师以linux0.11版作为案例,详细讲解了计算机的启动过程、实模式到保护模式的跳转、进程、内存、文件系统管理的实现,尽管linux0.11现在看起来是一个简单毫无用处的操作系统,但从学习角度来说却在适合不过了。唯一遗憾的是,本书对gcc的交叉编译、linux内核镜像的制作没有讲解,但瑕不掩瑜,足够满足学习了。

二、数据库

目前国内本科阶段数据库课程主要以讲解数据库原理为主,对数据库实现没有涉及,国外同类图书也少有相关内容介绍。目前只有斯坦福的教材《数据库系统实现》对数据库实现有比较详细的介绍,感兴趣的朋友可以看看。

三、编译器

编译原理是CS专业本科阶段的必修课程,差不多也是最难学的一门专业课了。国外使用的龙书、虎书、鲸书并不太适合教学使用,内容太多而且过于生涉难懂。吉林大学刘磊老师写的《编译原理及实现技术》、《编译程序的设计与实现》非常适合学习,两本书以简化的pascal语言为例,详细介绍了编译器的实现并附有源代码,内容主要涵盖了编译器开发的主要部分词法分析、语法分析、语义分析、中间代码生成、指令集生成,对于指令集优化、动态链接讲解不多。就非编译器开发工作而言,内容深度、广度已经足够了,非常适合学习使用。

四、数字设计、体系结构

对于大部分计算机专业的学生来说,专业课程偏向软件部分,硬件方面只学习模拟电路、数字电路、计算机组成原理等几门基础课程,对计算机硬件方面的工作原理学习甚少,而且也都是以难懂的电路图作为讲解基础。本书以verilog、vhdl两种编程语言为例,通过软件的方式描述硬件设计原理,非常易懂,两周的时间就可以掌握CPU、内存等核心元件的工作原理与设计方法,非常推荐阅读。