Eventually, they should come up with a single program which can solve the problem up to a certain level of difficulty.
This approach allows the students to regulate their own learning pace.
We can also cater the needs of students with various learning capabilities.