Chapter three
From CS2001 Wiki
Chapter three
Developments
The review had to take account of a range of issues. There have been significant changes to the technology, changes in the perceived importance and relevance of certain topics, and often changes in the context in which computer science is taught. The purpose of this chapter is to provide a brief overview of the main influences and to indicate the main changes that have occurred.
Early in its history, the original CS2001 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 3-1. This structure remains in this interim report.
Figure 3-1. The 14 knowledge areas
Contents |
3.1 Recent Trends
Since the development of CS2001, some relevant trends in the evolution of the discipline of computer science have become apparent. These include
The emergence of security as a major area of concern
The amount of malicious software in the form of viruses, worms, etc is causing huge concerns to the extent that it is now seen as a major threat to the industry. The Review Task Force has received urgent requests from industrialists requesting that substantial attention to security matters be regarded as compulsory for all computing graduates.
Often the issue of security is seen as being related to an improved view of the use of passwords, access controls of various kinds, the use of firewalls, employing cryptographic techniques, data security and so on. However, many leaks come about through inadequate attention to very basic matters such as programming techniques. Failure to program properly can result, for instance, in exploitable software defects such as buffer overflow and related problems. In addition web-related security breaches are increasingly common, and again need to be addressed appropriately.
The growing relevance of concurrency
The development of multi-core processors has been a significant recent architectural development. To exploit this fully, software needs to exhibit concurrent behaviour; this places greater emphasis on the principles, techniques and technologies of concurrency.
Some have expressed the view that all major future processor developments will include concurrent features, and with even greater emphasis on the concurrency elements. Such a view implies the increased emphasis on currency will not be a passing fashion but rather it represents a fundamental shift towards greater attention to concurrency matters.
The increased ubiquitous nature of computing and computers represents a further factor in heightening the relevance of this topic and again there is every indication that this will only gain further momentum in the future.
It is expected that these observations will have implications for many knowledge areas in future curriculum guidelines.
The pervasive nature of net-centric computing
The rise in the use of the web has been one of the phenomena of the 21st century. Now its use is pervasive. From the perspective of the computer scientist, there are implications for the knowledge areas that address programming, software engineering, data management, mobility, human computer interaction, security and intelligent systems. Web engineering has now emerged as a new discipline, and web science is emerging.
These developments have served to blur the traditional distinction between the areas of operating systems and networking / communications.
One of the characteristics of these developments is that they are not focussed on any one of the CS2001 knowledge areas. Rather they tend to cut across the existing knowledge areas and even start to call into question the datedness of the existing structure of the body of knowledge areas. Other topics such as games computing or entertainment computing, as well as simulation and modeling tend to do likewise.
An additional important observation is the stronger emergence of the concept of systems issues; by this is meant a number of entities working in harmony to achieve a desired effect. This concept was present in CS2001 but topics such as
- The development of computer systems where different components are required to co-operate in order to achieve a particular level of performance for a particular cost.
- Security typically requires attention to many different facets of the computer and its software; this often applies also to such matters as reliability.
- Software engineering tools (or even user applications) have to work together seamlessly
The Review Task Force considered these observations in some detail and with some care. Indeed new knowledge areas for security and concurrency were contemplated to ensure that these important topics were looked at in a systematic and disciplined manner. In the end the various topics were distributed throughout the existing knowledge areas. An important consideration in the thinking of the RTF was the intensive argument, debate and even tension involved in assigning hours to the core topics during the development of the original CS2001. To ignore that without going through a similar extensive exercise carried dangers.
The nature of an interim review was seen as largely an updating exercise, rather than an activity that would cause a major rethink about the discipline and how to present it; however, it was recognised that the need for the latter was growing daily.
3.2 Summarizing the Main Changes
The purpose of this section is to capture in a succinct form the major changes that appear as a consequence of this interim review of the CC2001 Computer Science volume. In summary, this new report
- recognises the existence of additional curricular advice that has been published since around 2001
- incorporates a general updating of the body of knowledge
- includes some advice on new courses or course fragments that are provided as exemplars.
All this is to be expected. But beyond that several additional steps were taken. Many of these have been driven by the increased attention to security and concurrency. But other alterations have occurred.
3.2.1 Knowledge areas
There has been no change to the set of knowledge areas. In large part this has been to reduce the possibility of the interim report leading to widespread change, though it is fully recognised that a certain level of reappraisal is desirable. The need for rethinking the set of knowledge areas and the manner in which the discipline is portrayed has been recognised and discussed.
Changes have been made to the individual knowledge areas and these are detailed in Appendix A. Often these reflect the greater emphasis on security, as well as a necessary updating of net-centric computing. The main changes are summarised below.
There is a suggestion for placing less emphasis on the notion of purely formal (symbolic) proof, to be replaced by a greater focus on student's ability to produce rigorous and sound proof arguments. For instance, it might be effective for students to get more practice using mathematically rigorous (yet not entirely symbolic) proof argument strategies for reasoning about predicate calculus sentences, replacing some practice with fully symbolic approaches for reasoning about propositional sentences;for clarification, see the learning objectives for DS/BasicLogic in the Body of Knowledge.
Attention is drawn to the need for increased levels of care and attention in the teaching of basic programming. In part this is to address security concerns, so that students become aware of the need to program in such a way that they do not create security loopholes.
This has been revised and there is now less attention to the logic design level, with architectural issues now being updated (e.g. to include multi-core processors) and receiving greater prominence. A section on devices has also been added. It is anticipated that the latter will provide greater opportunities for motivating students.
Give the rate of developments in this general area, it was inevitable that considerable changes would occur here. Several topics were given new, more currently meaningful names. Topics deemed less relevant, such as circuit switching and packet switching, streams and datagrams, and common gateway interface programs were removed. Emerging topics, including service-oriented-architecture and grid computing were added to the core.
The idea of perception is introduced and there is greater emphasis on planning, on ontologies, etc. The area of games or entertainment software can be seen as part of this knowledge area and is now mentioned since for some it can provide an important motivational dimension to the curriculum.
There is increased attention to the concept of identity theft, to cultural issues and to the apparent conflict between the demands of data protection and the requirements of freedom of information
Numerical methods have been dropped from the Computational Science and Numerical Methods knowledge area (though it is still referred to as CN). This is to recognise the fact that in most institutions numerical analysis is not seen to form a major part of the computer science curriculum though, of course, the topic remains important. Typically such courses can be found in offerings from mathematics departments. Matters such as rounding errors, iteration, recurrence relations, etc. remain important; these concepts now appear elsewhere.
Simulation and modelling have been given greater prominence. In part this is to recognise the growing importance of the area in many applications (including science where the computer can be seen as the laboratory of the future). The link between simulation and modelling and object-oriented programming is important.
The unit on high performance computing was deemed to be dated and has been recast as a unit on parallelism. An intention of this change has been to better capture the notion of computational science. For clarification, see the learning objectives for DS/BasicLogic in the Body of Knowledge.
3.2.2 Additional Adjustments
Underpinning many of these changes a number of more subtle alterations have occurred. In particular:
- Certain ideas that have matured since 2001 have been identified and care has been taken to include these in the relevant knowledge areas and elsewhere. So there are certain principles, e.g. the principles of locality, that have been identified and the notion of computational thinking has become important
- It is suggested that there should be increased attention to a careful and considered approach to all aspects of technical work.
- There should be greater attention to software re-use and greater awareness of open source possibilities as well as greater familiarity with source control systems.
- There is mention of a more systematic approach to the treatment of learning outcomes. In part this is about recognising the various levels of granularity but also about recognising that learning outcomes can be seen as a starting point for the development of curricula.
- To increase the international appeal and relevance of the work, some comments on this are included
- A comment is made about the role of electives, reinforcing a similar comment in the earlier CS2001 volume. Increasingly computing students gain employment in application areas. To be effective and to be able to play a leadership role this often entails gaining some sophisticated domain knowledge. There is now a recommendation that students should be advised of this as they make choices of electives to accompany their computer science courses.
3.2.3 Renaming of knowledge units
In the Interim Review Report a new convention has been adopted for the naming of individual knowledge units. The original aim behind this renaming proposal was to avoid introducing ambiguity in the meaning of unit designators such as PF1 or NC3. In the updated body of knowledge, there have been changes to the knowledge areas, some rather small. But these are sufficiently significant to create possible problems. If the "<area><number>" naming convention were to be strictly maintained then
- removal or shifting of a knowledge area could result in holes in the numerical sequencing (an NC3 with no NC1 or NC2), or
- change the meaning of the existing designators.
Since those names do appear in various places on the web (the Commerce Department, for example, reprinted the CC2001 Body of Knowledge in a 2003 publication and uses those designators in the body of the report), it seemed best to introduce a new scheme that eliminates any possible ambiguity.
The convention adopted has been to retain the two-letter codes for the knowledge areas but to replace the sequence numbers with semantically meaningful identifiers, written as single lexical units using the traditional programming convention of marking the word boundaries with uppercase letters, so that, for instance,
DS5. Graphs and Trees
becomes
DS/GraphsAndTrees
This scheme has two significant advantages beyond avoiding ambiguity with the older scheme. First, the meaning of a knowledge unit is now obvious from the designator, and no one has to remember what the designator "DS5" means. Second, the new scheme eliminates the ordering constraint, which has simplified the revision process considerably. A slight disadvantage is that it is unclear where, for instance, DS/GraphsAndTrees appears in the sequencing within DS but an improved indexing of the knowledge units has sought to address that comment.
3.3 Addressing the Crisis
The impact of the crisis in computing has exercised the RTF and it felt compelled to take certain steps that might offer encouragement towards a solution. At any time, of course, it must be important to find better ways of educating students. This typically involves appealing to them, providing programs that they find interesting and challenging, and yet motivating. Particularly when computing generally is going through difficult periods due to image, perception and so on this is an extremely important matter. The RFT recognised that there are ongoing issues here that merit further investigation. Accordingly a new chapter has been supplied to address this.
Two particular topics were addressed in some detail:
- finding new and better ways of teaching programming, and
- trying to place computing in a context that would serve to motivate and inspire students.
Ultimately the community needs to experiment to find ways of overcoming each crisis-du-jour and of providing a healthier environment in which teaching and learning in computing can flourish and be widely respected and regarded.
3.4 Concluding Comment
Standing back, there do seem to be a number of fundamental changes afoot. For the most part, it is too early to be definite about their impact and influence in the long term but we have tried to draw attention to them.
| 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.
