Two weeks ago, I wrapped up my first workshop on computer programming in Scratch. Unlike other workshops I have been helping with over the last few months, the content, the teaching and responsibility all fell on my shoulders. At the beginning of the semester, I was really nervous about the workshop. Where to start? What are some good ways to teach these complex programming concepts? How do we ensure that kids feel engaged and invested? Perhaps most importantly - would I be able to teach a workshop in programming!? It had been a while since I wrote object-oriented code. Instead, I have spent the last several years engaged in systems design but always handed it over to developers when it came to the implementation.I can now report that I have created my first simple remixed video game. It has two levels, and it involves a monkey eating things. I never thought I'd be able to program a video game but I knew it was the only way I would be able to work with my students and support their learning.I also created a simple name animation and a mini digital story. You can see my simple game by clicking here. I will share the other two tools as soon as Scratch 2.0 goes live!There were moments of challenge and small triumphs throughout the four weeks. To plan for the classes, I used an amalgam of my own ideas and the Scratch ED curriculum developed by Karin Brennan and Michelle Chung at MIT. Here's a quick rundown:Week 1 - Introduction to Scratch: what is a sprite? what are costumes? how do I attribute sounds? how do sprites move? how do i use the Scratch environment?
Successes: I learned all the kids names, every student made a simple name program or started one, I managed a workshop of 20 kids.
Areas for Improvement: I realized after the class that the kids didn't understand why I wanted to set norms. When I invited them to contribute norms, they didn't really know what I was expecting. After reflecting and speaking with other colleagues I realized that in my earnestness to create a respectful learning relationship with the students, I felt like the only way to start was by co-constructing norms. In the future, I will come with norms and over time, work with the students to revise or edit collaboratively.
Week 2 - Introduction to remixing and incorporating additional skills: what is a remix? revisited basic concepts from last week: sprites, movement, sounds
Successes: Every student finished their name programs and for the students that had gotten a version done the previous week, I had extension activities. I also was excited to see how some students started to remix and adapt the game. I had sent a google poll out after class and the majority of students opted for games, which is how I ended up choosing this as the goal.
Areas for Improvement/Reflection I think that I should have had more structured instructions for the students attempting to remix the game. I gave them broad guidelines, but not extremely specific parameters. I also didn't have enough capacity to focus on a handful of students who ended up only partially listening to my lesson on remixes. This same group of students had also snuck in some friends, who I had to later kick out of my class.
With that said, I did like the format that I used to show the remix. I had a simple version of the game and then created a new version, which I used to demonstrate the types of changes that are possible (e.g. adding score, adding sounds). Next time, I would ask the kids to spend time brainstorming a plan for their remix.
Week 3 - Continuing to Remix, give kids time to learn and develop games, concepts: broadcasts, variables
Successes: Many students made some serious headway on developing their programs.
Areas for Improvement/Reflection: This was my toughest class. I ultimately think it came down to not being as prepared as I had been for the previous two classes, despite having notes written up about what I should have done. Between work and school, I had a rough outline until very shortly before the class, leaving me disorganized. The lack of planning showed up in the results of the class, which was more chaotic and the small group of students falling further behind. I was already discouraged from the week before, and I let that influence me not to focus on them because it already felt hopeless. I was really disappointed after this class.
Week 4 - Finishing games, revisit broadcasts, variables and brainstorming ideas to create levels
Successes: Every student in the class left with a completed game. The students' games had varying complexity, but all of them had a working program when they left. What an exhilarating feeling!
Areas for Improvement/Reflection: I asked one of our other colleagues to come in to support the class so we had three teachers on hand. I had worked hard to prepare and finish two levels of my game, which I used during the lesson on how to use broadcasts and variables to create signal different parts of the game. I did two other things, I made sure that all students sat up front at a table while the lesson was going on and I spent specific time with the small group I had shied away from the week prior. I sat with them, suggested a new game for them to use and kept coming back to them for extended time. At the end, they recognized how much more productive they were and they all completed a simple game.
Final ThoughtsAt the end of the day on week 4, I felt exhilarated. First, because I survived it, second because I felt like kids ended up learning something and third because all of them left with a simple game or the framework for one. Here are some lessons learned on this computer programming workshop that I will apply to future programming workshops I teach:
- The most important lesson I learned was that when I felt completely prepared in terms of the content and goals, the class ran better. It also helped that I actually learned the concepts in Scratch and developed programs instead of co-opting work that had been done. I think this is especially true in the case of someone new to teaching the content.
- Another important thing I saw in practice was that regardless of how well you know the content, if you can't control your classroom you will have chaos and the kids will be quick to realize that.
- I struggled with trying to be respectful and balanced about how I treated students but realize that I also need to be a leader in the classroom. That doesn't mean lecturing and dictating every moment, but at least being mindful that I need to set out some of my expectations for how we will work together.
- Be clear about the goals for the day and have clear parameters /constraints for all of the mini-projects that students do to learn skills. (Related to this - do it yourself if you haven't before because otherwise you can't answer questions).
- Give them time to practice. I gave students the majority of time to work on their games and would walk around the room with the other teachers and respond to questions. This was the most important time because they could ask specific questions and we could work together to solve problems. I also had kids work with each other when I was working with other students.