Required Courses

Students are required to take a total of 30 units of coursework, spread across 3 categories: core courses, breadth/depth courses and research/project courses.

This course presents modern software engineering techniques and examines the software life cycle, including software specification, design, implementation, testing, and maintenance. It evaluates past and current trends in software development practices, including agile software development methods such as Extreme Programming (XP), Agile Modeling (AM), Scrum, ASD, DSDM, and Crystal.

InstructorStart DateDaysTimeLocation

This course covers advanced topics in computer networking, such as ad hoc wireless networks, cognitive networking, delay-tolerant networks, and software-defined networking. Students will understand the key mechanisms and networking protocols underlying these emerging networking architectures.

InstructorStart DateDaysTimeLocation

This course provides students with skills in designing efficient algorithms. We will go through a variety of algorithm design techniques, including greedy, divide and conquer, dynamic programming, network flow, linear programming, randomized algorithms, and approximation algorithms. We will illustrate these design techniques in solving different algorithmic problems. The emphasis of this course is on the mathematical aspects of designing algorithms.

InstructorStart DateDaysTimeLocation

The course explores the topics of computer architecture at a higher and more abstract level than prior courses on computer organization. In this course, we will learn the essential techniques that are used in designing modern computer architectures from single/multiprocessors to warehouse-scale computers. Survey various machine architectures including implementation alternatives for major processor sub-systems. Pipelined, vector, VLSI, multi-core, and dataflow architectures are examined.

InstructorStart DateDaysTimeLocation

 

Students must take 4 core courses (12 units total), which can be taken from a single breadth/depth area, or across any combination of breadth/depth areas:

This course provides an in-depth look into the fundamentals of packet-switched network traffic analysis at the network layer and above as applied to problems in traffic engineering, economics, security, etc. The course will explore the design and integration of analytic tools and techniques into the fabric of the network including: spatial and temporal anomaly detection, origin-destination matrix estimation, application mix determination, deep-packet inspection, fingerprinting, intrusion detection and insider threat mitigation. Finally, the course covers active defense and offensive methods reliant on traffic analysis. Contains a lab component.

InstructorStart DateDaysTimeLocation

This course provides an in-depth look to define the nature and scope of cyber security incident handling services, including intrusion/incident detection, damage control, service continuity, forensic analysis, service/data restoration, and incident reporting. Material covers policy, planning, operations, and technology issues involved in related cyber incident handling plans; i.e., Business Continuity, Disaster Recovery, and Continuity of Operations. Specific incident types addressed include, natural disasters, denial of service, malicious code, malicious misuse of hardware and firmware, unauthorized access, data compromise and inappropriate use, including insider attacks. Emphasis is given to the detection and analysis of infiltration and exfiltration techniques employed during cyber attacks, thus enabling the incident handler to detect low noise attacks, and to deconstruct particularly insidious attacks. Contains a lab component.

InstructorStart DateDaysTimeLocation
CSC433-A
Knisley, Benjamin David
09/02/2025 TTh 3:45 PM - 5:15 PM Engineering 104

This course provides an advanced course that focuses on key principles of a constructive approach to secure systems. A brief review of operating systems and computer architecture is provided. Major topics include threat characterization and subversion; confinement; fundamental abstractions, principles, and mechanisms, such as reduced complexity, hierarchical relationships, least privilege, hardware protection, resource management and virtualization, software security, secure system composition, mutual suspicion, synchronization, covert and side-channel analysis, secure metadata, secure operational states, usability, and life cycle assurance. Current developments will include advances in security hardware, components, and systems. This course has heavy reliance on software development and implementation.

InstructorStart DateDaysTimeLocation

This course provides an introduction to the design, implementation, evaluation and theoretical description of algorithms. Classic algorithms for sorting, searching, graph traversal and other fundamental tasks will be implemented, tested and evaluated. More advanced topics such as problem reductions, hard problems and complexity will be explored. Students will develop experience at selecting and applying algorithms to specific problems.

InstructorStart DateDaysTimeLocation

 

Investigation of modern cloud computing platforms and the practice of creating scalable software solutions that utilize essential cloud computing products like serverless computing, serverless key-value NOSQL databases, cloud storage, publisher/subscriber messaging, identity access and permissions management, machine learning (ML) integration, etc.

InstructorStart DateDaysTimeLocation
CSC323-A
Suitt, Doug A.
01/13/2025 M 2:30 PM - 5:30 PM Engineering 104
CSC323-A
Suitt, Doug A.
01/12/2026 M 2:30 PM - 5:30 PM Engineering 104

This course is an introduction to all areas of modern image processing. Image formation and capture, display and compression will be covered. Algorithms from single-pixel and neighborhood operations to higher-level functionalities such as object recognition and scene understanding. Extensions to color and 3D imaging will be discussed. Several projects will offer students the opportunity to learn key topics in detail.

InstructorStart DateDaysTimeLocation

 

This course covers introductory machine learning topics including supervised and unsupervised learning, linear and logistic regression, support vector machines, neural networks (MLPs, CNNs, RNNs, GANs) and more. Coursework includes instruction and programming assignments in algorithmic implementations and high-level library usage. Students also apply machine learning techniques to a unique research project.

InstructorStart DateDaysTimeLocation
CSC422-A
Moseley, Robert William
09/02/2025 MWF 8:15 AM - 9:15 AM Engineering 104

The course commences with an examination of the knowledge discovery process. In particular, the introduction equips students with the strategic thinking skills essential to focus on cutting edge data mining techniques that can be applied in a wide variety of settings, e.g., business, engineering, health care, science, etc. Traditional topics include data mining algorithms and implementation issues, advantages and disadvantages of data mining, and examples of knowledge engineering. Current topics such as ubiquitous, distributed, and spatiotemporal geographic data mining will also be explored. This is a practical hands-on course that culminates in a real-world project implemented via open source tools.

InstructorStart DateDaysTimeLocation
CSC423-A
Corso, Anthony J.
09/02/2025 TTh 8:45 AM - 10:15 AM Engineering 107

Natural language is ubiquitous, e.g., humans speak and write to communicate, to transfer information, and to document knowledge. Natural Language Processing (NLP) is an integral component in countless information systems requiring advanced manipulation of natural language. In this class, students will be introduced to NLP starting with the concept of understanding words in context and the need for natural language processing in the business environment. The discussion continues with a detailed study of words and is a foundational framework supporting phonetics and speech synthesis. Subsequent topics include concepts of how words are grouped together to form unique grammatical units. The last part of the course, explores solving real-world NLP problems and deals with two key areas: corpus building, feature engineering, and application development. Course material is presented via theory-based lectures, group discussion, and practical labs-a culminating research project will be individually crafted.

InstructorStart DateDaysTimeLocation
CSC424-B
Corso, Anthony J.
01/13/2025 WF 8:15 AM - 9:15 AM Engineering ONLN
CSC424-A
Corso, Anthony J.
01/12/2026 WF 8:15 AM - 9:15 AM Engineering ONLN

This course emphasizes the principles and practice of cryptography and network security: classical systems, symmetric block ciphers (DES, AES, other contemporary symmetric ciphers), linear and differential cryptanalysis, perfect secrecy, public-key cryptography algorithms for factoring and discrete logarithms, cryptographic protocols, hash functions, authentication, key management, key exchange, signature schemes, email and web security, viruses, firewalls, digital right management, and other topics. In this course, students will learn about network security and cryptography aspects.

InstructorStart DateDaysTimeLocation

 

This course provides the tools to create and critically evaluate data visualizations. Focus will be on statistical graphics, graphics that display statistical data. Additionally, recent advances in the field of information visualization will be covered.

InstructorStart DateDaysTimeLocation
STA360-A
Noh, Heewon Esther_AKA:_Esther_L
01/12/2026 TTh 8:45 AM - 10:15 AM TBA

A course to introduce statistical models of advanced least squares regression and standard ANOVA techniques and extensions to categorical data. Students will conceptually understand linear mixed effects models, log linear and generalized linear models for count data; and survival models for the analysis of lifetime data. In addition, students will apply these models to real data, to discern patterns and conclusions, and present their results.

InstructorStart DateDaysTimeLocation

A course in application of parametric and nonparametric single and multivariable data analytic techniques to sports. Topics will include: linear regression, correlation, confounding and interactions, variable selection, categorical predictors and outcomes, logistic regression, factor analysis, discriminant analysis, and regression techniques with longitudinal data.

InstructorStart DateDaysTimeLocation
STA364-A
Noh, Heewon Esther_AKA:_Esther_L
01/13/2025 TTh 10:30 AM - 12:00 PM James Complex 375

This course focuses on developing and optimizing applications software on massively parallel graphics processing units (GPUs). Such processing units routinely come with hundreds to thousands of cores per chip and sell for a few hundred to a few thousand dollars. The massive parallelism they offer allows applications to run 2x-450x faster than on conventional multicores. However, to reach this performance improvement, the application must fully utilize the computational, storage, and communication resources provided by the device.

InstructorStart DateDaysTimeLocation

Students must take both research and project courses (6 units total), including:

This course introduces students to advanced research methodologies and project design principles in computer science. Topics include hypothesis formulation, literature review, research ethics, experimental design, and technical writing. Students will develop proposals and prepare for their capstone projects under the guidance of their faculty advisor.

InstructorStart DateDaysTimeLocation

The Capstone Project provides an opportunity for students to engage in high-level inquiry focusing on an area of specialization within the profession. Capstone projects will be inquiry and practice-centered and will draw upon areas of interest to the student and focus from the program such as philosophy, sociology, policy, research, principles of pedagogy, curriculum design, or technology, among others. All capstones aim to bridge theory and practice and are aimed to have an impact on the professional life of students. The course aims to facilitate the development of your Capstone Projects. Students are encouraged to apply and expend knowledge gained on teaching and learning throughout the Master of Science in Computer Science program as part of this process.

InstructorStart DateDaysTimeLocation

 

Additional Requirements

In addition to the 30 hours of curriculum requirements, students will be required to attend colloquium meetings throughout each semester in which they are enrolled. Colloquiums are expected to occur once every 3-4 weeks (roughly once a month). Colloquiums are designed to expose students to speakers performing relevant research and development in their field.

Pre-requisites

  • EGR 2270 - Data Structures and Analysis (or similar) OR CSC 3120 – Algorithms (or similar)
    • For CSC 5020 - Advanced Computer Networks
  • EGR 3290 - Computer Architecture (or similar)
    • For CSC 5040 - Advanced Computer Architecture
  • STA 3100 - Math Statistics I (or similar, potentially more rudimentary like STA 144)
    • For CSC 4220/4230/4240 and STA courses

Students must have coursework in computer programming and/or able to demonstrate significant coding capacity through industry experience, coding bootcamps, etc. In the case where no formal coursework in computer programming is evident on a transcript, the department chair or program director will ascertain proficiency or pre-requisite coursework for acceptance into the program.


*Curriculum subject to change. Please refer to the current catalog for more information.