What do you think?
Rate this book
518 pages, ebook
First published January 1, 2013
1. Introduction, which provides an overview of the curricular recommendations development process;The recommendations also include four appendices
2. Principles, which briefly states ten general principles underlying the curricular recommendations;
3. Characteristics of Graduates, which states eleven general characteristics and competencies expected of Computer Science graduates;
4. Introduction to the Body of Knowledge, which is a key chapter which states the knowledge areas which make up the body of knowledge, explains the difference between Tier-1 Core, Tier-2 Core, and elective knowledge units in the knowledge areas, the meaning of the hours associated with the knowledge units, three levels of mastery of knowledge units learning outcomes (familiarity, usage, and assessment) and the flexibility with which a curriculum may be put together. The names of the 18 knowledge areas are stated, but they are detailed and explained in appendix A. The distinction between Tier-1 and Tier-2 core hours is new to these curricular recommendations and is an attempt to permit some (limited) flexibility in core knowledge units;
5. Introductory Courses, provides a number of observations on the variety of curricular approaches to introductory Computer Science courses;
6. Institutional Challenges spans several issues on the pragmatics of setting up a Computer Science curriculum at a higher-education institute, ranging from obvious issues such as computing, faculty and other teaching resources, as well as brief notes on online education, broadening participation, Computer Science minors and mathematics requirements in Computer Science (apart from Discrete Math, which is one of the 18 Knowledge Areas).
A. The Body of Knowledge: A key part of the recommendations which details each of the 18 knowledge areas;As an experienced Computer Science faculty member, I was particularly interested in the appendices on knowledge areas (Appendix A) and course exemplars (Appendix C). The eighteen Knowledge Areas are worth stating:
B. Migrating to CS2013, which includes some observations on updating from previous curricular recommendations;
C. Course Exemplars: A detailed and fascinating set of over 80 example Computer Science courses at different universities showing how and why they put together tier 1, tier 2 and elective knowledge units, frequently from different Knowledge Areas. The appendix includes courses not only from colleges and universities in the U.S.A. but also from Europe, Australia, Canada and China.
D. Curricular Exemplars: Briefly shows how four US institutions (Stanford University, Williams College, Grinnell College and Bluegrass Community and Technical College put together Computer Science undergraduate programs from courses). After the breadth displayed in Appendix C, Appendix D is disappointing and comes across very much like a last minute afterthought.
- Algorithms and Complexity (AL)The most striking, timely and interesting changes are, in my opinion, the introduction of two new knowledge areas:
- Architecture and Organization (AR)
- Computational Science (CN)
- Discrete Structures (DS)
- Graphics and Visualization (GV)
- Human-Computer Interaction (HCI)
- Information Assurance and Security (IAS)
- Information Management (IM)
- Intelligent Systems (IS)
- Networking and Communication (NC)
- Operating Systems (OS)
- Platform-Based Development (PBD)
- Parallel and Distributed Computing (PD)
- Programming Languages (PL)
- Software Development Fundamentals (SDF)
- Software Engineering (SE)
- Systems Fundamentals (SF)
- Social Issues and Professional Practice (SP)
- Information Assurance and Security (IAS);The curricular recommendations also highlight important knowledge unit repackaging in the following Knowledge Areas:
- Platform-Based Development (PBD), which recognizes the increasing use of web and mobile platform-specific programming environments.
- Network and Communication (NC): In the previous recommendation (2008) there was a Net-Centric Computing Knowledge Area which has essentially been split and further extended into three Knowledge Areas, the two new areas (IAS, PBD) and this area which focuses more on topics in networking and communications;In my opinion, the knowledge area on Computational Science sticks out and has not been smoothly integrated into the rest of the curricular recommendations -evidently if your curriculum emphasizes the “Science” in Computer Science, then foundations and/or links to Computational Sciences are important. The “hard science” foundations of Computer Science lie in the study of Algorithms and Complexity, Artificial Intelligence, and Numerical Analysis, whereas if your curriculum emphasizes the development of “useful” software, you are probably moving into the grey area where Computer Science intersects with Software Engineering and you need to look more at issues in “soft sciences” like psychology, sociology, economics and management science. The complete absence of Information Systems and IT, even as elective knowledge units is striking -it is true that since 2001 ACM and IEEE Computer Society considers them to be separate disciplines, but they also consider Software Engineering, Computer Engineering, and Computational Sciences as separate disciplines, without tearing out all references to common topics.
- Parallel and Distributed Computing (PD): The topics in this Knowledge Area appeared previously mainly as electives scattered across several knowledge areas -in these recommendations they have been brought together and the number of core hours in these topics increased.
- Software Development Fundamentals (SDF): A new knowledge area only by virtue of repackaging knowledge units from Programming Languages, Algorithms and Complexity, and Software Engineering.
- Systems Fundamentals (SF): Another exercise in repackaging, this times from Architecture and Organization, Net-Centric Computing, and Operating Systems.