|
|
|||||
|
|
|
|
|
|
|
| |
|
||||
UC Riverside
|
2002-2003 General Catalog
University of California, Riverside
COMPUTER SCIENCE AND ENGINEERING
Subject abbreviation: CS
Faculty | Program | Minor
Information Systems | Computer Science Undergraduate Courses | Graduate Courses | Professional Courses Thomas H. Payne, Ph.D., Chair
Professors
The Department of Computer Science and Engineering offers B.S. degrees in Computer Science and in Information Systems, and M.S. and Ph.D. degrees in Computer Science. These programs provide the basis for careers in research and development in the computer science field as well as technical and nontechnical related fields that depend on a working knowledge of computers. The Computer Science major has been designed to provide the student with a broad background in science and humanities and to provide an understanding of fundamental principles of computing and modern computing technology. It prepares the student for professional work with computer systems as well as for graduate work in computer science. The Information Systems major is designed for students who wish to combine a rigorous computer science curriculum with fundamental topics from management in a single degree. Graduates of the program would be well prepared for information technology careers that require both technical depth and management knowledge, including entrepreneurs in the high technology industry and technical managers. The Intersegmental General Education Transfer Curriculum (IGETC) does not meet transfer requirements for Computer Science. Lower-division major preparation is stressed for transfer students. All undergraduates in the College of Engineering must see an advisor at least annually. See engr.ucr.edu/studentaffairs/registration.htm for details. Degree Requirements University Requirements See the Undergraduate Studies section for requirements that all students must satisfy. College Requirements See Degree Requirements, The Marlan and Rosemary Bourns College of Engineering, in the Undergraduate Studies Section, for requirements that students must satisfy. The Computer Science major uses the following major requirements toward the satisfaction of some of the college's Natural Sciences and Mathematics breadth requirements. 1. MATH 009A 2. PHYS 040A, PHYS 040B, PHYS 040C The Information Systems major uses the following major requirements toward the satisfaction of the college's Social Sciences breadth requirements and one of the College's Natural Science and Mathematics breadth requirements. 1. ECON 002, ECON 003 2. MATH 009A 3. SOC 150 Major Requirements
1. Lower-division requirements (55 units)
Major Requirements
1. Lower-division requirements (48 units)
Students may petition for exceptions to the above degree requirements. Exceptions
to Computer Science course requirements must be approved by the Computer Science
and Engineering undergraduate advisor or chair, and exceptions to the Business Administration
course requirements must be approved by the Graduate School of Management dean.
Exceptions to other requirements require the approval of both the Department of
Computer Science and Engineering and the Graduate School of Management.
Requirements for the Minor in Computer Science are:
1. Prerequisite courses: CS 010, CS 012, CS 014, CS 061, MATH 009A, MATH 009B, MATH 009C
2. Core courses: CS 141, MATH 112
3. Three elective courses, each of four or more units, such that:
Note Any courses required for the minor may be taken on a Satisfactory
(S)/No Credit (NC) basis only on approval of the dean. Students with a minor
in Computer Science must obtain approval from the undergraduate advisor in Computer
Science and Engineering for a specific program of electives consistent with their
career goals.
All applicants for graduate status in the Department
of Computer Science and Engineering must supply GRE General Test scores prior to
admission. The GRE subject test in Computer Science is recommended but not required.
Applicants should have at least an undergraduate degree in computer science or a
closely related field, but applicants who fail to meet this criterion may sometimes
be admitted with deficiencies. To be considered for admission, applicants must have
a sound understanding of programming, data structures, and computer organization.
The graduate committee may prescribe additional remedial course work beyond the
requirements specified below for applicants admitted with deficiencies.
Master's Degree
General requirements are listed in the Graduate
Studies section of this catalog. Specific requirements for the M.S. in Computer
Science consist of the satisfactory completion of the breadth requirement, the course
requirements, attendance in the colloquium series, and the capstone experience (project
or thesis).
Specialty Areas The department offers
the following breadth courses and has active research programs in these specialty
areas:
1. Algorithms and Theory of Computation CS 215 (Theory of Computation)
2. Computer Architecture
3. Embedded Systems and Computer-Aided Design
4. Databases/Data Mining
5. Operating Systems
6. Networking
7. Software Engineering
8. Programming Languages/Compilers
9. Artificial Intelligence
1. Breadth Requirements All students must demonstrate breadth in Computer Science by passing approved breadth courses, with a grade of "B" or better, in four of the specialty areas listed above and selected according to the following scheme:
A list of approved graduate and undergraduate breadth courses is available from the graduate secretary. Students may also petition to satisfy the breadth requirement in any area by passing a Ph.D. depth examination in that area or by demonstrating knowledge equivalent to the breadth
requirement based on prior course work or other experience.
2. Mandatory enrollment in CS 287 (Colloquium in Computer Science) each quarter.
3. Course Requirements Students showing good performance in the program may petition to replace some of these course requirements by courses taken at other universities or in other departments at UCR. For students interested in interdisciplinary research, individual study programs can be approved.
Doctoral Degree
The course requirements for the Ph.D. degree include all of the requirements for the M.S. degree, thesis option, except for the master's thesis. Some course requirements may be waived at the discretion of the graduate committee for students holding the M.S. degree in Computer Science from
other schools and who have taken equivalent courses. Additional requirements are
as follows:
The Ph.D. program in Computer Science is divided into two stages. The first stage is the qualifying process, during which students must demonstrate the necessary intellectual ability and mastery of an appropriate body of knowledge to undertake a major independent research project in their chosen specialty area. More specifically, the student must demonstrate a broad understanding
of the discipline (by completing the breadth requirement), significant depth of knowledge in the chosen specialty area (by further course work and successfully completing the written depth examination), and the ability to work independently under the guidance of a faculty member (through the directed study project that will be presented at the oral qualifying examination). Once all these requirements have been met, the student is advanced to candidacy and enters the second stage,
which is devoted to independent research leading to the preparation and defense of the dissertation.
Students in the Ph.D. program must find a faculty member who will agree to supervise their research. This must be done before the start of their second year. They should then devote at least half their time to research and develop a plan for completing the qualifying process in consultation
with their thesis advisor. The student must attain candidate status by the end of the seventh quarter following formal admission to the graduate program in Computer Science.
Written Qualifying Examination The student must pass a written depth examination, prepared by the respective cognizant faculty, in one of the specialty areas listed above. Depth examinations may be offered in specialty areas not listed above in response to student petitions, given sufficient faculty and student interest. The depth examination must be passed in no more than two attempts.
Oral Qualifying Examination The student must demonstrate research aptitude by undertaking a research study on some topic (typically a problem from the student's chosen research specialty that may be a promising area in which to conduct the dissertation research), under the guidance
of the faculty advisor. The research must be presented to a qualifying committee,
which is appointed by the Graduate Division. The committee evaluates the merits
of the work and the student's aptitude for research. The work must represent significant
progress toward original and publishable research. The student must complete this
requirement in no more than two attempts.
Students advance to candidacy after they have completed all the course requirements described above and passed both the written depth examination and oral qualifying examination. These examinations are designed to test the student's knowledge of a chosen specialty area and to evaluate the student's
ability to conduct research.
Dissertation and Final Oral Examination After advancement to candidacy,
the student should focus on dissertation research. Satisfactory progress to the
degree requires the student to present a formal thesis proposal to the dissertation
committee and successfully defend it in an oral presentation within a year of advancement
to candidacy. After satisfactory performance on the final oral examination, the
dissertation committee recommends granting the Ph.D. degree. CS 005. Introduction to Computer Programming. (4)
Lecture, three hours; laboratory, three hours. Prerequisite(s): MATH 003 or
equivalent. An introduction to computer programming for nonengineering and nonscience
majors and for students considering taking CS 010 but needing additional preparation.
Topics include the history of computing, basic computer operation, the notion of
an algorithm, and programming constructs such as variables, expressions, input/output,
branches, loops, functions, parameters, arrays, and strings. Credit is not awarded
for CS 005 if it has already been awarded for CS 010.
CS 008. Introduction to Computing. (4) Lecture,
three hours; laboratory, three hours. Prerequisite(s): none. Includes operating
system basics (Windows and Unix), word processing, spreadsheets, databases (e.g.,
Access), E-mail, the Internet, and the World Wide Web. Designed for students not
majoring in computer science, engineering, mathematics, or science. Credit is not
awarded for CS 008 if it has already been awarded for CS 010.
CS 010. Introduction to Computer Science for Science,
Mathematics, and Engineering I. (4) Lecture, three hours; laboratory, three
hours. Prerequisite(s): MATH 009A (may be taken concurrently). Solving problems
through structured programming of algorithms on computers, using the C++ object-oriented
language. Topics include variables, expressions, input/output (I/O), branches, loops,
functions, parameters, arrays, strings, file I/O, and classes. Also covers software
design, testing, and debugging.
CS 012. Introduction to Computer Science for Science,
Mathematics, and Engineering II. (4) Lecture, three hours; laboratory, three
hours. Prerequisite(s):
CS 010 with a grade of "C-" or better; familiarity with C or C++ language. Structured
and object-oriented programming in C++, emphasizing good programming principles
and development of substantial programs. Topics include recursion, pointers, linked
lists, abstract data types, and libraries. Also covers software engineering principles.
CS 014. Introduction to Data Structures and Algorithms.
(4) Lecture, three hours; laboratory, three hours. Prerequisite(s): CS 012 with
a grade of "C-" or better; MATH 009A or MATH 09HA; proficiency in C++. Topics include
basic data structures such as arrays, lists, stacks, and queues; dictionaries including
binary search trees and hashing; priority queues (heaps); introductory analysis
of algorithms; sorting algorithms; and object-oriented programming including abstract
data types, inheritance, and polymorphism. Also covers solving complex problems
through structured software development.
CS 020. Web Site Construction. (4) Lecture,
three hours; laboratory, three hours. Prerequisite(s): CS 010. An introduction to
web site design, deployment, management, and evolution. Topics include creation;
graphics and streaming media; CSS; HTML and Dynamic HTML; SMIL; XML; Java and JavaScript;
VB Script; DOM; World Wide Web Consortium; servers and applets; CGI; bandwidth;
ISP; security and log files; electronic commerce; standards; user interfaces and
human-computer interaction.
CS 061. Machine Organization and Assembly Language
Programming. (4) Lecture, three hours; laboratory, three hours. Prerequisite(s):
CS 010. An introduction to computer architecture, to include the topics of binary,
decimal, and hexadecimal numbering systems; register transfer and computer operations;
computer instructions and addressing modes; memory organization; interrupt and trap
processing; input/output (I/O) and communications; assembly language programming;
basic data structures; assembler directives, macros, procedures, and system calls;
high-level language interfaces; assemblers, linkers, and debuggers; and simulating
high-level languages in assembly language. UPPER-DIVISION COURSES
CS 100. Software Construction. (4) Lecture,
three hours; laboratory, three hours. Prerequisite(s): CS 141. Development and construction
of software products. Topics include design, coding layout, and style; implementation
strategies; quality attributes; prototyping, reuse, and components; debugging, testing,
and performance; integration and maintenance; documentation; standards, analysis,
and selection of tools and environment; and personal software processes.
CS 120A. Logic Design. (5) Lecture, three hours;
laboratory, six hours. Prerequisite(s): CS 061. Design of digital systems. Topics
include Boolean algebra; combinational and sequential logic design; design and use
of arithmetic-logic units, carry-lookahead adders, multiplexors, decoders, comparators,
multipliers, flip-flops, registers, and simple memories; state-machine design; and
basic register-transfer level design. Laboratories involve use of hardware description
languages, synthesis tools, programmable logic, and significant hardware prototyping.
Cross-listed with EE 120A.
CS 120B. Introduction to Embedded Systems. (5)
Lecture, three hours; laboratory, eight hours. Prerequisite(s): CS 120A/EE 120A.
Introduction to hardware and software design of digital computing systems embedded
in electronic devices (such as digital cameras or portable video games). Topics
include custom and programmable processor design, standard peripherals, memories,
interfacing, and hardware/software tradeoffs. Laboratory involves use of synthesis
tools, programmable logic, and microcontrollers and development of working embedded
systems. Cross-listed with EE 120B.
CS 121. Rapid Prototyping of Digital Systems. (4)
Lecture, three hours; laboratory, three hours. Prerequisite(s): CS 120B/EE 120B.
Top-down design methodology, hardware description languages, functional-level simulation,
partitioning, high-level synthesis, finite state machine synthesis, logic synthesis,
placement and routing, timing simulation, testing, rapid prototyping using field-programmable
gate arrays.
CS 122A. Intermediate Embedded and Real-Time Systems.
(5) Lecture, three hours; laboratory, six hours. Prerequisite(s): CS 120B/EE
120B. Covers software and hardware design of embedded computing systems. Topics
include hardware and software codesign, advanced programming paradigms including
state machines and concurrent processes, real-time programming and operating systems,
basic control systems, and modern chip and design technologies. Laboratories involve
use of microcontrollers, embedded microprocessors, programmable logic and advanced
simulation, and debug environments.
CS 122B. Advanced Embedded and Real-Time Systems.
(5) Lecture, three hours; laboratory, six hours. Prerequisite(s): CS 122A. Further
exploration of state- of-the-art aspects of building embedded systems, including
real-time programming, synthesis of coprocessor cores, application-specific processors,
hardware and software cosimulation and codesign, low-power design, reconfigurable
computing, core-based design, and platform-based methodology.
CS 130. Computer Graphics. (4) Lecture, three
hours; laboratory, three hours. Prerequisite(s): CS 141, MATH 113 (MATH 113 may
be taken concurrently); or consent of instructor. A study of the fundamentals of
computer graphics necessary to design and build graphics applications. Examines
raster graphics algorithms including scan-converting graphics primitives, anti-aliasing,
and clipping. Also covers geometric transformations, viewing, solid modeling techniques,
hidden-surface removal algorithms, color models, illumination, and shading. Individual
and group projects are assigned.
CS 133. Computational Geometry. (4) Lecture,
three hours; laboratory, three hours. Prerequisite(s): CS 141, MATH 113, or equivalents.
Introduction to the design of geometry algorithms. Covers the basic computational
geometry concepts and techniques used in graphics, robotics, and engineering design.
Topics include polygons and polytops, convex hulls, and voronoi diagrams.
CS 141. Intermediate Data Structures and Algorithms.
(4) Lecture, three hours; laboratory, three hours. Prerequisite(s): CS 014 with
a grade of "C-" or better; MATH 009C or MATH 09HC; MATH 112; proficiency in C++.
Explores basic algorithm analysis using asymptotic notations, summation and recurrence
relations, and algorithms and data structures for discrete structures including
trees, strings, and graphs. Also covers general algorithm design techniques including
"divide-and-conquer," the greedy method, and dynamic programming. Homework and programming
assignments integrate knowledge of data structures, algorithms, and programming.
CS 143. Multimedia Technologies and Programming.
(4) Lecture, three hours; laboratory, three hours. Prerequisite(s): CS 010 or
knowledge of an object-oriented or fourth-generation (scripting) programming language,
for example C++, Hypertalk, Supertalk, Lingo, Openscript, ScriptX. Introduces multimedia
technologies and programming techniques, multimedia hardware devices, authoring
languages and environments, temporal and nontemporal media (interactivity in text,
graphics, audio, video, and animation), applications, and trends. A term project
is required. Cross-listed with EE 143.
CS 150. The Theory of Automata and Formal Languages.
(4) Lecture, three hours; discussion, one hour. Prerequisite(s): CS 014, MATH
112. A study of formal grammars, finite-state automata, push-down automata, Turing
machines, time- and storage-bounded Turing machines, semantics of programming languages,
elements of recursive function theory, and complexity of computation.
CS 152. Compiler Design. (4) Lecture, three
hours; laboratory, three hours. Prerequisite(s): CS 061, CS 141, CS 150. Covers
the fundamentals of compiler design, including lexical analysis, parsing, semantic
analysis, compile-time memory organization, run-time memory organization, code generation,
and compiler portability issues. Laboratory work involves exercises covering various
aspects of compilers.
CS 153. Design of Operating Systems. (4) Lecture,
three hours; laboratory, three hours. Prerequisite(s): CS 061, CS 141, C++ programming
proficiency. Principles and practice of operating system design, including concurrency,
memory management, file systems, protection, security, command languages, scheduling,
and system performance. Laboratory work involves exercises covering various aspects
of operating systems.
CS 160. Concurrent Programming and Parallel Systems.
(4) Lecture, three hours; laboratory, three hours. Prerequisite(s): CS 061,
CS 141. Study of concurrent and parallel systems. Topics include modular structure
and design, interprocess communication, synchronization, failures and persistence,
concurrency control, atomic transactions, recovery, language support, distributed
interprocess communication, and implementation mechanisms. Provides preparation
for the study of operating systems, databases, and computer networking.
CS 161. Design and Architecture of Computer Systems.
(4) Lecture, three hours; laboratory, three hours. Prerequisite(s): CS 061,
CS 120A/EE 120A. A study of the fundamentals of computer design. Topics include
the performance evaluation of microprocessors, instruction set design and measurements
of use, microprocessor implementation techniques including multicycle and pipelined
implementations, memory hierarchy, and input/output (I/O) systems. The laboratory
component includes the design of a microprocessor using a hardware description language.
CS 162. Computer Architecture. (4) Lecture,
three hours; laboratory, three hours. Prerequisite(s): CS 161 with a grade of "C-"
or better. The study of advanced processor design. Topics include CPU pipelining,
data and control hazards, instruction-level parallelism, branch prediction, and
dynamic scheduling of instructions. Also covers Very Long Instruction Word (VLIW)
processing, multimedia support, design of network and embedded processors, basic
multiprocessor design, shared memory and message passing, and network topologies.
CS 164. Computer Networks. (4) Lecture, three
hours; laboratory, three hours. Prerequisite(s): CS 141. Fundamentals of computer
networks. Topics include layered network architecture, communication protocols,
local area networks, UNIX network programming, verification, and performance studies.
CS 165. Computer Security. (4) Lecture, three
hours; laboratory, three hours. Prerequisite(s): CS 141, CS 153. Examines the ways
in which information systems are vulnerable to security breaches. Topics include
attacks; security labels, lattices, and policies; safeguards and countermeasures;
intrusion detection; authorization and encryption techniques; networks; digital
signatures, certificates, and passwords; privacy issues, firewalls, and spoofing;
Trojan horses and computer viruses; CERT Coordination Center; and electronic commerce.
CS 166. Database Management Systems. (4) Lecture,
three hours; laboratory, three hours. Prerequisite(s): CS 141. Topics include architecture
of database management systems; relational, network, and hierarchical models; distributed
database concepts; query languages; implementation issues; and privacy and security
of the database.
CS 168. Introduction to Very Large Scale Integration
(VLSI) Design. (5) Lecture, three hours; laboratory, six hours. Prerequisite(s):
CS 120A/EE 120A or consent of instructor. Basic electrical properties of metal-oxide-semi
conductor (MOS) circuits. MOS circuit design processes.
Basic circuit concepts. Subsystem design and layout. Aspects of system design. Memory,
registers, and aspects of systems timing. Very large scale integration design.
CS 170. Introduction to Artificial Intelligence.
(4) Lecture, three hours; laboratory, three hours. Prerequisite(s): CS 141.
Introduction to fundamental problems underlying the design of intelligent systems
and to one of the languages of artificial intelligence such as Prolog or LISP. Topics
include brute force and heuristic search, problem solving, knowledge representation,
predicate logic and logical interference, frames, semantic nets, natural language
processing, and expert systems.
CS 171. Introduction to Expert Systems. (4) Lecture,
three hours; discussion, one hour. Prerequisite(s): CS 170 or equivalent. Introduction
to methodology of design and implementation of expert systems. Rule-based and frame-based
expert systems. Knowledge acquisition and knowledge engineering. Design of expert
system shells. Use of expert system shells to construct knowledge-based systems.
CS 177. Modeling and Simulation. (4) Lecture,
three hours; laboratory, three hours. Prerequisite(s): CS 141, C++ programming proficiency.
Topics include validation of random number sequences; concepts in modeling and systems
analysis; and conceptual models and their mathematical and computer realizations.
Examines simulation modeling techniques including object-oriented modeling and discrete-event
modeling. Emphasis is on the use of simulation libraries used with programming languages
such as C++. Requires a term project consisting of the development, computer implementation,
and analysis of a model.
CS 179 (E-Z). Project in Computer Science. (4)
Discussion, one hour; laboratory, nine hours. Prerequisite(s): CS 141 with a
grade of "C-" or better; 12 additional upper-division units in Computer Science.
Additional prerequisites may be required for some segments of this course; see department.
Under the direction of a faculty member, students (individually or in small teams
with shared responsibilities) propose, design, build, test, and document software
and/or hardware devices or systems. Requires a written report, giving details of
the project and test results, and an oral presentation of the design aspects. Emphasizes
teamwork, making technical presentations, and developing oral and written communication
skills.
CS 180. Introduction to Software Engineering. (4)
Lecture, three hours; laboratory, three hours. Prerequisite(s): CS 141. A study
of software engineering techniques for the development, maintenance, and evolution
of large software systems. Topics include requirements and specification; system
design and implementation; debugging, testing, and quality assurance; reengineering;
project management; software process; tools; and environments.
CS 181. Principles of Programming Languages. (4)
Lecture, three hours; laboratory, three hours. Prerequisite(s): CS 061, CS 141
(CS 141 may be taken concurrently), CS 150. Principles of programming language design.
Study and comparison of several programming languages, their features, and their
implementations.
CS 183. UNIX System Administration. (4) Seminar,
three hours; laboratory, three hours. Prerequisite(s): CS 141. Technical aspects
of system administration on a Unix system including advanced Unix, managing system
devices, operating system installation, communications, and networking.
CS 185. Commercial Software Development. (4) Lecture,
three hours; laboratory, three hours. Prerequisite(s): CS 141. Topics include software
design, development, testing, documentation, maintenance, marketing, and production,
with an emphasis on the economic impact of decisions in the development phase. Also
examines software piracy, copyrights, patents, and similar issues. Students develop,
test, and market a commercial-quality piece of software.
CS 190. Special Studies. (1-5) Individual study,
three to fifteen hours. Prerequisite(s): consent of instructor and department chair.
Individual study to meet special curricular needs. Course is repeatable to a maximum
of 9 units.
CS 191 (E-Z). Seminar in Computer Science. (1-4)
Prerequisite(s): consent of instructor. Consideration of current topics in computer
science.
CS 193. Design Project. (1-4) Laboratory, one
to six hours; scheduled research, one to three hours; individual study, one to three
hours. Prerequisite(s): CS 141; consent of instructor. Individual hardware or software
design project to include establishment of objectives and criteria, synthesis, analysis,
implementation, testing, and documentation. Course is repeatable to a maximum of
8 units.
CS 194. Independent Reading. (1-4) Prerequisite(s):
consent of instructor. Independent reading in material not covered in course work.
Normally taken in senior year. Total credit for CS 194 may not exceed 8 units.
CS 198-I. Individual Internship in Computer Science.
(1-4) Internship, three to twelve hours. Prerequisite(s): upper-division standing;
at least 12 units in Computer Science courses. An academic internship to provide
the student with career experience as a computer scientist in a governmental, industrial,
or research unit under the joint supervision of an off-campus sponsor and a faculty
member in Computer Science. Each individual program must have the prior approval
of both supervisors and the Department chair. A final written report is required.
Graded Satisfactory (S) or No Credit (NC). Course is repeatable up to a maximum
of 8 units. CS 201. Compiler Construction. (4) Lecture,
three hours; research, three hours. Prerequisite(s): CS 152. Theory of parsing and
translation. Compiler construction, including lexical analysis, syntax analysis,
code generation and optimization.
CS 202. Advanced Operating Systems. (4) Lecture,
three hours; outside research,three hours. Prerequisite(s): CS 153. Recent developments
in operating systems. Multiprogramming, parallel programming, time sharing, scheduling
and resource allocation, and selected topics.
CS 203A. Advanced Computer Architecture. (4) Lecture,
three hours; scheduled research, three hours. Prerequisite(s): CS 161. Covers contemporary
computer systems architecture including stack computers, parallel computers, pipeline
processing, database machines, and multiprocessor architecture. Includes evaluation
of computer performance.
CS 203B. Advanced Computer Architecture. (4) Lecture,
three hours; scheduled research, three hours. Prerequisite(s): CS 203A with a grade
of "B" or better. Covers advanced topics in general-purpose computer architecture
including instruction-level parallel architectures; very-long-instruction-word,
explicitly parallel instruction computing, and multithreaded architectures; dataflow
machines; and vector and single instruction multiple data architectures, including
multimedia extensions. Also discusses network processors, multimedia processors,
and advanced embedded processors.
CS 204. Advanced Computer Networks. (4) Lecture,
three hours; consultation, one hour. Prerequisite(s): CS 014, CS 164. Advanced topics
in computer networks, layering, Integrated Services Digital Networks (ISDN), high-speed
networks, performance models and analysis, distributed systems and databases, case
studies.
CS 205. Artificial Intelligence. (4) Lecture,
three hours; discussion, one hour. Prerequisite(s): CS 170 or equivalent. Knowledge
representation and automated reasoning and their use in capturing common sense and
expert knowledge. Predicate and nonmonotonic logics. Resolution and term rewriting.
Reasoning under uncertainty. Theorem provers, planning systems, and belief networks.
Special topics include natural language processing, perception, logic programming,
expert systems, deductive databases.
CS 213. Parallel and Distributed Processing. (4)
Lecture, three hours; discussion, one hour. Prerequisite(s): CS 161 or equivalent.
Parallel programming languages. Pipelining and supercomputing. Multiprocessing control,
scheduling, and algorithms. Dataflow computing including models of computation,
languages, and architectures. Very large scale integration (VLSI) computing structures
including systolic/wavefront array processors, mapping algorithms, and reconfigurable
processor arrays.
CS 215. Theory of Computation. (4) Lecture,
three hours; outside research, three hours. Prerequisite(s): CS 150. Phrase structure
grammars and languages. Turing machines. Relation of languages to automata. Solvable
and unsolvable problems. Theoretical limitations of computers. Algorithmic complexity
theory. Polynomial reducibility. The classes P and NP. Correctness proofs.
CS 218. Design and Analysis of Algorithms. (4)
Lecture, three hours; outside research, three hours. Prerequisite(s): CS 014,
MATH 131. Study of efficient data structures and algorithms for solving problems
from a variety of areas such as sorting, searching, selection, linear algebra, graph
theory and computational geometry. Worst-case and average-case analysis using recurrence
relations, generating functions and other methods. Upper and lower bounds.
CS 220. Synthesis of Digital Systems. (4) Lecture,
three hours; scheduled research, three hours. Prerequisite(s): CS 161. Covers the
synthesis and simulation of digital systems. Topics include synthesis at the system,
behavioral, register-transfer, and logic levels; application-specific processors;
simulation; and emerging system-on-a-chip design methodologies.
CS 235. Data Mining Techniques. (4) Lecture,
three hours; term paper, one and a half hours; project, one and a half hours. Prerequisite(s):
CS 141, CS 166; CS 170 is recommended. Provides students with a broad background
in the design and use of data mining algorithms and tools. Topics include clustering,
classification, association rules mining, time series clustering, and Web mining.
CS 236. Database Management Systems. (4) Lecture,
three hours; outside research, three hours. Prerequisite(s): CS 014, CS 153 or equivalent,
CS 166; or consent of instructor. Principles of file systems, architecture of database
management systems, data models, relational databases, logical and physical design
of databases, hardware and software implementation of database systems, distributed
databases (query processing, concurrences, recovery).
CS 237. Advanced Topics in Modeling and Simulation.
(4) Lecture, three hours; scheduled research, three hours. Prerequisite(s):
CS 177. Formal computer simulation models, such as Discrete Event Specified Models
and differential equation models. Current developments in simulation languages.
Integrated model development and applications to complex, large-scale problems.
CS 238. Algorithmic Techniques in Computational
Biology. (4) Lecture, three hours; scheduled research, three hours. Prerequisite(s):
CS 141 or CS 218; MATH 112. Study of fundamental algorithms for solving combinatorial
or computational problems in molecular biology and genomics. Topics include sequence
alignment and multiple alignment, bio-database search, gene and regulatory signal
recognition, DNA sequence assembly, physical mapping, and reconstruction of evolutionary
trees.
CS 239. Performance Evaluation of Computer Networks.
(4) Lecture, three hours; outside research, three hours. Prerequisite(s): CS
164. Offers models and analytical techniques for evaluating the performance of computer
networks. Covers basic and intermediate queuing theory and queuing networks and
their application to practical systems. CS
245. Software Evolution. (4) Lecture, three hours; scheduled research, three
hours. Prerequisite(s): CS 180 or equivalent; graduate standing. Covers the principles,
tools, and techniques for disciplined software evolution. Topics include migration
strategies, change patterns, software maintenance, legacy system reengineering,
reverse engineering for program understanding, middleware, source code analysis,
software visualization, and program transformation tools.
CS 260. Seminar in Computer Science. (1-4) Seminar,
one to four hours. Prerequisite(s): consent of department. Seminar on current research
topics in Computer Science. Course is repeatable.
CS 261. Seminar in Artificial Intelligence and
the Design of Expert Systems. (4) Seminar, four hours. Prerequisite(s): graduate
standing or consent of instructor. A review of recent research topics in the fields
of artificial intelligence and logic programming with a particular emphasis on expert
systems, automated reasoning, and knowledge representation.
CS 262. Algorithms and Data Structures. (4) Seminar,
four hours. Prerequisite(s): CS 218, CS 215A; or consent of instructor. Selected
topics in theoretical computer science. Course is repeatable.
CS 263. Seminar in Distributed Systems. (4) Seminar,
four hours. Prerequisite(s): graduate standing; CS 153 or previous operating systems
course. A project-oriented course that introduces students to the fundamental topics
in distributed computer systems and provides practical experience. Topics include
distributed file systems, replicated data, load management, and distributed shared
memory.
CS 265. Seminar in Parallel Computer Architectures.
(4) Seminar, four hours. Prerequisite(s): graduate standing or consent of instructor.
Focuses on the problems of building a general purpose, massively parallel architecture.
Discusses proposed solutions to the problems of massively parallel architectures,
including implementation and compilation. Covers the recent progress made in the
field.
CS 267. Seminar in Databases. (4) Seminar,
four hours. Prerequisite(s): CS 236 or consent of instructor. Focuses on recent
research and development issues in the database area such as object-oriented databases,
heterogenous databases, parallel databases, benchmarks, transaction processing,
query optimization, and performance evaluation.
CS 268. Seminar in Computer-Aided Design and Design
Automation. (4) Seminar, four hours. Prerequisite(s): graduate standing or consent
of instructor. Emphasizes recent research in automatic synthesis of digital systems.
Covers recent progress and results in the synthesis of digital systems in the systems
level, register transfer level, logic design level, and physical design.
CS 269. Software and Hardware Engineering of Embedded
Systems. (4) Seminar, four hours. Prerequisite(s): CS 120A/EE 120A; consent
of instructor. Presents state-of-the-art software and hardware design techniques
for embedded computing systems. Topics include specification models, languages,
simulation, partitioning algorithms, estimation methods, model refinement, and design
methodology.
CS 287. Colloquium in Computer Science. (1) Colloquium,
one hour. Prerequisite(s): graduate standing. Lectures on current research topics
in computer science presented by faculty members and visiting scientists. Graded
Satisfactory (S) or No Credit (NC). Course is repeatable.
CS 290. Directed Studies. (1-6) Seminar, one
to six hours. Prerequisite(s): consent of instructor. Research and special studies
in computer science. Graded Satisfactory (S) or No Credit (NC). Course is repeatable.
CS 297. Directed Research. (1-6) Individual
study, three to eighteen hours. Prerequisite(s): graduate standing. Directed research
on selected problems in computer science under the sponsorship of specific faculty
members. Graded Satisfactory (S) or No Credit (NC).
CS 298-I. Individual Internship. (1-12) Written
work, one to twelve hours; internship, two to twenty-four hours. Prerequisite(s):
graduate standing; consent of instructor. Individual apprenticeship in computer
science. Includes fieldwork with an approved professional individual or organization,
and academic work under the direction of a faculty member. A final written report
is required. Graded Satisfactory (S) or No Credit (NC). Course is repeatable to
maximum of 12 units.
CS 299. Research for Thesis or Dissertation. (1-12)
Individual study, three to thirty-six hours. Prerequisite(s): graduate standing
and consent of instructor. Research in computer science under the direction of a
faculty member. This research is to be included as part of the thesis or dissertation.
Graded Satisfactory (S) or No Credit (NC). Course is repeatable. CS 301. Teaching Computer Science at the College
Level. (1) Seminar, one hour. Prerequisite(s): graduate standing. A program
of weekly meetings and individual formative evaluation required of new Computer
Science Teaching Assistants. Covers instructional methods and classroom/section
activities most suitable for teaching Computer Science. Conducted by departmental
faculty. Graded Satisfactory (S) or No Credit (NC). Course is repeatable.
CS 302. Apprentice Teaching. (1-4) Seminar,
one to four hours. Prerequisite(s): enrollment limited to teaching assistants and
associates in Computer Science. Supervised teaching in upper- and lower-division
Computer Science courses. Required each quarter of all Computer Science teaching
assistants and associates. The course is intended to aid in the learning of effective
teaching methods such as the handling of Computer Science discussion sections, preparation
and grading of examinations, and student relations. Graded Satisfactory (S) or No
Credit (NC).
|