Computer
Science and Engineering (CSE)
Courses
For course descriptions not found in the 2006-2007 General
Catalog, please contact the department for more information.
Student demand exceeds capacity in many CSE courses. Accordingly,
many CSE undergraduate courses may have enrollment restrictions
which give priority to students in the following order:
- CSE majors, CSE M.S., and CSE Ph.D. students
- CSE pre-majors, ECE CE majors and pre-majors, and Math-CS majors
- students fulfilling a non-elective requirement in another program
- CSE minors
- all other majors or pre-majors in other SOE departments
- all others, with permission of the Department of Computer Science
and Engineering
Where these restrictions apply, the registrar will not enroll low-priority
students in the course.
A tentative schedule of course offerings is available from the
department, EBU 3B, Room 1200D, each spring for the following
academic year. The tentative schedule for 200607 is also
found at http://www.cse.ucsd.edu/undergrad/courses/ugradnextyearcourses.html.
Lower-division
CSE 3. Fluency in Information Technology (4)
Introduces the concepts and skills necessary to effectively use
information technology. Includes basic concepts and some practical
skills with computer and networks. Prerequisite: none.
CSE 5A. Introduction to Programming I (4)
(Formerly CSE 62A) Introduction to algorithms and top-down problem
solving. Introduction to the C language including functions, arrays,
and standard libraries. Basic skills for using a PC graphical user
interface operating system environment. File maintenance utilities
are covered. (A student may not receive credit for CSE 5A after
receiving credit for CSE 10 or CSE 11 or CSE 8B or CSE 9B or CSE
62B or CSE 65.) Prerequisite: A familiarity with high-school
level algebra is expected, but this course assumes no prior programming
knowledge.
CSE 8A. Introduction to Computer Science: JAVA (3) Basic
Unix. Basics of Java language. Classes, methods, and parameters.
Modularity and abstraction. Documentation techniques. Testing
and verification techniques. Basic inheritance. Event-driven
programming. Programming with AWT library or other similar library.
CSE 8A, CSE 8B, and CSE 8AL is a slower paced version of CSE
11 with more programming practice. Concurrent enrollment with
CSE 8AL is required. Students who have taken CSE 8B or CSE 11
may not take CSE 8A. Majors only. Prerequisites: high school
algebra. Specified majors only.
CSE 8AL. Introduction to Computer Science: JAVA Lab (1) Exercises
in the theory and practice of computer science under the supervision
of an instructor. Hands-on experience with designing,
editing, compiling, and executing programming constructs and
applications. Must be taken concurrently with CSE 8A. CSE 8A,
CSE 8B, and CSE 8AL is a slower paced version of CSE 11 with
more programming practice. Students who have taken CSE 8B or
CSE 11 may not take CSE 8AL. Majors only. Prerequisites: high
school algebra. Specified majors only.
CSE 8B. Introduction to Computer Science: Java (4)
Continuation of the Java language. Continuation of programming techniques.
More on Inheritance. Exception handling. CSE 8A-B is a slower paced
version of CSE 11 with more programming practice. (Students who
have taken CSE 9A or CSE 9B or CSE 10 or CSE 11 may not take CSE
8B.) Prerequisite: high school algebra. Majors only.
CSE 11. Introduction to Computer Science and Object-Oriented
Programming: Java (4) Introduction to
computer science and programming using the Java language. Basic
UNIX. Modularity and abstraction. Documentation, testing and verification
techniques. Basic object-oriented programming including inheritance
and dynamic bind. Exception handling. Event-driven programming.
Experience with AWT library or other similar library. Prerequisites:
high-school algebra and a course in programming in a compiled language.
Majors only.
CSE 12. Basic Data Structures and Object-Oriented Design (4)
Basic data structures including stacks, queues, lists, binary trees,
hash tables. Basic object-oriented design including encapsulation,
polymorphism, classes as the implementation of abstract data types.
Memory management, pointers, recursion, and big-o notation. Uses
the C/C++ and Java programming language. Prerequisite: CSE 8B
or CSE 11.
CSE 20. Introduction to Discrete Mathematics (4)
Basic discrete mathematical structure: sets, relations, functions,
sequences, equivalence relations, partial orders, and number systems.
Methods of reasoning and proofs: propositional logic, predicate
logic, induction, recursion, and pigeonhole principle. Infinite
sets and diagonalization. Basic counting techniques; permutation
and combinations. Applications will be given to digital logic design,
elementary number theory, design of programs, and proofs of program
correctness. Credit not offered for both Math. 15A and CSE 20. Equivalent
to Math 15A. Prerequisites: CSE 8A or CSE 8B or CSE 11. CSE 8B
or CSE 11 may be taken concurrently with CSE 20/ Math. 15A.
CSE 21. Mathematics for Algorithms and Systems (4)
This course will provide an introduction to the discrete mathematical
tools needed to analyze algorithms and systems. Enumerative combinatorics:
basic counting principles, inclusion-exclusion, and generating functions.
Matrix notation. Applied discrete probability. Finite automata.
Credit not offered for both Math.15B and CSE 21. Equivalent to Math
15B. Prerequisites: CSE 20 or Math. 15A.
CSE 30. Computer Organization and Systems Programming (4)
(Formerly CSE 70.) Introduction to organization of modern digital
computersunderstanding the various components of a computer
and their interrelationships. Study of a specific architecture/machine
with emphasis on systems programming in C and Assembly languages
in a UNIX environment. Prerequisites: CSE 12 and CSE 20 or Math.
15A; or consent of the instructor.
CSE 80. UNIX Lab (2) The objective
of the course is to help the programmers create a productive UNIX
environment. Topics include customizing the shell, file system,
shell programming, process management, and UNIX tools. (P/NP grades
only.) Prerequisite: CSE 8B or CSE 9B or CSE 10 or CSE 11.
CSE 86. C++ for Java Programmers (2) The objective of the
course is to help the Java programmer to be productive in the C++
programming environment. Topics include
the similarities and differences between Java and C++ with special
attention to pointers, operator overloading, templates, the STL,
the preprocessor, and the C++ Runtime Environment. Prerequisites:
CSE 30 or consent of the instructors.
CSE
91. Perspectives in Computer Science and Engineering (1) For
new CSE majors. A seminar format discussion led by CSE faculty
on topics in computer science, concentrating
on
the relation among them, recent developments, and future directions.
Prerequisites: majors only.
CSE 92. Reading and Writing in Computer
Science (2) This course helps students to read and write technical English
better, and to read and write software better. They write short
papers responding to a CSE-related book, learn the basics of
functional programming, and do a project using a functional language.
Prerequisites:
CSE 12. Majors only.
CSE 87. Freshman Seminar (1) The
Freshman Seminar Program is designed to provide new students with
the opportunity to explore an intellectual topic with a faculty
member in a small seminar setting. Freshman seminars are offered
in all campus departments and undergraduate colleges, and topics
vary from quarter to quarter. Enrollment is limited to 15 to 20
students, with preference given to entering freshmen. Prerequisite:
none.
CSE 99. Independent Study in Computer Science and Engineering
(4) Independent reading or research
by special arrangement with a faculty member. Prerequisites:
lower-division standing. Completion of 30 units at UCSD with a UCSD
GPA of 3.0. Special Studies form required. Department stamp required.
Consent of instructor and approval of the department. Majors
only.
Upper-division
CSE 100. Advanced Data Structures (4)
Descriptive and analytical presentation of data structures and algorithms.
Lists, tables, priority queues, disjoint subsets, and dictionaries
data types. Data structuring techniques include linked lists, arrays,
hashing, and trees. Performance evaluation involving worst case,
average and expected case, and amortized analysis. Credit not offered
for both Math. 176 and CSE 100. Equivalent to Math. 176. Prerequisites:
CSE 12, CSE 21 or Math. 15B, and CSE 30, or consent of the instructor.
Majors only.
CSE 101. Design and Analysis of Algorithms (4)
Design and analysis of efficient algorithms with emphasis of non-numerical
algorithms such as sorting, searching, pattern matching, and graph
and network algorithms. Measuring complexity of algorithms, time
and storage. NP-complete problems. Credit not offered for both Math.
188 and CSE 101. Equivalent to Math 188. Prerequisites: CSE 12,
CSE 21 or Math. 15B or Math. 100A or Math. 103A and CSE 100 or Math.
176. Majors only.
CSE 102. Storage System Architectures (4)
Descriptive and analytic introduction to storage system architectures.
Disk drive storage media organization and run-time performance;
external indexing data structures B+trees and linear hashing
algorithms. Disk arrays, RAID data organization, reliability,
sparing, data declustering, and video servers. Prerequisites:
CSE 100 or Math 176, CSE 120, CSE 123A, or consent of the instructor. Majors only.
CSE 105. Theory of Computability (4)
An introduction to the mathematical theory of computability. Formal
languages. Finite automata and regular expression. Push-down automata
and context-free languages. Computable or recursive functions: Turing
machines, the halting problem. Undecidability. Credit not offered
for both Math. 166 and CSE 105. Equivalent to Math 166. Prerequisites:
CSE 12, CSE 21 or Math. 15B or Math. 100A or Math. 103A. Majors
only.
CSE 107. Introduction to Modern Cryptography (4)
Topics include private and public-key cryptography, block ciphers,
data encryption, authentication, key distribution and certification,
pseudorandom number generators, design and analysis of protocols,
zero-knowledge proofs, and advanced protocols. Emphasizes rigorous
mathematical approach including formal definitions of security goals
and proofs of protocol security. Prerequisites: CSE 21 or Math.
15B, CSE 101 or Math. 188, CSE 105 or Math. 166. Majors only.
CSE 111. Object Oriented Software Design (4)
Introduction to object-oriented analysis and design. Object-oriented
modeling methods for analysis and design, object-oriented general
design paradigms, object-oriented design techniques. Cyclic development
of object-oriented systems. Prerequisites: CSE 8B or CSE 9B or
CSE 10 or CSE 11, CSE 12, and CSE 100 or Math. 176. Majors only.
CSE 112. Software Engineering (4)
(Formerly CSE 110.) This course will cover software engineering
topics associated with large systems development such as requirements
and specifications, testing and maintenance, and design. Prerequisites:
CSE 111. Majors only.
CSE 118. Ubiquitous Computing (4)
Explores emerging opportunities enabled by cheap sensors and networked
computing devices, and is organized as a preparatory course for
graduate school. Students read, present, and discuss research papers.
Small research projects will be conducted in teams, culminating
in project presentations at the end of the term. The weekly discussion
section will cover material relevant to the project on research
methods, software engineering, teamwork, and project management.
Prerequisites: successful completion of a major project course,
including: CSE 131B, CSE 132B, Cog Sci 102C, Cog Sci 121, Cog Sci
184, ECE 111, ECE 118, ECE 191, ECE 192, COMT 111B, COMT 115, or
ICAM 160B. Other project courses, experience, or accomplishments
may be petitioned. Majors only.
CSE 120. Principles of Computer Operating Systems (4)
(Formerly CSE 171A.) This course introduces the basic concepts used
to structure computer operating systems. Examples of notions introduced
and discussed are batch processing, multiprogramming, input/output,
pooling, interrupt handling, processes, descriptors, process synchronization,
interprocess communication, memory management, virtual memory, caching,
buffers, naming, files, interactive command interpreters, and processor
scheduling. Prerequisites: CSE 100 or Math. 176, CSE 101 or Math.
188, and CSE 141. Majors only.
CSE 121. Operating Systems: Architecture and Implementation
(4) (Formerly CSE 171B.) Case study
of architecture and implementation of a selected modern operating
system. In-depth analysis through a detailed study of source code.
Topics include process creation, context-switching, memory allocation,
synchronization mechanisms, interprocess communication, I/O buffering,
device drivers, and file systems. Prerequisite: CSE 120.
CSE 123A. Computer Networks (4)
Introduction to concepts, principles, and practice of computer communication
networks with examples from existing architectures, protocols, and
standards with special emphasis on the Internet protocols. Layering
and the OSI model; physical and data link layers; local and wide
area networks; datagrams and virtual circuits; routing and congestion
control; internetworking. Transport protocols. Prerequisite:
CSE 141. Majors only.
CSE 123B. Communications Software (4)
Protocol software structuring, The Internet protocol suite, Inter-process
communication, Protocols for real-time and multimedia (digital audio
and video) communication, multicast, bridging, and group communication
protocols, protocols for mobile and personal communication networks,
application-level protocols, secure communication. Prerequisite:
CSE 120 or consent of the instructor. CSE 123A is strongly recommended.
Majors only.
CSE 125. Software System Design and Implementation (4)
Design and implementation of large, complex software systems involving
multiple aspects of CSE curriculum. Emphasis is on software
system
design applied to a single, large group project with close interaction
with instructor. Prerequisites: senior standing with substantial
programming experience, and consent of instructor. Department
stamp required. Majors
only.
CSE 126. Multimedia Systems (4)
Multimedia technologies; multimedia storage models and structures;
data models and interfaces; multimedia information systems; video/audio
networking; media synchronization; image computing and information
assimilation; conferencing paradigms and structured interaction
support. Prerequisite: CSE 120 or consent of the instructor.
CSE 127. Introduction to Computer Security (4)
Topics include basic cryptography, security/threat analysis, access
control, auditing, security models, distributed systems security,
and theory behind common attack and defense techniques. The class
will go over formal models as well as the bits and bytes of security
exploits. Prerequisite: CSE 21 or Math. 15B, and CSE 120.
Majors only.
CSE 128. Concurrency (4) Specification
of concurrent programs safety, liveness, and fairness: producer-consumer;
mutual exclusion; atomic read/writes; semaphores; monitors; distributed
algorithms and memory coherency; programming with threads; concurrency
in popular programming languages and operating systems. Prerequisite:
CSE 120. Majors only.
CSE 130. Programming Languages: Principles and Paradigms (4)
(Formerly CSE 173.) Introduction to programming languages and paradigms,
the components that comprise them, and the principles of language
design, all through the analysis and comparison of a variety of
languages (e.g., Pascal, Ada, C++, PROLOG, ML.) Will involve programming
in most languages studied. Prerequisites: CSE 12 and CSE 100
or Math. 176. Majors only.
CSE 131A. Compiler Construction I (4)
(Formerly CSE 163A.) Introduction to the compilation of programming
languages, principles and practice of lexical and syntactic analysis,
error analysis, syntax-directed translation, and type checking.
Prerequisites: CSE 30, CSE 100 or Math. 176, and CSE 105 or Math.
166. Majors only.
CSE 131B. Compiler Construction II (4)
(Formerly CSE 163B.) Principles and practice for the design and
implementation for the back-end of translators for programming languages,
symbol tables, syntax-directed translation, code generation, optimization,
and compiler structure. Prerequisites: CSE 30, CSE 100 or Math.
176, CSE 105 or Math. 166, and CSE 131A. Majors only.
CSE 132A. Database System Principles (4)
Basic concepts of databases, including data modeling, relational
databases, query languages, optimization, dependencies, schema design,
and concurrency control. Exposure to one or several commercial database
systems. Advanced topics such as deductive and object-oriented databases,
time allowing. Prerequisite: CSE 100 or Math. 176. Majors
only.
CSE 132B. Database Systems Applications (4)
Design of databases, transactions, use of trigger facilities and
datablades. Performance measuring, organization of index structures.
Prerequisite: CSE 132 or CSE 132A or equivalent.
CSE 133. Information Retrieval (4)
(Formerly CSE 181.) How to find relevant documents (e.g.,
an electronic mail message or a book) from very large corpora (e.g.,
all the worlds electronic mail or the library.) Students will
construct and experimentally evaluate a complete IR system for a
modest textual corpus. Prerequisite: CSE 100 or Math. 176.
Majors only.
CSE 134A. Web Server Languages (4)
Design and implementation of interactive World Wide Web documentation
using server-side programs. Languages covered include HTML, Perl,
and JavaScript. Other languages as time allows. Prerequisite:
CSE 100 or Math. 176. Majors only.
CSE 134B. Web Client Languages (4)
Design and implementation of interactive World Wide Web clients
using helper applications and plug-ins. The main language covered
will be Java. Prerequisite: CSE 100 or Math. 176. Majors
only.
CSE 135. Server-side Web Applications (4)
Design and implementation of dynamic web-based applications. Multi-tier
architecture, scripting languages, SQL, XML, session handling, non-browser
clients, Web services, and scalability, security, and usability
in the Web context. Prerequisites: CSE 100 or Math. 176.
Majors only.
CSE 136. Enterprise-class Web Applications (4)
Design and implementation of large scale web-based applications.
Modeling organizational needs, design and revision management, J2EE
or similar software platforms, Web and application server functionality,
reuse of object-oriented components, model-view-controller and other
design patterns, clustering, load-balancing, fault-tolerance, authentication,
usage accounting. Prerequisite: CSE 135. Majors only.
CSE 140. Components and Design Techniques for Digital Systems
(4) (Formerly CSE 170A) Design of Boolean
logic and finite state machines; two-level, multi-level combinational
logic design, combinational modules and modular networks, Mealy
and Moore machines, analysis and synthesis of canonical forms, sequential
modules. Prerequisites: CSE 20 or Math. 15A, CSE 30. CSE 140L
must be taken concurrently. Majors only.
CSE 140L. Digital Systems Laboratory (2)
(Formerly CSE 175B) Implementation with computer-aided design tools
for combinational logic minimization and state machine synthesis.
Hardware construction of a small digital system. Prerequisites:
CSE 20, CSE 30. CSE 140 must be taken concurrently.
CSE 141. Introduction to Computer Architecture (4)
Introduction to computer architecture. Computer system design. Processor
design. Control design. Memory systems. Prerequisites: CSE 140,
CSE 140L, or consent of the instructor. CSE 141L should be taken
concurrently. Majors only.
<b>CSE 141L. Project in Computer Architecture (2)
Hands-on computer architecture project aiming to familiarize students
with instruction set architecture, and design of process. Control
and memory systems. Prerequisites: CSE 140, CSE 140L, or consent
of the instructor. CSE 141 should be taken concurrently. Majors
only.
CSE 142. Advanced Digital Logic Design (4)
(Formerly CSE 170C) Digital logic optimization; functional decomposition
and symmetric functions; reliable design and fault diagnosis;
structure
of sequential machines; asynchronous circuit design. Assignments
using logic synthesis tools. Prerequisites: CSE 140, CSE
140L.
CSE 143. Microelectronic System Design (4) VSLI process
technologies; circuit characterization; logic design styles; clocking
strategies; computer-aided design tools; subsystem
design; design case studies. System design project from hardware
description, logic synthesis, physical layout to design verification.
Students may not receive credit for both CSE 143 and ECE 161B.
Prerequisites: CSE 140 and CSE 141. Majors only.
CSE 144. Computer-Aided Design of VLSI Circuits (4)
(Formerly CSE 172B) Introduction to Computer-Aided Design. Placement,
assignment and floor planning techniques. Routing. Symbolic layout
and compaction. Module generation and silicon compilation. Prerequisites:
CSE 140 and CSE 140L, or consent of the instructor.
CSE 146. Introduction to Reliable Hardware (4) Fault models
and tests, combinational circuit test generation, fault collapsing,
fault simulation, synchronous sequential circuit
testing, functional testing, memory testing. Prerequisites:
CSE 140 and CSE 140L, or consent of instructor. Majors only.
CSE 150. Programming Languages for Artificial Intelligence (4) Note:
CSE 150 is pending CEP approval. (Formerly CSE 162) Experience
using two very different approaches to artificial intelligence
programming.
Symbolic manipulation using LISP, with examples drawn from heuristic
search, inference, and/or resolution theorem proving. Pattern recognition
and transformation using neural networks with perception and back
propagation learning algorithms, applied to problems such as face
recognition, English past tense formation, etc. Prerequisites:
CSE 8B or CSE 9B or CSE 10 or CSE 11, CSE 12, and CSE 100 or Math.
176. Majors only.
CSE 151. Introduction to Artificial Intelligence (4)
An introduction to theoretical issues and computational techniques
arising from a comparison of human and machine intelligences. Knowledge
representation languages; problem-solving heuristics; machine learning
and application areas including vision, robotics, and natural language
understanding will be reviewed. Prerequisite: CSE 150 or consent
of the instructor. Majors only.
CSE 152. Introduction to Computer Vision (4)
The goal of computer vision is to compute scene and object properties
from images and video. This introductory course includes feature
detection, image segmentation, motion estimation, object recognition,
and 3-D shape reconstruction through stereo, photometric stereo,
and structure from motion. Prerequisites: Math. 20F, CSE 100
or Math. 176, CSE 101 or Math. 188. Knowledge of C, C++ or Matlab
programming. Majors only.
CSE 160. Introduction to Parallel Computing
(4) Introduction to HPPC: parallel
architecture, algorithms, software and problem-solving techniques.
Areas covered:
Flynns taxonomy, processor-memory organizations, shared and
non-shared memory models; message passing and multithreading,
data
parallelism; speedup, efficiency, and Amdahls law, communication
and synchronization, isoefficiency, and scalability. Topics: run
time software techniques, compilers, and grid computing. Assignments
given to provide practical experience. Prerequisite: CSE 100
or Math. 176. Majors only.
CSE 166. Image Processing (4) Principles
of image formation, analysis, and representation. Image enhancement,
restoration, and segmentation; stochastic image models. Filter design,
sampling, Fourier and wavelet transforms. Selected applications
in computer graphics and machine vision. Prerequisites: Math.
20F, CSE 100 or Math. 176. Majors only.
CSE 167. Computer Graphics (4) (Formerly
CSE 177) Representation and manipulation of pictorial data. Two-dimensional
and three-dimensional transformations, curves, surfaces. Projection,
illumination, and shading models. Raster and vector graphic I/O
devices; retained-mode and immediate-mode graphics software systems
and applications. Prerequisites: Math. 2EA/20F and CSE 100 or
Math. 176. Majors only.
CSE 168. Computer Graphics II: Rendering (4)
Weekly programming assignments that will cover graphics rendering
algorithms. During the course the students will learn about ray
tracing, geometry, tessellation, acceleration structures, sampling,
filtering, shading models, and advanced topics such as global illumination
and programmable graphics hardware. Prerequisites: CSE 167 or
concurrent enrollment. Majors only.
CSE 169. Computer Animation (4)
Advanced graphics focusing on the programming techniques involved
in computer animation. Algo-rithms and approaches for both character
animation and physically based animation. Particular subjects may
include skeletons, skinning, key framing, facial animation, inverse
kinematics, locomotion, motion capture, video game animation, particle
systems, rigid bodies, clothing, and hair. Prerequisites: a
good understanding of linear algebra. CSE 167 or consent of instructor.
Majors only.
CSE 171. User Interface Design (4)
Explores usability, representation and coordination issues in user
interface design with some focus on distributed cooperative work,
semiotics, and the interplay between socio-cognitive and technical
issues. Most examples and homework involve the Web. Prerequisites:
CSE 8B or 11, CSE 20 or Math. 15A, and CSE 100 or Math. 176.
Majors only.
CSE 175. Social and Ethical Issues in Information Technology
(4) Social aspects of information technology,
with an emphasis on ethical issues. Topics include ethical theories,
privacy and security, spam, e-commerce, the digital divide, open
source software, medical informatics, actor-network theory, and
some neo-classical economics. Prerequisites: CSE 100 or Math.
176. Majors only.
CSE 181. Molecular Sequence Analysis (4)
This course covers the analysis of nucleic acid and protein sequences,
with an emphasis on the application of algorithms to biological
problems. Topics include sequence alignments, database searching,
comparative genomics, and phylogenetic and clustering analyses.
Pairwise alignment, multiple alignment, DNS sequencing, scoring
functions, fast database search, comparative genomics, clustering,
phylogenetic trees, gene finding/DNA statistics. Prerequisites:
CSE 100 or Math. 176, CSE 101 or Math. 188, BIMM 100 or Chem. 114D.
Bioinformatics majors only. CSE 181 is crosslisted with BIMM
181 and BENG 181.
CSE 182. Biological Databases (4)
This course provides an introduction to the features of biological
data, how that data are organized efficiently in databases,
and
how existing data resources can be utilized to solve a variety
of biological problems. Relational databases, object oriented
databases,
ontologies, data modeling and description, survey of current biological
database with respect to above, implementation of a database
focused
on a biological topic. Prerequisites: CSE 100 or Math. 176. Bioinformatics
majors only. CSE 182 is crosslisted with BIMM 182, Chem. 182,
and
BENG 182.
CSE 184. Computational Molecular Biology (4)
This advanced course covers the application of machine learning
and modeling techniques to biological systems. Topics include
gene structure, recognition of DNA and protein sequence patterns,
classification, and protein structure prediction. Pattern discovery,
Hidden Markov models/support victor machines/neural network/profiles.
Protein structure prediction, functional characterization or
proteins, functional genomics/proteomics, metabolic pathways/gene
networks. Prerequisites: BIMM 181 or BENG 181 or CSE 181,
BIMM 182 or CSE 182 or CHEM 182. Bioinformatics majors only.
CSE 184 is crosslisted with BIMM 184, BENG 184, and Chem.
184.
CSE 190. Topics in Computer Science and Engineering (4) Topics
of special interest in computer science and engineering. Topics
may vary from quarter to quarter. May be repeated for credit with
the consent of instructor. Prerequisites: consent of the instructor
and department stamp required. Majors only.
CSE 191. Seminar in CSE (14)
A seminar course on topics of current interest. Students, as well
as, the instructor will be actively involved in running the course/class.
This course cannot be counted toward a technical elective. Prerequisites:
consent of instructor. Department stamp required.
Majors only.
CSE 195. Teaching (4) Teaching and
tutorial assistance in a CSE course under the supervision of the
instructor. (P/NP grades only.) Prerequisites: consent of the
department chair. Department stamp required.
>CSE 197. Field Study in Computer Science and Engineering (4,
8, 12, or 16) Directed study and research
at laboratories away from the campus. (P/NP grades only.) Prerequisite:
consent of the instructor and approval of the department. Department
stamp required.
CSE 198. Directed Group Study (2 or 4)
Computer science and engineering topics whose study involves reading
and discussion by a small group of students under the supervision
of a faculty member. (P/NP grades only.) Prerequisites: consent
of the instructor. Department stamp required.
CSE 199. Independent Study for Undergraduates (2 or 4)
Independent reading or research by special arrangement with a faculty
member. (P/NP grades only.) Prerequisites: consent of the instructor.
Department stamp required.
Graduate
CSE 200. Computability and Complexity (4)
Computability review, including halting problem, decidable sets,
r.e. sets, many-one reductions; TIME(t(n)), SPACE(s(n)) and general
relations between these classes; L, P, PSPACE, NP; NPcompleteness;
hierarchy theorems; RP, BPP. Prerequisite: CSE 105 or equivalent.
CSE 201A. Advanced Complexity (4)
Polynomial-time hierarchy (PH); BPP in second level of pH; Savitchs
theorem; NL=coNL; non-uniform and circuit complexity; some circuit
lower bounds; IP=PSPACE; probabilistic proof checking (PCP); Application
of PCP to approximation hardness; Complexity of proof systems; Parallel
complexity classes NC and AC; P-completeness. Prerequisite: CSE
200.
CSE 202. Algorithm Design and Analysis (4)
The basic techniques for the design and analysis of algorithms.
Divide-and-conquer, dynamic programming, data structures, graph
search, algebraic problems, randomized algorithms, lower bounds,
probabilistic analysis, parallel algorithms. Prerequisite: CSE
101 or equivalent.
CSE 203A. Advanced Algorithms (4)
Modern advances in design and analysis of algorithms. Exact syllabus
varies. Topics include approximation, randomized algorithms, probabilistic
analysis, heuristics, online algorithms, competitive analysis, models
of memory hierarchy, parallel algorithms, number-theoretic algorithms,
cryptanalysis, computational geometry, computational biology, network
algorithms, VLSI CAD algorithms. Prerequisite: CSE 202.
CSE 204A. Combinatorial Optimization (4)
Linear programming, simplex method, duality, and column generating
technique. Integer programming introduced via the Knapsack problem.
The periodic nature of all integer programs. Why the round-off technique
cannot work in general. The solution of the Knapsack problem in
polonominal time since nonbasic columns form a group. Prerequisites:
CSE 202 or Linear Algebra or consent of instructor.
CSE 205A. Logic in Computer Science (4)
(Formerly CSE 208D) Mathematical logic as a tool in computer science.
Propositional logic, resolution, first-order logic, completeness
and incompleteness theorems with computational viewpoint, finite
model theory, descriptive complexity, logic programming, non-monotonic
reasoning, temporal logic. Applications to databases, automatic
theorem proving, program verification, and distributed systems.
Prerequisite: CSE 200 or consent of instructor.
CSE 206A. Lattice Algorithms and Applications (4)
(Formerly CSE 207C) Introduction to the algorithmic theory of point
lattices (A.K.A. algorithmic geometry of numbers), and some of its
most important applications in cryptography and cryptanalysis. Topics
usually include: LLL basis reduction algorithm, cryptanalysis of
broadcast RSA, hardness of approximating lattice problems. Prerequisites:
CSE 202, CSE 200, or concurrent.
CSE 206B. Algorithms in Computational Biology (4)
(Formerly CSE 257B) The course focuses on algorithmic aspects of
modern bioinformatics and covers the following topics: computational
gene hunting, sequencing, DNA arrays, sequence comparison, pattern
discovery in DNA, genome rearrangements, molecular evolution, computational
proteomics, and others. Prerequisite: CSE 202 or consent of instructor.
CSE 207. Modern Cryptography (4)
Private and public key cryptography, introduction to reduction based
proofs of security, concrete security, block ciphers, pseudorandom
functions and generators, symmetric encryption, asymmetric encryption,
computational number theory, RSA and discrete log systems, message
authentication, digital signatures, key distribution and key management.
Prerequisites: CSE 202 or consent of instgructor.
CSE 207C. Lattices and Cryptology (4)
Renumbered to CSE 206A (see above).
CSE 208. Advanced Cryptography (4)
Zero-knowledge, secure computation, session-key distribution, protocols,
electronic payment, one-way functions, trapdoor permutations, pseudorandom
bit generators, hardcore bits. Prerequisites: CSE 202, CSE 200,
and CSE 207 or consent of instructor.
CSE 208D. Logic in Computer Science (4)
Renumbered to CSE 205A (see above).
CSE 209A. Topics/Seminar in Algorithms, Complexity, and Logic
(1-4) Topics of special interest in
algorithms, complexity, and logic to be presented by faculty and
students under faculty direction. Topics vary from quarter to quarter.
May be repeated for credit. Prerequisites: consent of instructor.
CSE 209B. Topics/Seminar in Cryptography (1-4)
Topics of special interest in cryptography to be presented by faculty
and students under faculty direction. Topics vary from quarter to
quarter. May be repeated for credit. Prerequisite: consent of
instructor.
CSE 210. Principles of Software Engineering (4)
(Formerly CSE 264A.) General principles in modern software engineering.
Both theoretical and practical topics are covered. Theoretical topics
include proofs of correctness, programming language semantics, and
theory of testing. Practical topics include structured programming,
modularization techniques, design of languages for reliable programming,
and software tools. Prerequisites: CSE 100, 131A, 120, or consent
of instructor.
CSE 211. Software Testing and Analysis (4)
Survey of testing and analysis methods. Introduction to advanced
topics in area as well as traditional production methods. Topics
include inspections and reviews, formal analysis, verification and
validation standards, non-statistical testing, statistical-testing
and reliability models, coverage methods, testing and analysis tools,
and organization management and planning. Methods special to special
development approaches such as object-oriented testing will also
be described. Prerequisite: undergraduate major in computer science
or extensive industrial experience.
CSE 218. Advanced Topics in Software Engineering (4)
This course will cover a current topic in software engineering in
depth. Topics in the past have included software tools, impacts
of programming language design, and software system structure. (S/U
grades permitted.) Prerequisite: none.
CSE 221. Operating Systems (4) Operating
system structures, concurrent computation models, scheduling, synchronization
mechanisms, address spaces, memory management protection and security,
buffering, streams, data-copying reduction techniques, file systems,
naming, caching, disk organization, mapped files, remote file systems,
case studies of major operating systems. Prerequisites: CSE 120
and 121, or consent of instructor.
CSE 222. Communication Networks (4)
Renumbered to CSE 222A (see below).
CSE 222A. Computer Communication Networks (4)
(Formerly CSE 222.) Computer communication network concepts, protocols,
and architectures, with an emphasis on an analysis of algorithms,
protocols, and design methodologies. Topics will include layering,
error control, flow control, congestion control, switching and routing,
quality of service management, mobility, naming, security, and selected
contemporary topics. Prerequisite: CSE 123A or consent of instructor.
CSE 222B. Internet Algorithmics (4)
(Formerly CSE 228H.) Techniques for speeding up Internet implementations
including system restructuring, new algorithms, and hardware innovations.
Topics include: models for protocols, systems and hardware; efficiency
principles; applying these principles to deriving techniques for
efficient implementation of common endnode and router functions.
Prerequisites: CSE 123A or CSE 222A or consent of instructor.
CSE 223. Distributed Systems (4)
Renumbered to CSE 223A (see below).
CSE 223A. Principles of Distributed Computing (4)
(Formerly CSE 223) Logical and physical time, snapshot protocols,
failure models, replication strategies, consensus and reliable broadcast,
self-stabilization, atomic commit. Prerequisites: CSE 221 or
consent of instructor.
CSE 223B. Distributed Computing and Systems (4)
Efficient primitives for distributed operating systems and high-performance
network servers, including concurrent and event-driven server architectures,
remote procedure calls, and load shedding. Distributed naming, directory,
and storage services, replication for fault tolerance, and security
in distributed systems. Prerequisites: CSE 221, CSE 222A, or
consent of instructor.
CSE 225. High Performance Distributed Computing (and Computational
Grids) (4) Architecture of high performance
distributed systems (e.g., frameworks and middleware). High performance
distributed objects (DCOM, Corba, Java Beans) and networking with
crosscut issues for performance, availability, and performance predictability.
Scalable servers, metacomputing, and scientific computing. Prerequisites:
CSE 121 and CSE 123A or consent of instructor.
CSE 226. Storage Systems (4) (Formerly
CSE 228B.) Secondary and tertiary storage systems, optical and magnetic
media, performance analysis, modeling, reliability, redundant arrays
of inexpensive disks, striping, log and maximum distance separable
data organizations, sparing. Prerequisite: CSE 221 or consent
of instructor.
CSE 227. Computer Security (4) Security
and threat models, risk analysis, authentication and authorization,
auditing, operating systems security, access control mechanisms,
protection mechanisms, distributed systems/network security, security
architecture, electronic commerce security mechanisms, security
evaluation. Prerequisite: CSE 221 or consent of instructor.
CSE 228. Multimedia Systems (4)
(Formerly 228F) Emerging multimedia technologies; multimedia storage
models and structures; video/ audio networking; intra-media continuity;
inter-media synchronization; admission control and support for real
time; distributed multimedia systems; structured interaction support
(collaboration and teamwork); multimedia encoding. Prerequisite:
consent of instructor.
CSE 228B. Storage Systems (4) Renumbered
to CSE 226 (see above).
CSE 228F. Multimedia Systems (4)
Renumbered to CSE 228 (see above).
CSE 228H. Internet Algorithmics (4)
Renumbered to CSE 222B (see above).
CSE 229A. Topics/Seminar in Computer Systems (1-4)
Discussion on problems of current research interest in computer
systems. Possible areas of focus include: distributed computing,
computational grid, operating systems, fault-tolerant computing,
storage systems, system services for the World Wide Web. Topics
to be presented by faculty and students under faculty direction.
Topics vary from quarter to quarter. May be repeated for credit.
Prerequisite: consent of instructor.
CSE 229B. Topics/Seminar in Networks and Communication (1-4)
Discussion on problems of current research interest in computer
networks and communication. Possible areas of focus include: wide-area
networking, wireless networks, the Internet, computational grid,
operating systems, fault-tolerant computing, storage systems. Topics
to be presented by faculty and students under faculty direction.
Topics vary from quarter to quarter. May be repeated for credit.
Prerequisite: consent of instructor.
CSE 229C. Topics/Seminar in Computer Security (1-4)
Discussion on problems of current research interest in computer
security. Topics to be presented by faculty and students under faculty
direction. Topics vary from quarter to quarter. May be repeated
for credit. Prerequisite: consent of instructor.
CSE 230. Principles of Programming Languages (4)
(Formerly CSE 273.) Functional versus imperative programming. Type
systems and polymorphism; the ML language. Higher order functions,
lazy evaluation. Abstract versus concrete syntax, structural and
well-founded induction. The lambda calculus, reduction strategies,
combinators. Denotational semantics, elementary domain theory. Prerequisite:
CSE 130 or equivalent, or consent of instructor.
CSE 231. Advanced Compiler Design (4)
(Formerly CSE 264C.) Advanced material in programming languages
and translator systems. Topics include compilers, code optimization,
and debugging interpreters. Prerequisites: CSE 100, 131A-B, or
consent of instructor.
CSE 232. Principles of Database Systems (4)
(Formerly CSE 264D.) Database models including relational, hierarchic,
and network approaches. Implementation of databases including query
languages and system architectures. Prerequisite: CSE 100 or
consent of instructor.
CSE 232B. Database System Implementation (4)
A hands-on approach to the principles of databases implementation.
Algebraic rewriters/optimizers, query processors, triggers. Beyond
centralized relational databases. Prerequisites: CSE 232.
CSE 233. Database Theory (4) Theory
of databases. Theory of query languages, dependency theory, deductive
databases, incomplete information, complex objects, object-oriented
databases, and more. Connections to logic and complexity theory
including finite model theory and descriptive complexity. Prerequisite:
CSE 200.
CSE 237A. Introduction to Embedded Computing (4)
Embedded system technologies including processors, DSP, memory,
and software. System interfacing basics, communication strategies,
sensors, and actuators. Mobile and wireless technology in embedded
systems. Using pre-designed hardware and software components. Design
case studies in wireless, multimedia, and/or networking domains.
Prerequisites: basic courses in digital hardware, algorithms
and data structures, elementary calculus, and probability; or consent
of instructor.
CSE 237B. Software for Embedded Systems (4)
Embedded computing elements, device interfaces, time-critical IO
handling. Embedded software design under size, performance, and
reliability constraints. Software timing and functional validation.
Program-ming methods and compilation for embeddable software. Embedded
runtime systems. Case studies of real-time software systems. Prerequisites:
CSE 237A; or basic courses in programming, algorithms and data structures,
elementary calculus, discrete math, computer architecture; or consent
of instructor.
CSE 237C. Validation and Testing of Embedded Systems (4)
Embedded system building blocks including IP cores. Co-simulation.
Formal verification using mdel checking. Verification environments.
Test challenges in core integration: compliance, feature, random,
and collision testing. Core access and test integration. Interface-based
verification and standards. Prerequisites: CSE 237A; or basic
courses in algorithms and data structures, elementary calculus,
discrete math, symbolic logic, computer architecture; or consent
of instructor.
CSE 237D. Design Automation and Prototyping for Embedded
Systems (4) System representation
and modeling. Abstract and language models. Simulation as a modeling
activity. Computational and hw/sw system prototypes. System analysis
using models. Constraint and interface modeling. Behavioral compilation
and synthesis. Prerequisites: CSE 237A; or basic courses in
digital logic design, algorithms and data structures, elementary
calculus, discrete math, symbolic logic, computer architecture;
or consent of instructor.
CSE 239A. Topics/Seminar in Databases (1-4) Discussion on
problems of current research interest in databases. Possible areas
of focus include: core database issues, data management
on the web, data integration, new database models and applications,
formal methods in databases. Topics to be presented by faculty
and students under faculty direction. Topics vary from quarter
to quarter. May be repeated for credit. Prerequisite: consent
of instructor. CSE 240. Principles in Computer Architecture I (4)
Renumbered to CSE 240A (see below).
CSE 240A. Principles of Computer Architecture (4)
(Formerly CSE 240.) This course will cover fundamental concepts
in computer architecture. Topics include instruction set architecture,
pipelining, pipeline hazards, bypassing, dynamic scheduling, branch
prediction, superscalar issue, memory-hierarchy design, advanced
cache architectures, and multiprocessor architecture issues. Prerequisite:
CSE 141 or consent of instructor.
CSE 241. Advanced Computer Architecture (4)
Renumbered to CSE 240B (see below).
CSE 240B. Advanced Computer Architecture (4)
(Formerly CSE 241.) This course covers advanced topics in computer
architecture, including multiprocessor architecture, interconnection
networks, cache coherence, cache consistency. It incorporates the
latest research and development on topics such as branch prediction,
instruction-level parallelism, multithreading, and cache hierarchy
design. Prerequisite: CSE 240A or consent of instructor.
CSE 241A/ECE 260B. VLSI Integration of Computing Circuitry
(4) VLSI integrated-circuit building blocks of computing systems,
and their implementation. Computer-aided design and performance
simulations,
design exercises and projects. Devices, standard cells and interconnects,
clocking, power/ground distribution, arithmetic modules, memories.
Methodologies and tradeoffs in system implementation. Prerequisites:
layout (CSE 165 or ECE 260A) and logic design (CSE 140 or ECE
111), or consent of instructor.
CSE 242A. Integrated Circuit Layout Automation (4)
Couplings among timing, circuits and spatial embedding in nanometer-scale
CMOS design. The role, and key problems, of physical layout in IC
implementation. Example topics: RTL-to-GDSII methodologies, analyses
and estimations, partitioning, floor planning, placement, routing,
special net routing, cell generation, compaction. Prerequisite:
CSE 241A or consent of instructor.
CSE 243A. Introduction to Synthesis Methodologies in VLSI CAD
(4) Hardware software co-design, architectural
level synthesis, control synthesis and optimization, scheduling,
binding, register and bus sharing, interconnect design, module selection,
combinational logic optimization, state minimization, state encoding,
and retiming. Prerequisite: CSE 241A or consent of instructor.
CSE 244A. VLSI Test (4) Design for
test, testing economics, defects, failures and faults, fault models,
fault simulation, automatic test pattern generation, functional
testing, memory, PLA, FPGA, microprocessor test, and fault diagnosis.
Prerequisite: CSE 241A or consent of instructor.
CSE 244B. Testable and Fault Tolerant Hardware Design (4)
Scan path design, BIST architectures, test point insertion, self-checking
circuits, test and fault tolerance in architectural synthesis, reconfigurable
fault tolerant hardware, and SOC test design. Prerequisite: CSE
244A or consent of instructor.
CSE 245. Computer Aided Circuit Simulation and Verification
(4) This course is about the computer
algorithms, techniques, and theory used in the simulation and verification
of electrical circuits. Prerequisite: CSE 241A or consent of
instructor.
CSE 246. Computer Arithmetic Algorithms and Hardware Design
(4) Number representation, fixed point
adders, subtracters, and multipliers; modified booths recoding,
high-radix multiplication, (non)restoring dividers, SRT division,
high-radix dividers, division by convergence, square-rooting, floating
point arithmetic, rounding schemes, errors and error control, and
floating point adders, subtracters, multipliers, dividers. Prerequisite:
CSE 241A or consent of instructor.
CSE 247. Application Specific and Reconfigurable Computer Architecture
(4) This course covers architecture
concepts used to tailor processors to a specific application or
sets of applications. It covers Field-Programmable Gate Arrays (FPGAs),
various forms of Application Specific Integrated Circuit (ASIC)
designs, Application Specific Integrated Processors (ASIP), and
augmenting customizable VHDL cores. Prerequisite: CSE 241A or
consent of instructor.
CSE 248. Algorithmic and Optimization Foundations for VLSI CAD
(4) Algorithmic techniques and optimization
frameworks for large-scale, difficult optimizations. Primal-dual
multicommodity flow approximations, approximations for geometric
and graph Steiner formulations, continuous placement optimization,
heuristics for Boolean satisfiability, multilevel methods, semidefinite
programming, and application to other formulations (e.g., scheduling).
Prerequisites: CSE 241A or CSE 242A or consent of instructor.
CSE 249A. Topics/Seminar in Computer Architecture (1-4)
Topics of special interest in computer architecture to be presented
by faculty and students under faculty direction. Topics vary from
quarter to quarter. May be repeated for credit. Prerequisite:
consent of instructor.
CSE 249B. Topics/Seminar in VLSI (1-4)
Topics of special interest in VLSI to be presented by faculty and
students under faculty direction. Topics vary from quarter to quarter.
May be repeated for credit. Prerequisite: consent of instructor.
CSE 249C. Topics/Seminar in CAD (1-4)
Topics of special interest in CAD to be presented by faculty and
students under faculty direction. Topics vary from quarter to quarter.
May be repeated for credit. Prerequisite: consent of instructor.
CSE 250A. Artificial Intelligence I (4)
(Formerly CSE 278A.) Issues in knowledge representation (using logic,
semantic networks, production systems, and connectionist representations)
will be the focus of this course. A discussion of logic programming
languages (like PROLOG) and automatic theorem proving will then
lead to a discussion of heuristic search. Prerequisite: CSE 151
or equivalent.
CSE 250B. Artificial Intelligence II (4)
(Formerly CSE 278B.) This course will discuss knowledge representations
used to search for solutions, make deductions, plan, and problem
solve. The application of these techniques to expert systems will
be mentioned. Machine learning will also be a major topic of this
course. Prerequisite: CSE 250A.
CSE 252A. Computer Vision I (4)
Comprehensive introduction to computer vision providing broad coverage
including low-level vision (image formation, photometry, color,
image feature detection), inferring 3-D properties from images (shape-from
shading, stereo vision, motion interpretation) and object recognition.
Companion to CSE 252B covering complementary topics. Prerequisites:
Math. 10D and Math. 20A-F or equivalent.
CSE 252B. Computer Vision II (4)
Comprehensive introduction to computer vision providing focused
coverage of multiview geometry, structure from motion, image segmentation,
motion segmentation, texture analysis and recognition, object detection,
and image-based rendering. Companion to CSE 252A covering complementary
topics. Prerequisites: Math. 10D and Math. 20A-F or equivalent.
CSE 252C. Selected Topics in Vision and Learning (4)
Selected topics in computer vision and statistical pattern recognition,
with an emphasis on recent developments. Possible topics include:
grouping and segmentation, object recognition and tracking, multiple
view geometry, kernel-based methods, dimensionality reduction, and
mixture models. Prerequisite: CSE 252 or equivalent and CSE 250B
or equivalent.
CSE 253. Neural Networks (4) This
course covers Hopfield networks, application to optimization problems,
layered perceptrons, recurrent networks, and unsupervised learning.
Programming exercises explore model behavior, with a final project
on a cognitive science, artificial intelligence, or optimization
problem of the students choice. Prerequisites: knowledge
of C and consent of instructor. (S/U grades permitted.)
CSE 254. Machine Learning (4) (Formerly
CSE 281T.) This course will discuss a wide range of techniques used
to allow computers to learn directly from experience with their
environment rather than requiring programming by humans. The survey
will span both high- and low-level learning techniques as well as
theoretical models that allow these various techniques to be compared.
(S/U grades permitted.) Prerequisite: 250B.
CSE 256. Statistical Natural Language Processing (4)
An introduction to modern statistical approaches to natural language
processing: part of speech tagging, work sense disambiguation and
parsing, using Markov models, hidden Markov models and probabilistic
context free grammars. Prerequisite: CSE 250B or equivalent experience.
CSE 257. Computational Biology (4)
Computational methods are indispensable to an understanding of
the vast datasets emerging from human and other organisms genomes.
This course surveys algorithms underlying genome analysis, sequence
alignment, phylogenetic trees, protein folding, gene expression,
metabolic pathways, and biological knowledge base design. Prerequisite:
Pharm. 201 or consent of instructor.
CSE 257B. Algorithms in Computational Biology (4)
Renumbered to CSE 206B (see above).
CSE 258A. Connectionists Natural Language Processing (4)
(Formerly CSE 281P.) This course will explore connectionist (or
parallel distributed processing) models and their relation to cognitive
processes. The course will cover various learning algorithms and
the application of the paradigm to models of language processing,
memory, sequential processes, and vision. (S/U grades permitted.)
Prerequisite: CSE 250B or equivalent experience.
CSE 259. Seminar in Artificial Intelligence (1)
A weekly meeting featuring local (and occasional external) speakers
discussing their current research in Artificial Intelligence Neural
Networks, and Genetic Algorithms. (S/U grades only.) Prerequisite:
none.
CSE 260. Parallel Computation (4)
(Formerly CSE 274A.) This course provides an overview of parallel
hardware, algorithms, models, and software. Topics include Flynns
taxonomy, interconnection networks, memory organization, a survey
of commercially available multiprocessors, parallel algorithm paradigms
and complexity criteria, parallel programming environments and tools
for parallel debugging, language specification, mapping, performance,
etc. Prerequisite: graduate standing or consent of instructor.
CSE 262. System Support for Applications of Parallel Computation
(4) This course will explore design
of software support for applications of parallel computation. Topics
include: programming languages, run time support, portability, and
load balancing. The course will terminate in a project. Prerequisite:
consent of instructor.
CSE 271. User Interface Design: Social and Technical Issues
(4) Web technologies (HTML, Java, JavaScript,
etc.) can quickly build superb new systems, as well as phenomenally
ugly systems that still fully meet their performance and functional
requirements. This course explores interface usability and representation
issues, with some focus on hypermedia and cooperative work. Prerequisites:
CSE 20, CSE 100, or equivalent.
CSE 272. Advanced Appearance Modeling (4)
Computer graphics algorithms for creating a given appearance. The
course will cover algorithms and physics necessary to simulate light
transport, light scattering, reflection models, subsurface scattering,
participating media, and procedural modeling and texturing. Prerequisites:
CSE 168 or equivalent, or consent of instructor.
CSE 275. Social Aspects of Technology and Science (4)
Note: CSE 275 is pending CEP approval. Explores approaches to the
sociology of technology and science, especially information technology.
Topics include requirements engineering, actor-network theory, post-modernism,
the Web, user interface design, and public policy. Prerequisites:
CSE 8B or CSE 11, and background in the humanities.
CSE 282/BENG
202. Bioinformatics II: Sequence and Structure Analysis—Methods
and Applications (4)
(Formerly CSE 257A/BENG 202.) Introduction to methods for sequence
analysis. Applications to genome and proteome sequences. Protein
structure, sequence-structure analysis. Prerequisite: Pharm.
201 or consent of instructor.
CSE
283/BENG 203. Bioinformatics III: Functional Genomics (4)
Annotating genomes, characterizing functional genes, profiling,
reconstructing pathways. Prerequisites: Pharm. 201, BENG
202/CSE 282 or consent of instructor.
CSE 290. Seminar in Computer Science and Engineering (1-4)
(Formerly CSE 280A.) A seminar course in which topics of special
interest in computer science and engineering will be presented by
staff members and graduate students under faculty direction. Topics
vary from quarter to quarter. May be repeated for credit. (S/U grades
only.) Prerequisite: consent of instructor. (Offered as faculty
resources permit.)
CSE 291. Topics in Computer Science and Engineering (1-8)
(Formerly CSE 281A). Topics of interest in computer science and
engineering. Topics may vary from quarter to quarter. May be repeated
for credit with the consent of instructor. (S/U grades permitted.)
Prerequisite: consent of instructor. (Offered as faculty
resources permit.)
CSE 292. Faculty Research Seminar (1)
(Formerly CSE 282.) Computer science and engineering faculty will
present one hour seminars of the current research work in their
areas of interest. Prerequisite: CSE graduate status.
CSE 293. Special Project in Computer Science and Engineering
(1-8) (Formerly CSE 269.) The student
will conceive, design, and execute a project in computer science
under the direction of a faculty member. The project will typically
include a large programming or hardware design task, but other types
of projects are possible. One-six units may be repeated to a total
of nine units. Prerequisite: CSE graduate student status. (S/U
grades only.)
CSE 294. Research Meeting in CSE (2)
Advanced study and analysis of active research in computer science
and computer engineering. Discussion of current research and literature
in the research specialty of the staff member teaching the course.
Prerequisite: consent of instructor.
CSE 298. Independent Study (1-16)
Open to properly qualified graduate students who wish to pursue
a problem through advanced study under the direction of a member
of the staff. (S/U grades only.) Prerequisite: consent of instructor.
CSE 299. Research (1-16) Research.
Prerequisite: consent of faculty.
CSE 500. Teaching Assistantship (2-4)
A course in which teaching assistants are aided in learning proper
teaching methods by means of supervision of their work by the faculty:
handling of discussions, preparation and grading of examinations
and other written exercises, and student relations. May be used
to meet teaching experience requirement for candidates for the Ph.D.
degree. Number of units for credit depends on number of hours devoted
to class or section assistance. Prerequisites: graduate standing
and consent of instructor.
CSE 501. Teaching Assistantship (2-4)
Renumbered to CSE 500 (see above).
CSE 599. Teaching Methods in Computer Science (2)
Training in teaching methods in the field of computer science. This
course examines theoretical and practical communication and teaching
techniques particularly appropriate to computer science. Prerequisite:
consent of faculty.
Computer Science and Engineering (CSE) Courses
|