ACM/IEEE-CS Computer Science Curricula 2013 (CS2013) Mehran Sahami Stanford University sahami@cs.stanford.edu ACM Education Council – March 10, 2013 Outline • The CS2013 Effort – Steering Committee • CS2013 Ironman Report – Volume contents – The Body of Knowledge – Curricular Organization – Course Exemplars • Community Engagement – Timeline – Discussion CS2013 Steering Committee ACM IEEE-CS • Mehran Sahami, Chair (Stanford) • Steve Roach, Chair (U. of Texas, El Paso) • Andrea Danyluk (Williams College) • • Sally Fincher (Univ. of Kent) Ernesto Cuadros-Vargas (Universidad Católica San Pablo, Peru) • Kathleen Fisher (Tufts University) • Ronald Dodge (US Military Academy) • • Dan Grossman (Univ. of Washington) • Beth Hawthorne (Union County Coll.) • • Randy Katz (UC Berkeley) • Brian Robinson (ABB corporation) • Rich LeBlanc (Seattle Univ.) • Remzi Seker (Embry-Riddle Aero. Univ.) • Dave Reed (Creighton) • Alfred Thompson (Microsoft, retired) Robert France (Colorado State) Amruth Kumar (Ramapo College of NJ) CS2013 Ironman Draft Released March 2013 February CS2013 Contents: Ironman Report • Chapter 1: Introduction • Chapter 2: Principles • Chapter 3: Characteristics of Graduates • Chapter 4: Introduction to the Body of Knowledge • Chapter 5: Introductory Courses • Chapter 6: Institutional Challenges • Appendix A: The Body of Knowledge • Appendix B: Migrating Curricula to CS2013 • Appendix C: Course Exemplars 376 pages (and counting…) Updating the Body of Knowledge • Process for updating Body of Knowledge – Subcommittee for each Knowledge Area – Chaired by a member of steering committee – Each area reviewed by several (often 4 or more) “external” reviewers prior to release of Strawman draft • Ironman report: complete update of Body of Knowledge – Incorporates all community feedback from Strawman draft • Well over 100 external reviewers involved Knowledge Areas in CS2013 • • • • • • • • • • • • • • • • • • AL - Algorithms and Complexity AR - Architecture and Organization CN - Computational Science DS - Discrete Structures GV - Graphics and Visual Computing HCI - Human-Computer Interaction IAS - Information Assurance and Security IM - Information Management IS - Intelligent Systems NC - Networking and Communications OS - Operating Systems PBD - Platform-based Development PD - Parallel and Distributed Computing PL - Programming Languages SDF - Software Development Fundamentals SE - Software Engineering SF - System Fundamentals SP - Social Issues and Professional Practice Curricular Organization (Part 1) • Three-tiered classification of Body of Knowledge Units – Core-Tier1: absolutely essential topics, all of which are required for any undergraduate CS program – Core-Tier2: important foundational topics, the vast majority (no less than 80%) of which should be in a CS program • Still considered “Core” topics – ideally all Tier2 topics would be included in an undergraduate program, if possible • Tiering allows for flexibility to locally customize curricula – Elective: additional topics that can be included to complete an undergraduate CS program • Covering just “core” material is insufficient for a complete curriculum Curricular Organization (Part 2) • Guidance provided on depth of coverage for learning outcomes in each Knowledge Area – 3 levels of depth: Familiarity, Usage, and Assessment – Familiarity: know what it means – Usage: can apply concept (e.g., write the code to use it) – Assessment: can compare/contrast/select appropriate method/strategy for different situations • Changed terms to not overlap with Bloom’s taxonomy – Based on feedback from Strawman draft Example of Knowledge Area Parallel and Distributed Computing (PD) The past decade has brought explosive growth in multiprocessor computing, including multi-core processors and distributed data centers. As a result, parallel and distributed computing has moved from a largely elective topic to become more of a core component… PD. Parallel and Distributed Computing (5 Core-Tier1 hours, 9 Core-Tier2 hours) Core-Tier1 hours Core-Tier2 hours Includes Electives PD/Parallelism Fundamentals 2 PD/Parallel Decomposition 1 3 N PD/Communication and Coordination 1 3 Y 3 Y 1 Y PD/Parallel Algorithms, Analysis, and Programming PD/Parallel Architecture 1 N PD/Parallel Performance Y PD/Distributed Systems Y PD/Cloud Computing Y PD/Formal Models and Semantics Y Example of Knowledge Unit (Topics) PD/Communication and Coordination [1 Core-Tier1 hour, 3 Core-Tier2 hours] (Cross-reference OS/Concurrency for mechanism implementation issues.) Topics: [Core-Tier1] • Shared Memory o Consistency, and its role in programming language guarantees for data-race-free programs [Core-Tier2] • • • Consistency in shared memory models Message passing o Point-to-point versus multicast (or event-based) messages o Blocking versus non-blocking styles for sending and receiving messages o Message buffering (cross-reference PF/Fundamental Data Structures/Queues) Atomicity … [Elective] • Consensus o (Cyclic) barriers, counters, or related constructs Example KU Learning Outcomes [Core-Tier1] 1. Use mutual exclusion to avoid a given race condition [Usage] [Core-Tier2] 2. Give an example of an ordering of accesses among concurrent activities that is not sequentially consistent [Familiarity] 3. Explain when and why multicast or event-based messaging can be preferable to alternatives [Familiarity] 4. Write a program that correctly terminates when all of a set of concurrent tasks have completed [Usage] … [Elective] 12.Use semaphores or condition variables to block threads until a necessary precondition holds [Usage] Learning Outcomes • Total number of Learning Outcomes o ~250 Core-Tier1 o ~300 Core-Tier2 o ~530 Elective • Trends • Security • Multi-core, parallel and distributed computing • More empirical assessment of systems • Software architecture, evolution and maintenance • International differences (security, privacy, copyright, social and professional issues) • Mobile computing and game platforms Bounding Size of Curriculum Knowledge Area AL-Algorithms and Complexity AR-Architecture and Organization CN-Computational Science DS-Discrete Structures GV-Graphics and Visual Computing HC-Human-Computer Interaction IAS-Security and Information Assurance IM-Information Management IS-Intelligent Systems NC-Networking and Communication OS-Operating Systems PBD-Platform-based Development PD-Parallel and Distributed Computing PL-Programming Languages SDF-Software Development Fundamentals SE-Software Engineering SF-Systems Fundamentals SP-Social and Professional Issues Total Core Hours All Tier1 + All Tier2 Total All Tier1 + 90% of Tier2 Total All Tier1 + 80% of Tier2 Total CS2013 Tier1 Tier2 19 9 0 16 1 0 37 4 2 1 4 4 3 6 1 9 0 10 3 7 4 11 0 0 5 10 8 20 43 0 6 21 18 9 11 5 165 142 307 292.8 278.6 Bounding Size of Curriculum Knowledge Area AL-Algorithms and Complexity AR-Architecture and Organization CN-Computational Science DS-Discrete Structures GV-Graphics and Visual Computing HC-Human-Computer Interaction IAS-Security and Information Assurance IM-Information Management IS-Intelligent Systems NC-Networking and Communication OS-Operating Systems PBD-Platform-based Development PD-Parallel and Distributed Computing PL-Programming Languages SDF-Software Development Fundamentals SE-Software Engineering SF-Systems Fundamentals SP-Social and Professional Issues Total Core Hours All Tier1 + All Tier2 Total All Tier1 + 90% of Tier2 Total All Tier1 + 80% of Tier2 Total CS2013 Tier1 Tier2 19 9 0 16 1 0 37 4 2 1 4 4 3 6 1 9 0 10 3 7 4 11 0 0 5 10 8 20 43 0 6 21 18 9 11 5 165 142 307 292.8 278.6 CS2008 Core 31 36 0 43 3 8 0 11 10 15 18 0 0 21 47 31 0 16 290 CC2001 Core 31 36 0 43 3 8 0 10 10 15 18 0 0 21 38 31 0 16 280 2007 LACS 69 40 0 49 0 5 0 0 4 10 9 0 0 47 39 20 0 11 303 Course Exemplars • Process – Courses recommended or sought out – Some volunteered submissions • Diversity and context – Variety of institutions represented – A given exemplar may not be best for you • These are examples to spur thinking in curriculum design – They are not meant to be the “best” way • Also looking for full curriculum exemplars Course Exemplar Template Name of Course, Location of Institution, Instructor, Course URL Knowledge Areas that contain topics and learning outcomes covered in the course Knowledge Area Total Hours of Coverage Name (e.g., Systems Fundamentals (SF)) Number Where does the course fit in your curriculum? What is covered in the course? (Short description, and/or a concise list of topics) What is the format of the course? (Contact hours? Lecture, lab, discussion?) How are students assessed? (Assignments: number and type, expected workload) Course textbooks and materials Why do you teach the course this way? (Course rationale and goals) Body of Knowledge coverage KA Knowledge Unit XY Full name of KU Additional topics/comments Topics Covered Hours Num Engaging the Community • Website: cs2013.org – Dissemination of report drafts (Ironman report available) • Announced on SIGCSE mailing list • Use Ensemble for commenting/feedback. (Thanks Boots!) • Multiple opportunities for involvement in this effort – Comments on Ironman draft – Mapping exemplar courses/curricula to Body of Knowledge – Pedagogic approaches and instructional designs • Address professional practice within undergraduate curricula – Share institutional challenges (and solutions to them) Getting the Word Out • CS2013 panels/discussions since last Ed Council meeting: – – – – – CCSC, Southwest CRA Snowbird COMTEL Peru FIE-12 SIGCSE-13 • • • • • (March 2012) (July 2012) (October 2012) (October 2012) (March 2013) Ironman draft overview Exemplar-fest (highlight and solicit exemplars) Societal Issues and Professional Practice (inform and engage) Parallel/Distributed computing (organized by others) BOF: recommendations for HCI – Continued coordination with CCF curriculum task force – Discussion/coordination with ABET/CSAB • Upcoming CS2013 panels/discussions: – ITiCSE-13 – EAAI-13 ? (July 2013) (July 2013) Timeline • Feb. 2012:Strawman draft (alpha) public release – Includes: Body of Knowledge, Characteristics of Graduates • July 15, 2012: Comment period for Strawman closed • March 2013: Ironman draft (beta) public release – Incorporates feedback on Strawman draft – Includes: Complete draft of report • Additional course/curricular exemplars to be added • June 2013: Comment period for Ironman draft closes • August 2013: Final steering committee meeting (Las Vegas) – What happens in Vegas, stays in Vegas... except for CS2013! • Fall 2013: Final report released (general availability) Thank you for your attention Questions/Comments?