I wish they had fun classes like that when I was in school”. – Student Parents
That’s how you know you’re on the right track. Alumni and parents of students tell you they’re jealous.
Starting at my new school, Elida High School, I was given a lot of freedom to design new courses that I thought would be best for students related to computer science. The administration trusted a teacher to do what was best for students (sign of a high-functioning school culture) and I came up with:
- Game Design (software development stages, GUI’s, digital art, programming)
- Multimedia Storytelling (communicating ideas through speaking, video, and well designed visuals)
There’s also a Microsoft Office class for students to get college credit, but I admit, that issued textbook will get mighty dusty. That course will be more creating a small company with employees sales data (Excel), pitching to buyers (PPT), and sales flyers (Word). Real world everything. If kids don’t see the relevance, they check out.
Game Design? Really?
“Why not offer AP Computer Science instead?” I’m often asked. A College Board Survey states that students taking high school Advanced Placement CS are 8 times more likely to major in CS in college. I’m not sure correlation implies causation here though. The undertaking of the AP CS course itself may already reveal the interest in computer science, so naturally their CS majoring would be much higher. My question is WHAT INTERESTED THEM TO TAKE THE AP CS COURSE?
My choice to offer game design is to test my theory that by appealing to the high interest levels of students in games and the “maker mentality”, I can steer students’ desire to make better games into more AP CS concepts, all while making them think it was their idea all along.
To make my game design course more about student-driven projects derived from internal motivation, here are my methods:
- Show them the cool things you can make with code in games by breaking down simple elements of a popular game. Example: In Super Mario World (SNES), Mario crosses a checkpoint. After which, if he dies, he returns to that checkpoint. This brings up several programming concepts: Creating and setting variable values. Types of variables. Recalling variables. Then show them how to write the code for that example in a simple environment like GameMaker Studio, or go straight for the JS example in Unity, depending on the students. I’m developing a getting started in GameMaker Studio within my new favorite free teaching tool, ClassFlow.
- Have them pick an element from any game they play and have them create it in GameMaker Studio, Unity, Scratch, etc. The development environment isn’t important at this point, the passion for learning, creating, and destroying the fear of making mistakes is what’s critical. Allowing them to pick the element (you may need to advise!) you’re differentiating too.
- Peer review and step through the code as a class. Ask questions about their methods, suggest new ones, and explicitly encourage students to STAND UP, WALK OVER, and make suggestions, help through problems, debug, etc. Model being a good team member, and discuss what that means. Make time for “campfires”, where everyone steps away from their PC, gets together in a circle (I use an iPad in the middle playing a 3-hour YouTube video of a campfire) and have each discuss where they are at with their work, the problems, successes. Encourage assistance. Develop mutual trust.
- Incorporate 20% time to let them pursue their own pet projects. Always leave the door open to make a 20% time project become their 100% time project. Be flexible to accommodate their interests. If they’re excited about something, cater to it.
- Focus on helping students set goals for their individual/small projects they design. Set deadlines for elements of the game. Keep games simplish™ and finishable™.
Hope this helps someone out on the Internets.
You can follow me on Twitter: @garlicsuter or email me markasuter “at” gmail with a dot com.
This post originally appeared at on the marksuter.com blog.