Skip to main content Skip to footer site map
Computer Science Department

Computer Science Courses

Required Courses

  • IC210 Intro to Computer Science
  • IC211 Object-Oriented Programming
  • IC220 Computer Architecture and Organization
  • IC221 Systems Programming
  • IC312 Data Structures
  • IC322 Computer Networks
  • *SI242 Discrete Structures for Computing
  • SI340 Theory of Computing
  • *SI342 Theory of Computing
  • SI335 Computer Algorithms
  • IC411 Operating Systems
  • SI413 Programming Languages and Implementation
  • IC470 Software Engineering
  • IC480 Research Seminar/Capstone
*indicates new or modified courses for C/O '25 and beyond


Restricted Electives

SCS majors must take at least one of the following:
  • SI420 Artificial Intelligence
  • SI425 Natural Language Processing
  • SI435 Advanced Software Engineering
  • SI436 Distributed Systems
  • SI440 Database Systems
  • SI452 Advanced Computer Architecture
  • SI455 Advanced Computer Networks
  • SI458 High Performance Computing
  • SI460 Computer Graphics
  • IT462 Advanced Database Systems
  • SI470 Machine Learning and Data Science
  • SI475 Intelligent Robotics

Unrestricted Electives

In addition to one restricted elective, SCS majors must take at least two other electives from the following:
  • Any restricted elective not already taken as a restricted elective.
  • SI459 Binary Analysis & Exploitation
  • SI462 Advanced Computer Graphics
  • IT430 Computer and Network Security
  • IT432 Advanced Computer and Network Security
  • IT452 Advanced Web and Internet Systems
  • IT460 Human Computer Interaction
  • IT470 Enterprise Computing
  • IT472 Mobile OS Development
  • Any SI 485/486/495/496 course, as long as it is at least 3 credits.
  • Any IT 485/486/495/496 course, as long as it is at least 3 credits, and does not have the letter U,V, or W appended (e.g. IT485A is fine but IT485U is not).

Students should expect that not all the courses listed will actually be offered (due to small enrollments). Those students will be expected to select an alternate choice if the course is unavailable.

Non-Majors Courses

  • SI200 Information Systems for the Junior Officer
  • SI204 Introduction to Computer Science
  • SI221 Data Structures
  • SI268 Programming for Everyone

SI204 can count for IC210.

go to Top