Strategic Directions in Computer Science Education ALLEN B. TUCKER ET AL.1 Computer Science Department, Bowdoin College, Brunswick, ME 04011 ^
[email protected]; http://www.bowdoin.edu/;allen&
1. INTRODUCTION
Public support for universities and the traditional balance between research and teaching have each come under increased scrutiny and criticism. At the same time, modern society grows ever more dependent on computing technology 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
1
The SDCR Working Group Members include 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), and Charles Van Loan (Cornell University).
effective pedagogical tools and share them 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. 2. BACKGROUND
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 [ACM 1968]. That report was subsequently updated in two reports issued at approximately 10-year intervals: Curriculum
Permission to make digital / hard copy of part or all of this work for personal or classroom use is granted without fee provided that the copies are not made or distributed for profit or commercial advantage, the copyright notice, the title of the publication, and its date appear, and notice is given that copying is by permission of the ACM, Inc. To copy otherwise, to republish, to post on servers, or to redistribute to lists, requires prior specific permission and / or a fee. © 1996 ACM 0360-0300/96/1200–0836 $03.50
ACM Computing Surveys, Vol. 28, No. 4, December 1996
Computer Science Education
•
837
78 [ACM 1978] and Curricula 91 [ACM/IEEE 1991]. The IEEE Computer Society (IEEE-CS) published an independent curriculum for computer science and engineering in 1983 [Educational Activities Board 1983], 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 [Gibbs and Tucker 1986; Walker and Schneider 1996], the structure of the introductory courses [Koffman et al. 1984, 1985], standards for accreditation [Mulder and Dalphin 1984; CSAB 1987], and secondary school curricula [ACM 1993, College Entrance Examination Board 1996]. Each year since 1970, the ACM Special Interest Group in Computer Science Education (SIGCSE) has held a symposium that attracts an increasingly larger audience. Computer science education has also proved a lively topic of discussion in Communications of the ACM, for example, Denning [1981, 1984], Dijkstra [1989], and Abelson et al. [1995], 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.
—library-based programming [Roberts 1993] —object-oriented programming [Astrachan 1996; Conner et al. 1995; Decker and Hirschfield 1995] —theory [Rudich 1996]
—apprentice-style curriculum [Proulx et al. 1996; Rasala et al. 1994] —breadth-first curriculum [Tucker et al. 1995a, 1995b] —computational science [Van Loan et al. 1996] —computer organization [Patt 1996] —functional programming [Abelson et al. 1985] —interaction machines [Stein 1996]
These areas are considered individually in the following subsections.
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 [Ford 1990; Shaw 1990]. 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 in the 1992 report Computing the Future [CSTB 1992] and also by its appearance as a distinct subject area in the 1996 SDCR Workshop [ACM 1996a]. 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 these areas: (1) (2) (3) (4) (5)
general curriculum issues, undergraduate education, graduate education, K-12 education, and coordination within the education community.
3.1 General Curriculum Issues
Computer science remains a rapidly evolving discipline [Tucker and Wegner 1996], which places considerable pressure on the CS&E curriculum. The emergence of new tools, techniques, and paradigms forces a continual reevaluaACM Computing Surveys, Vol. 28, No. 4, December 1996
838
•
A. B. Tucker et al.
tion 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 subject matter and technology advance. 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/IEEE 1991] 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 [ACM 1996b] and the NSF Computer Science Courseware [National Science Foundation 1996] repository contain links to information on a variety of course materials that are ACM Computing Surveys, Vol. 28, No. 4, December 1996
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, 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, whereas others are driven more by the general goals of liberal arts and science education. Because of these differences, no common model 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 among 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
Computer Science Education to make teaching an exciting and higherpriority 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 this innovation 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 available at conferences and in summer workshops. Internships in industry and 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, and 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 re-
•
839
search experience should be required for all undergraduate majors [Cupper 1996]. 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. Faculty members 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 ACM Computing Surveys, Vol. 28, No. 4, December 1996
840
•
A. B. Tucker et al.
not ideally suited to encouraging acrossthe-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 [Van Loan 1996]. 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 [Kelemen 1996]. 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 researchoriented Ph.D.-granting institutions requires that faculty stay abreast of the most recent trends in their fields in order to be productive researchers. 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 that are identified in the following paragraphs. New Ph.D.s will be increasingly emACM Computing Surveys, Vol. 28, No. 4, December 1996
ployed by industry rather than academia. The most recent Taulbee Survey [Taulbee 1995] 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 as much for their ability to see a difficult project through to completion 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 Ph.D.granting departments currently provide. Departments must place a new emphasis on teaching these skills 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,
Computer Science Education course-only or non-thesis/nonproject 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 computing and shows how these ideas affect the world in which we live. It should follow the ideas presented in the ACM Model High School Curriculum [ACM 1993], which introduces the discipline broadly. The current AP curriculum [College Entrance Examination Board 1996] 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
•
841
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 highschool-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 Community
There are many computer science education communities whose interests are represented by different organizations, including AACE (advancement of computing in education), ACM Education Board, ACM SIGCSE (computer science education), ACM SIGGRAPH Education Committee, ACM SIGCUE (computer ACM Computing Surveys, Vol. 28, No. 4, December 1996
842
•
A. B. Tucker et al.
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), CSAB/CSAC (accreditation), 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), and 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 C11 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 [Abelson et al. 1995]. ACM Computing Surveys, Vol. 28, No. 4, December 1996
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 [ACM 1996] is for each working group to identify directions of work in its own discipline that are “strategic” in the sense that new investment in these areas would provide the greatest mediumterm 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 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. A resource center for course and curriculum development. At the core of the CS&E Education Center would be a centralized, Web-based repository of materials to support course and curriculum development, including publication of course and lab materials, a search/directory facility, and a certification process sponsored by an organization such as ACM. The repository would also include an ongoing electronic forum to discuss educational issues, curriculum concerns, interdisciplinary connections, and so forth. A repository of successful programming assignments and laboratory exercises. One of the most difficult aspects of teaching a programming-intensive course is putting together good assignments and laboratory exercises. Like
Computer Science Education programming itself, developing a good assignment requires considerable debugging; the quality of the assignment is enhanced significantly by responding to the experience students have solving earlier drafts. The best way to get a better return on the work invested in creating a good assignment is to share it with other institutions. Instructors at such institutions could search the repository for assignments that fit their own curricula and use the ones that best suit their own environments. A centralized test-question databank and scoring service. Many instructors would benefit from being able to select, adapt, and administer test questions from a central repository. In some cases, the questions might be implemented in a form that allows electronic administration and scoring over the Web, which would facilitate testing in distancelearning environments. The resource center might also offer a scoring service of some kind. A library of educational tools and demonstration software. Student understanding is enhanced tremendously by the use of well-designed educational tools and effective classroom demonstrations. Building such tools is timeconsuming, and it would be extremely useful if instructors who did not have time to produce such tools locally could take advantage of effective educational software produced elsewhere. In this area, the role of the CS&E Education Center would be twofold. First, as with the curriculum repository, the center would provide an editorial function, ensuring that the tools available through the repository were of a sufficiently high quality to be effective. Second, the center would provide some level of software support. Educational institutions and individual faculty members who create the educational tools cannot respond fully to the needs of a large external clientele; they are simply not equipped to function as a software company.
•
843
A clearinghouse for student opportunities. The CS&E Education Center could act as a clearinghouse for students seeking internships, summer research opportunities, postgraduate employment, fellowships, and graduate school options in computing. This information exists in different places now, but is generally not well organized or easily accessible. A “virtual university” to support distance education. The center could develop both the technology and the infrastructure to conduct courses remotely, including lectures, discussions, and laboratory components. A fully developed distance-education process would include certifiable study-from-home, virtual faculty or student exchange programs, virtual guest lectures, cooperative coursework among remote student groups, student-initiated courses (like those at MIT) with a remote instructor, virtual visits to libraries, research facilities, archives, remote internships with business/industry sponsors, in-service and pre-service courses for secondary school and college teachers at remotely located institutions, and so on. The audience for such courses would include people in the workplace who require continuing education; for example, 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 Rada [1996]. A storehouse of educational models for other disciplines. The development of computer-based models for the sciences is an emerging central theme in the new field of computational science. The CS&E Education Center would include ACM Computing Surveys, Vol. 28, No. 4, December 1996
844
•
A. B. Tucker et al.
as a curricular component the principles, methods, and examples for designing and building such models across a wide range of disciplines. Courses and independent projects would be offered that unite faculties and students in computing with faculties in those disciplines, in the interest of developing effective computational models in support of those disciplines’ own research and curricular interests. Some examples include the development of a virtual chemistry laboratory, a virtual archaeology dig, or a virtual stock-market model. 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 such as the one discussed here. 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. REFERENCES ABELSON, H., BRUCE, K., VAN DAM, A., HARVEY, B., TUCKER, A., AND WEGNER, P., WITH RESPONSE BY HORWITZ, S., APPEL, K., CUPRAK, T., KAY, D., NEVISON, C., SCHRAM, L., STEHLIK, M., AND ASTRACHAN, O. 1995. The first-course conundrum. Commun. ACM, (June). ABELSON, H., SUSSMAN, G. J., AND SUSSMAN, J. 1985. Structure and Interpretation of Computer Programs. MIT Press, Cambridge, MA. ACM 1968. Curriculum Committee on Computer Science. Curriculum 68: Recommendations for the undergraduate program in computer science. Commun. ACM (March).
ACM Computing Surveys, Vol. 28, No. 4, December 1996
ACM 1978. Curriculum Committee on Computer Science. Curriculum 78: Recommendations for the undergraduate program in computer science. Commun. ACM (March). ACM 1993. Task Force of the Pre-College Committee of the Education Board of the ACM. ACM model high school computer science curriculum. Commun. ACM (May). ACM 1996a. Workshop on Strategic Directions in Computing Research (MIT, June). http:// www.medg.lcs.mit.edu/sdcr. ACM 1996b. Special Interest Group on Computer Science Education (SIGCSE). Computer Science Education Links. http://www.ucs.usl. edu/;ram1335/edlinks.html. ACM/IEEE 1991. ACM/IEEE-CS Joint Curriculum Task Force. Computing Curricula 1991. ACM Press, New York. Abridged versions reprinted in Commun. ACM (June) and IEEE Computer (Nov.). ASTRACHAN, O. L. 1996. A Computer Science Tapestry: Exploring Computer Science and Programming with C11. McGraw-Hill, New York (to appear). Preliminary information is available from http://www.cs.duke.edu/;ola/ book.html. COLLEGE ENTRANCE EXAMINATION BOARD. 1996. Advanced Placement Computer Science Curriculum, Educational Testing Service. SCIENCES ACCREDITATION CSAB (COMPUTER BOARD). 1987. Criteria for accrediting programs in computer science in the United States. Tech. Rep., Jan. CSTB (COMPUTER SCIENCE AND TELECOMMUNICATIONS BOARD). 1992. Computing the Future: A Broader Agenda for Computer Science and Engineering. National Academy Press, Washington, DC. CUPPER, R. D. 1996. Capstone courses in computer science at Allegheny College. Presented at the 13th LACS Summer Meeting, Dartmouth College, July. DECKER, R. AND HIRSCHFIELD, S. 1995. The Object Concept: An Introduction to Computer Programming Using C11. PWS Publishing Company, Boston. DENNING, P. J. 1981. Eating our seed corn. Commun. ACM (June). DENNING, P. J. 1984. Educational ruminations. Commun. ACM (Oct.). DENNING, P. J., COMER, D. E., GRIES, D., MULDER, M., TUCKER, A. B., TURNER, A. J., AND YOUNG, P. R. 1989. Computing as a discipline. Commun. ACM (Jan.). DIJKSTRA, E. W. WITH RESPONSES BY PARNAS, D. L., SCHERLIS, W. L., VAN EMDEN, M. H., COHEN, J., HAMMING, R. W., KARP, R. W., AND WINOGRAD, T. 1989. On the cruelty of really teaching computer science. Commun. ACM (Dec.). EDUCATIONAL ACTIVITIES BOARD. 1983. The 1983 model program in computer science and engi-
Computer Science Education neering. Tech. Rep. 932, Computer Society of the IEEE, Dec. FORD, G. 1990. 1990 SEI report on undergraduate software engineering education. Software Engineering Institute Tech. Rep. CMU/SEI90-TR-3 (March). FREUND, S. AND ROBERTS, E. 1996. Thetis: An ANSI C programming environment designed for introductory use. In Proceedings of the Twenty-Seventh SIGCSE Technical Symposium on Computer Science Education (Philadelphia, Feb.). GIBBS, N. E. AND TUCKER, A. B. 1986. Model curriculum for a liberal arts degree in computer science. Commun. ACM (March). HUFF, C. AND MARTIN, C. D. 1995. Computing consequences: A framework for teaching ethical computing. Commun. ACM (Dec.). KELEMEN, C. F. 1996. SDCR position statement on the first course for nonmajors. http://www. bowdoin.edu/;allen/sdcr/kelemen.html. KOFFMAN, E. P., MILLER, P. L., AND WARDLE, C. E. 1984. Recommended curriculum for CS1: 1984 a report of the ACM curriculum task force for CS1. Commun. ACM (Oct.). KOFFMAN, E. P., STEMPLE, D., AND WARDLE, C. E. 1985. Recommended curriculum for CS2: 1984 a report of the ACM curriculum task force for CS2. Commun. ACM (Aug.). MULDER, M. C. AND DALPHIN, J. 1984. Computer science program requirements and accreditation—an interim report of the ACM/IEEE computer society joint task force. Commun. ACM (April). NATIONAL SCIENCE FOUNDATION. 1996. NSF computer science courseware repository. http: //www.education.siggraph.org/nsfcscr/nsfcscr. home.html. PATT, Y. N. 1996. SDCR position statement on the first course. http://www.bowdoin.edu/ ;allen/sdcr/patt.html. PROULX, V. K., RASALA, R., AND FELL, H. 1996. Foundations of computer science: What are they and how do we teach them? In Proceedings of the SIGCSE/SIGCUE Joint Conference on Integrating Technology in Computer Science Education (Barcelona, Spain, June). RADA, R. 1996. SDCR position statement on the Virtual Computing College. http://www. bowdoin.edu/;allen/sdcr/rada.html.
•
845
RASALA, R., PROULX, V. K., AND FELL, H. J. 1994. From animation to analysis in introductory computer science. In Proceedings of the ACM Computer Science Conference (Phoenix, AZ, March). ROBERTS, E. 1993. Using C in CS1: The Stanford experience. In Proceedings of the TwentyFourth SIGCSE Technical Symposium on Computer Science Education (Indianapolis, IN, Feb.). ROBERTS, E. 1995. The Art and Science of C. Addison-Wesley, Reading, MA. ROBERTS, E. 1996. Tools for creating portable demonstration programs. In Proceedings of the SIGCSE/SIGCUE Joint Conference on Integrating Technology in Computer Science Education (Barcelona, Spain, June). RUDICH, S. 1996. CS1: How to think like a computer scientist. http://www.cs.cmu.edu/ ;rudich. SHAW, M. 1990. Prospects for an engineering discipline of software. IEEE Softw. (Nov.). STEIN, L. A. 1996. Rethinking CS101: Innovations in introductory computer programming. http://www.ai.mit.edu/projects/cs101. TAULBEE 1995. 1995 Taulbee survey. Accessible via the CRA home page: http://www.cra.org. TUCKER, A. B., BERNAT, A., BRADLEY, W. J., CUPPER, R. D., AND SCRAGG, G. W. 1995a. Fundamentals of Computing I: C11 Edition. McGraw-Hill, New York. TUCKER, A. B., BRADLEY, W. J., CUPPER, R. D., EPSTEIN, R. G., AND KELEMEN, C. F. 1995b. Fundamentals of Computing II: C11 Edition. McGraw-Hill, New York. TUCKER, A. B. AND WEGNER, P. 1996. Computer science and engineering: The discipline and its impact. In CRC Handbook of Computer Science and Engineering. CRC Press, Boca Raton, (Dec.) (to appear). http://www. crcpress.com/prods/2909.htm. VAN LOAN, C. 1996. Introduction to Computational Science. Addison-Wesley, Reading, MA. WALKER, H. AND SCHNEIDER, G. M. 1996. Revised model curriculum for a liberal arts degree in computer science. Commun. ACM (Dec.) (to appear).
ACM Computing Surveys, Vol. 28, No. 4, December 1996