19.01.2015 Views

UC Davis General Catalog, 2006-2008 - General Catalog - UC Davis

UC Davis General Catalog, 2006-2008 - General Catalog - UC Davis

UC Davis General Catalog, 2006-2008 - General Catalog - UC Davis

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

236 Engineering: Computer Science<br />

224. String Algorithms and Applications in<br />

Computational Biology (4)<br />

Lecture—3 hours; discussion—1 hour. Prerequisite:<br />

course 122A. Algorithms that operate on strings.<br />

Pattern matching, sets of patterns, regular expression<br />

pattern matching, suffix trees and applications, inexact<br />

similarity, parametric sequence alignment, applications<br />

to DNA sequencing and protein database<br />

searching. Offered in alternate years—I, III.<br />

Gusfield, Filkov<br />

225. Graph Theory (3)<br />

Lecture—3 hours. Prerequisite: graduate standing in<br />

electrical engineering or computer science or consent<br />

of instructor. Fundamental concepts. Vector<br />

spaces and graphs. Planar graphs: Whitney’s and<br />

Kuratowski’s theorems. Topological parameters:<br />

packings and coverings. Connectivity: Menger’s theorem.<br />

Hamilton graphs: Posa’s and Chvatal’s theorems.<br />

Graph factorization: Tutte’s theorem. Graph<br />

coloring: Brooks; and Vizing’s theorem.—II. (II.)<br />

Franklin<br />

226. Computational Geometry (4)<br />

Lecture—3 hours; discussion—1 hour. Prerequisite:<br />

course 175, 222A. Mathematics of unstructured<br />

data. Algorithms for data structures such as Voronoi<br />

diagrams, oct-trees, and arrangements. Applications<br />

in computer graphics, concentrating on problems in<br />

three-dimensions. Offered in alternate years.—III.<br />

Amenta, Max<br />

227. Modern Cryptography (4)<br />

Lecture—3 hours; discussion—1 hour. Prerequisite:<br />

course 220 or 222A. Modern cryptography as a<br />

discipline emphasizing formal definitions and proofs<br />

of security. One-way functions, pseudo-randomness,<br />

encryption, digital signatures, zero-knowledge,<br />

secure protocols.—II. (II.) Rogaway<br />

228. Cryptography for E-Commerce (4)<br />

Lecture—3 hours; discussion—1 hour. Prerequisite:<br />

course 222A. Cryptographic primitives and protocols<br />

of importance to e-commerce, present and<br />

future, including content distribution mechanisms,<br />

payment mechanisms, pricing mechanisms, anonymity<br />

and privacy mechanisms, fair exchange mechanisms.<br />

Offered in alternate years.—II. Franklin<br />

229. Advanced Computational Structural<br />

Bioinformatics (4)<br />

Lecture—3 hours; discussion—1 hour. Prerequisite:<br />

graduate standing. Algorithmic problems in structural<br />

biology; protein structure classification; protein<br />

structure prediction (including comparative modeling<br />

and ab initio protein structure prediction); molecular<br />

simulations (molecular dynamics and Monte Carlo<br />

simulations).—II. (II.) Koehl<br />

230. Applied Numerical Linear Algebra (4)<br />

Laboratory/discussion—3 hours; discussion—1<br />

hour. Prerequisite: course 130 or Engineering<br />

Applied Science 209 or Mathematics 167. Numerical<br />

linear algebra (NLA) with emphasis on applications<br />

in engineered systems; matrix factorizations;<br />

perturbation and rounding error analyses of fundamental<br />

NLA algorithms. Offered in alternate<br />

years.—(I.) Bai<br />

231. Large-Scale Scientific Computation (4)<br />

Lecture—3 hours; discussion—1 hour. Prerequisite:<br />

course 130. Algorithms and techniques for largescale<br />

scientific computation, including basics for<br />

high performance computing, iterative methods, discrete<br />

approximation, fast Fourier transform, Poisson<br />

solvers, particle methods, spectral graph partition<br />

and its applications. Offered in alternate years.—II.<br />

Bai<br />

236. Computer Security: Intrusion Detection<br />

Based Approach (4)<br />

Lecture—3 hours; discussion—1 hour. Prerequisite:<br />

course 150; course 153 recommended. Concepts of<br />

intrusion detection, anomaly detection based on<br />

machine learning, signature-based detection using<br />

pattern matching, automated response to attacks<br />

using artificial intelligence planning, tracing intruders<br />

based on principal component analysis, security<br />

policy languages. Offered in alternate years.—I. Levitt<br />

240. Programming Languages (4)<br />

Lecture—3 hours; discussion—1 hour. Prerequisites:<br />

courses 140A, 142. Advanced topics in programming<br />

languages, including formal syntax and semantics,<br />

the relation between formal semantics and<br />

verification, an introduction to the lambda calculus.<br />

Additional topics will include language design principles,<br />

alternative programming languages, in-depth<br />

semantic theory and models of language implementation.—II.<br />

(II.) Pandey<br />

242. Translation of Programming<br />

Languages (4)<br />

Lecture—3 hours; laboratory—3 hours. Prerequisite:<br />

course 240. Lexical analysis, parsing, storage management,<br />

symbol table design, semantic analysis<br />

and code generation. LR, LALR grammars. Compilercompilers.—III.<br />

(III.) Pandey<br />

243. Code Generation and Optimization (3)<br />

Lecture—3 hours. Prerequisite: course 242.<br />

Advanced code generation techniques. Representation<br />

of intermediate code. Data flow analysis, code<br />

movement, loop optimization, common subexpression<br />

elimination, and peephole optimization. Optimization<br />

by program transformation.—III. (III.) Pandey,<br />

Wilken<br />

244. Principles of Concurrent Programming<br />

(4)<br />

Lecture—3 hours; laboratory—3 hours. Prerequisite:<br />

courses 20, 150. Fundamental concepts and applications<br />

of concurrent programs; concurrent program<br />

verification and derivation; synchronization mechanisms<br />

in programming languages; distributed programming<br />

techniques; case studies of languages.—I.<br />

(I.) Olsson, Pandey<br />

247. Concurrent Programming Languages<br />

(4)<br />

Lecture—3 hours; laboratory—3 hours. Prerequisite:<br />

course 140A, 150. Language design parameters.<br />

Models of parallel machines. Load balancing. Scalability.<br />

Portability. Efficiency measures. Design and<br />

implementation techniques for several classes of concurrent<br />

programming languages (such as object-oriented,<br />

functional, logic, and constraint programming<br />

languages).—I. (I.) Pandey, Olsson<br />

251. Operating Systems (4)<br />

Lecture—3 hours; discussion—1 hour. Prerequisite:<br />

course 150. Models, design, implementation, performance<br />

evaluation in operating systems. Algorithms,<br />

internal architectures for single processor OS and<br />

distributed systems. Concurrency control, recovery,<br />

security. OS kernel-level programming. Special topics<br />

embedded systems, real-time system, device<br />

driver, NPU (Network Processor Unit).—III. (III.)<br />

Pandey, Wu<br />

252. Computer Networks (4)<br />

Lecture—3 hours; laboratory—3 hours. Prerequisite:<br />

course 152B. Internet protocol based computer networks<br />

applications, transport, network layer protocols.<br />

High speed LAN technologies: Ethernet,<br />

Asynchronous Transfer Mode (ATM). Delay models<br />

in data networks: analysis of multiaccess techniques<br />

in polling, ring, random access networks. Multimedia<br />

applications requirements and design.—II.<br />

Mukherjee, Mohapatra, Ghosal<br />

256. Performance Evaluation (4)<br />

Lecture—3 hours; project—1 hour. Prerequisite:<br />

courses 20, 152A, 154A-154B or Electrical and<br />

Computer Engineering 170, Statistics 131A; course<br />

150 recommended. Use of simulation and queueing<br />

theory in computer and communication system<br />

design. Applications to processor scheduling, memory<br />

hierarchies; I/O systems; packet and circuit<br />

switched networks; fault-tolerance; computer networks<br />

applications. Not open for credit to students<br />

who have completed course 256A.—I, II. (I, II.) Matloff,<br />

Ghosal, Mohapatra, Mukherjee<br />

257. Mobile and Wireless Networks (4)<br />

Lecture—3 hours; independent study. Prerequisite:<br />

course 252. Fundamental techniques in design of<br />

second generation wireless networks: cellular network<br />

and protocols, medium access techniques,<br />

handoff control, signaling and mobility management,<br />

wireless data works, Internet mobility and Personal<br />

Communication Services (PCS). Third<br />

generation wideband systems, novel technologies,<br />

adhoc networks. Offered in alternate years.—I. Ghosal,<br />

Mohapatra, Mukherjee<br />

258. Internet Quality of Service (4)<br />

Lecture—3 hours; independent study. Prerequisite:<br />

course 252. Fundamentals of Internet technology,<br />

resource management issues in the Internet, techniques<br />

for supporting quality of service in the Internet<br />

and Internet servers, traffic engineering, future<br />

research issues. Offered in alternate years.—(III.)<br />

Mohapatra, Ghosal<br />

259. Optical Networks (4)<br />

Lecture—3 hours; independent study. Prerequisite:<br />

course 252. Optical networks. Enabling technologies.<br />

Multiplexing techniques. WDM. Broadcast networks.<br />

Wavelength-routed networks. Network<br />

architectures. Protocols. Network algorithms. Devicenetwork<br />

interface. Optimization problems.—I. (I,)<br />

Mukherjee, Ghosal<br />

260. Software Engineering (4)<br />

Lecture—3 hours; project. Prerequisite: course 142;<br />

course 160 recommended. Advanced techniques for<br />

domain-specific software reuse.—I. (I.) Devanbu<br />

261. Program Verification (4)<br />

Lecture—3 hours; discussion—1 hour. Prerequisite:<br />

Mathematics 125 or Philosophy 112 or familiarity<br />

with first-order logic; knowledge of an iterative and<br />

functional programming language. Methods of proving<br />

correctness of programs with respect to formal<br />

specifications, with attention to those suited for<br />

employing automated deduction. Logic background,<br />

symbolic execution, techniques suited to iterative<br />

programming, methods from denotational semantics,<br />

termination, dynamic logic and proofs of concurrent<br />

programs.—I. (I.) Levitt<br />

262. Formal Specification (3)<br />

Lecture—3 hours. Prerequisite: course 261. Formal<br />

specification of modules, and its relationship to topdown<br />

programming development and verification.<br />

Abstract data types, together with methods for specifying<br />

them. Implementations and proofs of implementation.<br />

Using specifications to reason about<br />

programs. Parameterized types. Constructing good<br />

formal specifications. Offered in alternate years.—II.<br />

Levitt<br />

265. Distributed Database Systems (4)<br />

Lecture—3 hours; discussion—1 hour. Prerequisite:<br />

course 165A. Concepts of distributed database systems<br />

and architectures, distributed database design,<br />

distributed query processing and optimization, transaction<br />

management and concurrency control, heterogeneous<br />

and multidatabase systems.—I, III. (III.)<br />

Gertz, Ludaescher<br />

267. Wide-Area Distributed Information<br />

Systems (4)<br />

Lecture—3 hours; discussion—1 hour. Prerequisite:<br />

course 152B or 165A. Wide-area distributed information<br />

systems, data broadcast, multicast, publish/<br />

subscribe, service differentiation, information<br />

retrieval, Web caching. Offered in alternate<br />

years.—III. Askoy<br />

270. Artificial Intelligence (3)<br />

Lecture—3 hours. Prerequisite: courses 140A, 172.<br />

Concepts and techniques underlying the design and<br />

implementation of models of human performance on<br />

intelligent tasks. Representation of high-level knowledge<br />

structures. Models of memory and inference.<br />

Natural language and story understanding. Common<br />

sense planning and problem solving.—II. (II.)<br />

Levitt<br />

271. Machine Learning and Discovery (4)<br />

Lecture—3 hours; project—1 hour. Prerequisite:<br />

course 170. Artificial intelligence techniques for<br />

knowledge acquisition by computers. Fundamental<br />

problems in machine learning and discovery. Systems<br />

that learn from examples, analogies, and<br />

solved problems. Systems that discover numerical<br />

laws and qualitative relationships. Projects centering<br />

on implementation and evaluation.—III. Levitt,<br />

Vemuri<br />

Quarter Offered: I=Fall, II=Winter, III=Spring, IV=Summer; 2007-<strong>2008</strong> offering in parentheses<br />

<strong>General</strong> Education (GE) credit: ArtHum=Arts and Humanities; SciEng=Science and Engineering; SocSci=Social Sciences; Div=Social-Cultural Diversity; Wrt=Writing Experience

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!