Computer Science (COMPSCI)

Courses

COMPSCI 690   WORKSHOP   Repeatable   1-3 Units

Variable topics. Group activity oriented presentations emphasizing "hands on" and participatory instructional techniques. Repeatable.

COMPSCI 696   SPECIAL STUDIES   5 Units

An intensive introduction to the fundamentals of computer science, including essential data structures and advanced programming techniques in at least one high-level language. Designed to prepare students who have some programming experience to begin graduate study in computer science. Students with no programming experience should take an introductory course first.

COMPSCI 724   OPERATING SYSTEMS IN PRACTICE   3 Units

A hands-on study of techniques for managing resources, providing concurrency, enabling communication, and ensuring reliability and security in modern operating systems. Students will write multithreaded programs and implement portions of an operating system. Experience with the C programming language is helpful, but not required.
PREREQ: ADMISSION TO GRADUATE PROGRAM IN COMPUTER SCIENCE

COMPSCI 732   MACHINE LEARNING   3 Units

This course provides a broad introduction to machine learning and pattern recognition. Topics include but are not limited to Bayesian Inference, SVMs, Clustering and Classification, Decision Trees and Ensemble Methods. Particular focus will be placed on the theoretical understanding of these methods, as well as their practical applications.
PREREQ: ADMISSION TO GRADUATE PROGRAM IN COMPUTER SCIENCE

COMPSCI 733   ADVANCED ALGORITHM DESIGN AND ANALYSIS   3 Units

This course introduces students to advanced techniques for the design and analysis of algorithms, and explores a variety of applications. Techniques to be covered incude graph representation & graph traversal, shortest path, minimum spanning tree, linear programming, network flow, randomization, and approximation algorithms. NP-complete problems and reductions will also be studied.
PREREQ: ADMISSION TO GRADUATE PROGRAM IN COMPUTER SCIENCE

COMPSCI 735   OPTIMIZATION: TECHNIQUES AND APPLICATIONS   3 Units

The course takes a unified view of optimization, covering the main areas of application and the main optimization algorithms. The topics include linear optimization, robust optimization, network flows, discrete optimization, dynamic optimization and nonlinear optimization. The course involves learning about, using, and analyzing the results of state of the art optimization software.
PREREQ: ADMISSION TO GRADUATE PROGRAM IN COMPUTER SCIENCE

COMPSCI 736   IMAGE PROCESSING AND COMPUTER VISION   3 Units

This course provides a broad introduction to image processing and computer vision. Topics include but not limited to image formation and perception, quantization, contrast enhancement, Fourier transform, compression and restoration, feature extraction and segmentation. Particular focus will be on the theoretical understanding of these methods, as well as their practical applications. The students will use MATLAB to write code.
PREREQ: ADMISSION TO GRADUATE PROGRAM IN COMPUTER SCIENCE

COMPSCI 738   ALGORITHMS IN THE REAL WORLD   3 Units

This course will focus on some of the most widely used algorithms and data structures in the "real world", in light of tackling large volumes of data for which classical algorithms are sometimes inadequate. This has led to new techniques that are not only theoretically intriguing, but have a wide range of practical applications.
PREREQ: COMPSCI 433 OR COMPSCI 733 OR DEPARTMENT CONSENT

COMPSCI 739   MATRIX METHODS IN DATA MINING AND PATTERN RECOGNITION   3 Units

This course focuses on matrix methods in data mining and pattern recognition, and features real-world applications ranging from classification and clustering to denoising and data analysis. The topics covered include: linear equations, regression, regularization, the singular value decomposition, iterative algorithms, classification using singular value decomposition bases, tangent distance, latent semantic indexing, clustering, support vector machines, and random walk and Markov chains.
PREREQ: ADMISSION TO GRADUATE PROGRAM IN COMPUTER SCIENCE

COMPSCI 750   SYSTEM AND SOFTWARE SECURITY   3 Units

In this course one learns about how to build secure computer systems in detail. Topics include access control and security policy models, information flow, operating system security, malware and reverse engineering, and common software vulnerabilities and related countermeasures. Through labs and projects, one will learn to apply security principles to solve real life problems in computer and related systems.
PREREQ: CYBER 701 OR ADMISSION TO MASTER OF COMPUTER SCIENCE PROGRAM

COMPSCI 755   CRYPTOGRAPHY AND SECURITY PROTOCOLS   3 Units

This course focuses on the cryptographic solutions to security issues related to confidentiality, integrity, and authentication in networks. The main contents include block cipher and operations; stream cipher; public key cryptography; cryptography-based security protocols in authentication and key management; network, transport, and application layer security in the Internet; and applications of cryptography on security protocols in emerging fields of computing.
PREREQ: CYBER 701 OR ADMISSION TO MASTER OF COMPUTER SCIENCE PROGRAM

COMPSCI 764   CLOUD COMPUTING   3 Units

The purpose of this course is to understand the core technical ideas and concepts in designing and using cloud computing systems, covering a broad range of topics that include cloud system architectures, cloud storage and management, cloud programming frameworks, virtualization and resource management, and datacenter networks. It is a blend of lecture, paper readings/presentations, and programming practice using a cloud.
PREREQ: ADMISSION TO GRADUATE PROGRAM IN COMPUTER SCIENCE

COMPSCI 766   ADVANCED DATABASES   3 Units

This course covers advanced database management system design principles and techniques. Course material includes both fundamental principles and current research. Possible topics include query processing and optimization, transaction processing, distributed databases, object-oriented databases, data warehousing, and data mining.
PREREQ: ADMISSION TO GRADUATE PROGRAM IN COMPUTER SCIENCE

COMPSCI 767   BIG DATA AND DATA MINING   3 Units

This course will cover two main areas: (1) machine learning algorithms that can be applied to "big data" (i.e., data sets of great size and complexity); and (2) distributed file systems and MapReduce as tools to generate algorithms, along with associated hardware innovations to facilitate parallel analysis of big data.
PREREQ: ADMISSION TO GRADUATE PROGRAM IN COMPUTER SCIENCE

COMPSCI 776   ADVANCED SOFTWARE ENGINEERING   3 Units

This course introduces fundamental software engineering principles and techniques. Students will apply these principles and techniques throughout the course as they work together in teams to develop a software product. Students will also learn about current software engineering research and discuss current issues in the software industry.
PREREQ: ADMISSION TO GRADUATE PROGRAM IN COMPUTER SCIENCE

COMPSCI 777   SOFTWARE TESTING   3 Units

The course introduces students to software testing. Students will learn different testing strategies and methodologies. Students will learn to write effective test cases, execute tests and file bug reports, use a unit testing framework, and use or design an automation testing framework.
PREREQ: ADMISSION TO GRADUATE PROGRAM IN COMPUTER SCIENCE

COMPSCI 778   SOFTWARE SPECIFICATION AND VERIFICATION   3 Units

An overview of languages, logics, techniques, and tools used to specify, analyze, and verify software systems. Students apply these formal methods to model software systems and verify their correctness, study industrial applications of formal methods for critical software components, and research new developments in this area.
PREREQ: ADMISSION TO GRADUATE PROGRAM IN COMPUTER SCIENCE

COMPSCI 789   CAPSTONE PROJECT   Repeatable   1-6 Units

Under faculty supervision, the student will develop, extend, or modify a significant piece of software or a system with significant software components. The student will also write a technical report and give a presentation describing the software product as well as the development process. Fulfills the Applied Research Project option for graduation. Pass/Fail grade basis only.

COMPSCI 790   WORKSHOP   1-3 Units

Variable topics. Group activity oriented presentations emphasizing "hands on" and participatory instructional techniques.

COMPSCI 793   INTERNSHIP IN COMPUTER SCIENCE   Repeatable   1-6 Units

COMPSCI 794   SEMINAR   1-3 Units

Variable topics. Group activity. An advanced course of study in a defined subject matter area emphasizing a small group in intense study with a faculty member.

COMPSCI 796   SPECIAL STUDIES   Repeatable   1-3 Units

Group activity. Not offered regularly in the curriculum but which is offered on topics selected on the basis of timeliness, need and interest, and generally in the format of regularly scheduled bulletin offerings.

COMPSCI 798   INDIVIDUAL STUDIES   1-3 Units

Study of a selected topic or topics under the direction of a faculty member.

COMPSCI 799   THESIS RESEARCH   Repeatable   1-6 Units

Guided investigation of an approved thesis topic. Students may receive credit for research activities planned in conjunction with their advisers and leading to completing a master's degree.