This page collects my teaching activities, course summaries, and selected learning materials. My teaching emphasizes programming practice, conceptual understanding, and the connection between computation and visual communication.
Level: Undergraduate course
Focus: Java fundamentals, object-oriented design, and practical software development
This course introduces students to Java as a foundation for object-oriented programming. It starts from core syntax and program structure, then moves to classes and objects, inheritance, polymorphism, exceptions, collections, and common APIs. The aim is to help students write readable, modular, and maintainable code while building a solid understanding of how object-oriented ideas support software engineering.
Related material: Java基础入门(第3版). The text covers JDK setup, Java basics, object-oriented features, APIs and collections, as well as advanced topics such as generics, reflection, I/O, JDBC, multithreading, and network programming.
Level: Undergraduate or early graduate course
Focus: Implementing classic AI methods through programming exercises
This course emphasizes how to turn artificial intelligence concepts into working programs. Students practice computational thinking through search strategies, heuristic reasoning, state-space modeling, knowledge representation, and algorithmic problem solving. The course is designed to connect foundational AI ideas with hands-on implementation so that learners understand both the theory and the engineering tradeoffs.
Related material: Artificial Intelligence Programming course text. It serves as a reference for programming assignments and discussion of foundational AI techniques.
Level: Seminar or special topics course
Focus: Visual abstraction, representation learning, and semantic communication
This course examines how simplified visual forms can preserve semantic meaning in computer vision and visual communication. Topics include minimal representation, abstraction for recognition, image structure, perceptual cues, and the relationship between representation learning and human interpretation. The course is especially relevant to students interested in computer vision, computational art, and generative visual systems.
Related themes include visual semantics, image abstraction, human-AI interaction, and the use of compact visual elements to support communication and creativity.