Personal tools
You are here: Home Resources CS 2001 Chapter1

Chapter1

 

Computing Curricula 2001
Computer Science Volume

 

Chapter 1
Introduction

In the fall of 1998, the Computer Society of the Institute for Electrical and Electronic Engineers (IEEE-CS) and the Association for Computing Machinery (ACM) established the Joint Task Force on Computing Curricula 2001 (or CC2001 for short) to undertake a major review of curriculum guidelines for undergraduate programs in computing. The charter of the task force was expressed as follows:

To review the Joint ACM and IEEE/CS Computing Curricula 1991 and develop a revised and enhanced version for the year 2001 that will match the latest developments of computing technologies in the past decade and endure through the next decade.

As indicated in our charter, the goal of the CC2001 effort is to revise Computing Curricula 1991 so that it incorporates the developments of the past decade. That task has proved much more daunting than we had originally realized. Computing has changed dramatically over that time in ways that have a profound effect on curriculum design and pedagogy. Moreover, the scope of what we call computing has broadened to the point that it is difficult to define it as a single discipline. Past curriculum reports have attempted to merge such disciplines as computer science, computer engineering, and software engineering into a single report about computing education. While such an approach may have seemed reasonable ten years ago, there is no question that computing in the 21st century encompasses many vital disciplines with their own integrity and pedagogical traditions.

1.1 Overall structure of the CC2001 series

In light of the broadening scope of computing -- and because the feedback we received on our initial draft strongly encouraged us to move in this direction -- we have chosen to divide the CC2001 report into several volumes. This volume focuses specifically on computer science. To encompass the many other disciplines that are part of the overall scope of computing and information technology, however, IEEE-CS and ACM have created additional committees to undertake similar efforts in other areas, including computer engineering, software engineering, and information systems.

Once the individual reports have been completed, representatives from all the disciplines will come together to produce an overview volume that links the series together. That overview volume will contain definitions of the various computing disciplines along with an assessment of the commonalities that exist in the curricular approaches. The structure of the series as a whole is illustrated in Figure 1-1.

Figure 1-1. Overall structure of the CC2001 report

1.2 Overview of the CC2001 process

Developing the recommendations in this volume is primarily the responsibility of the CC2001 Task Force, the members of which are listed at the beginning of this report. Given the scale of the CC2001 project and the scope over which it extends, it was necessary to secure the involvement of many other people, representing a wide range of constituencies and areas of expertise. To ensure the broad participation necessary for success in a project of this kind, the task force established a total of 20 focus groups, divided into two distinct categories: Knowledge Focus Groups (KFGs) and Pedagogy Focus Groups (PFGs).

1.2.1 Knowledge focus groups (KFGs)

Early in its history, the CC2001 Task Force identified a set of 14 areas that together represented the body of knowledge for computer science at the undergraduate level, as shown in Figure 1-2. For each of these areas, the task force appointed a knowledge focus group composed of people with expertise and teaching experience in that domain. The charge to each KFG was to prepare a report on the area from which the task force could assemble the complete CS body of knowledge. Additional details on this aspect of the process appear in Chapter 5 and Appendix A.

Figure 1-2. The 14 knowledge focus groups

Discrete Structures (DS) Human-Computer Interaction (HC)
Programming Fundamentals (PF) Graphics and Visual Computing (GV)
Algorithms and Complexity (AL) Intelligent Systems (IS)
Architecture and Organization (AR) Information Management (IM)
Operating Systems (OS) Social and Professional Issues (SP)
Net-Centric Computing (NC) Software Engineering (SE)
Programming Languages (PL) Computational Science (CN)

1.2.2 Pedagogy focus groups

Although the knowledge area focus groups are essential in terms of defining the body of knowledge in each subdiscipline, they are not in themselves sufficient. Because each group looks at the field of computer science through a lens that reflects a particular specialty area, the KFG structure does not encourage the development of a broad vision of the curriculum that focuses on crosscutting themes common throughout the discipline. To develop that more holistic perspective and to address a variety of questions that transcend the boundaries of the individual subdisciplines, the CC2001 Task Force established six pedagogy focus groups to consider curricular issues across computer science as a whole. These groups are listed, along with their specific charges, in Figure 1-3.

Figure 1-3. The six pedagogy focus groups and their charges

PFG1. Introductory topics and courses
a. Identify the goals of the first year of study.
b. Report on the strengths and weaknesses of the traditional programming-first approach.
c. Provide a short list of alternative approaches which have credibility in terms of meeting those goals.
d. Identify and/or develop one or more introductory course sequences that address the problem of dissimilar preparation of incoming students, do not rely on terminal service courses to discriminate among the various needs and backgrounds of students who are just beginning their undergraduate careers, and introduce computer science as a mainstream discipline that forms part of the academic core for a broad population of undergraduate students.
e. Present syllabi for a short list of options for the first year of computer science study that satisfy the goals in point (a) and that can serve as models for colleges and publishers.
 
PFG2. Supporting topics and courses
a. Specify a set of educational goals outside of traditional computer science that support undergraduate computer science education, such as mathematics, engineering, science, technical writing, public speaking, economics, project management, and so forth.
b. Identify a minimal list of supporting topics deemed essential to any undergraduate computer science curriculum regardless of the nature of the institution.
c. Present suggestions for additional supporting topics beyond that minimum that may vary depending on the type of institution, the populations an institution serves, and the number of courses which the institution is allowed to include in a program.
d. Develop specifications for one or more sets of non-CS courses that satisfy these goals.
e. Develop one or more models for satisfying some or all of these goals by integrating them into computing courses.
 
PFG3. The computing core
a. Given the specification of the CS core as input, develop a small number of curricular models that satisfy the core requirements. Each model should consist of a short list of courses (four or five courses beyond the introductory year of study), which would be required of every computer science graduate and which would be manageable by virtually every type of undergraduate program.
b. Develop at least one curricular model that is an alternative to the traditional approach of organizing programs around artifacts (e.g., courses in compilers, operating systems, and the like). Such models will consist of cross-cutting courses focused on fundamental concepts, principles, and skills.
c. Develop at least one curricular model that has the Internet as its unifying theme.
 

PFG4. Professional practices
a. Report on those aspects of professional practices that our graduates have (or should have) assimilated as a result of current curricula.
b. Report on what we do and do not know about supporting effective education in those professional practices.
c. Report on how these needs can be integrated into courses in the curriculum.
d. Report on industrial and internship work and its relationship to the development of professional practices.
e. Report on other aspects of professionalism (including ethical, social, legal and moral issues) and their relationship to the computer science curriculum.
 

PFG5. Advanced study and undergraduate research
a. Given the definition of the CS core, develop a specification of computer science education beyond the core that is necessary and sufficient for a undergraduate degree in computer science.
b. Develop a specification of the characteristics of graduates who have earned a four-year undergraduate degree.
c. Include a specification of courses in both traditional and nontraditional areas that may be important for modern undergraduate CS curricula.
d. Report on undergraduate research, including an evaluation of various existing models.
 

PFG6. Computing across the curriculum
a. Articulate "the core of the core" relevant to all citizens and to various families of academic disciplines.
b. Plan and develop a proper curriculum development effort that will address rigorously the challenge of computing curricula for non-CS majors, be appropriate to institutions other than traditional four-year universities (such as two-year community colleges in the United States), appeal to those from other computing-related disciplines, appeal to those academic disciplines that make significant use of computing.
c. Acknowledge that this is a crucial area but one for which we cannot unilaterally develop an adequate solution.
d. Acknowledge that this group's job is not to solve the problem but rather to plan, develop, and initiate a process that can and will lead to a solution.

The pedagogy focus groups were formed later in the process than the counterpart focus groups examining the knowledge areas. The work of the pedagogy focus groups, moreover, proved more difficult to carry out solely through electronic communication. With the support of a generous grant from the National Science Foundation, the CC2001 Task Force was able to convene a face-to-face meeting of the pedagogy focus groups in June 2000, which proved extremely valuable in developing the final reports.

1.2.3 Two-Year College Task Force

Following the release in early 2001 of a draft version of CC2001, the ACM Two-Year College Education Committee formed a joint ACM/IEEE-CS task force whose purpose was to formulate a parallel curriculum report for the two-year college setting. This task force undertook a very detailed examination of the draft CC2001 guidelines, focusing on the introductory computer science topics and associated learning objectives, the mathematics content, and electives at the introductory level. The CC2001 report was subsequently influenced by the work of the two-year college task force, and that work provided the basis for parallel introductory course sequences that foster greater compatibility between two-year and four-year curricula, thereby facilitating the transfer process.

1.3 Structure of the CC2001 computer science report

This volume of the CC2001 report looks specifically at computer science. The main body of the report consists of 13 chapters. Chapter 2 begins with a survey and analysis of past reports, focusing most closely on Computing Curricula 1991. Chapter 3 outlines the changes that have occurred in computer science since the publication of the CC1991 report and the implications that those changes have for curriculum design and pedagogy. In Chapter 4, we articulate a set of principles that have guided the development of CC2001 as we attempt to build on the strengths of our predecessors while avoiding some of the problems observed in the earlier reports. Chapters 5 and 6 present overviews of the computer science body of knowledge and the curriculum recommendations that are examined in detail in the appendices. Chapters 7 and 8 describe the courses and approaches we recommend at the introductory and intermediate levels of the curriculum, respectively. Because these courses alone do not constitute a complete undergraduate curriculum, Chapter 9 summarizes additional courses and topics that must be included as part of the academic program. One important aspect of the complete curriculum involves the study of professional practice, which is discussed in Chapter 10. In Chapter 11, we outline a set of characteristics that define the successful computer science graduate. Chapter 12 looks at the problem of teaching computer science and computing-related skills to students in other disciplines. Finally, Chapter 13 offers strategic and tactical suggestions for addressing the institutional challenges that affect the implementation of this report.

The bulk of the material in the report appears in two appendices. Appendix A looks in detail at the body of knowledge for undergraduate computer science. Appendix B consists of full descriptions for the recommended courses that comprise the sample curricula. We hope that providing both the body of knowledge and course descriptions helps departments to create effective curricula more easily than using either of these sources alone.


CC2001 Report
December 15, 2001
Document Actions