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.