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.
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. A student may not earn both a BA degree in computer science and a BS degree in computer science from CU Boulder. A student may not earn a bachelor's degree in computer science and a minor in computer science from CU Boulder.
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. Writing courses approved by the College of Engineering and Applied Science can be counted for the writing requirements in the General Education writing categories. 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 Additional Area of Study 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.
Code | Title | Credit Hours |
---|---|---|
Foundations Courses | 23 | |
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 |
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 | ||
or APPM 4600 | 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
Code | Title | Credit Hours |
---|---|---|
Mathematics | ||
Calculus | 8-13 | |
Calculus 1 | ||
or APPM 1350 | Calculus 1 for Engineers | |
or APPM 1345 | Calculus 1 with Algebra, Part B | |
or MATH 1310 | Calculus for Life Sciences | |
Calculus 2 | ||
or APPM 1360 | Calculus 2 for Engineers | |
Discrete Mathematics | ||
Choose one: | 3 | |
Discrete Structures | ||
or ECEN 2703 | Discrete Mathematics for Computer Engineers | |
or APPM 3170 | Discrete Applied Mathematics | |
or MATH 2001 | 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 | ||
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 Boulder | 15 |
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.
Year One | ||
---|---|---|
Fall Semester | Credit 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 (free elective) | 1 | |
Credit Hours | 16-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 Hours | 15 | |
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 Hours | 16-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 Hours | 16-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 Hours | 16-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 Hours | 14-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 Hours | 15-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 Hours | 12-14 | |
Total Credit Hours | 120-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. Are 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:
Code | Title | Credit Hours |
---|---|---|
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 (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:
Code | Title | Credit Hours |
---|---|---|
CSCI 1300 | Computer Science 1: Starting Computing | 4 |
CSCI 2270 | Computer Science 2: Data Structures | 4 |
CSCI 3104 | Algorithms | 4 |
or CSCI 3022 | Introduction to Data Science with Probability and Statistics | |
LING 2000 | Introduction to Linguistics | 3 |
CSCI 3832/5832 | Natural Language Processing | 3 |
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:
Code | Title | Credit Hours |
---|---|---|
CSCI 1300 | Computer Science 1: Starting Computing | 4 |
CSCI 2270 | Computer Science 2: Data Structures | 4 |
CSCI 2400 | Computer Systems | 4 |
CSCI 3022 | Introduction to Data Science with Probability and Statistics | 3 |
CSCI 3308 | Software Development Methods and Tools | 3 |
- 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.)
Code | Title | Credit Hours |
---|---|---|
CSCI 1300 | Computer Science 1: Starting Computing | 4 |
CSCI 2270 | Computer Science 2: Data Structures | 4 |
CSCI 2400 | Computer Systems | 4 |
CSCI 3308 | Software Development Methods and Tools | 3 |
CSCI 3753 | Design and Analysis of Operating Systems | 4 |
- 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.