Major Requirements

Why Study Computer Science? What’s required to earn a degree? It's all summarized in our major maps for Computer Science (CS) and Math and Computer Science (MACS).


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.

Major Concentrations

 

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.

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 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:

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.

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.

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 extenuating 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 core courses, or three grades below C- in any upper-division CS classes, will be removed from the major.  Below C- grades are cumulative.  Retaking and passing a course does not change the total number of below C- grades.

Students not making satisfactory progress should schedule an appointment Tykeson Hall Academic Advisor on the Scientific Discovery and Sustainability (SDS) team to explore options including other majors, a CS minor, or submitting a petition to remain in the major.

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 number of 4 credits in any one course 400-409 (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 201 Earth's Interior Heat and Dynamics, GEOL 202 Earth Surface and Environmental Geology, GEOL 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

 

Math and Computer Science (MACS) Major

 MACS General Information

The major in mathematics and computer science serves students who want knowledge in both fields but who are not ready to specialize in either. The program is designed to develop team players for information-based occupations. Its graduates have the tools to analyze complex problems and to compute the answers to them. The joint major program offers students the chance to explore computer science while retaining strong foundations in mathematics.

MACS Degree Overview

To obtain a degree in Mathematics and Computer Science, you must satisfy the specific major requirements as stated in the UO Catalog at the time you are admitted to the major:

You need not complete all steps in order, but you should carefully plan all steps at the outset of your academic career. As a MACS major, it is essential that you meet with your advisor to be sure that you are satisfying your major requirements. Advising hours may be obtained from the department's main office, 120 Deschutes Hall.

You should also work with Academic Advising make sure you are satisfying your degree requirements.

MACS General University Requirements

To earn a bachelor's degree, you must satisfy general university requirements as stated in the UO Bulletin for the year you entered the UO. In addition, you must satisfy the specific MACS major requirements that are in effect at the time you are admitted to that program. Since the major requirements change over time, you must be careful to adhere to the requirements in effect at the time of admission to the program as a MACS major.

The College of Arts and Sciences awards both Bachelor of Science (BS) and Bachelor of Arts (BA) degrees to students who major in MACS. In general, if you fulfill the MACS 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

MACS Major Requirements

To be eligible for a BS or BA in Mathematics and Computer Science, you must meet the major requirements for MACS Core classes, and elective courses approved by your advisor.

MACS Lower-Division Requirements

When you declare MACS as your intended major, you must fulfill the following lower-division requirements before continuing in the MACS major.

  • Math 251, 252, 253 (Calculus I, II, III) OR Math 261, 262, 263 (Honors Calculus I, II, III)
  • Math 231, 232 (Discrete Mathematics I, II)
  • CS 210, 211, 212 (Computer Science I, II, III)

Students must earn grades of B- or higher in CS 210, 211, 212 and in Math 231, and 232 for automatic advancement to the upper-division courses. Students with at most one C in the lower-division required courses may submit a prerequisite override request form to continue in the major.

MACS Major Progress Review

Students should schedule an appointment with a CS advisor and complete a CS Major Progress Review Form after beginning Upper Division Courses.

Satisfactory Progress in the MACS Major Lower Division

Students must earn grades of B- or higher in CS 210, 211, 212 and in Math 231 and 232 for automatic advancement to upper-division CS courses.

Students with at most one C (any level) in the lower-division required courses and no other warning signs regarding preparedness for upper-division courses (for example, repeated courses or other low grades) may submit a prerequisite override request to continue in the major.  Students should be aware that requests are not automatically approved; approval depends on individual circumstances and will be conditional.

Students who receive a prerequisite override to register for a 300-level class must earn a grade of B- or better in that class. Any grade below B- in a class for which an override was given, will be treated as a grade below C- in an upper-division core course.

Satisfactory Progress in the MACS 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 core courses, or three grades below C- in any upper-division CS classes, will be removed from the major.

Petitions

Exceptions or modifications to departmental requirements may be requested via written petition to the CS Undergraduate Education Committee. It is expected that you will have discussed the matter with your advisor.

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 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.

Students with at most one C in the lower division required courses may submit a prerequisite override request to continue in the major. Other warning signs regarding preparedness for upper-division courses for example, repeated courses or other low grades are taken into consideration.

Students who receive a prerequisite override to register for a 300-level class must earn a grade of B- or better in that class. Any grade below B- in that class for which an override was given will be treated as a grade below C- within major requirements. (See Satisfactory Progress Policy above)

Students should be aware that requests are not automatically approved; approval depends on individual circumstances and will be conditional.

MACS Core Requirements

To obtain a BS or BA in Mathematics and Computer Science, you must complete the following core courses, totaling 100 credits, of which at least 12 credits in Mathematics and 12 credits in Computer and Information Science must be completed in residence at UO.

Lower-Division Courses (32 credits)

Complete the following sequences. 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
  • Complete one of the following sequences. All courses must be taken graded.
    • MATH 251, 252, 253 Calculus I, II, III
    • MATH 261, 262, 263 Calculus with Theory I, II, III

Mathematics Core Courses (24 credits)

Choose one of the following courses. The course must be taken graded.

  • MATH316 Elementary Analysis
  • MATH 347 Fundamentals of Number Theory
  • MATH 391 Fundamentals of Abstract Algebra 1

Complete the following courses. All courses must be taken graded.

  • MATH 341, 342 Elementary Linear Algebra I, II

Complete one of the following sequences. All courses must be taken graded.

  • MATH 351, 352 Elementary Numerical Analysis I, II
  • MATH 461, 462 Introduction to Mathematical Methods of Statistics I, II

Take one other upper-division mathematics course. This elective course must be taken graded. Note: Excluding MATH 425, 426 and 427.

Computer Science Core Courses (28 credits)

Complete the following courses. All courses must be taken graded.

  • CS 313 Introduction to Data Structures
  • CS 314 Computer Organization
  • CS 315 Introduction to Algorithms
  • CS 425 Principles of Programming Languages

Complete one of the following courses. The course must be taken graded.

  • CS 330 C/C++ and Unix
  • CS 322 Introduction to Software Engineering
  • CS 420 Automata Theory
  • CS 422 Software Methodology I

Complete two additional upper-division CS courses. These courses may be taken Pass/No Pass or Graded

CS 399 and CS 410 courses used as electives must have a prerequisite of CS 313 and have regular class meetings and homework assignments. At least one course must be numbered 410 or above.

Writing Course (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

Science Requirements (12 credits)

Complete one of the following options. 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
  • Biology: CH 111 Introduction to Chemical Principals or CH 113 The Chemistry of Sustainability or CH 221 General Chemistry or CH 224 Honors General Chemistry and BI 211 General Biology and BI 212 General Biology or BI 213 General Biology
  • Psychology: PSY 201 Mind and Brain, 202 Mind and Society, and 304 Biopsychology or 330 Thinking or 348 Music and the Brain
  • Geography: GEOG 141 The Natural Environment and two from GEOG 321 Climatology, GEOG 322 Geomorphology, or GEOG 323 Biogeography
  • Geological Sciences: GEOL 201 Earth's Interior Heat and Dynamics, GEOL 202 Earth Surface and Environmental Geology, GEOL 203 Evolution of the Earth