Your SlideShare is downloading. ×
系统能力的培养
系统能力的培养
系统能力的培养
系统能力的培养
系统能力的培养
系统能力的培养
系统能力的培养
系统能力的培养
系统能力的培养
系统能力的培养
系统能力的培养
系统能力的培养
系统能力的培养
系统能力的培养
系统能力的培养
系统能力的培养
系统能力的培养
系统能力的培养
系统能力的培养
系统能力的培养
系统能力的培养
系统能力的培养
系统能力的培养
系统能力的培养
系统能力的培养
系统能力的培养
系统能力的培养
系统能力的培养
系统能力的培养
系统能力的培养
系统能力的培养
系统能力的培养
系统能力的培养
系统能力的培养
系统能力的培养
系统能力的培养
系统能力的培养
系统能力的培养
系统能力的培养
系统能力的培养
系统能力的培养
系统能力的培养
系统能力的培养
系统能力的培养
系统能力的培养
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

系统能力的培养

1,286

Published on

http://vdisk.weibo.com/s/1bUGd/1321792858

http://vdisk.weibo.com/s/1bUGd/1321792858

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,286
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • 第 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 章 数据结构
  • 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/ 旨在让计算机科学和电子工程专业的学生在刚刚开始本科学习的时候就对计算机系统软件和硬件有一个整体的理解,使得一年级的学生从整体上认识后续专业课程之间的联系,以便学生在学习后续专业课程时,能够较容易地学习更详细和更深入的相关内容,并了解这些课程内容是如何连贯在一起的。
  • Transcript

    • 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
    • 3. Importance of Topics
    • 4. Suggested Topics (% of Suggestions)
    • 5. Bounding Size of Curriculum CC2001 CS2008 CS2013 Tier 1 Tier 2AL. Algorithms and Complexity 31 31 20 8AR. Architecture and Organization 36 36 0 16CN. Computational Science 0 0 1 0DS. Discrete Structures 43 43 38 3GV. Graphics and Visual Computing 3 3 2 1HC. Human-Computer Interaction 8 8 4 4IAS. Security and Information Assurance 0 0 2 6IM. Information Management 10 11 5 5IS. Intelligent Systems 10 10 0 10NC. Networking and Communication 15 15 10 0OS. Operating Systems 18 18 4 11PBD. Platform-based Development 0 0 0 0PD. Parallel and Distributed Computing 0 0 5.5 8.5PL. Programming Languages 21 21 8 20SDF. Software Development Fundamentals 38 47 41 0SE. Software Engineering 31 31 5 19SF. System Fundamentals 0 0 21 9SP. Social and Professional Issues 16 16 6 10TOTAL 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 Computation15-150 Principles of Functional Programming15-210 Parallel and Sequential Data Structures and Algorithms15-213 Introduction to Computer Systems15-251 Great Theoretical Ideas in Computer Science15-451 Algorithm Design and Analysis
    • 9. CMU 计算机本科教学One Algorithms & Complexity elective:15-354 Computational Discrete Mathematics15-355 Modern Computer Algebra15-453 Formal Languages and Automata21-301 Combinatorics21-484 Graph Theory
    • 10. CMU 计算机本科教学 One Applications elective:05-391 Designing Human-Centered Software05-431 Software Structures for User Interfaces10-601 Machine Learning11-411 Natural Language Processing15-313 Foundations of Software Engineering15-322/15-323 Intro to Computer Music15-381 Artificial Intelligence: Representation and Problem Solving15-384 Robotic Manipulation15-385 Computer Vision15-415 Database Applications15-462 Computer Graphics
    • 11. CMU 计算机本科教学 One Logics and Languages elective:15-312 Foundations of Programming Languages15-317 Constructive Logic15-414 Bug Catching: Automated Program Verification andTesting21-300 Basic Logic80-311 Computability and Incompleteness
    • 12. CMU 计算机本科教学 One Software Systems elective:15-410 Operating System Design and Implementation15-411 Compiler Design15-418 Parallel Computer Architecture and Programming15-440 Distributed Systems15-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 – Euclids 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! Pascals 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 – Thaless Legacy: What is a Proof? – Cantors Legacy: Infinity and Diagonalization. – Turings Legacy: The Limits of Computation – Godels Legacy: The Limits of the Symbol Game – Ancient Paradoxes with an Incompressible Resolution
    • 22. MIT的核心课程
    • 23. 计算机系统工程• 互联网成为主流以及多核的出现• 如何控制计算机系统的设计复杂性 – Strong modularity using client-service design – Naming – Virtualization• 其它系统设计的主要问题 – Performance – Networks – Fault Tolerance – Atomicity and Consistency – Security• 2011 年开始授课
    • 24. 计算机系统工程• 大量的经典论文阅读2. Worse is Better3. A Fast File System for UNIX4. The X Window System5. The Evolution of an x86 Virtual Machine Monitor6. End-to-end Arguments in System Design7. MapReduce8. The Design and Implementation of a Log-Structured File System9. RAID: A Case for Redundant Arrays of Inexpensive Disks10.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 计算机本科核心课程Systemscs106B Programming Abstractionscs107 Computer Organization and SystemsComputer Systems: A Programmer‘s Perspective by Bryant andO’Hallaron(CMU) . C Programming Language by Kernighancs110 Principles of Computer Systems课本: Principles of Computer System Design by JeromeH. Saltzer and M. Frans Kaashoek (MIT)Theorycs103 Mathematical Foundations of Computingcs109 Intro to Probability for Computer Scientistscs161 Data Structures and Algorithms
    • 27. Berkeley 计算机本科核心课程CoreCS 61A Structure and Interpretation of Computer ProgramsCS61B Data StructuresCS61C Machine StructuresEECS42 Digital ElectronicsUpper Division RequiredCS 170 AlgorithmsCS 162 Operating systems
    • 28. Berkeley 计算机本科核心课程Breadth courses choose two from the following:CS 150 Digital SystemsCS 152 Computer ArchitectureCS 160 User InterfacesCS 161 Computer SecurityCS 164 Languages and CompilersCS 169 Software EngineeringCS 184 Computer GraphicsCS 186 DatabasesCS 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 章 数据结构
    • 34. Programming in C++
    • 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 日。
    • 45. 谢谢

    ×