Student pacing strategies

How do you effectively manage pacing in a mixed-ability classroom when teaching the Animations and Games unit? I usually pre-teach a lesson concept and then allow students to progress at their own pace through the lesson, but this often leads to a significant gap between faster and slower learners. I’ve tried using challenges for quick finishers and pair programming, but the gap still widens. Do you have strategies or techniques for keeping the class more aligned without holding back advanced students or overwhelming those who need more time?"

Teachers do the best they can, and you are doing that!
To manage a mixed-ability classroom, I use my seating chart and record the progress of each student. I try to fill the gap with “slower” learners by giving extra credit to the “advanced” students to help them understand the concepts and move ahead. The “slower” students work at their own pace, and that is Ok, as long as they learn something new and/or accomplish something every day.
To take it a step further, I also have students from the Special Education department, and they take CS Discoveries as part of their “inclusion” program to take an Elective class. I do not overwhelm them or pressure them to keep up with the “advanced” students. I make sure that every day they learn at least one new thing, or accomplish at least one level within lessons, and that is a successful day for them. So, I let the advanced learn more with the challenges and I celebrate the small gains my inclusion students make; to them, they’re big successes!