Challenges make great projects. Students learn by solving actual machine learning problems. They can submit code, which is automatically evaluated by the challenge platform.
Students can work individually or in teams. A class can mix individual and team homework. Homework can include questions on top of challenge performance.
Teachers can provide a starting kit in a github repo that students can clone and modify. They can start building a portfolio with these projects using Github.