48
Computer Science Curricula for the Coming Decade Mehran Sahami Computer Science Department Stanford University [email protected] University Course Forum of Computer Science - 2011

Computer Science Curricula for the Coming Decade Mehran Sahami Computer Science Department Stanford University [email protected] University Course

Embed Size (px)

Citation preview

Page 1: Computer Science Curricula for the Coming Decade Mehran Sahami Computer Science Department Stanford University sahami@cs.stanford.edu University Course

Computer Science Curricula for the Coming Decade

Mehran SahamiComputer Science Department

Stanford University

[email protected]

University Course Forum of Computer Science - 2011

Page 2: Computer Science Curricula for the Coming Decade Mehran Sahami Computer Science Department Stanford University sahami@cs.stanford.edu University Course

Most Famous Chart in CS Education in US

Source: CRA Taulbee Survey

But recently seeing growth again...

Page 3: Computer Science Curricula for the Coming Decade Mehran Sahami Computer Science Department Stanford University sahami@cs.stanford.edu University Course

CS Major Enrollments Per Department

Page 4: Computer Science Curricula for the Coming Decade Mehran Sahami Computer Science Department Stanford University sahami@cs.stanford.edu University Course

The Data From Stanford

Page 5: Computer Science Curricula for the Coming Decade Mehran Sahami Computer Science Department Stanford University sahami@cs.stanford.edu University Course

A Slightly More Well Known Graph

Source: Yahoo! finance

Page 6: Computer Science Curricula for the Coming Decade Mehran Sahami Computer Science Department Stanford University sahami@cs.stanford.edu University Course

The Obvious Correlation

• Normalize both graphs by 1998 values– Adjust for a one year lag time in declarations

Correlation = 0.61

Page 7: Computer Science Curricula for the Coming Decade Mehran Sahami Computer Science Department Stanford University sahami@cs.stanford.edu University Course

What Happened in 2003?

By 2003, … sensational news stories appeared about a supposedly horrific loss of these [computer programming] jobs [due to offshoring].

-- The Washington Times, June 6, 2004

Correlation = 0.61Correlation up to 2003 = 0.88

Page 8: Computer Science Curricula for the Coming Decade Mehran Sahami Computer Science Department Stanford University sahami@cs.stanford.edu University Course

Understanding the Impact of Offshoring

• More IT jobs today in US than during boom

– Despite significant increase in offshoring over past 5 years Source: Globalization and Offshoring of Software: A Report of the ACM Job Migration Task Force (citing the Bureau of Labor Statistics), 2006.

• Strong projected job growth for “computer scientists” and “software engineers” through at least 2018Source: US Bureau of Labor Statistics, 2010.

• Need to create awareness of “CS in the large”

– CS is increasingly fundamental to work in other fields

Page 9: Computer Science Curricula for the Coming Decade Mehran Sahami Computer Science Department Stanford University sahami@cs.stanford.edu University Course

Understanding Supply Versus Demand

Page 10: Computer Science Curricula for the Coming Decade Mehran Sahami Computer Science Department Stanford University sahami@cs.stanford.edu University Course

Revising Undergraduate CS Curriculum

• Field has evolved more significantly than curriculum in last 20 years, and will continue to do so

• Students should be explicitly made aware of the options in Computer Science– Diversity of areas within computer science

– Significant role of computing in inter-disciplinary work

– Not just trying to “fix” curriculum

• Provide context for computing– Programming is the means, not the ends

– Still, should not discount the importance of rigorous software engineering skills

– Don’t “water down” curriculum to just attract more students!

Page 11: Computer Science Curricula for the Coming Decade Mehran Sahami Computer Science Department Stanford University sahami@cs.stanford.edu University Course

Impact of New Curriculum at Stanford

In 2008-09 new CS curriculum went into effect

41% increase

Additional 29% increase

83% increase over two

years

Page 12: Computer Science Curricula for the Coming Decade Mehran Sahami Computer Science Department Stanford University sahami@cs.stanford.edu University Course

Increasing the Footprint of CS

Systems

Theory

AI

Comp. Bio.

Geometric Comp.Graphics

HCI

Distributed Systems

DatabasesHardware Robotics

Data mining

Machine Learning

Natural Language

Comp. Economics

Networking

Security

Algorithms

Editor’s Note: Two-dimensional projection clearly does not capture the relative importance or organizational nuances of the field.

Some topics may be closer to you than they appear on this slide.

Page 13: Computer Science Curricula for the Coming Decade Mehran Sahami Computer Science Department Stanford University sahami@cs.stanford.edu University Course

Footprint of CS Students Saw Previously

Systems

Theory

AI

Comp. Bio.

Geometric Comp.Graphics

HCI

Distributed Systems

DatabasesHardware Robotics

Data mining

Machine Learning

Natural Language

Comp. Economics

Networking

Security

Algorithms

Editor’s Note: Two-dimensional projection clearly does not capture the relative importance or organizational nuances of the field.

Some topics may be closer to you than they appear on this slide.

Page 14: Computer Science Curricula for the Coming Decade Mehran Sahami Computer Science Department Stanford University sahami@cs.stanford.edu University Course

Tracks Allow More Depth...

Systems

Theory

AI

Comp. Bio.

Geometric Comp.Graphics

HCI

Distributed Systems

DatabasesHardware Robotics

Data mining

Machine Learning

Natural Language

Comp. Economics

Networking

Security

Algorithms

Total amount of material covered must remain the same

Page 15: Computer Science Curricula for the Coming Decade Mehran Sahami Computer Science Department Stanford University sahami@cs.stanford.edu University Course

...in a More Diverse Set of Areas

Systems

Theory

AI

Comp. Bio.

Geometric Comp.Graphics

HCI

Distributed Systems

DatabasesHardware Robotics

Data mining

Machine Learning

Natural Language

Comp. Economics

Networking

Security

Algorithms

Page 16: Computer Science Curricula for the Coming Decade Mehran Sahami Computer Science Department Stanford University sahami@cs.stanford.edu University Course

Total Potential Footprint is Larger

Systems

Theory

AI

Comp. Bio.

Geometric Comp.Graphics

HCI

Distributed Systems

DatabasesHardware Robotics

Data mining

Machine Learning

Natural Language

Comp. Economics

Networking

Security

Algorithms

Core material everyone sees is streamlined to accommodate

Page 17: Computer Science Curricula for the Coming Decade Mehran Sahami Computer Science Department Stanford University sahami@cs.stanford.edu University Course

“Big Tent” Computer Science

Systems

Theory

AI

Comp. Bio.

Geometric Comp.Graphics

HCI

Distributed Systems

DatabasesHardware Robotics

Data mining

Machine Learning

Natural Language

Comp. Economics

Networking

Security

Algorithms

Art

Economics

Biology

Linguistics

StatisticsElectricalEngineering

Design

Psychology

Page 18: Computer Science Curricula for the Coming Decade Mehran Sahami Computer Science Department Stanford University sahami@cs.stanford.edu University Course

Revised Curricular Structure: Core

Systems Core: 3 Courses• Programming methodology and

abstractions

• Computer organization and systems

• Principles of computer systems and networks

Theory Core: 3 Courses

• Mathematical foundations of CS

• Probability theory for computer scientists

• Data structures and algorithms Theory

Systems

Page 19: Computer Science Curricula for the Coming Decade Mehran Sahami Computer Science Department Stanford University sahami@cs.stanford.edu University Course

Systems Core Courses

• Systems I: Programming Abstraction and Methodology (really, CS2)– Programming methodology (modularity, documentation, etc.)– Basic data structures and models (lists, trees, stacks, etc.)– Recursion

• Systems II: Computer Organization and Systems– Machine architecture, memory model, and data representation– Elements of compilation– Basic concurrency usage

• Systems III: Principles of Computer Systems– Processes and concurrency mechanics– Storage and file management– Networking and distributed systems

Page 20: Computer Science Curricula for the Coming Decade Mehran Sahami Computer Science Department Stanford University sahami@cs.stanford.edu University Course

Theory Core Courses

• Theory I: Mathematical Foundations of Computing (mostly discrete math)– Logic, induction, and formal proof techniques– Sets, functions, and relations (with applications)– Formal languages, automata, and NP-completeness

• Theory II: Intro. Probability for Computer Scientists– Introduction to probability theory and distributions– Essential theorems (Bayes’ Theorem, Law of Large Numbers,

Central Limit Theorem, inequalities)– Machine learning: models, parameter estimation, prediction– Applications: hashing, analyzing distributed systems, spam filtering

• Theory III: Data Structures and Algorithms– Algorithmic complexity and analysis– Greedy and randomized algorithms– Algorithms for trees, heaps, and graphs – Dynamic programming

Page 21: Computer Science Curricula for the Coming Decade Mehran Sahami Computer Science Department Stanford University sahami@cs.stanford.edu University Course

Theory

Systems

Revised Curricular Structure: Tracks

• Students must complete requirements for any one track

• Developing depth in a specialization

• Provide course/theme options within each track

• Provide multi-disciplinary options

• Modularize curriculum

~4 Courses

Theory

Systems

Theory

Systems

Page 22: Computer Science Curricula for the Coming Decade Mehran Sahami Computer Science Department Stanford University sahami@cs.stanford.edu University Course

Initial Set of Tracks Areas

• Artificial Intelligence

• Theory

• Systems

• Human-Computer Interaction

• Graphics

• Information– Management and application of structured and unstructured data

• Biocomputation– Incorporates many medical school prepatory requirements

• Unspecialized– Essentially our previous program

• Individually Designed

Page 23: Computer Science Curricula for the Coming Decade Mehran Sahami Computer Science Department Stanford University sahami@cs.stanford.edu University Course

Theory

Systems

Theory

Systems

Revised Curricular Structure: Electives

Theory

Systems

~2-4 Courses

• Restricted electives

• Allow pursuing breadth and/or additional depth

• Track-specific elective options allow for interdisciplinary work

Biocomputation track: Genomics, Dynamic Models in Biology

Graphics track: Studio Art, Psychology of Vision, Digital Photography

HCI track: Needs Finding, Psychology of Perception, Cognition

Page 24: Computer Science Curricula for the Coming Decade Mehran Sahami Computer Science Department Stanford University sahami@cs.stanford.edu University Course

Revised Curricular Structure: Capstone

Theory

Systems

• “Senior project” capstone course

• Developing capstone courses to parallel tracks

• Both application development and research options

1 Course

Page 25: Computer Science Curricula for the Coming Decade Mehran Sahami Computer Science Department Stanford University sahami@cs.stanford.edu University Course

Acknowledgment of Everyone Involved

Curriculum Committee

• Jerry Cain• Bill Dally• Vladlen Koltun• Phil Levis• John Mitchell• Andrew Ng• Nick Parlante• Eric Roberts• Mendel Rosenblum• Mehran Sahami (Chair)• Julie Zelenski

• Alex Aiken• Serafim Batzoglou• Gill Bejerano • David Dill• Ron Fedkiw• Hector Garcia-Molina• Leo Guibas• Pat Hanrahan• Scott Klemmer• Daphne Koller• David Koslow• Jean-Claude Latombe• Marc Levoy• Chris Manning

• David Mazieras• Rajeev Motwani• Serge Plotkin• Bob Plummer• Vaughan Pratt • Tim Roughgarden• Claire Stager• Sebastian Thrun• Jennifer Widom• Terry Winograd • Patrick Young• Russ Altman • Many additional faculty

(email/informal meetings)

Beyond the Committee

Page 26: Computer Science Curricula for the Coming Decade Mehran Sahami Computer Science Department Stanford University sahami@cs.stanford.edu University Course

Broadening the Initiative

• Need for curricular reinvigoration not unique to Stanford– Several other schools considering/are moving in similar direction

• Notion of tracks is not new

• Novelty here is particular choice of core and flexible structuring

– Consulting with other schools engaged in curriculum revision• Cornell, Duke, Iowa State, Spelman College, Univ. of Washington,

Hong Kong Univ. of Science and Technology, UC Irvine, and others

– Smaller departments: can create tracks by partnering with other (large) programs/departments on campus

• Can experiences with curriculum revision be disseminated even more broadly?

The CS2013 Effort

Page 27: Computer Science Curricula for the Coming Decade Mehran Sahami Computer Science Department Stanford University sahami@cs.stanford.edu University Course

CS2013 – Computing Curriculum History

• Every decade, ACM and IEEE-Computer Society jointly sponsor a curricular volume on Computer Science– Aimed at providing modern curricular guidance for undergraduate

Computer Science programs internationally

– Previous volumes in 1968, 1978, 1991, and 2001

– Starting in 2001, volumes splits by disciplines:

– Computer Science (CS), Computer Engineering (CE), Information Systems (IS), Information Technology (IT), and Software Engineering (SE)

– “Interim” revision of CS volume was released in 2008

• Next full CS volume is set for release in 2013– Hence the name “CS2013”

– Work on this volume began in Fall 2010

Page 28: Computer Science Curricula for the Coming Decade Mehran Sahami Computer Science Department Stanford University sahami@cs.stanford.edu University Course

CS2013 Charter

To review the Joint ACM and IEEE/CS Computer Science volume of Computing Curricula 2001 and the accompanying interim review CS 2008, and develop a revised and enhanced version for the year 2013 that will match the latest developments in the discipline and have lasting impact.

 

The CS2013 task force will seek input from a diverse audience with the goal of broadening participation in computer science. The report will seek to be international in scope and offer curricular and pedagogical guidance applicable to a wide range of institutions. The process of producing the final report will include multiple opportunities for public consultation and scrutiny.

Page 29: Computer Science Curricula for the Coming Decade Mehran Sahami Computer Science Department Stanford University sahami@cs.stanford.edu University Course

CS2013 Steering Committee

ACM• Mehran Sahami, Chair (Stanford)

• Andrea Danyluk (Williams College)

• Sally Fincher (Univ. of Kent)

• Kathleen Fisher (Tufts University)

• Dan Grossman (Univ. of Washington)

• Beth Hawthorne (Union County Coll.)

• Randy Katz (UC Berkeley)

• Rich LeBlanc (Seattle Univ.)

• Dave Reed (Creighton)

IEEE-CS• Steve Roach, Chair (UT, El Paso)

• Ernesto Cuadros-Vargas (Universidad Católica San Pablo, Peru)

• Ronald Dodge (US Military Academy)

• Robert France (Colorado State)

• Amruth Kumar (Ramapo College of NJ)

• Brian Robinson (ABB corporation)

• Remzi Seker (U. of Arkansas, Little Rock)

• Alfred Thompson (Microsoft)

Page 30: Computer Science Curricula for the Coming Decade Mehran Sahami Computer Science Department Stanford University sahami@cs.stanford.edu University Course

High-Level Themes of CS2013 Effort

• “Big Tent” view of Computer Science– “Outward” looking view of the field

– Able to bridge to multi-disciplinary work (“Computational X”)

• Managing curriculum size– Aim to not increase required hours from CC2001

– Greater flexibility with respect to local needs/resources

• Course exemplars as opposed to stylized courses– Pointers to existing courses that incorporate knowledge units

– Not creating a set of reference classes

• Be aware of institutional needs– Variable goals, resources, and constraints

– Variety of school sizes, school types, and available resources

Page 31: Computer Science Curricula for the Coming Decade Mehran Sahami Computer Science Department Stanford University sahami@cs.stanford.edu University Course

Principles for CS2013

1. Identify essential skills and body of knowledge for CS undergraduates.

2. CS is rapidly changing field, drawing from and contributing to variety of disciplines. Must prepare students for lifelong learning.

3. CS2013 is serving many constituents, including: faculty, students, administrators, curricula developers, and industry.

4. Curricular guidelines must be relevant to a variety of institution types (large/small, research/teaching, 4-yr/2-yr, US/int’l)

5. Provide guidance for level of mastery for topics, and show exemplars of fielded courses covering topics.

6. Provide realistic, adoptable recommendations that support novel curricular designs, and attract full range of talent to field.

7. Should include professional practice (e.g. communication skills, teamwork, ethics) as components of undergraduate experience.

Page 32: Computer Science Curricula for the Coming Decade Mehran Sahami Computer Science Department Stanford University sahami@cs.stanford.edu University Course

Planned Contents of Volume

• Guiding principles and rationale

• Body of knowledge– Topically organized set of “Knowledge Areas”

– Knowledge Areas provide list of topics and learning outcomes

• Curricular structure– Guidance on how Body of Knowledge translates into curriculum

– Institutional challenges

• Professional considerations– Characteristics of CS graduates

– Professional practice

• Curricular exemplars– Pointers to and discussion of example curricular/courses

reflecting diverse ways of covering the Body of Knowledge

Page 33: Computer Science Curricula for the Coming Decade Mehran Sahami Computer Science Department Stanford University sahami@cs.stanford.edu University Course

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

Page 34: Computer Science Curricula for the Coming Decade Mehran Sahami Computer Science Department Stanford University sahami@cs.stanford.edu University Course

Type of School

Page 35: Computer Science Curricula for the Coming Decade Mehran Sahami Computer Science Department Stanford University sahami@cs.stanford.edu University Course

Size of School

Page 36: Computer Science Curricula for the Coming Decade Mehran Sahami Computer Science Department Stanford University sahami@cs.stanford.edu University Course

How CC2001/CS2008 Were Used (%)

Page 37: Computer Science Curricula for the Coming Decade Mehran Sahami Computer Science Department Stanford University sahami@cs.stanford.edu University Course

Importance of Knowledge Areas

Page 38: Computer Science Curricula for the Coming Decade Mehran Sahami Computer Science Department Stanford University sahami@cs.stanford.edu University Course

Importance of Topics

Page 39: Computer Science Curricula for the Coming Decade Mehran Sahami Computer Science Department Stanford University sahami@cs.stanford.edu University Course

Suggested Topics (% of Suggestions)

Page 40: Computer Science Curricula for the Coming Decade Mehran Sahami Computer Science Department Stanford University sahami@cs.stanford.edu University Course

Knowledge Areas in CS2013

• AL - Algorithms and Complexity • AR - Architecture and Organization • CN - Computational Science • DS - Discrete Structures • GV - Graphics and Visual Computing • HC - 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 and Professional Issues

Page 41: Computer Science Curricula for the Coming Decade Mehran Sahami Computer Science Department Stanford University sahami@cs.stanford.edu University Course

Body of Knowledge Update (Part 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.

Page 42: Computer Science Curricula for the Coming Decade Mehran Sahami Computer Science Department Stanford University sahami@cs.stanford.edu University Course

Body of Knowledge Update (Part 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

Page 43: Computer Science Curricula for the Coming Decade Mehran Sahami Computer Science Department Stanford University sahami@cs.stanford.edu University Course

Curricular Organization (Part 1)

• Three-tiered classification of Body of Knowledge Units– Core (Tier 1): absolutely essential topics, all of which are

required for any undergraduate CS program

– Core (Tier 2): important foundational topics, the vast majority (80-90%) of which should be in an undergrad CS program

• Still considered “Core” topics

• Tiering allows for flexibility to locally customize curricula

– Elective: additional topics that can be included to complete an undergraduate CS program

Page 44: Computer Science Curricula for the Coming Decade Mehran Sahami Computer Science Department Stanford University sahami@cs.stanford.edu University Course

Curricular Organization (Part 2)

• Provide guidance on depth of coverage for topics in each Knowledge Area– 3 levels of depth: Knowledge, Application, and Evaluation

– Knowledge: know what it means

– Application: can apply concept (e.g., write the code to use it)

– Evaluation: can compare/contrast/select appropriate method/strategy for different situations

• Provide pointers to actual exemplar courses and curricula to show pathways for implementing Body of Knowledge– Replaces definitions of stylized courses in previous reports

Page 45: Computer Science Curricula for the Coming Decade Mehran Sahami Computer Science Department Stanford University sahami@cs.stanford.edu University Course

CS2013 Website

• Website: cs2013.org– Plan to use this as means for (draft) report dissemination and

engage community

• Developed survey to engage community in refining characteristics they believe CS graduates should have

– Helps refine outcome-driven goals of report

– On-line survey available at cs2013.org web site (click the “Characteristics of CS Graduates Survey” link)

• First “Strawman” report to be published by Feb. 2012

– Community comment and debate is encouraged

Page 46: Computer Science Curricula for the Coming Decade Mehran Sahami Computer Science Department Stanford University sahami@cs.stanford.edu University Course

Timeline (Going Forward)

• Feb 2012: Strawman draft (alpha) public release– Email launch to community

• Mar 2012: SIGCSE-12 Panel– In-person launch to community

• Mar 2012-Mar 2013– Engaging various communities for feedback

– Indentifying/mapping exemplar curricula/courses

– Work toward Stoneman draft

• Mar 2013: Stoneman draft (beta) release

• Aug 2013: Final release (general availability)

Page 47: Computer Science Curricula for the Coming Decade Mehran Sahami Computer Science Department Stanford University sahami@cs.stanford.edu University Course

Final Thoughts

• CS enrollments are affected by many factors

– Students’ economic perceptions of the field have significant influence on their decision making

– Curricular appeal can serve as accelerant for enrollment growth

• Health of Computer Science programs and health of economy are bi-directionally linked

– Perceived weakness in high-tech business sector can suppress CS enrollments

– But sustained weakness in production of IT workers will also suppress economic growth

The work of our community can be a significant factor in positively impact these trends

Page 48: Computer Science Curricula for the Coming Decade Mehran Sahami Computer Science Department Stanford University sahami@cs.stanford.edu University Course

Thank you for your attention

Questions/Feedback