This document describes requirements for the Master’s degree offered by the Graduate Group in Computer Science at UC Davis, prior to 2012. These degree requirements are not available to those who started the program in 2012 or later; those students must follow the most recent degree requirements.

- Computer Science Breadth Requirements
- MS Undergraduate Proficiency Requirements
- MS Graduate Breadth Requirements
- Requirements for the Master’s Degree
- Appendix A: Undergraduate Proficiency Course Requirements
- Appendix B: MS Graduate Breadth Requirement
- Appendix C: Guidelines for Committee Selection
- Appendix D: Master’s Comprehensive Examination – List of Examination Areas

All students receiving degrees through the Graduate Group in Computer Science must satisfy the “breadth” requirements. These requirements include:

- Demonstrated proficiency at the undergraduate level in four fundamental areas of computer science, and in mathematics (see Appendix A)
- MS students must demonstrate proficiency at the graduate level in three breadth areas (see Appendix B)

A student satisfies the undergraduate proficiency requirements by demonstrating proficiency at the undergraduate level in the following areas:

- Computer Architecture
- Programming Languages
- Operating Systems
- Theoretical Foundations of Computer Science
- Mathematical Foundations

A student satisfies the above requirements in one of the following ways:

- Demonstration of proficiency in each area on the student’s previous undergraduate or graduate record. This is decided by a graduate advisor in consultation with the student.
- Demonstration of proficiency in each area by completion of an approved undergraduate course in the area with a grade of B or better. (See Appendix A for a list of “approved” courses for each area.)
- Demonstration of proficiency in an area by completion of a graduate course, with a grade of B or better, equivalent to one of the approved undergraduate courses in the area, or approved by the graduate adviser.
- Demonstration of proficiency in an area by challenging one of the approved courses in the area, receiving a grade of B or better.
- Petitioning the Graduate Advisors Committee of the Graduate Group to have the requirement removed, or have an acceptable substitute course submitted in place of the requirement.

It is expected that the student will complete the Undergraduate Proficiency Requirements by the end of the first academic year of residence. This deadline may be extended only by approval of the Graduate Advisors Committee of the Graduate Group.

The breadth requirement of the Computer Science Graduate Group includes demonstrated proficiency in three of four areas of computer science at the graduate level: Architecture, Systems, Theory, and Applications. Courses are associated with the four areas as follows:

Architecture |
Tier IECS 201A Advanced Computer Architecture EEC 270 Computer Architecture Tier IIECS 201B High-Performance Uniprocessing ECS 203 Novel Computing Technologies ECS 289B Special Topics: Architecture EEC 277 Graphics Architecture |

Systems |
Tier IECS 240 Programming Languages ECS 251 Operating Systems ECS 260 Software Engineering Tier IIECS 243 Code Generation and Optimization ECS 244 Principles of Concurrent Programming ECS 289C Special Topics: Programming Languages and Compilers ECS 289D Special Topics: Operating Systems ECS 289E Special Topics: Software Engineering |

Theory |
Tier IECS 222A Design and Analysis of Algorithms Tier IIECS 220 Theory of Computation ECS 222B Advanced Design and Analysis of Algorithms ECS 223 Parallel Algorithms ECS 224 String Algorithms and Applications in Computational Biology ECS 225 Graph Theory ECS 226 Computational Geometry ECS 227 Modern Cryptography ECS 228 Cryptography for E-commerce ECS 230 Applied Numerical Linear Algebra ECS 278 Computer-Aided Geometric Design ECS 289A Special Topics: Theory |

Applications |
Tier IECS 231 Large-scale Scientific Computation ECS 234 Computational Functional Genomics ECS 235A Computer and Information Security ECS 236 Computer Security Intrusion Detection Based Approach ECS 252 Computer Networks ECS 256 Performance Evaluation ECS 265 Distributed Database Systems ECS 267 Wide-Area Distributed Information Systems ECS 268 Scientific Data and Workflow Management ECS 270 Artificial Intelligence ECS 271 Machine Learning and Discovery ECS 272 Information Visualization ECS 274 Automated Deduction ECS 275A Advanced Computer Graphics ECS 276 Advanced Volume Visualization ECS 277 Advanced Visualization ECS 278 Computer-Aided Geometric Design ECS 279 Topics in Character Animation Tier IIECS 229 Advanced Computational Structural Bioinformatics ECS 235B Foundations of Computer and Information Security ECS 256B High Speed Networks ECS 257 Mobile and Wireless Networks ECS 258 Internet Quality of Service ECS 259 Optical Networks ECS 273 Applied Visual Computing ECS 275B Advanced Computer Graphics ECS 280 Principles of Virtual Reality ECS 289F, G, H, I, J, K, M, S Special Topics |

The student can satisfy the above requirements in one of the following ways:

- Completion of a Tier I course with a grade of B or better.
- If required grade is not received in Tier I course, a Tier II course must be completed with a grade of B or better for the requirement to be satisfied.
- Demonstration of a similar graduate course taken at another institution with a grade of B or better. (A graduate advisor must approve this option.)
- Challenging a required course in the area (according to University of California procedures), receiving a grade of B or better.

Students who wish to develop a thorough knowledge of the state of the art in a specific field of Computer Science may choose the master’s thesis option.

- Thirty-six (36) units of upper-division and graduate course work are required.
- At least six (6) graduate courses are required, excluding 290, 290C, 298, and 299.
- No more than nine (9) units of 299 may be counted toward the 36-unit requirement.
- At most six (6) units of undergraduate course work, completed to satisfy the breadth requirements, may be counted toward the 36-unit requirement.
- A grade of B or better must be obtained in all coursework used to satisfy degree requirements.

A thesis must be approved by a committee of three members. The committee membership must be approved by Graduate Studies (accomplished through the “Advancement to Candidacy” petition). The committee members are restricted by the requirements stated in Appendix C.

A Master’s thesis is usually based on six to nine units of laboratory research carried out under the 299-course number. The thesis should demonstrate the student’s proficiency in research methods and scientific analysis, and a thorough knowledge of the state of the art in the student’s chosen area. A Master’s thesis is a description of an original technical or research contribution of limited scope, or an advanced design project.

A student must be in residence at the University for a minimum of three quarters.

Every student must file an official application for Advancement to Candidacy after they have completed at least one-half the course requirements for the degree. Note that this must be done at least one full quarter before completion of all degree requirements and before going on filing fee status.

- It is expected that the student will complete the breadth requirements within the first four quarters of residence.
- It is expected that the student will complete the MS degree by the end of the seventh (7th) quarter of residence at the university, including all course requirements and the approval of the thesis.
- These deadlines may be extended only by approval of the Graduate Advisors Committee of the Graduate Group.

Students who wish to develop breadth at the graduate level in computer science may choose the Master’s examination option.

- Thirty-six (36) units of upper-division and graduate course work are required.
- At least eight (8) graduate courses are required, excluding 290, 290C, 298, and 299.
- No more than three (3) units of 299 may be used to fulfill the 36-unit requirement.
- At most six (6) units of undergraduate course work completed to satisfy the undergraduate breadth requirements may be counted toward the 36-unit requirement.
- A grade of B or better must be obtained in all coursework used to satisfy degree requirements.

The student is required to pass a comprehensive examination at the graduate level in three different areas of computer science. At least two of the areas must be taken from the following list:

- Computer Architecture
- Operating Systems
- Programming Languages
- Theory

The third area may be chosen from the list detailed in Appendix D, or include a third area from the above list.

These examinations may be oral, written or a combination of both and must be administered prior to the eighth week of the quarter in which the student plans to graduate. A student is allowed to repeat the Comprehensive Examination only once.

The student in conjunction with a graduate advisor develops the program of study for a student in Plan II. The Graduate Advisors Committee of the Graduate Group must approve the specific selection of courses used to satisfy the 36-unit requirement.

- It is expected that the student will complete the breadth requirements within the first four (4) quarters of residence.
- It is expected that the student will complete all course work and examinations by the end of the sixth (6th) quarter of residence.
- These deadlines may be extended only by approval of the Graduate Advisors Committee of the Graduate Group.

Undergraduate Proficiency Course Requirements

ECS 154A Computer Architecture

ECS 150 Operating Systems and System Programming

ECS 140A Programming Languages

One of the following:

- ECS 120 Theory of Computation
- ECS 122A Algorithm Design and Analysis

One of the following:

- MAT 131 Mathematical Probability
- STA 131A Introduction to Probability Theory

One additional mathematics course at the upper division level.

MS Graduate Breadth Requirement

This appendix lists coursework that may be used to fulfill the MS Graduate Breadth Requirement.

MS students must complete one course from three of the following areas with a grade of B or better.

*Tier I*

- ECS 201A Advanced Computer Architecture

*Tier II*

- ECS 201B High-Performance Uniprocessing
- ECS 203 Novel Computing Technologies
- ECS 289B Special Topics: Architecture

*Tier I*

- ECS 240 Programming Languages
- ECS 251 Operating Systems
- ECS 260 Software Engineering

*Tier II*

- An additional course from Tier I
- ECS 243 Code Generation and Optimization
- ECS 244 Principles of Concurrent Programming
- ECS 289C Special Topics: Programming Languages and Compilers
- ECS 289D Special Topics: Operating Systems
- ECS 289E Special Topics: Software Engineering

*Tier I*

- ECS 222A Design and Analysis of Algorithms

*Tier II*

- ECS 220 Theory of Computation
- ECS 222B Advanced Design and Analysis of Algorithms
- ECS 224 String Algorithms and Applications in Computational Biology
- ECS 225 Graph Theory
- ECS 226 Computational Geometry
- ECS 227 Modern Cryptography
- ECS 228 Cryptography for E-commerce
- ECS 230 Applied Numerical Linear Algebra
- ECS 278 Computer-Aided Geometric Design
- ECS 289A Special Topics: Theory

*Tier I*

- ECS 231 Large-scale Scientific Computation
- ECS 235 Computer and Information Security
- ECS 252 Computer Networks
- ECS 265 Distributed Database Systems
- ECS 270 Artificial Intelligence
- ECS 271 Machine Learning and Discovery
- ECS 275A Advanced Computer Graphics

*Tier II*

- ECS 230 Applied Numerical Linear Algebra
- ECS 236 Computer Security Intrusion Detection Based Approach
- ECS 256 Performance Evaluation
- ECS 257 Mobile and Wireless Networks
- ECS 258 Internet Quality of Service
- ECS 259 Optical Networks
- ECS 267 Wide-Area Distributed Information Systems
- ECS 273 Applied Visual Computing
- ECS 274 Automated Deduction
- ECS 276 Advanced Volume Visualization
- ECS 277 Advanced Visualization
- ECS 278 Computer-Aided Geometric Design
- ECS 279 Topics in Character Animation
- ECS 280 Principles of Virtual Reality
- ECS 289F, G, H, I, J, K, M, S Special Topics

Guidelines for Committee Selection

- The master’s thesis committee will be composed of three members.
- A duly elected member of the Graduate Group in Computer Science may chair this committee.
- At least two members of this committee must be members of the Academic Senate of the University of California.
- At least two members of this committee must be members of the Graduate Group in Computer Science.

Master’s Comprehensive Examination

List of Examination Areas

This appendix lists the examination areas of the Master’s Comprehensive Examination along with courses considered preparatory for this exam. Students must pass two examinations from the areas of Architecture, Programming Languages and Compilers, Theory, and Operating Systems. The third examination may be taken from any of the remaining areas.

- ECS 154A Computer Architecture
- ECS 154B Computer Architecture
- ECS 250A Advanced Computer Architecture

- ECS 170 Artificial Intelligence
- ECS 270 Artificial Intelligence

- ECS 165A Database Systems
- ECS 165B Database Systems
- ECS 265 Distributed Database Systems

- ECS 175 Computer Graphics
- ECS 177 Scientific Visualization
- ECS 178 Geometric Modeling
- ECS 275A Advanced Computer Graphics

- ECS 152A Computer Networks
- ECS 152B Computer Networks
- ECS 252 Computer Networks

- ECS 150 Operating Systems and System Programming
- ECS 251 Operating Systems

- ECS 140A Programming Languages
- ECS 142 Compilers
- ECS 240 Programming Languages

- ECS 160 Software Engineering
- ECS 260 Software Engineering

- ECS 120 Theory of Computation
- ECS 122A Algorithm Design and Analysis
- ECS 220 Theory of Computation
- ECS 222A Design and Analysis of Algorithms