Programming Each Other

In this challenge, students learn about the thought processes involved in breaking down problems and converting them into logical steps. Throughout the challenge, students investigate real-world problems that can be broken down into smaller subproblems. They explore complex programming concepts as they try to systematize activities that they do on a daily basis. An exciting and unique feature of this challenge is that it is “unplugged.” Many young people spend a large amount of time looking at screens (both in and out of school). The Programming Each Other Challenge allows students to explore the thought processes of programming while being active, whether they are working with their teams to learn a new card trick or learning new dance steps. To start the challenge, students receive a letter from a fictional publisher requesting ideas for a book that will introduce young children to programming. The publisher asks students to write programs for accomplishing everyday tasks. In order to make the story more interesting and the learning goals more complex, students learn about the characteristics and write examples of flawed instructions as well as effective programs, using technical terminology to explain their revisions. Throughout the unit, students explore some of the basic challenges inherent to programming. They discuss and practice increasingly complex tasks with each successive activity.