Computer Science
2014-15 General Catalog
Baskin School of Engineering
(831) 459-2158
http://www.soe.ucsc.edu
Faculty | Course Descriptions | Games and Playable Media Course Descriptions
Program Description
Computer science is the study of the theoretical and practical aspects of computer technology and computer usage. The Computer Science (CMPS) 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, 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 (B.A.) 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 science and engineering, or even for a double major in another discipline. The bachelor of science (B.S.) 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 science and engineering.
The bachelor of science (B.S.) 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 CMPS 10, Introduction to Computer Science; CMPS 17, Social Networks; CMPS 25, Introduction to Computer Graphics: 3D Modeling; CMPS 26, Introduction to Computer Graphics: 3D Animation, CMPS 80J, Technology Targeted at Social Issues; CMPS 80S, From Software Innovation to Social Entrepreneurship; and CMPS 80K, Foundations of Interactive Game Design. CMPS 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: CMPS 5C, 5J, 5P, Introduction to Programming (in the C, Java, and Python languages).
Computer Science Policies
Declaration of the Computer Science Majors
Admission to the computer science majors is selective. First-year applications 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 the grades received in all foundation courses (see below) attempted at UCSC and will be considered no sooner than the student’s second quarter. A cumulative GPA of at least 2.80 in these courses is required for declaration of computer science majors (Computer Science B.S., Computer Science B.A., and Computer Science: Computer Game Design B.S.). At most one unsuccessful attempt (grade D, F, or NP) for a foundation course is permitted. In addition to this GPA requirement, after the first three quarters, students must have completed the foundation courses (listed below) and be able to complete the major within campus limits in order to be eligible to declare a computer science major. Denials of admission to the major may be appealed by submitting a letter to the School of Engineering Undergraduate Office, addressed to the Computer Science Undergraduate Director, describing why the prior performance is not an accurate reflection of the student's potential. Students who are informed that they are not eligible to declare the major may appeal this decision by submitting a letter to the department chair 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.
Foundation Courses
The foundation courses for all computer science majors are as follows:
CMPS 12A/L (or Computer Engineering 13, or both CMPS 5J and CMPS 11) and 12B/M; Computer Engineering 16; and Mathematics 19A and 19B, or 20A and 20B, or 11A and 11B. CMPS 13H/L may be used instead of both CMPS 12A/L and 12B/M.
UCSC students that have completed three or more quarters at UCSC must complete the foundation courses before they can declare a computer science major.
Honors in the Majors
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." The School of Engineering reserves the right to withhold honors based on other criteria, such as an incident of academic dishonesty.
Disciplinary Communication (DC) Requirement
Students of every major must satisfy that major’s upper-division Disciplinary Communication (DC) requirement. Refer to major program statements for details.
Letter Grade Policy
Please refer to the School of Engineering section of the catalog (subheading: Letter Grade Policy).
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.
Transfer students must have completed all of the foundation courses listed above, or their articulated equivalents. A student lacking one foundation course may be admitted if they have completed at least one of CMPE 12/L or Physics 5A/L. It is highly recommended that all transfer students in computer science complete these two courses prior to admission.
Additional information on SOE policies can be found on the web at: http://ua.soe.ucsc.edu/policies-forms/.
School of Engineering Policies
Please refer to the School of Engineering section of the catalog (subheading: Admission to School of Engineering Majors) for additional policies that apply to all School of Engineering programs. These policies include admission to the major 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 15 courses, 7 lower-division and 8 upper-division. Out of these, the 7 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 7 additional upper-division elective courses.
Lower-Division Requirements
Each student must successfully complete the following seven required preparatory courses:
Computer Science
CMPS 12A/L, Introduction to Programming(Accelerated)/Laboratory (or CMPS 5J, Introduction to Programming in Java and CMPS 11, Intermediate Programming. Computer Engineering 13 may be taken as an alternative to CMPS 12A/L. CMPS 13H/L may be taken as an alternative to CMPS 12A/L and CMPS 12B/M)
CMPS 12B/M, Introduction to Data Structures/Laboratory (CMPS 13H/L may be taken as an alternative to CMPS 12A/L and CMPS 12B/M)
Computer Engineering
Computer Engineering 12/L, Computer Systems and Assembly Language/Laboratory
Computer Engineering 16, Applied Discrete Mathematics
Mathematics
Mathematics 19A and 19B, Calculus for Science, Engineering, and Mathematics (credit for one or both may be granted with adequate performance on the College Entrance Examination Board (CEEB) calculus AB or BC Advanced Placement examination), or Mathematics 11A and 11B (Calculus with Applications), or Mathematics 20A and 20B, Honors Calculus
Applied Mathematics and Statistics
Applied Mathematics and Statistics 10, Mathematical Methods for Engineers I or Mathematics 21, Linear Algebra
Upper-Division Requirements
All students in the major must complete the following course:
CMPS 101, Algorithms and Abstract Data Types
In addition to the above course (and the lower-division requirements, listed above), students must complete upper-division electives chosen as follows:
- Complete three courses from the breadth list below;
- Complete two additional computer science electives chosen from any 5-credit upper-division computer science course except those numbered 191-194 and 196-199;
- Complete two additional 5-credit technical electives selected from the technical elective list below;
Complete the Disciplinary Communication requirement given below. At least 50 percent of these upper-division courses must be completed at UCSC.
Breadth List (complete at least three):
CMPS 102, Introduction to Analysis of Algorithms
CMPS 104A, Compiler Design
CMPS 111, Operating Systems
CMPS 112, Comparative Programming Languages
CMPS 115, Software Methodology
CMPS 122, Computer Security
CMPS 140, Artificial Intelligence
CMPS 160/L, Computer Graphics / Laboratory
CMPS 180/CMPS 180W, Database Systems I
CMPS 185, Technical Writing and Communication in Computer Science
Computer Engineering 110, Computer Architecture
Technical Elective List (complete at least two):
Any 5-credit upper-division course offered by the Baskin School of Engineering except those numbered 191 through 194 and 196 through 199.
Any 5-credit upper-division course from the Division of Physical and Biological Sciences except those numbered 190 and above.
Art 118, Computer Art: Theories, Methods, and Practices
Art 120/121, Advanced Projects in Computer Art I/II
Economics 100M, Intermediate Microeconomics, Math Intensive
Economics 100N, Intermediate Macroeconomics, Math Intensive
Economics 101, Managerial Economics
Environmental Studies 115A/L, Geographic Information Systems
Film and Digital Media170A, Fundamentals of Introduction to Digital Media Production
Film and Digital Media 177, Digital Media Workshop: Computer as Medium
Linguistics 112/113/114, Syntax I/II/III
Linguistics 116/118, Semantics II/III
Linguistics 125, Foundations of Linguistic Theory
Music 123, Electronic Sound Synthesis
Music 124, Intermediate Electronic Sound Synthesis
Music 125, Advanced Electronic Sound Synthesis
Disciplinary Communication (DC) Requirement
Students of every major must satisfy that major's upper-division Disciplinary Communication (DC) Requirement. The DC Requirement in computer science (B.A.) is satisfied by completing CMPS 115, CMPS195, Computer Engineering 185, CMPS 132 and 132W, CMPS 185, or CMPS180 and 180W. Some of these courses may also fulfill one of the upper-division electives listed above.
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 21 courses must be completed for the B.S. in computer science, whereas a minimum of 15 courses must be completed for the B.A. in computer science. Out of the 21 courses, 10 are lower-division courses (including two science courses), and 11 are upper-division courses. The B.S. is more structured than the B.A.; 17 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
CMPS12A/L Introduction to Programming(Accelerated)/Laboratory (or CMPS5J, Introduction to Programming in Java and CMPS11, Intermediate Programming. Computer Engineering 13/L may be taken as an alternative to CMPS 12A/L. CMPS 13H/L may be taken as an alternative to CMPS 12A/L and CMPS 12B/M)
CMPS 12B/M Introduction to Data Structures/Laboratory (CMPS13H/L may be taken as an alternative to CMPS12A/L and CMPS12B/M)
CMPS101 Algorithms and Abstract Data Types
CMPS102 Introduction to Analysis of Algorithms
CMPS104A Fundamentals of Compiler Design I
CMPS111 Introduction to Operating Systems
CMPS112 Comparative Programming Languages
CMPS130 Computational Models
Computer Engineering
Computer Engineering 12/L Computer Systems and Assembly Language/Laboratory
Computer Engineering 16 Applied Discrete Mathematics
Computer Engineering 110 Computer Architecture, or Computer Engineering 112, Computer and Game Console Architecture
Mathematics
Mathematics 19A and 19B, Calculus for Science, Engineering, and Mathematics, or Mathematics 20A and 20B, Honors Calculus
Mathematics 23A, Multivariable Calculus
Applied Mathematics and Statistics
Applied Mathematics and Statistics 10, Mathematical Methods for Engineers I; or Mathematics 21, Linear Algebra
Applied Mathematics and Statistics 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 1A and 1B/M, General Chemistry/Laboratory; or
Chemistry 1A and 1C/N, General Chemistry/Laboratory
Additional Upper-Division Electives
Four upper-division computer science or computer engineering courses with course number 190or below, or CMPS 195. One of these courses may be replaced by one of the following upper-division mathematics courses:
Applied Mathematics and Statistics 114, Introduction to Dynamical Systems
Applied Mathematics and Statistics 131, Introduction to Probability Theory
Applied Mathematics and Statistics 147, Computational Methods and Applications
Mathematics 115, Graph Theory
Mathematics 117, Advanced Linear Algebra
Mathematics 126, Mathematical Control Theory
Mathematics 148, Numerical Analysis
Disciplinary Communication (DC) Requirement
The DC Requirement in computer science (B.S.) is satisfied by completing CMPS 115, CMPS 195, Computer Engineering 185, CMPS 132 and 132W, CMPS 185, or CMPS 180 and 180W. These courses may also fulfill one of the upper-division electives listed above.
Comprehensive Requirement for the Computer Science B.A. and B.S.
In addition to the above B.A. or B.S. 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.
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 117 Software Design Project II
CMPS 161 Introduction to Data Visualization
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. Withdrawls 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.
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 CMPS 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 CMPS 195 is earned when the final thesis is approved.
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 have some prior experience with programming. Plans One B and Two B are for students who are considering the major and have no prior programming experience. 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 19B | CMPS 12B/M |
MATH 19A | CMPS 12A/L | AMS 10 | |
2nd (soph) |
CMPE 12/L | CMPE 16 | CMPS 101 |
Plan One B, B.A. Degree |
|||
Year | Fall | Winter | Spring |
1st (frsh) |
AMS 3 | MATH 19A | MATH 19B |
CMPS 10 | CMPS 5J | CMPS 11 | |
2nd (soph) |
CMPS 12B/M | CMPE 16 | CMPS 101 |
AMS 10 | CMPE 12/L |
Plan Two A, B.S. Degree |
|||
Year | Fall | Winter | Spring |
1st (frsh) |
CMPS 12A/L | CMPS 12B/M | CMPE 16 |
MATH 19A | MATH 19B | MATH 23A | |
2nd (soph) |
CMPS 101 | CMPE 12/L | CMPS 102 |
AMS 10 | PHYS 6A/L | PHYS 6C/N |
Plan Two B, B.S. Degree |
|||
Year | Fall | Winter | Spring |
1st (frsh) |
CMPS 10 | CMPS 5J | CMPS 11 |
MATH 3 | MATH 19A | MATH 19B | |
2nd (soph) |
CMPS 12B/M | MATH 23A | CMPS 101 |
CMPE 12B/M | CMPE 12/L | AMS 10 |
Minor Requirements
Twelve courses are required for the computer science minor. These courses are:
-
Mathematics 11A and 11B or 19A and 19B or 20A and 20B
-
Applied Mathematics and Statistics 10 or Mathematics 21
-
CMPS 12A/L (or Computer Engineering 13/L, or both CMPS 5J and CMPS 11)
-
CMPS 12B/M
-
Computer Engineering 16
-
CMPS 101
-
Four additional upper-division computer science courses from a list of approved electives (see the department's curriculum chart for the computer science minor at http://ua.soe.ucsc.edu/curriculum-charts/).
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.
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 26 courses. 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, Mathematics 20A-B, Honors Calculus. Credit for one or both Mathematics 19A-B may be granted with adequate performance on the CEEB calculus AB or BC Advanced Placement exams).
Mathematics 21, Linear Algebra, or Applied Mathematics and Statistics 10, Mathematical Methods for Engineers I
Computer Engineering 16, Applied Discrete Mathematics
Physics 5A/L, Introduction to Physics I/Laboratory (or 6A/L)
Computational Foundations
Complete all of the following courses:
CMPS 12A/L, Introduction to Programming (Accelerated)/Laboratory (or 5J Introduction to Programming in Java, and 11 Intermediate Programming. Computer Engineering 13 may be taken as an alternative to CMPS 12A/L.)
CMPS 12B/M, Introduction to Data Structures/Laboratory
Computer Engineering 12/L, Computer Systems and Assembly Language/Laboratory
CMPS 109, Advanced Programming
CMPS 101, Algorithms and Abstract Data Types
Game Design
Complete all of the following courses.
CMPS 80K, Foundations of Interactive Game Design
CMPS 20, Game Design Experience
CMPS 170, Game Design Studio I
CMPS 171, Game Design Studio II
CMPS 172, Game Design Studio III
Computer Game Engineering
Complete five courses from the following list:
Applied Mathematics and Statistics 131, Introduction to Probability Theory
Applied Mathematics and Statistics 147, Computational Methods and Applications
CMPS 102, Introduction to Analysis of Algorithms
CMPS 104A, Fundamentals of Compiler Design I
CMPS 104B, Fundamentals of Compiler Design II
CMPS 105, Systems Programming
CMPS 111, Introduction to Operating Systems
CMPS 112, Comparative Programming Languages
CMPS 115, Software Methodology
CMPS 116, Software Design Project
CMPS 117, Software Design Project II
CMPS 119, Software for Society
CMPS 121, Mobile Applications
CMPS 122, Computer Security
CMPS 128, Distributed Systems, File Sharing, Online Gaming, and More
CMPS 129, Data Storage Systems
CMPS 130, Computational Models
CMPS 132, Computability and Computational Complexity
CMPS 142, Machine Learning and Data Mining
CMPS 160/L, Introduction to Computer Graphics/Laboratory
CMPS 161, Introduction to Data Visualization
CMPS 162, Advanced Computer Graphics and Animation
CMPS 164/L, Game Engines/Laboratory
CMPS 140, Artificial Intelligence
CMPS 146, Game Artificial Intelligence
CMPS 148, Interactive Storytelling
CMPS 166A, Game Theory and Applications I
CMPS 179, Game Design Practicum (may be repeated for credit; only the first offering counts toward the Computer Game Engineering requirement)
CMPS 180, Database Systems I
CMPS 181, Database Systems II
CMPS 183, Hypermedia and the Web
Computer Engineering 110, Computer Architecture
Computer Engineering 112, Computer and Game Console Architecture
Computer Engineering 113, Parallel and Concurrent Programming
Computer Engineering 117/L, Embedded Software/Laboratory
Computer Engineering 118/L, Introduction to Mechatronics/Laboratory
Computer Engineering 131, Human-Computer Interaction
Computer Engineering 150/L, Introduction to Computer Networks/Laboratory
Digital Media
Complete two courses from the following list:
Film and Digital Media 130, Silent Cinema
Film and Digital Media 136C, Visual Culture and Technology: History of New Media
Film and Digital Media 150, Screenwriting
Film and Digital Media 170A, Introduction to Digital Media Production
Film and Digital Media 171D, Social Information Spaces
Film and Digital Media 173, Narrative Workshop: Reconfiguring Narrative within the Digital Realm
Film and Digital Media 177, Digital Media Workshop, Computer as Medium
Film and Digital Media 189, Advanced Topics in Digital and Electronic Media Spaces
Art 103, Physical Computing – Installation and Sculpture
Theatre 105, Introduction to Digital Media Design
Theatre 114, Design Studio: Sound
Theater Arts 157, Playwriting
Music 123, Electronic Sound Synthesis
Music 124, Intermediate Electronic Sound Synthesis
Music 125, Advanced Electronic Sound Synthesis
Any 5-credit, upper-division course offered in the digital arts new media (DANM) curriculum (may require approval of instructor)
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 21st Century: Science, Business, and Society (crosslisted as Philosophy 80G)
Art Elective
One of:
Art 10D, 2D Foundation
Art 10E, 3D Foundation
Art 10F, 4D Foundation
Art 20A, Concepts and Practice in Drawing
Art 20B, Concepts and Practice in Digital/New Media
Art 20J, Introduction to Drawing and Painting
Art 80F, Introduction to Issues in Digital Media
CMPS 25, Introduction to Computer Graphics: 3D Modeling
CMPS 26, Introduction to Computer Graphics: 3D Animation
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
Any 80-series course in Film and Digital Media.
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 Allocation and Market Structure
Economics 2, Introductory Macroeconomics, Aggregate Economic Activity
Economics 80H, Wall Street and the Money Game
Disciplinary Communication (DC) Requirement
Students of every major must satisfy that major's upper-division Disciplinary Communication (DC) Requirement. The DC Requirement in computer science: game design is satisfied by completing the game design studio sequence CMPS 170, 171, and 172.
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 two sample academic plans that students can use to plan their sequence of courses in the major. These plans 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/L. 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/L to ensure a successful outcome in those courses.
Plan One—Enter UCSC Freshman Year |
||||
Year |
Fall |
Winter |
Spring |
|
1st |
Core |
Art/Social Elective I |
CMPS 80K (Foundations of Interactive Game Design) |
|
MATH 19A or 20A |
MATH 19B or 20B |
CMPE 16 |
||
CMPS 12A/L |
CMPS 12B/M |
Composition (C or gen ed) |
||
2nd |
PHYS 5A/L or 6A/L |
Art/Social elective II |
Art/Social elective III |
|
gen ed |
CMPS 101 |
Ethics requirement |
||
MATH 21 or AMS 10 |
CMPS 20 (Game Design Experience) |
Game engineering elective I |
||
3rd |
CMPE 12/L |
CMPS 109 |
gen ed |
|
Game engineering elective II |
Game engineering elective III |
Game engineering elective IV |
||
gen ed |
gen ed |
|||
4th |
Digital Media |
gen ed |
gen ed |
|
CMPS 170 (Game Design Studio I) |
Game engineering elective V |
CMPS 172 (Game Design |
||
gen ed |
CMPS 171 (Game Design Studio II) |
Digital Media |
||
Plan Two—Enter UCSC Freshman Year, Need Math and Computer Science Preparation Classes (Mathematics 3, Computer Science 5J) |
||||
Year |
Fall |
Winter |
Spring |
|
1st |
Core |
Writing (C, or gen ed) |
Art/Social Elective I |
|
MATH 3 |
MATH 19A |
MATH 19B |
||
CMPS 5J |
CMPS 11 |
CMPS 80K (Foundations of |
||
2nd |
Art/Social elective II |
CMPS 25 (Game Design Experience) |
MATH 21 or AMS 10 |
|
CMPS 12B/M |
Ethics requirement |
CMPE 16 |
||
PHYS 6A/L |
CMPE 12/L |
Art/Social elective III |
||
3rd |
CMPS 101 |
Game engineering elective I |
gen ed |
|
Digital Media |
CMPS 109 |
Game engineering elective II |
||
gen ed |
gen ed |
Game engineering elective III |
||
4th |
gen ed |
gen ed |
gen ed |
|
CMPS 170 (Game |
CMPS 171 (Game |
CMPS 172 (Game Design Studio III) |
||
|
Game engineering elective IV |
Game engineering elective V |
Digital Media |
|
Graduate Programs
Program Description
The Computer Science Department at UCSC offers both a master's program and a doctoral program in computer science, as well as a master’s in games and playable media.
The goal of the computer science programs is to help students develop into independent scholars who are prepared for productive careers in research, teaching, and industry. The master of science (M.S.) degree may be used as a terminal degree or as the first step toward the doctor of philosophy degree (Ph.D.). The student-faculty ratio is five to one, making it possible for students to receive individual attention and to pursue programs that fit their individual needs. The intellectual atmosphere is enriched by regular colloquia and seminars presented by eminent contributors to the field, many of whom are associated with other major universities and industrial research centers in Silicon Valley and the wider San Francisco Bay Area.
The goal of the M.S. in games and playable media is to prepare students to make professional contributions to the creation of games and other forms of media that invite and structure play. The degree is offered through the UC Santa Cruz location in Silicon Valley, making possible deep connection and collaboration with local industry and economic development groups. The curriculum includes deep engagement with game creation as well as a focus on professional development. Students can also take advantage of the strong course offerings in games and related technologies on the Santa Cruz campus, as well as make connections with the department’s field-leading research groups. The M.S. in games and playable media is a four-quarter program that begins in fall quarter and ends in the following summer. Students are expected to complete coursework in one academic year, without leaves of absence.
The Computer Science Department enjoys a close relationship with the Computer Engineering and Electrical Engineering Departments, the Biomolecular Engineering Department, the Applied Mathematics and Statistics Department, and the new Technology Management Department.
Most computer science Ph.D. students are hired as teaching assistants helping with undergraduate courses, hired as research assistants working for computer science and other School of Engineering faculty, or awarded fellowships to pursue their research.
Additional information on the computer science graduate programs can be found on the department's web pages at www.soe.ucsc.edu.
Requirements for the Computer Science Master’s Degree: Project Track
Course Requirements
Each student is required to take 50 credits as follows:
-
Computer Science 200, Research and Teaching in Computer Science and Engineering, 3 credits
-
Computer Science 201, Analysis of Algorithms, 5 credits
-
Computer Science 203, Programming Languages, 5 credits
-
Computer Science 296, Master's Project, 2 credits
-
A base requirement in computer architecture must be met by taking Computer Engineering 110 or Computer Engineering 202 or equivalent elsewhere (approval required). Computer Engineering 110 can be taken to meet the architecture requirement, however, the credits will not be counted toward graduation requirements
-
One course each from three different breadth categories for a total of three courses (15 credits)—see www.cs.ucsc.edu/graduates/breadth/
-
All remaining courses must be regular, 5-credit graduate courses from: computer science, within the School of Engineering (with adviser's approval); or outside the School of Engineering (with adviser's and grad director's approval); courses that do not count include all courses numbered 200, 280, 296, 297, and 299
-
At least 30 credits must be in computer science
-
Two upper-division undergraduate computer science courses (other than course 101) or a graduate course (not seminar) in related disciplines outside the list of approved graduate courses may be substituted for one graduate course, when necessary to strengthen a student's preparation for graduate studies, with prior approval from the adviser and the graduate director.
Each student must complete CMPS200 in their first year.
Each student must complete CMPS 201 or a course to prepare the student for CMPS 201 in their first year, after which CMPS 201 should be completed by the end of the second year.
Each student must complete CMPS 203 or a course to prepare the student for CMPS 203 in their first year, after which CMPS 203 should be completed by the end of the second year.
Each student must complete Computer Engineering 110 or Computer Engineering 202 in their first year.
Project
Completion of a master's project is required for the master's degree. In consultation with the adviser, the student forms a master's project reading committee of at least two faculty members, each of whom is provided a copy of the project report. The final project must be accepted by the review committee before the award of the master of science degree.
Requirements for the Computer Science Master's Degree: Thesis Track
Course Requirements
Each student is required to take 48 credits as follows:
- Computer Science 200, Research and Teaching in Computer Science and Engineering, 3 credits
- Computer Science 201, Analysis of Algorithms, 5 credits
- Computer Science 203, Programming Languages, 5 credits
- A base requirement in computer architecture must be met by taking Computer Engineering 110 or Computer Engineering 202 or equivalent elsewhere (approval required). Computer Engineering 110 can be taken to meet the architecture requirement, however, the credits will not be counted toward graduation requirements
- One course each from three different breadth categories for a total of three courses (15 credits) —see www.cs.ucsc.edu/graduates/breadth/
- Up to 10 credits of course 297, Independent Study or Research; or course 299, Thesis Research
- All remaining courses must be regular, 5-credit graduate courses from: computer science, within the School of Engineering (with adviser's approval); or outside the School of Engineering (with adviser's and grad director's approval); courses that do not count include all courses numbered 200, 280, 296, 297, and 299
- At least 28 credits must be in computer science
- Two upper-division undergraduate computer science courses (other than course 101) or a graduate course (not seminar) in related disciplines outside the list of approved graduate courses may be substituted for one graduate course, when necessary to strengthen a student's preparation for graduate studies, with prior approval from the adviser and the graduate director.
Each student must complete CMPS200 in their first year.
Each student must complete CMPS 201 or a course to prepare the student for CMPS 201 in their first year, after which CMPS 201 should be completed by the end of the second year.
Each student must complete CMPS 203 or a course to prepare the student for CMPS 203 in their first year, after which CMPS 203 should be completed by the end of the second year.
Each student must complete Computer Engineering 110 or Computer Engineering 202 in their first year.
Thesis
Completion of a master's thesis is required for the master's degree. To fulfill this requirement, the student submits a written proposal to a faculty member, usually by the third academic quarter. By accepting the proposal, the faculty member becomes the thesis adviser. In consultation with the adviser, the student forms a master's thesis reading committee with at least two additional faculty members, each of whom is provided a copy of the proposal. The student presents an expository talk on the thesis research, and the final thesis must be accepted by the review committee before the award of the master of science degree.
Requirements for the Ph.D. Degree
Course Requirements
Each student is required to take 58 credits as follows:
- CMPS 200, Research and Teaching in Computer Science and Engineering, 3 credits
- CMPS 201, Analysis of Algorithms, 5 credits
- CMPS 203, Programming Languages, 5 credits
- A base requirement in computer architecture must be met by taking Computer Engineering 110 or Computer Engineering 202 or equivalent elsewhere (approval required); Computer Engineering 110 can be taken to meet the architecture requirement, however, the credits will not be counted toward degree requirements
- One course each from three different breadth categories for a total of three courses (15 credits)—see www.cs.ucsc.edu/graduates/breadth/
- Up to 10 credits of course 297, Independent Study or Research; or course 299, Thesis Research
- All remaining courses must be regular, 5-credit graduate courses from: computer science, within the School of Engineering (with adviser's approval); or outside the School of Engineering (with adviser's and grad director's approval); courses that do not count include all courses numbered 200, 280, 296, 297, and 299
- At least 33 credits must be in computer science
- Graduate courses (not seminars) in related disciplines outside the list of approved graduate courses may be substituted, when necessary to strengthen a student's preparation for graduate studies, with prior approval from the adviser and the graduate director. Course selection should form a coherent plan of study and requires adviser approval. Undergraduate courses may not be used to satisfy Ph.D. course requirements
- Each student is required to complete at least one quarter of teaching assistantship. This requirement can be met after advancement to candidacy. Certain exceptions may be permitted for those with extensive prior teaching experience or those who are not allowed to be employed due to visa regulations.
Ph.D. students who have satisfied the requirements for the master's degree are eligible to receive a masters degree.
Examinations and Dissertation
To continue in the Ph.D. program, students must pass a preliminary examination in their chosen research area by the end of their third year. Preliminary examinations are held during the first three weeks of each spring quarter; students must petition the computer science graduate committee for an examination in their chosen area two weeks before the end of winter quarter. Examination committees consist of four faculty members, two chosen by the student and two by the computer science graduate committee. The format of this oral examination is up to the examination committee; the examination will typically evaluate both general knowledge of the chosen area and specific understanding of selected technical papers. The preliminary examination requirement is waived for students who advance to candidacy by the end of their third year.
Each student writes a Ph.D. dissertation. The dissertation must show the results of in-depth research, be an original contribution of significant knowledge, and include material worthy of publication. Where appropriate, research internships with companies, government labs, or elsewhere are recognized (and may be required) as an integral part of the research leading to the dissertation. As the first step, a student submits a written dissertation proposal to a School of Engineering faculty member. By accepting the proposal, the faculty member becomes the dissertation supervisor. The dissertation proposal is publicly and formally presented in an oral qualifying examination given by a qualifying examination committee, approved by the graduate committee and the Graduate Council. The student must submit his or her written dissertation proposal to all members of the committee and the graduate assistant one month in advance of the examination.
Students are advanced to candidacy after they have completed the course requirements, passed the qualifying examination, cleared all Incompletes from their records, have an appointed dissertation reading committee, and paid the filing fee. Students who have not advanced to candidacy by the end of their fourth year will be placed on academic probation.
Each Ph.D. candidate submits the completed dissertation to a reading committee at least one month prior to the dissertation defense. The appointment of the dissertation reading committee is made immediately after the qualifying examination and is necessary for advancing to candidacy. The candidate presents his or her research results in a public seminar sponsored by the dissertation supervisor. The seminar is followed by a defense of the dissertation to the reading committee and attending faculty, who will then decide whether the dissertation is acceptable or requires revision. Successful completion of the dissertation fulfills the final academic requirement for the Ph.D. degree.
Requirements for the Games and Playable Media Master’s Degree
Course Requirements
Each student is required to take 46 credits, though the game art, game writing, and game sound requirements will likely lead to more. Required courses are as follows:
-
Games and Playable Media 221, 222, and 223; Professional Development for Game Makers 1, 2, and 3; 6 credits (2 credits each)
-
CMPS 265, Generative Methods, 5 credits
-
Games and Playable Media 270, 271, and 272; Games and Playable Media Studio 1, 2, and 3; 15 credits (5 credits each)
-
Games and Playable Media 273, Game Development Intensive, 10 credits
-
Two courses from the Game Engineering Electives list below, 10 credits, (5 credits each); can be upper-division undergraduate if appearing on approved list for Games and Playable Media M.S. degree; often satisfied by taking CMPS 265, Generative Methods and CMPS 248, Interactive Storytelling.
Before entering the Game Development Intensive (GAME 273), students must satisfy the game art, game writing, and game sound requirements, as described below:
-
The game art requirement is satisfied by (a) having completed two or more courses in a relevant area of art, at any institution, at either the undergraduate or graduate level (such as courses CMPS 25, and CMPS 26); or (b) by completing course Games and Playable Media 210, Game Art Intensive; or (c) by submitting a portfolio of prior work in one or more areas and undergoing a qualifying examination.
-
The game writing requirement is satisfied by (a) having completed two or more courses in a relevant area of writing or interactive narrative (such as CMPS 148, Interactive Storytelling), at any institution, at either the undergraduate or graduate level; or (b) by completing course CMPS 248, Interactive Storytelling (pending approval); or (c) by submitting a portfolio of prior work in one or more areas and undergoing a qualifying examination.
-
The game sound requirement is satisfied by (a) having completed two or more courses in a relevant area of music, sound effects, or game audio, at any institution, at either the undergraduate or graduate level; or (b) by completing course Games and Playable Media 215, Audio Direction; or (c) by submitting a portfolio of prior work in one or more areas and undergoing a qualifying examination.
Project
Completion of a master's project is required for the master's degree. These are generally collaborative projects, created together with other students in the Games and Playable Media M.S. program. Projects are typically performed by students during Games and Playable Media 273, Game Development Intensive. Students are evaluated based both on their individual contributions to the project and on the overall success of the project as a whole. Each project will be demonstrated via a public presentation.
Game Engineering Electives
The following courses may be used to satisfy game engineering electives for the Games and Playable Media M.S. degree:
Graduate courses:
CMPS 221: Advanced Operating Systems
CMPS 223: Advanced Computer Security
CMPS 229: Storage Systems
CMPS 232: Distributed Systems
CMPS 240: Artificial Intelligence
CMPS 241: Knowledge Engineering
CMPS 242: Machine Learning
CMPS 244: Artificial Intelligence in Games
CMPS 245: Computational Models of Discourse and Dialogue
CMPS 248: Interactive Storytelling
CMPS 253: Advanced Programming Languages
CMPS 260: Computer Graphics
CMPS 261: Advanced Visualization
CMPS 262: Computer Animation
CMPS 265: Generative Methods
CMPS 272: Evolutionary Game Theory
CMPS 277: Principles of Database Systems
CMPS 278: Design and Implementation of Database Systems
Computer Engineering 202: Computer Architecture
Computer Engineering 215: Models of Robotic Manipulation
Computer Engineering 216: Bio-inspired Locomotion
Computer Engineering 218: Mechatronics
Computer Engineering 231: Human-Computer Interaction
Computer Engineering 233: Human Factors
Computer Engineering 235: User Evaluation of Technology
Computer Engineering 248: Games in Design and Control
Computer Engineering 250: Multimedia Systems
Computer Engineering 253: Network Security
Computer Engineering 263: Data Compression
Computer Engineering 264: Image Analysis and Computer Vision.
Upper-division undergraduate courses:
CMPS 115: Software Methodology
CMPS 119: Software for Society
CMPS 122: Computer Security
CMPS 128: Distributed Systems: File Sharing, Online Gaming, and More
CMPS 130: Computational Models
CMPS 140: Artificial Intelligence
CMPS 142: Machine Learning and Data Mining
CMPS 146: Game AI
CMPS 148: Interactive Storytelling
CMPS 160: Introduction to Computer Graphics
CMPS 161: Introduction to Data Visualization
CMPS 162: Advanced Computer Graphics and Animation
CMPS 164: Game Engines
CMPS 166A: Game Theory and Applications I
CMPS 166B: Game Theory and Applications II
CMPS 179: Game Design Practicum
CMPS 180: Database Systems I
CMPS 181: Database Systems II
CMPS 183: Hypermedia and the Web
Computer Engineering 110: Computer Architecture
Computer Engineering 112: Computer and Game Console Architecture
Computer Engineering 118: Introduction to Mechatronics
Computer Engineering 131: Human-Computer Interaction.
Transfer Credit
Up to three School of Engineering courses fulfilling the degree requirements of either the M.S. or Ph.D. degrees may be taken before beginning the graduate program through the concurrent enrollment program.
Ph.D. students who have previously earned a master's degree in a related field at another institution may substitute courses from their previous university with approval of the adviser and the graduate committee.
With the exception of the game art, game writing, and game sound requirements of the Games and Playable Media M.S. program, courses from other institutions may not be applied to the M.S. degree course requirements.
Petitions should be submitted along with the transcript from the other institution or UCSC extension. For courses taken at other institutions, copies of the syllabi, exams, and other coursework should accompany the petition. Such petitions are not considered until the completion of at least one quarter at UCSC.
At most, a total of three courses may be transferred from concurrent enrollment and other institutions.
Review of Progress
Each year, the faculty reviews the progress of every student. Students not making adequate progress toward completion of degree requirements (see the Graduate Handbook for policy on satisfactory academic progress) are subject to dismissal from the program. Students with academic deficiencies may be required to take additional courses. Full-time students with no academic deficiencies are normally expected to complete the degree requirements at the rate of at least two courses per quarter. Full-time computer science students must complete course 201, Computer Engineering 202, and course 203 within two years and normally must complete all course requirements within two years for the M.S. and three years for the Ph.D.
Ph.D. students who have not advanced to candidacy by the end of their fourth year will be placed on academic probation.
Students receiving two or more grades of below B or U (fail) in the School of Engineering (SoE) courses are not making adequate progress and will be placed on academic probation for the following three quarters of registered enrollment. Withdrawing or taking a leave of absence does not count as enrollment. Part-time enrollment is counted as a half quarter of enrollment.
Should any computer science graduate student fail a School of Engineering course while on probation, the Computer Science Department may request the graduate dean to dismiss that student from the graduate program. If after being removed from probation, the student again fails a School of Engineering course, he or she will return immediately to academic probation.
Graduate students experiencing circumstances or difficulties that impact their academic performance should contact their adviser and the graduate director immediately. Students may appeal their dismissal.
Revised: 09/16/14