CSCI Core Curriculum
Computer Science BS Core Curriculum
- For entry into the computer science program, students must first take CSCI 141, then CSCI 145.
- They must then take CSCI 301, 241, and 247 in any order.
- After completing CSCI 241 and being accepted into the major, students can take CSCI 330 and/or 345.
- After completing CSCI 301 and 241 and being accepted into the major, students are able to take CSCI 305, and then 405.
- After completing CSCI 241 and 247 and being accepted into the major, students are able to take CSCI 347, and then 447 and/or 367.
- A separate set of courses all students must complete are the senior project series, CSCI 491, 492, then 493.
- Students should plan to register for CSCI 491 and CISS 346 concurrently.
Math Requirements
Math 124, 125, 204, 341
Science Requirements
A three-course science sequence chosen from:
- CHEM 161, 162, 163
- PHYS 161, 162, 163
- BIOL 204, 205, 206
- GEOL 211, 212, and one of 303, 308, 309, 314, 315, 340
Computer Science Electives
16 credits of electives from this list, with no more than 4 credits coming from independent study or CSCI 496 Research
- CISS 421 - Computer Forensics - 4 Credits - (CISS 461 or CSCI 461)
- CSCI 321 - Game Programming - 4 Credits - (CSCI 241)
- CSCI 342 - Web Scripting - 4 Credits - (CSCI 330)
- CSCI 343 - Programming Workshop - 1 Credit - (CSCI 345)
- CSCI 372 - Robotics: Applications of Artificial Intelligence - 4 Credits - (Permission of Instructor)
- CSCI 400 - Independent Study (Permission of Instructor)
- CSCI 401 - Automata and Formal Language Theory - 4 Credits - (CSCI 301)
- CSCI 402 - Artificial Intelligence - 4 Credits - (CSCI 301)
- CSCI 404 - Natural Language Processing - 4 Credits - (CSCI 301)
- CSCI 410 - Programming Languages - 4 Credits - (CSCI 301)
- CSCI 412 - Mobile Device Programming - 4 Credits - (CSCI 330, CSCI 367)
- CSCI 415 - Parallel Computation - 4 Credits - (CSCI 305, CSCI 347, CSCI 367)
- CSCI 424 - Social Network Analysis - 4 Credits - (CSCI 241, MATH 204, and MATH 341)
- CSCI 426 - Principles of Human-Centered Technology Design - 4 Credits - (CSCI major status or Permission of Instructor)
- CSCI 430 - Database Theory - 4 Credits - (CSCI 301, CSCI 330)
- CSCI 436 - Technology for Social Good - 4 Credits - (CS major status or permission of instructor)
- CSCI 440 - Virtual Worlds - 4 Credits - (CSCI 345 or Permission of Instructor)
- CSCI 442 - Advanced Web Programming in Java - 4 Credits - (CSCI 342; CSCI 351 recommended)
- CSCI 450 - Compilers - 4 Credits - (CSCI 301)
- CSCI 461 - Computer Security - 4 Credits - (CSCI 301; CSCI 367 recommended)
- CSCI 462 - OS Device Drivers - 4 Credit - (CSCI 460)
- CSCI 463 - Cyber Defense - 1 Credit - (Permission of Instructor)
- CSCI 467 - Computer Networks II - 4 Credits - (CSCI 367)
- CSCI 474 - Bioinformatics - 4 Credits - (Permission of Instructor)
- CSCI 477 - Data Mining - 4 Credits - (CSCI 241, MATH 204, and MATH 341)
- CSCI 479 - Spoken Language Processing - 4 Credits - (CSCI 301, CSCI 305 and CSCI 341) or (Permission of Instructor)
- CSCI 480 - Computer Graphics - 4 Credits - (CSCI 241 an MATH 204)
- CSCI 481 - Deep Learning - 4 Credits - (CSCI 241, MATH 204, Math 341, Math 224 recommended)
- CSCI 496 - Research - 1-4 Credits - (Permission of Instructor)
- CSCI 497 - This course number is reserved for new topics. It will always have a single letter suffix such as 497D. (Pre-reqs TBA)
- DATA 471 - Machine Learning Algorithms (CSCI 241, Math 204, Math 224, and Math 341
- M/CS 335 - Linear Optimization - 4 Credits - (MATH 204, CSCI 141)
- M/CS 375 - Numerical Computation - 4 Credits - (MATH 204; one of CSCI 141)
- M/CS 435 - Nonlinear Optimization - 4 Credits - (MATH 204, MATH 224, MATH 331, CSCI 141,)
- M/CS 475 - Numerical Analysis - 4 Credits - (MATH 224, M/CS 375)
- M/CS 478 - Fundamentals of Cryptography - 4 Credits - (MATH 204, MATH 341; one of CSCI 140, CSCI 141, or MATH 307)
Notes
- Students should apply to the CS major in the quarter they are completing CSCI 241, 247, 301*.
- *At most, one retake of one of these courses is allowed.
Note: we count late withdrawals as one attempt. We make exceptions only in cases of hardship withdrawal from the quarter - Math prerequisites are listed underneath the CSCI core courses. These are minimum prerequisites and may not be taken concurrently.
- CSCI 491, 492, 493 (the senior project series) should be taken in your last three quarters. Requires departmental permission to register.
- You must pass all required courses with a C- or better.
- Please refer to the 2024-25 catalog for the complete list of requirements for the BS in Computer Science.
= Earns you 1 Writing Proficiency (WP) point