# teaching

Vēritās līberābit vōs

MAT2041 Linear Algebra: Theory and Applications

This is a new and fundamental course designed for the freshmen in the school of data science (SDS). Different from traditional linear algebra courses, we introduce a modern syllabus and try to make the fundamental concepts in linear algebra more understandable while also provide students with rigorous math training. Instead of starting the first lecture by introducing methods to solve a system of linear equations, we think it is not only important to tell the students *how*, but also *why* to solve the problems. Lots of data science problems are provided to motivate the need of mathematical treatment and concepts, and demonstrate the usefulness of linear algebra.

DDA4210 Advanced Machine Learning

This course introduces advanced theory, algorithms, and applications of machine learning. Topics include: advanced ensemble learning methods; advanced learning theory; advanced applications such as recommendation systems; nonlinear dimension reduction, denoising, spectral clustering; generative models such as VAE and GAN; semi-supervised learning and GNN; causal inference, causal discovery, graphical and structural models, DAGs; attributes in trustworthy machine learning, interpretability and explainability, biases, fairness and safety, fair causal reasoning, adversarial machine learning, NN robustness and applications. This course requires students to have intermediate mathematical and programming backgrounds in machine learning and deep learning.

This course introduces advanced theory and applications of online algorithms. Topics include introduction to online algorithms; classical online problems; regret and competitive ratio; multi-armed bandit problems; online convex optimization; follow-the-regularized-leader and applications; no-regret dynamics in games; online algorithms with predictions. This course requires students to have advanced mathematical backgrounds in machine learning and algorithms.

CSC1001 Introduction to Computer Science: Programming Methodology

This course introduces the basics of computer programming using Python. Students will learn the basic elements of modern computer systems, key programming concepts, problem solving and basic algorithm design. The key topics include the basic Python language syntax, data types, operators, flow control, defining and using function, I/O, data structure and algorithms, and the basics of object oriented programing. This course provides a foundation to further study in advanced computing topics.