This course aims to help students explore the rapidly growing technologies underlying foundation models and generative artificial intelligence. Not only will students learn the fundamental concepts and techniques used for training foundation models, but they will also learn how to make effective use of them through prompting and integration into other artificial intelligence systems. Prior knowledge of Python programming and machine learning is required.