Then there is the kid. The one that finishes everything early, and perfectly, and is bored now thank you very much.
First off I feel very strongly that it is not OK to keep them busy with clerical work, or more busy work, or helping other students. This are the students most likely to go into computer science without our encouragement, and they need to be engaged and challenged. That said, it is OK for them to have to help other kids sometimes, and they obviously need to work collaboratively. But they are not mini teachers.
I have learned a few techniques that do work with these kids. The first is The Challenge.
I usually present it when I am telling the whole class what the day's practice exercises are going to be. Tehn as an aside I mention that at teh bottom there is the challenge problem, and it is worth bonus points, f you get that far. No pressure.
For example - in my intro class today we learned the ELSE statement. they had about 15 problems practicing IF-ELSE structures, then at the bottom was the challenge:
Input three numbers - print them in order from smallest to largest.
Once done have me check it off for extra credit! You must use IF-statements to solve this puzzle.
This is called SORTING. It is one of the major problems computer scientists must solve. Think about iTunes, or the Amazon website - what kinds of things do they sort?Now, I know that at least three kids skipped the 15 boring problems and went right to the challenge. One even finished it. At least seven kids tried it. It doesn't matter that they didn't all get it right - they were all super engaged in a problem that required them to put together what we just learned in a new way. They coded for over 20 minutes, did sketches, talked together - they worked on a solution. Which moves them one step closer to being computer scientists.
(oh, and the thing about having to use IF-THENS is for the freshman that has figured out that he can just push everything into a drop-down list in VB and have it sorted...sneaky)