If you haven’t completed an hour of code yet, you are certainly missing out! I have been involved in computer science education for the past several years, and I knew that with the way large technology and software companies were pushing that computer science would make its way to the elementary level.
The Hour of Code event has been a great gateway to introducing students to what programming looks like. Millions of students and teachers have been exposed to computer science in fun and engaging ways. However, what do you do when you want to go beyond the maze and puzzle activities?
I have been working with App Inventor 2 ever since I started my computer science endorsement. In a workshop, we were exposed to the programming language and were able to work together in groups to make a scavenger hunt quiz on the very same day. Ever since then, I believed that this would be a great way to get students making things that they could use right away.
If you haven’t heard of App Inventor 2, it is a block-based programming platform for developing on the Android operating system. It was originally a Google project that was released to MIT, where it developed into what it is today.
If you have absolutely no coding experience, you don’t have to worry about a steep learning curve. Because it is a block-based language, understanding how things work is a cinch. You are able to design what your screen will look like as well as add components. The blocks editor is really clean and shows what each component can do. If you go through a few tutorials, you will be able to code some fun things like a painting app, mole mash game, and many others.
Throughout this year, I have been teaching my 7th-grade students AI2. We only meet once a week, but we have made some tremendous progress. We work through some of the examples to get familiar with the platform. Once we finish a project, they are required to add features to make it unique. Once we had enough experience, I gave them the opportunity to make their own apps.
The first step in this requires developing a plan. It is amazing to see how little some students are able to abstract from programming. Many can’t immediately understand all the individual things the program must do in order to accomplish the overall task, such as a restart button. During the planning stage, students made a mock-up drawing, explained what their app would do, and consider what they will need to learn or problems they might run into.
Once students have a plan in place, they can begin designing and programming. I encourage the students to use previous projects, videos, and plain experimentation. We talk about the importance of testing regularly to see if the new code gives us our intended outcome. Slow and steady wins the race! During this whole process, they are documenting and logging progress and reflecting on trials.
Once the students get the basics of their app, they can continue onto the more intricate and advanced features. Because they have success, they want to stretch themselves to do things that a full-fledged app might entail. They often bounce ideas off each other or pick up ideas from testing each other’s apps. Many of them keep working outside of class!
One of the most difficult concepts for students to understand is the “what if” scenarios. They are the designers of their app, so they know exactly what you should do. I often take their apps and say, “What if I press this button? Or what if I press this repeatedly?” Often time these events will crash their app because they are runtime errors, errors which can’t be picked up by the compiler but happen as the app is running. By giving them this testing experience, they have to change the way they think. They can’t just think of the user as themselves.
This is the fun part! Students are finishing up their apps and are so excited to share with others. They have overcome many challenges and hurdles, but their persistence has helped them grow. Students get to share their code with their classmates as they explain what their app does. By this time, they have a good understanding of their code and can explain what things do. Students then get the opportunity to test the presenter’s app and provide feedback.
Will all of your students make an amazing app? No, I had one student who made about fifteen different apps that contained advanced features while one student made a clicker app that adjusted the score every time you clicked. The student who made the fifteen apps may not have had to think as critically as the student who made a simple app because the first student had experience. The second student had little experience and already struggled with abstract concepts. However, his perseverance helped him grow in critical thinking. His problem was different, but he grew when he solved it. He could have easily gone to someone to show him how to do it, but he solved it himself and was very proud of it.
Even if these students don’t have another programming experience, they have walked away with a skill that is hard to develop. They were presented with problems they designed because of their imaginations, and then they got to solve them. I think this is one of the greatest learning experiences someone can go through!