Requirements for CS Major
Required Core Courses (one or two course units)
- CSC 220: Computer Science I: Computational Problem Solving
- CSC 230: Computer Science II: Data Structures
- CSC 250: Accelerated CS I, II (by permission, also see additional constraints in Computer Science Options)
Additional Required Courses (six course units)
- CSC 260: Software Engineering
- CSC 310: Discrete Structures of Computer Science
- CSC 325: Computer Architecture
- CSC 345: Operating Systems
- CSC 410: Advanced Analysis of Algorithms
Required Mathematics Courses (three course units)
- MAT 127: Calculus A
- MAT 128 (Calculus B) or MAT 205 (Linear Algebra)
- STA 215: Statistical Inference
Computer Science Natural Science Options (3 course units)
Three major-level laboratory sciences and one additional math or science course (with advisement). Consult the department for details.
Foreign Language Requirements (2 or 3 course units)
Two courses in sequence in any of the modern languages are required if students opt for a language not previously studied in high school or another institution.
Alternatively, students continuing a foreign language previously taken in high school or at another institution must take three courses of that language in sequence. However, this requirement may be reduced by taking a placement test in that language. Based on the student’s performance on that test, 0, 1, 2, or 3 courses may be required.
Any course reduction in foreign language requirements results in an equivalent number of free elective courses, which must be selected from the areas of art, humanities, social science or history. Consult the department for details.
Note: Arabic 151 and 152: Chinese 151 and 152; Japanese 151 and 152; Persian 151 and 152; and Russian 151 and 152 are intensive courses and carry two course units of credit each. Students should take this into account when planning a normal four-course semester.
Computer Science Options (four or five course units)
Select three courses from the following “Part A” list. Students who take CSC 250 to satisfy CSC 220 and 230, must select four courses. Students may take additional options courses for free elective credit (exception: placement out of WRI 102 or foreign language must be replaced by liberal learning courses, not CSC courses).
Part A: Choose three (or four, see above) courses from the following: (3 or 4 course units)
- CSC 307: Data Mining and Predictive Modeling
- CSC 315: Database Management Systems (formerly CSC 446)
- CSC 320: Information Retrieval (cross listed as IMM 320)
- CSC 350: Computer Graphics (formerly Digital Computer Graphics)
- CSC 360: Networks
- CSC 365: Games I: Design and Architecture (cross listed as IMM 465)
- CSC 380: Artificial Intelligence
- CSC 390: Programming Languages
- CSC 434: Compilers and Interpreters
- CSC 450: Computer and Network Security
- CSC 465: Games II: Implementation and Project Management (cross listed as IMM 465)
- CSC 470: Topics in Computer Science
- CSC 471: Genomics and Bioinformatics (same as BIO 470 when the topic is Genomics and Bioinfomatics)
Part B: Choose one course from the following: (1 course units)
- CSC 399: Internship in Computer Science
- CSC 498: Mentored Research I in Computer Science
- CSC 499: Mentored Research II in Computer Science
Up to three capstone courses may be chosen, selected with advisement and departmental approval. The additional capstone course(s) may apply toward the Part A options, with departmental approval. CSC 391/Independent Study in Computer Science also requires departmental approval.