VG101 Introduction to Computers and Programming: Summer semester every year
- This course is to introduce students in Engineering to basic algorithmic methods and specific languages including MATLAB and C/C++. Algorithms are an organized means to construct the solution of a problem, structured as a well-defined set of steps that can be carried out by a mechanism such as a computer. MATLAB is widely used to solve engineering problems and for quick prototyping of solutions. C and C++ are among the most popular programming languages in the current information industry. Vg101 focuses on the development of algorithms to solve problems of relevance in engineering practice and on the implementation of these algorithms using MATLAB and C/C++.
VE444 Networks: Fall semester every year
- This course serves as an introduction to a broad class of networks, including social networks, the world wide web, trading networks, etc. Specifically, we introduce how these networks are connected, how they form, how processes and transactions take place on them, and how they are being transformed and interconnected in the modern world. Students will learn how to develop and apply mathematical models and tools from graph theory, probability, and game theory in order to analyze network processes such as how opinions and fads spread on networks, how sponsored advertisements are developed, how web content is displayed, how recommendation systems work, etc.
VE596 Distributed Machine Learning Systems: Fall semester every year
- Machine learning (ML) techniques are enjoying rapidly increasing adoption in various industrial verticals. However, designing the systems that support ML models in real-world deployments and applying appropriate ML models to solve practical system problems remain a significant obstacle. Machine learning systems (MLSys) emerge as an inter-disciplinary research area at the intersection of traditional systems and artificial intelligence. This course is a high-level research-oriented course that introduces a wide range of state-of-the-art applications, challenges, problems, and existing solutions in the machine learning systems field. The course covers two complementary and equally important directions in machine learning systems: ML for systems, and systems for ML. Topics include foundations of MLSys, distributed training frameworks, federated learning, edge inference, and other promising applications, like video streaming. Students will get in contact with the latest development in this field from selected papers of top conferences in systems, networking, and AI venues, learn the practical constraints poses towards real-world ML-based applications and how to handle them, and how to model real-world problems and solve them using a data-driven approach.
VE490 Undergraduate Research Course
- This is a research-oriented course, which covers topics in wide areas of networking and systems. Undergraduate students are warmly welcome to contact me for possible research opportunities.
VE450 Capstone Design Course
- This course gives each student a deep understanding of how to approach open-ended challenges by process, and to learn how to innovate and apply the seemingly fragmented engineering knowledge acquired at JI to the design and manufacturing of real mechanical, mechatronic or electrical/computer systems. I occasionally respond to students’ requests and sponsor AI-related projects.