Convolutional neural networks (CNNs) enable very powerful deep learning based techniques for processing, generating, and sensemaking of visual information. These are revolutionary techniques in computer vision that impact technologies ranging from e-commerce to self-driving cars. This course offers an in-depth examination of CNNs, their fundamental processes, their applications, and their role in visualization and image enhancement. The course covers concepts, processes, and technologies such as CNN layers and architectures. It also explains CNN image classification and segmentation, deep dream and style transfer, super-resolution, and generative adversarial networks (GANs). Learners who come to this course with a basic knowledge of deep learning principles, some computer vision experience, and exposure to engineering math should gain the ability to implement CNNs and use them to create their own visualizations.