CSCI Core Curriculum

Computer Science Core

Diagram of Core Courses for Computer Science (BS) Major
  • 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 alone, students can take CSCI 330 and/or 345.
  • After completing CSCI 301 and 241, students are able to take CSCI 305, and then 405.
  • After completing CSCI 241 and 247, 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.

Computer Science Electives

16 credits of electives from this list, with no more than 4 coming from independent study or research

  • CISS 421 Computer Forensics (CISS 461 or CSCI 461)
  • CSCI 321 Game Programming (CSCI 241)
  • CSCI 342 Web Scripting (CSCI 330)
  • CSCI 351 Windows Software Development (CSCI 345)
  • CSCI 372 Robotics: Applications of Artificial Intelligence (Permission of Instructor)
  • CSCI 380 Numerical Computations (CSCI 241, MATH 204)
  • CSCI 400 Independent Study (Permission of Instructor)
  • CSCI 401 Automata and Formal Language Theory (CSCI 301)
  • CSCI 402 Artificial Intelligence (CSCI 301)
  • CSCI 404 Natural Language Processing (CSCI 301)
  • CSCI 410 Programming Languages (CSCI 301)
  • CSCI 412 Mobile Device Programming (CSCI 330, CSCI 367)
  • CSCI 415 Parallel Computation (CSCI 305, CSCI 347, CSCI 367)
  • CSCI 424 Social Network Analysis (CSCI 241, MATH 204, MATH 341)
  • CSCI 426 Principles of Human-Centered Technology Design (CSCI major status or Permission of Instructor)
  • CSCI 430 Database Theory (CSCI 301, CSCI 330)
  • CSCI 436 Technology for Social Good (CSCI major status or permission of instructor)
  • CSCI 440 Virtual Worlds (CSCI 345 or Permission of Instructor)
  • CSCI 442 Advanced Web Programming in Java (CSCI 342, CSCI 351 recommended)
  • CSCI 450 Compilers (CSCI 301)
  • CSCI 461 Computer Security (CSCI 301, CSCI 367 recommended)
  • CSCI 462 OS Device Drivers (CSCI 460)
  • CSCI 463 Cyber Defense (Permission of Instructor)
  • CSCI 467 Computer Networks II (CSCI 367)
  • CSCI 471 Machine Learning Algorithms (CSCI 241, MATH 341, MATH 204 recommended, MATH 224 recommended)
  • CSCI 474 Bioinformatics (Permission of Instructor)
  • CSCI 477 Data Mining (CSCI 241, MATH 204, MATH 341)
  • CSCI 479 Spoken Language Processing (CSCI 301, CSCI 305 and CSCI 341) (or Permission of instructor)
  • CSCI 480 Computer Graphics (CSCI 241, MATH 204)
  • CSCI 496 Research (Permission of Instructor)
  • CSCI 497 This course number is reserved for new topics. It will always have a single letter suffix such as 497D. (Prereqs TBA)
  • M/CS 335 Linear Optimization (MATH 204, CSCI 141)
  • M/CS 375 Numerical Computation (MATH 204, CSCI 141)
  • M/CS 435 Nonlinear Optimization (MATH 204,224, CSCI 141)
  • M/CS 475 Numerical Analysis (MATH 224, M/CS 375)
  • M/CS 478 Fundamentals of Cryptography (MATH 204, MATH 341 and one of: CSCI 140, CSCI 141, MATH 307)

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

Notes

  • Students can apply to the CSCI major in the quarter they are completing CSCI 241, 247, 301. At most two attempts at one of these three classes is allowed.
  • Math prerequisites are listed underneath the CSCI core courses for which they are required. 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 fulfill the requirements of the year in which you declared the major.
  • You must pass all required courses with a C-or better.
  • Please refer to the catalog for the complete list of requirements for the BS in Computer Science