Teaching
Of all that is expected of a professor, teaching remains the one—perhaps the only one—where value is certain.
Fall 2026
UFUG 1601 (Experimental Class): Introduction to Computer Science
Undergraduate, Year 1
An active-learning version of introductory computer science centered on Python programming, computational thinking, data analysis, and foundational AI concepts. Guided learning sheets, collaborative problem solving, and targeted mini-lectures replace much of the traditional long-form lecturing. Students are encouraged to use AI openly and thoughtfully while developing the ability to reason and work independently.
DSAA 6000T: Cloud & AI Infrastructure Systems
Postgraduate
A research-oriented course on the systems foundations of modern AI infrastructure. Topics include cloud-native execution, GPU orchestration, distributed training and serving, state and memory management, communication, SLO-aware optimization, and energy-efficient computing. The course combines paper reading, discussion, and a semester-long systems research project.
Spring 2026
DSAA 4040: Cloud Computing and Big Data Systems
Undergraduate, Year 3/4
An introduction to the design and operation of cloud and big-data systems. The course covers virtualization and containers, Kubernetes, distributed storage, batch and stream processing, resource management, and AI model serving. Hands-on labs use representative systems such as Docker, Kubernetes, HDFS, Spark, Kafka, and vLLM.
Fall 2025
UFUG 1601: Introduction to Computer Science
Undergraduate, Year 1
An introductory course in computational thinking and problem solving through Python. Students learn core programming concepts, basic data analysis, and introductory ideas in data science and artificial intelligence through lectures, exercises, and small projects.
Fall 2024
UFUG 1601: Introduction to Computer Science
Undergraduate, Year 1
An introductory course in computational thinking and problem solving through Python, with an emphasis on building a solid programming foundation and applying computational methods to practical problems.
Teaching Approach
- Learn actively: Students develop understanding by exploring, discussing, implementing, and reflecting.
- Connect concepts to systems: Abstract ideas are grounded in real tools, workloads, and design decisions.
- Build to understand: Programming exercises, labs, and projects turn knowledge into practical capability.
- Use AI responsibly: AI is treated as a partner for learning and problem solving, not a substitute for independent thinking.
Teaching