;

Computer Science B.A.

Information and Policies

Introduction

The bachelor of arts (B.A.) program at University of California, Santa Cruz, is designed to give students a solid grounding in both theoretical and practical topics in computer science, computer engineering, and mathematics while leaving flexibility for a broad program of study, including some courses outside of science and engineering, or even for a double major in another discipline.

Program Learning Outcomes

Recipients of a Bachelor of Science or a Bachelor of Arts degree in Computer Science at UC Santa Cruz are expected to have the following skills and experiences:

  1. Demonstrate mastery of computer science in the following core knowledge areas:
    • Algorithms, data structures, and complexity
    • Programming languages
    • Software engineering and development
    • Computer systems
  2. Apply system-level perspective by thinking at multiple levels of detail and abstraction and by recognizing the context in which a computer system may function, including its interactions with people and the physical world.
  3. Apply problem-solving skills and the knowledge of computer science to solve real problems.
  4. Understand how technological advances impact society and the social, legal, ethical and cultural ramifications of computer technology and their usage.
  5. Write about and orally communicate technical material about computer science and computer systems, broadly conceived.

Academic Advising for the Program

The Baskin Engineering undergraduate advising office offers general advising for prospective and declared undergraduates majoring in Baskin Engineering programs. The office handles major declarations, transfer credits, course substitutions, articulations, and degree certifications. Undergraduate students obtain and submit all paperwork requiring departmental approval to the undergraduate advising office. Transfer students should also refer to the Transfer Information and Policy section.

Baskin Engineering Building, Room 225
bsoeadvising@ucsc.edu
(831) 459-5840

Getting Started in the Major: Frosh

It is recommended that high school students intending to apply to the computer science major have completed four years of mathematics (through advanced algebra and trigonometry) and three years of science in high school. Comparable college mathematics and science courses completed at other institutions also serve to properly prepare a student for the computer science major.

This major is highly course intensive and sequential; students who intend to pursue this major must begin taking classes for the major in their first quarter at UC Santa Cruz. 

Math placement is required for one or more of the foundational courses for this major. For more information, please review the Math Placement website.

Transfer Information and Policy

Transfer students who want to pursue the computer science major, must have applied and been admitted to UC Santa Cruz as a proposed computer science major. 

Transfer Admission Screening Policy

Prior to admission, transfer students must have completed the following five courses or their articulated equivalents with a combined minimum GPA of 2.8.

Lecture/lab combinations count as one course.

This course
CSE 30Programming Abstractions: Python

7

Plus this course
CSE 13SComputer Systems and C Programming

7

Plus one of the following options
Either this course

CSE 12Computer Systems and Assembly Language and Lab

7

or this course

CSE 16Applied Discrete Mathematics

5

Plus one of the following
MATH 19ACalculus for Science, Engineering, and Mathematics

5

MATH 20AHonors Calculus

5

Plus one of the following
MATH 19BCalculus for Science, Engineering, and Mathematics

5

MATH 20BHonors Calculus

5

Minimum GPA

The combined GPA in the five courses above must be at least of 2.8.  A student lacking one of these five courses may be admitted if they have completed CSE 16, and CSE 12, or the articulated alternative. 

Furthermore, transfer students entering in the fall must have completed at least three of these courses by the end of the fall term of the previous academic year and have a minimum 2.80 GPA over all completed CS major qualification courses at that time.

Transfer students admitted for the winter term must satisfy the major preparation criteria for transfer students admitted for the fall term and, additionally, must have successfully completed at least two additional courses that are required for the proposed degree, prior to admission. It is highly recommended that these courses should be AM 10 (or MATH 21) and AM 30 (or MATH 23A).

Most courses in the computer science program at UC Santa Cruz have a strong theoretical component to prepare the student for designing, as opposed to simply using, computer systems. Often, courses taken at other institutions which emphasize applications of current languages and computers do not count toward the computer science major at UCSC.

At UCSC, computer science students are first introduced to programming using the programming language Python. The core programming sequence—courses CSE 30 and CSE 13S —exposes students to both Python and C. Many upper-division courses that involve programming use the C and C++ programming languages. 

Transfer students who are not familiar with both Python and C may need to take a remedial course. Students familiar with C++ and Unix should find the transition to Python and C relatively simple.

Getting Started in the Major: Transfer Students

Transfer students should declare their major in their first quarter at UCSC. Instructions for declaring a major in Baskin Engineering are on the Baskin Engineering undergraduate advising major declaration page.

Major Qualification Policy and Declaration Process

Major Qualification

Transfer students should refer to the Transfer Admission Screening requirements. 

For all students, it is necessary to be listed as proposed computer science majors within the School of Engineering before being able to declare the major. Additionally, students must satisfy the following three criteria to qualify for the CS B.A. major:

Declare

Students must declare CS (Computer Science B.S. or Computer Science B.A.) as their major between student’s second to sixth quarter.

CS Major Qualification courses

Students must have completed the following CS major qualification courses to qualify for the major:

Complete these three courses
CSE 12Computer Systems and Assembly Language and Lab

7

CSE 13SComputer Systems and C Programming

7

CSE 30Programming Abstractions: Python

7

Plus one of the following
MATH 19ACalculus for Science, Engineering, and Mathematics

5

MATH 20AHonors Calculus

5

Plus one of the following
MATH 19BCalculus for Science, Engineering, and Mathematics

5

MATH 20BHonors Calculus

5

Cumulative GPA

Students must also have a cumulative GPA of at least 2.80 in the CS major qualification courses attempted at UC Santa Cruz, with at most one unsuccessful attempt (grade C-, D+, D, D-, F, or NP) permitted in a CS major qualification course.

Appeal Process

Students who are informed that they do not qualify for the major may appeal this decision by submitting a letter to the undergraduate director through the Baskin Engineering undergraduate advising office within 15 days from the date the notification was mailed. Within 15 days of receipt of the appeal, the department will notify the student, college, and Office of the Registrar of the decision.

How to Declare a Major

Students interested in pursuing computer science must indicate computer science as a proposed major on their application for admission to UC Santa Cruz. Students admitted to UCSC in fall 2018 or later will be able to declare a computer science major only if they have been admitted to UCSC as a proposed computer science major.

There are four steps to declaring a Baskin Engineering major. For a detailed guide to this process, please consult Baskin Engineering's Declare Your Major website. 

Students should start the declaration of major process by completing Step One on the Baskin Engineering Declare Your Major website as soon as they complete the CS major qualification courses or reach their declaration deadline quarter, whichever comes first.

Students petitioning when the campus declaration deadline is imminent (i.e., in their sixth quarter, for students admitted as frosh), will either be approved, denied, or provided with conditions (e.g., completion of some courses with certain grades) that will be resolved within at most one more enrolled quarter, even if they have not completed all CS major qualification courses.

Letter Grade Policy

All students admitted to a Baskin Engineering major, or seeking admission to a major, must take all courses required for that major for a letter grade. This policy includes courses required for these degrees that are sponsored by other departments.

Course Substitution Policy

Undergraduate engineering students who wish to substitute a major course with a course from another department at UC Santa Cruz, or from another academic institution, must first seek approval through the Baskin Engineering Undergraduate Advising Office. The advising office requires a Petition for Course Substitution be approved before credit for an alternate course can be applied to any Baskin Engineering major requirement.

Petition forms are available at the Undergraduate Advising Office and online.

Petitions and procedures for approval must be obtained from and submitted to the Undergraduate Advising Office.

Community Colleges courses once enrolled at UCSC

Once enrolled in Baskin Engineering students who wish to take a course at a California community college must first check Assist.org to see if the course is equivalent at UC Santa Cruz. If the course is not listed on Assist.org, students must submit a course substitution petition to the BE Undergraduate Advising Office to have it reviewed for equivalency. Courses that need to be reviewed must be accompanied by a course description and syllabus. It is very helpful if students can provide further evidence of course content, such as examples of programming assignments, homework, or examinations. To guarantee equivalency, departments may sometimes require a grade of B or better.

If the course is approved for equivalency or was on Assist.org, then the student must also receive approval by their major department to take the class at the community college PRIOR to taking it. Forms and procedures for approval can be obtained from and submitted to the BE Undergraduate Advising Office.

Four-Year Institutions and the UC Education Abroad Program (UCEAP)

Students who intend to take a course at a four-year institution or UC Education Abroad, must submit a Course Substitution Petition to the BE Undergraduate Advising Office to have the course reviewed for equivalency. Courses that need to be reviewed must be accompanied by a course description and syllabus. It is very helpful if students can provide further evidence of course content, such as examples of programming assignments, homework, or examinations. To guarantee equivalency, departments may sometimes require a grade of B or better.

If the course is approved for equivalency, then the student must also receive approval by their major department PRIOR to taking the class. Forms and procedures for approval can be obtained from and submitted to the BE Undergraduate Advising Office.

Double Majors and Major/Minor Combinations Policy

Students may not receive both the computer science B.A. and computer science B.S. degrees.

Students may not receive both the Network and Digital Technology B.A. and the Computer Science B.A. degrees.

Honors

Students must obtain a GPA of 3.8 or higher in the courses in the major to be considered for the distinction of "Highest Honors in the Major." Students must obtain a GPA of 3.5 or higher in the courses in the major to be considered for the distinction of "Honors in the Major."  Baskin Engineering reserves the right to withhold honors based on other criteria, such as an incident of academic dishonesty.

Requirements and Planners

Course Requirements

The aim of this program is to expose students to a rigorous curriculum in computer science while maintaining sufficient flexibility so that students can take courses outside computer science, pursue a minor in another discipline, or complete a double major. Every student must complete a minimum of 16 courses—eight lower-division and eight upper-division. Out of these, the eight lower-division courses and the first upper-division course are required preparatory courses for every student. Once these preparatory courses are completed, students tailor their own program by choosing seven upper-division elective courses.

Lower-Division Courses

Computer Science and Engineering
All of the following
CSE 12Computer Systems and Assembly Language and Lab

7

CSE 16Applied Discrete Mathematics

5

CSE 20Beginning Programming in Python

5

CSE 30Programming Abstractions: Python

7

Students with no prior programming will take CSE 20 before CSE 30, and CSE 12. Students with a prior programming course, AP credit, or clearing the “Test-out” bar will start with CSE 30, and CSE 12. 

Plus the following
CSE 13SComputer Systems and C Programming

7

Plus one of the following options
Either these courses

MATH 19ACalculus for Science, Engineering, and Mathematics

5

MATH 19BCalculus for Science, Engineering, and Mathematics

5

or these courses

MATH 20AHonors Calculus

5

MATH 20BHonors Calculus

5

Plus one of the following
AM 10Mathematical Methods for Engineers I

5

MATH 21Linear Algebra

5

Upper-Division Courses

The following course
CSE 101Introduction to Data Structures and Algorithms

5

Plus three of the following breadth courses
CSE 101MMathematical Thinking for Computer Science

5

CSE 102Introduction to Analysis of Algorithms

5

CSE 103Computational Models

5

CSE 110AFundamentals of Compiler Design I

5

CSE 112Comparative Programming Languages

5

CSE 114AFoundations of Programming Languages

5

CSE 120Computer Architecture

5

CSE 130Principles of Computer Systems Design

5

CSE 132Computer Security

5

CSE 138Distributed Systems

5

CSE 140Artificial Intelligence

5

CSE 142Machine Learning

5

CSE 143Introduction to Natural Language Processing

5

CSE 144Applied Machine Learning: Deep Learning

5

CSE 160Introduction to Computer Graphics

7

CSE 180Database Systems I

5

Electives

Three courses from the list of B.A. electives below, including at least one upper-division computer science and engineering course(s) numbered between 100 and 189, or CSE 195.

For other courses, computational media, and Applied Mathematics and Statistics courses are strongly recommended.

List of BA electives
  1. Any 5-credit upper-division course offered by the Baskin School of Engineering, except for the DC courses CSE 115A and CSE 185E/CSE 185S.
  2. Or any course from the following list:
ARTG 118Character Creation for Video Games

5

EART 124Modeling Earth's Climate

5

EART 125Statistics and Data Analysis in the Geosciences

5

EART 172
/OCEA 172
Geophysical Fluid Dynamics

5

ECON 100MIntermediate Microeconomics, Math Intensive

5

ECON 100NIntermediate Macroeconomics, Math Intensive

5

ECON 101Managerial Economics

5

ENVS 115AGeographic Information Systems and Environmental Applications

5

ENVS 115LExercises in Geographic Information Systems

2

FILM 170AFundamentals of Digital Media Production

5

LING 112Syntax I

5

LING 113Syntax II

5

LING 118Semantics III

5

LING 125Foundations of Linguistic Theory

5

MATH 110Introduction to Number Theory

5

MATH 115Graph Theory

5

MATH 116Combinatorics

5

MATH 117Advanced Linear Algebra

5

MATH 118Advanced Number Theory

5

MATH 134Cryptography

5

MATH 145Introductory Chaos Theory

5

MATH 145LIntroductory Chaos Laboratory

1

MATH 148Numerical Analysis

5

MATH 160Mathematical Logic I

5

MATH 161Mathematical Logic II

5

MUSC 123Electronic Sound Synthesis

5

MUSC 124Intermediate Electronic Sound Synthesis

5

MUSC 125Advanced Electronic Sound Synthesis

5

PHYS 115Computational Physics

5

PHYS 150
/CSE 109
Quantum Computing

5

Lecture-lab combinations count as one course. 

Additional courses may be accepted by petition.

Disciplinary Communication (DC) Requirement

Students of every major must satisfy that major's upper-division Disciplinary Communication (DC) requirement.

The DC requirement for the computer science  B.A. is satisfied by completing one of the following additional courses:

One of these courses

CSE 115AIntroduction to Software Engineering

5

CSE 185E
/CSE 185S
Technical Writing for Computer Science and Engineering

5

CSE 195Senior Thesis Research

5

The course used for the DC requirement cannot also be used as an upper-division elective.

Comprehensive Requirement

In addition to the above B.A. requirements, students in the computer science majors must satisfy one of the following two exit requirements: pass one of the capstone courses (see Capstone Courses below); or successfully complete a senior thesis. A passed capstone course also counts toward satisfying the minimum number of upper-division electives requirement.

Capstone Courses

Students may choose from one of the following capstone courses to satisfy their exit requirement (lecture/lab combinations count as one course.):

CSE 110BFundamentals of Compiler Design II

5

CSE 115CSoftware Design Project II

5

CSE 115DSoftware Design Project - Accelerated

5

CSE 134Embedded Operating Systems

5

CSE 138Distributed Systems

5

CSE 140Artificial Intelligence

5

CSE 143Introduction to Natural Language Processing

5

CSE 144Applied Machine Learning: Deep Learning

5

CSE 145Introduction to Data Mining

5

CSE 156LNetwork Programming Laboratory

2

CSE 156Network Programming

5

CSE 157Internet of Things

7

CSE 160Introduction to Computer Graphics

7

CSE 161Introduction to Data Visualization

5

CSE 161LData Visualization Laboratory

2

CSE 162Advanced Computer Graphics and Animation

5

CSE 162LAdvanced Computer Graphics and Animation Laboratory

2

CSE 163Data Programming for Visualization

5

CSE 168Introduction to Augmented Reality and Virtual Reality

7

CSE 181Database Systems II

5

CSE 183Web Applications

5

CSE 184Data Wrangling and Web Scraping

5

CSE 187Full Stack Web Development II

5

CMPM 172Game Production Studio

7

Students taking one of the capstone courses will enroll normally. Students need to pass the capstone course to pass the exit requirement. No course may be attempted more than twice without prior approval from the chair of the department offering the course. Withdrawals count as an attempted class for this purpose.

Senior Thesis

The senior thesis consists of a self-contained project within the broad scope of computer science, but one that is not available in the regular course offerings. A student wishing to complete a senior thesis must successfully complete a minimum of 5 credits in CSE 195, Senior Thesis Research. The supervision of a senior thesis student is always at the discretion of the faculty member.

The student first submits a written thesis proposal and obtains approval of a faculty sponsor. Then the student submits a written draft and makes an oral presentation to a faculty examining committee. After receiving feedback from the examining committee, the student submits one or more additional drafts, until the final draft is approved by the examining committee. The total amount of writing shall be consistent with the campus Disciplinary Communication requirement. A passing grade in CSE 195 is earned when the final thesis is approved.

CSE 195Senior Thesis Research

5

Planners

The tables below are for informational purposes and do not reflect all university, general education, and credit requirements. See Undergraduate Graduation Requirements for more information.

The following are three sample academic plans: (1) a four-year plan for the B.A. major for first-year students with programming experience; (2) an alternative first-year plan for students without programming experience; and (3) a two-year plan for the B.A. major for transfer students.

Students completing the courses in the planners will have satisfied the MF general education requirement.

Four-Year Plan for Students with Programming Experience

  Fall Winter Spring Summer 
Entering       College 1A
      Summer Edge (optional)
       
1st (frosh) CSE 30 CSE 12 CSE 16  
MATH 19A         MATH 19B     
College 1 WRIT 1/WRIT 1E (if needed)    
2nd (soph) CSE 13S AM 10 CSE 101  
WRIT 2*       
       
3rd (junior) Breadth Breadth Breadth  
Elective Elective    
                                       
4th (senior) DC elective   Elective
(capstone)
 
       
       

* WRIT 2 should be taken in or before spring quarter of the second year.

First-Year Plan for Students Without Programming Experience

  Fall Winter Spring Summer 
Entering                College 1A
      Summer Edge (optional)
       
1st (frosh) CSE 20 CSE 30 CSE 12  
MATH 3 MATH 19A  MATH 19B  
  WRIT 1/WRIT 1E (if needed)    
2nd (soph) CSE 13S AM 10 CSE 101  
WRIT 2*  CSE 16    
                                     
3rd (junior) Breadth Breadth Breadth  
Elective Elective    
                                       
4th (senior) DC elective   Capstone Elective  
       
       

* WRIT 2 should be taken in or before spring quarter of the second year.

Two-Year Degree Planner for Transfer Students

  Fall Winter Spring Summer 
Entering       KRSG 1T
                                 Summer Edge (optional)
       
1st (junior) CSE 12 CSE 101 Breadth  
AM 10                              
 2nd (senior)
 
Breadth Breadth DC elective  
Elective  Elective Capstone Elective  
       

Note: One elective must be drawn from the DC course list and one from the capstone course.

Curriculum charts for all Baskin Engineering majors are available on the Baskin Engineering  undergraduate advising Major Curriculum Charts page.