That has got to be one of my strangest blog post titles ever, but look at the picture. That was created by a student of mine today in my Intro to Programming Class. We've completed the 9 week Python curriculum and are now enjoying programming with Alice, a great tool for teaching the concepts of programming.
Having already learned loops, functions, and decision structures in Python, it has been a breeze to watch them dive into Alice. Although I do like the suggested curriculum for the Alice software, I have modified it somewhat. Here's how:
A while back--actually several years ago--I started writing math quizzes that had four problems on them. Those four problems corresponded to the four levels of proficiency that we used on the Colorado CSAP exam: 1=Unsatisfactory, 2=Partially Proficient, 3=Proficient, and 4=Advanced. There's really no point to link those to a traditional grading scale, but if you did, it could roughly translate to 1=D, 2=C, 3=B, and 4=A.
So my four math problems on the quiz were chosen with those proficiency levels in mind. The level three problem was one that if they could solve it I would consider them to be proficient in the task at hand. Level 1 problems were so easy that if a student missed them I'd know we had real problems. If a student could get to level 2 but not 3, I'd know we were getting close to our goal and I'd have to work more with those students. Of course the level 4 questions were usually pretty tough--challenging enough for those few students that can quickly complete the first three levels. [I hate to have my brightest students bored--they need to be pushed, too!]
Anyway, I've using a similar approach in my programming classes. Whether it be Python, Java, or Alice, you can go far by creating a set of four programming challenges--one for each level of the proficiency scale. For instance, our first group of challenges in Alice were simply designed to get students familiar with the positioning of objects in the 3D world of Alice. Here's what I came up with:
Level 1: Character Pyramid: make a pyramid of characters in Alice so that the characters are properly placed, with their feet on the shoulders of the people below them. [I showed them an example of this.]
Level 2: Salute! Make a character look as if he or she is giving a proper military salute. The more real it looks, the better. [Again, I showed an example for this one.]
Level 3: Shoot out at the So So Saloon. Using the Sheriff and Cowboy characters from the Old West folder, set up a scene that looks as cool as you can. Your goal is to make the scene look like a real action scene, not stiff characters in a primitive video game. If you don't like the western theme here, go ahead and choose your own scenario--a pillow fight on the moon, for instance!
Level 4: Sitting at the Table. Position at least three characters sitting as naturally as possible at a table, seated in chairs. The more you can make them look like real people, the better.
Now, that was their assignment. Nearly every group of students reached level 4, and had a lot of fun getting there. There were questions--plenty of questions. Some I answered by showing a mini lesson to the whole class (for the setVehicle, orientTo, and drop dummy object methods, for instance). These mini lessons were short, though, and often demonstrated with the help of students. As much as possible I try to let students learn from doing, and then have them help each other with their challenges.
What has worked so well with this approach, is that I actually have time to walk around and visit with pairs of students as they program--which allows me a little extra time to work with my English Language Learners. So far my ELL students have soared with this approach, and my energy level has never been higher.