Computer Science
Computer science encompasses the theory and practice of solving computational problems. Computer scientists design and analyze software, algorithms, computer systems, and theories that continue to advance the modern technological world.
The Computer Science B.S. provides a broad computing foundation with opportunities to study areas such as artificial intelligence, security, graphics, robotics, operating systems, networking, and communication.
Is Computer Science Right for You?
The Computer Science major may be a good fit for students interested in:
- Designing software, algorithms, and computing systems
- Understanding how computers and software work
- Solving theoretical and applied computational problems
- Exploring multiple areas of computing before selecting a specialization
- Preparing for technical careers or graduate study in computing
Computer Science Degree Options
Computer Science B.S.
Students may complete the general Computer Science B.S. or select an emphasis. An emphasis allows students to maintain a broad computer science foundation while developing additional expertise in a particular area.
The general Computer Science B.S. provides flexibility for students to explore several areas of computing through upper-division electives.
- Computer Science B.S. Requirement Sheet
- Computer Science B.S. Sample Plan
Artificial Intelligence Emphasis
The Artificial Intelligence emphasis explores the breadth of computer science while providing additional specialization in machine learning and artificial intelligence.
- Computer Science B.S. Emphasis Requirement Sheet
- Artificial Intelligence Emphasis Sample Plan
Application Development Emphasis
The Application Development emphasis introduces key principles of software design and development, with a focus on application platforms, human-centered design, and end-user security.
- Computer Science B.S. Emphasis Requirement Sheet
- Application Development Emphasis Sample Plan
Secure Computing Emphasis
The Secure Computing emphasis explores the breadth of computer science while providing additional specialization in computer and information security.
- Computer Science B.S. Emphasis Requirement Sheet
- Secure Computing Emphasis Sample Plan
Games Emphasis
The Games emphasis combines a broad computer science education with coursework that prepares students for careers and further study in games and animation.
- Computer Science B.S. Games Emphasis Requirement Sheet
- Games Emphasis Sample Plan
Course and Planning Resources
The requirement sheets provide detailed degree requirements, while the flowcharts offer suggested course sequences. Students should use these resources together with their Degree Audit and meet with an academic advisor to develop an individualized graduation plan.
Computer Science Elective Guidelines
- Students completing the general Computer Science B.S. must complete:
- Six CS electives at the 3000 level or above, with at least three credits each
- One approved mathematics, science, or engineering elective of at least three credits that has MATH 1220 as a prerequisite or corequisite
- One ethics course: CS 2395, CS 3090, or CS 3390
- Elective requirements may differ for students completing an emphasis. Students should follow the requirement sheet for their selected program.
Graduate-Level Courses
Graduate-level CS 6XXX courses may count as CS electives with instructor permission. Check with your academic advisor before enrolling.
CS 3100 and CS 3200
Students who complete both CS 3100 and CS 3200 may use one course to satisfy the theory-restricted elective requirement and the other as a CS elective.
Courses That Do Not Count as CS Electives
The following courses may not be used as Computer Science electives:
- CS 3090: Ethics in Computing*
- CS 3390: Ethics in Data Science*
- CS 3991: Computer Engineering Junior Seminar
- CS 3992: Computer Engineering Pre-Thesis, Pre-Clinic, or Pre-Project
- CS 4710: Computer Engineering Senior Project
- CS 4991: Computer Engineering Senior Thesis I
- CS 4992: Computer Engineering Senior Thesis II
*CS 3090 and CS 3390 satisfy the ethics requirement but do not count as CS electives.
Courses That Do Not Count as the Math, Science, or Engineering Elective
The following may not be used to satisfy the mathematics, science, or engineering elective requirement:
- Any CS or DS course
- MATH 3010
- MATH 3070 or MATH 5010 if CS 3130 is taken
- MATH 2250 if MATH 2270 or MATH 2280 is taken
Questions About the Computer Science Major?
Academic advisors can help students compare the general Computer Science B.S. with its emphases, understand degree requirements, select electives, and plan an appropriate course sequence.
A couple of formatting choices will make this long page much easier to use:
- Display the five degree options as cards or expandable sections.
- Put each worksheet and flowchart directly beneath its corresponding program.
- Keep the shared course list in one “Course and Planning Resources” section.
- Use shaded callout boxes for the two “Courses That Do Not Count” sections.
- Add a small table of contents at the top with links to Degree Options, Planning Resources, Elective Guidelines, and Advising.
