Advice on CSE Graduate Course Preparation by Speciality

This document is intended to help students proactively prepare themselves for the UCSD CSE department’s fast-paced master’s degree in Computer Science or Computer Engineering. Before commencing the UCSD CSE MS Program, it is highly recommended that you ensure you possess the foundational knowledge and skill sets necessary for you to be successful in our graduate-level courses. Note that specific information about courses being offered each quarter, including prepartory work, is available on other web pages.

The competency recommendations will include high-level descriptions of expected knowledge, as well as references to online courses that can help you obtain that knowledge if needed. Since our undergraduate courses are highly impacted, there are very few opportunities for graduate students to enroll in undergraduate classes at UCSD. It is recommended that you acquire the necessary preparatory knowledge via online courses or from other external course offerings prior to enrolling in graduate courses.

These competency recommendations are broken down into two categories: a baseline competency that is common across all depth areas, and additional recommended background specific to individual depth areas (including links to the graduate course descriptions), which are listed below:

  • Artificial Intelligence

  • Bioinformatics

  • Computer Engineering

  • Computer Systems

  • Database Systems

  • Graphics and Vision

  • Human-Computer Interaction

  • Programming Languages, Compilers, and Software Engineering

  • Theoretical Computer Science

Minimum Baseline Competency Requirements (applicable to all depth areas):

Artificial Intelligence (e.g. CSE 250A):

Bioinformatics:

  • Molecular Sequence Analysis and Biological Databases (e.g. CSE 280A)

    • Analysis of nucleic acid and protein sequences, with an emphasis on the application of algorithms to biological problems

    • Sequence alignments, database searching, comparative genomics, and phylogenetic and clustering analyses

    • Pairwise alignment, multiple alignment, DNA sequencing, scoring functions, fast database search, comparative genomics, clustering, phylogenetic trees, gene finding/DNA statistics

    • Relational databases, object-oriented databases, ontologies, data modeling and description, survey of current biological databases

    • Online courses:

Computer Engineering:

Computer Systems:

  • Probability and Statistics

    • Distribution over the real line, independence, expectation, conditional expectation, mean, variance, hypothesis testing, learning classifiers, distributions over Rn, covariance matrix, binomial, Poisson distributions, Chernoff bound, entropy, compression, arithmetics coding, maximal likelihood estimation, and Bayesian estimation

  • Operating Systems (e.g. CSE 221)

    • Basic concepts used to structure computer operating systems

    • Batch processing, multiprogramming, input/output, pooling, interrupt handling, processes, descriptors, process synchronization, interprocess communication, memory management, virtual memory, caching, buffers, naming, files, interactive command interpreters, and processor scheduling

    • Online courses:

  • Networks (e.g. CSE 222A)

    • Concepts, principles, and practice of computer communication networks with examples from existing architectures, protocols, and standards

    • Layering and the OSI model, switching, local/metropolitan/wide area networks, datagrams and virtual circuits, routing and congestion control, internetworking

    • Online courses:

  • Computer Security (e.g. CSE 227)

    • Basic cryptography, security/threat analysis, access control, auditing, security models, distributed systems security, and theory behind common attack and defense techniques

    • Formal models as well as the bits and bytes of security exploits

    • Online courses:

  • High-Performance Parallel Computing (e.g. CSE 260)

    • Memory hierarchies: cache and virtual memory

    • Shared memory address organization: cache coherence, false sharing

    • Multithreading: fork-join parallelism, data races, synchronization, mutual exclusion

    • Online courses:

Database Systems:

  • Databases Principles and Applications (e.g. CSE 232)

    • Basic concepts of databases, including data modeling, relational databases, query languages, optimization, dependencies, schema design, and concurrency control

    • Exposure to one or several commercial database systems

    • Advanced topics such as deductive and object-oriented databases

    • Online courses/books:

Graphics and Vision:

  • Multivariable Calculus and Linear Algebra

  • Computer Graphics (e.g. CSE 272)

  • Computer Vision (e.g. CSE 252A)

    • Compute properties of the three-dimensional world from images and video, identify the 3D shape of a scene, determining how things are moving, and recognizing familiar people and objects

    • Feature detection, image segmentation, motion estimation, object recognition, and 3D shape reconstruction through stereo, photometric stereo, and structure from motion

    • Online courses:

Human-Computer Interaction:

  • Human-Computer Interaction Design (e.g. CSE 216 or COGS 230)

    • Moderate computer science background a plus, and undergraduate majors other than computer science are also welcome

    • No prior Human-Computer Interface knowledge required

    • MS students should start the HCI depth area by taking CSE 170 or COGS 120, or having an equivalent course from another institution

    • Online courses:

Programming Languages, Compilers, and Software Engineering:

  • Software Engineering (e.g. CSE 210)

  • Ubiquitous Computing (e.g. CSE 218)

    • Understanding of emerging opportunities enabled by cheap sensors and networked computing devices

    • Design of databases, transactions, use of trigger facilities and datablades, performance measuring, organization of index structures

    • Team-based research projects including presentation of research methods, software engineering, teamwork, and project management

Theoretical Computer Science: