|
|
|||||
|
|
|
|
|
|
|
| |
|
||||
UC Riverside
|
2003-2004 General Catalog
University of California, Riverside
Computer Science and EngineeringSubject abbreviation: CS Thomas H. Payne, Ph.D., Chair Department Office, A310 Surge Building (909) 787-5639; www.cs.ucr.edu Professors
Information Systems
Marek Chrobak, Ph.D. (Computer Science and Engineering)
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 www.engr.ucr.edu/studentaffairs 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.
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.
Major Requirements
1. Lower-division requirements (55 units)
b) CS 010, CS 012, CS 014, CS 061
c) PHYS 040A, PHYS 040B, PHYS 040C
d) One course of 4 or more units in an engineering discipline outside the field of computer science to be selected in consultation with a faculty advisor. (Either a lower-division or an upper-division course may be used to satisfy this requirement.)
e) ENGL 01SC
2. Upper-division requirements (74 units minimum)
b) STAT 155
c) CS 120A/EE 120A
d) CS 141, CS 150, CS 152, CS 153, CS 161, CS 179 (E-Z)
e) Two courses from MATH 046, MATH 120, MATH 125A, PHIL 124
f) At least 24 units of technical electives to be chosen from an approved list of courses which currently includes MATH 120, MATH 135A, MATH 135B; CS 100, CS 121, CS 122A, CS 122B, CS 130, CS 133, CS 160, CS 162, CS 164, CS 165, CS 166, CS 168, CS 170, CS 171, CS 177, CS 179 (E-Z) (4 units maximum), CS 180, CS 181, CS 183, CS 185, CS 193 (4 units maximum), CS 120B/EE 120B, EE 140. The technical electives selected must be distinct from those used to satisfy the requirements specified in 2.a)–e) above.
Major Requirements
1. Lower-division requirements (48 units)
b) CS 010, CS 012, CS 014, CS 061
c) ECON 002, ECON 003
d) BSAD 020A, BSAD 020B
2. Upper-division requirements (89 units)
b) STAT 155
c) CS 100, CS 141, CS 153, CS 164, CS 165, CS 166, CS 180
d) BSAD 110, BSAD 121/STAT 121, BSAD 134/ECON 134, BSAD 170
e) SOC 150
f) Twelve (12) units of upper-division Computer Science technical electives, which must be distinct from the above major requirements. These 12 units may be chosen from those courses listed as upper-division requirements or technical electives for the Computer Science major.
g) Sixteen (16) units of Business Administration technical electives, including at least 8 units of management information systems courses. These 16 units must be distinct from the above major requirements and may be chosen from any of the available Business Administration courses.
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:
b) Only one quarter of any A-B sequence may be used
c) No course may be an upper-division requirement of the student's major
d) At least two courses must be in the Department of Computer Science and Engineering
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 218 (Design and Analysis of Algorithms)
CS 238 (Algorithmic Techniques in Computational Biology)
2. Computer Architecture: CS 203A (Advanced Computer Architecture)
3. Embedded Systems and Computer-Aided Design; CS 220 (Synthesis of Digital Systems)
4. Databases/Data Mining
CS 236 (Database Management Systems)
5. Operating Systems: CS 202 (Advanced Operating Systems)
6. Networking:
CS 239 (Performance Evaluation of Computer Networks)
7. Software Engineering: CS 245 (Software Evolution)
8. Programming Languages/Compilers: CS 201 (Compiler Construction)
9. Artificial Intelligence: CS 205 (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:
b) One approved breadth course from area 2 or area 3
c) Two additional approved breadth courses from areas 4–9 but not both from the same area
d) Normally, all four breadth courses are taken from this list of graduate lecture courses; however, at most one of these four may be an approved undergraduate lecture course.
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.
b) Thesis Option A student pursuing the M.S. degree, thesis option, must complete a thesis and successfully defend it in an oral examination. To balance the additional workload, the course requirement is reduced to 36 units of approved courses. At least 20 of these units must be approved graduate lecture courses. The remaining 16 units may include additional approved graduate lecture courses, up to 8 units of graduate seminars in CS 260–269, and up to 8 units of approved undergraduate technical electives.
4. Capstone Experience All students must complete a capstone experience that synthesizes and integrates the knowledge and skills obtained throughout the master's program, according to one of the following options. It is the responsibility of the student to find a faculty member willing to supervise the master's project or thesis, to form the faculty examining committee, and to schedule the oral examination.
b) Thesis Option Students must submit a master's thesis in accordance with the general requirements of the university. The thesis is original research work, and it should demonstrate the student's ability to study a research area, identify an open problem and make a research contribution. The thesis must be presented to and approved by a committee of at least three faculty members.
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, 3 hours; laboratory, 3 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,
3 hours; laboratory, 3 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, 3 hours; laboratory, 3
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, 3 hours; laboratory, 3
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, 3 hours; laboratory, 3 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,
3 hours; laboratory, 3 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, 3 hours; laboratory, 3 hours. Prerequisite(s): CS 010
with a grade of "C-" or better. An introduction to computer organization. Topics
include number representation, combinational and sequential logic, computer instructions,
memory organization, addressing modes, interrupt, input/output (I/O), assembly language
programming, assemblers, and linkers. UPPER-DIVISION COURSES
CS 100. Software Construction (4) Lecture,
3 hours; laboratory, 3 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, 3 hours;
laboratory, 6 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, 3 hours; laboratory, 8 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, 3 hours; laboratory, 3 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, 3 hours; laboratory, 6 hours. Prerequisite(s): CS 012,
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, 3 hours; laboratory, 6 hours. Prerequisite(s): CS 012, CS 122A.
Further exploration of state-of-the-art aspects of building embedded computer systems.
Topics include 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, 3
hours; laboratory, 3 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,
3 hours; laboratory, 3 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, 3 hours; laboratory, 3 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, 3 hours; laboratory, 3 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, 3 hours; discussion, 1 hour. Prerequisite(s): CS 014, MATH 009C
or MATH 09HC, 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, 3 hours;
laboratory, 3 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,
3 hours; laboratory, 3 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, 3 hours; laboratory, 3 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, 3 hours; laboratory, 3 hours. Prerequisite(s): CS 061 with
a grade of "C-" or better, 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,
3 hours; laboratory, 3 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, 3
hours; laboratory, 3 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, 3
hours; laboratory, 3 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,
3 hours; laboratory, 3 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, 3 hours; laboratory, 6 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, 3 hours; laboratory, 3 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,
3 hours; discussion, 1 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,
3 hours; laboratory, 3 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, 1 hour; laboratory, 9 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, 3 hours; laboratory, 3 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, 3 hours; laboratory, 3 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,
3 hours; laboratory, 3 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, 3 hours; laboratory, 3 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, 3-15 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,
1-6 hours; scheduled research, 1-3 hours; individual study, 1-3 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, 3-12 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.
Course is repeatable to a maximum of 8 units. CS 201. Compiler Construction (4) Lecture,
3 hours; research, 3 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,
3 hours; outside research, 3 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, 3 hours; scheduled research, 3 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, 3 hours; scheduled research, 3 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,
3 hours; consultation, 1 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,
3 hours; discussion, 1 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 Processing Architectures (4)
Lecture, 3 hours; discussion, 1 hour. Prerequisite(s): CS 161 or CS 203A. A
study of parallel processing. Topics include static and dynamic interconnection
networks; shared memory multiprocessors, and cache coherence and synchronization;
prefetching, memory management, message-passing architectures, workstation clusters,
and scheduling and mapping algorithms; and load balancing in web servers.
CS 215. Theory of Computation (4) Lecture,
3 hours; outside research, 3 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, 3 hours; outside research, 3 hours. Prerequisite(s): CS 141. 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, upper and lower bounds, and other methods.
CS 220. Synthesis of Digital Systems (4) Lecture,
3 hours; outside research, 3 hours. Prerequisite(s): CS 141, 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 230. Computer Graphics (4) Lecture, 3
hours; outside research, 3 hours. Prerequisite(s): CS 141 or CS 218; MATH 113 or
MATH 131; graduate standing or consent of instructor. Covers advanced topics related
to graphics and necessary fundamentals including geometry representations, affine
and perspective transforms, rendering with global illumination and other light models,
shading and texture mapping, rasterization and anti-aliasing techniques, and hierarchical
and keyframe animation. Includes projects and/or in-depth programming assignments.
CS 231. Computer Animation (4) Lecture,
3 hours; outside research, 3 hours. Prerequisite(s): CS 130 or CS 230. Covers topics
in computer animation, including motion capture, inverse kinematics, and dynamic
simulation; deformable systems and other natural phenomena; facial animation; high-level
behavior control; creature evolution; and procedural techniques.
CS 234. Computational Methods for Biomolecular
Data (4) Lecture, 3 hours; outside research, 3 hours. Prerequisite(s): CS 141
or CS 218; MATH 112; STAT 155 or STAT 160A. A study of computational and statistical
methods aimed at automatically analyzing, clustering, and classifying biomolecular
data. Topics include combinatorial algorithms for pattern discovery, Hidden Markov
models for sequence analysis, analysis of expression data, and prediction of the
three-dimensional structure of RNA and proteins.
CS 235. Data Mining Techniques (4) Lecture,
3 hours; term paper, 1.5 hours; project, 1.5 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,
3 hours; outside research, 3 hours. Prerequisite(s): CS 141, CS 153 or equivalent,
CS 166; or consent of instructor. Topics include 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, and
distributed databases (query processing, concurrences, recovery).
CS 237. Advanced Topics in Modeling and Simulation
(4) Lecture, 3 hours; scheduled research, 3 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, 3 hours; scheduled research, 3 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, 3 hours; outside research, 3 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 240. Network Routing (4) Lecture, 3 hours;
outside research, 3 hours. Prerequisite(s): CS 164; CS 141 or CS 204. An in-depth
study of routing in computer networks. Examines general principles and specific
routing protocols and technologies. Topics include Internet, Asynchronous Transfer
Mode (ATM), optical, wireless, and ad hoc networks.
CS 245. Software Evolution (4) Lecture,
3 hours; scheduled research, 3 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 253. Distributed Systems (4) Lecture,
3 hours; outside research, 3 hours. Prerequisite(s): CS 153. Integrates the theory
and practice of distributed systems with a focus on recent developments in distributed
systems. Topics include middleware architectures, distributed process management
and real-time scheduling, dependability, group communication protocols, distributed
process management, replication, large-scale peer-to-peer systems, Internet content
delivery, and web caching.
CS 255. Computer Security (4) Seminar, 3
hours; outside research, 3 hours. Prerequisite(s): CS 153 or CS 164 or CS 165. Discusses
the theoretical and practical issues arising in the context of computer systems
security and the principles underlying the design of secure computing environments.
Topics include cryptography, security models, authentication protocols, network
security, intrusion detection, attacks and their countermeasures, and secure systems
design.
CS 257. Wireless Networks and Mobile Computing
(4) Lecture, 3 hours; outside research, 3 hours. Prerequisite(s): CS 141; CS
164 or 204. Introduces basic and advanced concepts of wireless networks and mobile
computing. Covers both wireless cellular and ad hoc networks. Topics include protocols
for medium access control, resource allocation, and routing; transport layer optimizations
for the wireless environment; and standards, Bluetooth, and the IEEE 802.11 for
wireless local area networks.
CS 260. Seminar in Computer Science (1-4) Seminar,
1-4 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, 4 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,
4 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,
4 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, 4 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,
4 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, 4 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, 4 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,
1 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,
1-6 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, 3-18 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, 1-12 hours; internship, 2-24 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 a maximum of 12 units.
CS 299. Research for Thesis or Dissertation
(1-12) Individual study, 3-36 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, 1 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,
1-4 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).
|