CSCI Core Curriculum

Computer Science BS Core Curriculum

Core Curriculum Chart Computer Science Bachelors of Science
  • 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 newtopics. 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 2023 - 2024 catalog for the complete list of requirements for the BS in Computer Science.
  • Blue circle with a red border

= Earns you 1 Writing Proficiency (WP) point