Jump to ratings and reviews
Rate this book

Computer Science Curricula 2013: Curriculum Guidelines for Undergraduate Degree Programs in Computer Science

Rate this book
ACM and IEEE-Computer Society have a long history of sponsoring efforts to establish international curricular guidelines for undergraduate programs in computing on roughly a ten-year cycle, starting with the publication of Curriculum 68 over 40 years ago. This volume is the latest in this series of curricular guidelines. As the field of computing has grown and diversified, so too have the curricular recommendations, and there are now curricular volumes for Computer Engineering, Information Systems, Information Technology, and Software Engineering in addition to Computer Science. These volumes are updated regularly with the
aim of keeping computing curricula modern and relevant. The last complete Computer Science curricular volume was released in 2001 (CC2001) , and an interim review effort concluded in 2008 (CS2008).

This volume, Computer Science Curricula 2013 (CS2013), represents a comprehensive revision. The CS2013 guidelines include a redefined body of knowledge, a result of rethinking the essentials necessary for a Computer Science curriculum. It also seeks to identify exemplars of actual courses and programs to provide concrete guidance on curricular structure and development in a variety of institutional contexts.

Table of Contents

Chapter 1: Introduction
Overview of the CS2013 Process
Survey Input
High-level Themes
Knowledge Areas
Professional Practice
Exemplars of Curricula and Courses
Community Involvement and Website
Acknowledgments
References

Chapter 2: Principles

Chapter 3: Characteristics of Graduates

Chapter 4: Introduction to the Body of Knowledge
Knowledge Areas are Not Necessarily Courses (and Important Examples Thereof)
Core Tier-1, Core Tier-2, Elective: What These Terms Mean, What is Required
Further Considerations in Designing a Curriculum
Organization of the Body of Knowledge
Curricular Hours
Courses
Guidance on Learning Outcomes
Overview of New Knowledge Areas

Chapter 5: Introductory Courses
Design Dimensions
Mapping to the Body of Knowledge

Chapter 6: Institutional Challenges
Localizing CS2013
Actively Promoting Computer Science
Broadening Participation
Computer Science Across Campus
Computer Science Minors
Mathematics Requirements in Computer Science
Computing Resources
Maintaining a Flexible and Healthy Faculty
Teaching Faculty
Undergraduate Teaching Assistants
Online Education
References

Appendix A: The Body of Knowledge
Algorithms and Complexity (AL)
Architecture and Organization (AR)
Computational Science (CN)
Discrete Structures (DS)
Graphics and Visualization (GV)
Human-Computer Interaction (HCI)
Information Assurance and Security (IAS)
Information Management (IM)
Intelligent Systems (IS)
Networking and Communication (NC)
Operating Systems (OS)
Platform-Based Development (PBD)
Parallel and Distributed Computing (PD)
Programming Languages (PL)
Software Development Fundamentals (SDF)
Software Engineering (SE)
Systems Fundamentals (SF)
Social Issues and Professional Practice (SP)

Appendix B: Migrating to CS2013
Outcomes
Changes in Knowledge Area Structure
Core Comparison
Conclusions

Appendix C: Course Exemplars
Course Exemplar Template
CSCI 140: Algorithms, Pomona College
COS 226: Algorithms and Data Structures, Princeton University
CS 256 Algorithm Design and Analysis, Williams College
CSE332: Data Abstractions, University of Washington
CS/ECE 552: Introduction to Computer Architecture, University of Wisconsin
CS150: Digital Components and Design, University of California, Berkeley
CC152: Computer Architecture and Engineering, University of California, Berkeley
eScience, University of North Carolina at Charlotte
COSC/MATH 201: Modeling and Simulation for the Sciences, Wofford College
MAT 267: Discrete Mathematics, Union County College
CS103: Mathematical Foundations of Computer Science, Stanford University
CS109: Probability Theory for Computer Scientists, Stanford University
CS 250 - Discrete Structures I, Portland Community College
CS 251 - Discrete Structures II, Portland Community College
CS 175 Computer Graphics, Harvard University
CS371: Computer Graphics, Williams College
Human Aspects of Computer Science, University of York
FIT3063 Human Computer Interaction, Monash University
CO328: Human Computer Interaction, University of Kent
Human Computer Interaction, University of Cambridge
Human-Computer Interaction, Stanford University
Human Information Processing (HIP), Open University Netherlands
Software and Interface Design, University of Cambridge
Computer Systems Security (CS-475), Lewis-Clark State College
CS430: Database Systems, Colorado State University
Technology, Ethics, and Global Society (CSE 262), Miami University
CS 662; Artificial Intelligence Programming, University of San Francisco
Intelligenza Artificiale ( Artificial Intelligence), Politecnico di Milano
CMSC 471, Introduction ...

518 pages, ebook

First published January 1, 2013

4 people want to read

About the author

Ratings & Reviews

What do you think?
Rate this book

Friends & Following

Create a free account to discover what your friends think of this book!

Community Reviews

5 stars
1 (33%)
4 stars
2 (66%)
3 stars
0 (0%)
2 stars
0 (0%)
1 star
0 (0%)
Displaying 1 of 1 review
Profile Image for Alejandro Teruel.
1,324 reviews252 followers
August 16, 2018
If you are at all interested in Computer Science education, you need to take the time to at least skim through these guidelines. The ACM-IEEE Computer Society guidelines are, in my opinion, the most important curricular guidelines in Computer Science ever since they started being published in 1968.

In 2001 the ACM, IEEE Computer Society and AIS agreed to work on curricular guidelines for four different disciplines Computer Science, Software Engineering, Information Systems, and Information Technology (IT). They later added two more disciplines, Computer Engineering (2004), and Cybersecurity (2017) and recognized the existence of a number of Computational Sciences. Up till then as far as ACM and IEEE CS were concerned, Information Systems and, to a lesser degree, IT were considered knowledge areas in Computer Science, as were Artificial Intelligence or Operating Systems. The Association for Information Science (AIS) had long considered Information Systems and IT separate disciplines, so 2001 was a curricular watershed year. The actual curricular recommendations for the first four disciplines were developed roughly over the following five years.

The 2013 Computer Science curricular recommendations includes six chapters:
1. Introduction, which provides an overview of the curricular recommendations development process;

2. Principles, which briefly states ten general principles underlying the curricular recommendations;

3. Characteristics of Graduates, which states eleven general characteristics and competencies expected of Computer Science graduates;

4. Introduction to the Body of Knowledge, which is a key chapter which states the knowledge areas which make up the body of knowledge, explains the difference between Tier-1 Core, Tier-2 Core, and elective knowledge units in the knowledge areas, the meaning of the hours associated with the knowledge units, three levels of mastery of knowledge units learning outcomes (familiarity, usage, and assessment) and the flexibility with which a curriculum may be put together. The names of the 18 knowledge areas are stated, but they are detailed and explained in appendix A. The distinction between Tier-1 and Tier-2 core hours is new to these curricular recommendations and is an attempt to permit some (limited) flexibility in core knowledge units;

5. Introductory Courses, provides a number of observations on the variety of curricular approaches to introductory Computer Science courses;

6. Institutional Challenges spans several issues on the pragmatics of setting up a Computer Science curriculum at a higher-education institute, ranging from obvious issues such as computing, faculty and other teaching resources, as well as brief notes on online education, broadening participation, Computer Science minors and mathematics requirements in Computer Science (apart from Discrete Math, which is one of the 18 Knowledge Areas).
The recommendations also include four appendices
A. The Body of Knowledge: A key part of the recommendations which details each of the 18 knowledge areas;

B. Migrating to CS2013, which includes some observations on updating from previous curricular recommendations;

C. Course Exemplars: A detailed and fascinating set of over 80 example Computer Science courses at different universities showing how and why they put together tier 1, tier 2 and elective knowledge units, frequently from different Knowledge Areas. The appendix includes courses not only from colleges and universities in the U.S.A. but also from Europe, Australia, Canada and China.

D. Curricular Exemplars: Briefly shows how four US institutions (Stanford University, Williams College, Grinnell College and Bluegrass Community and Technical College put together Computer Science undergraduate programs from courses). After the breadth displayed in Appendix C, Appendix D is disappointing and comes across very much like a last minute afterthought.
As an experienced Computer Science faculty member, I was particularly interested in the appendices on knowledge areas (Appendix A) and course exemplars (Appendix C). The eighteen Knowledge Areas are worth stating:
- Algorithms and Complexity (AL)
- Architecture and Organization (AR)
- Computational Science (CN)
- Discrete Structures (DS)
- Graphics and Visualization (GV)
- Human-Computer Interaction (HCI)
- Information Assurance and Security (IAS)
- Information Management (IM)
- Intelligent Systems (IS)
- Networking and Communication (NC)
- Operating Systems (OS)
- Platform-Based Development (PBD)
- Parallel and Distributed Computing (PD)
- Programming Languages (PL)
- Software Development Fundamentals (SDF)
- Software Engineering (SE)
- Systems Fundamentals (SF)
- Social Issues and Professional Practice (SP)
The most striking, timely and interesting changes are, in my opinion, the introduction of two new knowledge areas:
- Information Assurance and Security (IAS);
- Platform-Based Development (PBD), which recognizes the increasing use of web and mobile platform-specific programming environments.
The curricular recommendations also highlight important knowledge unit repackaging in the following Knowledge Areas:
- Network and Communication (NC): In the previous recommendation (2008) there was a Net-Centric Computing Knowledge Area which has essentially been split and further extended into three Knowledge Areas, the two new areas (IAS, PBD) and this area which focuses more on topics in networking and communications;

- Parallel and Distributed Computing (PD): The topics in this Knowledge Area appeared previously mainly as electives scattered across several knowledge areas -in these recommendations they have been brought together and the number of core hours in these topics increased.

- Software Development Fundamentals (SDF): A new knowledge area only by virtue of repackaging knowledge units from Programming Languages, Algorithms and Complexity, and Software Engineering.

- Systems Fundamentals (SF): Another exercise in repackaging, this times from Architecture and Organization, Net-Centric Computing, and Operating Systems.
In my opinion, the knowledge area on Computational Science sticks out and has not been smoothly integrated into the rest of the curricular recommendations -evidently if your curriculum emphasizes the “Science” in Computer Science, then foundations and/or links to Computational Sciences are important. The “hard science” foundations of Computer Science lie in the study of Algorithms and Complexity, Artificial Intelligence, and Numerical Analysis, whereas if your curriculum emphasizes the development of “useful” software, you are probably moving into the grey area where Computer Science intersects with Software Engineering and you need to look more at issues in “soft sciences” like psychology, sociology, economics and management science. The complete absence of Information Systems and IT, even as elective knowledge units is striking -it is true that since 2001 ACM and IEEE Computer Society considers them to be separate disciplines, but they also consider Software Engineering, Computer Engineering, and Computational Sciences as separate disciplines, without tearing out all references to common topics.

The absence of knowledge units in Statistics in almost all, if not all curricular recommendations in CS, never ceases to surprise me. For me Statistics and Data Bases are two sides of the same coin, if one studies how to store volumes of data, the other studies how to make sense of it. Knowledge units from Probability are included in Discrete Math, why not include knowledge units from Statistics somewhere, especially in view of developments in Data Mining and Big Data.

I feel it is also important to underline the developments included for the Social Issues and Professional Practices knowledge area. These deserve particularly close study.

Finally, some thoughts on Appendix C (Course Exemplars) are in order. Most of the exemplars which illustrate areas like Discrete Math, Algorithms and Complexity, Architecture and Organization, and Software Engineering, to mention but a few show patterns of predictable variation. The challenge of selecting the best introductory programming paradigm(s) appears to continue stuck basically between object-oriented and functional programming paradigms. A few courses continue to study how close to the introductory courses you can cover parallel and distributed concepts, but, in my opinion, the most surprising and wide variation of knowledge unit coverage is in Human-Computer Interaction -I heartily recommend studying the different course exemplars covering these topics.

As usual, ACM and IEEE Computer Society’s joint curricular recommendations are well worth reading, analyzing and pondering, especially if you are a CS related faculty member, a CS student or a CS graduate wondering about your future. Oh, and a friendly reminder: the next curricular recommendations for Computer Science are due in 2020...
Displaying 1 of 1 review

Can't find what you're looking for?

Get help and learn more about the design.