低年级的计算机系统基础:介绍几本教材及国内外大学使用情况

来源:互联网 发布:怎么在淘宝找代销 编辑:程序博客网 时间:2024/05/01 19:11

低年级的计算机系统基础:介绍几本教材及国内外大学使用情况

2012-05-02 16:09:39   来源:张铭的博客   浏览: 601 次

关键字:计算机教学  教材  国外课程  

传统的计算机课程体系中,大一的《计算概论》简单介绍了基本的计算机系统概念,在大三以后才开设核心课程。缺少帮助本科生在低年级建立软件与硬件联系的课程,帮助学生深入理解计算机系统中一些非常重要的基本概念。

斯坦福计算机系系主任 Sahami 教授主持的ACM/IEEE CS2013中,系统基础是新加入的四大块核心知识模块之一,跨系统地综合介绍缓存、延时、并行等核心概念,涉及操作系统、体系结构、网络等领域。(http://blog.sina.com.cn/s/blog_8045484c0100v6q7.html ) 

国内外一些大学已经开始了教学实践,并有相应的教材成果。例如美国的UTAXS、CMU、MIT、Stanford,国内的上海交大、复旦大学、中科大等。 

CMU Bryant 的《深入理解计算机系统》,适合有了程序设计基础以后学习,内容很新颖。 

UTexa Patt 的 《计算机系统概念》,大一入学可参考,程序部分略浅。 

1.CMU大学Randal E. Bryant, David R. O'Hallaron, Computer Systems - A programmer’s perspective.

CMU大学从1998年开设15-213 Introduction to Computer Systems 课程(http://www.cs.cmu.edu/afs/cs/academic/class/15213-f10/www/ )。主讲的教授 Randal E. Bryant, David R. O'Hallaron 于2002年正式出版教材Computer Systems - A programmer’s perspective,2010年第2版发行(http://csapp.cs.cmu.edu/)。该教材从程序员的角度剖析计算机系统, 涵盖了计算机系统领域的广泛内容,不与后续课程抢内容。从信息的表示开始,到汇编、到硬件、再到上层的系统,对整个计算机体系结构进行了详细的介绍:从二进制、汇编、link/loader讲解程序编码和运行,组成与体系结构的流水线、超标量、memory hierarchy概念,操作系统讲到Fork/execve/wait/signal (shell)、虚存等概念,涉及I/O、网络程序设计、并发程序设计等。 

该教材中文翻译版 《深入理解计算机系统》(龚奕利、雷迎春译),机械工业出版社2011年出版 ISBN: 7111321332, 9787111321330。 

复旦大学臧斌宇老师非常推崇本教材,并进行了成功的教学实践。例如在系统领域的顶尖会议SOSP有论文发表,Fengzhe Zhang, Jin Chen, Haibo Chen, Binyu Zang: CloudVisor: retrofitting protection of virtual machines in multi-tenant cloud with nested virtualization. SOSP 2011: 203-216。 

2.Yale N. Patt,Sanjay J. Patel教授的“Introduction to Computing Systems: from bits and gates to C and beyond” (Morgan Kaufmann,2003第2版)

教材旨在让计算机科学和电子工程专业的学生在刚刚开始本科学习的时候就对计算机系统软件和硬件有一个整体的理解,使得一年级的学生从整体上认识后续专业课程之间的联系。书中设计了一套冯•诺伊曼架构的LC-3 体系结构,并配套开发了LC-3模拟器供学生使用。 从最底层的MOS晶体管开关器件开始,然后是逻辑门、锁存器、逻辑结构(开关MUX、译码器、全加器、门锁存器等),最后使用这些单元来实现内存。之后,转至有限状态机控制、顺序电路的实现、冯•诺伊曼体系结构、一个简单的计算机(LC-3),以及LC-3的机器和汇编语言、C高级语言、递归等,最后是基本数据结构。本书给出了很多例程,其意义在于教会学生怎样分析问题,并通过系统的问题分解转换为计算机可编程的子问题。不论是LC-3汇编或C高级语言,编程思路上都存在相似性。这方面的理解和方法对快速掌握其他语言都有帮助。(http://blog.sina.com.cn/s/blog_8045484c0100t9ld.html ,http://baike.baidu.com/view/1771331.htm ) 

中文译本《计算机系统概论》(梁阿磊 蒋兴昌 林凌 译,机械工业出版社,2007。ISBN:9787111215561)。译者梁阿磊副教授liangalei [at] cs.sjtu.edu.cn在上交大讲授此课程。梁老师说ACM竞赛班的学生项目可以做得很深,他们甚至改写了教辅模拟系统的debug,调试效果更好。而零基础的学生也有系统收获,因为作者假设学生就是零基础。据说梁老师准备改用CMU的Computer Systems - A programmer’s perspective。 

中科大安虹教授也采用本教材。 
http://courses.engr.illinois.edu/ece190/info/course_info.htm (UIUC采用该教材) 
http://users.ece.utexas.edu/~patt/09f.306/ (Patt教授 2009年的EE 306 课程,似乎近两年UTexas不用该教材了) 

3. MIT Jerome H. Saltzer and M. Frans Kaashoek的Principles of Computer System Design: An Introduction. 

互联网成为主流以及多核的出现,提出了控制计算机系统的设计复杂性的需求。MIT 的Jerome H. Saltzer 教授在2009年出了一本教材( Jerome H. Saltzer and M. Frans Kaashoek. Principles of Computer System Design: An Introduction. Part I. Morgan Kaufman, 2009. ISBN: 978-0-12374957-4 (paperback), 564 pages.)教材讨论了系统设计的主要问题:性能、网络、容错、原子性、一致性、安全性等。融入了MapReduce、RAID、Log文件系统等内容。

清华出版社有该教材的影印本 

4. 斯坦福大学的计算机系统教学 

在计算机系统训练方面,斯坦福给一年级学生开设了两门课程,CS107和CS110。Jerry Cain 教授的 CS107 Computer Organization and Systems 采用CMU的Computer Systems - A programmer’s perspective,同时还选用Kernighan 的C Programming Language 加强程序设计的内容(http://scpd.stanford.edu/search/publicCourseSearchDetails.do?method=load&courseId=11710 )。Mendel Rosenblum教授的CS110 Principles of Computer Systems采用了MIT的教材Principles of Computer System Design: An Introduction(http://www.stanford.edu/class/cs110/ )。


原创粉丝点击