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.
234 Engineering: Computer Science<br />
students who have completed Agricultural Systems<br />
and Environment 21. GE credit: SciEng, Wrt.—I, II,<br />
III. (I, II, III.)<br />
15AT. Introduction to Computers (4)<br />
Independent study—4 hours. Prerequisite: consent of<br />
instructor. Computer uses in modern society. Includes<br />
word processing, spreadsheet, DOS, networks and<br />
programming concepts. Independent study course<br />
paralleling course 15 lectures. Not open to students<br />
who have completed course 15, 30, or Engineering<br />
5. Only 2 units of credit allowed to students who<br />
have completed Agricultural Systems and Environment<br />
21. GE credit: SciEng, Wrt.—I, II, III. (I, II, III.)<br />
20. Discrete Mathematics for Computer<br />
Science (4)<br />
Lecture—3 hours; discussion—1 hour. Prerequisite:<br />
Mathematics 21A. Discrete structures and applications<br />
in computer science. Proofs, particularly induction.<br />
Introduction to propositional logic, logic circuit<br />
design, combinatorics, recursion and solution of<br />
recurrence relations, analysis of algorithms, graph<br />
theory and trees, finite state machines. Not open for<br />
credit to students who have completed course<br />
100.—I, II, III. (I, II, III.) Bai, Gusfield, Koehl, Max,<br />
Rogaway<br />
30. Introduction to Programming and<br />
Problem Solving (4)<br />
Lecture—3 hours; discussion—1 hour. Prerequisite:<br />
Mathematics 16A or 21A (may be taken concurrently);<br />
prior experience with basic programming<br />
concepts (variable, loops, conditional statements)<br />
recommended. Introduction to computers and computer<br />
programming, algorithm design, and debugging.<br />
Elements of good programming style.<br />
Programming in the C language. Use of basic UNIX<br />
tools.—I, II, III. (I, II, III.)<br />
40. Introduction to Software Development<br />
and Object-Oriented Programming (4)<br />
Lecture—3 hours; discussion—1 hour. Prerequisite:<br />
course 30 or the equivalent with a grade of C- or<br />
better. Elements of program design, style, documentation,<br />
efficiency. Methods for debugging and verification.<br />
Operating system tools. Principles and use of<br />
object-oriented programming in C++. Basic data<br />
structures and their use.—I, II, III. (I, II, III.)<br />
50. Computer Organization and Machine-<br />
Dependent Programming (4)<br />
Lecture—3 hours; discussion—1 hour. Prerequisite:<br />
course 40. Comparative study of different hardware<br />
architectures via programming in the assembly languages<br />
of various machines. Role of system software<br />
in producing an abstract machine. Only one unit of<br />
credit allowed for students who have taken Electrical<br />
and Computer Engineering 70.—I, II, III. (I, II, III.)<br />
Farrens, Matloff<br />
89A-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) Databases; (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 the topic is different.—I, II, III. (I, II,<br />
III.)<br />
92. Internship in Computer Science (1-5)<br />
Internship. Prerequisite: lower division standing;<br />
project approval prior to period of internship. Supervised<br />
work experience in computer science. May be<br />
repeated for credit. (P/NP grading only.)<br />
98. Directed Group Study (1-5)<br />
(P/NP grading only.)<br />
99. Special Study for Lower Division<br />
Students (1-5)<br />
(P/NP grading only.)<br />
Upper Division Courses<br />
110. Data Structures and Programming (4)<br />
Lecture—3 hours; discussion—1 hour. Prerequisite:<br />
course 20 and 40 with a grade of C- or better.<br />
Design and analysis of data structures for a variety<br />
of applications. Trees, heaps, searching, sorting,<br />
hashing, graphs. Extensive programming.—I, II, III.<br />
(I, II, III.) Joy<br />
120. Introduction to the Theory of<br />
Computation (4)<br />
Lecture—3 hours; discussion—1 hour. Prerequisite:<br />
course 20; Mathematics 108 recommended. Fundamental<br />
ideas in the theory of computation, including<br />
formal languages, computability and complexity.<br />
Reducibility among computational problems.—I, II,<br />
III. (I, II,III.) Rogaway, Gusfield, Martel, Bai, Franklin<br />
122A. Algorithm Design and Analysis (4)<br />
Lecture—3 hours; discussion—1 hour. Prerequisite:<br />
courses 20, 110. Complexity of algorithms, bounds<br />
on complexity, algorithms for searching, sorting, pattern<br />
matching, graph manipulation, combinatorial<br />
problems, introduction to NP-complete problems.<br />
Not open for credit to students who have taken<br />
course 122.—I, II, III. (I, II, III.) Rogaway, Gusfield,<br />
Martel, Bai, Franklin<br />
122B. Algorithm Design and Analysis (4)<br />
Lecture—3 hours; discussion—1 hour. Prerequisite:<br />
course 122A. Theory and practice of hard problems,<br />
and problems with complex algorithm solutions.<br />
NP-completeness, approximation algorithms,<br />
randomized algorithms, dynamic programming and<br />
branch and bound. Students do theoretical analysis,<br />
implementation and practical evaluations. Examples<br />
from parallel, string, graph, and geometric algorithms.—I.<br />
(I.) Rogaway, Gusfield, Martel<br />
124. Theory and Practice of Bioinformatics<br />
(4)<br />
Lecture—3 hours; laboratory—1 hour. Prerequisite:<br />
course 10 or 30 or Engineering 5 or 6, Statistics 12<br />
or 13 or 32 or 100 or Mathematics 131/Statistics<br />
131A, Biological Sciences 1A or Molecular and Cellular<br />
Biology 10. Fundamental biological, mathematical<br />
and algorithmic models underlying<br />
bioinformatics, sequence analysis, database search,<br />
gene prediction, molecular structure comparison and<br />
prediction, phylogenetic trees, high throughput biology,<br />
massive datasets; applications in molecular<br />
biology and genetics; use and extension of common<br />
bioinformatics tools.—III. (III.) Gusfield, Filkov<br />
129. Computational Structural<br />
Bioinformatics (4)<br />
Lecture—3 hours; discussion—1 hour. Prerequisite:<br />
college level programming course; Biological Science<br />
1A or Molecular and Cellular Biology 10. Fundamental<br />
biological, chemical and algorithmic<br />
models underlying computational structural biology;<br />
protein structure and nucleic acids structure; comparison<br />
of protein structures; protein structure prediction;<br />
molecular simulations; databases and online<br />
services in computational structural biology.—I. (I.)<br />
Koehl<br />
130. Scientific Computation (4)<br />
Lecture—3 hours; discussion—1 hour. Prerequisite:<br />
course 110, Mathematics 22A. Matrix-vector<br />
approach using MATLAB for floating point arithmetics,<br />
error analysis, interpolations, numerical integration,<br />
matrix computations, nonlinear equations and<br />
optimization. Parallel computing for matrix multiplication<br />
and the Cholesky factorization.—III. (III.) Bai,<br />
Hamann, Joy<br />
140A. Programming Languages (4)<br />
Lecture—3 hours; discussion—1 hour. Prerequisite:<br />
course 50 or Electrical and Computer Engineering<br />
70; course 110. Syntactic definition of programming<br />
languages. Introduction to programming language<br />
features including variables, data types, data<br />
abstraction, scoping, parameter disciplines, exception<br />
handling. Comparative study of several highlevel<br />
programming languages. Not open for credit<br />
to students who have taken course 140.—I, II, III. (I,<br />
II, III.) Olsson, Pandey<br />
140B. Programming Languages (4)<br />
Lecture—3 hours; discussion—1 hour. Prerequisite:<br />
course 140A. Continuation of programming language<br />
principles. Further study of programming language<br />
paradigms such as functional and logic;<br />
additional programming language paradigms such<br />
as concurrent (parallel), dataflow, and constraint;<br />
key implementation issues for those paradigms; and<br />
programming language semantics.—I. (I.) Olsson,<br />
Levitt, Pandey<br />
142. Compilers (4)<br />
Lecture—3 hours; discussion—1 hour. Prerequisite:<br />
courses 20, 140A; course 120 recommended. Principles<br />
and techniques of lexical analysis, parsing,<br />
semantic analysis, and code generation. Implementation<br />
of compilers.—II. (II.) Pandey, Su<br />
145. Scripting Languages and Their<br />
Applications (4)<br />
Lecture—3 hours; discussion—1 hour. Prerequisite:<br />
course 110. Goals and philosophy of scripting languages,<br />
with Perl and Python as prime examples.<br />
Applications include networking, threaded programming,<br />
and graphical user interfaces (GUI’s). Offered<br />
in alternate years.—III. Matloff<br />
150. Operating Systems and System<br />
Programming (4)<br />
Lecture—3 hours; discussion—1 hour. Prerequisite:<br />
course 40; course 154A or Electrical and Computer<br />
Engineering 70; course 154B or Electrical and Computer<br />
Engineering 170 strongly recommended. Basic<br />
concepts of operating systems and system programming.<br />
Processes and interprocess communication/<br />
synchronization; virtual memory, program loading<br />
and linking; file and I/O subsystems; utility programs.<br />
Study of a real operating system.—I, II, III. (I,<br />
II, III.) Levitt, Matloff, Olsson, Wu<br />
152A. Computer Networks (4)<br />
Lecture—3 hours; discussion—1 hour. Prerequisite:<br />
course 110 or Engineering Electrical and Computer<br />
73; Mathematics 131 or Statistics 131A or Statistics<br />
120 or Statistics 32. Overview of local and widearea<br />
computer networks. IS0 seven-layer model.<br />
Physical aspects of data transmission. Data-link layer<br />
protocols. Network architectures. Routing. TCP/IP<br />
protocol suite. Local area networks. Medium access<br />
protocols. Network performance analysis. Only 2<br />
units of credit for students who have taken course<br />
157. (Same course as Electrical and Computer Engineering<br />
173A.)—I, II, III. Ghosal, Liu, Mohapatra,<br />
Chuah, Matloff, Mukherjee<br />
152B. Computer Networks (4)<br />
Lecture—3 hours; discussion—1 hour. Prerequisite:<br />
course 152A, 150. TCP/IP protocol suite, network<br />
layer protocols, transport layer protocols, transport<br />
layer interfaces, sockets, UNIX network programming,<br />
computer networking applications, remote<br />
procedure calls and network management.—I, II, III.<br />
(I, II, III.) Mukherjee, Ghosal, Matloff, Mohapatra<br />
152C. Design Projects in Communication<br />
Networks (4)<br />
Lecture—3 hours; discussion—1 hour. Prerequisite:<br />
course 152A or Electrical and Computer Engineering<br />
173A. Advanced topics and design projects in<br />
communication networks. Example topics include<br />
wireless networks, multimedia networking, network<br />
design and management, traffic analysis and modeling,<br />
network simulations and performance analysis.<br />
Offered in alternate years. (Same course as Electrical<br />
and Computer Engineering 173B.)—(III.) Chuah,<br />
Liu, van der Schaar, Mukherjee<br />
153. Computer Security (4)<br />
Lecture—3 hours; discussion—1 hour. Prerequisite:<br />
courses 150 and 152A. Principles, mechanisms,<br />
and implementation of computer security and data<br />
protection. Policy, encryption and authentication,<br />
access control, and integrity models and mechanisms;<br />
network security; secure systems; programming<br />
and vulnerabilities analysis. Study of an<br />
existing operating system. Not open for credit to students<br />
who have completed course 155.—II, III. (II,<br />
III.) Bishop, Chen<br />
154A. Computer Architecture (4)<br />
Lecture—3 hours; discussion—1 hour. Prerequisite:<br />
course 50 or Electrical and Computer Engineering<br />
70; and course 110. Introduction to digital design.<br />
Interfacing of devices for I/O, memory and memory<br />
management. Input/output programming, via wait<br />
loops, hardware interrupts and calls to operating<br />
system services. Hardware support for operating systems<br />
software. Only one unit of credit allowed for<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