This course serves as the foundation of the Edge AI and Robotics specialization. Students learn how to design, build, and improve computer vision systems that solve real-world problems such as image classification, object detection, and image segmentation. Rather than focusing solely on theory, the course adopts a hands-on approach where students first develop complete AI applications before exploring the principles that make them work. Topics include model design, transfer learning, optimization, regularization, loss functions, evaluation metrics, and modern deep learning architectures. By the end of the course, students will understand both how to build vision systems and how to systematically improve their accuracy, efficiency, and reliability.
Once students have learned to develop computer vision models, the next step is deploying them on embedded hardware. This course focuses on taking trained AI models from the data center to the edge, where constraints such as limited memory, compute, and power become critical. Students learn how to deploy and optimize vision applications on the NVIDIA Jetson Nano, exploring techniques such as model conversion, inference optimization, quantization, pruning, and hardware-aware deployment. Through practical projects, they gain experience building intelligent embedded systems capable of real-time computer vision for robotics, automation, and Internet of Things (IoT) applications.
Modern AI applications require efficient processing of massive datasets and computationally intensive algorithms. This course introduces students to GPU-accelerated data science, enabling them to write high-performance applications that scale beyond traditional CPU implementations. Students learn to build custom accelerated functions using Numba, develop GPU kernels with CUDA, and accelerate data processing and machine learning workflows using the RAPIDS ecosystem. By understanding GPU programming and parallel computing principles, students gain the ability to significantly reduce computation time and build high-performance AI pipelines suitable for research and industrial deployment.
This course adopts a hands-on approach to Operating Systems using the xv6 teaching operating system. Students will begin by setting up and booting xv6 in an emulated environment, learning to navigate and use the operating system just as they would a real Unix-like system. They will then explore the xv6 source code to understand how an operating system is built from the ground up, tracing the complete execution path from user programs to kernel services. Throughout the course, students will gain practical insight into the boot process, shell operation, process creation and management, CPU scheduling, memory management, file systems, and disk management. Building on this foundation, they will progressively extend the operating system by implementing new system calls, adding shell commands, modifying the scheduler, and enhancing the file system. By the end of the course, students will have moved beyond simply using an operating system to understanding, analyzing, and extending its core components through real kernel-level programming.