Hour of Code Week Postmortem

I’ve been trying to reach out into the local community more and encourage schools to teach more courses about coding and even introducing kids to it. I ended up hosting my first hour of code at one of the local schools. It was an invaluable experience for me and I’ll always remember it as I do more volunteering around here.

Reaching Out

I set out to find which schools would be interested and I sent a letter to all the schools’ principals in my county, which in this case would be Linn County. I made use of the resources from code.org to help have a good email to send out that would get feedback and also explain what the Hour of Code even was for those who weren’t familiar. I included all the schools. Elementary, middle, and high school. It’s never too early to start learning about it. 🙂

I received two responses, both of the principals forwarding the emails to the respective people who handle that sort of thing in their school district. After that we started arranging dates and what would be best for the students, how to fit it into their schedule that week, and deciding what instructor-led lesson to use. One of the schools decided that they want to do a regular thing next year where I can help regularly introduce coding to students. It’ll probably only end up consuming a total of 3 hours from my week so that’s awesome I’ll have that opportunity. But that also meant there wasn’t time to do the hour of code this month in December since they wanted to focus on something more regular.

As for the other school, I was only able to get the days planned the week before which I think led to some issues later on.

Planning the Actual Day

I decided on the Frogger AgentCubesOnline lesson I found on code.org’s site. But I was given a constraint of actually less than an hour so I watched the whole video that they gave and cut out unnecessary things or shortened some of the instructions. I was able to get it down to about a half an hour which was great. It left time for the students to potentially play around or ask questions. I did worry A LOT about overwhelming the kids. It looked simple enough to me, it reminded me of some UIs that I’ve seen before like Unity3D and such… but would this be too much for a student? I asked some friends of mine to take a peek at it and try it out. I made sure to only ask people with very minimal knowledge about it to see if they could pick it up. After hearing some good responses I did decide to go with this.

I didn’t choose the typical Scratch lessons because after talking with some of the schools, engagement has been an issue. I tried to find something where everyone’s result at the end would look and act a little bit different. Make it unique and fun. I believe Scratch would be perfect for elementary and middle schools but I had the worrying thought about making sure I was having the appropriate level of challenge for these students. Too easy and they’ll be disengaged; too hard and they’ll never want to touch it again.

The Hour of Code

Day 1

The day finally arrived! I’ll be able to show some students how much fun coding can be! I got set up in a separate room and was checked out a laptop from the library. I didn’t end up needing it since I spent my whole time standing up and talking about the steps and the concepts. But it was nice to confirm their network would allow me to visit the sites. Sometimes school’s have strict filters.

On the first day, only 2 students arrived. I was a bit saddened but then I expected it because the school told me there was low attendance in the past for these things. And having just set a firm date with the school the week before, there wasn’t much time to get the info out.

So after they both sat at the big table and went to the main website where we would be doing our tutorial, I explained who I was (I make games, blah blah blah) and what we would be doing and what the end result would be. They seemed hyped about this. This is a very good start. One of the positives to having just 2 students is that I could really focus on this lesson plan and help them individually.

One of the coolest things of this lesson was the ability to draw your player character. Even though we were making a Frogger game, we were able to decide which model to use for the player. I did cut this from the start because it seemed like it would take a lot of time. I did end up having them design their roads and tunnels for the lesson. I believe a student picked a couch for the “cars” that killed the frog. It was actually pretty hilarious to see the resulting games. I now wish I would’ve took pictures.

While going through the lesson, something pretty amazing happened. We were creating the code to kill the player. The highlighted code is in green in the image. That looks pretty standard and it’s what the youtube video said to do so that’s what I wrote down in my notes. But then one of the students proposed “shouldn’t we put a reload world here?” and that was a brilliant idea. We did that. I was glad that the logical mindset of programming was starting to catch on and they were able to make changes that made more sense. It now allowed us to simply click play to replay the game instead of having to click reload world and play which is what the tutorial had you do. Improving on existing code is something that happens a lot in coding.

By the end we had complete working Frogger clones (don’t sue me KONAMI). One of them featured killer couches, some dude named Jake, and a cube that you must touch to win. The other featured deadly trees, a cat, and a cube (only so much you can do with cubes.) They were both quite happy at the end with their creations and we had about 10 minutes left so I answered any questions and talked about the potential jobs you could get if you do decide to follow with computer science for a career. And then I also went over free tools that they are able to download online to make games on their own if they’d like. Gamemaker, RPG Maker, Unity3D, Unreal, GIMP, Audacity, etc… there is so much free software to help aid in all areas of development so I made sure they knew they existed. They also got a follow up email as well with the links. I gave out my game PING 1.5+ for free for attending as well.

They left quite the impression on me for doing my first Hour of Code. I’m eager to do more volunteering and introducing code to students.

Day 2

This time only one student attended. We did the same process. Got all setup. We talked about what his knowledge was so far and why I was helping out with the Hour of Code this year. We waited for more students to attend but then it seemed it would be him so we tried to get started. The website for the tutorial that I picked was down. After about 10 minutes I gave up on it and tried to find something else. Since I he told me he had toyed with Javascript before, I tried to find a lesson on that and we landed on something from CodeAcademy. Now beyond the normal lesson they provide, I tried to give him some info about how he could manipulate that info and do his own things with it. I had to kind of improvise but it worked well. It introduced the types of variables and then I gave additional info and explained in detail what they did, what type of equations you could do to them and examples of how they could be used in normal apps and video games.

I once again had a very engaged student and he was even using the “+=” on strings to build new strings through loops and such. (He specially asked how to even do a loop in coding, he knew the name but didn’t know how.) It was quite frustrating that day to have the site be down. But we worked around it and he gained some new knowledge and expressed that he would love to attend future events that I would arrange. It kinda pushed me into doing something maybe open to the general public in this town. It’s still a thought, I haven’t done anything with it yet.

The Issues That Happened

This was a pretty bad Hour of Code if you’re talking about numbers and some complications. I’ll go over why it happened so that if you decide to host your own, you can avoid these in your Hour of Code.

  • Website went down at the end of the first day and was totally down the second day
  • Announcements weren’t clear to students on the intercom and on the website it was hidden
  • Misinformation about when it would actually happen (I had several sad students write me on Friday saying they heard from friends it would be on Friday instead of the planned Tuesday/Wednesday)
  • The days weren’t scheduled until the week before

Now I didn’t make a backup plan for if the site went down. The only other consideration was a game you had to install but we were using Chromebooks so I couldn’t install a Windows program. Make sure you have some sort of backup for if something goes terribly wrong.

As for the announcements and misinformation about the, I’m not sure how that happened. I don’t remember even hearing anything about it being on Friday, maybe they made an additional announcement on Friday by mistake? But I don’t believe the notice for the days I was there was shown well enough on the site so students didn’t have enough time to plan. I did make a flier but I didn’t think of having it handed out at the school. I just posted on social media. I’ll try more with raising awareness outside of the school as well. As I was leaving the school’s office though I did notice that they have an online system for notifying parents where you can submit info like that too called peachjar.com I don’t know how many schools use it and it was news to me but be sure to ask about ways to get information out about your Hour of Code to students and parents.

I also wasn’t able to get a hold of my contact at this particular school due to my children being sick and hers being sick so she was out so we had a lot of time where we didn’t write each other. I did make a phone call the week before just to check if we were still doing the Hour of Code because it was coming up quickly and I know my emails fall into spam. Once we did make contact again it got set up quickly but I feel maybe I should’ve checked in early so I would’ve had more time to reach out as well.

Overall

It was a great experience for me and the students that did show. I was relieved to learn that the lesson I picked out was the appropriate level for them and they all responded well to it and wanted to actually add more to their game but the schedules wouldn’t allow it. I believe they’ll be looking into learning more about code afterwards and if I host any more events or start any programs at the school, I can expect them to show up. I don’t know if it’s important to note but 2 were male and 1 was female. Inequality exists in the industry and it’s important to point out that we need to help that balance. Some of the resources on code.org have very good statistics and quotes from very powerful women in the industry. Be sure to get that info to parents. I posted about it in a local Facebook group and a grandmother actually told her daughter after reading some of that info.

There is still a long way to go to getting code to be a part of regular life for students in their schools but if more volunteers offer help and reach out like I did, I believe we can achieve this.

I think more planning will be needed for me next year and I hope you can learn from my mistakes of arranging this first one.

PING Mobile Progess

Hi everyone!

I haven’t written in a long time about development, especially any specifics about projects I’ve been working on. I’ve been creating a new PING mobile game. The biggest new feature with this one is with some of the later stages working in a 3D environment. And by this I mean you’ll be moving around corners and it’ll create some interesting perspectives on gameplay and visuals. It’s actually been a pain to make sure the cube doesn’t bounce out of the level by hitting the corners at a particular angle.

So far this has been achieved by making use of Unity’s physics material and then setting the velocity to change direction at those corners. I’m hoping that this makes it a bit more of an interesting game. Along with that I decided to go with a vertical orientation for gameplay. I asked the question on Twitter and it was seemingly agreed that if I could make that work, it’d stand out more as a mobile game. While landscape is more familiar, it doesn’t allow you to play the game with one hand which is actually a big factor nowadays. Making the gameplay interaction as simple as possible is the best you could do for a phone game’s success.

While working on the game’s menus, I kinda took inspiration from Yokai Watch Wibble Wobble. It’s a game I’ve been playing a lot on my phone lately and I like how easy it was to navigate their maps and how often they roll out events so I’ve been building mine similarly. A lot of PING’s current menus are programmer art or as you can see, a stolen Zelda map. They are all placeholders and I honestly use assets from games I like during development just so I am not staring at a blank canvas all the time. 😛

The most important part is the background stuff that’s happening. I programmed in for a way to give energies for playing and when you run out, you have to wait until you get more. That leaves an interesting issue though. Couldn’t someone who wanted to play for free change their phone’s time or somehow download an app to spoof it? So after I came across that interesting issue I ended up having the app check my server for the real current time, so no one can fake their time. And it’ll also allow me to schedule fun timed events for the game. I assume this is what most games do, but I just had never thought about it before until I started developing.

A lot of the core gameplay has been built and a big focus has been me making sure the cube doesn’t fly out anymore. It was a bit more unpredictable in PING 1.5™ due to me programming all of that cube bouncing manually. Using Unity’s physics system as intended now has made it easier to keep that pesky cube inside the level. I’m intending this to be the PING series from here on out. Keeping it mobile as we work on other projects which are better aimed for video game consoles and Steam.

This is my first development post and I hope you go easy on me. Feel free to ask any questions and what direction I should go with this blog and what you’d like to know. I intend for the next blog to be either about the Hour of Code (something I’ve been actively helping with lately) or about a camera video game we are starting development on.

Till then, keep gaming!