Introduction
From CS2001 Wiki
Chapter1
Introduction
The Review Task Force (RTF), commissioned by the ACM Education Board and the IEEE Computer Society’s Education Activities Board, was given a mandate to conduct an interim review of the CC2001 Computer Science volume (hereafter referred to as CS2001) that had been published on 15th December, 2001. During the work on the CC2001 series of volumes, it had been recognised that there was a need to produce curricular guidance for the community on a regular basis, this to be interpreted as being roughly every 5 years. This was to address the pace of change in the discipline and the consequent need to support the meaningful and effective evolution of programs of study.
The idea of an interim review was a new concept in the activities of ACM / Computer Society curricular guidance. It was not envisioned that a completely new set of curricular advice for computer science would be produced, but that the work on this occasion would absorb significantly less resources than a full review. Rather it had been anticipated that a variant of, or addendum to, the earlier document would be produced with significant matters being updated as necessary. Part of the mandate given to the RTF would involve carrying out a modest but hopefully effective consultation with the community, taking account of relevant industrial views. For instance, the structure might be expected to remain largely unaltered but the review would provide the opportunity to update the guidance and to address issues of concern to the community.
Contents |
1.1 Consultation Process
As part of the consultation process, the views of the community were sought and used as important input to the review process. Several approaches to obtaining these were adopted
- A web site was created and this was set up to capture comments of any kind on the existing CS2001 document; an announcement was then circulated to interested groups:
The ACM and IEEE Computer Society invite the community to contribute input to reviewing the 2001 Computer Science Curriculum Volume. A web site has been created to capture community comments and contributions. See […]. The review period extends to 30th June 2007.
- In excess of 8000 e-mail messages were sent out to interested parties drawing attention to the opportunity to provide comments; an alternative possibility offered to recipients of the e-mail was to attend an open public meeting to discuss the CS2001
- Public meetings were held
- Members of the RTF attended other meetings and drew attention to the opportunities to provide feedback
- Individual perspectives were obtained
As a result of the public consultation, feedback was received from 68 professionals and academics on the CS2001 website, with approximately 163 comments on various aspects of the curriculum. An in-depth discussion of the Computer Science volume was also held with fifteen participants at a meeting in Colorado, and this brought together representatives of the IEEE Computer Society as well as representatives from industry and the Two Year College community. Additional valuable feedback has also been received from individuals.
All comments were thoughtfully considered. Keeping in mind that the goal was an "interim" revision, many comments were incorporated into the revised document. The comments that would have resulted in major revisions have been archived to be considered when a new curriculum task force begins its work on a "new" curriculum. A special session was held at SIGCSE 08 in Portland where there was the added opportunity for discussion and the submission of additional comments.
Following this activity, the Special Advisory Board was asked for its comments and a final opportunity was given for public scrutiny of the Interim Report. In the event this resulted in excess of 200 additional very useful comments. In some cases the suggestions, while valid, could not be addressed within the Interim Review as it unfolded but have been noted as input for a more fundamental review. Many of the comments had their origins in a SIGPLAN sponsored conference on The Teaching of Programming that was held at the end of May 2008. These comments have subsequently been addressed and considered responses have been folded into the new final document. See section xxx where this is addressed.
1.2 Indicators for Change
As a result of the consultation several indicators for change were identified
Experience of using the original
The feedback certainly confirmed the view that it was timely to be undertaking a review of CS2001. In addition comments and suggestions pointed to the desirability of a mechanism whereby the community could be more deeply involved in an ongoing basis with the evolution of curricular guidance. In fact the RTF had recognised that issue and saw that as an important part of their remit.
Feedback from consultation
A recurring theme was that industry involvement was essential and the needs of industry had to be reflected in the review. In addition, the following were identified for attention repeatedly:
- security including the need to address this systematically and not just in operating systems and networking but in programming, for instance, was repeatedly identified as being of major concern; some argued that a substantial element of security should form part of the core and so compulsory for all graduating students
- all topics had to be updated but specific mention was made of concurrency, net-centric computing, human computer interaction, software engineering, management information systems, and systems issues as well as professional practice
- learning outcomes had to receive more systematic and careful attention; these were deemed to be very important since they had to capture what students could reasonably be expected to do on completion of the program of study, module, etc.
- communication and other transferable skills had to be addressed
- there were undercurrents about the current crisis in computing generally and the need to take steps to address this
- the final set of comments (from the final consultation) were dominated by attention to the teaching of programming / programming languages, and to the topic of multiple paradigms.
Industrial perspectives
As might be expected, feedback from industry was diverse but invariably it was supplied willingly (even enthusiastically) and with a deep sense of conviction. It tended to confirm the importance of enlisting high quality students who then had to be attuned to a good work ethic and receive sound education in the fundamentals of the subject.
The following topics tended to receive attention in the dialogue with industry:
- security
- seen to be of increasing importance, to the extent that all graduates should have a general awareness of security issues
- should embrace the issues associated with access, encryption, networking, etc.
- importantly this should also include a general awareness about how to write safe and secure software – the latter was deemed to be very important
- quality issues
- testing, debugging and bug tracking
- checking on code readability and documentation
- code reviews
- certain software engineering principles and techniques
- this included such matters as basic release management principles and basic source control principles
- best practices for developing software in teams
- code archeology
- delving into big, ill-documented code bases
- performance tuning
- back of the envelope calculation in design, etc.
Particular mention was made of the perceived benefits of employing students who had contributed to open source software projects, who had experienced industry internships, or who had done undergraduate systems software projects as part of their coursework or research.
Several industrialists passed very positive comment about compiler courses. Although many companies do not engage in anything related to compilers, compiler writing tended to be seen as a microcosm for realistic software development. So good compiler writers are often seen as desirable; they tend to be good software engineers.
An emphasis was placed on the problems of students having been indoctrinated in particular tools or processes that they then have to unlearn. In an ideal world candidates need to have an appreciation for why particular topics (such as those mentioned above) are important and they ought to be taught some guidelines and best practices that will help them think about the craft of modern software development. A quote from one industrialist captures many of their concerns:
The thing that we can't afford to do […] is teach candidates how to think critically, to be effective problem solvers, and to have basic mastery of programming languages, data structures, algorithms, concurrency, networking, computer architecture, and discrete math / probability / statistics. I can't begin to emphasize the importance of algorithms and data structures to the work we do here […]. With multi-terabyte disks, bigger broadband pipes, etc. on the way, the big data problems that demand these skills […] are quickly going to be in need in a huge number of programming contexts.
1.3 Important Contextual Considerations
Since the publication of the original CS2001 report, the landscape in terms of curricular guidance has changed considerably. The full CC2001 series - including the five volumes on computer engineering, computer science, information systems, information technology and software engineering - has now been produced together with an overview volume. (The IT volume is currently undergoing revision in advance of publication. The other volumes have been published.) The five volumes were produced by independent teams of experts who were charged with producing the best advice possible for the community. A common framework of a body of knowledge with knowledge units and learning outcomes, etc. was used to provide some level of uniformity of approach throughout the series.
The overview volume sought to take a high level perspective. To quote from the introductory summary section in that volume:
This report summarizes the body of knowledge for undergraduate programs in each of the major computing disciplines, highlights their commonalities and differences and describes the characteristics of graduates from each kind of undergraduate degree program.
Accordingly the overview volume contains important relevant information.
Of course, there have been other important developments since 2001. For instance, the notion of computational thinking has become important, an idea intended to capture the kind of thinking that characterises a study of computing; and some have sought to identify key principles on which the teaching of computing should be based. But importantly also there has been a crisis in terms of the numbers of students wishing to study the discipline and that must not be ignored. The latter has given rise to the recent CPATH initiatives by the US National Science Foundation which aims to transform and revitalise computing education.
1.4 Structure of the Interim CS2001 Computer Science Report
The main body of the report consists of seven chapters. In chapter 2, we articulate a set of principles that have guided the work; chapter 3 outlines developments that have taken place in computing and how these have affected change, chapters 4 and 5 are about changes to the curriculum in the broad sense, in chapter 6 there are some thoughts on the crisis and the final chapter offers some concluding thoughts.
The bulk of the material in the report appears in two appendices. Appendix A contains an overview of the revised body of knowledge, Appendix B contains the detail of the body of knowledge for undergraduate computer science and Appendix C consists of descriptions of certain new recommended courses that can be included in curricula. It is intended that by providing both the body of knowledge and course descriptions and using these in conjunction with the original CS2001 report, departments can create effectively updated curricula easily.
| To give feedback on this area of revision, go to here and use your ACM user name and login. |
Copyright © 2008, ACM, Inc. and IEEE, Inc.
