Why Study Computer Science? What’s required to earn a degree? It's all summarized in our major map for Computer Science (CS).
Major Concentrations
Concentrations highlight areas of specialization within the department and guide student elective choices. Each concentration has an approved list of CS courses, available from the computer science office or the department website. Concentrations may also include recommended science or mathematics courses or a recommended minor in another field.
Computer Science (CS) Major
CS General Information
Computer science is a vast source of intellectual challenges, from understanding the fundamental mathematics of computational complexity to designing the next generation of Internet protocols to organizing and distributing vast stores of genomics data. Computer science is a rapidly-growing field, and graduates are in demand in the job market and for graduate school. The CS major provides a broad, comprehensive education that prepares graduates not only to adapt to future opportunities, but also to create them.
CS General University Requirements
To earn a UO bachelor's degree, you must satisfy general university requirements as stated in the UO Catalog for the year you entered the major.
The College of Arts and Sciences awards both Bachelor of Science (BS) and Bachelor of Arts (BA) degrees to students who major in CS. If you fulfill the CS major requirements, you will automatically qualify for a BS degree. To qualify for the BA degree, you must also fulfill the College of Arts and Science's language requirement.
Declaring the CS Major
Students interested in a CS major must meet with a Tykeson Hall Academic Advisor on the Scientific Discovery and Sustainability (SDS) team prior to declaring the major.
During the advising appointment, you will develop an academic plan for completing the CS major. You are also encouraged to meet with an advisor as you progress through the major to be sure that you are satisfying your major and UO degree requirements.
CS Degree Overview
To obtain a computer science degree, you must satisfy the specific CS major requirements as stated in the UO Catalog at the time you are admitted to the major:
- CS major core courses
- CS upper-division concentration and elective requirements
- Math, Science, and Writing requirements
CS Upper-Division and Elective Concentration Requirements
Concentrations highlight areas of specialization within the department and guide student elective choices. Each concentration has an approved list of CS courses, available from the computer science office or from the list below. Concentrations may also include recommended science and math courses; some include a recommended minor in another field. The department offers the following choices of CS concentrations:
- High Performance Computing/Computational Science
- Computer Networks
- Computer Security
- Machine Learning/AI/Data Science
- Foundations
- Software Development
CS Major Progress Review
Students should schedule an appointment with a CS advisor and complete a CS Major Progress Review Form after beginning CS upper-division core courses.
Satisfactory Progress in the CS Major Lower Division
Computer Science supports student preparedness for upper-division courses, as indicated by grades earned in lower-division courses. Strong preparation in lower-division courses provides the foundation for success in major upper-division courses and continuous progress toward major and UO degree requirements. Students must earn grades of B- or higher in CS 210, 211, 212 and Math 231, 232 to automatically advance to upper-division CS courses.
When a student receives a grade lower than a B- in one of these courses, Computer Science strongly recommends that students repeat the course to earn the required B- or higher grade prior to attempting subsequent courses. Students repeating a course should plan to take advantage of supplemental instruction opportunities such as Class Encore weekly small group meetings.
If there were exceptional circumstances, students with at most one C grade (any level) in the lower-division required courses may petition for a prerequisite override to register for upper-division computer science courses. Students should be aware that such petitions are not automatically approved.
Students are required to meet with a Tykeson Hall Academic Advisor on the Scientific Discovery and Sustainability (SDS) team before submitting a petition for a prerequisite override to register for upper-division courses. You may speak with the advisor about any issues that may have prevented you from making satisfactory progress in the lower-division major course. Your advisor will assist you in determining next steps and submitting a petition, if this is determined to be appropriate.
In addition to your statement, CS UEC will review your experience and grades in all of the lower-division foundational core courses to determine your preparedness for upper-division courses in the major.
Satisfactory Progress in the CS Major Upper Division
All upper-division coursework must be completed with a grade of C- or better. Unless otherwise indicated, all required coursework used to satisfy major requirements must be taken graded. At least 12 credits of CS upper division elective courses numbered 410 or higher must be taken graded.
Students who receive two grades below C- in upper-division courses are not making satisfactory progress in the major. Students not making satisfactory progress should schedule an appointment with a Tykeson Hall Academic Advisor on the Scientific Discovery and Sustainability (SDS) team as soon as possible to discuss the best way to proceed, for example, modifying the degree plan or exploring options including other majors, possibly with a CS minor.
CS Petitions
Exceptions or modifications to departmental requirements may be requested via a CS Petition form to the Undergraduate Education Committee. It is expected that you will have discussed the matter with a CS advisor before filing the petition.
Students with appropriate background who have consulted with a CS advisor may submit a CS Prerequisite Override Request form to the Undergraduate Education Committee to register for a particular course.
Prerequisites
Admission to a given CS course requires completion of all the prerequisites listed in the UO Catalog. Waiver of a prerequisite is possible only through a CS Prerequisite Override Request form to the Undergraduate Education Committee.
Prerequisite Override Requests should be submitted 10 days before the registration time for which the student needs that exception.
CS Core Requirements
Lower-Division Core Courses (20 credits)
Complete the following sequences concurrently. All courses must be taken Graded.
- CS 210-212 Introduction to Computer Science I-II-III
- MATH 231, 232 Elements of Discrete Mathematics I, II
Upper-Division Core Courses (28 credits)
Complete the following courses. All courses must be taken Graded.
- CS 313 Intermediate Data Structures
- CS 314 Computer Organization
- CS 315 Intermediate Algorithms
- CS 330 C/C++ and Unix
- CS 415 Operating Systems
- CS 422 Software Methodology I
- CS 425 Principles of Programming Languages
Mathematics (16 credits)
Complete one of the following two-course sequences. All courses must be taken Graded.
- MATH 251, 252 Calculus I, II
- MATH 261, 262 Calculus with Theory I, II
- MATH 246, 247 Calculus for the Biological Sciences
Students also choose eight credits from the following courses. Taken Graded.
- MATH 253 Calculus III OR MATH 263 Calculus with Theory III
- MATH 347 Fundamentals of Number Theory I
- MATH 351 Elementary Numerical Analysis I
- MATH 391 Fundamentals of Abstract Algebra I
- MATH 341 Elementary Linear Algebra
- MATH 343 Statistical Models/Methods OR MATH 425 Statistical Methods I
CS Upper-Division Concentration and Elective Requirements (20 credits)
Complete 20 credits of upper-division CS electives.
- 12 credits courses 410 or higher must be taken Graded.
- A maximum number of 8 credits from courses 300 - 409.
- A maximum of 8 credits in upper-division courses numbered less than 410, or DSCI 311. CS courses numbered 400–499 may be taken for a maximum of 4 credits when used to satisfy this requirement. (Individualized Study Courses).
- CS 407 and 399 repeatable only with different subtitles.
- A maximum of 8 upper division elective credits may be taken Pass/No Pass.
CS Math, Science, and Writing requirements
Math Requirement (4 credits)
Complete four credits of upper-division math electives.
- Choose any upper division math course (300-level or higher) with a prerequisite of Math 252 or higher, or CS 413, 420, 427, 473 Probabilistic Methods.
- CS courses used to complete mathematics elective cannot be used toward upper-division CS elective credits.
- The course can be taken Pass/ No Pass or Graded.
Science Requirement (12 credits)
Complete one of the following options. Accompanying labs are recommended, but not required. The courses may be taken Pass/No Pass or Graded.
- Physics: PHYS 201, 202, 203 General Physics I, II, III
- Physics: PHYS 251, 252, 253 Foundations of Physics I, II, III
- Chemistry: CH 221, 222, 223 General Chemistry I, II, III
- Chemistry: CH 224H, 225H, 226H Honors General Chemistry I, II, III
- Geography: GEOG 141 The Natural Environment and two from [GEOG 321 Climatology, GEOG 322 Geomorphology, or GEOG 323 Biogeography]
- Geological Sciences: GEOL/ERTH 201 Earth's Interior Heat and Dynamics, GEOL/ERTH 202 Earth Surface and Environmental Geology, GEOL/ERTH 203 Evolution of the Earth
- Psychology: PSY 201 Mind and Brain and choose two from [301 Scientific Thinking, 304 Biopsychology, 305 Cognition, 348 Music and the Brain]
- Biology: Choose one from [CH 111 Introduction to Chemical Principles OR CH 113 The Chemistry of Sustainability OR CH 221 General Chemistry OR CH 224 Honors General Chemistry] and BI 211 General Biology and choose one from [BI 212 General Biology or BI 213 General Biology]
To support interdisciplinary study, students on any concentration are encouraged to complete a minor (typically 24–32 credits) or major in a computing-related field. Students who complete a minor (other than computer information technology or mathematics) or another major (including mathematics) in a computing-related field may, with the approval of the Undergraduate Education Committee, replace the CS laboratory science requirement with the completed minor or major. Approval of a major or minor in substitution for the science concentration is not automatic. Students who wish to substitute a minor or second major for the science concentration should talk to an advisor and petition for the substitution as early as possible. The petition should clearly explain how computer science and the other major or minor are complementary.
Writing Requirement (4 credits)
Complete one of the following courses. The course may be taken Pass/No Pass or Graded
- WR 320 Scientific and Technical Writing
- WR 321 Business Communications