Computer science is an exciting and challenging field that has impact on many parts of our lives. Computer scientists craft the technologies that enable the digital devices we use every day. They develop the large-scale software that powers business and industry, and they advance the computational techniques and write the software that supports scientists in their study of the world around us. They create the software that social scientists use to identify and analyze patterns in the behavior of social groups and human behavior in social networks and the applications that humanists and linguists use to research language development. Many new applications of computing technology remain to be discovered. Indeed, computing will be at the heart of future revolutions in business, science and society. Students who study computer science now will be at the forefront of those important advances.

Computer science offers study in the fields of computer systems, cyber security, robotics, algorithm design, artificial intelligence, software and web engineering, programming languages, database design, human-computer interaction, machine learning, data science, numerical and parallel computing, speech and language processing and theoretical computer science.

Computer science is concerned with how computers are constructed, how they store and process data, how they are used in problem solving and how the quality of those solutions is assessed. It is about the science of creating software for a variety of users. It is about understanding how that software interacts with the hardware on which it is run. Computer science goes well beyond the machine to the study of how people interact with the technologies around them. Applications of computer science reach far and wide.
 

For more information, visit the department’s BA Degree webpage.

A student may not earn both the BS and BA in computer science. A student may not earn both a bachelor's degree in computer science and the minor in computer science from CU Boulder.

Requirements

The degree provides considerable freedom in the selection of specific courses to fulfill major requirements, allowing students to tailor the degree to their individual needs and interests.

For more information, visit the department’s BA Degree webpage.

Students earning a BA in Computer Science from the College of Engineering and Applied Science must meet the graduation requirements as laid out by the College of Engineering and Applied Science.

Note: Prior to the 2020–2021 academic year, this program was offered by the College of Arts & Sciences. Students who declared this program prior to the 2020–2021 academic year should refer to the requirements as defined during the academic year the major was declared (see the University Catalog archive).

Required Courses and Credits

Students must complete modified General Education requirements, which include about 42–48 credit hours, in addition to the required courses for the CS major listed below. Students will complete one lower division and one upper division writing course, 12 credit hours of Arts & Humanities, 12 credit hours of Social Sciences, 12 credit hours of Natural Science, 3 credit hours of Diversity with U.S. Perspective, and 3 credit hours of Diversity with Global Perspective. The courses that fulfill the Diversity requirement are allowed to double count with other areas of General Education as appropriate by the assigned course attributes. Students can use courses from their General Education to also count for their additional area of study or major requirements. 

Students are required to pursue an Additional Area of Study as part of earning a BA in computer science. The additional area can be any available minor or certificate from any of CU Boulder's colleges and schools (Arts & Sciences, Business, EAS, CMCI, Education, Music). Students completing a dual degree (by pursuing another major) fulfill the requirement with those plans. 

Any Additional Area of Study that is not part of a dual degree must be at least 15 credit hours. Programs that do not meet this requirement will be considered by petition and students will be required to add additional coursework.

The minimum required hours to complete the CSEN-BA degree is 120 total credit hours.

Foundations Courses23
CSCI 1300Computer Science 1: Starting Computing4
CSCI 2270Computer Science 2: Data Structures4
CSCI 2400Computer Systems4
CSCI 3104Algorithms4
CSCI 3155Principles of Programming Languages4
CSCI 3308Software Development Methods and Tools3
Core Courses
Choose four:12-15
Fundamentals of Human Computer Interaction
Introduction to Artificial Intelligence
Design and Analysis of Database Systems
Introduction to Robotics
Introduction to CyberSecurity for a Converged World
Theory of Computation
Numerical Computation
Numerical Methods and Scientific Computing
Design and Analysis of Operating Systems
Advanced Data Science
Network Systems
Object-Oriented Analysis and Design
CSCI Upper-Division Electives
Choose two to four additional upper-division CSCI courses or approved courses from outside CSCI to reach 45 CSCI credit hours.7-10

Required Ancillary Coursework 

Mathematics
Calculus8-13
Calculus 1
Calculus 1 for Engineers
Calculus 1 with Algebra, Part B
Calculus 2
Calculus 2 for Engineers
Discrete Mathematics
Choose one:3
Discrete Structures
Discrete Mathematics for Computer Engineers
Discrete Applied Mathematics
Introduction to Discrete Mathematics
Linear Algebra or Probability/Statistics
Choose one:3-4
Linear Algebra
Linear Algebra with Computer Science Applications
Introduction to Linear Algebra for Non-Mathematics Majors
Introduction to Linear Algebra for Mathematics Majors
Matrix Methods and Applications
Probability/Statistics
Introduction to Data Science with Probability and Statistics
Introduction to Probability and Statistics
Introduction to Probability Theory
Applied Probability
Applied Probability
Introduction to Statistics with Computer Applications
Statistical Methods and Application I
Logic & Ethics
Logic
Choose one:3
Critical Thinking
Symbolic Logic
Ethics
Choose one:3
Computing, Ethics and Society
Ethics
Contemporary Social Problems
Ethics and Information Technology
Ethical Theory
Critical Encounters
The Meaning of Information Technology
Leadership, Fame and Failure
Ethical and Policy Dimensions of Information and Technology
Additional Area of Study
Approved minor, certificate or dual degree program at CU Boulder15

Recommended Four-Year Plan of Study

This four-year plan of study is based on students starting at the Calculus 1 level. This plan is flexible and CSCI course substitutions in year two based on starting MATH or other requirements should be discussed with an academic advisor.

General Education Distribution and Diversity requirements can be met with courses for the Additional Area of Study. Some additional areas of study may exceed 120 total credit hours.

For more information on required courses including all options for Calculus, additional MATH, PHIL and CSEN-BA Core and Upper Division electives, see the Requirements tab. Detailed information is also available on the BA Degree Requirements webpage.

Plan of Study Grid
Year One
Fall SemesterCredit Hours
CSCI 1300 Computer Science 1: Starting Computing 4
MATH 1300 Calculus 1 5
Logic or Ethics Course (Logic recommended prior to Discrete Structures, also counts toward Gen Ed) 3
General Education Distribution Course (example: Social Science or Natural Science) 3 - 4
Engineering First-Year Seminar 1
 Credit Hours16-17
Spring Semester
CSCI 2270 Computer Science 2: Data Structures 4
MATH 2300 Calculus 2 5
Logic or Ethics Course (Logic recommended prior to Discrete Structures, also counts toward Gen Ed) 3
General Education Skills course (example: Lower-division Written Communication) 3
 Credit Hours15
Year Two
Fall Semester
CSCI 2400 Computer Systems 4
CSCI 2824 Discrete Structures 3
General Education Distribution course (example: Arts & Humanities) 3
Additional Area of Study Course 3
General Education Distribution course (example: Natural Science) 3 - 4
 Credit Hours16-17
Spring Semester
CSCI 3104 Algorithms 4
CSCI 3308 Software Development Methods and Tools 3
Linear Algebra, Probability or Statistics course 3-4
Additional Area of Study 3
Additional Area of Study 3
 Credit Hours16-17
Year Three
Fall Semester
CSCI 3155 Principles of Programming Languages 4
CSCI core course or CSCI Upper-division Elective 3-4
Additional Area of Study 3
Upper-divison General Education Skills course (example: Upper-division Written Communication) 3
General Education Distribution course (example: Natural Sciences with or without lab) 3-5
 Credit Hours16-19
Spring Semester
CSCI core course or CSCI Upper-division Elective 3-4
CSCI core course or CSCI Upper-division Elective 3-4
Additional Area of Study 3
General Education Distribution/Diversity course (example: Social Sciences/Global Perspective) 3
Free Elective 2
 Credit Hours14-16
Year Four
Fall Semester
CSCI core course or CSCI Upper-division Elective 3-4
CSCI Upper-division Elective or Capstone-1 3-4
Additional Area of Study or General Education Distribution course 3
Additional Area of Study or General Education Distribution course 3
General Education Distribution course 3
 Credit Hours15-17
Spring Semester
CSCI Upper-division Elective 3-4
CSCI Upper-division Elective or Capstone-2 3-4
Additional Area of Study or General Education Distribution course 3
Additional Area of Study or General Education Distribution/Diversity course (example: Social Sciences/US Perspective) 3
 Credit Hours12-14
 Total Credit Hours120-132

Learning Outcomes 

Upon graduation, students are expected to be able to:

  • Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions.
  • Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline.
  • Communicate effectively in a variety of professional contexts.
  • Recognize professional responsibilities and make informed judgments in computing practice based on legal and ethical principles.
  • Function effectively as a member or leader of a team engaged in activities appropriate to the program’s discipline.
  • Apply computer science theory and software development fundamentals to produce computing-based solutions. 

Program Educational Objectives

Within 3–5 years after graduating with a Bachelor of Arts degree in computer science, our graduates will be:

  • Broadly educated and versatile. Able to draw upon foundational knowledge, learn, adapt and successfully bring to bear analytical and computational approaches on changing societal and technological challenges.
  • Inspiring and collaborative. Are leaders and responsible citizens whose strengths come from an ability to draw on and contribute to diverse teams, expertise and experiences.
  • Innovative. Drive scientific and societal advancement through technological innovation and entrepreneurship.
  • Engaged. engaged with the University of Colorado, the state of Colorado and technical and scientific professional communities.

Bachelor's–Accelerated Master's Degree Program(s)

The bachelor's–accelerated master's (BAM) degree program options offer currently enrolled CU Boulder undergraduate students the opportunity to receive a bachelor's and master's degree in a shorter period of time. Students receive the bachelor's degree first, but begin taking graduate coursework as undergraduates (typically in their senior year).

Because some courses are allowed to double count for both the bachelor's and the master's degrees, students receive a master's degree in less time and at a lower cost than if they were to enroll in a stand-alone master's degree program after completion of their baccalaureate degree. In addition, staying at CU Boulder to pursue a bachelor's–accelerated master's program enables students to continue working with their established faculty mentors.

Admissions Requirements

BA and MS in Computer Science

In order to gain admission to the BAM program named above, a student must meet the following criteria:

  • Have a cumulative GPA of 3.50 or higher.
  • Have completed all prerequisite courses with grades of B or better:
CSCI 1300Computer Science 1: Starting Computing4
CSCI 2270Computer Science 2: Data Structures4
CSCI 2400Computer Systems4
CSCI 3104Algorithms4
CSCI 3155Principles of Programming Languages (or CSCI 3753 Design and Analysis of Operating Systems)4
  • Students who do not meet the first two criteria, must have one letter of reference from a faculty member or your undergraduate academic advisor outlining why you should be considered. Your letter-writer should send their letter directly to gradadms@cs.colorado.edu.
  • Have at least junior status within the bachelor’s degree program.
  • Students may submit their intent to apply during the term they are completing their final class from the list of prerequisites.

BA in Computer Science, MS in Computational Linguistics, Analytics, Search and Informatics

In order to gain admission to the BAM program named above, a student must meet the following criteria:

  • Have a cumulative GPA of 3.50 or higher. 
  • Have completed all prerequisite courses with grades of B or better:
CSCI 1300Computer Science 1: Starting Computing4
CSCI 2270Computer Science 2: Data Structures4
CSCI 3104Algorithms4
or CSCI 3022 Introduction to Data Science with Probability and Statistics
LING 2000Introduction to Linguistics3
CSCI 3832/5832Natural Language Processing3
or CSCI 3202 Introduction to Artificial Intelligence
or CSCI 4622 Machine Learning
One of the following courses during the semester the student applies:
Semantics and Pragmatics
Morphology and Syntax
Linguistic Phonetics
  • Have at least junior status within the bachelor’s degree program.
  • Provide two letters of reference, one written by the course instructor of the LING 5XXX course they are taking during the semester they apply, the other by the instructor from an upper-division course in Computer Science. Letters should be sent directly to the CLASIC Program Coordinator.

BA in Computer Science, MS in Data Science

In order to gain admission to the BAM program named above, a student must meet the following criteria:

  • Have a cumulative GPA of 3.25 or higher. 
  • Have completed all prerequisite courses with grades of B or better:
CSCI 1300Computer Science 1: Starting Computing4
CSCI 2270Computer Science 2: Data Structures4
CSCI 2400Computer Systems4
CSCI 3022Introduction to Data Science with Probability and Statistics3
CSCI 3308Software Development Methods and Tools3
  • Have at least junior status within the bachelor’s degree program.
  • Students may submit their intent to apply during the term they are completing their final class from the list of prerequisites.

BA in Computer Science, MS in Network Engineering

In order to gain admission to the BAM program named above, a student must meet the following criteria:

  • Have a cumulative GPA of 3.300 or higher
  • Have completed the following prerequisite courses with a B or better. (If a student has transfer credit for one of the following courses, or has taken a commonly accepted course substitution for one of the above courses, their grade in that alternate course can be used to determine their eligibility for this BAM program.)
CSCI 1300Computer Science 1: Starting Computing4
CSCI 2270Computer Science 2: Data Structures4
CSCI 2400Computer Systems4
CSCI 3308Software Development Methods and Tools3
CSCI 3753Design and Analysis of Operating Systems4
  • Have at least junior status within the bachelor’s degree program.
  • Students may submit their intent to apply during the term they are completing their final class from the list of prerequisites.

Program Requirements

Students may take up to and including 12 hours while in the undergraduate program which can later be used toward the master's degree. However, only 6 credits may be double-counted toward the bachelor's degree and the master's master’s degree. 

Students must apply to graduate with the bachelor's degree, and apply to continue with the master's degree, early in the semester in which the undergraduate requirements will be completed.

Please see the computer science accelerated master's webpage for more information.