Sunday, November 17, 2013

ACM/IEEE-CS Computer Science Curricula 2013

The joint ACM/IEEE-CS Computer Science
Curricula 2013 Steering Committee (CS2013), have released a Draft Final Report (October 2013). The previous versions of the ACM/IEEE-CS curricular have been used by universities around the world in designing their degree programs. There is also a core learning outcomes spreadsheet and some Course and Curriculum Exemplars.

The ACM/IEE-CS Curricula specifies the proportion of course on each topic in terms of lecture hours, for delivery in a traditional face-to-face class. This does not include self-study time, lab sessions or student work on assessments. So confusingly it is less than the usual measure used by universities of  "contact hours" (which includes tutorials and labs sessions). The Total Core Hours are: Tier1 165 Hours, Tier1 143 Hours. Programs are required to have all of Tier 1, plus at least 80% of Tier 2, making a total of at least 279.4 Hours.

The ANU Bachelor of Information Technology
requires the completion of 144 units, with 36 compulsory computer science units, another 30 units from later years CS courses, 24 units of additional CS courses, 6 core maths courses, leaving 28 units of general electives. A typical 6 unit ANU Computer Science course has thirty one, one hour lectures and six two hour tutorials. The full time degree program is usually made up of three years of two semesters, with four courses per semester for a total of  24 courses (3 x 2 x 4). This equates to 744 hours of lectures.

While the ACM/IEE-CS have been influential with their curriculum internationally, it should be noted that this is a very US-centric document. The only mention of Australia in the document, is Judy Sheard's Human Computer Interaction (FIT3063), Monash University. The UK is represented by Paul Cairns' Human Aspects of Computer Science, University of York, Alan Blackwell's Human Computer Interaction and Software and Interface Design, University of Cambridge. Most of the other courses are from the USA, with a few from Europe and Asia.

ACM/IEEE-CS Computer Science Curricula 2013 

Table of Contents

Chapter 1: Introduction . 10

Overview of the CS2013 Process . 11
Survey Input  12
High-level Themes  13
Knowledge Areas  14
Professional Practice . 15
Exemplars of Curricula and Courses  16
Community Involvement and Website . 16
Acknowledgments  16
References . 19

Chapter 2: Principles . 20

Chapter 3: Characteristics of Graduates . 23

Chapter 4: Introduction to the Body of Knowledge 27

Knowledge Areas are Not Necessarily Courses (and Important Examples Thereof). 28
Core Tier-1, Core Tier-2, Elective: What These Terms Mean, What is Required . 29
Further Considerations in Designing a Curriculum  32
Organization of the Body of Knowledge  32
Curricular Hours . 32
Courses 33
Guidance on Learning Outcomes . 33
Overview of New Knowledge Areas  34

Chapter 5: Introductory Courses . 39

Design Dimensions . 39
Mapping to the Body of Knowledge. 45

Chapter 6: Institutional Challenges . 46

Localizing CS2013 . 46
Actively Promoting Computer Science  46
Broadening Participation  47
Computer Science Across Campus . 48
Computer Science Minors  48
Mathematics Requirements in Computer Science  49
Computing Resources . 51
Maintaining a Flexible and Healthy Faculty. 51
Teaching Faculty. 52
Undergraduate Teaching Assistants 53
Online Education  53
References . 54

Appendix A: The Body of Knowledge . 55

Algorithms and Complexity (AL). 55
Architecture and Organization (AR). 62
Computational Science (CN)  68
Discrete Structures (DS) . 76
Graphics and Visualization (GV) . 82
Human-Computer Interaction (HCI)  89
Information Assurance and Security (IAS)  97
-4-Information Management (IM) . 112
Intelligent Systems (IS)  121
Networking and Communication (NC). 131
Operating Systems (OS) . 136
Platform-Based Development (PBD) . 143
Parallel and Distributed Computing (PD) . 146
Programming Languages (PL)  156
Software Development Fundamentals (SDF) . 168
Software Engineering (SE) . 173
Systems Fundamentals (SF) 187
Social Issues and Professional Practice (SP)  193

Appendix B: Migrating to CS2013 . 205

Outcomes  205
Changes in Knowledge Area Structure . 206
Core Comparison  207
Conclusions . 211

Appendix C: Course Exemplars 228

Course Exemplar Template  232
CSCI 140: Algorithms, Pomona College  234
COS 226: Algorithms and Data Structures, Princeton University 237
CS 256 Algorithm Design and Analysis, Williams College . 240
CSE332: Data Abstractions, University of Washington . 243
CS/ECE 552: Introduction to Computer Architecture, University of Wisconsin . 246
CS150: Digital Components and Design, University of California, Berkeley . 249
-5-CC152: Computer Architecture and Engineering, University of California, Berkeley  251
eScience, University of North Carolina at Charlotte  253
COSC/MATH 201: Modeling and Simulation for the Sciences, Wofford College  258
MAT 267: Discrete Mathematics, Union County College . 262
CS103: Mathematical Foundations of Computer Science, Stanford University  265
CS109: Probability Theory for Computer Scientists, Stanford University  265
CS 250 - Discrete Structures I, Portland Community College . 268
CS 251 - Discrete Structures II, Portland Community College  271
CS 175 Computer Graphics, Harvard University . 274
CS371: Computer Graphics, Williams College  277
Human Aspects of Computer Science, University of York  280
FIT3063 Human Computer Interaction, Monash University 282
CO328: Human Computer Interaction, University of Kent  285
Human Computer Interaction, University of Cambridge . 287
Human-Computer Interaction, Stanford University . 289
Human Information Processing (HIP), Open University Netherlands . 291
Software and Interface Design, University of Cambridge  293
Computer Systems Security (CS-475), Lewis-Clark State College  295
CS430: Database Systems, Colorado State University. 298
Technology, Ethics, and Global Society (CSE 262), Miami University  301
CS 662; Artificial Intelligence Programming, University of San Francisco  304
Intelligenza Artificiale ( Artificial Intelligence), Politecnico di Milano  306
CMSC 471, Introduction to Artificial Intelligence, U. of Maryland, Baltimore, County  308
Introduction to Artificial Intelligence, Case Western Reserve University . 310
-6-CS188: Artificial Intelligence, University of California Berkeley . 313
Introduction to Artificial Intelligence, University of Hartford . 315
Computer Networks I, Case Western Reserve University  318
CS144: Introduction to Computer Networking, Stanford University . 320
Computer Networks, Williams College  323
CSCI 432 Operating Systems, Williams College . 327
CS 420, Operating Systems, Embry-Riddle Aeronautical University  330
CPSC 3380 Operating Systems, U. of Arkansas at Little Rock . 332
582219 Operating Systems, University of Helsinki . 334
RU STY1 Operating Systems, Reykjavik University. 336
Parallel Programming Principle and Practice, Huazhong U. of Science and Technology . 339
Introduction to Parallel Programming, Nizhni Novgorod State University . 342
CS in Parallel (course modules on parallel computing) . 344
CS453: Introduction to Compilers, Colorado State University  348
Csc 453: Translators and Systems Software, The University of Arizona  351
CSCI 434T: Compiler Design, Williams College  353
Compilers, Stanford University  356
Languages and Compilers, Utrecht University . 359
COMP 412: Topics in Compiler Construction, Rice University  361
CSC 131: Principles of Programming Languages, Pomona College 364
CSCI 1730: Introduction to Programming Languages, Brown University  367
CSC 2/454: Programming Language Design and Implementation, University of Rochester 369
CSE341: Programming Languages, University of Washington . 372
CSCI 334: Principles of Programming Languages, Williams College . 375
-7-Programming Languages and Techniques I, University of Pennsylvania  378
15-312 Principles of Programming Languages, Carnegie Mellon University 381
15-150: Functional Programming, Carnegie Mellon University  385
CIS 133J: Java Programming I, Portland Community College  389
Introduction to Computer Science, Harvey Mudd College  392
CpSc 215: Software Development Foundations, Clemson University . 395
CS1101: Introduction to Program Design, WPI . 398
Data Abstraction and Data Structures, Miami University  401
Software Engineering Practices, Embry Riddle Aeronautical University  403
CS169: Software Engineering, University of California, Berkeley 407
SE-2890 Software Engineering Practices, Milwaukee School of Engineering  410
Software Development, Quinnipiac University  412
CS2200: Introduction to Systems and Networking, Georgia Institute of Technology . 415
CS61C: Great Ideas in Computer Architecture, University of California, Berkeley 419
CSE333: Systems Programming, University of Washington . 421
Ethics in Technology (IFSM304), University of Maryland . 424
Technology Consulting in the Community, Carnegie Mellon University  427
Issues in Computing, Saint Xavier University 431
Ethics & the Information Age (CSI 194), Anne Arundel Community College . 433
Professional Development Seminar, Northwest Missouri State University . 436
The Digital Age, Grinnell College  439
COS 126: General Computer Science, Princeton University . 443
CSCI 0190: Accelerated Introduction to Computer Science, Brown University . 447
An Overview of the Two-Course Intro Sequence, Creighton University. 449
-8-CSC 221: Introduction to Programming, Creighton University . 450
CSC 222: Object-Oriented Programming, Creighton University . 452
An Overview of the Mulit-paradigm Three-course CS Introduction at Grinnell College  454
CSC 151: Functional problem solving, Grinnell College . 456
CSC 161: Imperative Problem Solving and Data Structures, Grinnell College . 458
CSC 207: Algorithms and Object-Oriented Design, Grinnell College . 460

Appendix D: Curricular Exemplars  463

Bluegrass Community and Technical College (A.S. Degree)  465
Bluegrass Community and Technical College (A.A.S. Degree)  472
Grinnell College  480
Stanford University . 492
Williams College  503 Brown University . 447
An Overview of the Two-Course Intro Sequence, Creighton University. 449
-8-CSC 221: Introduction to Programming, Creighton University . 450
CSC 222: Object-Oriented Programming, Creighton University . 452

No comments:

Post a Comment