UCSB 2009-2010 Catalog Course Search
Search by subject area and course number. Refer to this list of subject areas and their corresponding department.
Tip: A search for the subject area, for example, querying just "HIST" (without quotes), will return all courses of the queried subject area. Searching using subject area and number, such as "HIST 17" (without quotes), would return all courses in the series; in this example that would include HIST 17A, 17AH, 17B, etc.
| Search results: |
| CMPSC 1 - Seminar on the Field of Computer Science |
| (1) Franklin |
| Overviews the potential of, and opportunities available from, the field of
computer science. Topics include an overview of how computers work and the
interesting ways in which computers can be applied to solve important and
high-impact technological, social, and cutting-edge research problems. |
| CMPSC 5 - Introduction to Computer Programming |
| (4) STAFF |
| Introduction to programming and the organization of computers. Basic programming concepts, algorithms, data and control structures, debugging, program design, documentation, structured programming. Sections are 5PA-Pascal, 5JA-Java, 5C-C progamming. |
| CMPSC 8 - Introduction to Computer Science |
| (4) Conrad |
| Introduction to computer program development for students with little to no
programming experience. Basic programming concepts, variables and
expressions, data and control structures, algorithms, debugging, program
design, and documentation. |
| CMPSC 10 - Computer Programming |
| (4) Gonzalez, Su |
| Prerequisites: Mathematics 3A. |
| Students with no programming background are encouraged to take Computer Science 5JA before 10. |
| Introduction to programming and computers. Basic programming concepts: algorithms, data and control structures, debugging, program design, documentation, structured programming, object oriented programming. |
| CMPSC 11 - Programming Language Laboratory |
| (1) STAFF |
| Prerequisites: Knowledge of at least one programming language. (waiting for MCA - DG) |
| A self-paced course to allow a student who already possesses a working knowledge of at least one programming language an opportuity to learn otherlanguages of interest. Each section studies a different language. Sections are: 11PA-Pascal, 11FO-Fortran, 11AP-APL, 11LI-LISP (2 units), 11AD-ADA, 11JA-JAVA. |
| CMPSC 12 - Programming Methods in C |
| (4) Gonzalez |
| Prerequisites: Computer Science 5 or 10 or Engineering 3. |
| Introduction to the Unix system, C programming language and data structures. Topics include: introduction to the Unix system, C shell and shell scripts; UNIX file system and utilities; stacks, queues, lists, and trees. |
| CMPSC 16 - Problem Solving with Computers I |
| (4) Franklin |
| Prerequisites: Math 3A |
| Students with no experience with computer programming are encouraged to take Computer Science 5 or 8 before Computer Science 16. |
| Fundamental building blocks for solving problems using computers. Topics
include basic computer organization and programming constructs: memory
CPU, binary arithmetic, variables, expressions, statements, conditionals,
iteration, functions, parameters, recursion, primitive and composite data types,
and basic operating system and debugging tools. |
| CMPSC 20 - Programming Methods |
| (4) Singh |
| Prerequisites: Computer Science 10 and Mathematics 3B. |
| Programming techniques as follows: specification, representation, and
manipulation of basic data structures such as stacks, queues, lists, trees,sets,
arrays, etc. Searching and sorting techniques; induction and recursion; running
time analysis. Students write several medium-sized object-oriented programs. |
| CMPSC 24 - Problem Solving with Computers II |
| (4) Franklin |
| Prerequisites: Computer Science 16 or Engineering 3; and Mathematics 3B. |
| Course counts as legal repeat of Computer Science 12. |
| Intermediate building blocks for solving problems using computers. Topics
include data structures, object-oriented design and development, algorithms for
manipulating these data structures and their runtime analyses. Data structures
introduced include stacks, queues, lists, trees, and sets. |
| CMPSC 30 - Introduction to Computer Systems |
| (4) Konheim |
| Prerequisites: Engineering 3 or Computer Science 5AA-ZZ or 10; and, Mathematics 3C. |
| Basic computer organization, assembly language programming. Gates, combinatorial circuits, flip-flops and the design and analysis of sequential circuits. |
| CMPSC 32 - Object Oriented Design and Implementation |
| (4) Hollerer |
| Prerequisites: Computer Science 24 |
| Computer Science 32 is a legal repeat for Computer Science 60 |
| Advanced topics in object-oriented computing. Topics include encapsulation,
data hiding, inheritance, polymorphism, compilation, linking and loading,
memory management, and debugging; recent advances in design and
development tools, practices, libraries, and operating system support |
| CMPSC 40 - Foundations of Computer Science |
| (4) SU |
| Prerequisites: Computer Science 10 or 12 or 16 and Mathematics 3C. |
| Introduction to the theoretical underpinnings of computer science. Topics
include propositional predicate logic, set theory, functions and relations,
counting, mathematical induction and recursion (generating functions). |
| CMPSC 48 - Computer Science Project |
| (4) Cappello |
| Prerequisites: Computer Science 32 |
| Team-based project development. Topics include software engineering and
professional development practices, interface design, advanced library support;
techniques for team-oriented design and development, testing and test-driven
development, and software reliability and robustness. Students present and
demonstrate their final projects. |
| CMPSC 50 - Programming Project |
| (4) STAFF |
| Prerequisites: Computer Science 10 and 20. |
| Program design (modularization, designing for changeability, robustness, and testability), basic software engineering practices, principles of user interface design. Students design, implement, and test one or two extensiveobject-oriented programs. |
| CMPSC 56 - Advanced Applications Programming |
| (4) Staff |
| Prerequisites: Computer Science 24 |
| Students are encouraged to complete Computer Science 32 prior to enrolling in Computer Science 56. |
| Advanced application programming using a high-level, virtual-machine-based
language. Topics include generic programming, exception handling,
programming language implementation; automatic memory management, and
application development, management, and maintenance tools; event handling,
concurrency and threading, and advanced library use. |
| CMPSC 60 - Introduction to C, C++, and UNIX |
| (4) Su |
| Prerequisites: Computer Science 20. |
| Syntax and semantics of C and C++. Introduction to basic UNIX utilities and tools. Students complete several small projects that exercise their understanding of the material presented in class. |
| CMPSC 64 - Computer Organization and Logic Design |
| (4) Zheng |
| Prerequisites: Engineering 3 or Computer Science 8 or Computer Science 16; and Mathematics 3C. |
| Course counts as a legal repeat of CMPSC 30. |
| Assembly language programming and advanced computer organization; Digital
logic design topics including gates, combinational circuits, flip-flops, and the
design and analysis of sequential circuits. |
| CMPSC 95 - Undergraduate Seminar in Computer Science |
| (1-4) STAFF |
| Prerequisites: Open to pre-computer science and pre-computer engineering majors only; consent of instructor. |
| Seminars on introductory topics in computer science. These seminars provide an overview of the history, technology, applications, and impact in various areas of computer science, including:
A. Foundations
B. Software Systems
C. Programming languages and software engineering
D. Information management
E. Architecture
F. Networking
G. Security
H. Scientific computing
I. Intelligent and interactive systems
J. History
N. General
|
| CMPSC 109A - Introduction to Mathematical Logic |
| (4) STAFF |
| Prerequisites: Mathematics 8 or Computer Science 40. |
| An introduction to mathematical logic with applications in computer scienceand mathematics. Topics include propositional and predicate calculi; models; proof systems; decidability and undecidability; automated theorem-proving; unification; logic programming; and program verification. |
| CMPSC 109C - Introduction to Mathematical Logic |
| (4) STAFF |
| Prerequisites: Computer Science 109B. |
| An introduction to mathematical logic with applications in computer scienceand mathematics. topics include propositional and predicate calculi; models; proof systems; decidability and undecidability; automated theorem-proving; unification; logic programming; and program verification. |
| CMPSC 111 - Introduction to Computational Science |
| (4) Petzold |
| Prerequisites: Mathematics 5B; Computer Science 12 or 60. |
| Introduction to computational science, emphasizing basic numerical algorithms and the informed use of mathematical software. Matrix computation, systems of linear and nonlinear equations, interpolation and zero finding, differential equations, numerical integration. Students learn and use the Matlab language. |
| CMPSC 123 - Overview of Computer Systems: Hardware and Software |
| (4) El Abbadi |
| Prerequisites: Computer Science 20 and 60. |
| Basic computer architecture: CPU, memory, I/O. Basic operating systems
concepts: processes, synchronization, memory management, virtual memory,
file systems. |
| CMPSC 130A - Data Structures and Algorithms I |
| (4) Gonzalez |
| Prerequisites: Computer Science 20, 40 and 60; PSTAT 120A or ECE 139; open to computer science, computer engineering, and electrical engineering majors only. |
| The study of data structures and their applications. Correctness proofs and techniques for the design of correct programs. Internal and external searching. Hashing and height balanced trees. Analysis of sorting algorithms. Memory management. Graph traversal techniques and their applications. |
| CMPSC 130B - Data Structures and Algorithms II |
| (4) Gonzalez |
| Prerequisites: Computer Science 130A. |
| Design and analysis of computer algorithms. Correctness proofs and solution of
recurrance relations. Design techniques; divide and conquer, greedy strategies,
dynamic programming, branch and bound, backtracking, and local search.
Applications of techniques to problems from several disciplines. NP -
completeness. |
| CMPSC 138 - Automata and Formal Languages |
| (4) Egecioglu |
| Prerequisites: Computer Science 40; open to computer science and computer engineering majors only. |
| Formal languages; finite automata and regular expressions; properties of regular
languages; pushdown automata and context-free grammars; properties of
context-free languages; introduction to computability and unsolvability.
Introduction to Turing machines and computational complexity. |
| CMPSC 140 - Parallel Scientific Computing |
| (4) Yang |
| Prerequisites: Mathematics 5B; Computer Science 20; Computer Science 12 or 60. |
| Fundamentals of high performance computing and parallel algorithm design for numerical computation. Topics include parallel architectures and clusters, parallel programming with message-passing libraries and threads, program parallelization methodologies, parallel performance evaluation and optimization, parallel numerical algorithms and applications with different performance tradeoffs. |
| CMPSC 153A - Hardware/Software Interface |
| (4) STAFF |
| Prerequisites: Computer Science 130A with a minimum grade of C-. |
| Machine-level structures implementing the operating system abstraction; memory-mappers, multi-level interrupts, direct memory access techniques. Lowest-level software/firmware structure: micro-kernels, interpreters, emulators, threaded-code, real-time scheduling. Compilation and cross-compilation techniques; system initialization; validation and debugging; in-circuit testing. |
| CMPSC 154 - Computer Architecture |
| (4) Wood |
| Prerequisites: ECE 154A. |
| Introduction to the architecture of computer systems. Topics include: central processing units, memory systems, channels and controllers, peripheral devices, interrupt systems, software versus hardware tradeoffs. |
| CMPSC 160 - Translation of Programming Languages |
| (4) Sherwood |
| Prerequisites: Computer Science 30 or 123; Computer Science 130A; and Computer Science 136 or 138; open to computer science and computer engineering majors only. |
| Study of the structure of compilers. Topics include: lexical analysis; syntax analysis including LL and LR parsers; type checking; run-time environments; intermediate code generation; and compiler-construction tools. |
| CMPSC 162 - Programming Languages |
| (4) STAFF |
| Prerequisites: Computer Science 130A; open to computer science and computer engineering majors only. |
| Concepts of programming languages: scopes, parameter passing, storage management; control flow, exception handling; encapsulation and modularization mechanisms; reusability through genericity and inheritance; type systems; programming paradigms (imperative, object-oriented, functional, and others). Emerging programming languages and their development infrastructures. |
| CMPSC 165A - Artificial Intelligence |
| (4) Turk |
| Prerequisites: Computer Science 130A |
| Introduction to the field of artificial intelligence which attempts to understand
and build intelligent systems. Topics include AI programming languages, search,
knowledge representation and reasoning, planning, perception, and intelligent
agents. |
| CMPSC 165B - Machine Learning |
| (4) Smith |
| Prerequisites: Computer Science 130A. |
| Covers the most important techniques of machine learning (ML) and includes discussions of: well-posed learning problems; artificial neural networks; concept learning and general to specific ordering; decision tree learning; genetic algorithms; Bayesian learning; analytical learning; and others. |
| CMPSC 167 - Introduction to Bioinformatics |
| (4) Singh |
| Prerequisites: Computer Science 130B. |
| Review of the fundamentals of molecular biology and genetics; pairwise sequence alignment: dynamic programming, database searching; multiple sequence alignment; microarray data analysis; protein structure alignment; phylogeny construction: distance and character based methods; other current topics. |
| CMPSC 170 - Operating Systems |
| (4) Agrawal |
| Prerequisites: Computer Science 130A; and, Computer Science 154 or ECE 154 (may be taken concurrently); open to computer science, computer engineering or electrical engineering majors only. |
| Basic concepts of operating systems. The notion of a process; interprocess
communication and synchronization; input-output, file systems, memory
management. |
| CMPSC 171 - Distributed Systems |
| (4) El Abbadi |
| Prerequisites: Computer Science 170. |
| Distributed systems architecture, distributed programming, network of computers, message passing, remote procedure calls, group communication, naming and membership problems, asynchrony, logical time, consistency, fault-tolerance, and recovery. |
| CMPSC 172 - Software Engineering |
| (4) Kemmerer |
| Prerequisites: Computer Science 130A. Open to computer science majors only or by consent odepartment. |
| Computer Science 130B. |
| Software engineering is concerned with long-term, large-scale programming projects. Software management, cost estimates, problem specification and analysis, system design techniques, system testing and performance evaluation, and system maintenance. Students will design, manage, and implement a medium-sized project. |
| CMPSC 174A - Fundamentals of Database Systems |
| (4) Su |
| Prerequisites: Computer Science 130A. |
| Database system architectures, relational data model, relational algebra, relational calculus, SQL, QBE, query processing, integrity constraints (key constraints, referential integrity), database design, ER and object- oriented data model, functional dependence, lossless join and dependency preserving decompositions, Boyce-Codd and Third Normal Forms. |
| CMPSC 174B - Design and Implementation Techniques of Database Systems |
| (4) Su |
| Queries and processing, optimizer, cost models, execution plans, rewriting rules, access methods, spatial indexing; transactions, ACID properties, concurrency control, serializability, two-phase locking, timestamping, logging, checkpointing, transaction abort and commit, crash recovery; distributed databases. |
| CMPSC 176A - Introduction to Computer Communication Networks |
| (4) Konheim |
| Prerequisites: PSTAT 120A or ECE 139; open to computer science, electrical engineering, ancomputer engineering majors only. |
| PSTAT 120B. |
| Basic concepts in networking, the OSI model, error detection codes, flow control, routing, medium access control, and high-speed networks. |
| CMPSC 176B - Network Computing |
| (4) Almeroth |
| Prerequisites: Computer Science 176A. |
| Focus on networking technologies used in the internet. The OSI model is used as a guide for exploring and understanding how the internet works. Topics include snooping packets in the network, socket programming, and implementing application-layer protocols. |
| CMPSC 176C - Advanced Topics in Internet Computing |
| (4) Belding-Royer |
| Prerequisites: Computer Science 176B. |
| General overview of wireless and mobile networking, multimedia, security, multicast, quality of service, IPv6, and web caching. During the second half of the course, one or more of the above are studied in greater detail. |
| CMPSC 177 - Computer Security |
| (4) Kemmerer |
| Prerequisites: Computer Science 170 (may be taken concurrently). |
| Introduction to the basics of computer security and privacy. Analysis of technical difficulties of producing secure computer information systems that provide guaranteed controlled sharing. Examination and critique of current systems, methods, certification. |
| CMPSC 178 - Introduction to Cryptography |
| (4) STAFF |
| Prerequisites: Computer Science 10 and PSTAT 120A or 121A or equivalent courses. |
| An introduction to the basic concepts and techniques of cryptography and cryptanalysis. Topics include: The Shannon Theory, classical systems, the enigma machine, the data encryption standard, public key systems, digital signatures, file security. |
| CMPSC 180 - Computer Graphics |
| (4) STAFF |
| Prerequisites: Computer Science 130B or consent of instructor. |
| Overview of OpenGL graphics standard, OpenGL state
machine, other 3D graphics libraries, 3D graphics
pipeline, 3D transformations and clipping, color
model, shading model, shadow algorithms, texturing,
curves and curved surfaces, graphics hardware,
interaction devices and techniques |
| CMPSC 181B - Introduction to Computer Vision |
| (4) STAFF |
| Prerequisites: Upper-division standing. |
| Overview of computer vision problems and techniques for analyzing the content
of images and video. Topics include image formation, edge detection, image
segmentation, pattern recognition, texture analysis, optical flow, stereo vision,
shape representation and recovery techniques, issues in object recognition, and
case studies of practical vision systems. |
| CMPSC 182 - Multimedia Computing |
| (4) Almeroth |
| Prerequisites: Computer Science 176B. |
| Introduction to multimedia and applications. Topics include streaming media, conferencing, webcasting, digital libraries, multimedia system architectures, standards (including JPEG and MPEG), and multimedia storage and retrieval. A key emphasis is on using the internet for delivery of multimedia data. (First offered 2003-2004) |
| CMPSC 185 - Human-Computer Interaction |
| (4) Hollerer |
| Prerequisites: Open to computer science, computer engineering, and electrical engineering majors. |
| Proficiency in the Java/C++ programming language, some experience with user interface programming. |
| The study of human-computer interaction enables system architects to design useful, efficient, and enjoyable computer interfaces. This course teaches the theory, design guidelines, programming practices, and evaluation procedures behind effective human interaction with computers. |
| CMPSC 186 - Theory of Computation |
| (4) Ibarra |
| Prerequisites: Computer Science 138. Open to computer science majors only or consent of department. |
| Turing machines; computability and unsolvability; computational complexity; intractability and np-completeness. |
| CMPSC 189A - Senior Computer Systems Project |
| (4) Gonzalez |
| Prerequisites: Senior standing in computer engineering, computer science, or electrical engineering; consent of instructor. |
| Student groups design a significant computer-based project. Multiple groupsmay cooperate toward one large project. Each group works independently; interaction among groups is via interface specifications and informal meetings. Project for follow-up course may be different. |
| CMPSC 189B - Senior Computer Systems Project |
| (4) Gonzalez |
| Prerequisites: CMPSC 172 or CMPSC 189A; Senior standing in computer engineering, computer science, or electrical engineering; consent of instructor. |
| Student groups design a significant computer-based project. Multiple groups
may cooperate toward one large project. Each group works independently;
interaction among groups is via interface specifications and informal meetings.
Project for course may be different from that in first course. |
| CMPSC 190 - Special Topics in Computer Science |
| (4) STAFF |
| Prerequisites: Consent of instructor. |
| Provides for the study of topics of current interest in computer science: A. Foundations; B. Software Systems; C. Programming Languages and Software Engineering; D. Information Management; E. Architecture; F. Networking; G. Security; H. Scientific Computing; I. Intelligent and Interactive Systems; N. General. |
| CMPSC 192 - Projects in Computer Science |
| (4) STAFF |
| Prerequisites: Consent of instructor. |
| Projects in computer science for advanced undergraduate students. |
| CMPSC 193 - Internship in Industry |
| (1-4) STAFF |
| Prerequisites: Consent of instructor and department chair. |
| Special projects for selected students. Offered in conjunction with selected industrial and research firms and under direct faculty supervision. Written proposal and final report required. |
| CMPSC 196 - Undergraduate Research |
| (2-4) STAFF |
| Prerequisites: Students must: (1) have attained upper-division standing (2) have a minimum3.0 grade-point average for preceding three quarters, (3) have consent of instructor. |
| Research opportunities for undergraduate students. Students will be expected to giveregular oral presentations, actively participate in a weekly seminar, and prepare at least one written report on their research. |
| CMPSC 199 - Independent Studies in Computer Science |
| (1-4) STAFF |
| Prerequisites: Upper-division standing; students must have completed at least two upper-division courses in computer science. May be repeated with consent of chair. |
| Independent studies in computer science for advanced students. |
| CMPSC 209 - Logic and Applications in Computer Science |
| (4) Su |
| Propositional logic, first order logic, completeness, compactness, incompleteness, undecidability; selected topics from finite model theory, theorem proving, logic programming, program verification, databases, computational complexity. |
| CMPSC 211A - Matrix Analysis and Computation |
| (4) STAFF, |
| Prerequisites: Consent of instructor. |
| Graduate level-matrix theory with introduction to matrix computations. SVD's, pseudoinverses, variational characterization of eigenvalues, perturbation theory, direct and iterative methods for matrix computations. |
| CMPSC 211B - Numerical Simulation |
| (4) STAFF, |
| Prerequisites: Consent of instructor. |
| Linear multistep methods and Runge-Kutta methods for ordinary differential equations: stability, order and convergence. Stiffness. Differential algebraic equations. Numerical solution of boundary value problems. |
| CMPSC 211C - Numerical Solution of Partial Differential Equations--Finite Difference Methods |
| (4) STAFF, |
| Prerequisites: Consent of instructor. |
| Finite difference methods for hyperbolic, parabolic and elliptic PDE's, with application to problems in science and engineering. Convergence, consistency, order and stability offinite difference methods. Dissipation and dispersion. Finite volume methods. Software design and and adaptivity. |
| CMPSC 211D - Numerical Solution of Partial Differential Equations--Finite Element Methods |
| (4) STAFF, |
| Prerequisites: Consent of instructor. |
| Weighted residual and finite element methods for the solution of hyperbolic, parabolic and elliptical partial differential equations, with application to problems in science and engineering. Error Estimates. Standard and discontinuous Galerkin methods. |
| CMPSC 216 - Level Set Methods |
| (4) Gibou |
| Prerequisites: Computer Science 211C, or Chemical Engineering 211C, or ECE 210C, or ME 210C. |
| Mathematical description of the level set method and design of the numerical methods used in its implementations (ENO-WENO, Godunov, Lax-Friedrich, etc.). Introduction to the Ghost Fluid Method. Applications in CFD, Materials Sciences, Computer Vision and Computer Graphics. |
| CMPSC 220 - Theory of Computation and Complexity |
| (4) Ibarra |
| Prerequisites: Computer Science 186. |
| Topics include: models of computation; time and space complexity classes (e.g., P, NP, CO-NP, and Pspace), efficient reducibilities, complete problems lower bounds; the polynomial hierarchy. |
| CMPSC 225 - Information Theory |
| (4) Van Dam |
| Prerequisites: ECE 140 or equivalent, or PSTAT 120A-B. |
| Entropy, mutual information, and Shannon's coding theorems; lossless source coding, Huffman, Shannon-Fano-Elias, and arithmetic codes; Channel capacity; rate-distortion theory, and lossy source coding; source-channel coding; algorithmic complexity and information; applications of information theory in various fields. |
| CMPSC 230 - Approximations, NP-Completeness and Algorithms |
| (4) Gonzalez |
| Prerequisites: Computer Science 130A-B. |
| Epsilon approximations, PTAS and FPTAS. Techniques for the design of approximation algrorithms. P, NP, NP-complete problems, polynomial transformations, Turing reductions, strong NP-completeness, NP-hardness and inapproximability results. Topics in algorithms include: amortized analysis, advanced graph algorithms and data structures. |
| CMPSC 231 - Topics in Combinatorial Algorithms |
| (4) Suri |
| Prerequisites: Computer Science 130B. |
| Advanced topics in algorithm design, including network flows, matchings in graphs, linear and integer programming. |
| CMPSC 234 - Randomized Algorithms |
| (4) Egecioglu |
| Prerequisites: Computer Science 186. |
| Randomized algorithms and applications: Las Vegas and Monte Carlo type algorithms, randomized algorithms for graph problems, matchings, data structures, problems from computational geometry, number theory and primality testing, distributed algorithms, hashing and fingerprinting, random generation, Markov chains, and rapid mixing. |
| CMPSC 235 - Computational Geometry |
| (4) STAFF |
| Prerequisites: Computer Science 130A-B. |
| Algorithms and lower bound techniques in computational geometry; decision tree models of computation; geometric searching; point location and range search; convex hull and maxima of a point set; proximity algorithms; geometric intersections. |
| CMPSC 240A - Applied Parallel Computing |
| (4) STAFF |
| Prerequisites: Computer Science 154 and 160. |
| Interdisciplinary introduction to applied parallel computing on modern supercomputers. Topics include applications-oriented architectural issues, MPI, parallel MATLAB, and parallel numerical algorithms. A course project emphasizes understanding the realities and myths of what is possible on the world's fastest machines. |
| CMPSC 240B - Parallel Computing and Program Parallelization |
| (4) STAFF |
| Prerequisites: Computer Science 130A and 160, or consent of instructor. |
| Parallel programming; representation of parallelism, program dependence analysis, loop transformation; program and data partitioning; locality optimization; task scheduling and load balancing; parallelizing compilers and run-time support. |
| CMPSC 254 - Advanced Computer Architecture |
| (4) Sherwood |
| Prerequisites: CMPSC 154 or ECE 154. |
| Advanced instruction set architectures, pipelining, dynamic scheduling, branch prediction, superscalar issue, out-of-order execution, memory-hierarchy design, advanced cache architectures and prefetching. Several real designs are dissected and simulators are developed for performing quantitative evaluations of design decisions. |
| CMPSC 260 - Advanced Topics in Translation |
| (4) STAFF |
| Prerequisites: Computer Science 160 and 162. |
| Theoretical aspects of translation. Topics include: data flow analysis; control flow analysis; interprocedural analysis; optimization; type systems. |
| CMPSC 263 - Modern Programming Languages and Their Implementation |
| (4) STAFF |
| Prerequisites: Computer Science 154, 160, and 162. |
| Conmputer Science 260. |
| Topics central to modern programming languages and their implementation: garbage collection; memory system performance; characteristics and optimization of object-oriented languages; type systems and type inference; run-time compilation. |
| CMPSC 265 - Advanced Topics in Machine Intelligence |
| (4) STAFF |
| Prerequisites: Computer Science 165A. |
| Topics covered include advanced programming techniques for representing and reasoning about complex objects and various applications of such techniques, including expert systems, natural language processors, image understanding systems and machine learning. |
| CMPSC 266 - Formal Specification and Verification |
| (4) STAFF |
| Prerequisites: Computer Science 130A-B; Computer Science 186. |
| Computer Science 262. |
| Introduction to existing specification and verification systems, and the underlying theory and techniques of verifying the correctness of algorithms with respect to specifications. This subject can be considered as the combination of specification and verification techniques, programming language semantics and formal logic. |
| CMPSC 267 - Automated Verification |
| (4) Bultan |
| Prerequisites: Computer Science 130A-B and 138. |
| Covers automated verification algorithms and tools. Topics include: temporal logics, fixpoint characterizations of temporal properties, model checking, symbolic verification, explicit-state verification, verification using automated theorem provers, automated abstraction. |
| CMPSC 270 - Operating Systems |
| (4) Wolski |
| Prerequisites: Computer Science 170 |
| Develops an understanding of operating systems and operating systems research at both a conceptual level and from an engineering perspective. Fundamental design principles, culled primarily from the research literature, motivate an analysis of previous and current systems.
This analysis is further validated through empirical investigation. |
| CMPSC 271 - Advanced Topics in Distributed Systems |
| (4) Abbadi |
| Prerequisites: cmpsc 170. |
| Covers the fundamental problems in distributed systems and the various tools used to solve them. Of primary interest is the issue of fault-tolerance. Topics include event ordering, clocks, global states, agreement, fault-tolerance, and peer-to-peer systems. |
| CMPSC 272 - Software Engineering |
| (4) STAFF |
| Prerequisites: Computer Science 172. |
| Principles of software engineering disciplines emphasizing requirements analysis, specification design, coding, testing and correctness proofs, maintenance, and management. Students use a number of software engineering tools. |
| CMPSC 273 - Data and Knowledge Bases |
| (4) STAFF |
| The focus is on the study of relational and post-relational data models and their
query languages of different styles (algebraic, calculus, and deductive):
complexity, expressive power, optimization, and database design. |
| CMPSC 274 - Advanced Topics in Database Systems |
| (4) Agrawal, El Abbadi |
| Prerequisites: Computer Science 170. |
| Topics include: data models, semantics, data integrity, database design, serializability theory, concurrency control, recovery, distributed databases. |
| CMPSC 276 - Advanced Topics in Networking |
| (4) Belding |
| Prerequisites: Computer Science 176A or 176B. |
| Focuses on advanced topics in networking. Topics may include, but are not limited to: Internet analysis, routing techniques, multimedia, approaches for network performance enhancements, and communication over new technologies. |
| CMPSC 278 - Discrete Event Simulation |
| (4) STAFF |
| Prerequisites: Probability and Statistics 120A or 121A, Computer Science 130A. |
| Discrete-event simulation for performance evaluation of complex systems. Design of simulation models, random numbers, simulation of discrete and continuous random variates and random processes, statistical analysis of output data, variance reduction techinques. |
| CMPSC 279 - Advanced Topics in Security |
| (4) Vigna |
| Prerequisites: Computer Science 177. |
| Security analysis of networked systems. Analysis of techniques for network scanning, spoofing, hijacking, and denial-of-service attacks. Vulnerability analysis of applications and web-based systems. Intrusion detection and prevention techniques. |
| CMPSC 280 - Computer Graphics |
| (4) STAFF |
| Prerequisites: Computer Science 180. |
| Special topics in computer graphics including: curves and curved surfaces; visual perception of colors and color models; shading models; shadow generation; texture mapping; solid textures; stereographics; helmet-mounteddisplay; graphics hardware/architecture; solid modeling; physically based modeling; fractals and graphtals; volume rendering; scientific visualization. |
| CMPSC 281B - Advanced Topics in Computer Vision |
| (4) STAFF |
| Advanced topics in computer vision: image sequence analysis, spatio-temporal filtering, camera calibration and hand-eye coordination, robot navigation, shape representation, physically-based modeling, regularization theory, multi-sensory fusion, biological models, expert vision systems, and other topics selected from recent research papers. |
| CMPSC 284 - Mobile Computing |
| (4) Belding-Royer |
| Prerequisites: Computer Science 176A or 176B. |
| Computer Science 276. |
| Focuses on mobile computing. Topics may include, but are not limited to: mobile network characteristics, types of mobile networks, challenges and sollutions in mobile computing, and power conservation techniques. |
| CMPSC 290 - Special Topics in Computer Science |
| (4) STAFF |
| Prerequisites: Consent of instructor. |
| These courses provide for the study of topics of current interest in computer science. Topics are coded as follows: A. Foundations; B. Software Systems; C. Programming Languages and Software Engineering; D. Information Management; E. Architecture; F. Networking; G. Security; H. Scientific Computing; I. Intelligent and Interactive Systems; N. General |
| CMPSC 501 - Techniques of Computer Science Teaching |
| (1) STAFF |
| An initial 1-2 day workshop on teaching techniques followed by a weekly seminar. Course emphasizes teaching skills, practical experience, and communication skills. |
| CMPSC 502 - Teaching of Computer Science |
| (1-4) STAFF |
| Prerequisites: Computer Science 501. |
| Procedures and techniques for teaching computer science gained through actual teaching of lecture courses, leading discussion sections, and/or teaching laboratories. Meetings will be held as needed to discuss problems,methods, and procedures. |
| CMPSC 592 - Group Studies: Controls, Dynamical Systems, and Computation |
| (1) staff |
| A series of weekly lectures given by university staff and outside experts in the fields of control systems, dynamical systems, and computation. |
| CMPSC 593 - Computer Science Graduate Tutorial |
| (1-12) STAFF |
| Prerequisites: Consent of instructor or department chair. |
| Individual studies exploring topics in computer science with a faculty advisor. |
| CMPSC 594 - Seminar in Computer Science |
| (1-5) STAFF |
| Prerequisites: Consent of instructor and advisor. |
| A seminar course offered on an irregular basis. Provides an in-depth discussion of advanced topics of general interest and broadens the scope ofknowledge in computer science. |
| CMPSC 595 - Group Studies in Computer Science |
| (1-2) STAFF |
| Prerequisites: Consent of instructor. |
| Special seminars focusing on topics of interest to faculty and graduate students. These seminars provide critical review of research in various areas of computer science: A. Foundations; B. Software Systems; C. Programming Languages and Software Engineering; D. Information Management; E. Architecture; F. Networking; G. Security; H. Scientific Computing; I. Intelligent and Interactive Systems; N. General |
| CMPSC 596 - Directed Research |
| (2-12) STAFF |
| Research, either experimental or theoretical, may be undertaken by properlyqualified graduate students under the direction of a faculty member. |
| CMPSC 597 - Individual Studies for Master of Science Comprehensive Examinations and Ph.D Examinations |
| (1-12) STAFF |
| Individual studies for M.S. comprehensive examination and Ph.D. |
| CMPSC 598 - Master's Thesis Research and Preparation |
| (1-12) STAFF |
| Prerequisites: Consent of graduate advisor. |
| For research underlying the thesis and writing of the thesis. |
| CMPSC 599 - Ph.D. Dissertation Research and Preparation |
| (1-12) STAFF |
| Prerequisites: Consent of chair of student's doctoral committee. |
| Research and preparation of dissertation. |