Reference
|
|
k,c,a
|
E,D
|
Hours
|
CMP
|
Computing essentials
|
|
|
152
|
CMP.cf
|
Computer science foundations
|
|
|
120
|
CMP.cf.1
|
Programming fundamentals (control and data, typing, recursion)
|
a
|
E
|
|
CMP.cf.2
|
Algorithms, data structures, and complexity
|
a
|
E
|
|
CMP.cf.3
|
Problem solving techniques
|
a
|
E
|
|
CMP.cf.4
|
Abstraction, use and support for (encapsulation, hierarchy, etc.)
|
a
|
E
|
|
CMP.cf.5
|
Computer organization
|
c
|
E
|
|
CMP.cf.6
|
Basic user human factors (I/O, error messages, and robustness)
|
c
|
E
|
|
CMP.cf.7
|
Basic developer human factors (comments, structure, and readability)
|
c
|
E
|
|
CMP.cf.8
|
Programming language basics
|
a
|
E
|
|
CMP.cf.9
|
Operating system basics
|
c
|
E
|
|
CMP.cf.10
|
Database fundamentals
|
c
|
E
|
|
CMP.cf.11
|
Network protocols
|
c
|
E
|
|
CMP.ct
|
Construction technologies
|
|
|
20
|
CMP.ct.1
|
API design and use
|
a
|
E
|
|
CMP.ct.2
|
Code reuse and libraries
|
a
|
E
|
|
CMP.ct.3
|
Object-oriented runtime issues (e.g., polymorphism and dynamic binding)
|
a
|
E
|
|
CMP.ct.4
|
Parameterization and generics
|
a
|
E
|
|
CMP.ct.5
|
Assertions, design by contract, and defensive programming
|
a
|
E
|
|
CMP.ct.6
|
Error handling, exception handling, and fault tolerance
|
a
|
E
|
|
CMP.ct.7
|
State-based and table-driven construction techniques
|
c
|
E
|
|
CMP.ct.8
|
Runtime configuration and internationalization
|
a
|
E
|
|
CMP.ct.9
|
Grammar-based input processing (parsing)
|
a
|
E
|
|
CMP.ct.10
|
Concurrency primitives (e.g., semaphores and monitors)
|
a
|
E
|
|
CMP.ct.11
|
Construction methods for distributed software (e.g., cloud and mobile computing)
|
a
|
E
|
|
CMP.ct.12
|
Constructing hardware/software systems
|
c
|
E
|
|
CMP.ct.13
|
Performance analysis and tuning
|
k
|
E
|
|
CMP.tl
|
Construction tools
|
|
|
12
|
CMP.tl.1
|
Development environments
|
a
|
E
|
|
CMP.tl.2
|
User interface frameworks and tools
|
c
|
E
|
|
CMP.tl.3
|
Unit testing tools
|
c
|
E
|
|
CMP.tl.4
|
Profiling and performance analysis tools
|
|
D
|
|