Foundations of Deep Learning & CNNs