Computer Science MS-CS (CSCA)

CSCA 5008 (1) Fundamentals of Software Architecture for Big Data

Intended for individuals looking to understand the basics of software engineering as they relate to building large software systems that leverage big data. Students will be introduced to software engineering concepts necessary to build and scale large, data intensive, distributed systems. Starting with software engineering best practices and loosely coupled, highly cohesive data microservices, the course takes students through the evolution of a distributed system over time. Formerly offered as a special topics course.

Equivalent - Duplicate Degree Credit Not Granted: DTSA 5507
Grading Basis: Letter Grade

CSCA 5018 (1) Software Architecture Patterns for Big Data

Intended for individuals looking to understand the architecture patterns necessary to take large software systems that leverage big data to production. Students will transform big data prototypes into high quality tested production software. After measuring the performance characteristics of distributed systems, they will identify trouble areas and implement scalable solutions to improve performance. Upon completion of the course they will know how to scale production datastores to perform under load, designing load tests to ensure applications meet performance requirements. Formerly offered as a special topics course.

Equivalent - Duplicate Degree Credit Not Granted: DTSA 5508
Grading Basis: Letter Grade

CSCA 5028 (1) Applications of Software Architecture for Big Data

Intended for individuals who want to build a production-quality software system that leverages big data. Students will apply the basics of software engineering and architecture to create a production-ready distributed system that handles big data. Students will build and scale a large, data intensive, distributed system, composed of loosely coupled, highly cohesive data microservices.

Equivalent - Duplicate Degree Credit Not Granted: DTSA 5714
Grading Basis: Letter Grade

CSCA 5112 (1) Introduction to Generative AI

Students will learn about several topics related to Generative AI, including deep learning and machine learning algorithms that enable machines to generate text, images, and music. Additionally, they will also learn about the diffusion model and transformer model, which are important techniques used in Generative AI. The course will guide students on how to apply these techniques to design and build their own generative models and apply those models to new problems.

Grading Basis: Letter Grade

CSCA 5214 (1) Computing, Ethics, and Society 1 - Foundations

Computing systems and technologies fundamentally impact the lives of most people in the world, including how we communicate, get information, socialize, and receive healthcare. This course is the first of a three course sequence that examines ethical issues in the design and implementation of computing systems and technologies, and reflects upon the broad implication of computing on our society. It covers ethical theories, privacy, security, social media, and misinformation.

Grading Basis: Letter Grade

CSCA 5224 (1) Computing, Ethics, and Society 2 - Algorithmic Bias and Professional Ethics

Computing systems and technologies fundamentally impact the lives of most people in the world, including how we communicate, get information, socialize, and receive healthcare. This course is the second of a three course sequence that examines ethical issues in the design and implementation of computing systems and technologies, and reflects upon the broad implication of computing on our society. It covers algorithmic bias in machine learning methods, professional ethics, and issues in the tech workplace.

Grading Basis: Letter Grade

CSCA 5234 (1) Computing, Ethics, and Society 3 - Applications

Computing systems and technologies fundamentally impact the lives of most people in the world, including how we communicate, get information, socialize, and receive healthcare. This course is the third of a three course sequence that examines ethical issues in the design and implementation of computing systems and technologies, and reflects upon the broad implication of computing on our society. It covers medical applications, uses of robotics, autonomous vehicles, and the future of work.

Grading Basis: Letter Grade

CSCA 5312 (1) Basic Robotic Behaviors and Odometry

Introduction to autonomous mobile robots, including forward kinematics (¿odometry¿), basic sensors and actuator, and simple reactive behavior. The course is centered around two laboratory exercises in the realistic, physics-based simulator ¿Webots¿ in which students will experiment with simple reactive behaviors for collision avoidance and line following, state machines, and basic forward kinematics of non-holonomic systems. An overarching objective of this course is to understand the role of the physical system on algorithm design and its role as source of uncertainty that makes robots non-deterministic.

Grading Basis: Letter Grade

CSCA 5332 (1) Robotic Mapping and Trajectory Generation

Building upon the course ¿Basic Robotic Behaviors and Odometry¿, students will learn how to perform basic inverse kinematics of (non-)holonomic systems using a feedback control approach and how to process multi-dimensional sensor signals such as laser range scanners to create discrete representations of the environment (mapping). Also in this course, the overarching focus is mechanisms and sensors as sources of uncertainty and techniques to model and control for them.

Grading Basis: Letter Grade

CSCA 5342 (1) Robotic Path Planning and Task Execution

Building upon the courses ¿Basic Robotic Behaviors and Odometry¿ and ¿Robotic Mapping and Trajectory Generation¿, students will learn how implement high-level reasoning for generating trajectories (path planning) and sequencing tasks under uncertainty of sensing and actuation. As a first cap stone in the robotics specialization, this course will also lead toward the implementation of a complex mobile manipulation system, combining behaviors, sensing, control and planning developed in previous modules.

Grading Basis: Letter Grade

CSCA 5414 (1) Dynamic Programming, Greedy Algorithms

This course covers basic algorithm design techniques such as divide and conquer, dynamic programming, and greedy algorithms. It concludes with a brief introduction to intractability (NP-completeness) and using linear/integer programming solvers for solving optimization problems.

Equivalent - Duplicate Degree Credit Not Granted: DTSA 5503
Grading Basis: Letter Grade

CSCA 5424 (1) Approximation Algorithms and Linear Programming

Covers ideas surrounding approximation algorithms including a rigorous mathematical analysis of the approximation guarantees provided by these algorithms. Teaches the use of linear/integer programming formulations for common algorithmic problems and the relation between integer optimization problems and their linear programming relaxations. Introduces key mathematical concepts needed to analyze these algorithms and explores the application of algorithmic concepts to real-world problems.

Grading Basis: Letter Grade

CSCA 5454 (1) Advanced Data Structures, RSA and Quantum Algorithms

Covers advanced ideas in data structures such as B-Trees and Fibonacci heaps while presenting further applications of amortized analyses. Introduces number theoretic algorithms that form the basis of RSA public-key cryptography. Provides a brief introduction to quantum computing/algorithms by teaching the basics of quantum computation and two important examples of efficient quantum algorithms. Introduces key mathematical concepts needed to analyze these algorithms and explores the application of algorithmic concepts to real-world problems.

Grading Basis: Letter Grade

CSCA 5502 (1) Data Mining Pipeline

This course introduces the key steps involved in the data mining pipeline, including data understanding, data preprocessing, data warehouse, data modeling, interpretation and evaluation, and real-world applications.

Equivalent - Duplicate Degree Credit Not Granted: DTSA 5504
Grading Basis: Letter Grade

CSCA 5512 (1) Data Mining Methods

This course covers core techniques used in data mining, including frequent pattern analysis, classification, clustering, outlier detection, as well as time-series mining and graph mining.

Equivalent - Duplicate Degree Credit Not Granted: DTSA 5505
Grading Basis: Letter Grade

CSCA 5522 (1) Data Mining Project

This course offers step-by-step guidance and hands-on experience of designing and implementing a real-world data mining project, including problem formulation, literature survey, proposed work, evaluation, discussion and future work.

Equivalent - Duplicate Degree Credit Not Granted: DTSA 5506
Grading Basis: Letter Grade

CSCA 5622 (1) Introduction to Machine Learning - Supervised Learning

This course introduces various supervised ML algorithms and prediction tasks applied to different data. Specific topics include linear and logistic regression, KNN, Decision trees, ensemble methods such as Random Forest and Boosting, and kernel methods such as SVM. Formerly offered as a special topics course.

Equivalent - Duplicate Degree Credit Not Granted: DTSA 5509
Grading Basis: Letter Grade

CSCA 5632 (1) Unsupervised Algorithms in Machine Learning

Students will learn selected unsupervised learning methods for dimensionality reduction, clustering, finding latent features, and application cases such as recommender systems with hands-on examples of product recommendation algorithms. Formerly offered as a special topics course.

Equivalent - Duplicate Degree Credit Not Granted: DTSA 5510
Grading Basis: Letter Grade

CSCA 5642 (1) Introduction to Deep Learning

Course will cover the basics of deep learning, such as multilayer perceptron, convolutional neural network, recurrent neural network, how to build and train neural network models, optimization methods, and application examples. Formerly offered as a special topics course.

Equivalent - Duplicate Degree Credit Not Granted: DTSA 5511
Grading Basis: Letter Grade

CSCA 5702 (1) Fundamentals of Data Visualization

Explores the design, development, and evaluation of information visualizations. Combine aspects of design, computer graphics, HCI, and data science, to gain hands-on experience with creating visualizations, using exploratory tools, and architecting data narratives. Topics include user-centered design, web-based visualization, data cognition and perception, and design evaluation.

Equivalent - Duplicate Degree Credit Not Granted: DTSA 5304
Grading Basis: Letter Grade

CSCA 5812 (1) Deep Learning Applications for Computer Vision

Students will learn about Computer Vision as a field of study and research. They explore several Computer Vision tasks and suggested approaches, from the classic Computer Vision perspective. They'll be introduced to Deep Learning methods and apply them to some of the same problems. They will analyze the results and discuss advantages and drawbacks of both types of methods. Examples of Computer Vision tasks where Deep Learning can be applied include: image classification, image classification with localization, object detection, object segmentation, facial recognition, and activity or pose estimation.

Equivalent - Duplicate Degree Credit Not Granted: DTSA 5707
Grading Basis: Letter Grade

CSCA 5832 (1) Fundamentals of Natural Language Processing

The field of natural language processing aims at getting computers to perform useful and interesting tasks with human language. This course introduces students to the fundamental problems in NLP, the fundamental techniques that are used to solve those problems and lays the foundation for understanding state-of-art methods. At the end of the course, students will be able to implement and analyze text classifiers, sequence labelers, discrete probabilistic models, and vector-based approaches to word meaning.

Grading Basis: Letter Grade

CSCA 5834 (1) Modeling of Autonomous Systems

This course will explain the core structure in any autonomous system which includes sensors, actuators, and potentially communication networks. Then, it will cover different formal modeling frameworks used for autonomous systems including state-space representations (difference or differential equations), timed automata, hybrid automata, and in general transition systems. It will describe solutions and behaviors of systems and different interconnections between systems.

Grading Basis: Letter Grade

CSCA 5842 (1) Deep Learning for Natural Language Processing

Deep learning has revolutionized the field of natural language processing and led to many state-of-the-art results. This course introduces students to neural network models and training algorithms frequently used in natural language processing. At the end of this course, learners will be able to explain and implement feedforward networks, recurrent neural networks, convolutional neural networks, and transformers. They will also have an understanding of transfer learning, the paradigm behind popular models such as BERT and GPT-3.

Grading Basis: Letter Grade

CSCA 5844 (1) Requirement Specifications for Autonomous Systems

This course will discuss different ways of formally modeling requirements of interest for autonomous systems. Examples of such requirements include stability, invariance, reachability, regular languages, omega-regular languages, and linear temporal logic properties. In addition, it will introduce non-deterministic finite and büchi automata for recognizing, respectively, regular languages and omega-regular languages.

Grading Basis: Letter Grade

CSCA 5852 (1) Model and Error Analysis for Natural Language Processing

Understanding the performance of natural language processing models goes beyond simply computing measures like accuracy. In this course we will learn methods for analyzing the strengths and weaknesses of NLP systems, both neural and non-neural. We will also learn about problematic biases in NLP data and systems. Methods covered include standard benchmarks, qualitative error analysis, confusion matrices, contrastive and diagnostic evaluation, and probing experiments.

Grading Basis: Letter Grade

CSCA 5854 (1) Verification and Synthesis of Autonomous Systems

This course will provide different techniques on the verification of autonomous systems against stability, regular, or omega-regular properties. Such techniques include Lyapunov theories, reachability analysis, barrier certificates, and model checking. Finally, it will introduce several techniques on designing controllers enforcing properties of interest over the original autonomous systems.

Grading Basis: Letter Grade

CSCA 5859 (1) Ideating and Prototyping Interfaces

User interfaces are a core part of everyday work, learning, and entertainment. To learn how to create a successful user interface is key behind the most successful products we use on our phones and the web. This course is the first in a series of three in this specialization on Human-Computer Interaction (HCI). It covers the fundamental methods in conducting HCI research and practice. During this course, you will practice core skills related to HCI work, such as brainstorming, sketching, prototyping. By examining prominent examples of past HCI successes and failures, you will identify design practices that help you create great user experiences. By the end of the course, you will know how to ideate, design and create user interfaces through practical examples and have started a portfolio of example designs for your future practice. Please note, to complete this course, you will need access to a computer or laptop, a camera or similar device (such as a webcam), and paper and pen/pencils.

Grading Basis: Letter Grade

CSCA 5869 (1) User Interface Testing and Usability

This course is the second in a series of three in this specialization on Human-Computer Interaction (HCI). This course focuses on evaluating user interfaces to develop new user interface ideas or improve existing ones. You will learn how to understand the users¿ needs, their abilities, the context that they operate in and their unique challenges through theory and practical methods. You will practice how to evaluate a user interface through standard industry practices and how to communicate the outcome to your peers. You will also compare between different low-cost methods to rapidly evaluate alternative user interface ideas as you iterate on your interface ideas. By the end of this course, you will be able to successfully assess a user interface and generate actionable insights through user testing. Please note, to complete this course, you will need access to a computer or laptop, a camera or similar device (such as a webcam), and paper and pen/pencils.

Grading Basis: Letter Grade

CSCA 5879 (1) Emerging Topics in HCI: Designing for VR, AR, AI

Human-Computer Interaction (HCI) is rapidly moving beyond the standard graphical user interface that has long dominated how we engage with computers. In this final course in the specialization on Human-Computer Interaction (HCI), you will be introduced to emerging HCI topics like voice assistants, virtual and augmented reality, and embodied computing interfaces. Throughout the course, you will learn how to prototype and user test these emerging interfaces. Please note, to complete this course, you will need access to a computer or laptop, a camera or similar device (such as a webcam), and paper and pen/pencils.

Grading Basis: Letter Grade

CSCA 7000 (1) Special Topics

Examines a special topic in Computer Science.

Repeatable: Repeatable for up to 8.00 total credit hours. Allows multiple enrollment in term.
Grading Basis: Letter Grade