SlideShare une entreprise Scribd logo
1  sur  45
计算机学科规范 CS2013
 —— 系统能力的培养

   抛砖引玉研讨稿
Survey of CC2001/CS2008 Usage
• Developed survey to gather data for CS2013
  –   Reviews usage of CC2001 and CS2008
  –   Rating of importance of existing knowledge areas
  –   Rating of principles (e.g., importance of stylized classes)
  –   Suggestions for new topics of import/knowledge areas
• Survey released in December, 2010
  – ~1500 US department chairs/directors of UG education
  – ~2000 International department chairs
  – Received 201 responses
Importance of Topics
Suggested Topics (% of
    Suggestions)
Bounding Size of Curriculum
                                          CC2001     CS2008          CS2013
                                                                Tier 1    Tier 2
AL. Algorithms and Complexity               31          31        20         8
AR. Architecture and Organization           36          36         0        16
CN. Computational Science                    0           0         1         0
DS. Discrete Structures                     43          43        38         3
GV. Graphics and Visual Computing            3           3         2         1
HC. Human-Computer Interaction               8           8         4         4
IAS. Security and Information Assurance      0           0         2         6
IM. Information Management                  10          11         5         5
IS. Intelligent Systems                     10          10         0        10
NC. Networking and Communication            15          15        10         0
OS. Operating Systems                       18          18         4        11
PBD. Platform-based Development              0           0         0         0
PD. Parallel and Distributed Computing       0           0       5.5       8.5
PL. Programming Languages                   21          21         8        20
SDF. Software Development Fundamentals      38          47        41         0
SE. Software Engineering                    31          31         5        19
SF. System Fundamentals                      0           0        21         9
SP. Social and Professional Issues          16          16         6        10
TOTAL                                      280         290      172.5     130.5
                                                   Tier1 + 100% Tier2: 303
                                                   Tier1 + 90% Tier2: 290
                                                   Tier1 + 80% Tier2: 277
Body of Knowledge Update (1)
• Addition of new Knowledge Areas
  – Parallel and Distributed Computing
     • Most important area to add as indicated by previous feedback
     • Will include additional core hours
  – Information Assurance and Security
     • Second most important area to add
     • Will include additional core hours
  – Systems Fundamentals
     • Cross-cutting systems concepts
         – E.g., caching, locality, latency, parallelism
     • Avoid tying these to any one topic (e.g. Operating Systems,
       Architecture) to foster broader thinking and new pedagogy
  – Platform-based Development
     • E.g., web, mobile devices, game consoles, robots, etc.
Body of Knowledge Update (2)
• Reorganization of topics in many Knowledge Areas
   – Net-Centric Computing  Networking and Communications
      • Sharpen focus on networking
      • Web development moves to “Platform-based Development”
   – Notably, includes a reworking of topics in Programming
     Fundamentals, Programming Languages, and Algorithms
      • Move paradigm-specific concepts (e.g., OOP, Functional) to
        Programming Languages
      • Programming Fundamentals + some Software Engineering = “Software
        Development Fundamentals”
      • Seek to broaden thinking away from equating “Programming
        Fundamentals” with “Introductory Programming Courses”
   – Introductory programming course includes:
       platform + language/paradigm + software development
CMU 计算机本科教学
  CMU Computer Science            Core:
15-122 Principles of Imperative Computation
15-150 Principles of Functional Programming
15-210 Parallel and Sequential Data Structures and Algorithms
15-213 Introduction to Computer Systems
15-251 Great Theoretical Ideas in Computer Science
15-451 Algorithm Design and Analysis
CMU 计算机本科教学
One Algorithms & Complexity elective:
15-354 Computational Discrete Mathematics
15-355 Modern Computer Algebra
15-453 Formal Languages and Automata
21-301 Combinatorics
21-484 Graph Theory
CMU 计算机本科教学
 One Applications elective:
05-391 Designing Human-Centered Software
05-431 Software Structures for User Interfaces
10-601 Machine Learning
11-411 Natural Language Processing
15-313 Foundations of Software Engineering
15-322/15-323 Intro to Computer Music
15-381 Artificial Intelligence: Representation and Problem Solving
15-384 Robotic Manipulation
15-385 Computer Vision
15-415 Database Applications
15-462 Computer Graphics
CMU 计算机本科教学
 One Logics and Languages elective:
15-312 Foundations of Programming Languages
15-317 Constructive Logic
15-414 Bug Catching: Automated Program Verification and
Testing
21-300 Basic Logic
80-311 Computability and Incompleteness
CMU 计算机本科教学
  One Software Systems elective:
15-410 Operating System Design and Implementation
15-411 Compiler Design
15-418 Parallel Computer Architecture and Programming
15-440 Distributed Systems
15-441 Computer Networks
计算机系统基础
          • 1998 年在 CMU 开设
          • 2002 年正式出版教材
          • 2010 年第 2 版发行
          • 涵盖了计算机系统领域的
            广泛内容
          • 但仅从程序员的角度介绍
            ,不与后续课程抢内容
计算机系统基础
• 汇编
 – 二进制,汇编, link/loader
• 组成与体系结构
 – 流水线,超标量, memory hierarchy
• 操作系统
 – Fork/execve/wait/signal (shell), 虚存
• I/O 与网络编程
 – I/O, 网络程序设计 , 并发程序设计
计算机系统基础
• 可接触的概念、做中学
• 设计了 8 个 labs
 1.   Bit operation
 2.   Bombing (tracker)
 3.   Buffer overflow attack (hacker)
 4.   Pipeline design (using HCL)
 5.   Code optimization
 6.   Shell
 7.   Malloc
 8.   Proxy
Great Theoretical Ideas in Computer Science

• How to use theoretical ideas to
  – formulate and solve problems in computer science
• Integrate
  – mathematical material with general problem solving
    techniques
  – and computer science applications
• Examples are drawn from
  – Algorithms, Complexity Theory, Automata Theory,
  – Game Theory, Probability Theory, Graph Theory,
  – Algebra, Cryptography, and Combinatorics
• Assignments involve
  – both mathematical proofs and programming
Great Theoretical Ideas in Computer Science

• Number
  –   Pancakes with a Problem!
  –   Choose Your Representation!
  –   Unary, Binary, and Beyond
  –   One Step at a Time: Induction
  –   On Raising a Number to a Power
  –   Euclid's Great Recursive Algorithm for GCD
  –   Fibonacci Numbers: An Unexpected Formula
  –   Modular Arithmetic and the RSA Cryptosystem
Great Theoretical Ideas in Computer Science

• Counting:
  – Counting I: One To One Correspondence and Choice
    Tree Representation
  – Counting II: Recurring Problems and Correspondences
  – Counting III: Polynomials Count! Pascal's Triangle
Great Theoretical Ideas in Computer Science

• Computation:
  – The One Minute to Learn Programming Language:
    Finite Automata
  – Playing Symbol Games: Logic, Language, and Meaning
  – On Time versus Input Size
  – Problem Solving: The Method behind the AHA!
  – Grade School Revisited: How to Add and Multiply
  – Grade School Again: A Parallel Perspective
Great Theoretical Ideas in Computer Science

• Probability Methods
  – Probability I: Counting in Terms of Proportions
  – Probability II: Probability Pitfalls and Paradoxes
  – Counting, Naming, and Worst-Case Compression
  – Dating Theory: Who Wins the Battle of the Sexes?
  – Probability III: Random Variables and Great
    Expectations!
  – Probability IV: Event Space in an Infinite Choice Tree
  – Probability V: Random Walks.
Great Theoretical Ideas in Computer Science

• Computational Theory
  –   Thales's Legacy: What is a Proof?
  –   Cantor's Legacy: Infinity and Diagonalization.
  –   Turing's Legacy: The Limits of Computation
  –   Godel's Legacy: The Limits of the Symbol Game
  –   Ancient Paradoxes with an Incompressible Resolution
M
I
T
的
核
心
课
程
计算机系统工程
• 互联网成为主流以及多核的出现
• 如何控制计算机系统的设计复杂性
 – Strong modularity using client-service design
 – Naming
 – Virtualization
• 其它系统设计的主要问题
 –   Performance
 –   Networks
 –   Fault Tolerance
 –   Atomicity and Consistency
 –   Security
• 2011 年开始授课
计算机系统工程
• 大量的经典论文阅读
2. Worse is Better
3. A Fast File System for UNIX
4. The X Window System
5. The Evolution of an x86 Virtual Machine Monitor
6. End-to-end Arguments in System Design
7. MapReduce
8. The Design and Implementation of a Log-Structured
   File System
9. RAID: A Case for Redundant Arrays of Inexpensive
   Disks
10.Hints of Computer System Design
计算机系统工程
• 设计类 project
 – tagged file system
 – 设计类 google-doc 系统
• Lab
 – The UNIX File System (practice file system related
   commands)
 – The UNIX Time-Sharing System (practice other
   shell commands)
 – Internet Routes and Measuring Round Trip Times
   (traceroute)
 – MapReduce
Stanford 计算机本科核心课程
Systems
cs106B Programming Abstractions
cs107 Computer Organization and Systems
Computer Systems: A Programmer‘s Perspective by Bryant and
O’Hallaron(CMU) . C Programming Language by Kernighan
cs110 Principles of Computer Systems
课本: Principles of Computer System Design by Jerome
H. Saltzer and M. Frans Kaashoek (MIT)

Theory
cs103 Mathematical Foundations of Computing
cs109 Intro to Probability for Computer Scientists
cs161 Data Structures and Algorithms
Berkeley 计算机本科核心课程

Core
CS 61A Structure and Interpretation of Computer Programs
CS61B Data Structures
CS61C Machine Structures
EECS42 Digital Electronics

Upper Division Required
CS 170 Algorithms
CS 162 Operating systems
Berkeley 计算机本科核心课程

Breadth courses choose two from the following:
CS 150 Digital Systems
CS 152 Computer Architecture
CS 160 User Interfaces
CS 161 Computer Security
CS 164 Languages and Compilers
CS 169 Software Engineering
CS 184 Computer Graphics
CS 186 Databases
CS 188 Artificial Intelligence
Utexas 的《计算机系统概念》
• Yale Patt , Introduction to Computing
  Systems: from bits and gates to C and beyond.
  • 美国计算机界的卓越泰斗,与 Knuth 齐名
• UIUC 、 Utexas 、 UMN 、 UMASS 、上
  海交大、中科大等采用
• Patt 教授 2011 年中科大授课的 Youku 视频
 – http://www.youku.com/playlist_show/id_6525373.html
    (密码 ustc )
• 英文 ( 授课时使用 , 随时更新 )
 – http://acsa.ustc.edu.cn/htmls/ics-courses/en/index.html
• 大一就对计算机系统软件和硬件有整体的
  理解
《计算机系统概念》目录
• 第 1 章 欢迎阅读本书
  1.1 我们的目标
  1.2 怎么才能做到
  1.3 两个反复出现的理念
  1.4 计算机系统简述
  1.5 两个非常重要的思想
  1.6 计算机:通用计算设备
  1.7 从问题描述到电子运转
  1.8 习题
• 第 2 章 bit 、数据类型及其运算
  第 3 章 数字逻辑
  第 4 章 冯 · 诺伊曼模型
  第 5 章 LC-3 结构
  第 6 章 编程
  第 7 章 汇编语言
  第 8 章 输入 / 输出
  第 9 章 TRAP 程序和子程序
  第 10 章 栈
• 第 11 章   C 语言编程概述
  第 12 章   变量和运算符
  第 13 章   控制结构
  第 14 章   函数
  第 15 章   测试与调试技术
  第 16 章   指针和数组
  第 17 章   递归
  笫 18 章   C 语言中的 I/O
  第 19 章   数据结构
Programming in C++
Programming in C++
• Introduction
    – Computers, People, and Programming
•   Programming and “Hello, Word!”
•   Objects, Types, and Values
•   Computation
•   Errors
•   Writing a Program
•   Completing a Program
•   Technicalities: Functions, etc
•   Technicalities: Classes, etc
Programming in C++
•   Input/Output Streams
•   Customizing I/O
•   A Display Model
•   Graphics Classes
•   Graphics Class Design
•   Graphing Functions and Data
•   Graphical User Interfaces
Programming in C++
•   Vector and Free Store
•   Vectors and Arrays
•   Vector, Template, and Exceptions
•   Containers and Iterators
•   Algorithms and Maps
Programming in C++
• 每周一次 lab 指导
• 3 个 projects
  – 分数计算
  – 字符界面游戏( Fox-hounds )
  – 图形界面游戏
• 国内传统教学方法
  – 以语言为主
  – 课程结束后学生基本不会编程(有基础的除外)
  – 基本上要在数据结构之后才会编程
实验和考试
• Marking on the curve
• 开卷考试、考卷上网
  – 美国学生靠阅读学习
  – 中国学生靠做题学习
• 实验
  – 每门课的实验占总成绩的 30% ~ 50%
  – 基本以个人完成为主
    • 与国际上通常以小组为单位不同
  – 必须有防止抄袭的手段
    • 定期变化实验内容
    • 其它手段
助教
• 基础课每 20 名学生一名助教
 – 作业 , labs, projects, 考卷
• 组织学生讨论
 – 阅读内容( MIT 图灵奖得主作助教)
 – 开放课题
 – 设计性实验
• 防止抄袭
 –   Check-point( 阶段性提交 )
 –   半自动代码检查抄袭
 –   面试
 –   在线测试
CS vs. EECS
• 纯 CS ( CMU, Stanford )
  – 没有传统的组成和计算机系统结构课程
  – 相关课程在 ECE
• EECS ( MIT, Berkeley )
  – 有组成和系统结构课程
  – 必须有较强的 EECS ( eg. Signal )基础
复旦大学课程体系(核心课程)
  学年         上学期        下学期
   一      高等数学 ( 上 )  高等数学 ( 下 )
            线性代数      普通物理 ( 上 )
            程序设计     计算机系统基础 ( 上
  二       普通物理(下)         )
                      计算机系统工程
       计算机系统基础 ( 下 )    概率论
       ( 并行 ) 数据结构与算   数据库设计
               法        软件工程
  三       逻辑与可计算性
       ( 并行 ) 算法设计与分
               析
    Patt 《计算机系统概念》,大一入学可参考,程序部分略浅
Bryant 《深入理解计算机系统》,适合有了程序设计基础以后
课程体系(系统软件方向课程)
学年   上学期       下学期
 三   编译系统    数字部件设计
     操作系统   计算机体系结构
              分布式系统
四
参考文献
• Mehran Sahami, Stanford, Computer
  Science Curricula for the Coming Decade.
  Nov. 3, Peking University
• 臧斌宇,复旦大学, “借鉴国际先进
  经验
  构建核心课程体系” . 2011 年 11 月 5
  日。
谢谢

Contenu connexe

Similaire à 系统能力的培养

Data Science & Big Data - Theory.pdf
Data Science & Big Data - Theory.pdfData Science & Big Data - Theory.pdf
Data Science & Big Data - Theory.pdf
RAKESHG79
 
COA_UNIT-1new[1].pdf
COA_UNIT-1new[1].pdfCOA_UNIT-1new[1].pdf
COA_UNIT-1new[1].pdf
AbinayaBhaskar1
 
Mumbai University M.E computer engg syllabus
Mumbai University M.E computer engg syllabusMumbai University M.E computer engg syllabus
Mumbai University M.E computer engg syllabus
Shini Saji
 
Anna University M.E Sy
Anna University M.E SyAnna University M.E Sy
Anna University M.E Sy
annaunivedu
 
Final teit syllabus_2012_course_04.06.2014
Final teit syllabus_2012_course_04.06.2014Final teit syllabus_2012_course_04.06.2014
Final teit syllabus_2012_course_04.06.2014
deepti112233
 

Similaire à 系统能力的培养 (20)

M techcse parttime_syallabus
M techcse parttime_syallabusM techcse parttime_syallabus
M techcse parttime_syallabus
 
Data_Engineering_Learning_Roadmap.pdf
Data_Engineering_Learning_Roadmap.pdfData_Engineering_Learning_Roadmap.pdf
Data_Engineering_Learning_Roadmap.pdf
 
Computer engineering university
Computer engineering university Computer engineering university
Computer engineering university
 
Machine Learning with Data Science Online Course | Learn and Build
 Machine Learning with Data Science Online Course | Learn and Build  Machine Learning with Data Science Online Course | Learn and Build
Machine Learning with Data Science Online Course | Learn and Build
 
Data Science & Big Data - Theory.pdf
Data Science & Big Data - Theory.pdfData Science & Big Data - Theory.pdf
Data Science & Big Data - Theory.pdf
 
Be computer-engineering-2012
Be computer-engineering-2012Be computer-engineering-2012
Be computer-engineering-2012
 
Fundamntl of computer programing in python.pptx
Fundamntl of computer programing in python.pptxFundamntl of computer programing in python.pptx
Fundamntl of computer programing in python.pptx
 
COA_UNIT-1new[1].pdf
COA_UNIT-1new[1].pdfCOA_UNIT-1new[1].pdf
COA_UNIT-1new[1].pdf
 
FDS_dept_ppt.pptx
FDS_dept_ppt.pptxFDS_dept_ppt.pptx
FDS_dept_ppt.pptx
 
37.%20 m.e.%20cse%20
37.%20 m.e.%20cse%2037.%20 m.e.%20cse%20
37.%20 m.e.%20cse%20
 
A.Levenchuk -- Machine learning engineering
A.Levenchuk -- Machine learning engineeringA.Levenchuk -- Machine learning engineering
A.Levenchuk -- Machine learning engineering
 
TMPA-2017: Stemming Architectural Decay in Software Systems
TMPA-2017:  Stemming Architectural Decay in Software SystemsTMPA-2017:  Stemming Architectural Decay in Software Systems
TMPA-2017: Stemming Architectural Decay in Software Systems
 
Mumbai University M.E computer engg syllabus
Mumbai University M.E computer engg syllabusMumbai University M.E computer engg syllabus
Mumbai University M.E computer engg syllabus
 
Ch01lect1 et
Ch01lect1 etCh01lect1 et
Ch01lect1 et
 
Anna University M.E Sy
Anna University M.E SyAnna University M.E Sy
Anna University M.E Sy
 
Embedded
EmbeddedEmbedded
Embedded
 
Session 2 - Akyildiz, Beinecke, Yee at MLconf NYC
Session 2 - Akyildiz, Beinecke, Yee at MLconf NYCSession 2 - Akyildiz, Beinecke, Yee at MLconf NYC
Session 2 - Akyildiz, Beinecke, Yee at MLconf NYC
 
Introduction to information technology
Introduction to information technologyIntroduction to information technology
Introduction to information technology
 
BCS302- Digital Design and computer organization -VTU-2022 scheme-Expectation...
BCS302- Digital Design and computer organization -VTU-2022 scheme-Expectation...BCS302- Digital Design and computer organization -VTU-2022 scheme-Expectation...
BCS302- Digital Design and computer organization -VTU-2022 scheme-Expectation...
 
Final teit syllabus_2012_course_04.06.2014
Final teit syllabus_2012_course_04.06.2014Final teit syllabus_2012_course_04.06.2014
Final teit syllabus_2012_course_04.06.2014
 

Dernier

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 

Dernier (20)

The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 

系统能力的培养

  • 1. 计算机学科规范 CS2013 —— 系统能力的培养 抛砖引玉研讨稿
  • 2. Survey of CC2001/CS2008 Usage • Developed survey to gather data for CS2013 – Reviews usage of CC2001 and CS2008 – Rating of importance of existing knowledge areas – Rating of principles (e.g., importance of stylized classes) – Suggestions for new topics of import/knowledge areas • Survey released in December, 2010 – ~1500 US department chairs/directors of UG education – ~2000 International department chairs – Received 201 responses
  • 4. Suggested Topics (% of Suggestions)
  • 5. Bounding Size of Curriculum CC2001 CS2008 CS2013 Tier 1 Tier 2 AL. Algorithms and Complexity 31 31 20 8 AR. Architecture and Organization 36 36 0 16 CN. Computational Science 0 0 1 0 DS. Discrete Structures 43 43 38 3 GV. Graphics and Visual Computing 3 3 2 1 HC. Human-Computer Interaction 8 8 4 4 IAS. Security and Information Assurance 0 0 2 6 IM. Information Management 10 11 5 5 IS. Intelligent Systems 10 10 0 10 NC. Networking and Communication 15 15 10 0 OS. Operating Systems 18 18 4 11 PBD. Platform-based Development 0 0 0 0 PD. Parallel and Distributed Computing 0 0 5.5 8.5 PL. Programming Languages 21 21 8 20 SDF. Software Development Fundamentals 38 47 41 0 SE. Software Engineering 31 31 5 19 SF. System Fundamentals 0 0 21 9 SP. Social and Professional Issues 16 16 6 10 TOTAL 280 290 172.5 130.5 Tier1 + 100% Tier2: 303 Tier1 + 90% Tier2: 290 Tier1 + 80% Tier2: 277
  • 6. Body of Knowledge Update (1) • Addition of new Knowledge Areas – Parallel and Distributed Computing • Most important area to add as indicated by previous feedback • Will include additional core hours – Information Assurance and Security • Second most important area to add • Will include additional core hours – Systems Fundamentals • Cross-cutting systems concepts – E.g., caching, locality, latency, parallelism • Avoid tying these to any one topic (e.g. Operating Systems, Architecture) to foster broader thinking and new pedagogy – Platform-based Development • E.g., web, mobile devices, game consoles, robots, etc.
  • 7. Body of Knowledge Update (2) • Reorganization of topics in many Knowledge Areas – Net-Centric Computing  Networking and Communications • Sharpen focus on networking • Web development moves to “Platform-based Development” – Notably, includes a reworking of topics in Programming Fundamentals, Programming Languages, and Algorithms • Move paradigm-specific concepts (e.g., OOP, Functional) to Programming Languages • Programming Fundamentals + some Software Engineering = “Software Development Fundamentals” • Seek to broaden thinking away from equating “Programming Fundamentals” with “Introductory Programming Courses” – Introductory programming course includes: platform + language/paradigm + software development
  • 8. CMU 计算机本科教学 CMU Computer Science Core: 15-122 Principles of Imperative Computation 15-150 Principles of Functional Programming 15-210 Parallel and Sequential Data Structures and Algorithms 15-213 Introduction to Computer Systems 15-251 Great Theoretical Ideas in Computer Science 15-451 Algorithm Design and Analysis
  • 9. CMU 计算机本科教学 One Algorithms & Complexity elective: 15-354 Computational Discrete Mathematics 15-355 Modern Computer Algebra 15-453 Formal Languages and Automata 21-301 Combinatorics 21-484 Graph Theory
  • 10. CMU 计算机本科教学 One Applications elective: 05-391 Designing Human-Centered Software 05-431 Software Structures for User Interfaces 10-601 Machine Learning 11-411 Natural Language Processing 15-313 Foundations of Software Engineering 15-322/15-323 Intro to Computer Music 15-381 Artificial Intelligence: Representation and Problem Solving 15-384 Robotic Manipulation 15-385 Computer Vision 15-415 Database Applications 15-462 Computer Graphics
  • 11. CMU 计算机本科教学 One Logics and Languages elective: 15-312 Foundations of Programming Languages 15-317 Constructive Logic 15-414 Bug Catching: Automated Program Verification and Testing 21-300 Basic Logic 80-311 Computability and Incompleteness
  • 12. CMU 计算机本科教学 One Software Systems elective: 15-410 Operating System Design and Implementation 15-411 Compiler Design 15-418 Parallel Computer Architecture and Programming 15-440 Distributed Systems 15-441 Computer Networks
  • 13. 计算机系统基础 • 1998 年在 CMU 开设 • 2002 年正式出版教材 • 2010 年第 2 版发行 • 涵盖了计算机系统领域的 广泛内容 • 但仅从程序员的角度介绍 ,不与后续课程抢内容
  • 14. 计算机系统基础 • 汇编 – 二进制,汇编, link/loader • 组成与体系结构 – 流水线,超标量, memory hierarchy • 操作系统 – Fork/execve/wait/signal (shell), 虚存 • I/O 与网络编程 – I/O, 网络程序设计 , 并发程序设计
  • 15. 计算机系统基础 • 可接触的概念、做中学 • 设计了 8 个 labs 1. Bit operation 2. Bombing (tracker) 3. Buffer overflow attack (hacker) 4. Pipeline design (using HCL) 5. Code optimization 6. Shell 7. Malloc 8. Proxy
  • 16. Great Theoretical Ideas in Computer Science • How to use theoretical ideas to – formulate and solve problems in computer science • Integrate – mathematical material with general problem solving techniques – and computer science applications • Examples are drawn from – Algorithms, Complexity Theory, Automata Theory, – Game Theory, Probability Theory, Graph Theory, – Algebra, Cryptography, and Combinatorics • Assignments involve – both mathematical proofs and programming
  • 17. Great Theoretical Ideas in Computer Science • Number – Pancakes with a Problem! – Choose Your Representation! – Unary, Binary, and Beyond – One Step at a Time: Induction – On Raising a Number to a Power – Euclid's Great Recursive Algorithm for GCD – Fibonacci Numbers: An Unexpected Formula – Modular Arithmetic and the RSA Cryptosystem
  • 18. Great Theoretical Ideas in Computer Science • Counting: – Counting I: One To One Correspondence and Choice Tree Representation – Counting II: Recurring Problems and Correspondences – Counting III: Polynomials Count! Pascal's Triangle
  • 19. Great Theoretical Ideas in Computer Science • Computation: – The One Minute to Learn Programming Language: Finite Automata – Playing Symbol Games: Logic, Language, and Meaning – On Time versus Input Size – Problem Solving: The Method behind the AHA! – Grade School Revisited: How to Add and Multiply – Grade School Again: A Parallel Perspective
  • 20. Great Theoretical Ideas in Computer Science • Probability Methods – Probability I: Counting in Terms of Proportions – Probability II: Probability Pitfalls and Paradoxes – Counting, Naming, and Worst-Case Compression – Dating Theory: Who Wins the Battle of the Sexes? – Probability III: Random Variables and Great Expectations! – Probability IV: Event Space in an Infinite Choice Tree – Probability V: Random Walks.
  • 21. Great Theoretical Ideas in Computer Science • Computational Theory – Thales's Legacy: What is a Proof? – Cantor's Legacy: Infinity and Diagonalization. – Turing's Legacy: The Limits of Computation – Godel's Legacy: The Limits of the Symbol Game – Ancient Paradoxes with an Incompressible Resolution
  • 23. 计算机系统工程 • 互联网成为主流以及多核的出现 • 如何控制计算机系统的设计复杂性 – Strong modularity using client-service design – Naming – Virtualization • 其它系统设计的主要问题 – Performance – Networks – Fault Tolerance – Atomicity and Consistency – Security • 2011 年开始授课
  • 24. 计算机系统工程 • 大量的经典论文阅读 2. Worse is Better 3. A Fast File System for UNIX 4. The X Window System 5. The Evolution of an x86 Virtual Machine Monitor 6. End-to-end Arguments in System Design 7. MapReduce 8. The Design and Implementation of a Log-Structured File System 9. RAID: A Case for Redundant Arrays of Inexpensive Disks 10.Hints of Computer System Design
  • 25. 计算机系统工程 • 设计类 project – tagged file system – 设计类 google-doc 系统 • Lab – The UNIX File System (practice file system related commands) – The UNIX Time-Sharing System (practice other shell commands) – Internet Routes and Measuring Round Trip Times (traceroute) – MapReduce
  • 26. Stanford 计算机本科核心课程 Systems cs106B Programming Abstractions cs107 Computer Organization and Systems Computer Systems: A Programmer‘s Perspective by Bryant and O’Hallaron(CMU) . C Programming Language by Kernighan cs110 Principles of Computer Systems 课本: Principles of Computer System Design by Jerome H. Saltzer and M. Frans Kaashoek (MIT) Theory cs103 Mathematical Foundations of Computing cs109 Intro to Probability for Computer Scientists cs161 Data Structures and Algorithms
  • 27. Berkeley 计算机本科核心课程 Core CS 61A Structure and Interpretation of Computer Programs CS61B Data Structures CS61C Machine Structures EECS42 Digital Electronics Upper Division Required CS 170 Algorithms CS 162 Operating systems
  • 28. Berkeley 计算机本科核心课程 Breadth courses choose two from the following: CS 150 Digital Systems CS 152 Computer Architecture CS 160 User Interfaces CS 161 Computer Security CS 164 Languages and Compilers CS 169 Software Engineering CS 184 Computer Graphics CS 186 Databases CS 188 Artificial Intelligence
  • 29. Utexas 的《计算机系统概念》 • Yale Patt , Introduction to Computing Systems: from bits and gates to C and beyond. • 美国计算机界的卓越泰斗,与 Knuth 齐名
  • 30. • UIUC 、 Utexas 、 UMN 、 UMASS 、上 海交大、中科大等采用 • Patt 教授 2011 年中科大授课的 Youku 视频 – http://www.youku.com/playlist_show/id_6525373.html (密码 ustc ) • 英文 ( 授课时使用 , 随时更新 ) – http://acsa.ustc.edu.cn/htmls/ics-courses/en/index.html • 大一就对计算机系统软件和硬件有整体的 理解
  • 31. 《计算机系统概念》目录 • 第 1 章 欢迎阅读本书 1.1 我们的目标 1.2 怎么才能做到 1.3 两个反复出现的理念 1.4 计算机系统简述 1.5 两个非常重要的思想 1.6 计算机:通用计算设备 1.7 从问题描述到电子运转 1.8 习题
  • 32. • 第 2 章 bit 、数据类型及其运算 第 3 章 数字逻辑 第 4 章 冯 · 诺伊曼模型 第 5 章 LC-3 结构 第 6 章 编程 第 7 章 汇编语言 第 8 章 输入 / 输出 第 9 章 TRAP 程序和子程序 第 10 章 栈
  • 33. • 第 11 章 C 语言编程概述 第 12 章 变量和运算符 第 13 章 控制结构 第 14 章 函数 第 15 章 测试与调试技术 第 16 章 指针和数组 第 17 章 递归 笫 18 章 C 语言中的 I/O 第 19 章 数据结构
  • 35. Programming in C++ • Introduction – Computers, People, and Programming • Programming and “Hello, Word!” • Objects, Types, and Values • Computation • Errors • Writing a Program • Completing a Program • Technicalities: Functions, etc • Technicalities: Classes, etc
  • 36. Programming in C++ • Input/Output Streams • Customizing I/O • A Display Model • Graphics Classes • Graphics Class Design • Graphing Functions and Data • Graphical User Interfaces
  • 37. Programming in C++ • Vector and Free Store • Vectors and Arrays • Vector, Template, and Exceptions • Containers and Iterators • Algorithms and Maps
  • 38. Programming in C++ • 每周一次 lab 指导 • 3 个 projects – 分数计算 – 字符界面游戏( Fox-hounds ) – 图形界面游戏 • 国内传统教学方法 – 以语言为主 – 课程结束后学生基本不会编程(有基础的除外) – 基本上要在数据结构之后才会编程
  • 39. 实验和考试 • Marking on the curve • 开卷考试、考卷上网 – 美国学生靠阅读学习 – 中国学生靠做题学习 • 实验 – 每门课的实验占总成绩的 30% ~ 50% – 基本以个人完成为主 • 与国际上通常以小组为单位不同 – 必须有防止抄袭的手段 • 定期变化实验内容 • 其它手段
  • 40. 助教 • 基础课每 20 名学生一名助教 – 作业 , labs, projects, 考卷 • 组织学生讨论 – 阅读内容( MIT 图灵奖得主作助教) – 开放课题 – 设计性实验 • 防止抄袭 – Check-point( 阶段性提交 ) – 半自动代码检查抄袭 – 面试 – 在线测试
  • 41. CS vs. EECS • 纯 CS ( CMU, Stanford ) – 没有传统的组成和计算机系统结构课程 – 相关课程在 ECE • EECS ( MIT, Berkeley ) – 有组成和系统结构课程 – 必须有较强的 EECS ( eg. Signal )基础
  • 42. 复旦大学课程体系(核心课程) 学年 上学期 下学期 一 高等数学 ( 上 ) 高等数学 ( 下 ) 线性代数 普通物理 ( 上 ) 程序设计 计算机系统基础 ( 上 二 普通物理(下) ) 计算机系统工程 计算机系统基础 ( 下 ) 概率论 ( 并行 ) 数据结构与算 数据库设计 法 软件工程 三 逻辑与可计算性 ( 并行 ) 算法设计与分 析 Patt 《计算机系统概念》,大一入学可参考,程序部分略浅 Bryant 《深入理解计算机系统》,适合有了程序设计基础以后
  • 43. 课程体系(系统软件方向课程) 学年 上学期 下学期 三 编译系统 数字部件设计 操作系统 计算机体系结构 分布式系统 四
  • 44. 参考文献 • Mehran Sahami, Stanford, Computer Science Curricula for the Coming Decade. Nov. 3, Peking University • 臧斌宇,复旦大学, “借鉴国际先进 经验 构建核心课程体系” . 2011 年 11 月 5 日。

Notes de l'éditeur

  1. 第 1 章 欢迎阅读本书 1.1 我们的目标 1.2 怎么才能做到 1.3 两个反复出现的理念 1.4 计算机系统简述 1.5 两个非常重要的思想 1.6 计算机:通用计算设备 1.7 从问题描述到电子运转 1.8 习题 第 2 章 bit 、数据类型及其运算 2.1 bit 和数据类型 2.2 整数数据类型 2.3 补码 2.4 二进制数与十进制数之间的转换 2.5 bit 运算之一:算术运算 2.6 bit 运算之二:逻辑运算 2.7 其他类型 2.8 习题 第 3 章 数字逻辑 3.1 MOS 晶体管 3.2 逻辑门 3.3 组合逻辑 3.4 存储单元 3.5 内存的概念 3.6 时序电路 3.7 LC-3 计算机的数据通路 3.8 习题 第 4 章 冯 · 诺伊曼模型 4.1 基本部件 4.2 LC-3 :一台冯 · 诺伊曼机器 4.3 指令处理 4.4 改变执行顺序 4.5 停机操作 4.6 习题 第 5 章 LC-3 结构 5.1 ISA 概述 5.2 操作指令 5.3 数据搬移指令 5.4 控制指令 5.5 例子:字符数统计 5.6 总结:数据通路 (LC-3) 5.7 习题 第 6 章 编程 第 7 章 汇编语言 第 8 章 输入 / 输出 第 9 章 TRAP 程序和子程序 第 10 章 栈 第 11 章 C 语言编程概述 第 12 章 变量和运算符 第 13 章 控制结构 第 14 章 函数 第 15 章 测试与调试技术 第 16 章 指针和数组 第 17 章 递归 笫 18 章 C 语言中的 I/O 第 19 章 数据结构
  2. Patt 教授是美国计算机界的卓越泰斗,与 Knuth 齐名。他写的关于计算机第一门课的看法: http://users.ece.utexas.edu/~patt/ut.present.1mar06.pdf   国外的 UIUC 等大学在用 Patt 的教材。 http://courses.engr.illinois.edu/ece190/info/course_info.htm http://users.ece.utexas.edu/~patt/09f.306/ ,   www.ece.utexas.edu/~ patt /00f.379K/descriptor.pdf http://www.mriedel.ece.umn.edu/wiki/index.php/EE1301   http://www.cis.umassd.edu/~rbalasubrama/CIS272/F07/ 旨在让计算机科学和电子工程专业的学生在刚刚开始本科学习的时候就对计算机系统软件和硬件有一个整体的理解,使得一年级的学生从整体上认识后续专业课程之间的联系,以便学生在学习后续专业课程时,能够较容易地学习更详细和更深入的相关内容,并了解这些课程内容是如何连贯在一起的。