Skip Navigation
Jack Baskin School of EngineeringUC Santa Cruz

Computer Science - B.S. Curriculum

Program Description | Faculty | Course Descriptions

Program Description

Computer science is the study of the theoretical and practical aspects of computer technology and computer usage. The Computer Science Department offers courses on a wide range of topics, many of which include a mathematical component, and offers undergraduate bachelor of arts and bachelor of science degrees in computer science, a bachelor of science in computer science: computer game design, bachelor of science as well as the master of science and doctor of philosophy degrees. Besides offering instructional courses, the department engages in a substantial research program in which both advanced undergraduates and graduate students participate.

The bachelor of arts program at UCSC 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 many courses outside of the sciences, or even for a double major in another discipline. The bachelor of science program is appropriate for students desiring a somewhat stronger concentration in the sciences, with more courses in computer science and computer engineering, as well as courses in physics or chemistry; this program also allows for electives outside of the sciences.

The bachelor of science in computer game design builds on a rigorous core program of study in computer science, adding interdisciplinary study on the artistic, dramatic, and narrative elements of computer game design; a year-long game design project acts as a capstone learning experience. Because many courses in all three programs have prerequisites, students leaning toward any of these programs will enjoy greater scheduling flexibility if they begin some preparatory courses in their first year. The specific course requirements for each undergraduate degree are given below.

Applications of computer science are found in many other areas of study, from art and music to business and science. Thus, interdisciplinary activities are encouraged. For those students whose primary interest is in another area, a minor in computer science is offered.

Courses for Nonmajors

The Computer Science Department offers a wide range of courses intended for nonmajors as well as majors. These include course 2, Computer Literacy; course 10, Introduction to Computer Science; course 80B, Systems and Simulation; course 80C, Computer Arts and Graphics; and course 80K, Foundations of Interactive Game Design. Course 10, Introduction to Computer Science, may be beneficial to students who are considering the major but have a limited background in computer science. There are also introductory programming classes intended for nonmajors: courses 60G and 60N, Beginning Programming.

Computer Science Policies

Admissions Policy

Admission to the computer science majors is selective. First-year applicants may receive direct admission at the time they apply to UCSC based on their high school record and test scores. Admission to the major after a student has entered UCSC is based on performance in the foundation courses: courses 12A and 12B (or 13H); Computer Engineering 16; and Mathematics 19A-B, or Mathematics 20A-B. Please refer to the School of Engineering section of the catalog for the full admissions policy.

Disqualification and Satisfactory Progress in the Major

Students who do not make adequate progress in the computer science major may be disqualified from the major. Adequate progress normally means passing a minimum of three courses required for the major over every three consecutive quarters. (For part-time students, 15 credits attempted equals one full term.) Students who do not expect to meet this requirement should consult their faculty adviser and/or the undergraduate director for their major beforehand.

Students who receive a total of three grades of D, F, or No Pass in the key courses, Computer Science 12A, 12B, 13H, 101; and Computer Engineering 12 and 16, may, at the discretion of the department, be disqualified from the major.

The department may, at its sole discretion, disqualify from the major any student making two unsuccessful attempts in any one of the following principal courses commonly used to satisfy degree requirements:

  • Computer Science 12A, 12B, 13H, 101, 102, 104A, 104B, 105, 111, 112, 115, 116, 130, 132, 140, 160, 161, 180, 181, and 183;

  • Computer Engineering 12, 16, 100, 107, and 110;

  • Applied Mathematics and Statistics 27, 131, and 147;

  • Physics 5A, 5B, 5C, 6A, 6B, and 6C;

  • Chemistry 1B and 1C;

  • Mathematics 19A-B or Mathematics 20A-B, and 23A.

  • Each grade of D, F, or No Pass counts as one unsuccessful attempt; each grade of W counts as one-half of an unsuccessful attempt.

    The School of Engineering section contains additional disqualification policies, such as maintaining a 2.0 GPA in the major and the ethics requirement, that apply to computer science majors.

    Students at risk of disqualification must meet with an undergraduate adviser to discuss their options for continuing in the major.

    Letter Grade Policy

    The Computer Science Department requires letter grades for all courses applied toward the B.A., B.S., and minor in computer science with the exception of two lower-division courses which students may elect to take Pass/No Pass. This policy includes courses required for the computer science majors but sponsored by other departments.

    Transfer Students

    Most courses in the computer science program at UCSC 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, students are first introduced to programming using the programming language Java. The core programming sequence, courses 12A/L and 12B/M (or 13H/L, which covers both 12A/L and 12B/M), exposes students to both Java and C. Many upper-division courses that involve programming use the C and C++ programming languages. Transfer students who are not familiar with both Java and C may need to take a remedial course. Students familiar with C++ and Unix should find the transition to Java and C relatively simple.

    Please refer to the School of Engineering section of the catalog for the policy regarding transfer students.

    School of Engineering Policies

    Please refer to the School of Engineering section of the catalog for additional policies that apply to all School of Engineering programs. These policies include admission to the major, limits on the number of times courses can be attempted, and the need for computer science students to obtain preapproval before taking courses elsewhere.

    Preparation for the Major

    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.

    B.A. Major 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 17 courses, eight lower-division and nine 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 eight additional upper-division elective courses. To provide an adequate balance in subject matter, these additional courses must be divided between those that emphasize the theoretical aspects of the field and those that have a more practical focus. To provide a depth of study in one aspect of computer science, students must complete one of the approved depth sequences.

    Lower-Division Requirements

    Each student must successfully complete the following nine required preparatory courses:

    Computer Science

    12A/L, Introduction to Programming/Computer Programming Laboratory; 12B/M, Introduction to Data Structures/Laboratory;
    13H/L, Introduction to Programming and Data Structures/Laboratory (Honors)

    Computer Engineering

    12/L, Computer Systems and Assembly Language/ Laboratory
    16, Applied Discrete Mathematics

    Mathematics

    19A-B, Calculus for Science, Engineering, and Mathematics (credit for one or both may be granted with adequate performance on the CEEB calculus AB or BC Advanced Placement exam); or Mathematics 20A-B, Honors Calculus
    23A, Multivariable Calculus

    Applied Mathematics and Statistics

    27/L, Mathematical Methods for Engineers/Laboratory (formerly Mathematics 27); or Mathematics 21, Linear Algebra; and 24, Ordinary Differential Equations

    Upper-Division Requirements

    101, Abstract Data Types

    In addition to the above nine required courses, students must complete eight upper division electives, by completing the requirements for one depth sequence. At least 50 percent of these upper-division courses must be completed at UCSC.

    Depth Sequence Requirements

    For the following depth sequences, students must take at least seven courses from the theory and practice course lists, as follows:

  • a minimum of three courses from the theory course list and a minimum of three courses from the practice course list;

  • the seven courses from the theory and practice course lists must include all of the courses of one of the depth sequences;

  • the eighth upper-division elective must be selected from any upper-division (5-credit) School of Engineering course.

  • The depth sequence courses are:

  • Compilers and language theory: Computer Science 104A, 112, and 130 or 104B;

  • Operating systems and hardware: Computer Engineering 100/L, Computer Science 111, and Computer Engineering 110 or 121/L;

  • Theory: Computer Science 102, 130, and 132;

  • Software methodology: Computer Science 115 and two of the following: 104A, 112, and 116;

  • Graphics: Computer Science 160, 161, and AMS 147;

  • Databases: Computer Science 180, 181, and 183

  • For the Interactive Game Design depth sequence only, students must satisfy the following requirements:

  • Core courses: students must take Computer Science 130, 105, 140, 160, and 115.

  • Game Design Electives: students must take two courses from the game design electives list.

  • Free elective: any course from the theory and practice course lists.

  • Theory Course List

    Computer Science

    102, Introduction to Analysis of Algorithms
    130, Computational Models
    132, Computability and Computational Complexity

    Computer Engineering

    107, Mathematical Methods of Systems Analysis: Stochastic
    108, Data Compression
    154, Data Communications
    177, Applied Graph Theory and Algorithms

    Electrical Engineering

    103, Signals and Systems
    153, Digital Signal Processing (formerly Computer Engineering 153)

    Applied Mathematics and Statistics

    31, Introduction to Probability Theory (formerly Mathematics 131A)
    146, Discrete Dynamical Systems
    147, Computational Methods and Applications
    162, Design and Analysis of Computer Simulation Experiments

    Mathematics

    115, Graph Theory
    117, Advanced Linear Algebra
    126, Mathematical Control Theory
    148, Numerical Analysis

    Practice Course List

    Computer Science

    104A, Fundamentals of Compiler Design I
    104B, Fundamentals of Compiler Design II
    105, Systems Programming
    109, Advanced Programming
    111, Introduction to Operating Systems
    112, Comparative Programming Languages
    115, Software Methodology
    116, Software Design Projects
    122, Computer Security
    128, Distributed Systems
    129, Data Storage Systems
    140, Artificial Intelligence
    160/L, Introduction to Computer Graphics /Laboratory
    161/L, Visualization and Computer Animation/Laboratory
    180, Database Systems I
    181, Database Systems II
    183, Hypermedia and the Web
    190X, Methods of Cryptography
    204, Compiler Design

    Computer Engineering

    100/L, Logic Design/Laboratory
    110, Computer Architecture
    113, Parallel and Concurrent Programming
    117/L, Embedded Software/Laboratory
    118/L, Introduction to Mechatronics/Laboratory
    121/L, Microprocessor System Design/Laboratory
    123A, Computer Engineering Design Project I
    123B, Computer Engineering Design Project II
    125/L, Logic Design with Verilog/Laboratory
    126/L, Advanced Logic Design/Laboratory
    150, Introduction to Computer Networks
    152, Analysis and Design of Communication Protocols
    155/L, Computer Networks Project/Laboratory
    163/L, Multimedia Processing and Applications/ Laboratory

    Electrical Engineering

    130/L, Introduction to Optoelectronics and Photonics/Laboratory

    Game Design Electives

    Computer Science

    102, Introduction to Analysis of Algorithms
    116, Software Design Project
    128, Distributed Systems: File Sharing, Online Gaming, and More
    161/L, Visualization and Computer Animation
    180, Database Systems

    Computer Engineering

    150, Introduction to Computer Networks
    167/L, Sensing and Sensor Technologies

    Film and Digital Media

    170A, Introduction to Digital Media Production
    171D, Social Information Spaces
    177, Digital Media Workshop

    B.S. Major Requirements

    This program is designed for students who wish to maximize exposure to computer science concepts and methods by taking a larger selection of upper-division computer science courses, as well as additional courses in the sciences and mathematics. A minimum of 22 courses must be completed for the B.S. in computer science degree, whereas a minimum of 17 courses must be completed for the B.A. in computer science degree. Out of the 22 courses, 10 are lower-division courses (including two science courses), and 12 are upper-division courses. The B.S. is more structured than the B.A. in the sense that 18 specific courses are required, and the remaining four are elective upper-division computer science or computer engineering courses.

    Lower- and Upper-Division Requirements

    Students are required to take the following 18 courses:

    Computer Science

    12A/L, Introduction to Programming/Computer Programming Laboratory 12B/M, Introduction to Data Structures/Laboratory;
    13H/L, Introduction to Programming and Data Structures/Laboratory (Honors) may be taken in place of taking both 12A/L and 12B/L
    101, Abstract Data Types
    102, Introduction to Analysis of Algorithms
    104A, Fundamentals of Compiler Design I
    111, Introduction to Operating Systems
    112, Comparative Programming Languages
    130, Computational Models

    Computer Engineering

    12/L, Computer Systems and Assembly Language/ Laboratory
    16, Applied Discrete Mathematics
    107, Mathematical Methods of Systems Analysis: Stochastic; or AMS 131, Introduction to Probability Theory (formerly Mathematics 131A)
    110, Computer Architecture

    Mathematics

    19A-B, Calculus for Science, Engineering, and Mathematics; or Mathematics 20A-B, Honors Calculus
    23A, Multivariable Calculus

    Applied Mathematics and Statistics

    27/L, Mathematical Methods for Engineers/ Laboratory (formerly Mathematics 27); or Mathematics 21, Linear Algebra; and 24, Ordinary Differential Equations
    131, Introduction to Probability Theory; or Computer Engineering 107, Mathematical Methods of Systems Analysis: Stochastic

    Physics or Chemistry

    Either two physics or two chemistry courses, with their associated laboratories, from the following:

    Physics 5A/L, Introduction to Physics I/Laboratory (or 6A/L);
    and either Physics 5B/M, Introduction to Physics II/Laboratory (or 6B/M);
    or Physics 5C/N, Introduction to Physics III/Laboratory (or 6C/N)
    Chemistry 1B/M, General Chemistry/Laboratory
    Chemistry 1C/N, General Chemistry/Laboratory

    The remaining four courses must be upper-division computer science or computer engineering electives selected from the theory and practice course lists (see B.A. Major Requirements reference above). One of these courses may be replaced by an upper-division mathematics course from the theory course list.

    Comprehensive Requirement

    In addition to the above B.A. or B.S. requirements, students in the computer science majors must satisfy one of the following three exit requirements: pass one of the capstone courses (see Capstone Courses below); obtain a scaled score of 600 or above on the Graduate Record Examination (GRE) Advanced Computer Science Subject Test; or successfully complete a senior thesis.

    Capstone Courses

    Students may choose from one of the following capstone courses to satisfy their exit requirement:

    CMPS 104B, Fundamentals of Compiler Design II
    CMPS 104B, Fundamentals of Compiler Design II
    CMPS 116, Software Design Project
    CMPS 140, Artificial Intelligence
    CMPS 161/L, Visualization and Computer Animation/Laboratory
    CMPS 181, Database Systems II
    CMPS 183, Hypermedia and the Web

    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. W's count as an attempted class for this purpose. If a student fails to receive a passing score during these two attempts, he or she may still take the GRE Advanced Computer Science Subject Test and achieve a scaled score of 600 or above to satisfy the exit requirement.

    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 course 195, Senior Thesis Research; submit a written thesis proposal; and have it accepted by a faculty supervisor. The supervision of a senior thesis student is always at the discretion of the faculty member. A written report and an oral presentation to a faculty examining committee are required.

    Students who elect to use the GRE Advanced Computer Science Subject Test as their senior exit requirement must arrange to take the GRE test and have scores submitted to the department before graduation deadlines. Contact the UCSC Career Center for GRE information and application forms.

    Honors in the Major

    Students who obtain a GPA of 3.8 or higher in the courses in the major will receive the distinction of "Highest Honors in the Major." Students who obtain a GPA of 3.5 or higher in the courses in the major will receive the distinction of "Honors in the Major."

    Computer Science Major Planners

    The following are four sample academic plans for first-year students as preparation for the computer science major. Plans One A and Two A are suggested guidelines for students who are committed to the major early in their academic career. Plans One B and Two B are for students who are considering the major. Students who plan carefully can still have several openings free to take other breadth courses they find interesting.

    Plan One A, B.A. Degree
    Year Fall Winter Spring
    1st
    (frsh)
    Cmps 10
    Math 19A
    Cmps 12A/L
    Math 19B
    Cmps 12B/M
    Math 23A
    2nd
    (soph)

    AMS 27/L

    Cmpe 16
    Cmps 101
    Cmpe 12/L
    Plan One B, B.A. Degree
    Year Fall Winter Spring
    1st
    (frsh)
      Math 19A Math 19B
    2nd
    (soph)
    Cmps 10
    Math 23A
    Cmpe 16 or 16H/L
    Cmps 12A/L
    Cmps 12B/M
    AMS 27/L
    Plan Two A, B.S. Degree
    Year Fall Winter Spring
    1st
    (frsh)
    Cmps 12A/L
    Math 19A
    Cmps 12B/M
    Math 19B
    Cmpe 12/L
    Cmpe 16
    2nd
    (soph)
    Math 23A
    AMS 27/L
    Cmps 101
    Phys 6A/L
    Cmpe 100/L
    Phys 6C/N
    Plan Two B, B.S. Degree
    Year Fall Winter Spring
    1st
    (frsh)
    Cmps 10 Math 19A Cmps 12A/L
    Math 19B
    2nd
    (soph)
    Cmps 12B/M
    Math 23A
    CMPE 16
    Cmpe 12/L
    or AMS 27/L

    B.S. Computer Science: Computer Game Design Major Requirements

    The goal of this degree is to provide students a deep understanding of the technical aspects of computer game engineering, and a broad background in the artistic, narrative, and dramatic elements of game design. The core of the degree program is a strong grounding in computer science and computer engineering, preceded by a foundation in math and physics. Classes in ethics, as well as courses in art, film, music, theater arts, and economics provide breadth in topics of special relevance to computer game design. In their upper division courses, students gain depth by taking upper division electives in computer science and computer engineering. Two advanced courses in digital media give students the ability to view computer software from an artistic framework. A year-long capstone game design studio class allows students to develop substantial computer games, and integrate materials from the rest of the program.

    The curriculum has 124-141 credits in 24-25 courses (depending on whether a student enters as a transfer student). 12 of the courses are upper division. Students interested in the major should pay special attention to the overlap between general education requirements and major requirements, as the major covers up to six general education requirements.

    Lower- and Upper-Division Requirements

    Course requirements are divided into six conceptual areas:

    Mathematics and Physics

    Complete all of the following courses:

    Mathematics 19A-B, Calculus for Science, Engineering, and Mathematics.
    (Students can alternately take Honors Calculus, Mathematics 20A-B. Credit for one or both Math 19A-B may be granted with adequate performance on the CEEB calculus AB or BC Advanced Placement exam.)
    Mathematics 21, Linear Algebra, or Applied Mathematics and Statistics 27/L, Mathematical Methods for Engineers
    Computer Engineering 16 (or 16H), Applied Discrete Mathematics,
    Physics 5A/L (or 6A/L), Introduction to Physics I

    Computational Foundations

    Complete all of the following courses:

    Computer Science 12A/L: Introduction to Programming
    Computer Science 12B/M: Introduction to Data Structures
    Computer Engineering 12/L: Computer Systems and Assembly Language Laboratory
    Computer Science 109: Advanced Programming
    Computer Science 101: Algorithms and Abstract Data Types

    Game Design

    Complete all of the following courses. The course Game Design Experience is waived for transfer students.

    Computer Science 20: Game Design Experience (pending)
    Computer Science 170: Game Design Studio I (pending)
    Computer Science 171: Game Design Studio II (pending)
    Computer Science 172: Game Design Studio III (pending)

    Computer Game Engineering

    Complete six courses from the following list:

    Computer Science 160: Introduction to Computer Graphics
    Computer Science 161/L: Visualization and Computer Animation
    Computer Science 164: Graphic Elements for Computer Games
    Computer Engineering 163/L: Multimedia Processing and Applications
    Computer Science 140: Artificial Intelligence
    Computer Science 146: Game Artificial Intelligence
    Computer Engineering 110: Computer Architecture
    Computer Science 128: Distributed Systems: File Sharing, Online Gaming, and More
    Computer Science 105: Systems Programming
    Computer Science 111: Introduction to Operating Systems
    Computer Engineering 150: Introduction to Computer Networks
    Computer Engineering 152: Analysis and Design of Communication Protocols
    Computer Engineering 113: Parallel and Concurrent Programming
    Computer Science 180: Database Systems I
    Computer Science 181: Database Systems II
    Computer Science 183: Hypermedia and the Web
    Computer Science 102: Introduction to Analysis of Algorithms
    Computer Science 130: Computational Models
    Computer Engineering 117/L: Embedded Software
    Applied Mathematics and Statistics 131: Introduction to Probability Theory
    Applied Mathematics and Statistics 147: Computational Methods and Applications
    Applied Mathematics and Statistics 162: Design and Analysis of Computer Simulation Experiments

    Digital Media

    Complete two courses from the following list:

    Film and Digital Media 170A: Introduction to Digital Media Production
    Film and Digital Media 177: Digital Media Workshop: Computer as a Medium
    Film and Digital Media 171D: Social Information Spaces
    Any course offered in the Digital Arts New Media (DANM) curriculum (requires approval of professor)
    Art 118: Computer Art: Theories, Methods, and Practices (may require approval of instructor)
    Theater Arts 157: Playwriting Workshop

    Art and Social Foundations

    Complete the ethics requirement and three of the following electives.

    Ethics Requirement

    One of:

    Computer Engineering 80E: Engineering Ethics
    Philosophy 22: Introduction to Ethical Theory
    Philosophy 24: Introduction to Ethics: Contemporary Moral Issues
    Philosophy 28: Environmental Ethics
    Biomolecular Engineering 80G: Bioethics in the Twenty-First Century:
    Science, Business, and Society (cross listed as PHIL 80G)

    Art Elective

    One of:

    Art 10G: 2D Foundation
    Art 10H: 3D Foundation
    Art 80A: Introduction to Drawing
    Art 80F: Introduction to Issues in Digital Media

    Film Elective

    One of:

    Film and Digital Media 20A: The Film Experience
    Film and Digital Media 20C: Introduction to Digital Media
    Film and Digital Media 20P: Introduction to Production Technique

    Theater Elective

    One of:

    Theater Arts 10: Introduction to Theater Design and Technology
    Theater Arts 18: Drafting for Theatrical Production
    Theater Arts 19: Design Studio: Lighting Studio
    Theater Arts 20: Introductory Studies in Acting
    Theater Arts 30: Introduction to Modern Dance Theory and Technique
    Theater Arts 40: Introduction to Directing
    Theater Arts 80E: Stand-Up Comedy
    Theater Arts 80L: Muppet Magic: Jim Henson's Art

    Music Elective

    One of:

    Music 11A: Introduction to Western Art Music
    Music 11B: Introduction to Jazz
    Music 11C: Introduction to American Popular Music
    Music 11D: Introduction to World Music
    Music 80C: History, Literature, and Technology of Electronic Music
    Music 80L: Artificial Intelligence and Music
    Music 80M: Film Music
    Music 80R: Music and the World Wide Web

    Economics Elective

    One of:

    Economics 1: Introductory Microeconomics: Resource Allocatio and Market Structure
    Economics 2: Introductory Macroeconomics: Aggregate Economic Activity
    Economics 80H: Wall Street and the Money Game

    Comprehensive Requirement

    Students satisfy the senior comprehensive requirement by either receiving a passing grade in all three courses of the Game Design Studio sequence or performing a senior thesis.

    Computer Science: Computer Game Design Major Planners

    The following are three sample academic plans that students can to plan their sequence of courses in the major. Plans One and Two are suggested guidelines for students who begin their studies in their freshman year. Such students, if they plan carefully will have several openings free to take other breadth courses they find interesting. Plan One is for a student entering UCSC in their freshman year who is prepared to go directly into Mathematics 19A/20A and Computer Science 12A. Plan Two is for a student entering UCSC their freshman year who needs to take preparatory courses prior to Mathematics 19A or Computer Science 12A to ensure a successful outcome in those courses. Plan Three is for students that transfer to campus at the beginning of their junior year.

    Plan One–Enter UCSC Freshman Year
    Year Fall Winter Spring
    1st
    (frsh)
    Core

    Math 19A or 20A
    CMPS 12A

    CMPS 12L or
    Honors Project
    Lab I
    Composition (C,
    or gen ed)
    Math 19B or 20B
    CMPS 12B

    CMPS 12M or
    Honors Project
    Lab II
    Art/Social Elective I

    CMPE 12/L
    CMPS 20 (Game
    Design Experience)
    2nd
    (soph)
    PHYS 5A/L
    or 6A/L
    gen ed
    Math 21 or AMS 27/L
    Art/Social
    Elective II
    CMPS 109
    CMPE 16
    Art/Social Elective II

    Ethics Requirement
    CMPS 101
    3rd gen ed
    Game Engineering
    Elective I
    Digital Media
    Elective I
    gen ed
    Game Engineering
    Elective II
    Game Engineering
    Elective III
    gen ed
    Game Engineering
    Elective IV
    Digital Media
    Elective IV
    4th gen ed
    CMPS 170
    (Game Design
    Studio I)
    Game Engineering
    Elective V
    gen ed
    gen ed

    CMPS 171 (Game Design Studio III)
    gen ed
    CMPS 172 (Game
    Design Studio III)
    Plan Two –Enter UCSC Freshman Year, Need Math and Computer Science Preparation Classes (Mathematics 3, Computer Science 10)
    Year Fall Winter Spring
    1st
    (frsh)
    Core

    MATH 3
    CMPS 10
    Writing (C, or gen ed)

    MATH 19A
    CMPS 12A/L
    MATH 19B

    CMPS 12B/M
    Art/Social Elective I
    2nd
    (soph)
    Art/Social
    Elective II
    CMPE 12/L
    PHYS 6A/L
    Art/Social
    Elective III
    CMPE 16
    CMPS 109
    MATH 21 or AMS 27/L

    Ethics Requirement
    CMPS 20 (Game
    Design Experience)
    3rd CMPS 101

    Digital Media
    Elective I
    gen ed
    Game Engineering
    Elective I
    gen ed

    gen ed
    gen ed

    Game Engineering
    Elective II
    Digital Media
    Elective II
    4th gen ed
    CMPS 170
    (Game Design
    Studio I)
    Game Engineering
    Elective III
    gen ed
    CMPS 171 (Game
    Design
    Studio II)
    Game Engineering
    Elective IV
    gen ed
    CMPS 172 (Game
    Design Studio III)

    Game Engineering
    Elective V
    Plan Three – Transfer Student
    Year Fall Winter Spring
    1st
    (frsh)
    CMPS 101


    Art/Social
    Elective I
    CMPS 109
    Game Engineer-
    ing Elective I
    Digital Media
    Elective I
    Ethics Requirement
    Game Engineer-
    ing Elective II
    Digital Media
    Elective II
    2nd
    (soph)
    Art/Social
    Elective II
    CMPS 170 (Game
    Design Studio I)
    Game Engineer-
    ing Elective III
    Art/Social
    Elective III
    CMPS 171 (Game
    Design Studio II)
    Game Engineer-
    ing Elective IV
    gen ed

    CMPS 172 (Game
    Design Studio III)
    Game Engineer-
    ing Elective V

    Minor Requirements

    Courses required for the computer science minor are Mathematics 19A-B or 20A-B, and 23A; Applied Mathematics and Statistics 27/L (formerly Mathematics 27); Computer Science courses 12A/L and 12B/M (or 13H/L can be taken to cover both 12A/L and 12M/L) and course 101; Computer Engineering 12/L and 16; and four additional upper-division computer science courses from a list of approved electives (see the department's checklist for the computer science minor at www.soe.ucsc.edu/programs/cs/undergraduate/). In selecting the four upper-division courses, students may elect to focus on one subdiscipline of computer science by completing the courses in a BA depth sequence. Upper-division computer engineering and mathematics courses that generally apply toward the computer science major may not be applied toward the computer science minor. In addition, some upper-division computer science courses may not be applied toward the computer science minor. There is no comprehensive examination or senior thesis requirement for the minor.