By Jessica Wang
As new curriculum directors of Code Haven for the spring of 2020, Aaron and I were incredibly excited to launch straight into writing weekly curriculum for students to make projects on MIT’s App Inventor. In previous years, curriculum directors have created three different app projects that students can choose from, culminating in a final project that they can showcase at our end-of-year project fair. The materials that curriculum directors create include a presentation to guide the classroom, a lesson plan for instructors, and three different worksheets, one for each project. This year the three projects were versions of Snapchat, Mario, and MealMaker, which I will later explain in more detail.
Rather than introducing new coding concepts weekly as we did in the fall semester, the goal of the spring semester is to allow students to feel a sense of accomplishment and creativity in making an app on their own. With that overarching mission, and after consultation with previous curriculum directors, we settled on three major, tangible goals to focus on. In the following, I will outline each goal and how we decided to accomplish that goal throughout the semester.
After looking at last year’s AppInventor curriculum, we noticed that much of the initial worksheets focused on a “drag and drop” method where students were given very clear instructions on buttons to click to create a design for their app; however, because so much time was spent on creating the actual user interface and design, very little time was spent on coding. Because of that, previous curriculum directors have had to finish the code for students to give them a functional app for Project Fair.
This year, rather than designing first and then coding second, we flipped the process and put coding first and designing second. We accomplished this “flipped” style of learning by creating templates of the apps with the design completely finished, allowing them to spend the first two weeks of their project (week 11 and week 12) completely on coding, which we felt was a more fulfilling learning process. For the third week of their projects (week 13), we allowed students to go back into the design elements and customize the design to fit their interests. For example, in MealMaker, students were able to create their own style of maker (ex: ClothesMaker) and in Mario, students were able to customize the way the Goomba moved and the design of the game.
In previous semesters, curriculum directors have implemented Unplugged Activities, a front-of-class activity that teaches students a coding concept without using actual code. Although the spring semester doesn’t introduce new coding concepts, we still wanted a way to engage students with a front-of-class activity in a fun and educational way. We also noticed in the Fall semester that students often will get stuck when something in their code doesn’t work, and will rely on a mentor to debug for them.
In order to teach students the important skill of debugging their code on their own, we came up with the concept of debugging activities in which we present a picture of code with a couple of errors in it and a video of the “buggy code” on a phone, not doing what it is supposed to be doing. We ask students to look through the code to find the bug, and once they find the bug, we show them a video of the “debugged code.” This debugging activity serves to instill the valuable skill of debugging that they can take forward in all of their future computer science or coding endeavors. The following outlines our debugging activities on a week-by-week basis:
Week 11: Hello Purr - During Week 11, students were guided through a live coding of Hello Purr. This week, the code for the debugging activity was from Hello Purr, except the cat would not purr when clicked on.
Week 12: Mario - During week 12, the code was from our Mario project. We switched around the directions of the coordinates so students could learn how coordinates work in AppInventor, which is slightly modified from their previous experience with Scratch.
Week 13: MealMaker — During week 13, the code was from our MealMaker project. We switched around the button and visibility so students could pick up on little differences in names, as well as learn about booleans (true/false).
We wanted to keep the same structure that previous curriculum directors have created of having three different projects of three different apps for students to choose from. However, we wanted to give more space for students to design what kind of app they make than in previous years, as we have seen many more students choose one app over the other two app options in the past.
We decided to structure the weeks in three parts: Week 9 would be design week where students design their dream app that they could feasibly make, week 10 would be a general introduction to AppInventor with a scavenger hunt and live-coding, and week 11–13 would be choosing and working on one of three projects that we pre-design and guide them through with our worksheets.
From the design ideas that came out of week 9, we decided on three separate project ideas:
MealMaker: We decided to debut an entirely new app called MealMaker in which students create an app where each button they click randomly generates a different part of their meal. If they click on the drink button, one of three options will pop up: coke, milk, or water. All of these components combine to create one randomly generated meal. This app also allows for flexibility and creativity because, in week 12, students can change their app design to make their own Maker such as ClothesMaker or RoomMaker.
Snapchat: Our second app was revamped from last year’s drawing app which saw little interest. This year, we rebranded the app to imitate the popular social media, Snapchat and incorporated new features that last year were included as challenges. Our Snapchat app in its finished project can take a photo that students can then draw on with a selection of colors, as well as erase their drawing with a shake of the phone.
Mario: Our third app, Mario, was recycled from last year as well, and was kept relatively the same in terms of the end product. Our Mario app teaches coordinates and allows students to create a Mario character that can move around the screen and collect mushrooms. Additionally, a Goomba character randomly moves around the screen and can collide with Mario.
Giving students three projects to choose from provides students with a sense of autonomy and independence while providing them guidance and structure throughout the process. In terms of the distribution of the projects, about 40% of students chose to work on the Snapchat app, 40% chose to work on Mario, and about 20% chose to work on MealMaker.
All of these ambitions, however, were not without challenges:
Given these issues, we decided to set a few goals to change for the following year. We want to change week 10’s curriculum so that it includes more coding rather than dragging and dropping in the scavenger hunt. We also want to do a better job of keeping track of students’ progress throughout the projects, so that we can ensure they have a functioning project at the end of the semester. We also hope to make “live” debugging activities for next year that takes some elements of the unplugged activities to engage students who have trouble focusing on a presentation. For example, we could show code that has coordinate instructions and have a student walk based on what the code says. Having a demonstration live would be more fun and engaging.
All in all, although the semester ended early because of the uncontrollable circumstances of schools closing due to COVID-19, as curriculum directors we learned a lot about how to keep students engaged and having fun while teaching important computer science concepts. Aaron and I loved coming up with so many fun projects for this semester, and we hope to do the same for semesters to come!
This article originally appeared on Medium.