|
Group Recommendations |
|
| Topic (with ACM recommended
class hours) |
1 |
2 |
3 |
4 |
5 |
6 |
| DS. Discrete
Structures (43 core hours) |
cover |
via computer with lab |
cover |
(see below) |
|
cover |
| DS1.
Functions, relations, and sets (6) |
cover |
include |
cover |
|
|
cover |
| DS2. Basic
logic (10) |
cover |
include |
cover |
|
|
cover |
| DS3. Proof
techniques (12) |
cover |
|
cover |
|
include induction |
cover |
| DS4. Basics
of counting (5) |
cover |
include |
cover |
|
formalize
real world problems |
cover |
| DS5. Graphs
and trees (4) |
cover |
include |
cover |
|
cover |
| DS6. Discrete
probability (6) |
cover |
(see below) |
cover |
|
|
reduce |
| PF.
Programming Fundamentals (38 core hours) |
|
plus
basic concurrent programming |
|
|
add
conncurrent programming (4) |
cover |
| PF1.
Fundamental programming constructs (9) |
cover |
cover |
|
cover |
| PF2.
Algorithms and problem-solving (6) |
cover |
cover |
cover |
|
|
cover |
| PF3.
Fundamental data structures (14) |
cover |
cover |
cover |
|
|
cover |
| PF4.
Recursion (5) |
cover |
cover |
cover |
|
|
cover |
| PF5.
Event-driven programming (4) |
|
cover |
|
|
|
remove or reposition |
| AL.
Algorithms and Complexity (31 core hours) |
|
|
|
|
|
|
| AL1. Basic
algorithmic analysis (4) |
cover |
cover |
cover |
|
|
cover |
| AL2.
Algorithmic strategies (6) |
cover |
cover |
cover |
|
|
cover |
| AL3.
Fundamental computing algorithms (12) |
cover |
cover |
cover |
|
|
cover |
| AL4.
Distributed algorithms (3) |
cover |
cover |
|
|
demote |
cover |
| AL5. Basic
computability (6) |
cover |
cover |
|
|
|
cover |
| AL6. The
complexity classes P and NP |
cover |
cover |
cover |
|
(4) |
cover |
| AL7. Automata
theory |
cover |
|
cover |
|
(3) |
|
| AL8. Advanced
algorithmic analysis |
cover |
|
|
|
|
|
| AL9.
Cryptographic algorithms |
|
|
|
|
|
|
| AL10.
Geometric algorithms |
|
|
|
|
|
|
| AL11.
Parallel algorithms |
|
|
|
|
|
|
| AR.
Architecture and Organization (36 core hours) |
|
|
|
|
consider HW lab |
cover |
| AR1. Digital
logic and digital systems (6) |
cover |
|
|
|
|
cover |
| AR2. Machine
level representation of data (3) |
cover |
|
|
|
|
cover |
| AR3. Assembly
level machine organization (9) |
cover |
|
|
|
|
cover |
| AR4. Memory
system organization and architecture (5) |
cover |
|
|
|
|
cover |
| AR5.
Interfacing and communication (3) |
cover |
|
|
|
|
cover |
| AR6.
Functional organization (7) |
cover |
|
|
|
|
cover |
| AR7.
Multiprocessing and alternative architectures (3) |
cover |
|
|
|
demote |
cover |
| AR8.
Performance enhancements |
|
|
|
|
|
|
| AR9.
Architecture for networks and distributed systems |
cover |
|
|
|
|
|
| OS. Operating
Systems (18 core hours) |
|
include
some comp. org. (hardware/software interface) and web computing |
|
|
|
|
| OS1. Overview
of operating systems (2) |
cover |
cover |
|
|
cover |
| OS2.
Operating system principles (2) |
cover |
cover |
|
|
cover |
| OS3.
Concurrency (6) |
|
cover |
|
increase time |
increase time |
| OS4.
Scheduling and dispatch (3) |
|
|
cover |
|
|
decrease time |
| OS5. Memory
management (5) |
cover |
some |
cover |
|
reduce
time thru sync with AR4 |
cover |
| OS6. Device
management |
|
|
|
|
|
| OS7. Security
and protection |
cover |
|
cover lightly |
|
|
|
| OS8. File
systems |
cover |
some |
cover lightly |
|
|
|
| OS9.
Real-time and embedded systems |
|
|
cover lightly |
|
|
|
| OS10. Fault
tolerance |
|
|
cover lightly |
|
|
|
| OS11. System
performance evaluation |
|
|
|
|
|
|
| OS12.
Scripting |
|
|
|
|
|
|
| NC.
Net-Centric Computing (15 core hours) |
|
|
|
|
demote importance, a few hour hours only as part
of systems |
|
| NC1.
Introduction to net-centric computing (2) |
cover |
|
|
|
omit |
| NC2.
Communication and networking (7) |
cover |
|
(6) |
|
|
cover |
| NC3. Network
security (3) |
cover |
|
|
|
|
cover |
| NC4. The web
as an example of client-server computing (3) |
cover |
|
|
|
|
cover |
| NC5. Building
web applications |
|
|
|
|
|
|
| NC6. Network
management |
|
|
|
|
|
|
| NC7.
Compression and decompression |
|
|
|
|
|
|
| NC8.
Multimedia data technologies |
|
|
|
|
|
|
| NC9. Wireless
and mobile computing |
cover |
|
|
|
|
|
| PL.
Programming Languages (21 core hours) |
|
|
|
|
add
garbage collection (2) |
|
| PL1. Overview
of programming languages (2) |
cover |
|
cover |
|
cover |
| PL2. Virtual
machines (1) |
cover |
cover |
cover |
|
|
cover |
| PL3.
Introduction to language translation (2) |
cover |
cover |
cover |
|
|
cover |
| PL4.
Declarations and types (3) |
cover |
cover |
cover |
|
|
cover |
| PL5.
Abstraction mechanisms (3) |
cover |
cover |
cover |
|
|
cover |
| PL6.
Object-oriented programming (10) |
cover |
cover |
cover |
|
|
cover |
| PL7.
Functional programming |
cover |
cover |
cover |
|
|
|
| PL8. Language
translation systems |
|
cover |
|
|
|
|
| PL9. Type
systems |
|
|
|
|
|
|
| PL10.
Programming language semantics |
|
|
|
|
|
|
| PL11.
Programming language design |
|
|
|
|
|
|
| HC.
Human-Computer Interaction (8 core hours) |
|
|
|
|
some in
group believe this is essential - others not important at all, perhaps merged
with PF5 |
integrate
into programming |
| HC1.
Foundations of human-computer interaction (6) |
|
|
|
|
| HC2. Building
a simple graphical user interface (2) |
|
|
|
|
|
| HC3.
Human-centered software evaluation |
|
|
|
|
|
|
| HC4.
Human-centered software development |
|
|
|
|
|
|
| HC5.
Graphical user-interface design |
|
|
|
|
|
|
| HC6.
Graphical user-interface programming |
|
|
|
|
|
|
| HC7. HCI
aspects of multimedia systems |
|
|
|
|
|
|
| HC8. HCI
aspects of collaboration and communication |
|
|
|
|
|
|
| GV. Graphics
and Visual Computing (3 core hours) |
|
|
|
|
|
no |
| GV1.
Fundamental techniques in graphics (2) |
|
|
|
|
|
|
| GV2. Graphic
systems (1) |
|
|
|
|
|
|
| GV3. Graphic
communication |
|
|
|
|
|
|
| GV4.
Geometric modeling |
|
|
|
|
|
|
| GV5. Basic
rendering |
|
|
|
|
|
|
| GV6. Advanced
rendering |
|
|
|
|
|
|
| GV7. Advanced
techniques |
|
|
|
|
|
|
| GV8. Computer
animation |
|
|
|
|
|
|
| GV9.
Visualization |
|
|
|
|
|
|
| GV10. Virtual
reality |
|
|
|
|
|
|
| GV11.
Computer vision |
|
|
|
|
|
|
| IS.
Intelligent Systems (10 core hours) |
|
|
|
|
|
gone |
| IS1.
Fundamental issues in intelligent systems (1) |
|
|
|
|
demote |
|
| IS2. Search
and constraint satisfaction (5) |
|
|
|
|
|
|
| IS3.
Knowledge representation and reasoning (4) |
|
|
|
|
|
|
| IS4. Advanced
search |
|
|
|
|
|
|
| IS5. Advanced
knowledge representation and reasoning |
|
|
|
|
|
|
| IS6. Agents |
|
|
|
|
(4) |
|
| IS7. Natural
language processing |
|
|
|
|
|
|
| IS8. Machine
learning and neural networks |
|
|
|
|
|
|
| IS9. AI
planning systems |
|
|
|
|
|
|
| IS10.
Robotics |
|
|
|
|
(4) |
|
| IM.
Information Management (10 core hours) |
|
|
|
|
|
either move or omit |
| IM1.
Information models and systems (3) |
|
|
|
|
good |
|
| IM2. Database
systems (3) |
|
|
|
|
good |
|
| IM3. Data
modeling (4) |
|
|
|
|
good |
|
| IM4.
Relational databases |
|
|
|
|
|
|
| IM5. Database
query languages |
|
|
|
|
|
|
| IM6.
Relational database design |
|
|
|
|
|
|
| IM7.
Transaction processing |
|
|
|
|
|
|
| IM8.
Distributed databases |
|
|
|
|
|
|
| IM9. Physical
database design |
|
|
|
|
(4) |
|
| IM10. Data
mining |
|
|
|
|
and ML - core |
|
| IM11.
Information storage and retrieval |
|
|
|
|
|
|
| IM12.
Hypertext and hypermedia |
|
|
|
|
|
|
| IM13.
Multimedia information and systems |
|
|
|
|
|
|
| IM14. Digital
libraries |
|
|
|
|
|
|
| SP. Social
and Professional Issues (16 core hours) |
|
|
|
|
demote - signature course ? |
|
| SP1. History
of computing (1) |
|
|
|
|
|
|
| SP2. Social
context of computing (3) |
|
|
|
|
|
|
| SP3. Methods
and tools of analysis (2) |
|
|
|
|
|
|
| SP4.
Professional and ethical responsibilities (3) |
|
|
|
|
|
|
| SP5. Risks
and liabilities of computer-based systems (2) |
|
|
|
|
|
|
| SP6.
Intellectual property (3) |
|
|
|
|
|
|
| SP7. Privacy
and civil liberties (2) |
|
|
|
|
|
|
| SP8. Computer
crime |
|
|
|
|
|
|
| SP9. Economic
issues in computing |
|
|
|
|
|
|
| SP10.
Philosophical frameworks |
|
|
|
|
|
|
| SE. Software
Engineering (31 core hours) |
|
A one
credit hour course on software tools to include compilers, debugging, IDE,
source code control, scripting, ? ? tools |
|
|
reduce
hours on others, must be taulght as a project class, not lecture, cosider
software lab |
|
| SE1. Software
design (8) |
|
cover |
|
|
| SE2. Using
APIs (5) |
|
|
|
|
| SE3. Software
tools and environments (3) |
|
|
|
demote |
|
| SE4. Software
processes (2) |
|
|
|
|
|
| SE5. Software
requirements and specifications (4) |
|
|
|
|
|
|
| SE6. Software
validation (3) |
|
|
|
|
|
|
| SE7. Software
evolution (3) |
|
|
|
|
|
|
| SE8. Software
project management (3) |
|
|
|
|
demote |
|
| SE9.
Component-based computing |
|
|
|
|
|
|
| SE10. Formal
methods |
|
|
(3) |
|
|
|
| SE11.
Software reliability |
|
|
|
|
|
|
| SE12.
Specialized systems development |
|
|
|
|
|
|
| CN.
Computational Science (no core hours) |
|
|
|
|
|
|
| CN1.
Numerical analysis |
|
|
|
|
|
|
| CN2.
Operations research |
|
|
|
|
|
|
| CN3. Modeling
and simulation |
|
|
|
|
|
|
| CN4.
High-performance computing |
|
|
|
|
|
|
|
|
1.
Require Probability and Statistics (basic prob., basic exploratory stats,
distributions, confidence intervals, liklihood, time series, Baysian
techniques |
1. Experimental methods and statistices (3) |
1.
Theory of Names (coordination & collaboration of computing processes,
structuring of knowledge - informal to formal, Mathematics, of Computing,
assyncronous cooperating finite-state machines |
1. use Misra-like pedagogy throuout |
|
| Group
1: Cline, Emerson, Mok, Ramachandran, Kuipers, Plaxton, Gal |
|
| Group 2: Batory, Lavender,
Boral, Canada, Ballard |
|
2.
require a software class that's required for BS but not for concentration |
|
| Group 3: Misra, Klivans, Van
de Geijn, Myers, Mooney |
|
2. Graphics, AI, Databases, Num. Anal. (2) |
|
| Group 4: Browne, Novak, Hunt |
|
|
| Group 5: Moore, Zuckerman,
Porter, Keckler, Chan, Cook |
|
|
| Group 6: Rich, Alvisi, Lin,
Lifschitz, Downing |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2. Principles: interesting & motivating
projrcts throughout, projrcts invoke principles to be learned, No two-year
gap in programming - projects every year |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|