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.
Code | Title | Credits |
---|---|---|
Core Courses: Lower Division | ||
CS 210–212 | Computer Science I-III | 12 |
MATH 231–232 | Elements of Discrete Mathematics I-II | 8 |
Core Courses: Upper Division | ||
CS 313 | Intermediate Data Structures | 4 |
CS 314 | Computer Organization | 4 |
CS 315 | Intermediate Algorithms | 4 |
CS 330 | C/C++ and Unix | 4 |
CS 415 | Operating Systems | 4 |
CS 422 | Software Methodology I | 4 |
CS 425 | Principles of Programming Languages | 4 |
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 | ||
or MATH 352 | Elementary Numerical Analysis II | |
or MATH 391 | Fundamentals of Abstract Algebra I | |
Calculus III | ||
or MATH 263 | Calculus with Theory III | |
Elementary Linear Algebra | ||
Statistical Models and Methods | ||
or MATH 425 | Statistical Methods I | |
or MATH 345M | Probability and Statistics for Data Science | |
Core Courses: Science | ||
Select 12 credits from one the following science areas: 1 | 12 | |
Biology 2 | ||
Introduction to Chemical Principles | ||
or CH 113 | The Chemistry of Sustainability | |
or CH 221 | General Chemistry I | |
or CH 224H | Advanced General Chemistry I | |
General Biology I,III | ||
or BI 211–212 | General Biology I-II | |
Chemistry 2 | ||
General Chemistry | ||
or CH 224H–226H | 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 | ||
or PHYS 251–253 | 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 320 | Scientific and Technical Writing | 4 |
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,5 | 8 | |
Upper-division mathematics or theoretical computer science course 6 | 4 | |
Total Credits | 104 |
- 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
First Year | |||
---|---|---|---|
Fall | Milestones | Credits | |
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 or MATH 246 |
Calculus I or Calculus for the Biological Sciences I |
4 | |
WR 122Z or WR 123 |
Composition II or College Composition III |
4 | |
Core-education course in social science | |||
Credits | 12 | ||
Spring | |||
CS 211 | Computer Science II | 4 | |
MATH 252 or MATH 247 |
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 |
Second Year | |||
---|---|---|---|
Fall | Milestones | Credits | |
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 |
Third Year | |||
---|---|---|---|
Fall | Milestones | Credits | |
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 |
Fourth Year | |||
---|---|---|---|
Fall | Milestones | Credits | |
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
First Year | |||
---|---|---|---|
Fall | Milestones | Credits | |
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 or WR 123 |
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 or MATH 247 |
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 |
Second Year | |||
---|---|---|---|
Fall | Milestones | Credits | |
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 |
Third Year | |||
---|---|---|---|
Fall | Milestones | Credits | |
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 |
Fourth Year | |||
---|---|---|---|
Fall | Milestones | Credits | |
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 |