# Computer Science (COMPSCI)

### Courses

**COMPSCI 111. Digital Image Processing. 4 Units. **

Introduction to the fundamental concepts of digital signal and image processing as applicable in areas such as multimedia, graphics, AI, data mining, databases, vision, or video games. Topics include image representation, space- and frequency-domain transformations, filters, segmentation, and compression.

Prerequisite: (I&C SCI 46 or CSE 46) and I&C SCI 6D and (MATH 6G or MATH 3A or I&C SCI 6N). I&C SCI 46 with a grade of C or better. CSE 46 with a grade of C or better. I&C SCI 6D with a grade of C or better. MATH 6G with a grade of C or better. MATH 3A with a grade of C or better. I&C SCI 6N with a grade of C or better

Restriction: School of Info & Computer Sci students have first consideration for enrollment.

**COMPSCI 112. Computer Graphics. 4 Units. **

Introduction to the fundamental principles of 3D computer graphics including polygonal modeling, geometric transformations, visibility algorithms, illumination models, texturing, and rasterization. Use of an independently-learned 3D graphics API to implement these techniques.

Prerequisite: (I&C SCI 22 or CSE 22 or I&C SCI H22 or I&C SCI 33 or CSE 43) and (I&C SCI 45C or CSE 45C) and (MATH 6G or MATH 3A or I&C SCI 6N). I&C SCI 22 with a grade of C or better. CSE 22 with a grade of C or better. I&C SCI H22 with a grade of C or better. I&C SCI 33 with a grade of C or better. CSE 43 with a grade of C or better. I&C SCI 45C with a grade of C or better. CSE 45C with a grade of C or better. MATH 6G with a grade of C or better. MATH 3A with a grade of C or better. I&C SCI 6N with a grade of C or better

**COMPSCI 113. Computer Game Development. 4 Units. **

Introduction to the principles of interactive 2D and 3D computer game development. Concepts in computer graphics, algorithms, software engineering, art and graphics, music and sound, story analysis, and artificial intelligence are presented and are the basis for student work.

Prerequisite: COMPSCI 112 or COMPSCI 171 or IN4MATX 121 or ART 106B or I&C SCI 163 or I&C SCI 166

Same as IN4MATX 125.

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment.

**COMPSCI 114. Projects in Advanced 3D Computer Graphics. 4 Units. **

Projects in advanced 3D graphics such as illumination, geometric modeling, visualization, and animation. Topics include physically based and global illumination, solid modeling, curved surfaces, multiresolution modeling, image-based rendering, basic concepts of animation, and scientific visualization.

Prerequisite: COMPSCI 112 and (I&C SCI 45C or CSE 45C). I&C SCI 45C with a grade of C or better. CSE 45C with a grade of C or better. Recommended: COMPSCI 161 or CSE 161 or COMPSCI 164 or COMPSCI 165.

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment.

**COMPSCI 115. Computer Simulation. 4 Units. **

Discrete event-driven simulation; continuous system simulation; basic probability as pertaining to input distributions and output analysis; stochastic and deterministic simulation; static and dynamic system simulation.

Prerequisite: I&C SCI 6B and I&C SCI 6N and (STATS 67 or (STATS 7 and STATS 120A)) and I&C SCI 51 and IN4MATX 43. I&C SCI 6B with a grade of C or better. I&C SCI 6N with a grade of C or better. STATS 67 with a grade of C or better. STATS 7 with a grade of C or better. STATS 120A with a grade of C or better. I&C SCI 51 with a grade of C or better. IN4MATX 43 with a grade of C or better

Restriction: Upper-division students only. School of Info & Computer Sci students have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment.

**COMPSCI 116. Computational Photography and Vision. 4 Units. **

Introduces the problems of computer vision through the application of computational photography. Specific topics include photo-editing (image warping, compositing, hole filling), panoramic image stitching, and face detection for digital photographs.

Prerequisite: I&C SCI 6D and (MATH 6G or MATH 3A or I&C SCI 6N) and MATH 2B and (I&C SCI 46 or CSE 46). I&C SCI 6D with a grade of C or better. MATH 6G with a grade of C or better. MATH 3A with a grade of C or better. I&C SCI 6N with a grade of C or better. MATH 2B with a grade of C or better. I&C SCI 46 with a grade of C or better. CSE 46 with a grade of C or better

Restriction: School of Info & Computer Sci students have first consideration for enrollment.

**COMPSCI 117. Project in Computer Vision. 4 Units. **

Students undertake construction of a computer vision system. Topics include automatically building 3D models from photographs, searching photo collections, robot navigation, and human motion tracking.

Prerequisite: I&C SCI 6D and (MATH 3A or I&C SCI 6N) and MATH 2B and (I&C SCI 46 or CSE 46) and (COMPSCI 112 or COMPSCI 116 or COMPSCI 171 or COMPSCI 178). I&C SCI 6D with a grade of C or better. MATH 3A with a grade of C or better. I&C SCI 6N with a grade of C or better. MATH 2B with a grade of C or better. I&C SCI 46 with a grade of C or better. CSE 46 with a grade of C or better

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment.

**COMPSCI 121. Information Retrieval. 4 Units. **

An introduction to information retrieval including indexing, retrieval, classifying, and clustering text and multimedia documents.

Prerequisite: (I&C SCI 45C or I&C SCI 45J) and (STATS 7 or STATS 67). I&C SCI 45C with a grade of C or better. I&C SCI 45J with a grade of C or better

Same as IN4MATX 141.

Restriction: School of Info & Computer Sci students have first consideration for enrollment.

**COMPSCI 122A. Introduction to Data Management. 4 Units. **

Introduction to the design of databases and the use of database management systems (DBMS) for applications. Topics include entity-relationship modeling for design, relational data model, relational algebra, relational design theory, and Structured Query Language (SQL) programming.

Prerequisite: I&C SCI 33 or CSE 43 or EECS 114. I&C SCI 33 with a grade of C or better. CSE 43 with a grade of C or better

Same as EECS 116.

Restriction: Computer Science Engineering Majors have first consideration for enrollment. School of Info & Computer Sci students have first consideration for enrollment.

**COMPSCI 122B. Project in Databases and Web Applications. 4 Units. **

Introduces students to advanced database technologies and Web applications. Topics include database connectivity (ODBC/JDBC), extending databases using stored procedures, database administration, Web servers, Web programming languages (Java servlets, XML, Ajax, and mobile platforms).

Prerequisite: (COMPSCI 122A or EECS 116) and I&C SCI 45J

Overlaps with COMPSCI 137, IN4MATX 124.

**COMPSCI 122C. Principles of Data Management. 4 Units. **

Covers fundamental principles underlying data management systems. Content includes key techniques including storage management, buffer management, record-oriented file system, access methods, query optimization, and query processing.

Prerequisite: COMPSCI 122A and (I&C SCI 53 or COMPSCI 143A)

Concurrent with COMPSCI 222.

**COMPSCI 125. Next Generation Search Systems. 4 Units. **

Discusses concepts and techniques related to all aspects of search systems. After considering basic search technology and the state-of-art systems, rapidly developing techniques for multimedia search, local search, event-search, and video-on-demand are explored.

Prerequisite: I&C SCI 21 or CSE 21 or IN4MATX 41 or I&C SCI 31

Restriction: Upper-division students only.

Concurrent with COMPSCI 225.

**COMPSCI 131. Parallel and Distributed Computing. 4 Units. **

Parallel and distributed computer systems. Parallel programming models. Common parallel and distributed programming issues. Specific topics include parallel programming, performance models, coordination and synchronization, consistency and replication, transactions, fault tolerance.

Prerequisite: (I&C SCI 53 and I&C SCI 53L) or COMPSCI 143A

**COMPSCI 132. Computer Networks. 4 Units. **

Computer network architectures, protocols, and applications. Internet congestion control, addressing, and routing. Local area networks. Multimedia networking.

Prerequisite: EECS 55 or STATS 67

Same as EECS 148.

Restriction: Computer Engineering Majors have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment.

**COMPSCI 133. Advanced Computer Networks. 4 Units. **

Fundamental principles in computer networks are applied to obtain practical experience and skills necessary for designing and implementing computer networks, protocols, and network applications. Various network design techniques, simulation techniques, and UNIX network programming are covered.

Prerequisite: COMPSCI 132

**COMPSCI 134. Computer and Network Security. 4 Units. **

Overview of modern computer and networks security, attacks, and countermeasures. Authentication, identification, data secrecy, data integrity, authorization, access control, computer viruses, network security. Also covers secure e-commerce and applications of public key methods, digital certificates, and credentials.

Prerequisite: I&C SCI 6D and (I&C SCI 33 or CSE 43) and (COMPSCI 122A or EECS 116 or COMPSCI 132 or COMPSCI 143A)

Restriction: School of Info & Computer Sci students have first consideration for enrollment.

**COMPSCI 137. Internet Applications Engineering. 4 Units. **

Concepts in Internet applications engineering with emphasis on the Web. Peer-to-Peer and Interoperability. Topics include HTTP and REST, Remote Procedure/Method Calls, Web Services, data representations, content distribution networks, identity management, relevant W3C/IETF standards, and relevant new large-scale computing styles.

Prerequisite: (COMPSCI 132 or EECS 148) and I&C SCI 45J

Same as IN4MATX 124.

Overlaps with COMPSCI 122B.

Restriction: Upper-division students only. School of Info & Computer Sci students have first consideration for enrollment. Computer Science Engineering Majors have first consideration for enrollment.

**COMPSCI 141. Concepts in Programming Languages I. 4 Units. **

In-depth study of several contemporary programming languages stressing variety in data structures, operations, notation, and control. Examination of different programming paradigms, such as logic programming, functional programming and object-oriented programming; implementation strategies, programming environments, and programming style.

Prerequisite: (I&C SCI 51 or CSE 31 or EECS 31) and (I&C SCI 46 or CSE 46). I&C SCI 51 with a grade of C or better. CSE 31 with a grade of C or better. EECS 31 with a grade of C or better. I&C SCI 46 with a grade of C or better. CSE 46 with a grade of C or better

Same as IN4MATX 101.

**COMPSCI 142A. Compilers and Interpreters. 4 Units. **

Introduction to the theory of programming language processors covering lexical analysis, syntax analysis, semantic analysis, intermediate representations, code generation, optimization, interpretation, and run-time support.

Prerequisite: CSE 141 or COMPSCI 141 or IN4MATX 101

**COMPSCI 142B. Language Processor Construction. 4 Units. **

Project course which provides working laboratory experience with construction and behavior of compilers and interpreters. Students build actual language processors and perform experiments which reveal their behaviors.

Prerequisite: COMPSCI 142A or CSE 142

**COMPSCI 143A. Principles of Operating Systems. 4 Units. **

Principles and concepts of process and resource management, especially as seen in operating systems. Processes, memory management, protection, scheduling, file systems, and I/O systems are covered. Concepts illustrated in the context of several well-known systems.

Prerequisite: (I&C SCI 46 or CSE 46) and (I&C SCI 51 or EECS 31 or CSE 31)

Overlaps with EECS 111.

**COMPSCI 143B. Project in Operating System Organization. 4 Units. **

Detailed specification and design of critical components of an actual operating system including a memory manager, a process server, and a file/IO subsystem. Hardware/software tradeoffs. Emphasis on logical organization of system and communication.

Prerequisite: COMPSCI 143A

**COMPSCI 145. Embedded Software. 4 Units. **

Principles of embedded computing systems: embedded systems architecture, hardware/software components, system software and interfacing, real-time operating systems, hardware/software co-development, and communication issues. Examples of embedded computing in real-world application domains. Simple programming using an embedded systems development environment.

Corequisite: COMPSCI 145L

Prerequisite: (CSE 46 or I&C SCI 46) and (I&C SCI 51 or CSE 132 or EECS 112)

**COMPSCI 145L. Embedded Software Laboratory. 2 Units. **

Laboratory section to accompany COMPSCI 145.

Corequisite: COMPSCI 145

**COMPSCI 146. Programming in Multitasking Operating Systems. 4 Units. **

User- and systems-level programming of modern Internet-connected, multi-user, multitasking operating systems. Shells, scripting, filters, pipelines, programmability, extensibility, concurrency, inter-process communication. Concrete examples of a modern operating system (such as, but not necessarily, Unix programmed in C) are used.

Prerequisite: (I&C SCI 46 or CSE 46) and I&C SCI 51. I&C SCI 46 with a grade of C or better. CSE 46 with a grade of C or better. I&C SCI 51 with a grade of C or better. Recommended: COMPSCI 143A.

**COMPSCI 151. Digital Logic Design. 4 Units. **

Boolean algebra. Design/analysis of combinational and sequential systems using SSI/MSI/LSI modules. Number systems. Error detecting and correction codes. Arithmetic algorithms. Hardware/ firmware implementation of algorithms.

Prerequisite: (I&C SCI 33 or CSE 43) and I&C SCI 51 and I&C SCI 6B and I&C SCI 6D. I&C SCI 33 with a grade of C or better. CSE 43 with a grade of C or better. I&C SCI 51 with a grade of C or better

**COMPSCI 152. Computer Systems Architecture. 4 Units. **

Design of computer elements; ALU, control unit, and arithmetic circuits. Memory hierarchy and organization. Caches. Function unit sharing and pipelining. I/O and interrupt processing. RTL and behavioral modeling using hardware description languages. Microprocessor organization and implementation techniques.

Prerequisite: COMPSCI 151

Overlaps with I&C SCI 160, EECS 112.

**COMPSCI 153. Logic Design Laboratory. 4 Units. **

Introduction to standard integrated circuits. Construction and debugging techniques. Design of digital systems using LSI and MSI components. Practical use of circuits in a laboratory environment, including implementation of small digital systems such as arithmetic modules, displays, and timers.

Prerequisite: COMPSCI 151

**COMPSCI 154. Computer Design Laboratory. 4 Units. **

Underlying primitives of computer instruction sets. Principles of microprogramming. Microprogramming. Microprograms written for one or more systems. Typical microprogramming applications discussed and implemented or simulated.

Prerequisite or corequisite: COMPSCI 151

**COMPSCI 161. Design and Analysis of Algorithms. 4 Units. **

Techniques for efficient algorithm design, including divide-and-conquer and dynamic programming, and time/space analysis. Fast algorithms for problems applicable to networks, computer games, and scientific computing, such as sorting, shortest paths, minimum spanning trees, network flow, and pattern matching.

Prerequisite: (I&C SCI 46 or CSE 46) and I&C SCI 6B and I&C SCI 6D and MATH 2B. I&C SCI 46 with a grade of C or better. CSE 46 with a grade of C or better

**COMPSCI 162. Formal Languages and Automata. 4 Units. **

Formal aspects of describing and recognizing languages by grammars and automata. Parsing regular and context-free languages. Ambiguity, nondeterminism. Elements of computability; Turning machines, random access machines, undecidable problems, NP-completeness.

Prerequisite: (I&C SCI 46 or CSE 46) and MATH 2A and MATH 2B and I&C SCI 6B and I&C SCI 6D. I&C SCI 46 with a grade of C or better. CSE 46 with a grade of C or better

Same as LINGUIS 102.

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Cognitive Sciences Majors have first consideration for enrollment. Language Science Majors have first consideration for enrollment.

**COMPSCI 163. Graph Algorithms. 4 Units. **

Algorithms for solving fundamental problems in graph theory. Graph representations, graph traversal, network flow, connectivity, graph layout, matching problems.

Prerequisite: COMPSCI 161 or CSE 161

Concurrent with COMPSCI 265.

**COMPSCI 164. Computational Geometry and Geometric Modeling. 4 Units. **

Algorithms and data structures for computational geometry and geometric modeling, with applications to game and graphics programming. Topics: convex hulls, Voronoi diagrams, algorithms for triangulation, motion planning, and data structures for geometric searching and modeling of 2D and 3D objects.

Prerequisite: I&C SCI 46 or CSE 46. I&C SCI 46 with a grade of C or better. CSE 46 with a grade of C or better

Restriction: School of Info & Computer Sci students have first consideration for enrollment.

**COMPSCI 165. Project In Algorithms And Data Structures. 4 Units. **

Design, implementation, execution, and analysis of algorithms for problems such as sorting, searching, data compression, and data encryption. Time-space-structure trade-offs.

Prerequisite: COMPSCI 161 or CSE 161. Recommended: I&C SCI 45C OR CSE 45C.

**COMPSCI 167. Introduction to Applied Cryptography. 4 Units. **

An introduction to the essential aspects of applied cryptography, as it is used in practice. Topics include classical cryptography, block ciphers, stream ciphers, public-key cryptography, digital signatures, one-way hash functions, basic cryptographic protocols, and digital certificates and credentials.

Prerequisite: COMPSCI 161 or CSE 161

Restriction: Upper-division students only.

**COMPSCI 169. Introduction to Optimization. 4 Units. **

A broad introduction to optimization. Unconstrained and constrained optimization. Equality and inequality constraints. Linear and integer programming. Stochastic dynamic programming.

Prerequisite: (I&C SCI 6N or MATH 3A) and (STATS 67 or (STATS 7 and STATS 120A))

Concurrent with COMPSCI 268.

**COMPSCI 171. Introduction to Artificial Intelligence. 4 Units. **

Different means of representing knowledge and uses of representations in heuristic problem solving. Representations considered include predicate logic, semantic nets, procedural representations, natural language grammars, and search trees.

Prerequisite or corequisite: (STATS 7 and STATS 120A) or STATS 67 and (I&C SCI 46 or CSE 46) and MATH 2B

**COMPSCI 172B. Neural Networks and Deep Learning . 4 Units. **

Neural network and deep learning from multiple perspectives. Theory of parallel distributed processing systems, algorithmic approaches for learning from data in various manners, applications to difficult problems in AI from computer vision, to natural language understanding, to bioinformatics and chemoinformatics.

Prerequisite: (STATS 120A and STATS 120B) or MATH 121A or COMPSCI 178 or COMPSCI 273A

Concurrent with COMPSCI 274C.

**COMPSCI 175. Project in Artificial Intelligence. 4 Units. **

Construction of a working artificial intelligence system. Evaluation of capabilities of the system including impact of knowledge representation.

Prerequisite: COMPSCI 171 and COMPSCI 178

**COMPSCI 177. Applications of Probability in Computer Science. 4 Units. **

Application of probability to real-world problems in computer science. Typical topics include analysis of algorithms and graphs, probabilistic language models, network traffic modeling, data compression, and reliability modeling.

Prerequisite: MATH 2B and STATS 67 and I&C SCI 6B and I&C SCI 6D and (MATH 3A or I&C SCI 6N)

**COMPSCI 178. Machine Learning and Data-Mining. 4 Units. **

Introduction to principles of machine learning and data-mining applied to real-world datasets. Typical applications include spam filtering, object recognition, and credit scoring.

Prerequisite: I&C SCI 6B and I&C SCI 6D and (I&C SCI 6N or MATH 3A) and MATH 2B and (STATS 67 or (STATS 7 and STATS 120A))

**COMPSCI 179. Algorithms for Probabilistic and Deterministic Graphical Models. 4 Units. **

Graphical model techniques dealing with probabilistic and deterministic knowledge representations. Focuses on graphical models such as constraint networks, Bayesian networks, and Markov networks that have become a central paradigm for knowledge representation and reasoning in AI and general computer science.

Prerequisite: COMPSCI 171

**COMPSCI 183. Introduction to Computational Biology. 4 Units. **

The use of theories and methods based on computer science, mathematics, and physics in molecular biology and biochemistry. Basics in biomolecular modeling. Analysis of sequence and structural data of biomolecules. Analysis of biomolecular functions.

Prerequisite: MATH 2D or MATH 3A or STATS 7 or STATS 8

Same as BME 132, BIO SCI M123.

Concurrent with MOL BIO 223 and BME 232.

**COMPSCI 184A. Representations and Algorithms for Molecular Biology. 4 Units. **

Introduction to computational methods in molecular biology, aimed at those interested in learning about this interdisciplinary area. Covers computational approaches to understanding and predicting the structure, function, interactions, and evolution of DNA, RNA, proteins, and related molecules and processes.

Prerequisite: I&C SCI 6N or MATH 3A or MATH 6G

Restriction: Upper-division students only.

Concurrent with COMPSCI 284A.

**COMPSCI 184C. Computational Systems Biology. 4 Units. **

Computational inference and modeling of gene regulation networks, signal transduction pathways, and the effects of regulatory networks in cellular processes, development, and disease. Introduction of required mathematical, computational, and data handling tools.

Prerequisite: COMPSCI 184A

Concurrent with COMPSCI 284C.

**COMPSCI 189. Project in Bioinformatics. 4 Units. **

Teaches problem definition and analysis, data representation, algorithm design, component integration, solution validation, and testability with teams specifying, designing, building, and testing a solution to a bioinformatics problem. Lectures include engineering values, discussions, and ethical ramifications of biomedical computing issues.

Prerequisite: COMPSCI 184A. COMPSCI 184A with a grade of C or better

**COMPSCI 190. Special Topics in Information and Computer Science. 4 Units. **

Studies in selected areas of Information and Computer Science. Topics addressed vary each quarter.

Prerequisite: Prerequisites vary.

Repeatability: Unlimited as topics vary.

**COMPSCI H198. Honors Research. 4 Units. **

Directed independent research in computer science for honors students.

Prerequisite: Satisfactory completion of the Lower-Division Writing requirement.

Repeatability: May be repeated for credit unlimited times.

Restriction: Campuswide Honors Program students only. Bren School of ICS Honors students only. Upper-division students only.

**COMPSCI 199. Individual Study. 2-5 Units. **

Individual research or investigation with Computer Science faculty.

Repeatability: May be repeated for credit unlimited times.

**COMPSCI 200S. Seminar in Computer Science Research. 1 Unit. **

Graduate colloquium series. Includes weekly talks by notable computer scientists.

Grading Option: Satisfactory/unsatisfactory only.

Repeatability: May be repeated for credit unlimited times.

**COMPSCI 201. Foundations of Cryptographic Protocols. 4 Units. **

Explores fundamental cryptographic tools, including encryption, signatures, and identification schemes. Students are introduced to the provable security paradigm of modern cryptography, focusing on understanding of security properties provided by cryptographic tools, and on proving security (or insecurity) of cryptographic constructions.

Prerequisite: COMPSCI 260 or COMPSCI 263

**COMPSCI 201P. Introduction to Computer Security. 4 Units. **

Introduction to computer security, including systems, technology, and management. Topics include authorization, authentication, data integrity, malware, operating systems security, network security, web security, and basic cryptography.

Prerequisite: Knowledge of Python or C++ programming is required.

Restriction: Master of Computer Science Degree students only. Graduate students only.

**COMPSCI 202. Applied Cryptography. 4 Units. **

Design and analysis of algorithms for applied cryptography. Topics include symmetric and asymmetric key encryption, digital signatures, one-way hash functions, digital certificates and credentials, and techniques for authorization, non-repudiation, authentication, identification, data integrity, proofs of knowledge, and access control.

Prerequisite: COMPSCI 260 and COMPSCI 263

**COMPSCI 202P. Applied Cryptography . 4 Units. **

Design and analysis of algorithms for applied cryptography. Topics include symmetric and asymmetric key encryption, digital signatures, one-way hash functions, digital certificates and credentials, and techniques for authorization, non-repudiation, authentication, identification, data integrity, proofs of knowledge, and access control.

Restriction: Graduate students only.

**COMPSCI 203. Network and Distributed Systems Security. 4 Units. **

Modern computer and networks security: attacks and countermeasures, authentication, identification, data secrecy, data integrity, authorization, access control, computer viruses, network security. Group communication and multicast security techniques. Covers secure e-commerce and applications of public key methods, digital certificates, and credentials.

Prerequisite: EECS 148 or COMPSCI 132

Same as NET SYS 240.

**COMPSCI 203P. Network Security. 4 Units. **

Introduction to network security, including network threats and attacks, as well as defenses against such attacks. Topics include network infrastructure security, mobile and Wi-Fi security, spam, phishing, firewalls, anonymity, secure email, secure and private cloud computing, and web security.

Prerequisite: COMPSCI 201P or COMPSCI 202P

Restriction: Master of Computer Science Degree students only. Graduate students only.

**COMPSCI 204. Usable Security and Privacy. 4 Units. **

Introduces usability problems in security and privacy methods, tools, and software. Overviews prominent examples of both failures and successes in usable security and privacy. Surveys state-of- the-art techniques and evaluation methodologies.

Same as IN4MATX 237.

Overlaps with IN4MATX 231, COMPSCI 203.

Restriction: Informatics Majors have first consideration for enrollment. Computer Science Majors have first consideration for enrollment. Undergraduate degree in Compsci or Informatics is strongly recommended.

**COMPSCI 206. Principles of Scientific Computing. 4 Units. **

Overview of widely used principles and methods of numerical and scientific computing, including basic concepts and computational methods in linear algebra, optimization, and probability.

Prerequisite: Basic courses in multivariate calculus, linear algebra, and probability.

Overlaps with STATS 230.

**COMPSCI 206P. Principles of Scientific Computing. 4 Units. **

Overview of widely used principles and methods of numerical and scientific computing, including basic concepts and computational methods in floating-point, linear algebra, optimization, simulation, modeling, and probability/statistics as it relates to model evaluation.

Prerequisite: Basic knowledge of multivariate calculus, linear algebra, and familiarity with MATLAB.

Restriction: Graduate students only.

**COMPSCI 210P. Computer Graphics and Visualization . 4 Units. **

Interactive 3D graphics rendering pipeline, illumination and shading, ray tracing, texture-, bump-, mip-mapping, hidden surface removal, anti-aliasing, multiresolution representations, volume rendering techniques, iso-surface extraction.

Prerequisite: Familiarity with linear algebra is required.

Restriction: Master of Computer Science Degree students only. Graduate students only.

**COMPSCI 211A. Visual Computing. 4 Units. **

Fundamentals of image processing (convolution, linear filters, spectral analysis), vision geometry (projective geometry, camera models and calibration, stereo reconstruction), radiometry (color, shading, illumination, BRDF), and visual content synthesis (graphics pipeline, texture- bump-, mip-mapping, hidden surface removal, anti-aliasing).

**COMPSCI 211B. Computer Graphics and Visualization. 4 Units. **

Interactive 3D graphics rendering pipeline, illumination and shading, ray tracing, texture-, bump-, mip-mapping, hidden surface removal, anti-aliasing, multiresolution representations, volume rendering techniques, iso-surface extraction.

Prerequisite: COMPSCI 211A

**COMPSCI 211P. Visual Computing . 4 Units. **

Develops a comprehensive understanding of fundamentals of image processing (convolution, linear filters, spectral analysis), vision geometry (projective geometry, camera models and calibration, stereo reconstruction), radiometry (color, shading, illumination, BRDF), visual content synthesis (graphics pipeline, texture- bump-, mip-mapping, hidden surface, anti-aliasing).

Prerequisite: Undergraduate-level familiarity with Linear algebra (matrices and operations), eigenvalue, eigenvectors, linear regression; basic of algorithms; programming in C/C++

Restriction: Graduate students only.

**COMPSCI 212. Multimedia Systems and Applications. 4 Units. **

Organization and structure of modern multimedia systems; audio and video encoding/compression; quality of service concepts; scheduling algorithms for multimedia; resource management in distributed and multimedia systems; multimedia protocols over high-speed networks; synchronization schemes; multimedia applications; and teleservices.

Prerequisite: COMPSCI 143A and COMPSCI 161. B.S. degree in Computer Science is also accepted. Recommended: COMPSCI 131 and COMPSCI 132 and COMPSCI 133.

**COMPSCI 213. Introduction to Visual Perception. 4 Units. **

Introduction to the process of human visual perception. Offers the physiological and psychophysical approach to understand vision, introducing concepts of perception of color, depth, movement. Examples of quantification and application of these models in computer vision, computer graphics, multimedia, HCI.

Prerequisite: MATH 121A

**COMPSCI 216. Image Understanding. 4 Units. **

The goal of image understanding is to extract useful semantic information from image data. Course covers low-level image and video processing techniques, feature descriptors, segmentation, objection recognition, and tracking.

Prerequisite: I&C SCI 6D and (I&C SCI 6N or MATH 6G or MATH 3A) and MATH 2B and I&C SCI 46

**COMPSCI 217. Light and Geometry in Computer Vision. 4 Units. **

Examines the issues of light transport and multiview geometry in computer vision. Applications include camera calibration, 3D understanding, stereo reconstruction, and illumination estimation.

Prerequisite: I&C SCI 6D and (I&C SCI 6N or MATH 6G or MATH 3A) and MATH 2B and I&C SCI 46 and COMPSCI 211A

**COMPSCI 221. Information Retrieval, Filtering, and Classification. 4 Units. **

Algorithms for the storage, retrieval, filtering, and classification of textual and multimedia data. The vector space model, Boolean and probabilistic queries, and relevance feedback. Latent semantic indexing; collaborative filtering; and relationship to machine learning methods.

Prerequisite: COMPSCI 161 and COMPSCI 171 and (I&C SCI 6N or MATH 3A or MATH 6G)

Same as IN4MATX 225.

Restriction: Graduate students only.

**COMPSCI 222. Principles of Data Management. 4 Units. **

Covers fundamental principles underlying data management systems. Content includes key techniques including storage management, buffer management, record-oriented file system, access methods, query optimization, and query processing.

Prerequisite: COMPSCI 122A and (I&C SCI 53 or COMPSCI 143A)

Concurrent with COMPSCI 122C.

**COMPSCI 222P. Principles of Data Management. 4 Units. **

Covers fundamental principles underlying data management systems. Understanding and implementation of key techniques including storage management, buffer management, record-oriented file system, access methods, query optimization, and query processing.

Prerequisite: C++ programming skills, understanding of Data Structures and Algorithms

Restriction: Graduate students only.

**COMPSCI 223. Transaction Processing and Distributed Data Management. 4 Units. **

Covers fundamental principles underlying transaction processing including database consistency, concurrency control, database recovery, and fault-tolerance. Includes transaction processing in centralized, distributed, parallel, and client-server environments.

Prerequisite: COMPSCI 222 and COMPSCI 131

**COMPSCI 225. Next Generation Search Systems. 4 Units. **

Discusses concepts and techniques related to all aspects of search systems. After considering basic search technology and the state-of-art systems, rapidly developing techniques for multimedia search, local search, event-search, and video-on-demand are explored.

Prerequisite: I&C SCI 21 or CSE 21 or IN4MATX 41 or I&C SCI 31 or CSE 41

Restriction: Upper-division students only. Graduate students only.

Concurrent with COMPSCI 125.

**COMPSCI 230. Distributed Computer Systems. 4 Units. **

Principles of distributed computing systems. Topics covered include message-passing, remote procedure calls, distributed shared memory synchronization, resource and process/thread management, distributed file systems, naming and security.

**COMPSCI 232. Computer and Communication Networks. 4 Units. **

Network architecture of the Internet, telephone networks, cable networks, and cell phone networks. Network performance models. Network performance models. Advanced concepts and implementations of flow and congestion control, addressing, internetworking, forwarding, routing, multiple access, streaming, and quality-of-service.

Prerequisite: EECS 148 or COMPSCI 132

Same as EECS 248A, NET SYS 201.

Restriction: Graduate students only.

**COMPSCI 232P. Computer and Communication Networks . 4 Units. **

Internet architecture, protocols, and services. Advanced concepts of IP and TCP, including addressing, internetworking, forwarding, routing, and implementations of flow and congestion control. Internet services such as Network Address Translation and Domain Name Servers. Overview of Local Area Networks.

Restriction: Graduate students only.

**COMPSCI 233. Networking Laboratory. 4 Units. **

A laboratory-based introduction to basic networking concepts such as addressing, sub-netting, bridging, ARP, and routing. Network simulation and design. Structured around weekly readings and laboratory assignments.

Prerequisite: EECS 148 or COMPSCI 132

Same as NET SYS 202.

**COMPSCI 234. Advanced Networks. 4 Units. **

Design principles of networked systems, advanced routing and congestion control algorithms, network algorithms, network measurement, management, security, Internet economics, and emerging networks.

Prerequisite: NET SYS 201 or COMPSCI 232 or EECS 248A

Same as NET SYS 210.

**COMPSCI 236. Wireless and Mobile Networking. 4 Units. **

Introduction to wireless networking. The focus is on layers 2 and 3 of the OSI reference model, design, performance analysis, and protocols. Topics covered include: an introduction to wireless networking, digital cellular, next generation cellular, wireless LANs, and mobile IP.

Prerequisite: EECS 148 or COMPSCI 132

Same as NET SYS 230.

**COMPSCI 237. Middleware for Networked and Distributed Systems. 4 Units. **

Discusses concepts, techniques, and issues in developing distributed systems middleware that provides high performance and Quality of Service for emerging applications. Also covers existing standards (e.g., CORBA, DCOM, Jini, Espeak) and their relative advantages and shortcomings.

Prerequisite: An undergraduate-level course in operating systems and networks.

Same as NET SYS 260.

**COMPSCI 238. Advanced Operating Systems. 4 Units. **

Focuses on advanced and graduate-level topics in operating systems. Presents important recent developments in operating systems, topics not covered in undergraduate operating systems courses. This includes novel operating system designs and techniques to improve existing ones.

Prerequisite: COMPSCI 143A

**COMPSCI 238P. Operating Systems. 4 Units. **

In-depth organization of the core operating system abstraction and its implementation (virtual memory, kernel and user mode, system calls, threads, context switches, interrupts, inter-process communication, hardware interface, etc.) and a range of recent developments in de-facto industry standard operating systems.

Prerequisite: Working knowledge of C and the Linux environment.

Restriction: School of Info & Computer Sci students only. Master of Computer Science Degree students only. Graduate students only.

**COMPSCI 241. Advanced Compiler Construction. 4 Units. **

Advanced study of programming language implementation techniques: optimizations such as common sub-expression elimination, register allocation, and instruction scheduling. Implementation of language features such as type-directed dispatch, garbage collection, dynamic linking, and just-in-time code generation.

Prerequisite: COMPSCI 142A

**COMPSCI 242. Parallel Computing. 4 Units. **

Definition of parallel processing systems. Theory and application of arrays, trees, and hypercubes. Computational models, applications: sorting, integer arithmetic, matrix operations, Fast Fourier Transform, and others. Interconnection networks: a framework for the description, analysis, and construction of hypercube-derived networks.

**COMPSCI 242P. Compilers and Interpreters. 4 Units. **

Provides in-depth study of compilers and interpreters which are the primary forms of programming language processing in computing.

Prerequisite: Knowledge of C++ programming is required.

Restriction: Master of Computer Science Degree students only. Graduate students only.

**COMPSCI 243. High-Performance Architectures and Their Compilers. 4 Units. **

Emphasis on the development of automatic tools (i.e., compilers/environments) for the efficient exploitation of parallel machines, and the trade-offs between hardware and software in the design of supercomputing and high-performance machines.

**COMPSCI 244. Introduction to Embedded and Ubiquitous Systems. 4 Units. **

Embedded and ubiquitous system technologies including processors, DSP, memory, and software. System interfacing basics; communication strategies; sensors and actuators, mobile and wireless technology. Using pre-designed hardware and software components. Design case studies in wireless, multimedia, and/or networking domains.

Prerequisite: I&C SCI 51 and COMPSCI 152 and COMPSCI 161 and (I&C SCI 6N or MATH 3A or MATH 6G or I&C SCI 6D). B.S. degree in Computer Science is also accepted.

Same as IN4MATX 244.

**COMPSCI 244P. Introduction to the Internet of Things. 4 Units. **

Develops a comprehensive understanding of the hardware and software technology, the communication protocols, and the security and privacy requirements underlying the Internet of Things ecosystem, particularly those using computing elements (processors, DSPs/ ASIPs), sensors, and accessing cloud services.

Prerequisite: Undergraduate-level familiarity with fundamentals of integrated circuit blocks, processors, optimization/algorithm design, and some programming experience.

Restriction: Graduate students only.

**COMPSCI 245. Software for Embedded Systems. 4 Units. **

Embedded computing elements, device interfaces, time-critical IO handling. Embedded software design under size, performance, and reliability constraints. Software timing and functional validation. Programming methods and compilation for embeddable software. Embedded runtime systems. Case studies of real-time software systems.

Prerequisite: I&C SCI 51 and COMPSCI 152 and COMPSCI 161 and (I&C SCI 6N or MATH 3A or MATH 6G or I&C SCI 6D). B.S. degree in Computer Science is also accepted.

**COMPSCI 246. Dependability, Validation, and Testing of Embedded Systems. 4 Units. **

Embedded system building blocks, including IP cores. Dependability and Resilience. Co-simulation. Formal verification using model checking. Verification environments. Test challenges in core integration: compliance, feature, random, and collision testing. Core access and test integration. Interface-based verification and standards.

Prerequisite: B.S. degree in Computer Science or basic courses in algorithms and data structures, calculus, discrete math, linear algebra, symbolic logic.

**COMPSCI 248A. Introduction to Ubiquitous Computing. 4 Units. **

The "disappearing computer" paradigm. Differences to the desktop computing model: applications, interaction in augmented environments, security, alternate media, small operating systems, sensors, and embedded systems design. Evaluation by project work and class participation.

Same as IN4MATX 241.

**COMPSCI 248B. Ubiquitous Computing and Interaction. 4 Units. **

Principles and design techniques for ubiquitous computing applications. Conceptual basis for tangible and embodied interaction. Interaction in virtual and augmented environments. Design methods and techniques. Design case studies. Examination by project work.

Prerequisite: IN4MATX 231 and IN4MATX 241

Same as IN4MATX 242.

**COMPSCI 250A. Computer Systems Architecture. 4 Units. **

Study of architectural issues and their relation to technology and software: design of processor, interconnections, and memory hierarchies.

Prerequisite: COMPSCI 152

**COMPSCI 250B. Modern Microprocessors. 4 Units. **

Fundamental concepts and recent advances in computer architecture necessary to understand and use modern microprocessors. Topics span out-of-order execution, multiple instruction issue, control/data speculation, predication, advanced cache and DRAM organizations, embedded systems, DSP and multi-media instructions.

Prerequisite: COMPSCI 250A

Overlaps with COMPSCI 243.

**COMPSCI 250P. Computer Systems Architecture . 4 Units. **

Study of architectural issues and their relation to technology and software: design of processor, interconnections, and memory hierarchies.

Prerequisite: Undergraduate-level familiarity with fundamentals of integrated circuit blocks, processors, and optimization/algorithm design, and some programming experience.

Restriction: Graduate students only.

**COMPSCI 252. Introduction to Computer Design. 4 Units. **

The methodology and use of CAD tools for computer design, accomplished by a lab in which students practice design using commercially available silicon compilers and other tools.

Prerequisite: COMPSCI 151 and COMPSCI 152

**COMPSCI 253. Analysis of Programming Languages. 4 Units. **

Concepts in modern programming languages, their interaction, and the relationship between programming languages and methods for large-scale, extensible software development. Empirical analysis of programming language usage.

Same as IN4MATX 212.

**COMPSCI 253P. Advanced Programming and Problem Solving. 4 Units. **

Provides in-depth preparation for industry interviews requiring demonstration of problem solving and programming skills. Emphasis is on understanding problem statements, considering edge cases, developing effective test cases, designing correct solutions, explaining these clearly, and implementing a solution correctly.

Corequisite: COMPSCI 260P

Restriction: Master of Computer Science Degree students only. Graduate students only.

**COMPSCI 259S. Seminar in Design Science. 2 Units. **

Current research and research trends in design science. Forum for presentation and criticism by students of research work in progress.

Repeatability: May be taken for credit 18 times.

**COMPSCI 260. Fundamentals of the Design and Analysis of Algorithms. 4 Units. **

Covers fundamental concepts in the design and analysis of algorithms and is geared toward non-specialists in theoretical computer science. Topics include: deterministic and randomized graph algorithms, fundamental algorithmic techniques like divide-and-conquer strategies and dynamic programming, and NP-completeness.

Prerequisite: COMPSCI 161

**COMPSCI 260P. Fundamentals of Algorithms with Applications. 4 Units. **

Covers fundamental concepts in the design and analysis of algorithms and is geared toward practical application and implementation. Topics include greedy algorithms, deterministic and randomized graph algorithms, models of network flow, fundamental algorithmic techniques, and NP-completeness.

Restriction: Graduate students only.

**COMPSCI 261. Data Structures. 4 Units. **

An in-depth treatment of data structures and their associated management algorithms including resource complexity analysis.

Prerequisite: I&C SCI 46 and COMPSCI 161

**COMPSCI 261P. Data Structures with Applications . 4 Units. **

Data structures and their associated management algorithms, including their applications and analysis.

Prerequisite: COMPSCI 260P

Restriction: Graduate students only.

**COMPSCI 262. Computational Complexity. 4 Units. **

Advanced course in computational models and complexity classes. Covers the fundamentals of Turing Machines, Decidability, and NP-completeness. Includes discussion of more advanced topics including polynomial hierarchy, randomized complexity classes, #P-completeness and hardness of approximation.

Prerequisite: COMPSCI 162

**COMPSCI 262P. Automata and Grammars. 4 Units. **

Principles and applications of automata, grammars, and formal languages. Topics include finite state machines, regular expressions, context-free grammars, pushdown automata, Turing machines, and the limits of computation, as well as text-processing applications in lexical analyzers and parsers.

Restriction: Master of Computer Science Degree students only. Graduate students only.

**COMPSCI 263. Analysis of Algorithms. 4 Units. **

Analysis of correctness and complexity of various efficient algorithms; discussion of problems for which no efficient solutions are known.

Prerequisite: COMPSCI 161 and COMPSCI 261

**COMPSCI 264. Quantum Computation and Information. 4 Units. **

Basic models for quantum computation and their foundations in quantum mechanics. Quantum complexity classes and quantum algorithms, including algorithms for factoring and quantum simulation. Introduction to quantum information theory and quantum entanglement.

Prerequisite: Basic courses in linear algebra and algorithms.

**COMPSCI 265. Graph Algorithms. 4 Units. **

Graph definitions, representation methods, graph problems, algorithms, approximation methods, and applications.

Prerequisite: COMPSCI 161 and COMPSCI 261

Concurrent with COMPSCI 163.

**COMPSCI 266. Computational Geometry. 4 Units. **

An overview of some of the basic problems in computational geometry and of some algorithmic and data-structuring techniques appropriate to their solution.

Prerequisite: COMPSCI 161 and COMPSCI 261

**COMPSCI 267P. Data Compression. 4 Units. **

An introduction to the theory and practice of modern data compression techniques. Topics include codes, coding, modeling, text compression, lossless and lossy image compression standards and systems, audio compression.

Restriction: Master of Computer Science Degree students only. Graduate students only.

**COMPSCI 268. Introduction to Optimization. 4 Units. **

A broad introduction to optimization. Unconstrained and constrained optimization. Equality and inequality constraints. Linear and integer programming. Stochastic dynamic programming.

Prerequisite: STATS 67 or (STATS 7 and STATS 120A) and (I&C SCI 6N or MATH 3A)

Restriction: School of Info & Computer Sci students have first consideration for enrollment.

Concurrent with COMPSCI 169.

**COMPSCI 268P. Introduction to Optimization Modeling . 4 Units. **

A broad introduction to optimization modeling. Unconstrained and constrained optimization. Equality and inequality constraints. Linear and integer programming. Practical implementation of combinatorial optimization, metaheurstics.

Restriction: Graduate students only.

**COMPSCI 269S. Seminar in the Theory of Algorithms and Data Structures. 2 Units. **

Current research and research trends in the Theory of algorithms and data structures.

Repeatability: May be taken for credit 18 times.

**COMPSCI 271. Introduction to Artificial Intelligence. 4 Units. **

The study of theories and computational models for systems which behave and act in an intelligent manner. Fundamental subdisciplines of artificial intelligence including knowledge representation, search, deduction, planning, probabilistic reasoning, natural language parsing and comprehension, knowledge-based systems, and learning.

**COMPSCI 271P. Introduction to Artificial Intelligence. 4 Units. **

The study of theories and computational models for systems which behave and act in an intelligent manner. Fundamental sub-disciplines of artificial intelligence, including knowledge representation, search, deduction, planning, probabilistic reasoning, natural language parsing and comprehension, knowledge-based systems, and learning.

Restriction: Graduate students only.

**COMPSCI 272. Statistical Natural Language Processing. 4 Units. **

Statistical models, machine learning algorithms, and computational tasks involved in natural language processing. Focuses on approaches that learn these models from data, and covers applications such as information extraction, dialog systems, machine translation, and question answering.

Prerequisite: COMPSCI 171 and COMPSCI 178

Restriction: School of Info & Computer Sci students have first consideration for enrollment. Graduate students only.

**COMPSCI 273A. Machine Learning. 4 Units. **

Computational approaches to learning algorithms for classifications, regression, and clustering. Emphasis is on discriminative classification methods such as decision trees, rules, nearest neighbor, linear models, and naive Bayes.

Prerequisite: COMPSCI 271 and COMPSCI 206

**COMPSCI 273P. Machine Learning and Data Mining . 4 Units. **

Introduction to principles of machine learning and data-mining. Learning algorithms for classifications, regression, and clustering. Emphasis is on discriminative classification methods such as decision trees, rules, nearest neighbor, linear models, and naive Bayes.

Prerequisite: COMPSCI 271. COMPSCI 271 with a grade of B or better. Python programming knowledge is required.

Restriction: Master of Computer Science Degree students only. Graduate students only.

**COMPSCI 274A. Probablistic Learning: Theory and Algorithms. 4 Units. **

An introduction to probabilistic and statistical techniques for learning from data, including parameter estimation, density estimation, regression, classification, and mixture modeling.

Prerequisite: COMPSCI 206

**COMPSCI 274B. Learning in Graphical Models. 4 Units. **

Models for data analysis are presented in the unifying framework of graphical models. The emphasis is on learning from data but inference is also covered. Real world examples are used to illustrate the material.

Prerequisite: COMPSCI 274A

**COMPSCI 274C. Neural Networks and Deep Learning. 4 Units. **

Neural network and deep learning from multiple perspectives. Theory of parallel distributed processing systems, algorithmic approaches for learning from data in various manners, applications to difficult problems in AI from computer vision, to natural language understanding, to bioinformatics and chemoinformatics.

Prerequisite: (STATS 120A and STATS 120B) or MATH 121A or COMPSCI 178 or COMPSCI 273A

Overlaps with COMPSCI 274A, COMPSCI 279S, COMPSCI 277, COMPSCI 276, COMPSCI 278, COMPSCI 274B.

Concurrent with COMPSCI 172B.

**COMPSCI 274P. Neural Networks and Deep Learning. 4 Units. **

Introduction to principles of machine learning and neural networks. Architecture design. Feedforward and recurrent networks. Learning models and algorithms. Applications to data analysis and prediction problems in areas such as machine vision, natural language processing, biomed, and finance.

Prerequisite: COMPSCI 271P. Knowledge of Python programming is required.

Restriction: Master of Computer Science Degree students only. Graduate students only.

**COMPSCI 275. Network-based Reasoning/Constraint Networks. 4 Units. **

Study of the theory and techniques of constraint network model. Covers techniques for solving constraint satisfaction problems: backtracking techniques, consistency algorithms, and structure-based techniques. Tractable subclasses. Extensions into applications such as temporal reasoning, diagnosis, and scheduling.

Prerequisite: Basic course in algorithm design and analysis.

**COMPSCI 276. Reasoning in Probabilistic Graphical Models. 4 Units. **

Focuses on algorithms for probabilistic reasoning using graphical models such as Bayesian Networks and Markov Networks that encode knowledge as local probabilistic relations. Tasks include finding most likely scenarios over a subset of variables, or updating posterior probability, given observations.

Prerequisite: A basic course in probability.

**COMPSCI 277. Data Mining. 4 Units. **

Introduction to the general principles of inferring useful knowledge from large data sets (commonly known as data mining or knowledge discovery). Relevant concepts from statistics, databases and data structures, optimization, artificial intelligence, and visualization are discussed in an integrated manner.

Prerequisite: COMPSCI 273A or COMPSCI 274A

**COMPSCI 278. Probability Models. 4 Units. **

Advanced probability, discrete time Markov chains, Poisson processes, continuous time Markov chains. Queuing or simulation as time permits.

Prerequisite: STATS 120A

Concurrent with STATS 121.

**COMPSCI 284A. Representations and Algorithms for Molecular Biology. 4 Units. **

Introduction to computational methods in molecular biology, aimed at those interested in learning about this interdisciplinary area. Covers computational approaches to understanding and predicting the structure, function, interactions, and evolution of DNA, RNA, proteins, and related molecules and processes.

Prerequisite: A Basic course in algorithms, or a basic course in molecular biology.

Concurrent with COMPSCI 184A.

**COMPSCI 284C. Computational Systems Biology. 4 Units. **

Computational inference and modeling of gene regulation networks, signal transduction pathways, and the effects of regulatory networks in cellular processes, development, and disease. Introduction of required mathematical, computational, and data handling tools.

Prerequisite: COMPSCI 284A or (BIO SCI 99 and MATH 2D)

Concurrent with COMPSCI 184C.

**COMPSCI 285. Mathematical and Computational Biology . 4 Units. **

Analytical and numerical methods for dynamical systems, temporal-spatial dynamics, steady state, stability, stochasticity. Application to life sciences: genetics, tissue growth and patterning, cancers, ion channels gating, signaling networks, morphogen gradients. Probabilistic methods.

Prerequisite: MATH 227A

Same as MATH 227C.

**COMPSCI 290. Research Seminar. 2 Units. **

Forum for presentation and criticism by students of research work in progress. Presentation of problem areas and related work. Specific goals and progress of research.

Grading Option: Satisfactory/unsatisfactory only.

Repeatability: May be repeated for credit unlimited times.

Restriction: Graduate students only.

**COMPSCI 295. Special Topics in Information and Computer Science . 4 Units. **

Studies in selected areas of Information and Computer Science. Topics addressed vary each quarter.

Repeatability: Unlimited as topics vary.

Restriction: Graduate students only.

**COMPSCI 296. Elements of Scientific Writing. 4 Units. **

Introduces the concepts and principles of good scientific writing, demonstrates them by examples drawn from the literature, and uses a hands-on approach to apply them to documents being written by the participants.

Grading Option: Satisfactory/unsatisfactory only.

**COMPSCI 296P. Capstone Professional Writing and Communication for Computer Science Careers . 6 Units. **

Written and oral communication for computer science and IT careers. Production of the detailed design and development document for the concurrent capstone design class and refinement of written documents and oral communications skills needed for a successful job search.

Corequisite: COMPSCI 297P

Prerequisite: Successful completion of 24 units in the Master of Computer Science program.

Restriction: Master of Computer Science Degree students only. Graduate students only.

**COMPSCI 297P. Capstone Design Project for Computer Science . 6 Units. **

Design and development of app, software system, or hardware component of system based on students' prior knowledge of advanced computer science principles. Implement at least a working prototype and test this using relevant use cases and/or input data.

Corequisite: COMPSCI 296P

Prerequisite: Successful completion of 24 units in the Master of Computer Science program.

Restriction: Master of Computer Science Degree students only. Graduate students only.

**COMPSCI 298. Thesis Supervision. 2-12 Units. **

Individual research or investigation conducted in preparation for the M.S. thesis option or the dissertation requirements for the Ph.D. program.

Repeatability: May be repeated for credit unlimited times.

Restriction: Graduate students only. School of Information and Computer Science majors only.

**COMPSCI 298P. Computer Science Practicum. 1-4 Units. **

Internship in which students work individually at an outside organization to gain experience with the challenges involved in technology-related work.

Grading Option: Satisfactory/unsatisfactory only.

Repeatability: May be repeated for credit unlimited times.

Restriction: School of Info & Computer Sci students only. Master of Computer Science Degree students only. Graduate students only.

**COMPSCI 299. Individual Study. 1-12 Units. **

Individual research or investigation with Computer Science faculty.

Repeatability: May be repeated for credit unlimited times.

Restriction: Graduate students only. School of Information and Computer Science majors only.

**COMPSCI 299P. Individual Study. 4-8 Units. **

Supervised individual study in computer science.

Grading Option: Satisfactory/unsatisfactory only.

Repeatability: May be taken for credit 4 times.

Restriction: Master of Computer Science Degree students have first consideration for enrollment. Graduate students only.