Draft of an article to appear in ACM
28(4), December 1996. Copyright ©
1996 by the Association for Computing Machinery, Inc.
See the permissions statement below.
Allen B. Tucker
Abstract: This report identifies major issues and challenges in computer science education across a wide range of institutions. It includes suggestions for improving the quality and effectiveness of computer science and engineering education at the undergraduate, graduate, and K-12 levels. It argues strongly for the creation of a Resource Center for the development and distribution of computer science and engineering curricular materials, educational tools, and other support that could be shared by many institutions.
Categories and Subject Descriptors: K.3.2 [Computing Milieux]: Computer and Information Science Education
Academia and computing technology are both changing rapidly.
Public support for universities and the traditional balance between
research and teaching have come under increased scrutiny and criticism.
At the same time, modern society grows ever more dependent on computing
technology and and many sectors of science and industry anticipate ongoing
shortages of well-trained computer scientists and engineers.
The distance between the foundations of computing and its research and application frontiers is considerably shorter than in many other fields. As a result, the curriculum in computer science and engineering (CS&E) faces constant evolutionary pressure to integrate new critical developments. The rapid changes in technology, however, also affect the process of educational delivery. Recent advances in networking and graphics, for example, make it possible to develop effective pedagogical tools that can be shared among many different educational institutions.
CS&E educators must play a key role in responding to these changes. To remain effective, CS&E education must evolve in both method and content as our discipline progresses. Educators need to champion new technologies that increase the quality of education, provide opportunities to a wider class of students, and prepare graduates to participate in the development of technologies that ensure the safety, privacy, empowerment, and competencies of future citizens. Meeting this challenge will require fundamental changes in the way in which faculties represent the principles and practice of CS&E, at all educational levels.
Education in computer science and engineering has been an active area
throughout much of the 50-year history of the discipline.
Particularly since the establishment of the first computer science
departments in the mid 1960s, considerable attention has been paid to
the challenge of training students in this rapidly evolving field.
In 1968, the ACM published an extensive report on the computer science curriculum entitled Curriculum 68 [ACM68]. That report was subsequently updated in two reports issued at approximately 10-year intervals: Curriculum 78 [ACM78] and Curricula 91 [ACM/IEEE91]. The IEEE Computer Society (IEEE-CS) published an independent curriculum for computer science and engineering in 1983 [EAB83], and subsequently collaborated with the ACM on the Curricula 91 report. In addition, various organizations have issued several additional reports covering such issues as computer science in liberal arts colleges [Gibbs86, Walker96], the structure of the introductory courses [Koffman84, Koffman85], standards for accreditation [Mulder84, CSAB87], and secondary school curricula [ACM93, AP96].
Each year since 1970, the ACM Special Interest Group in Computer Science Education (SIGCSE) has held a symposium that attracts an increasingly larger audience over the year before. Computer science education has also proved a lively topic of discussion in Communications of the ACM, e.g., [Denning81, Denning84, Dijkstra89, Abelson95], as well as other computing forums.
One of the important strengths of the computer science education community is its willingness to experiment with diverse models of education. This diversity is most easily recognized in the design of the introductory curriculum, in which successful courses have been designed using each of the following models, in addition to the traditional one that emphasizes problem solving and programming:
Experimentation and development occurs at other levels of the curriculum as well. The Software Engineering Institute at Carnegie Mellon University, for example, has developed an entire undergraduate curriculum in software engineering [Ford90, Shaw90]. Faculty at many institutions have also created programs that can serve as models for computer science education in other schools.
Overall, the continuing importance of education as a strategic area in computer science and engineering (CS&E) research is reaffirmed both in the 1992 report Computing the Future [CSTB92], and by its appearance as a distinct subject area in the 1996 SDCR Workshop [SDCR96].
3. Areas of concern in CS&E education
The topic of education in computer science and engineering is too large
to consider all at once.
To make the topic manageable, our working group chose to distinguish the
following five areas:
These areas are considered individually in the following subsections.
3.1 General curriculum issues
Computer science remains a rapidly evolving discipline [Tucker96], which places
considerable pressure on the CS&E curriculum.
The emergence of new tools, techniques, and paradigms forces a continual
reevaluation of the topics covered and the pedagogical approaches used.
Maintaining an up-to-date curriculum is particularly difficult for
institutions because the
pace of change in the discipline is so fast.
As a result, the CS&E curriculum quickly becomes outdated as the
One indication of obsolescence in the curriculum is the fact that many important topics have yet to find a niche in the core curriculum offered at many institutions. Examples of such topics include the object-oriented paradigm for problem solving, parallelism, networks, human-computer interaction, software design, software safety, and the social impact of technology. One way to address the lack of attention paid to these issues would be to update the knowledge units in Curricula 91 [ACM/IEEE91] so that they incorporate such contemporary core topics and themes, while eliminating concepts that have become outdated. Given that the ACM/IEEE-CS curriculum reports have traditionally been published only once in every decade, it is critical to establish a more responsive process that would allow the integration of new principles and artifacts soon after they emerge. A similar process for continually identifying and eliminating obsolescent topics from the core curriculum is also needed.
Because of the rapid pace of change in the discipline, it is imperative that computer science institutions develop better mechanisms for sharing educational resources. There is far too much reinvention and too little synergy throughout the educational community. For example, the proliferation of nearly-identical CS1 texts wastes time and creates too many low-quality results. We need to develop new mechanisms by which successful course materials can be more widely and economically shared.
As a possible starting point, the SIGCSE Web page [SIGCSE96] and the NSF Computer Science Courseware [NSF96] repository contain links to information on a variety of course materials that are available at different institutions. Some recent textbooks have similarly advised instructors about how to download supporting software and laboratory materials for use in their courses.
Although the World-Wide Web provides the underlying technology for sharing resources, such a system would not be effective without some level of more centralized support. If each institution simply publishes its materials independently, there will be no easy way for others to find the right materials in the vastness of the Web or to have any assurance about their quality. To create an effective repository, someone (or more likely, some group or agency) must take on the role of reviewer, both to filter the materials to a more manageable collection and to ensure that a high-level of quality is maintained.
3.2 Undergraduate education
Different institutions have different educational priorities and
constituencies, and must therefore shape their programs accordingly.
Some are driven more by industry's needs, while others are driven more
by the general goals of liberal arts and science education.
Because of these differences, there is no common model that applies in all institutions. Despite those differences, there are nonetheless several problems that affect a wide range of institutions offering undergraduate programs in computer science. These problems are identified in the following paragraphs.
Too many institutions value research and fundraising by faculty at the expense of sound and effective teaching. The relationship between education and research must be reexamined by college and university faculties, as well as the entire profession. New interactions between research, education, and industry are needed, so that students, faculty, and computing practitioners can maximize the utility of education throughout the broad range of intellectual and practical interests that it serves. Standards for promotion and tenure must change to make teaching an exciting and higher-priority activity for faculty, alongside research and consulting. To this end, institutions must find ways to recognize and value faculty efforts toward pedagogical and curriculum innovation, especially when it has broad impact at other institutions.
Because computer science changes so rapidly, it is imperative that faculty remain actively engaged in the discipline via a continuing scholarly activity throughout their careers. Depending on the institution and the individual, this might mean conducting research in traditional areas, developing new courses or teaching materials based on recent progress in the discipline, or conducting research in "nontraditional" areas such as curriculum and teaching methodologies themselves. Institutions that strongly emphasize teaching must moderate their teaching loads and increase their real support for scholarly activities such as these. Opportunities for continued faculty development should be provided through short courses and tutorials, which would be available at conferences and in summer workshops. Internships in industry or research-oriented university settings should also be available, so that faculties at teaching-oriented institutions can remain current.
Many institutions give insufficient consideration to the needs of industry, which employs most of the graduates in CS&E. Undergraduate course design should take into account the requirements of industry while maintaining a commitment to sound pedagogical practice. The introductory courses should emphasize fundamental principles in the discipline, while advanced courses should often have applications as a strong theme. The breadth of the discipline should be taught early in the curriculum, but not at the expense of a solid introduction to programming that incorporates problem solving, software engineering, and design. Hands-on design is an empowering and essential experience for all undergraduates. A senior-level design course or capstone research experience should be required for all undergraduate majors [Cupper96]. Such a course should aim to give students hands-on experience with solving a significant real-world problem or confronting a contemporary research issue.
Topics in the theory of computing need to be integrated with practical topics in the curriculum at all levels, beginning with the first course. Examples include the discussion of semantics in programming languages, verification issues in software engineering, theory issues in databases, and unsolvability in algorithms. Faculties should also look for opportunities to repackage traditional subjects in the discipline, including theoretical concepts, and present them in new and engaging ways. Lab exercises and textbook examples should reflect the broadest range of student concerns and contemporary life experiences.
The management of large classes is a serious problem in many programs. Lectures alone, without student interaction in small groups and laboratories, are an inadequate learning mechanism for CS&E education.
Education and training of computer professionals should be more widely accepted as a regular part of the academy. While professional training is already an important mission of community colleges, many undergraduate programs should also provide practical courses for part-time and evening students, as appropriate to their individual missions and the needs of their local communities.
Because students come to CS&E with a wide range of learning styles and backgrounds, faculty should look for opportunities to develop teaching methods, lab materials, and technologies that appeal to as broad a collection of students as possible. We must view changes in pedagogy as opportunistically as we view changes in research specialties. CS&E educators have been slow to take advantage of new methods in teaching, and many of our current methods are not ideally suited to encouraging across-the-board new student interest in the field.
New curricula should be developed that stress the interactions between computer science and other disciplines. For instance, interdisciplinary major programs involving the natural sciences, economics, and psychology can be developed within the setting of a concentration in computer science. Some early progress of this sort is being made in the area of computational science [VanLoan96].
Service courses for nonmajors need to be strongly supported and continually upgraded. At many institutions, first courses serve the interests of a mixed audience of majors and nonmajors. The interests of nonmajors in the field of CS&E are increasingly strong and sophisticated. These interests ought to be recognized by the development of new course materials and effective teaching strategies [Kelemen96].
3.3 Graduate education
Priorities in Master's and Ph.D granting institutions are as varied as
those in undergraduate programs. Although graduate
departments do change curricula and courses, the nature of research-oriented
Ph.D. granting institutions requires that faculty stay abreast
of the most recent trends in their fields in order to be productive researchers
and move forward with tenure and promotion.
At the same time, the climate at institutions with graduate programs is changing. Government funding levels for research have significantly decreased and indications suggest that further reductions will occur. Universities may need to develop closer ties with industry to maintain appropriate levels of research funding in the future. These changes may engender changes in the educational and research missions of some CS&E graduate programs. Thus, CS&E graduate programs face several unique challenges which are identified in the paragraphs below.
New Ph.D.s will be increasingly employed by industry rather than academia. The most recent Taulbee Survey [Taulbee95] indicates that roughly 60% of new Ph.D.s are employed by industry and government rather than academia. At the same time, the number of positions available in CS&E departments decreased from 1994 to 1995 and has remained constant since then. In an era of fiscal retrenchment at the university level, it is reasonable to expect that the proportion of Ph.D.s employed by academia will decline. As academic departments develop closer ties with industry, this may affect course offerings and curricula. However, many Ph.D.s are hired by industry because of their ability to see a difficult project through to completion as much as for their expertise in a subject area. Thus, although there will be closer ties with industry, we see graduate education as a continuing source of strength for departments although funding may come from different sources.
Approximately 30% of new Ph.D.s who take positions in academia are hired by departments without graduate programs, and yet few are prepared for the particular balance of academic priorities that these departments value. Many universities with graduate programs are beginning to put an increased emphasis on educational initiatives as a source of funding, both because undergraduate tuition is a large portion of their budgets and because of increased pressure from students and external sources. Training in teaching and coping with new jobs requires more planning and resources than most PhD-granting departments currently provide. Departments must place a new emphasis on teaching these skills, both to their graduate students and to many of their own faculty.
Industry demand for MS degrees in computing will increase steadily. Although the number of Ph.D.-granting programs has not risen in recent years, more departments are offering Master's degrees, especially where local industry provides the demand. In response, course-only or non-thesis/non- project Master's degrees may become more common. Some departments will need to consider providing a different balance between research and applied activities, as research takes a smaller role in their programs. Professional education should thus be widely accepted as a regular part of the academy. Some graduate programs should provide courses for part-time and evening students, in accordance with the needs of their local communities. The audience for such courses would include industry professionals and educators whose technical knowledge needs to be updated or broadened in new directions.
3.4 K-12 education
The following issues apply specifically to the primary and secondary
school levels of computing education, although some of these ideas may
have relevance to the undergraduate curriculum as well.
No coherent secondary-school curriculum is widely implemented for the general population. In the natural sciences and mathematics, the high-school curriculum is relatively well established. We believe it is important to implement a similar curriculum for computer science that identifies the "great ideas" in the computing and how these ideas affect the world in which we live. It should follow the ideas presented in the ACM Model High School Curriculum [ACM93], which introduces the discipline broadly. The current AP curriculum [AP96] serves a more narrow purpose, and does not satisfy the need in this area.
No mechanisms exist to train teachers in the new technology or to keep them up to date with the field. The biggest obstacle to teaching computer science in secondary schools is the lack of teachers with the appropriate skills and training. A substantial effort in this area is needed to address the problem. Students with college exposure to computer science need to be encouraged to consider teaching as a career, and new programs need to be instituted that would offer new teachers the appropriate training at the beginning of their careers. Moreover, teacher training must be broad enough for them to understand -- and communicate to their students and the public -- that CS&E encompasses a much broader range of subjects than programming.
The difference between the technological "haves" and "have-nots" is huge. There is a massive imbalance between the educational opportunities available to students in different school systems. Students in affluent school systems have many more opportunities to learn about technology than their counterparts in poorer districts. Moreover, even within a single school system, the gap between educators and administrators who are comfortable with technology and those who are not is also wide. A major effort is needed to bring faculty and staff at all levels up to speed about computing technology, so that they can integrate it effectively into the widest range of curricular subjects.
New channels of communication and support are needed between college-level and pre-college educators. Activities like the ACM's undergraduate research award and high school programming contests need to be revitalized. New activities might include starting a high school-level computer science problems magazine, like the one for mathematics, or starting new in-service and pre-service summer courses in computer science for secondary school teachers.
3.5 Coordination within the education
There are many computer science education communities whose interests
are represented by different organizations, including the following:
AACE (advancement of
computing in education)
ACM Education Board
ACM SIGCSE (Computer Science Education)
ACM SIGGRAPH Education Committee
ACM SIGCUE (Computer Uses in Education)
ACM SIGACT Education Committee
ACM Pre-College Committee
CCSC (Consortium for Computing in Small Colleges)
CEEB (AP Curriculum Committee)
CRA (Graduate education, faculty issues)
EDUCOM (computing and technology in higher education)
IEEE-CS Educational Activities Board
IFIP TC3 (International undergraduate curriculum committee)
ISTE Computer Science Society (technology in secondary school education)
LACS (Liberal Arts Computer Science Consortium)
Although these communities have many common interests, they do not interact much at all. At the moment, the members of the ACM Education Board are appointed entirely at the discretion of its chair. As a result, few of these different educational interests are directly represented at the highest levels within ACM. We believe that the ACM Education Board should modify its charter to ensure representation from all constituencies and promote a higher level of interaction among them. Such a change would create a more visible, representative, and proactive board that could provide leadership for the ongoing process of improving the quality of computer science education at all levels.
The Education Board should also seek to create new communication channels so that shared curricular concerns can be more effectively discussed. Moreover, the SIGCSE program committee should have representatives from the secondary school community (including the AP), the graduate school community, and the professional education community, alongside the already-well-represented undergraduate community. The recent decision to switch from Pascal to C++ as the programming language for the AP course is an excellent example of an issue in which better channels for interconstituency communication might have had a profoundly beneficial effect [Abelson95].
4. Creating a center for CS&E education
As its title makes clear, one of the major goals of the workshop on
Strategic Directions in Computing Research [SDCR96] is for each working
group to identify directions of work in their own discipline that are
"strategic" in the sense that new investment in these areas would provide the
greatest medium-term leverage for advancing the area as a whole.
In seeking to apply this criterion to computer science education, our
working group concludes that the most important strategic direction is
to promote greater sharing of educational resources by exploiting the
power of modern computing technology.
In a sense, facilitating reuse of curricular developments and
educational software constitutes a grand challenge for the CS&E education, in
much the same way that reuse of software
remains a grand challenge for software engineering.
Our vision is to develop a distributed, Internet-based center, tentatively called the CS&E Education Center, that would collect and promote the distribution of materials relevant to computer science education. The services provided by the CS&E Education Center would include the following:
The audience for such courses would include people in the workplace who require continuing education; e.g., a course in Java and interactive Web software design, or a course in object-oriented programming. It would also include those handfuls of students, geographically dispersed, who need a course in a less-mainstream subject in the curriculum, such as compiler code generation and optimization. At the moment, it is difficult to mount such a course in any particular institution, due to limited local demand. A more detailed discussion of these ideas can be found in [Rada96].
A great deal of exploratory research is needed before this challenge can be effectively met. A central question is whether a CS&E Education Center can provide adequate and meaningful human interaction to support its educational functions. For instance, experts will need to answer student questions in a timely manner, as well as evaluate student work. The need for support will be great, both from public sources and from the industries that will benefit from these initiatives. Some new programs at the National Science Foundation (especially in the EHR Directorate) seem to be supporting explorations like the ones discussed above.
The establishment of a CS&E Education Center may emerge as an exciting, complex, and fundamentally important idea that can help ensure the future vitality and meaningful extension of computing education into the next millennium.
Education Working Group Members
Owen Astrachan, Duke University
Kim Bruce, Williams College
Robert Cupper, Allegheny College
Peter Denning, George Mason University
Scot Drysdale, Dartmouth College
Tom Horton, Florida Atlantic University
Charles Kelemen, Swarthmore College
Cathy McGeoch, Amherst College
Yale Patt, University of Michigan
Viera Proulx, Northeastern University
Roy Rada, Washington State University
Richard Rasala, Northeastern University
Eric Roberts, Stanford University
Steven Rudich, Carnegie Mellon University
Lynn Stein, MIT
Allen Tucker, Bowdoin College (Chair)
Charles Van Loan, Cornell University