Computer Science

Computer Science (M.S.)

The Master of Science degree in Computer Science prepares students for leadership roles in the planning, development, testing, validation, and maintenance of software systems in a range of applied areas. Students in the program acquire a thorough understanding of the essential principles of modern computing, which provide a foundation for new discoveries in the field. Building on this foundation, students develop cutting-edge technical skills, strong problem analysis abilities, and project experiences that prepare them for careers in growing industries such as cloud computing, big data, healthcare, biotechnology, advanced manufacturing, and financial services.

Core Courses15
Operating Systems in Practice
Machine Learning
Advanced Algorithm Design and Analysis
Advanced Databases
Advanced Software Engineering
Elective Courses9-12
Select 9-12 units of COMPSCI courses numbered 700 or above from the following list:
Cloud Computing
Big Data and Data Mining
Optimization: Techniques and Applications
Image Processing and Computer Vision
Cryptography and Cloud Security
Software Testing
Software Specification and Verification
Special Topics (Repeatable)
Capstone: Select 3-6 total units from:3-6
Capstone Project
Thesis Research
Total Units30

Students pursuing the M.S. degree in Computer Science may declare either the applied research project option or the thesis option to fulfill their capstone requirement for graduation.

  • Students who choose the thesis option must earn at least 3 units of COMPSCI 799 credit.
  • Students who choose the applied research project option must earn at least 3 units of COMPSCI 789 credit.

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 ensureing reliability and security in modern operating systems. Students will write mulithreaded programs and implement portions of an operating system. Experience with teh 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 t Bayesian Inference, SVMs, Clustering and Classification, Decision Tress and Ensemble Methods. Particular focus will be place don 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 incuded graph representation & Graph traversal, shortes 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 762   CRYPTOGRAPHY AND CLOUD SECURITY   3 Units

This course focuses on the cryptographic solutions to security issues related to confidentiality, integrity, and availability in networks and clouds. The main contents include private and public key cryptography; cryptography applications in authentication, key management, and digital signature; transport and application layer security in Internet; secure data and computation outsourcing in cloud; and trusted cloud computing.
PREREQ: ADMISSION TO GRADUATE PROGRAM IN COMPUTER SCIENCE

COMPSCI 764   CLOUD COMPUTING   3 Units

The purpose of this course is to understand teh 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/prsentations, 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 techniquees. Course material includes both fundamental principles and current research. Possible topics include query processing and optimization, transaction processing, distributed databases, object-oriented databses, 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

The course introduces students to software engineering principles and techniques in addition to several advanced topics that are not covered in the undergraduate software engineering course. The advanced topics include component-based software engineering, distributed software enginerring, service-oriented architecture, embedded software, and aspect-oriented software engineering. The course will cover design patterns, architecture design patterns, and software configuration management patterns.
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 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 the completion of a master¿s degree. Students must complete a Thesis Proposal Form in the Graduate Studies Office before registering for this course.