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
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Engineering: Computer Science 235<br />
students who have taken Electrical and Computer<br />
Engineering 170.—I, II, III. (I, II, III.) Farrens,<br />
Mukherjee<br />
154B. Computer Architecture (4)<br />
Lecture—3 hours; discussion—1 hour. Prerequisite:<br />
course 154A or Electrical and Computer Engineering<br />
170; and course 110. Hardwired and microprogrammed<br />
CPU design. Memory hierarchies.<br />
Uniprocessor performance analysis under varying<br />
program mixes. Introduction to pipelining and multiprocessors.<br />
I, II, III. ( I, II, III.) Farrens<br />
155. Computer Security for Non-Majors (4)<br />
Lecture—3 hours; discussion—1 hour. Prerequisite:<br />
programming skill at the level of course 30; Mathematics<br />
21C. Principles, mechanisms, implementation,<br />
and sound practices of computer security and<br />
data protection. Cryptography. Authentication and<br />
access control. Internet security. Malicious software.<br />
Common vulnerabilities. Practical security in everyday<br />
life. Not open for credit to students who have<br />
completed course 153.—I. (I.) Chen, Bishop<br />
156. Discrete-Event Simulation (4)<br />
Lecture—3 hours; discussion—1 hour. Prerequisite:<br />
programming skill at the level of course 110; calculus-based<br />
course in probability theory, such as Statistics<br />
120 or 130A or 131A/Mathematics 131 or<br />
Civil and Environmental Engineering 114. Design of<br />
discrete-event simulation software. Random number<br />
generators. Event, process and activity-scanning<br />
approaches. Data structures and algorithms for event<br />
lists. Statistical output analysis. Applications to computer<br />
systems and networks; reliable systems; transportation;<br />
business management.—I.(I.) Matloff<br />
157. Computer Networks for Non-Majors<br />
(4)<br />
Lecture—3 hours; discussion—1 hour. Prerequisite:<br />
programming skills on the level of course 30. Shorter<br />
version of course 152AB featuring World Wide<br />
Web and e-mail examples. Local and wide-area<br />
computer network structures. ISO seven-layer model.<br />
Network protocols for data transmission and internetworking.<br />
Introduction to basic TCP/IP and Web<br />
programming. No credit allowed to students who<br />
have completed courses 152A or 152B.—III. (III.)<br />
Ghosal, Liu, Matloff, Mohapatra, Mukherjee<br />
158. Programming on Parallel<br />
Architectures (4)<br />
Lecture—3 hours; discussion—1 hour. Prerequisite:<br />
course 150; course 154B recommended. Techniques<br />
for software development using the shared-memory<br />
and message-passing paradigms, on parallel architectures<br />
and networks of workstations. Locks, barriers,<br />
and other techniques for synchronization.<br />
Introduction to parallel algorithms.—III. (III.) Farrens,<br />
Ma, Matloff, Pandey<br />
160. Introduction to Software Engineering<br />
(4)<br />
Lecture—3 hours; discussion—1 hour. Prerequisite:<br />
course 140A. Requirements, specification, design,<br />
implementation, testing, and verification of large<br />
software systems. Study and use of software engineering<br />
methodologies. Team programming.—I, II,<br />
III. (I, II, III.) Levitt, Devanbu<br />
163. Information Interfaces (4)<br />
Lecture—3 hours; discussion—1 hour. Prerequisite:<br />
course 110; course 175 recommended. Art and science<br />
of information visualization and interfaces for<br />
information systems. Design principles of humancomputer<br />
interaction. Visual display and navigation<br />
of non-spatial and higher dimensional data. Implementations,<br />
performance issues, tradeoffs, and evaluation<br />
of interactive information systems.—III. (III.)<br />
Ma, Amenta<br />
165A. Database Systems (4)<br />
Lecture—3 hours; discussion—1 hour. Prerequisite:<br />
course 110. Database design, entity-relationship<br />
and relational models, relational algebra, query language<br />
SQL, storage and file structures, query processing,<br />
system architectures.—II. (II.) Gertz,<br />
Ludaescher<br />
165B. Database Systems (4)<br />
Lecture—3 hours; discussion—1 hour. Prerequisite:<br />
course 165A. Advanced database systems: objectoriented<br />
and object-relational database systems; distributed<br />
and multidatabase systems; advanced database<br />
applications: Web-based database access,<br />
data warehouses.—III. (III.) Gertz, Ludaescher<br />
166. Scientific Data Management (4)<br />
Lecture—3 hours; discussion—1 hour. Prerequisite:<br />
programming skills at course level 40; Mathematics<br />
21C. Relational databases, SQL, non-standard databases,<br />
XML, scientific workflows, interoperability,<br />
data analysis tools, metadata.—I. (I.) Gertz, Ludaescher<br />
170. Introduction to Artificial Intelligence<br />
(4)<br />
Lecture—3 hours; discussion—1 hour. Prerequisite:<br />
course 140A. Design and implementation of intelligent<br />
computer systems. Knowledge representation<br />
and organization. Memory and inference. Problem<br />
solving. Natural language processing.—II. (II.) Levitt<br />
175. Introduction to Computer Graphics (4)<br />
Lecture—3 hours; discussion—1 hour. Prerequisite:<br />
course 110 or Electrical and Computer Engineering<br />
73; Mathematics 22A. Principles of computer graphics.<br />
Current graphics hardware, elementary operations<br />
in two- and three-dimensional space,<br />
transformational geometry, clipping, graphics system<br />
design, standard graphics systems. Individual<br />
projects.—I, II, III. (I, II, III.) Amenta, Joy, Hamann,<br />
Ma, Staadt<br />
177. Introduction to Visualization (4)<br />
Lecture—3 hours; discussion—1 hour. Prerequisite:<br />
course 175. Graphics techniques for generating<br />
images of various types of measured or computersimulated<br />
data. Typical applications for these graphics<br />
techniques include study of air flows around car<br />
bodies, medical data, and molecular structures.—II.<br />
(II.) Joy, Hamann, Ma, Staadt<br />
178. Introduction to Geometric Modeling<br />
(4)<br />
Lecture—3 hours; discussion—1 hour. Prerequisite:<br />
course 175. Interactive graphics techniques for<br />
defining and manipulating geometrical shapes used<br />
in computer animation, car body design, aircraft<br />
design, and architectural design.—I. (I.) Joy,<br />
Hamann, Max, Staadt<br />
188. Ethics and the Information Age (3)<br />
Seminar—2 hours; term paper. Prerequisite: upper<br />
division standing. Responsibilities of computer scientists<br />
as influenced by growth in computer use and<br />
networks.—I, II, III. (I, II, III.)<br />
189A-L. Special Topics in Computer Science<br />
(1-5)<br />
Lecture, laboratory or combination. Prerequisite:<br />
consent of instructor. Special topics in (A) Computer<br />
Science Theory; (B) Architecture; (C) Programming<br />
Languages and Compilers; (D) Operating Systems;<br />
(E) Software Engineering; (F) Data Bases; (G) Artificial<br />
Intelligence; (H) Computer Graphics; (I) Networks;<br />
(J) Computer-Aided Design; (K) Scientific<br />
Computing; (L) Computer Science. May be repeated<br />
for credit when topic differs.—I, II, III. (I, II, III.)<br />
190C. Research Group Conferences in<br />
Computer Science (1)<br />
Discussion—1 hour. Prerequisite: upper division<br />
standing in Computer Science and Engineering; consent<br />
of instructor. Research group conferences. May<br />
be repeated for credit. (P/NP grading only.)—I, II,<br />
III. (I, II, III.)<br />
190X. Senior Seminar (2)<br />
Seminar—2 hours. Prerequisite: senior standing.<br />
Examination of a special topic in a small group setting.<br />
192. Internship in Computer Science (1-5)<br />
Internship. Prerequisite: completion of a minimum of<br />
84 units; project approval prior to period of internship.<br />
Supervised work experience in computer science.<br />
May be repeated for credit. (P/NP grading<br />
only.)<br />
197T. Tutoring in Computer Science (2-3)<br />
Discussion—1 hour; laboratory/discussion—3-6<br />
hours. Prerequisite: upper division standing, consent<br />
of instructor. Tutoring in computer science courses,<br />
especially introductory courses. (P/NP grading<br />
only.)<br />
198. Directed Group Study (1-5)<br />
Prerequisite: consent of instructor. (P/NP grading<br />
only.)<br />
199. Special Study for Advanced<br />
Undergraduates (1-5)<br />
(P/NP grading only.)<br />
Graduate Courses<br />
201A. Advanced Computer Architecture (4)<br />
Lecture—3 hours; term paper. Prerequisite: course<br />
154B or Electrical and Computer Engineering 170;<br />
course 150. Modern research topics and methods in<br />
computer architecture. Design implications of memory<br />
latency and bandwidth limitations. Performance<br />
enhancement via within-processor and between-processor<br />
parallelism. Term project involving studentproposed<br />
extensions/modifications of work in the<br />
research literature. Not open for credit to students<br />
who have completed course 250A.—I. Farrens<br />
201B. High-Performance Uniprocessing (4)<br />
Lecture—3 hours; term paper. Prerequisite: course<br />
201A. Maximizing uniprocessor performance. Barriers<br />
to high performance; solutions to the problems;<br />
historical and current processor designs. Not open<br />
for credit to students who have completed course<br />
250B.—II. Farrens<br />
201C. Parallel Architectures (4)<br />
Lecture—3 hours; project—1 hour. Prerequisite:<br />
course 201A. Evolution of parallel architectures from<br />
special-purpose machines to commodity servers.<br />
Emphasis on recent machines and applications that<br />
drive them. Not open for credit to students who have<br />
completed course 250C.—III.<br />
203. Novel Computing Technologies (4)<br />
Lecture—3 hours; project—1 hour. Prerequisite:<br />
course 201A. Novel computing technologies that<br />
could revolutionize computer architecture. Quantum<br />
computing technologies, including algorithms,<br />
devices, and fault tolerance. A survey of other<br />
unconventional technologies including nanoscale<br />
electronics, MEMS devices, biological devices, and<br />
nanotechnology. Offered in alternate years.—II.<br />
220. Theory of Computation (4)<br />
Lecture—3 hours; discussion—1 hour. Prerequisite:<br />
course 120, 122A. Time and space complexity<br />
classes. Reductions, completeness, and the role of<br />
randomness. Logic and undecidability.—III. Rogaway<br />
222A. Design and Analysis of Algorithms<br />
(4)<br />
Lecture—3 hours; discussion—1 hour. Prerequisite:<br />
course 122A; Statistics 131A recommended. Techniques<br />
for designing efficient algorithms, analyzing<br />
their complexity and applying these algorithms to a<br />
broad range of applications. Methods for recognizing<br />
and dealing with difficult problems.—I, II. (I, II.)<br />
Amenta, Franklin, Gusfield, Martel, Rogaway<br />
222B. Advanced Design and Analysis of<br />
Algorithms (4)<br />
Lecture—3 hours; project—1 hour. Prerequisite:<br />
course 222A. Advanced topics in complexity theory.<br />
Problem classification. The classes P, NP, P-space,<br />
co-NP. Matching and network flow algorithms.<br />
Matrix multiplication. Approximation algorithms.—<br />
III. (III.) Gusfield, Franklin, Martel, Rogaway<br />
223. Parallel Algorithms (4)<br />
Laboratory/discussion—3 hours; project—1 hour.<br />
Prerequisite: course 222A. Models of parallel computer<br />
systems including PRAMs, loosely coupled systems<br />
and interconnection networks. Parallel<br />
algorithms for classical problems and general techniques<br />
for their design and analysis. Proving lower<br />
bounds on parallel computation in several settings.—II.<br />
(II.) Martel<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