This year I am making some changes in my introductory Computer Science class. Last year, I added Scratch and BYOB as lead-ins to my standard programming language, Racket (Scheme). This year, I am going straight to BYOB, but following it up with AppInventor for the rest of the course.
Detractors of curricula using Scratch and BYOB say that learning programming through exploration is not a good way to learn computer science concepts. It lacks rigor and structure and leaves students with the idea that if they just try a different value in a field, they might get the “right” answer. However, I see benefits to allowing students to explore and investigate how different commands work and the cause and effect of changing program commands and/or parameters. I find that my students do gain an understanding of the basic concepts. They also get to be creative in how they accomplish the given task. With open-ended introductory labs they don’t just accomplish the assignment and stop. They play more, are apt to experiment more, and push themselves further. As assignments become more focused, they are willing to try different approaches. They continue to experiment.
I am hoping with the introduction of AppInventor in the curriculum, students will get a real-world understanding of how to build a full application through more large scale projects. Certainly, building mobile apps is a motivator for students. Students should be able to apply the computer science concepts learned earlier to build a more complex application that involves so much more than just straight coding. Students will learn about project design, teamwork, user interaction, prototyping, user feedback, testing, and iterative engineering.
This change is a bit scary, but exciting as well. I hope it will open the eyes of the students to all the work that goes on in order to make the mobile devices they carry around so powerful. And I hope that it empowers the students to realize that they can be the creators, rather than just the users of those devices.
Karen Lang
CSTA 9-12 Representative