This course introduces students to the field of computer vision, which focuses on enabling machines to interpret and understand digital images and videos. It provides students with a solid foundation in classical computer vision concepts such as filtering, color spaces, and video motion estimation, as well as advanced topics in deep learning including convolutional neural networks (CNNs), object detection, semantic segmentation, Vision Transformers (ViT), and generative models such as Diffusion Models. Hands-on experience will be emphasized using Python and PyTorch. Students will also conduct a course project related to real-world vision applications.