CSC 5201—Microservices and Cloud Computing (4 Credits)
Course Description
This course introduces the concepts, architectural, and practical techniques needed to design and implement cloud-native microservices. Students will design, implement, deploy, and operate a microservice using widely used technologies and current best practices.
Emphasis will be placed on scalable web and machine learning services. Students will apply what they learn in a series of hands-on lab exercises and complete a final project using a distributed computing platform.
Course Learning Outcomes
Upon successful completion of this course, the student will be able to:
- Leverage containerization to package and run software
- Design and implement a basic microservice that interacts through REST APIs, implements access control, uses distributed storage systems, and is deployed in a containerized form
- Apply access control patterns using authentication and authorization following security best practices
- Analyze and identify potential throughput, scalability, reliability, and consistency issues with distributed microservice architectures
- Create and manage continuous integration and deployment to automate software related to microservices and pipelines
- Deploy a multi-service distributed application using a container orchestration tool
Prerequisites by Topic
- Version control/Git
- Operating systems
- Databases
Course Topics
- Virtual machines and containers and associated best practices for writing containerized, stateless applications
- Microservice architectures and implementation patterns including event-driven architectures and designing and implementing REST APIs
- Distributed storage systems (e.g., key-value stores, columnar stores, object stores, distributed file systems, and relational databases), tradeoffs between consistency, availability, and partition tolerance, and efficient access patterns
- Continuous integration and deployment technologies and usage patterns
- Tooling for orchestration and deployment of multi-service systems
- Software, Function, Platform, and Infrastructure as service paradigms and implementing systems
- Discussion of public cloud services and comparisons of their offerings
Coordinator: Dr. RJ Nowling
CSC 5610—AI Tools and Paradigms (4 credits)
Course Description
This course introduces topics, tools, languages, and methods used in modern AI practice. Subjects of study include a survey of tools used to perform analysis, data preparation, and visualization along with the algorithms, concepts, and theory underpinning AI. Exercises and assignments will expose students to Jupyter Notebooks and libraries in the Python ecosystem for data science, machine learning, and AI.
Course Learning Outcomes
Upon successful completion of this course, you will be able to:
- Use a Jupyter notebook environment to write, structure, run, document (with Markdown), and debug Python programs
- Use Series and Data Frames to load, manipulate, and analyze tabular data sets
- Leverage appropriate libraries to solve non-trivial data cleaning, preparation, and transformation challenges
- Employ a plotting library to create simple plots such as histograms, bar or column charts, line plots, and scatter plots including legends, appropriate axis ranges and labels, appropriate font sizes and resolutions
- Use exploratory data analysis (e.g., summary statistics and visualizations) to characterize data sets and generate hypotheses about the relationships of variables
- Use a library to train machine learning models and apply models to generate predictions for data
- Apply and interpret appropriate metrics for evaluating predictions from machine learning models
- Describe the components of the intelligent agent framework
- Apply agent and state-based frameworks to solve various problems, such as game playing
- Provide examples of search problems and techniques for solving them
- Describe algorithms such as value iteration and q-learning for identifying optimal policies
- Describe the role of heuristics and describe the trade-offs among completeness, optimality, time complexity, and space complexity
- Communicate computational results and interpretations in language appropriate for a technical audience
- Identify ethical implications of potential biases in data sets, algorithms, and applications of AI
Prerequisites by Topic
Coordinator: Dr. RJ Nowling
CSC 6605—Machine Learning Production Systems (4 Credits)
Course Description
Students will design, implement, deploy, and operate a machine learning-powered service, including components for data processing, model training, modeling serving, model evaluation, and monitoring. Technologies and design patterns for streaming and batch data processing as well as storage systems will be introduced.
This course builds on and integrates previous course work in offline machine learning and microservices.
Course Learning Outcomes
Upon successful completion of this course, the student will be able to:
- Design, implement, deploy, and operate a machine learning-powered RESTful service and supporting backend systems
- Design and implement data processing systems that use batch and stream processing patterns and technologies for ingesting and processing event data
- Apply design patterns and data storage systems to design and implement data storage services to support batch and streaming data processing, model training, and model evaluation
- Create distributed systems to support model training and evaluation
- Automate and monitor model training, evaluation, deployment, and operation
- Evaluate and compare architectures of ML-powered Systems
Prerequisites by Topic
- Cloud computing
- Micro services
- Machine learning
Course Topics
- Distributed batch and streaming data processing platforms and associated programming paradigms
- Data representation and storage patterns to support batch and streaming data pipelines and services
- Reliability, consistency, and scalability challenges and solutions for big data systems
- Patterns for handling model training and evaluation on data that changes or updates over time
- Tradeoffs between batch and streaming systems in terms of efficiency, computational capabilities, and time until updates are available based on new data
- Model serving and deployment
- Monitoring and alerting for services and performance of machine learning model predictions
- Implementation of systems for common machine learning tasks such as classification/regression and recommendations
Coordinator: Dr. RJ Nowling
CSC 6621—Applied Machine Learning (4 credits)
Course Description
This course introduces concepts of machine learning that explore the study and construction of algorithms that can learn from and make predictions on data.
Topics include conceptual aspects of machine learning, feature engineering, an introduction to deep learning, and applications of machine learning and deep learning. Students will reinforce their learning of machine learning algorithms with hands-on laboratory exercises for development of representative applications.
Course Learning Outcomes
Upon successful completion of this course, you will be able to:
- Understand the fundamental concepts and application of supervised, unsupervised, semi-supervised, and reinforcement learning
- Analyze and describe machine learning algorithms including (but not limited to) logistic regression, SVMs, and decision trees
- Explain the geometric interpretations of linear and non-linear decision boundaries and their relationship to error metrics (e.g., accuracy)
- Understand the concepts of learning theory, (e.g., what is learnable, bias, variance, overfitting, curse of dimensionality, splitting data for evaluation of model predictions)
- Estimate and plot decision boundaries described by trained models
- Interpret coordinate systems and distinguish between feature and parameter spaces
- Derive, visualize, apply, and interpret metrics and loss functions to assess the quality of model predictions and fit to data
- Choose and justify appropriate experimental designs (e.g., test-train split, cross-fold validation) for evaluating machine learning models
- Encode non-numerical variables in tabular data as numerical features
- Describe implications of feature representations with respect to linear separability
- Apply approaches for engineering and evaluating new features from existing
- Describe the fundamentals of deep learning and what is required to be able to use it
- Compare various modern deep neural network architectures (e.g., convolutional neural networks (CNNs), encoder-decoders, generative adversarial networks (GANs), or transformers).
- Describe industry examples where deep learning can be used to solve real-world problems
Prerequisites by Topic
- Software development
- Python
- Jupyter Notebooks
Coordinator: Dr. RJ Nowling
CSC 7901—Machine Learning Capstone (4 Credits)
Course Description
Students work on a significant machine learning project that incorporates knowledge from previous course work. Throughout the project students will be supported by a faculty advisor who will meet regularly for project updates and guidance. The capstone concludes with a final report and presentation to faculty and industry representatives.
Course Learning Outcomes
Upon successful completion of this course, the student will be able to:
- Integrate and apply knowledge and skills acquired in previous course work
- Analyze a complex data science problem and apply principles of machine learning to design, implement, and deploy a solution
- Effectively communicate the design, implementation, and impacts of the solution
- Identify and address ethical and governance aspects of the problem and solution
Prerequisites by Topic
Machine learning
AI tools
Coordinator: Dr. Derek Riley
MTH 5810—Mathematical Methods for Machine Learning (4 Credits)
Course Description
This course surveys the essential linear algebra and multivariate calculus required for graduate study in machine learning.
Topics include matrix algebra, real vector spaces, inner product spaces, differentiation and Newton’s method, partial differentiation, the gradient, the chain rule, and optimization of multivariate functions.
Course Learning Outcomes
Upon successful completion of this course, the student will be able to:
- Describe linear and affine subsets of three-dimensional space both algebraically and geometrically
- Interpret the value of a dot product geometrically
- Interpret functions of two variables via the corresponding surface, level curves, and contour plot
- Perform elementary operations with matrices including manipulating expressions and equations involving matrices
- Determine if a matrix is invertible and find its inverse in this case
- Solve systems of linear equations using matrix methods and technology
- Express the solutions of a consistent matrix equation in parametric vector form
- Determine if a subset of n-dimensional space is a subspace
- Find the matrix of a linear transformation and bases for its kernel and range
- Show that a real number is an eigenvalue of a matrix with real number entries by finding the corresponding eigenvectors
- Determine the eigenvalues of a matrix using technology
- Use the inner product to find the length of a vector and the distance between two vectors
- Determine if a set of vectors is an orthogonal basis for a subspace of R^n
- Find the projection of a vector onto a subspace of R^n
- Find a general linear model by solving the normal equation
- Find and interpret the singular value decomposition of a matrix using technology
- Use numerical methods to locate extrema of a single-variable function
- Perform operations with series representations of the single-variable elementary functions
- Find first and higher-order partial derivatives of a function
- Interpret partial derivatives as rates of change in applications
- Find the total differential of a function of more than one variable, use it to estimate change
- Estimate error propagation using the total differential
- Construct the matrix form of the multivariate chain rule and use it to find a derivative
- Find the gradient of a function and interpret its direction
- Find directional derivatives of a function and interpret the results
- Determine the maximum, minimum, and saddle points on a surface
- Interpret mathematics from machine learning literature
Prerequisites by Topic
Single-variable calculus
Course Topics
- Geometry in three dimensions: lines, planes, distance, surfaces, vectors, and the dot product
- Matrix algebra
- Matrix equations and invertibility
- Real vector spaces
- Linear transformations and their matrices
- Inner products, orthogonality, projection, and applications
- Eigenvectors and eigenvalues and interpretation of matrix factorizations
- Review of single-variable differentiation
- Taylor series of elementary functions
- Finding critical points analytically and numerically
- Partial derivatives
- Gradients, directional derivatives, and the Jacobian
- Extrema of functions of two variables
Coordinator: Dr. Anthony van Groningen
PHL 6001—AI Ethics and Governance (4 Credits)
Course Description
This course introduces students to some of the central ethical issues in existing and emerging digital technologies, with an emphasis on the ethics of artificial intelligence (AI), as well as how these issues arise in the context of organizational governance and compliance. Students will explore topics in digital and AI ethics with respect to relevant professional areas-such as data science, computer science, software engineering, user experience and design, among others-as well as topics concerning the broader social implications of digital technologies and the ethical challenges they raise.
The goal of the course is to critically engage with these topics and cases interactively, studying both their theoretical, philosophical context and their practical implications, so that students can pursue continued, independent reflection on key issues in digital and AI ethics and apply the guiding ethical principles that emerge to their own professional and personal lives. In addition to addressing these ethical challenges, students will consider how organizations and institutions—corporations, IRBs, and legislative bodies—can or should respond to such challenges through regulation, oversight, or other mechanisms. Students will be encouraged to draw on their own professional experience in assessing key questions and cases in digital and AI ethics.
Course Learning Outcomes
Upon successful completion of this course, the student will be able to:
- Demonstrate advanced knowledge of existing ethical issues in digital technologies and AI
- Anticipate ethical issues arising from emerging digital technologies and developments in AI
- Identify the philosophical bases for ethical concerns surrounding digital technologies and AI
- Exhibit familiarity with and understanding of established ethical frameworks, concepts, and principles within ethical theory
- Synthesize those theoretical frameworks, concepts, and principles and connect them to applied issues, using the theoretical resources to help understand and resolve the applied issues while at the same time scrutinizing the theoretical principles by evaluating their real-world implications
- Evaluate competing considerations about engineers’ and designers’ moral responsibility for the products they create and services they provide
- Engage in independent ethical reasoning on novel problems using theoretical and practical ethical resources learned
- Foster ethical behavior and integrity in their professional and personal lives using the theoretical and practical resources learned
- Develop concrete proposals for addressing ethical challenges in digital technologies and AI at the level of organizational governance
Course Topics
- Ethical frameworks, concepts, and principles (consequentialism, deontology, rights, etc.)
- Ethics of information, part I: privacy and transparency
- Ethics of information, part II: intellectual property, individual liberties, and human rights
- Algorithmic bias, “weapons of math destruction,” and social justice
- The “black box” explainability problem in deep learning AI
- Ethics of human-AI interaction and impact on social relationships (e.g., anthropomorphic framing in AI and robotics)
- Digital technologies and human wellbeing: digital media and mental health
- Digital technologies and democracy: digital media, filtering, misinformation, and political polarization
- AI and human work: automation, worker displacement, and the meaning of work
- Ethics of design and user experience: “dark patterns” and user agency
- Ethics of data capture, digital advertising, and “surveillance capitalism”
- Ethics of biometric identification
- Data privacy and regulatory mechanisms: GDPR, HIPAA, IRB regulations, etc.
- The internet, social media, and the question of legal status (e.g., public utility status, technology or publishing company status, etc.)
- Artificial moral agency, part I: theory
- Artificial moral agency, part II: application (e.g., ethics settings in driverless cars, constraints on autonomous weapons systems, etc.)
Coordinator: Dr. Andrew McAninch