teaching / guides / day

One-Day Workshop


Teaching a One-Day Workshop

If you only have an hour, you can do the hour of code, which covers the basics of coding. This can be an awesome way to introduce students to computer science, but it doesn’t leave them with a ton of workable knowledge that they can actually do anything with. That’s not the point of the hour of code.

But if you have a few more hours, then you can include more examples in the lessons. More importantly, you can give students more time to work on their own projects (with help from you and optional lab helpers). The best way to learn how to code is by sitting down and coding, just like the best way to learn how to throw a basketball is by throwing a basketball, and the best way to learn how to draw is by drawing. Practice makes perfect.

With that in mind, I’d split the day up into two parts:

Part One: Lecture

I’d spend the first half of the day going over these topics, in this order:

(Note: All of the programs and examples mentioned below are available in the links to the respective tutorials. I wouldn’t try to completely cover every tutorial. Instead, I’d shoot for an extended version of the Hour of Code tutorial.)

With any remaining time in this half, I’d let students play around, ask questions, and show off any interesting twists they added to the example programs. If they haven’t had computers in front of them yet, get them to the lab portion as soon as possible- they’re probably itching to write some code!

Part Two: Lab

Now that students know some basics about coding, the best thing they can do to actually learn how to program is by, well, programming. So if at all possible, your one-day workshop should include some lab time where each student has their own computer.

Let students come up with their own goals, but help them keep it to a manageable scope. Think “I want to draw a scene from Mario Brothers” instead of “I want to make Mario Brothers.” Have a list of starter ideas to help them brainstorm. Some examples could be:

Have students define a goal at the beggining of the lab, and then spend the lab time working towards that goal. Many of them will have trouble just getting started, and that’s okay! A big part of programming is the process of breaking a problem down into smaller steps and then tackling those smaller steps one at a time, so ask them this: What’s the smallest thing you know you need to do next?

If they don’t have anything yet, then the first thing to do is decide how big the window should be. Then the next thing is to decide what color the background should be. Then draw a very very simple part of what you want to draw. I usually start with a circle. Keep adding pieces, and look stuff up in the reference if you forget exactly how something works.

You might also want to give students access to a library of examples. Processing comes with a bunch of examples, or you could use Happy Coding’s Processing examples.

At the end of the lab, have students demonstrate what they’ve developed so far. You might also want to provide a way for them to continue working from home, and point them to the exporting applications or Processing.js tutorials so they can share what they’ve done so far.