All right, this is going to be a long one, but bear with me...
This summer has been completely crazy! It's amazing how even back in April, I looked at my calendar and went "Okay, I only have one event scheduled... Odyssey. This is going to be a great, relaxing summer!" Haha. Ha... hahahahahaha.
Since April, I've gone to Codegarden (Okay, that was planned - but technically not summer yet!) and Kyle went to retreat (that was a surprise in April!), we bought a house, moved into the new house, my friends are moving with a gap in places to stay for a week and are crashing at our new house (starting yesterday), Kyle's parents will be coming to visit, he and his twin brother will be doing a joint birthday party, and we'll be going down to visit my family in early September. One thing planned somehow turned into something going on literally every week/weekend? I don't know how this happens. Life, I guess?
I hadn't fully decided if I was going to commit to teaching young girls coding at the college next summer, but I guess I am 😂 pic.twitter.com/HwhtA8D6V8— Janae Cram (@naepalm) November 30, 2017
So, the one thing I didn't put on that list is the single thing I had planned for the summer - teaching at Western Washington University's - for those of you not familiar with Western, it's the local university where I live in Bellingham, WA, USA - yearly summer camp, the Odyssey of Science & Arts. In previous years, my good friend Syd has taught a coding class for girls, and this year Odyssey changed the program some so it was co-ed and Syd wasn't available to teach. She offered me as a list of potential instructors and Juliet (their coordinator) reached out to me. I was leery - it sounded like a lot of work! - but also excited to show the next generation how cool it is to be a developer. So, back in November after going to a festival and stumbling across some coding books for kids for inspiration, I decided I'd give it a shot!
Back in February, some time after I'd decided to do this, I had a one-on-one with Pete, who was asking me what I wanted to focus on this year as a member of Offroadcode's team. I really love how, as a company, every member of our (small) team is valued not only for Offroadcode's brand as a whole, but for our own personal endeavors. So when Pete asked me if I wanted to focus on speaking, pull-requests, or other ways I could push myself forward in the Umbraco community, I told him that my passion for this year was education. I want to get kids (especially girls) excited about what I do. And I know that Offroadcode as a company is also passionate about youth and education. We take on interns, speak at colleges, and do other reach-out opportunities to impassion the next generation with something we love.
I told him I wanted to work half-days for a week to do this, and Pete - being a wiser man than me in this situation - told me to take the entire week off because, and I quote "You will want to sit down, drink a gin, and figure out what to change for tomorrow".
He was so right! (chalk that up to lessons learned - which we'll hit on later)
I have never, ever done anything like this before. The closest is back in March when I volunteered for GEMS Academy, also run by Western, to teach an hour and a half introduction workshop to girls (GEMS stands for Girls in Engineering Math and Science). That was super fun, but not at all like running four-hour classes for five days.
It was clear to me that I needed an assistant and after talking about taking this on to multiple people in community, the perfect person volunteered: my sister. Cherise is a teacher who currently instructs at a private preschool (3-4yos) and substitute teaches at her local school district all the way through high school (18yos) (sorry for all these US terms, international folks). She booked a week off - well, her husband did to stay home and watch their kids - and came up to spend the entire week with me to teach the class. Before that even happened, though, she helped me with the planning, which is definitely the most important part!
Preparation & Planning
When getting set up to do a workshop like this, there were a lot of things to consider, and some (like time management) weren't even really in my list. In the end, I would boil down how it all gets prepared for to these four basics:
- Content: What is the point of the workshop?
- Time: How long are the kid's attention spans?
- Entertainment: This isn't school; how can we make this fun?
- Theme: A cohesive project with repeatable steps is easier to learn, so what theme is best?
Content was probably the easiest of the basics for me to figure out. I had a reasonably good idea early on of what I wanted to teach and I had books that had examples that I could take inspiration from. I basically broke down the subject matter into two topics: history and code.
Each day I decided that we would learn a bit about the history of programming, preferably including prominent women figures because women often get left out of history and even in a co-ed class, I really wanted to inspire the girls (we had 7 girls and 4 boys, by the way!). So I decided fairly early on that we would discuss on the first four days a prominent figure each day and how they changed software: Ada Lovelace, Grace Hopper, Margaret Hamilton, and Bill Gates.
The second part of the lessons were for learning coding basics as well as Scratch, and I broke it out per day into different segments that made sense to me in order.
- Day 1: What is programming, how do we come up with project ideas, and prototyping (specifically paper prototyping)
- Day 2: Binary, programming languages, coordinates, and movement in Scratch
- Day 3: Variables, Flowcharts & Error checking, and how to do those in Scratch
- Day 4: Broadcasts and putting together everything we've learned in Scratch
Now, I know two potential things you're thinking...
- There are five days to this workshop, not four, so what did we do on Day 5? The program manager informed us we could do presentations on Day 5 for the class and families that wanted to see, so we booked the entire day for finishing up our work early and then doing presentations of what we did for the week about an hour before class was over.
- What the hell is Scratch? You've been talking about it over and over and I have no idea. Woops, sorry. I got you! Scratch is an educational resource that allows people (geared towards kids) to build games and animations using drag-and-drop style coding formats. It teaches patterns and coding styles that can be reusable in learning actual coding languages.
Content was pretty easy for me. I had really solid ideas of what I wanted to teach, but planning time is so much harder! With an age range from 9-11, I really had no idea what the kids attention spans would be like. However, as classroom management is a specialty of my sister's, she took this over for me, and I'm happy to share the wisdom with you.
Originally, I had believed we would have basically the full four hours, but I learned after doing the training that's required with Western that we would have to walk the kids across campus to our classroom and back after lunch, so we had an original idea of how we were going to do things and then a reformatted idea when we figured out we'd lose 15-30 minutes on each end:
We didn't even fully stick to this, but kids have an attention span of around the same amount of time as their age (this is to intensely focus on one specific thing). So we set up the activities based on understanding how long they could do that. My guess is that you're looking at those images and thinking what I'm saying and what you see don't match - that's because these are general time frames. The Escape Room (I'll talk about that in Planning Entertainment below) had four puzzles - so broken into 4 segments - and the teaching and doing was actually split in-between teaching, then doing, then teaching, then doing again to break it up.
Originally I had thought we'd do history lessons and discuss, but that's not much fun for a week-long camp that isn't actually supposed to be school, is it? My sister and I also threw around some ideas of having them draw posters as they learned about people (this probably would have been a hit - all the kids really loved to draw). In the end, Cherise called me very excitedly and told me that escape rooms were very in right now and what if we had the kids "time travel" every day and get stuck in history associated with the person we're discussing, do puzzles related to coding to "escape", and then move on to the teaching event?
But also a lot of work. We did this, and we made all the puzzle by hand, so let me be clear - this was awesome and it worked really well and the kids really, really enjoyed it but it was so much work. (For the image, my sister cut out all those squares by hand and painted the one side black).
We also planned board games for a twenty-minute break in the middle, and integrated a lot of non-screen coding games around doing actual code. They weren't easy to find, but if you know where to look, cool places like csunplugged.org have really neat resources to teach kids computer science theories (with games) without ever being at a computer.
I'd like to say that I spent a lot of time planning the theme for the week - time travel and space robots - but the fact is... I didn't. The theme kind of came to me as I played with Scratch and ended up building worksheets (woo nelly, that's another conversation for another post). I picked robots for all the coding exercises in the end because Scratch has a really cute robot sprite that I fell in love with. Simple as that.
However, the point of theme - as much as it's just "fun" - is to have consistency. I was talking to someone recently - I wish I could remember who it was, sorry - and they were telling me that repetition and only adding new steps on at the end makes learning easier. I took this to heart, and that's why theme is important. By using the same backdrop in Scratch and the same sprites, the kids didn't have to figure out how to add new ones to each project, and when they did, it wasn't as much learning overhead. This gave them time to focus on what was actually happening in the code itself and not on the details of "how do I find that picture?!". Theme helps keep a consistent story, and helps improve learning!
To Wrap it Up...
There is so much more I could talk about in the planning phase itself. How to do slides, how to write worksheets that make sense for kids, how to make games... but there's only so much room in one post! I'll touch on these subjects in future pieces of the series, but this wraps up "the beginning".
Stay tuned for Part 2, in which we talk about... Escape Rooms!
Have feedback, questions, comments? Send Janae a tweet!