Ask HN: Resources to teach high schoolers to code?

I have a friend in NYC who has volunteered to teach high schoolers programming this summer. She's a public school teacher with limited resources, but she's been given free rein to teach whatever she wants, and asked me for guidance.

Her goal is to get the kids building basic web apps by the end of the summer. It's an ambitious goal but I think it's doable. Some resources I suggested so far:

* code.org for free curricula and guidance

* glitch.com as an easy and fun platform to start building web apps

Are there any other good tools she should check out? Any organizations in the NYC area that could help her? Thanks!

36 points | by qsymmachus 2256 days ago

15 comments

  • teach 2256 days ago
    Taught programming to high school students for twenty years....

    I liked using a bunch of projects with increasing difficulty that students could move through at their own pace. The difference in coding aptitude is really quite astonishing.

    I wrote a blog post explaining how I used to teach beginners in tremendous detail: https://grahammitchell.com/writings/how-i-teach-beginners.ht...

    I'm not a big fan of CodeCademy; it's seductive but the kids end up not knowing how to do very much at the end.

    Khan Academy has a decent HTML/CSS/JavaScript curriculum. I never personally used it with students because I wasn't teaching Web Development anymore once they rolled it out. However, I think it looks pretty good. Might be a little fast for some kids.

    Anyway, hope that helps.

    • tudelo 2254 days ago
      That's an interesting way to teach, acting much like someone running a college level CS lab, except you also have the benefit of creating the material. I think this is one of the better ways I have read to teach this sort of stuff. No one will be left behind and those who are fast are not held back. The only problem I can see is class sizes but with a low enough size, this seems like an awesome teaching method.
    • cornholio 2256 days ago
      Thank you for this, indeed the speed differences are large.
  • mathgeek 2256 days ago
    Just in case you haven't run into yet, we also have a specific page on Glitch to highlight "learn to code" projects:

    https://glitch.com/learn-to-code

  • 52-6F-62 2256 days ago
    When I was in high school we used BASIC and then Turing to learn basic instructions. With Turing we were able to learn to draw some basic graphics to the screen, etc. I'm not sure how applicable it would be to web app cases, but it was at least a little engaging at the time.

    http://tristan.hume.ca/openturing/

    To build a full web app for the first time without previous exposure could get messy quickly given the current landscape. Maybe start with a simpler website that includes laying out some HTML, styling it, and adding some basic front-end interactivity.

    If there's a pre existing server that they could interact with, maybe that would help with encouraging them by giving them more immediate results without skimming too much of the detail into what they're actually building, rather than just learning too much by rote.

    A bit of a search pointed me to Udemy which has a free course covering HTML/CSS laid out already. It wouldn't be too hard to build on something like that to show how Javascript interacts with elements on a web page.

    https://www.udemy.com/build-your-first-website-in-1-week/

  • dictum 2256 days ago
    It's not exactly a teaching resource, but one tool I think high schoolers will be interested in is the browser's dev tools.

    Showing how they can modify websites they visit - even if just to replace a phrase on the homepage of their school's website with something else, like legal graffiti - can interest them in one kind of code - web code. It's not the only or even most important kind of programming, but it's highly accessible/relatable to high schoolers.

  • montrose 2256 days ago
    I've heard Repl is becoming popular with teenagers, and it's free. http://repl.it
  • applecrazy 2256 days ago
    As a high school student, I've heard great things about Hack Club[1]. It's a full HS coding curriculum with a community of high school students behind it. I believe HN user zachlatta could be able to help you (he runs the program).

    [1]: https://hackclub.com/

  • asicsp 2255 days ago
  • cornholio 2256 days ago
    Mostly geared to middle school and absolute beginners but worth mentioning:

    Scratch is a visual environment that will teach the basic of algorithms, loops, decisions, variables etc. using just drag and drop. It has sprites, sounds and everything you need to create rich flash games that can be exported to the web, so coding it's very rewarding, here is what a 12 y/o can create: https://scratch.mit.edu/projects/203422373/

  • scorpion_farmer 2256 days ago
    This blog has some good ideas about teaching Python to high school students: http://blog.jrheard.com/
  • newbear 2256 days ago
    Freecodecamp.com - I'm surprised nobody here is touting it. It's the best. Has a forum, has a curriculum, hits on computer knowledge students might have gaps in, uses github, is open source, etc. glitch is a cool way to do a full stack demo but you need to go through some learning on your own first I think and FCC is the best free tool there is
  • foopod 2255 days ago
    Code Club is great. Has a one year curriculum of Scratch -> HTML & CSS -> Python.

    Aimed at 10-12, but easily caters to other ages too.

    Have a look at the tutorials below...

    https://codeclubprojects.org/en-GB/

  • disqard 2254 days ago
    Check out the projects listed at the Center for Game Science. Two of them (DragonArchitect and BlockStudio) are all about introducing programming concepts to novices. Disclosure: I'm a grad student at CGS.
  • hervan 2256 days ago
    I'm no educator, but this material caught my eye a while ago: http://csfieldguide.org.nz/
  • dopeboy 2256 days ago
    ScriptEd (scripted.org) has a curriculum on GitHub which might be helpful to your friend.
  • Mechasparrow 2256 days ago
    Here's some additional resources

    Web Apps: - freecodecamp - codeacademy

    That's all I really got for now :)