美国著名计算机系-课程研究
卡内基梅隆大学-CMU
课程表: www.u.edu/education/bscs/currreq.html
B.S. in Computer Science
Curriculum Requirements (binding on students admitted Fall, 2009 and later) •
计算机编程入门网站Revised June, 2009
The B.S. curriculum in Computer Science requires a minimum of 360 units and can be divided into the following sections: Computer Science  • Mathematics/Probability  • Engineering and Natural Sciences  • Humanities and Arts  • Required Minor  • Computing @ Carnegie Mellon  • Free Electives
• Computer Science  15-121 Introduction to Data Structures (students with no prior programming experience take 15-110 or 15-117 (mini), Introduction to Programming, and  15-121)
• 15-123 •
Effective Programming in C and UNIX 15-128 •
Freshman Immigration Course 15-211 •
Fundamental Data Structures and Algorithms 15-212 •
Principles of Programming 15-213 •
Introduction to Computer Systems 15-251 •
Great Theoretical Ideas in Computer Science 15-451 •
one Communications course: Algorithm Design and Analysis o  15-221 • one Algorithms & Complexity elective:
Technical Communication for Computer Scientists o  15-354 o  Computational Discrete Mathematics 15-355 o  Modern Computer Algebra 15-453 o  Formal Languages and Automata 21-301 o  Combinatorics 21-484 o  others as designated
Graph Theory
• one Applications elective:
o  15-313 o  Foundations of Software Engineering 15-322/15-323 o  Computer Music 15-381 o  Artificial Intelligence: Representation and Problem Solving 15-384 o  Robotic Manipulation 15-385 o  Computer Vision 15-415 o  Database Applications 15-462 o  Computer Graphics 10-601 o  Machine Learning 11-411 o  others as designated
Natural Language Processing
• one Logics & Languages elective:
o  15-312 o  Foundations of Programming Languages 15-317 o  Constructive Logic
15-414 o  Bug Catching: Automated Program Verification and Testing 21-300 o  Basic Logic 80-311 o  others as designated
Computability and Incompleteness
• one Software Systems elective:
o  15-410 o  Operating System Design and Implementation 15-411 o  Compiler Design 15-440 o  Distributed Computer Systems 15-441 o  others as designated
Computer Networks
• two Computer Science electives  (can be from any SCS department)
Mathematics/Probability  21-120 •
Differential & Integral Calculus 21-122 •
Integration, Differential Equations, and Approximation 21-127 •
Concepts of Mathematics 21-241 Matrix Algebra (or 21-341 • one of the following Probability courses:
Linear Algebra) o  15-359 o  Probability and Computing 21-325 o  Probability 36-217 o  Probability Theory and Random Processes 36-225 o  Introduction to Probability and Statistics I 36-625 Probability and Mathematical Statistics I
Engineering and Natural Sciences
Four engineering or science courses are required, of which at least one must have a laboratory component and at least two must be from the same department. At present, courses meeting the lab requirement are:
• 09-101 Introduction to Experimental Chemistry (this 3 unit lab together with •
09-105, Introduction to Modern Chemistry, satisfies the lab requirement) 15-321 •
Research Methods for Experimental Computer Science 27-100 •
Engineering the Materials of the Future 33-104 • Experimental Physics 85-310 The following courses cannot be used to satisfy the Engineering and Natural Sciences requirement:
Research Methods in Cognitive Psychology
09-103 •
Atoms, Molecules, and Chemical Change 09-104 •
Fundamental Aspects of Organic Chemistry and Biochemistry 12-090 •
Technology and the Environment 18-202 •
Mathematical Foundations of Electrical Engineering 19-211 •
Ethics and Policy Issues in Computing 33-100 •
Basic Experimental Physics 33-115 •
Energy and Environmental Issues 33-124 •
Introduction to Astronomy 39-100 • What is Engineering? 39-200 Business for Engineers
All candidates for the bachelor's degree must complete a minimum of 63 units offered by the College of Humanities & Social Sciences and/or the College of Fine Arts. The humanities and arts (or general education) courses for SCS students are to meet the distribution requirements found on the Humanities and Arts
SCS Humanities and Arts  page.
A sequence of courses prescribed by the requirements of the particular department. Completion of a second major (or double degree) also satisfies this requirement. If permitted by the minor or second major department, courses taken in satisfaction for the minor or second major may also count toward any category other than Computer Science. More information can be found on the Required Minor
minor requirement  page.
• Computing @ Carnegie Mellon
The following course is required of all students to familiarize them with the campus computing environment: 99-10x  Computing @ Carnegie Mellon
Free Electives
A free elective is any Carnegie Mellon course. However, a maximum of nine units of Physical Education and/or Military Science (ROTC) and/or Student-Led (StuCo) courses may be used toward fulfilling graduation requirements.
Maintained by Catharine Fichtner, CS Undergraduate Program Administrator.
课程设置评说
与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程序的性能、正确性或实用性的主题。
比如,我们排除了诸如硬件加法器和总线设计这样的主题。虽然我们谈及了机器语言,但是不关注如何编写汇编语言,而是关心编译器怎样翻译C的各种构造,比如指针、循环、过程调用和返回,以及switch语句。更进一步,我们将更广泛和现实地看待系统,包括硬件和系统软件,讨论链接、加载、进程、信号、性能优化、评估、I/O以及网络与并发编程。这种做法使得我们讲授本课程的方式对学生来讲既实用、具体,又能实践,同时也非常利于调动学生的积极性。”
网站上的一些随书配套实验,也独具匠心。因此此书的成功是水到渠成的。根据配套网站上的列表,它已经被全球80多所院校采用作为教材。
课程举例:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。