This course will teach students the comprehensive landscape of deep learning including theoretical foundations and mechanics of training neural nets designed to perform various tasks, assessing the data and computational needs for training and deploying various types of deep neural nets. The emphasis will be on the latest breakthroughs in algorithms and models, while leveraging a popular programming platform to implements variations and combinations of those algorithms and make them deployable and efficient.