Teaching
Teaching and mentoring at KU has been a gratifying experience, enabling me to positively influence students in their academic pursuits. My vision of teaching is to inspire the curiosities of students during classroom teaching. The primary subjects I have been teaching at KU are data science and fundamental algorithms. Detailed course schedules are available on Canvas.
- EECS 836 Machine Learning Spring/2024, 2023, 2022
- Machine learning aims to understand the structure of data and fit the data into models that can be utilized by people. From automating mundane tasks to offering intelligent insights, a variety of machine learning techniques, like computer vision, natural language processing, and recommendation systems have made a massive change in every sector of the economy. This course will explain the fundamental principles, algorithm details, and applications of multiple areas of machine learning by lectures and case studies, including classification, regression, clustering, and deep learning. After taking this course, the students should be capable of (1) describing the techniques of machine learning and making informed trade-offs on what approaches to use; (2) formulating the machine learning projects for different problems and building modeling strategies; and (3) utilizing a variety of algorithms and tools to gather, process, derive, and evaluate insights from data.
- EECS 568 Introduction to Data Mining Fall/2024, 2023, 2022, 2021
- Data mining studies the algorithms and computational paradigms that allow computers to discover knowledge and perform decision automatically using large and complex datasets. In this course, we will explain the fundamental principles, technical details, and real-life applications of data mining techniques through lectures, case studies, and course projects. The core topics to be covered include data preprocessing, classification, cluster analysis, association analysis, anomaly detection, neural networks, model evaluation, and applications like recommender systems. After taking this course, the students should be able to (1) think systematically of how data mining can solve analytical problems, to make better informed decision, using various real-world data; (2) understand data mining process, algorithm development, and system design to build a pathway to the career of data scientist.
- EECS 330 Data Structures and Algorithms Fall/2024, 2023
- This introductory course explores the fundamental concepts of abstract data structures and algorithmic design, focusing on the practical implementation and analysis of these structures. Key topics include asymptotic analysis, trees, dictionaries, heaps, and disjoint set structures, as well as essential algorithmic strategies such as divide and conquer, greedy algorithms, and dynamic programming. Special emphasis is placed on understanding the performance tradeoffs associated with different data structures and algorithms. Students will learn to evaluate algorithm efficiency through both theoretical asymptotic complexity analysis and experimental profiling techniques. Hands-on labs are integrated into the course to provide practical experience in implementing various abstract data types and conducting experimental performance analysis. These labs will enable students to deepen their understanding of the material and develop the skills necessary to tackle complex computational problems.