This course provides an introduction to computer vision. Computer vision uses a combination of traditional AI, machine learning, image processing, and mathematical theories to provide ways of programming a computer to understand visual imagery, whether a static picture, stereo vision for a robot, or motion from video. Topics covered include fundamentals of feature detection and extraction, motion estimation and tracking, image processing, and object and scene recognition. Students will learn fundamental concepts of computer vision as well as gain hands-on experience in solving real-world vision problems. A variety of tools will be introduced in this course, but the main focus will be on Python and OpenCV, as well as TensorFlow and Keras.