Computer Science

Master’s Degree Requirements (pre-2012)

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

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)

MS Undergraduate Proficiency Requirements

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.


MS Graduate Breadth Requirements

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 I
ECS 201A Advanced Computer Architecture
EEC 270 Computer Architecture
Tier II
ECS 201B High-Performance Uniprocessing
ECS 203 Novel Computing Technologies
ECS 289B Special Topics: Architecture
EEC 277 Graphics Architecture
Systems Tier I
ECS 240 Programming Languages
ECS 251 Operating Systems
ECS 260 Software Engineering
Tier II
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
Theory 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 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 I
ECS 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 II
ECS 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.

Requirements for the Master’s Degree

Master’s Degree Plan I (Thesis)

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.

Unit/Course Requirements
  • 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.
Procedures

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.

The Thesis

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.

Academic Residence

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

Advancement to Candidacy

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.

Normal Progress Requirements
  • 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.

Master’s Degree Plan II (Examination)

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

Unit/Course Requirements
  • 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.
Comprehensive Examination

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.

Program of Study

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.

Normal Progress Requirements
  • 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.

Appendix A
Undergraduate Proficiency Course Requirements

Computer Architecture

ECS 154A Computer Architecture

Operating Systems

ECS 150 Operating Systems and System Programming

Programming Languages

ECS 140A Programming Languages

Theoretical Foundations of Computer Science

One of the following:

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

Mathematical Proficiency

One of the following:

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

One additional mathematics course at the upper division level.


Appendix B
MS Graduate Breadth Requirement

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

MS Breadth Requirement

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

Architecture

Tier I

  • ECS 201A Advanced Computer Architecture

Tier II

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

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
Theory

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
Applications

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

Appendix C
Guidelines for Committee Selection

Master’s Thesis Committee

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

Appendix D
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.

Architecture

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

Artificial Intelligence

  • ECS 170 Artificial Intelligence
  • ECS 270 Artificial Intelligence

Database Systems

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

Graphics and Visualization

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

Networks

  • ECS 152A Computer Networks
  • ECS 152B Computer Networks
  • ECS 252 Computer Networks

Operating Systems

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

Programming Languages and Compilers

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

Software Engineering

  • ECS 160 Software Engineering
  • ECS 260 Software Engineering

Theory

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