16.01.2015 Views

CS2013-final-report

CS2013-final-report

CS2013-final-report

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

● The learning outcomes and hour counts in the Body of Knowledge provide guidance on<br />

the depth of coverage towards which curricula should aim.<br />

● There are several new Knowledge Areas that reflect important changes in the field.<br />

Knowledge Areas are Not Necessarily Courses (and Important<br />

Examples Thereof)<br />

It is naturally tempting to associate each Knowledge Area with a course. We explicitly<br />

discourage this practice in general, even though many curricula will have some courses<br />

containing material from only one Knowledge Area or, conversely, all the material from one<br />

Knowledge Area in one course. We view the hierarchical structure of the Body of Knowledge as<br />

a useful way to group related information, not as a stricture for organizing material into courses.<br />

Beyond this general flexibility, in several places we expect many curricula to integrate material<br />

from multiple Knowledge Areas, in particular:<br />

● Introductory courses: There are diverse successful approaches to introductory courses in<br />

computer science. Many focus on the topics in Software Development Fundamentals<br />

together with a subset of the topics in Programming Languages or Software Engineering,<br />

while leaving most of the topics in these other Knowledge Areas to advanced courses.<br />

But which topics from other Knowledge Areas are covered in introductory courses can<br />

vary. Some courses use object-oriented programming; others, functional programming;<br />

and others, platform-based development (thereby covering topics in the Platform-Based<br />

Development Knowledge Area). Conversely, there is no requirement that all Software<br />

Development Fundamentals be covered in a first or second course, though in practice<br />

most topics will usually be covered in these early courses. A separate chapter discusses<br />

introductory courses more generally.<br />

● Systems courses: The topics in the Systems Fundamentals Knowledge Area can be<br />

presented in courses designed to cover general systems principles or in those devoted to<br />

particular systems areas such as computer architecture, operating systems, networking, or<br />

distributed systems. For example, an Operating Systems course might be designed to<br />

cover more general systems principles, such as low-level programming, concurrency and<br />

- 28 -

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!