Hacker News new | ask | show | jobs
by brianchu 4539 days ago
I would focus on JavaScript. No CoffeeScript [1]. Start with basic HTML and CSS on the frontend; nothing fancy with HTML/CSS yet, just a couple of workshops. Then basics of JavaScript. Then jQuery (leave the DOM for another day). Then you can consider branching out into select (can't cover them all) advanced topics like D3.js, HTML5 canvas, SVG, WebGL (using three.js).

You may find that that's all you can cover in a semester. If not, I think it's important to also cover the server-side. Start with jQuery AJAX calls against an already created RESTful API to teach the basic request-response HTTP model. Then have students implement the API (no database needed) in Node.js. If you still have time (I doubt it), introduce the concepts of databases with MongoDB [2].

Python and Ruby are great ecosystems, but if you still have to teach JS, I feel like it's a bit hard on beginners to juggle multiple languages. Also, I'm divided on the utility of teaching a huge framework like RoR/Django vs. a lighter framework like Sinatra, Flask, or Express.js (node).

[1] You want to minimize cognitive overhead, especially with 2/3 non-CS-majors. And since anyone learning CoffeeScript needs to know JS, you might as well start with JS.

[2] MongoDB is a lot quicker for hacks than SQL.