Transcript COMPUTER SCIENCE CURRICULUM
COMPUTER SCIENCE CURRICULUM Lan Jin Tsinghua University California State University-Fresno
COMPUTING CURRICULA 2001 KNOWLEDGE AREAS OF COVERAGE TRADITIONAL GUIDING PHILOSOPHIES FOR LEARNIING COMPUTER SCIENCE CURRICULUM AT CSU-FRESNO SOME SURVEY RESULTS
CURRICULA 2001
COMPUTER SCIENCE COMPUTER ENGINEERING SOFTWARE ENGINEERING INFORMATION SYSTEMS Web site: http://computer.org/education/curricula2001.htm
Knowledge Areas of CS Curriculum
Discrete Structures Programming Fundamentals Algorithms and Complexity Programming Languages Architecture and Organization Operating Systems Net-centric Computing
Knowledge Areas of CS Curriculum (continued)
Human-Computer Interaction Graphics and Visual Computing Intelligent Systems Information Management Software Engineering Social and Professional Issues Computational Science
TRADITIONAL GUIDING PHILOSOPHIES FOR LEARNING
Programming-first philosophy Imperative-first Object-first Function-first Breath-first philosophy Algorithm-first philosophy Hardware-first philosophy
CS CURRICULUM AT CSU-FRESNO
1 40 41 60 Math75 Math76 112 115 117 144 124 134 164 126 136 166 156 119 146 113 174 148 177 154 176 186 150 172 188 152 173 200 226 264 217 244 274 190 Core 191T 194 Grad. required 198 246 290 213 284 282 250 252 291T prerequisite 298 299 272 391T sequence
CS CURRICULUM AT CSU-FRESNO
Core Courses (28 units) Math75,76: College Calculus CSci112: Intro. To Computer Systems CSci1: Critical Thinking & C. S.
CSci113: Intro. To Comp. Organization CSci40: Intro. to Prog. & Problem Solving CSci115: Algorithms & Data Structures CSci117: Structures of Prog. Languages CSci41: Intro. to Data Structures CSci119: Intro. To Finite Automata CSci60: Foundations of C. S.
CSci144: Intro. To Operating Systems 1 112 41 40 60 Math75 Math76 115 119 113 172 154 117 144 124 134 164 146 176 186 150 126 136 166 156 174 148 177 188 152 173
CS CURRICULUM AT CSU-FRESNO
5 electives (15-17 units) CSci124: Intro. of File Processing CSci134: Compiler Design CSci150: Intr. of Software Engg.
CSci154: Simulation CSci156: Internetworking Systems & Protocols CSci164: A.I. Programming CSci172: Computer Graphics CSci174: Design & Anal. Of Algorithms CSci176: Parallel Processing CSci186: Formal Lang. & Automata CSci191T: Proseminar (Topic course) 190 1 40 Math75 Math76 191T 112 41 60 194 198 115 117 119 113 154 172 144 146 124 134 164 176 186 150 126 136 166 156 174 148 177 188 152 173
CS CURRICULUM AT CSU-FRESNO 3 of Sequences (9-12 units)
CSci124,126: Data Base Systems CSci134,136: Compiler Construction CSci164,166: Artificial Intelligence CSci150,152: Software Engineering CSci176,177: Computer Architecture (Parallel/Distributed Processing) CSci172,173: Computer Graphics CSci186,188: Theory of Computation CSci144,146: System Architecture CSci144,148: System Programming CSci170 (191T): Web Programming 115 112 115 119 117 144 144 115 113 144 119 41 Math76 41 112 124 134 164 126 136 166 146 148 170 176 186 150 177 188 152 173 172
CS CURRICULUM AT CSU-FRESNO Graduate Courses (x+30 units)
CSci200: Intro. to Research in C.S.
CSci174: Design & Anal of Algorithms or CSci188: Intro. To Computability CSci213: Computer Organization CSci217: Prog. Language Principles CSci298: Research Project or CSci299: Master’s Thesis 40 Math75 CSci226: DB; CSci244: OS CSci250: SE; CSci264: AI CSci272: CG; CSci282: TC CSci246: PP; CSci252: SDE CSci274: Combinatorial Algo. CSci284: Automata Theory 60 41 112 Math76 115 119 144 126 174 188 186 117 164 113 150 172 124 200 226 274 282 284 244 246 217 264 213 250 252 272 298 299 290 291T
COMPUTER SCIENCE CURRICULUM AT CSU-FRESNO (Topic course)
Example of a Topic Course - Csci 191T Course name: CSci 170 Web Programming OUTLINE Programming for the www Web servers and clients Internet and web protocols Markup languages Client-side scripting Document object models Event handling Server-side scripting Gateways Filter-based approach
SOME SURVEY RESULTS
- Knowledge important to a software professional General software design S/w engineering methods o.o. concept & techniques specific prog. languages data structures algorithm design s/w design & patterns s/w architecture analysis & design methods testing, verification, & quality assurance requirements gathering & analysis
SOME SURVEY RESULTS
- Knowledge important to a software professional (continued Software management Essential subsystem design Specialized application techniques project management configuration & release management software cost estimation human-computer interface /user interfaces databases file management computational methods for numerical problems computer graphics artificial intelligence
SOME SURVEY RESULTS
- Scientific topics other than core s/w engineering Real-time & Systems programming Computer Sci. theory Discrete mathematics Probability & statistics Linear algebra & matrices Continuous math.
operating system systems programming data transmission & networks parallel/distri. processing prog. language theory automata & formal lang.
queuing theory diff. & integral calculus
SOME SURVEY RESULTS
- Curriculum data First language taught 96-97, 97-98, 98-99 Primary teaching language 96-97, 97-98, 98-99 Use of closed Labs in 1996, 1997, 1998 C++ 39%, 47%, 50% C 14%, 11%, 20% Java -, 9%, 22% Ada 18%, 19%, 7% Pascal 23%, 6%, 2% C++ 54%, 68%, 77% C 27%, 9%, 24% Java -, 11%. 21% CS1: 70%, 74%, 71% CS2: 41%, 53%, 45% Other: 39%, 34%, 34%
SOME SURVEY RESULTS
- Upper-level courses: required vs. elective Programming lang Operating systems Analysis of algorithms Theory of computation Ethical, social issues Architecture Software engineering DBMS Compiler construction Networks Parallel computing Graphics Artificial intelligence 82% vs. 15% 89% vs. 20% 65% vs. 24% 55% vs. 33% 67% vs. 7% 73% vs. 30% 65% vs. 37% 21% vs. 77% 22% vs. 74% 12% vs. 85% 2% vs. 54% 1% vs. 94% 6% vs. 89%