This year, I’m going to be teaching one section of Intro to Programming. This will be my first time teaching any computer science, and it is definitely a bit outside my comfort zone. Fortunately, a colleague pointed me towards Carnegie Mellon’s CS Academy curriculum. I appreciate that the course translates well to remote learning, and I love how the course prioritizes design. After trying several exercises during their training, I wanted more practice and to experience what a “project” felt like. It was a lot of fun, and it’s exciting to have products to share.
My first project was the game I play on first day of school, which I blogged about a few years ago. I kept the design simple and focused on functionality. I might use this with students in a couple weeks. One student can share their screen with the website while another tells them what number to click on. Or students can just play against themselves. You can try it yourself here.
My second project was Play With Your Math 12: Space Race. In the past, playing this game required a lot of printed game boards, so I thought a digital version would add value. Coding this went a lot smoother than expected, and I then I spent a good chunk of time trying to make it look like the poster. CiCi suggested that I number the squares so that students can more easily play in breakout rooms, again with one person sharing their screen. My first version had 36 spaces to match the poster, but I got tired of clicking on that many spaces, so I figured students would as well. I wonder if asking for specific names instead of “Player A” and “Player B” will make the problem more intuitive? You can play Space Race here.
My third project was Play With Your Math 5: Maximaze. I have wanted a digital version of this problem for years but never had the programming skills. A friend of CiCi’s once built a program to help us calculate scores but without the visual element. I was able to copy many design elements from Space Race, but creating each and ever operation in the maze was tedious, and I am confident my code could be more efficient. I think some students get value from calculating their own score in Maximaze, but this version lets students focus more attention on their strategy and choices. You can try Maximaze here.
My last project so far was Play With Your Math 2: Pentagram. When students (or adults) try Pentagram, they often think they have the solution, not recognizing one “triangle” actually has four sides. I thought a digital version would help students identify when they did or did not find a solution instead of relying on a teacher for verification. Unfortunately, this proved incredibly difficult. I needed to precisely define what a triangle looked like (which is harder than it sounds) and find a way to count them (also surprisingly difficult). My first attempt took the better part of a day and the result was painfully slow and kinda buggy. My wife helped me make the program WAY more efficient but somewhere along the way I also made it buggier. You’re welcome to play with it here, but I would NOT advise giving this to students.