Hacker News new | ask | show | jobs
by elonmollusc 1920 days ago
I used to teach intro programming at a summer camp for high school students and now teach full-time at an undergraduate college.

Two tips:

1. Don't worry about "impressive" projects. Even the simplest interactive programs will be impressive to new programmers. I have jaded college students that go crazy showing off their third-week rock-paper-scissors programs to their roommates and parents.

2. Think about the environment. If you want to do programming (as opposed to Lego kits or Arduino) you should look into a cloud-based IDE like repl.it so that everyone has the same interface and no one needs to install software. Choose a simple editor that allows them to run programs in one step.

Scratch is good for doing animations, stories, and simple games. The block-based interface becomes clunky and confusing when you try to write larger programs, but it's a good place to start with younger kids who enjoy the creative aspects.

Python is a good choice for writing text-based games. Don't underestimate the power of this approach for teaching new students: They can clearly see the link between what they write and what the program does and then make the leap to coding up their own ideas. It's harder to do that with a self-contained project that relies on external packages and pre-written code.

Twine is an interesting option. It isn't "programming" in the same way that Python is, but it's easy to use and writing interactive stories gets students thinking about sequential logic, conditions, and using variables to manage state.

You'll know you're doing it right when the kids are running with your examples, making up their own projects, and bouncing ideas off of each other.

I have a huge soft spot for Karel the Robot, which was very successful when I used it with my high school students. Look into it if you want a simple, creative predecessor to Python that isn't Scratch. I don't know if there is a high-quality free web-based version currently available.