2003年,在工程院院长David Daniel的倡导下,计算机系对教学计划进行了改革,以反映目前社会、行业和技术的发展趋势。主要的变化有:
* 在必修要求中增加了两门编程课:CS241 系统编程,采用Gary Nutt的《操作系统》作为主教材,Stevens的《Unix环境高级编程》作为编程教材;CS242 程序设计实验(Programming Studio),教学大纲基本上以Kernighan的《程序设计实践》为蓝本(以上教材机械工业出版社均出版了中译本和影印版)。
* 必修要求中增加了一年的高级项目,强调团队合作和软件工程实践,包括文档写作、口头表达、项目规划与管理等,实际上是在实践中学习软件工程。这门课也可以用两学期的软件工程或者一年的高级论文代替。仍然充分保留了灵活性,有利于因材施教。
* 增加了CS173 离散结构的学时,部分原CS273的内容移到这里,同时CS273又新增了原CS375的内容。这实际上是提高了对计算机理论的要求。
* 在专业课程中增加了数据挖掘、信息检索和高级图形学。
CMU(卡内基梅隆大学)
与MIT、伯克利等学校计算机科学仍然和电子与电气工程同处一系不同,CMU的计算机科学系成立于1965年,是全美最早的,如今它已经升格为计算机科学学院。其研究生项目中除了机器人方向与硬件关系较多之外,其他基本上都是纯软的。从这个意义上来说,CMU的教学体系对于偏软的计算机科学系应该有较大的借鉴意义。
CMU的教学手册上没有从传统意义上针对计算机科学专业学生的导论课,虽然有名为“计算机科学伟大思想”的两学期课程,但是从内容上看应该是离散数学的替代,因为此外CMU并没有其他离散数学方面的课程。此课程没有教材,内容比传统离散数学要灵活得多,涉及概率、代数、算法、加密理论、复杂性理论、博弈论等,非常注重学习的趣味性和实用性。
与其他名校相同,CMU对程序设计的重视也给人留下很深印象:本土新生的第一堂课就是“初中级程序设计”,直接讲授Java。然后是中高级程序设计(Java)、C语言编程技巧、高级编程实践(Java)、程序设计原理(用SML语言讲授)。
目前计算机科学专业教学计划中的一个难点,是硬件课程的设置问题。硬件知识体系本身非常丰富,但是硬件课程多了,又削弱了计算机科学专业的特色。CMU在这一问题上是怎样处理的呢?计算机科学学院的现任院长Randal E. Bryant 亲自给出了回答,他用15~213“计算机系统导论”一门课(12个单元)完成了硬件知识的教学。这项教学改革的成果就是一本厚达900多页的书:《Computer Systems: A Programmer's Perspective》(中译本《深入理解计算机系统》已经由中国电力出版社出版)一书。他在该书的序言中说:
“本课程的宗旨是用一种不同的方式向学生介绍计算机。因为,我们的学生中几乎没有人有机会构造计算机系统。而大多数学生,甚至是计算机工程师,也要求能日常使用计算机和编写计算机程序。所以我们决定从程序员的角度来讲解系统,并采用这样的过滤方法:我们只讨论那些影响用户级C程序的性能、正确性或实用性的主题。 [1] [2] [3] 下一页 |