Actually the students would learn more if the class was broken down into 5 startups all competing for the customers work. This would give you 5 small tightly focused groups. Each would have to nominate a leader and or agree on a unified vision for their approach. Then fire the gun, BANG and get to work. Break out your roles, do yer thing, but most of all focus on that customer and learn about the problem.
The problem with one big class is that now you have to have 25 people agree on the vision/course of action, good luck, and you stir up the pot to get 4 folks or less to basically lead/do/all the work and or you ignore people that had good ideas but maybe not the best communication skills to bring/push those ideas to light.
Plus the customer suffers with just one vision. Why not produce 5 in a class, bounce around perspectives, ideals etc, and have people reflect on how their group performed- challenges, successes and weaknesses.
Sure the client sorta gets a taste of spec work startup style but the students can potentially learn more and feel like they have more skin in the game due to smaller groups.
The competitive edge makes it fun as well.