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

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

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

Saved successfully!

Ooh no, something went wrong!