When the Pandemic Scratched My Plans, I Learned to Teach Scratch
During the summer of the pandemic, I took a position teaching Scratch programming online for an Ottawa based after school program. I developed two levels of courses which I've been able to modify after teaching multiple times. Scratch is an amazing tool for teaching beginning programming concepts. I’ve been able to integrate it with math, social studies and music lessons. I was aware of the Triple E framework for gauging the value of a technological tool offers to student learning, and I assure you that Scratch can be used to satisfy all the conditions.
The neat thing I discovered teaching Scratch programming was there is not always one right way of solving a problem. There is usually a most efficient way, but this can often differ from a method that is easier to understand. There are also many inefficient ways to arrive at the same conclusion. I’ve been able to design two full course levels that teach the majority of the blocks available in scratch and lead up to more complicated projects such as a 2D tile engine using lists. Some students wanted to continue exploring scratch with me afterwards, so the bi-weekly Scratch Club was created. With two sessions a week for a year I often find myself out of new ideas to teach them. Luckily, Scratch has a bustling community of shared open-source projects to explore. I assure you that you can find something related to any topic.
One activity I designed had the class build a program that when fed a list of coordinates would draw pictures by connecting the dots. I started the lesson with a nearly blank project that had a list of coordinates that drew a picture only I knew. I told the students that these were alternating x and y coordinates and I wanted them to build a program to draw them. I could have separated the x and y coordinates, but I wanted the students to figure out how to deal with one list containing two different data sets. There were many options here. They could have manually separated the Xs from the Ys or automated it through code to fill two separate lists. They could also use the single list.
It took five minutes before one of the students yelled “It’s a boat!”, over Zoom. I had traced an outline of a cruise ship. He was correct. I waited a little longer for some of the other students to finish and then launched into my simple solution to the problem. I knew I had 22 individual points, so I made a loop that repeated 22 times and transferred the X and Y coordinates to variables that I fed into the pen draw function. Before drawing I multiplied the variables by ten to scale up the image. This was simple and easy to read.
After modeling my approach, I looked at the solution done by the student who finished first. What took me twelve lines had taken him eight. Instead of repeating the loop 22 times he had taken a modular approach by dividing the length of the list by two. He bypassed creating X and Y variables by directly reading the list in his line to move the pen. The most impressive thing was how he referenced the X position from the list. The list had 44 values. He took the iteration count of the loop and multiplied it by two because there were two sets of values, X and Y. This alone would reference a Y value, so he subtracted one and was able to reference the X. I was amazed that the student had been able to make such complex connections. He had shown me some complicated calculations before, but I didn’t know if he had copied them from a project he had found. He designed this on the spot in less than five minutes. Though it was not the easiest to read, it was the most efficient and elegant solution. I explained the modifications he had made to the other students. Though this was a superb solution, it was not as easy to understand. I may adjust my approach next time to a middle ground between these two but I believe that my approach was a more straight forward way to explain the process to the students. One of the students referenced a popular Star Wars quote and I laughed.
The next week, I showed them how to create this exercise in Python with the Turtle Module. A simple extension with a similar pen tool. We followed the student’s method by referencing the length of the list. I asked the students to bring their own sets of coordinates we could enter in.
Being able to guide these students for nearly a year has given me a lot of time to reflect and refine my practice. We’ve created three collaborative projects which took a few months. I’ve directed lessons from a teacher centered approach but also have had them find, share and explain the inner workings of projects they found interesting. The students continue to surprise me with their creativity and computational thinking skills. I’ve extended student learning by introducing them to a portal to express themselves and to learn programming skills. I’ve enhanced their learning by showing them ways to visualize math concepts such as sine waves and the Fibonacci sphere. The students often share projects they’ve found or created demonstrating their engagement with learning. I’ve been able to foster a small collaborative learning community and have been able to practice different instructional strategies. Though the pandemic cancelled by original summer plans and employment I feel as though it resulted in more rewarding opportunities. I was able to inspire students to learn using Scratch programing and in turn learned much about teaching. I am excited to learn about more ways to integrate technology in the classroom and discuss pedagogical theories and approaches.