Computer Science (BA/BS)

As a computer science major, you’ll study the computer as a machine—both concrete and abstract—and as a powerful tool for solving problems and exploring in a wide variety of areas. Through your computer science courses, you will learn how to design, analyze, and implement algorithms and programs, computer systems, and programming languages. You will have the opportunity to take classes in topics such as data science, artificial intelligence, networks and security, graphics and visualization, and more. From research and web design to data mining and software engineering, students in this field are on the cutting edge of prospective careers.

As computer science becomes increasingly intrinsic to countless aspects of daily life, the spectrum of career opportunities in this field continues to expand. By the time you graduate with a degree in computer science, you’ll be a computational thinker prepared to flourish in any profession you choose.

Program Learning Outcomes

Upon successful completion of this program, students will be able to:

  • Demonstrate technical competency in the main areas of computer science, including theoretical foundations, computer systems, programming languages, and software development.
  • Draw on a broad knowledge of computer science to design, implement, and test software solutions to significant problems in a variety of areas.
  • Understand the broad applicability and impacts of computing; be proficient in one or more subareas of computer science or applied computer science.
  • Adapt and extend fundamental knowledge and skills to new problem domains and emerging technologies.
  • Communicate and collaborate with others as part of a project team, and express ideas orally and in writing.
  • Recognize professional responsibilities and make informed judgments in computing practice based on ethical principles.

Computer Science Major Requirements

Computer science majors must complete at least 60 credits of CS courses, of which 24, including 12 upper-division credits, must be earned in residence at the University of Oregon. In addition, majors must complete  28 credits in mathematics, 12 credits in the sciences, and 4 credits of technical or business writing. The specific requirements for the CS major fall into five categories: core courses, concentration and elective courses, mathematics, writing, and science.

Computer Science I (CS 210), Computer Science II (CS 211), Computer Science III (CS 212), Elements of Discrete Mathematics I (MATH 231), and Elements of Discrete Mathematics II (MATH 232) must be passed with grades of B– or better before students can take the upper-division core courses. Courses required for the major must be taken for a letter grade; upper-division electives in CS courses numbered 410 or higher (12 credits) must also be taken for a letter grade. Upper-division courses must be passed with a grade of C– or better.

Core Courses: Lower Division
CS 210–212Computer Science I-III12
MATH 231–232Elements of Discrete Mathematics I-II8
Core Courses: Upper Division
CS 313Intermediate Data Structures4
CS 314Computer Organization4
CS 315Intermediate Algorithms4
CS 330C/C++ and Unix4
CS 415Operating Systems4
CS 422Software Methodology I4
CS 425Principles of Programming Languages4
Core Courses: Mathematics
Select one of the following:8
Calculus I-II
Calculus with Theory I-II
Calculus for the Biological Sciences I-II
Select two of the following:8
Fundamentals of Number Theory I
Elementary Numerical Analysis II
Fundamentals of Abstract Algebra I
Calculus III
Calculus with Theory III
Elementary Linear Algebra
Statistical Models and Methods
Statistical Methods I
Probability and Statistics for Data Science
Core Courses: Science
Select 12 credits from one the following science areas: 112
Biology 2
Introduction to Chemical Principles
The Chemistry of Sustainability
General Chemistry I
Advanced General Chemistry I
General Biology I,III
General Biology I-II
Chemistry 2
General Chemistry
Honors General Chemistry
Earth Sciences
Dynamic Planet Earth
Earth's Surface and Environment
History of Life
Geography
The Natural Environment
Select two of the following:
Climatology
Geomorphology
Biogeography
Physics 2,3
General Physics
Foundations of Physics I
Psychology
Introduction to Psychology I
Select two of the following:
Scientific Thinking in Psychology
Biopsychology
Cognition
Music and the Brain
Core Course: Writing
WR 320Scientific and Technical Writing4
or WR 321 Business Communications
or HC 301H Research and Writing: [Topic]
Electives: Upper Division
Upper-division CS courses in student's chosen concentration (concentration information below)12
Upper-division CS courses in student's chosen concentration, honors thesis, capstone project, or other upper-division courses 4,58
Upper-division mathematics or theoretical computer science course 64
Total Credits104
1

To support interdisciplinary study, students in 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.

2

Students are encouraged to complete the accompanying lab courses.

3

Physics is recommended for networks concentration students.

4

If Experimental Course: [Topic] (CS 410) courses are applied, they must have different topic subtitles to satisfy this requirement.  

5

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. Special Studies: [Topic] (CS 399), Seminar: [Topic] (CS 407), and Experimental Course: [Topic] (CS 410) courses must have different topic subtitles to satisfy this requirement.   CS 399 and CS 410 courses must have a prerequisite of CS 313 and have regular weekly class meetings and homework assignments.

6

The mathematics elective is selected from upper-division mathematics courses with a prerequisite of Calculus II (MATH 252) or higher, or from theoretical computer science courses. A list of theoretical computer science courses is available in the computer science office or the department website.

Major Progress Review and Major in Good Standing

Each major must meet with a computer science advisor and file the Major Progress Review form while taking Intermediate Data Structures (CS 313) or Computer Organization (CS 314). Mathematics and CS core courses and at least 12 credits of CS upper division elective courses numbered 410 or higher must be taken for letter grades and passed with grades of C– or better. Other courses used to satisfy the major requirements may be taken for letter grades or pass/no pass. Grades of C– or better or P must be earned in these courses. At least 12 of the CS upper-division credits applied to the degree must be taken in residence at the university.

Concentrations

Concentrations, or focus areas, 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.

AI and Machine Learning Concentration

The artificial intelligence and machine learning concentration prepares students to develop computational solutions to problems that require emerging problem solving techniques, often involving inference from large collections of noisy data.  Course work focuses on neural and statistical approaches to inference as well as search.  

Computer Networks Concentration

The Computer Networks concentration prepares students for careers as network systems administrators, network protocol developer-programmers, or network security specialists in a wide range of environments, including educational institutions, business enterprises, and government agencies, as well as for advanced graduate studies and research in the field of computer networks. Course work encompasses most aspects of network theory and practice.

High Performance Computing/Computational Science Concentration 

The High Performance Computing/Computational science concentration prepares students to apply computational and mathematical techniques to the analysis and management of scientific data. Course work in this concentration combines depth in applied and formal aspects of Computer Science.

Security Concentration

The Security concentration provides a foundation in topics and concepts relating to the security of computer systems and networks. It prepares students to work as security analysts and provides a highly desirable skill set for all employers, ranging from software engineers to administrators, in both the private and government sectors. It also provides a foundation for further graduate study and research in security. Course work encompasses a strong understanding of computer systems and networks and their security, and can be tailored to a more theoretical or more applied focus.

Software Development Concentration

The Software Development concentration prepares students for careers in software engineering, software project management, software quality assurance, and other areas involving the creation of software. Course work focuses on solving problems related to the cost of development as well as the quality of the software delivered in complex software projects.

Honors Program

Students with a GPA of 3.50 or higher in computer science and a cumulative GPA of 3.50 or higher, or a GPA of 3.75 or higher in computer science and a cumulative GPA of 3.25 or higher, are encouraged to apply to the department honors program after completing Intermediate Data Structures (CS 313), Computer Organization (CS 314), Intermediate Algorithms (CS 315), and C/C++ and Unix (CS 330). The application form is available in the department office. To graduate with departmental honors, a student must write and present a thesis under the supervision of a faculty member.  Honors students will take 4 credits of CS 403 Thesis and up to 4 credits of CS 401 Research to satisfy this requirement.

Computer Science Accelerated Master's Program

Computer Science undergraduate majors at the UO have the opportunity to graduate with B.S. and M.S. Computer Science degrees in a five-year program. See Computer Science Graduate Program (MS).

Four-Year Degree Plan

The degree plan shown is only a sample of how students may complete their degrees in four years. There are alternative ways. Students should consult their advisor to determine the best path for them. Additional information may be found at the department website.

Bachelor of Arts in Computer Science

Degree Map
First Year
FallMilestonesCredits
CS 122 Introduction to Programming and Problem Solving (recommended) 4
MATH 112Z Precalculus II: Trigonometry 4
WR 121Z Composition I 4
Core-education course in arts and letters 4
 Credits 16
Winter
CS 210 Computer Science I 4
MATH 251
Calculus I
or Calculus for the Biological Sciences I
4
WR 122Z
Composition II
or College Composition III
4
Core-education course in social science  
 Credits 12
Spring
CS 211 Computer Science II 4
MATH 252
Calculus II
or Calculus for the Biological Sciences II
4
Core-education course in arts and letters 4
Core-education course in social science 4
 Credits 16
 Total Credits 44
Degree Map
Second Year
FallMilestonesCredits
CS 212 Computer Science III 4
MATH 231 Elements of Discrete Mathematics I 4
First course of additional science sequence 4
Core-education course in social science that also satisfies a cultural literacy requirement 4
 Credits 16
Winter
CS 314 Computer Organization 4
MATH 232 Elements of Discrete Mathematics II 4
Second course of additional science sequence 4
Core-education course in arts and letters 4
 Credits 16
Spring
CS 322
Introduction to Software Engineering (recommended)
or Scientific and Technical Writing
or Business Communications
or Research and Writing: [Topic]
4
MATH 253
Calculus III
or Elementary Linear Algebra
or Statistical Models and Methods
or Statistical Methods I
or Probability and Statistics for Data Science
4
Third course of additional science sequence 4
Core-education course in arts and letters that also satisfies a cultural literacy requirement 4
 Credits 16
 Total Credits 48
Degree Map
Third Year
FallMilestonesCredits
CS 313 Intermediate Data Structures 4
MATH 253
Calculus III
or Elementary Linear Algebra
or Statistical Models and Methods
or Statistical Methods I
or Probability and Statistics for Data Science
4
WR 320
Scientific and Technical Writing
or Business Communications
or Research and Writing: [Topic]
or Introduction to Software Engineering
4
First term of second-language sequence 4
 Credits 16
Winter
CS 315 Intermediate Algorithms 4
CS 330 C/C++ and Unix 4
Upper-division mathematics elective course 4
Second term of second-language sequence 4
 Credits 16
Spring
CS 415 Operating Systems 4
Upper-division elective course with CS subject code 4
PHIL 223 Data Ethics (or core-education course in social science) 4
Third term of second-language sequence 4
 Credits 16
 Total Credits 48
Degree Map
Fourth Year
FallMilestonesCredits
CS 425 Principles of Programming Languages 4
Upper-division elective course (410-499) with CS subject code 4
Upper-division elective course 4
 Credits 12
Winter
CS 422 Software Methodology I 4
Upper-division elective course (410-499) with CS subject code 4
Upper-division elective course 4
 Credits 12
Spring
Upper-division elective course with CS subject code 4
Upper-division elective course (410-499) with CS subject code 4
Upper-division elective course 4
 Credits 12
 Total Credits 36

Bachelor of Science in Computer Science

Degree Map
First Year
FallMilestonesCredits
CS 122 Introduction to Programming and Problem Solving (recommended) 4
MATH 112Z Precalculus II: Trigonometry 4
WR 121Z Composition I 4
Core-education course in arts and letters 4
 Credits 16
Winter
CS 210 Computer Science I 4
MATH 251
Calculus I
or Calculus for the Biological Sciences I
or Calculus with Theory I
4
WR 122Z
Composition II
or College Composition III
4
Core-education course in social science 4
 Credits 16
Spring
CS 211 Computer Science II 4
MATH 252
Calculus II
or Calculus for the Biological Sciences II
4
Core-education course in arts and letters 4
Core-education course in social science 4
 Credits 16
 Total Credits 48
Degree Map
Second Year
FallMilestonesCredits
CS 212 Computer Science III 4
MATH 231 Elements of Discrete Mathematics I 4
First course of additional science sequence 4
Core-education course in social science that also satisfies a cultural literacy requirement 4
 Credits 16
Winter
CS 314 Computer Organization 4
MATH 232 Elements of Discrete Mathematics II 4
Second course of additional science sequence 4
Core-education course in arts and letters 4
 Credits 16
Spring
CS 322
Introduction to Software Engineering (recommended)
or Scientific and Technical Writing
or Business Communications
or Research and Writing: [Topic]
4
MATH 253
Calculus III
or Elementary Linear Algebra
or Statistical Models and Methods
or Statistical Methods I
or Probability and Statistics for Data Science
4
Third course of additional science sequence 4
Core-education course in arts and letters that also satisfies a cultural literacy requirement 4
 Credits 16
 Total Credits 48
Degree Map
Third Year
FallMilestonesCredits
CS 313 Intermediate Data Structures 4
MATH 253
Calculus III
or Elementary Linear Algebra
or Statistical Models and Methods
or Statistical Methods I
or Probability and Statistics for Data Science
4
WR 320
Scientific and Technical Writing
or Business Communications
or Research and Writing: [Topic]
or Introduction to Software Engineering
4
Elective course 4
 Credits 16
Winter
CS 315 Intermediate Algorithms 4
CS 330 C/C++ and Unix 4
Upper-division mathematics elective course 4
Elective course 4
 Credits 16
Spring
CS 415 Operating Systems 4
Upper-division elective course with CS subject code 4
PHIL 223 Data Ethics (or core-education course in social science) 4
Elective course 4
 Credits 16
 Total Credits 48
Degree Map
Fourth Year
FallMilestonesCredits
CS 425 Principles of Programming Languages 4
Upper-division elective course (410-499) with CS subject code 4
Upper-division elective course 4
 Credits 12
Winter
CS 422 Software Methodology I 4
Upper-division elective course (410-499) with CS subject code 4
Upper-division elective course 4
 Credits 12
Spring
Upper-division elective course with CS subject code 4
Upper-division elective course (410-499) with CS subject code 4
Upper-division elective course 4
 Credits 12
 Total Credits 36