The following requirements are effective for students starting the degree in Fall 2019 or Spring 2020.

Students who started the degree before Fall 2019 should see the curriculum guide for their specific requirement term (term they entered the major).

Sample 4-Year Curriculum

Outside Area of Study

Any declarable program of at least 15 hours from any CU Boulder college (approved major, minor, certificate)

Computer Science

All of the following courses are required: 
  • CSCI 1300 Computer Science 1: Starting Computing (4)
  • CSCI 2270 Computer Science 2: Data Structures (4)
  • CSCI 2400 Computer Systems (4)
  • CSCI 3104 Algorithms* (4)
  • CSCI 3155 Principles* of Programming Languages (4)
  • CSCI 3308 Software Development Methods and Tools (3)

* These CSCI courses apply toward A&S requirement of 30 hours upper division A&S hours

Select four of the following (12-15): 

  • CSCI 3002 Fundamentals of Human Computer Interaction                          
  • CSCI 3202 Introduction to Artificial Intelligence*                                              
  • CSCI 3287 Design and Analysis of Data Systems                                          
  • CSCI 3302 Introduction to Robotics                                                                   
  • CSCI 3403 Introduction to CyberSecurity for a Converged World                
  • CSCI 3434 Theory of Computation*                                                                    
  • CSCI 3656 Numerical Computation* or APPM 4650, Intermediate Numerical Analysis 1 (only one of these will count towards the CSCI-BA)                           
  • CSCI 3753 Design and Analysis of Operating Systems                                 
  • CSCI 4273 Network Systems                                                                              
  • CSCI 4448 Object-Oriented Analysis and Design

* These CSCI courses apply toward A&S requirement of 30 hours upper division A&S hours 

Additional courses from the Computer Science Core list or the list below to bring the total number of computer science credit hours to 45 or more.
  • CSCI 3010-3, Programming Project Workshop
  • CSCI 3022-3, Introduction to Data Science with Probability and Statistics (can count for probability/statistics requirement OR CS elective credit, but not both)
  • CSCI 3090-3, Introduction to Quantum Computing*
  • CSCI 3112-1, Human-Centered Computing Professional Development (can count up to 3 credits only)
  • CSCI 3352-3, Biological Networks
  • CSCI 3702-3, Cognitive Science*
  • CSCI 3832-3, Natural Language Processing
  • CSCI 4113-3, Linux System Administration (also offered as TLEN 5842; only one of these will count)
  • CSCI 4114-3, Practical Algorithmic Complexity
  • CSCI 4122-3, Information Visualization
  • CSCI 4229-3, Computer Graphics
  • CSCI 4239-3, Advanced Computer Graphics
  • CSCI 4253-3, Datacenter Scale Computing
  • CSCI 4302-3, Advanced Robotics
  • CSCI 4314-3, Dynamic Models in Biology*
  • CSCI 4413-3, Computer Security & Ethical Hacking
  • CSCI 4446-3, Chaotic Dynamics
  • CSCI 4502-3, Data Mining
  • CSCI 4555-3, Compiler Construction
  • CSCI 4576-4, High-Performance Scientific Computing
  • CSCI 4593-3, Computer Organization
  • CSCI 4622-3, Machine Learning
  • CSCI 4753-3, Computer Performance Modeling
  • CSCI 4802-1, Data Science Team Companion Course (can count up to 3 credits)
  • CSCI 4809-3, Computer Animation
  • CSCI 4830-3, Special Topics in Computer Science (up to 9 credit hours total from 4830/4831 combined can count toward CS electives)
  • CSCI 4831-3, Special Topics in Algorithms (up to 9 credit hours total from 4830/4831 combined can count toward CS electives)
  • CSCI 4849-3, Input, Interaction, and Accessibility
  • CSCI 4889-3, Interactive Machine Learning for Customizable and Expressive Interfaces
  • CSCI 4900-3, Upper Division, Undergraduate Independent Study (maximum of 8 hours will count toward major)
  • APPM 4120/MATH 4120-3, Introduction to Operations Research
  • APPM 4370-3, Computational Neuroscience
  • APPM 4720-3, Open Topics in Applied Mathematics: Randomized Algorithms, instructor permission required
  • APPM 4720-3, Open Topics in Applied Mathematics: Applied Deep Learning, instructor permission required
  • ATLS 4120-3, Mobile Application Development (formerly offered as ATLS 4519 Special Topics: Mobile App Dev; only one of these will count toward the CSEN-BS) 
  • ATLS 4214-3, Big Data Architecture (formerly offered as CSCI 4830 Special Topics: Big Data or ATLS 4519 Special Topics: Big Data; only one of these will count toward the CSEN-BS)
  • ATLS 4320-3, Mobile Application Development: Advanced Topics (formerly offered as ATLS 4519 Special Topics: Adv Mobile App Development; only one of these will count toward the CSEN-BS)
  • ECEN 4133-3, Fundamentals of Computer Security
  • ECEN 4313-3, Concurrent Programming
  • INFO 3504-3, Problems in Information Science: Digital Identity
  • INFO 4602-3, Mastery in Information Science: Information Visualization
  • INFO 4604-3, Mastery in Information Science: Applied Machine Learning
  • INFO 4609-3, Mastery in Information Science: User Centered Design
  • INFO 4611-3, Mastery in Information Science: Ubiquitous Computer Experience Design (formerly INFO 4871 Experience Design in Ubicomp)
  • MATH 4440-3, Mathematics of Coding and Cryptography
  • MCDB 4520-3, Bioinformatics & Genomics

* These CSCI courses apply toward A&S requirement of 30 hours upper division A&S hours

Required Coursework from Outside Computer Science

Select one of the following calculus sequences (8-12):

Sequence 1 (preferred) 

  • MATH 1300 Calculus 1
  • MATH 2300 Calculus 2 

Sequence 2

  • APPM 1350 Calculus 1 for Engineers
  • APPM 1360 Calculus 2 for Engineers 

Sequence 3

  • APPM 1340 Calculus 1 with Algebra, Part A
  • APPM 1345 Calculus 1 with Algebra, Part B
  • APPM 1360 Calculus 2 for Engineers

Select one of the following courses (3):
  • CSCI 2824 Discrete Structures
  • MATH 2001 Introduction to Discrete Mathematics
  • APPM 3170 Discrete Applied Mathematics

Students are responsible for knowing and adhering to course prerequisites as listed in the course catalog. Some courses on this approved list may have prerequisites that are not otherwise required for the computer science major. CSCI 2824 is not approved for MATH courses that require MATH 2001; students may seek instructor approval to take such courses but admission is not guaranteed. 

Select one of the following courses (3-4):

Linear Algebra

  • CSCI 2820 Linear Algebra with Computer Science Applications       
  • or MATH 2130 Introduction to Linear Algebra for Non-Mathematics Majors
  • or MATH 2135 Introduction to Linear Algebra for Mathematics Majors
  • or APPM 3310 Matrix Methods and Applications


  • CSCI 3022 Introduction to Data Science with Probability and Statistics          
  • or MATH 3510 Introduction to Probability and Statistics
  • or MATH 4510 Introduction to Probability Theory
  • or APPM 3570 Applied Probability
  • or STAT 3100 Applied Probability
  • or ECON 3818 Introduction to Statistics with Computer Applications
  • or STAT 4000 Statistical Methods and Application I

Students are responsible for knowing and adhering to course prerequisites as listed in the course catalog. Some courses on this approved list may have prerequisites that are not otherwise required for the computer science major. 

Logic (3)  

Select one of the following logic courses:

Ethics (3)

Select one of the following ethics courses: 

  • PHIL 1100 Ethics
  • or PHIL 1200 Contemporary Social Problems
  • or PHIL 2160 Ethics and Information Technology
  • or INFO 4601 Mastery in Information Science: Ethical and Policy Dimensions of Information and Technology
  • or CSCI 2750  Computing, Ethics and Society

Upper Division PHIL Logic or Ethics courses may be substituted by petition.

Optional CS Senior Capstone / Honors Thesis

BA students are eligible to participate in the Software Engineering Project or Entrepreneurial Project courses, provided they meet the following criteria.

Software Engineering Project 

  • CSCI 4308-4, Software Engineering Project 1 (fall)
  • CSCI 4318-4, Software Engineering Project 2 (spring)

Entrepreneurial Project

  • CSCI 4348-4, Startup Essentials: Entrepreneurial Project 1
  • CSCI 4358-4, Entrepreneurial Project 2

Either sequence must be taken contiguously and may not be taken before the senior year.


To participate in either option, BA students must have taken the following courses:
  • CSCI 1300-4 (or equivalent)
  • CSCI 2270-4
  • CSCI 2400-4
  • CSCI 2824-3 (or other discrete math option)
  • CSCI 2820-3 (or other linear algebra option)
  • CSCI 3308-3, Software Development Methods and Tools
  • CSCI 3155-4, Principles of Programming Languages
  • At least two CS upper division courses (BA core preferred) in addition to CSCI 3308 and CSCI 3155 – 6-8 hours
  • TOTAL at least 31 hours in the major

Other requirements: Back to Top

  • GPA 3.0 or better in CSCI 
  • Completed upper division writing course 
  • Must have fall and spring semesters remaining in academic plan. 

If you meet the above criteria and want to apply for the upcoming fall, make an appointment with the BA advisor to review your degree audit. If you are not about to start your senior year, but have an interest in Senior Capstone for the future, use the criteria as guidelines for your upcoming course plans. 

Senior Capstone are controlled enrollment courses. The CS department will give priority to BS students for whom they are a requirement. BA students taking them for elective credit will be enrolled with instructor approval on a space-available, first-come, first-served basis. 

BA students can enroll in CSCI 4900-3 Independent Study followed by CSCI 4960-3 Computer Science Honors Thesis for two semesters (total 6 hours), conduct exploratory research in computer science, and complete and defend an A&S Honors Thesis as part of the A&S Honors Program. Visit the A&S Honors Program webpage or contact Shiv Mishra for more details

Additional Policies and Requirements

BA students are part of the College of Arts and Sciences and are subject to the requirements of that college.

Satisfying course requirements for the Computer Science BA major and A&S Core typically leaves about 20 hours for “free elective” courses. Students often need to complete free electives as upper division A&S Coursework to meet the degree requirement of 30 hours upper division A&S course work, even though courses from any CU Boulder college can be counted as free elective hours. Discuss any questions you have about these requirements with your academic advisor.

CSCI courses that are approved to count for uppper division A&S hours are listed in the Degree Audit with the Computer Science Major Required Courses. As of Fall 2017 only the following CSCI courses are approved for upper division A&S credit: CSCI 3104, 3155, 3202, 3434, 3702, 4314, 3656.

Graduating in Four Years

Consult the four-year guarantee requirements for information on eligibility. The concept of "adequate progress" as it is used here only refers to maintaining eligibility for the four-year guarantee; it is not a requirement for the major. To maintain adequate progress toward a BA in computer science, students should meet the following requirements:

  • Declare the computer science BA major and have taken Calculus 1 and CSCI 1300 by the end of their second semester.
  • Consult with a major advisor to determine adequate progress toward completion of the major and meeting upper-division Arts and Sciences requirements.