Computer Organization and Systems

Download Report

Transcript Computer Organization and Systems

Computer Science Curricula
for the Coming Decade
Mehran Sahami
Computer Science Department
Stanford University
[email protected]
University Course Forum of Computer Science - 2011
Most Famous Chart in CS Education in US
Source: CRA Taulbee Survey
But recently seeing growth again...
CS Major Enrollments Per Department
The Data From Stanford
CS major declarations
180
160
140
120
100
80
60
40
20
0
1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007
A Slightly More Well Known Graph
NASDAQ composite index
4500
4000
3500
3000
2500
2000
1500
1000
500
0
1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007
Source: Yahoo! finance
The Obvious Correlation
• Normalize both graphs by 1998 values
– Adjust for a one year lag time in declarations
CS major declarations
NASDAQ composite index
2.5
Correlation = 0.61
2
1.5
1
0.5
0
1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006
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
CS major declarations
NASDAQ composite index
2.5
Correlation
Correlation
up to= 2003
0.61 = 0.88
2
1.5
1
0.5
0
1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006
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 2018
Source: US Bureau of Labor Statistics, 2010.
• Need to create awareness of “CS in the large”
– CS is increasingly fundamental to work in other fields
Understanding Supply Versus Demand
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!
Impact of New Curriculum at Stanford
Additional
29% increase
41% increase
83%
increase
over two
years
In 2008-09 new
CS curriculum
went into effect
Increasing the Footprint of CS
Databases
Data mining
Hardware
Robotics
Machine Learning
Distributed Systems
Networking
Natural Language
Systems
AI
Security
Comp. Bio.
Theory
HCI
Graphics
Comp. Economics
Geometric Comp.
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.
Footprint of CS Students Saw Previously
Databases
Data mining
Hardware
Robotics
Machine Learning
Distributed Systems
Networking
Natural Language
Systems
AI
Security
Comp. Bio.
Theory
HCI
Graphics
Comp. Economics
Geometric Comp.
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.
Tracks Allow More Depth...
Databases
Data mining
Hardware
Robotics
Machine Learning
Distributed Systems
Networking
Natural Language
Systems
AI
Security
Comp. Bio.
Theory
HCI
Graphics
Comp. Economics
Geometric Comp.
Algorithms
Total amount of material covered must remain the same
...in a More Diverse Set of Areas
Databases
Data mining
Hardware
Robotics
Machine Learning
Distributed Systems
Networking
Natural Language
Systems
AI
Security
Comp. Bio.
Theory
HCI
Graphics
Comp. Economics
Geometric Comp.
Algorithms
Total Potential Footprint is Larger
Databases
Data mining
Hardware
Robotics
Machine Learning
Distributed Systems
Networking
Natural Language
Systems
AI
Security
Comp. Bio.
Theory
HCI
Graphics
Comp. Economics
Geometric Comp.
Algorithms
Core material everyone sees is streamlined to accommodate
“Big Tent” Computer Science
Databases
Data mining
Hardware
Robotics
Machine Learning
Distributed Systems
Networking
Natural Language
Systems
AI
Security
Design
Comp. Bio.
Theory
HCI
Graphics
Comp. Economics
Geometric Comp.
Algorithms
Biology
Revised Curricular Structure: Core
Theory Core: 3 Courses
• Mathematical foundations of CS
• Probability theory for computer
scientists
• Data structures and algorithms
Systems Core: 3 Courses
• Programming methodology and
abstractions
• Computer organization and
systems
• Principles of computer systems
and networks
Theory
Systems
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
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
Revised Curricular Structure: Tracks
~4 Courses
• 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
Theory
Systems
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
Revised Curricular Structure: Electives
~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
Theory
Systems
Revised Curricular Structure: Capstone
1 Course
• “Senior project”
capstone course
• Developing capstone
courses to parallel
tracks
• Both application
development and
research options
Theory
Systems
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
Beyond the Committee
•
•
•
•
•
•
•
•
•
•
•
•
•
•
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)
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
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
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.
CS2013 Steering Committee
ACM
IEEE-CS
•
Mehran Sahami, Chair (Stanford)
•
Steve Roach, Chair (UT, 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 (U. of Arkansas, Little Rock)
•
Dave Reed (Creighton)
•
Alfred Thompson (Microsoft)
Robert France (Colorado State)
Amruth Kumar (Ramapo College of NJ)
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
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.
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
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
Type of School
120
100
80
60
40
20
0
Community C.
Undergrad College
Teaching U.
Research U.
Size of School
100
90
80
70
60
50
40
30
20
10
0
Less than 1K
1K-5K
5K-10K
more than 10K
How CC2001/CS2008 Were Used (%)
50
45
40
35
30
25
20
15
10
5
0
a. not at all
b. read it but
c. read it and d. tried to follow e. followed the
didn't pay much considered it as the guide but guide closely
attention to it
advice
made
substantial
changes
Importance of Knowledge Areas
5
4.5
4
3.5
3
2.5
2
1.5
1
0.5
0
Computational thinking]
Programming fundamentals
Data structures
Fundamental algorithms
OO Programming
Industrial languages
Software design
Recursion
Security
Concurrency
Software processes
Data representations
Network communications
Database theory
Logic/proofs
Professional ethics
Relational database design
Requirements engineering
Sets, relations, functions
Database Query languages
Complexity
OS file systems
OS scheduling a
Internet organization
V&V
Project management
Mobile computing
Prob & stats
Graphical User Interface
Graph theory
Imperative programming
User-centric software dev
Automata/Computability
Machine learning
Virtual machines
Mem arch/mgmt
Multimedia programming
Performance
Intelligent systems/robotics
Functional Programming
Graphics and visualization
Computational Science
Embedded systems
Prog. Lang. translation
Digital logic
Commercial tools
Logic programming
Game engine programming
History of computing
Computer vision
Importance of Topics
5
4.5
4
3.5
3
2.5
2
1.5
1
0.5
0
Suggested Topics (% of Suggestions)
25
20
15
10
5
0
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
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.
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
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
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
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
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)
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
Thank you for your attention
Questions/Feedback