Computer Science Curriculum 2008 Summary by Zaheer 1
Mar 22, 2016
1
Computer ScienceCurriculum 2008
Summary by Zaheer
2
More attention needed onSecurityCertain Topics
ConcurrencyNet-centric computingHuman computer interactionSoftware engineeringManagement information systemsSystems issuesProfessional practice
Learning outcomesCommunication skillsTeaching of PL and multiple paradigms
3
Industry feedbackSecurity
Access, encryption, networking, safe programmingQuality issues
Debugging, reliability, documentationSoftware engineering principles and techniques
Release mgmt, source control principles, working in teams
Code archeology Making sense of big, ill-documented code bases
Performance tuning
4
Industry feedbackWant students who have contributed to open sourceHave industry internshipsHave done systems software projectsGood compiler writers (even if the company is not in
that business) The thing that we can't afford to do […] is teach candidates
how to think critically, to be effective problem, solvers, and to have basic mastery of programming languages, data structures, algorithms, concurrency, networking, computer architecture, and discrete math / probability / statistics. I can't begin to emphasize the importance of algorithms and data structures to the work we do here
5
Knowledge AreasDiscrete Structures
Programming Fundamentals
Algorithms and Complexity
Architecture and Organization
Information Management
Net-Centric Computing
Programming Languages
Human-Computer Interaction
Graphics and Visual Computing
Intelligent Systems
Operating Systems
Social and Professional Issues
Software Engineering
Computational Science
6
ChangesDiscrete Structures
Less on purely formal (symbolic) proof, more on rigorous and sound proof arguments.
Programming Fundamentals More on care and attention in the teaching of basic
programming.
Computer Architecture Less on logic design level, more on architectural issues
(multi-core processors, devices)
Net-centric computing circuit switching, packet switching, streams and datagrams,
common gateway interface programs dropped. service-oriented-architecture and grid computing added.
7
Changes (contd.)Intelligent Systems
more on Perception, planning, ontologies, games, or entertainment software
Social and Professional Issues more on identity theft, cultural issues
Computational Science Numerical methods have been dropped
8
Characteristics of GraduatesSystem-level perspective.
No fragmented view
Appreciation of the interplay between theory and practice.
how that theory influences practice.
Familiarity with common themes and principles. abstraction, complexity, and evolutionary change. the principle of locality, sharing a common resource,
security, concurrency,
9
Characteristics of GraduatesSignificant project experience
at least one substantial software projectthe need for domain knowledge for
certain applicationsAttention to rigorous thinking
planning, tracking progress, measuring and generally managing quality
Adaptabilityenormous pace of change
10
DS. Discrete Structures (43 core hours)
DS/Functions Relations and Sets (6)DS/Basic Logic (10)DS/Proof Techniques (12)DS/Basics of Counting (5)DS/Graphs and Trees (4)DS/Discrete Probability (6)
11
PF. Programming Fundamentals (47 core hours)
PF/Fundamental Constructs (9)PF/Algorithmic Problem Solving (6)PF/Data Structures (10)PF/Recursion (4)PF/Event Driven Programming (4)PF/Object Oriented (8)PF/Foundations Information Security (4)PF/Secure Programming (2)
12
AL. Algorithms and Complexity (31 core hours)
AL/Basic Analysis (4)AL/Algorithmic Strategies (6)AL/Fundamental Algorithms (12)AL/Distributed Algorithms (3)AL/Basic Computability (6)AL/P versus NPAL/Automata TheoryAL/Advanced AnalysisAL/Cryptographic AlgorithmsAL/Geometric AlgorithmsAL/Parallel Algorithms
13
AR. Architecture and Organization (36 core hours)
AR/Digital Logic and Data Representation (7)AR/Computer Architecture and Organization (9)AR/Interfacing and I/O Strategies (3)AR/Memory Architecture (5)AR/Functional Organization (6)AR/Multiprocessing (6)AR/Performance EnhancementsAR/Distributed ArchitecturesAR/DevicesAR/Directions in Computing
14
OS. Operating Systems (18 core hours)
OS/Overview of Operating Systems (2)OS/Operating System Principles (2)OS/Concurrency (6)OS/Scheduling and Dispatch (3) OS/Memory Management (3)OS/Device ManagementOS/Security and Protection (2)OS/File SystemsOS/Real Time and Embedded SystemsOS/Fault ToleranceOS/System Performance EvaluationOS/ScriptingOS/Digital ForensicsOS/Security Models
15
NC. Net-Centric Computing (15 core hours)
NC/Introduction(2)NC/Network Communication (7)NC/Network Security (6)NC/Web OrganizationNC/Networked ApplicationsNC/Network ManagementNC/CompressionNC/Multimedia TechnologiesNC/Mobile Computing
16
PL. Programming Languages (21 core hours)
PL/Overview(2)PL/Virtual Machines(1)PL/Basic Language Translation(2)PL/Declarations and Types(3)PL/Abstraction Mechanisms(3)PL/Object Oriented Programming(10)PL/Functional ProgrammingPL/Language Translation SystemsPL/Type SystemsPL/Programming Language SemanticsPL/Programming Language Design
17
HC. Human-Computer Interaction (8 core hours)
HC/Foundations (6)HC/Building GUI Interfaces (2)HC/User Centered Software EvaluationHC/User Centered Software DevelopmentHC/GUI DesignHC/GUI ProgrammingHC/Multimedia and Multimodal SystemsHC/Collaboration and CommunicationHC/Interaction Design for new EnvironmentsHC/Human Factors and Security
18
GV. Graphics and Visual Computing (3 core hours)
GV/Fundamental Techniques (2)GV/Graphic Systems (1)GV/Graphic CommunicationGV/Geometric ModelingGV/Basic RenderingGV/Advanced RenderingGV/Advanced TechniquesGV/Computer AnimationGV/VisualizationGV/Virtual RealityGV/Computer VisionGV/Computational GeometryGV/Game Engine Programming
19
IS. Intelligent Systems (10 core hours)
IS/Fundamental Issues (1)IS/Basic Search Strategies (5)IS/Knowledge Based Reasoning (4)IS/Advanced SearchIS/Advanced ReasoningIS/AgentsIS/Natural Language ProcessingIS/Machine LearningIS/Planning SystemsIS/RoboticsIS/Perception
20
IM. Information Management (11 core hours)
IM/Information Models (4) IM/Database Systems (3) IM/Data Modeling (4) IM/Indexing IM/Relational Databases IM/Query Languages IM/Relational Database Design IM/Transaction Processing IM/Distributed Databases IM/Physical Database Design IM/Data Mining IM/Information Storage and Retrieval IM/Hypermedia IM/Multimedia Systems IM/Digital Libraries
21
SP. Social and Professional Issues (16 core hours)
SP/History of Computing (1)SP/Social Context (3)SP/Analytical Tools (2)SP/Professional Ethics (3)SP/Risks (2)SP/Security OperationsSP/Intellectual Property (3)SP/Privacy and Civil Liberties (2)SP/Computer CrimeSP/Economics of ComputingSP/Philosophical Frameworks
22
SE. Software Engineering (31 core hours)
SE/Software Design (8)SE/Using APIs (5)SE/Tools and Environments (3)SE/Software Processes (2)SE/Requirements Specifications (4)SE/Software Verification Validation (3)SE/Software Evolution (3)SE/Software Project Management (3)SE/Component Based ComputingSE/Formal MethodsSE/Software ReliabilitySE/Specialized SystemsSE/Risk AssessmentSE/Robust and Security-Enhanced Programming
23
CN. Computational Science (no core hours)
CN/Modeling and SimulationCN/Operations ResearchCN/Parallel Computation
24