《系统能力的培养1.ppt》由会员分享,可在线阅读,更多相关《系统能力的培养1.ppt(45页珍藏版)》请在三一办公上搜索。
1、计算机学科规范CS2013 系统能力的培养,抛砖引玉研讨稿,Survey of CC2001/CS2008 Usage,Developed survey to gather data for CS2013Reviews usage of CC2001 and CS2008Rating of importance of existing knowledge areasRating of principles(e.g.,importance of stylized classes)Suggestions for new topics of import/knowledge areasSurvey
2、released in December,20101500 US department chairs/directors of UG education2000 International department chairsReceived 201 responses,Importance of Topics,Suggested Topics(%of Suggestions),Bounding Size of Curriculum,Body of Knowledge Update(1),Addition of new Knowledge AreasParallel and Distribute
3、d ComputingMost important area to add as indicated by previous feedbackWill include additional core hoursInformation Assurance and SecuritySecond most important area to add Will include additional core hoursSystems FundamentalsCross-cutting systems conceptsE.g.,caching,locality,latency,parallelismAv
4、oid tying these to any one topic(e.g.Operating Systems,Architecture)to foster broader thinking and new pedagogyPlatform-based DevelopmentE.g.,web,mobile devices,game consoles,robots,etc.,Body of Knowledge Update(2),Reorganization of topics in many Knowledge AreasNet-Centric Computing Networking and
5、CommunicationsSharpen focus on networkingWeb development moves to“Platform-based Development”Notably,includes a reworking of topics in Programming Fundamentals,Programming Languages,and AlgorithmsMove paradigm-specific concepts(e.g.,OOP,Functional)to Programming LanguagesProgramming Fundamentals+som
6、e 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 P
7、rinciples of Imperative Computation15-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&Compl
8、exity 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
9、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 Graph
10、ics,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
11、 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操
12、作系统Fork/execve/wait/signal(shell),虚存I/O与网络编程I/O,网络程序设计,并发程序设计,计算机系统基础,可接触的概念、做中学设计了8个labsBit operationBombing(tracker)Buffer overflow attack(hacker)Pipeline design(using HCL)Code optimizationShellMalloc Proxy,Great Theoretical Ideas in Computer Science,How to use theoretical ideas to formulate and s
13、olve problems in computer scienceIntegrate mathematical material with general problem solving techniques and computer science applicationsExamples are drawn from Algorithms,Complexity Theory,Automata Theory,Game Theory,Probability Theory,Graph Theory,Algebra,Cryptography,and CombinatoricsAssignments
14、 involve both mathematical proofs and programming,Great Theoretical Ideas in Computer Science,NumberPancakes with a Problem!Choose Your Representation!Unary,Binary,and BeyondOne Step at a Time:InductionOn Raising a Number to a PowerEuclids Great Recursive Algorithm for GCDFibonacci Numbers:An Unexpe
15、cted FormulaModular Arithmetic and the RSA Cryptosystem,Great Theoretical Ideas in Computer Science,Counting:Counting I:One To One Correspondence and Choice Tree RepresentationCounting II:Recurring Problems and CorrespondencesCounting III:Polynomials Count!Pascals Triangle,Great Theoretical Ideas in
16、 Computer Science,Computation:The One Minute to Learn Programming Language:Finite AutomataPlaying Symbol Games:Logic,Language,and MeaningOn Time versus Input SizeProblem Solving:The Method behind the AHA!Grade School Revisited:How to Add and MultiplyGrade School Again:A Parallel Perspective,Great Th
17、eoretical Ideas in Computer Science,Probability MethodsProbability I:Counting in Terms of ProportionsProbability II:Probability Pitfalls and ParadoxesCounting,Naming,and Worst-Case CompressionDating Theory:Who Wins the Battle of the Sexes?Probability III:Random Variables and Great Expectations!Proba
18、bility IV:Event Space in an Infinite Choice TreeProbability V:Random Walks.,Great Theoretical Ideas in Computer Science,Computational TheoryThaless Legacy:What is a Proof?Cantors Legacy:Infinity and Diagonalization.Turings Legacy:The Limits of ComputationGodels Legacy:The Limits of the Symbol GameAn
19、cient Paradoxes with an Incompressible Resolution,MIT的核心课程,计算机系统工程,互联网成为主流以及多核的出现如何控制计算机系统的设计复杂性Strong modularity using client-service designNamingVirtualization其它系统设计的主要问题PerformanceNetworks Fault ToleranceAtomicity and ConsistencySecurity2011年开始授课,计算机系统工程,大量的经典论文阅读Worse is BetterA Fast File System
20、 for UNIXThe X Window SystemThe Evolution of an x86 Virtual Machine MonitorEnd-to-end Arguments in System DesignMapReduceThe Design and Implementation of a Log-Structured File SystemRAID:A Case for Redundant Arrays of Inexpensive DisksHints of Computer System Design,计算机系统工程,设计类 projecttagged file sy
21、stem设计类google-doc系统LabThe 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计算机本科核心课程,Systemscs106B Programming Abstractionscs107 Computer Organization and Syst
22、emsComputer Systems:A Programmers Perspective by Bryant and OHallaron(CMU).C Programming Language by Kernighancs110 Principles of Computer Systems课本:Principles of Computer System Design by Jerome H.Saltzer and M.Frans Kaashoek(MIT)Theorycs103 Mathematical Foundations of Computingcs109 Intro to Proba
23、bility for Computer Scientistscs161 Data Structures and Algorithms,Berkeley计算机本科核心课程,CoreCS 61A Structure and Interpretation of Computer ProgramsCS61B Data StructuresCS61C Machine Structures EECS42 Digital ElectronicsUpper Division RequiredCS 170 Algorithms CS 162 Operating systems,Berkeley计算机本科核心课程
24、,Breadth courses choose two from the following:CS 150 Digital SystemsCS 152 Computer Architecture CS 160 User InterfacesCS 161 Computer Security CS 164 Languages and Compilers CS 169 Software Engineering CS 184 Computer GraphicsCS 186 Databases CS 188 Artificial Intelligence,Utexas的计算机系统概念,Yale Patt
25、,Introduction to Computing Systems:from bits and gates to C and beyond.美国计算机界的卓越泰斗,与Knuth齐名,UIUC、Utexas、UMN、UMASS、上海交大、中科大等采用Patt教授2011年中科大授课的Youku视频http:/,第1章 欢迎阅读本书1.1 我们的目标1.2 怎么才能做到1.3 两个反复出现的理念1.4 计算机系统简述1.5 两个非常重要的思想1.6 计算机:通用计算设备1.7 从问题描述到电子运转1.8 习题,计算机系统概念目录,第2章 bit、数据类型及其运算第3章 数字逻辑第4章 冯诺伊曼模
26、型第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+,IntroductionComputers,People,and ProgrammingProgramming and“Hello,Word!”Objects,Types,and ValuesComputationErrorsWriti
27、ng a Program Completing a ProgramTechnicalities:Functions,etc Technicalities:Classes,etc,Programming in C+,Input/Output Streams Customizing I/O A Display Model Graphics Classes Graphics Class DesignGraphing Functions and Data Graphical User Interfaces,Programming in C+,Vector and Free Store Vectors
28、and ArraysVector,Template,and Exceptions Containers and IteratorsAlgorithms and Maps,Programming in C+,每周一次lab指导3个projects分数计算字符界面游戏(Fox-hounds)图形界面游戏国内传统教学方法以语言为主课程结束后学生基本不会编程(有基础的除外)基本上要在数据结构之后才会编程,实验和考试,Marking on the curve开卷考试、考卷上网美国学生靠阅读学习中国学生靠做题学习实验每门课的实验占总成绩的30%50%基本以个人完成为主与国际上通常以小组为单位不同必须有防止
29、抄袭的手段定期变化实验内容其它手段,助教,基础课每20名学生一名助教作业,labs,projects,考卷组织学生讨论阅读内容(MIT图灵奖得主作助教)开放课题设计性实验防止抄袭Check-point(阶段性提交)半自动代码检查抄袭面试在线测试,CS vs.EECS,纯CS(CMU,Stanford)没有传统的组成和计算机系统结构课程相关课程在ECEEECS(MIT,Berkeley)有组成和系统结构课程必须有较强的EECS(eg.Signal)基础,复旦大学课程体系(核心课程),Patt 计算机系统概念,大一入学可参考,程序部分略浅Bryant 深入理解计算机系统,适合有了程序设计基础以后,课程体系(系统软件方向课程),参考文献,Mehran Sahami,Stanford,Computer Science Curricula for the Coming Decade.Nov.3,Peking University臧斌宇,复旦大学,“借鉴国际先进经验构建核心课程体系”.2011年11月5日。,谢谢,