2019 Curriculum Guide - BA
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).
Outside Area of Study
Any declarable program of at least 15 hoursÌýfrom any Âé¶¹Ãâ·Ñ°æÏÂÔØBoulder college (approved major, minor, certificate)
Computer Science
- 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):Ìý
- ÌýFundamentals of Human Computer InteractionÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌý
- ÌýIntroduction to Artificial Intelligence*Ìý Ìý Ìý Ìý Ìý Ìý Ìý Ìý Ìý Ìý Ìý Ìý Ìý Ìý Ìý Ìý Ìý Ìý Ìý Ìý Ìý Ìý ÌýÌý
- ÌýDesign and Analysis of Data SystemsÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌý
- ÌýIntroduction to RoboticsÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌý
- ÌýIntroduction to CyberSecurity for a Converged WorldÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌý
- ÌýTheory of Computation*Ìý Ìý Ìý Ìý Ìý Ìý Ìý Ìý Ìý Ìý Ìý Ìý Ìý Ìý Ìý Ìý Ìý Ìý Ìý Ìý Ìý Ìý Ìý Ìý Ìý Ìý Ìý Ìý Ìý Ìý Ìý Ìý Ìý ÌýÌý
- ÌýNumerical Computation*Ìýor APPM 4650,ÌýIntermediate Numerical Analysis 1 (only one of these will count towards the CSCI-BA)Ìý Ìý Ìý Ìý Ìý Ìý Ìý Ìý Ìý Ìý Ìý Ìý Ìý Ìý
- ÌýDesign and Analysis of Operating SystemsÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌý
- ÌýNetwork SystemsÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌýÌý
- ÌýObject-Oriented Analysis and Design
* These CSCI coursesÌýapply toward A&S requirement of 30 hours upper division A&S hoursÌý
- 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
- 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
- ÌýLinear Algebra with Computer Science ApplicationsÌýÌýÌýÌýÌýÌýÌý
- orÌýÌýIntroduction to Linear Algebra for Non-Mathematics Majors
- orÌýÌýIntroduction to Linear Algebra for Mathematics Majors
- orÌýÌýMatrix Methods and Applications
Probability/Statistics
- ÌýIntroduction to Data Science with Probability and StatisticsÌýÌýÌýÌýÌýÌýÌýÌýÌýÌý
- orÌýÌýIntroduction to Probability and Statistics
- orÌýÌýIntroduction to Probability Theory
- orÌýÌýApplied Probability
- orÌýÌýApplied Probability
- orÌýÌýIntroduction to Statistics with Computer Applications
- orÌýÌý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:
- ÌýCritical Thinking
- orÌýÌýSymbolic Logic
Ethics (3)
Select one of the following ethics courses:Ìý
- ÌýEthics
- orÌýÌýContemporary Social Problems
- or ÌýEthics and Information Technology
- orÌýÌýMastery in Information Science: Ethical and Policy Dimensions of Information and Technology
- or Ìý 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.
- 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.Ìý
Additional Policies and Requirements
BA students are part of the College of Arts and Sciences and are subject to the requirements of that college.
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ÌýÌý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.