DSAI Full Course List
The Data Science & AI major equips students with advanced IT skills, preparing them for a rapidly evolving digital environment. The major prepares graduates for careers as data scientists, data analysts, AI engineers, and digital-business specialists, as well as for further study in technical or professional master's programs.
Introduction to Data Science and Programming
This course introduces the foundations of data science and shows how data can be transformed into meaningful insights through computation and programming. Students learn to explore, visualize, and analyze relevant data while gaining hands-on experience writing practical programs. Using Python, the course builds confidence in problem-solving and data-driven thinking. It is an ideal starting point for students interested in understanding how data powers modern decision-making and technology.
Introduction to Data Analytics
This course introduces statistical thinking for analyzing and interpreting data in real-world contexts. Students learn core concepts such as exploratory data analysis, probability, hypothesis testing, and regression. Using the R programming language, the course emphasizes hands-on analysis of data science problems. It builds a strong foundation for evidence-based decision-making using data.
Mathematics for Data Science I
This course teaches essential calculus concepts for data science, as well as their mathematical notation, physical meaning, and geometric interpretation. Students will gain insight into real-world applications of these mathematical concepts, as well as an understanding of the differentiation and integration of single variable and coordinated systems, to develop fundamental computation skills for problem solving.
Mathematics for Data Science II
This course expands mathematical foundations with vectors and matrices, partial derivatives, double and triple integrals, vector calculus, and discrete mathematics. Fundamental concepts are also taught, including definitions, proofs, sets, functions, graphs and networks. Students will be able to explain and apply discrete methods in subsequent courses in the design and analysis of algorithms, software engineering, and computer systems.
Statistics for Data Science
This course introduces probabilistic reasoning and statistical models used in data science. Topics include conditional probability, distribution of random variables and order statistics, sampling and sampling distributions, law of large numbers, and central limit theorem. Students also learn statistical models including linear, binary, and multinomial logistic regression models, using the R computing language as applicable.
Statistical Analysis
This course explores the theoretical foundations of statistical inference and modeling. Students study topics including sufficiency and completeness, point estimation via maximum likelihood and Bayes, estimator optimality via UMVUE, hypothesis testing and confidence regions, and Markov chain Monte Carlo for Bayesian inference. Emphasis is placed on rigorous reasoning and research-level analysis. Extensive use of R prepares students for advanced data science research and applications.
Computation Structures
This course introduces the architecture of digital systems, emphasizing structural principles common to a wide range of technologies. This course covers topics including multilevel implementation strategies, the definitions of new primitives and their mechanization using lower-level elements, and other topics, providing a deep understanding of how computation works beneath the surface.
System Design
This course covers topics on the engineering of computer software and hardware systems. Topics include techniques for controlling complexity, modularity using client-server design, operating systems, networks, security and privacy.
Software Construction
This course examines fundamental principles and techniques of software development. Students learn techniques on writing software that is safe, adaptable and easy to understand. Topics covered in this course include specifications and invariants, testing, abstract data types, design patterns for object-oriented programming, concurrent programming and concurrency, and functional programming.
Principles of Algorithms
This course provides an introduction to mathematical modeling of computational problems. It covers the common algorithms, algorithmic paradigms, and data structures used to solve these problems. The course emphasizes the relationship between algorithms and programming, and introduces basic performance measures and analysis techniques for these problems.
Discrete Optimization
This is an intermediate algorithms course that examines the design and analysis of efficient algorithms, with an emphasis on methods of application. Topics include divide-and-conquer, randomization, dynamic programming, greedy algorithms, incremental improvement, complexity, and cryptography.
Python for Data Science
This course examines techniques for using Python in data science as well as the different frameworks in Python for solving real-world problems. Students learn to use standard Python tools to write code for data collection, preprocessing, analysis and visualization. This course also discusses using AI-assisted coding tools responsibly while maintaining correctness and reproducibility.
Practical Programming in C
This course introduces the C programming language, a foundation of modern operating systems and embedded systems. Students learn core syntax and practical programming techniques, progressing to advanced topics such as memory management, concurrency, and synchronization. The course prepares students for careers in systems and embedded software development.
Big Data Management
This course examines database design and SQL programming, the foundations of database systems, and core concepts such as the relational algebra and data model, query optimization, query processing, and transactions. Students learn how to design and implement data strategies, on-premise and cloud systems, and centralized and distributed architectures. With this knowledge, students are empowered to make informed decisions about which technologies to use in certain situations for specific goals.
Principles of Machine Learning
This course introduces principles, algorithms, and applications of machine learning from the point of view of modeling and prediction. It includes the formulation of learning problems and concepts of representation, over-fitting, and generalization. These concepts are exercised in supervised learning and reinforcement learning, with a variety of practical applications.
Principles of Deep Learning
This course explores neural networks and modern deep learning architectures inspired by the human brain. Students learn models such as Convolutional and Recurrent Neural Networks used in computer vision and speech recognition. The course emphasizes practical problem-solving with deep learning techniques. Students gain insight into how deep learning enables powerful AI systems.
Natural Language Processing
The course is to study algorithms for understanding, interpreting and generating human language. You will learn theory and practice leading to design and development of a wide spectrum of applications like sentiment analysis, machine translation, text classification, question answering, text summarization, and building chatbots utilizing human language processing, affective computing and cognitive computing.
Generative AI
This course introduces the core concepts and practical applications of Generative AI and large language models. Students learn prompt engineering, output evaluation, and application design using existing AI tools and platforms. The course emphasizes responsible use, addressing ethical, social, bias, and reliability concerns. It prepares students to apply generative AI effectively in digital and business contexts.
AI Engineering
This course focuses on building, deploying, and managing AI-powered applications. Students learn to connect Large Language Models or Machine Learning Models to software via Application Programming Interfaces, and to turn various models into scalable and reliable products.
Data Science and AI Project I
This first capstone course allows students to apply their knowledge to a real-world data science or AI project. Working in teams, students define a problem, acquire and preprocess data, and begin designing an AI solution. The course emphasizes project planning, collaboration, and iterative development. It lays the foundation for a complete end-to-end AI system.
Data Science and AI Project II
Building on Project I, this course focuses on refining and completing the capstone project. Students improve models, strengthen system design, and conduct rigorous evaluation. The course emphasizes professional documentation and presentation of results. Students complete the course with a polished project suitable for portfolios and industry use.
AI & Intelligent Product Development
This course explores how AI can be embedded into products across their entire lifecycle. Students learn to integrate AI with product design, intelligent agents, and platform-based development. This course examines AI opportunities across different industries and application domains, preparing students to design and architect intelligent, AI-enabled products.
Network and Computer Security
This course introduces core concepts in network and computer security in four main units: (1) security concepts and approaches; (2) cybersecurity threats; (3) cybersecurity mechanisms; and (4) emerging cybersecurity topics. Students learn the fundamentals of cryptography, network security, and secure coding practices, including secure development for AI-enabled systems when relevant. The course emphasizes identifying vulnerabilities and applying security-by-design principles to protect devices, data, and networks.
Quantum Information and Computation
This advanced, intensive course examines quantum computation and emerging quantum technologies. Students study foundational theory alongside hands-on Python implementation using scientific computing libraries such as NumPy and SciPy. This course includes designing and running quantum algorithms on IBM's real quantum hardware. It prepares motivated students for advanced research and future work in quantum computing.
Business Analytics and AI
This course teaches how to apply the business analytics lifecycle to real-world business problems, including data preprocessing, exploratory data analysis, feature engineering, and the development of statistical, machine-learning, and/or deep learning models. Students will demonstrate independent thinking in business analytics projects by generating new ideas, defining key performance indicators (KPIs), following the data science workflow, and executing analytics projects while considering cost-effectiveness, KPI-based performance, and model explainability.