UC Davis 2008-2010 General Catalog - General Catalog - UC Davis
UC Davis 2008-2010 General Catalog - General Catalog - UC Davis
UC Davis 2008-2010 General Catalog - General Catalog - UC Davis
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Engineering: Computer Science 251<br />
key implementation issues for those paradigms; and<br />
programming language semantics.—I. (I.) Olsson,<br />
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 />
programming skill at the level of course 60. Goals<br />
and philosophy of scripting languages, with Perl and<br />
Python as prime examples. Applications include networking,<br />
threaded programming, and graphical<br />
user interfaces (GUI's). Offered in alternate years.—<br />
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, Wu<br />
152A. Computer Networks (4)<br />
Lecture—3 hours; discussion—1 hour. Prerequisite:<br />
course 60; Mathematics 135A or Statistics 131A or<br />
Statistics 120 or Statistics 32. Overview of local and<br />
wide-area computer networks. IS0 seven-layer<br />
model. Physical aspects of data transmission. Datalink<br />
layer protocols. Network architectures. Routing.<br />
TCP/IP protocol suite. Local area networks. Medium<br />
access protocols. Network performance analysis.<br />
Only two units of credit for students who have taken<br />
course 157. (Same course as Electrical and Computer<br />
Engineering 173A.)—I, II, III. (I, II, III.) Chuah,<br />
Ghosal, Liu, Matloff, Mohapatra, 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 />
students who have taken Electrical and Computer<br />
Engineering 170.—I, II, III. (I, II, III.) Farrens<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 60; calculusbased<br />
course in probability theory, such as Statistics<br />
120 or 130A or 131A or Mathematics 135A or<br />
Engineering Civil and Environmental 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 60; 175 recommended. Art and science of<br />
information visualization and interfaces for information<br />
systems. Design principles of human-computer<br />
interaction. Visual display and navigation of nonspatial<br />
and higher dimensional data. Implementations,<br />
performance issues, tradeoffs, and evaluation of<br />
interactive information systems.—III. (III.) Amenta,<br />
Ma<br />
165A. Database Systems (4)<br />
Lecture—3 hours; discussion—1 hour. Prerequisite:<br />
course 60. Database design, entity-relationship and<br />
relational model, relational algebra, query language<br />
SQL, storage and file structures, query processing,<br />
system architectures.—II. (II.) Gertz, 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.)<br />
Davidson, Levitt<br />
175. Computer Graphics (4)<br />
Lecture—3 hours; discussion—1 hour. Prerequisite:<br />
course 60; Mathematics 22A. Principles of computer<br />
graphics. Current graphics hardware, elementary<br />
operations in two-and three-dimensional space,<br />
transformational geometry, clipping, graphics system<br />
design, standard graphics systems, individual projects.—I,<br />
II. (I, II.) Amenta, Hamann, Joy<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<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<br />
188. Ethics and the Information Age (3)<br />
Seminar—3 hours. Prerequisite: upper division<br />
standing. Foundations of ethics. Views of technology.<br />
Technology and human values. Costs and benefits<br />
of technology. The character of technological<br />
change. The social context of work in computer science<br />
and engineering.—I, II, III. (I, II, III.) Chen,<br />
Devanbu, Mukherjee, Rogaway<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 />
Quarter Offered: I=Fall, II=Winter, III=Spring, IV=Summer; 2009-<strong>2010</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