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