Hacker News new | comments | ask | show | jobs | submit login
Ask HN: Curriculum for a Computer Science crash course
16 points by raghavtoshniwal 6 months ago | hide | past | web | favorite | 7 comments
Hey HN,

I am taking a month off from work to teach computer science at a public school in Mumbai, India. The kids I'll be teaching are from a low income background and have almost no exposure to computer science/programming/software development. They're 14 years old and have a basic math background. I'll have close to 40 hours of teaching time with these kids. The objective of the course isn't immediate employment. I am hoping to get them more interested in the field and maybe get them started on programming on the side.

I need to design a 4 week course for them. Here is what I have right now:

Computer Fundamentals ~ 10 hours (Basic computer achitecture, basic networking, very basic introduction to OS)

Basic web design ~ 4-6 hours (Introduction to HTML, CSS, making a real simple webpage)

Introduction to JS ~ 16 hours (Introducing programming concepts like abstraction, simple JavaScript syntax like functions and variables, basic DOM interactivity)

Make a simple app from scratch ~ 10 hours (maybe a timetable or a to-do app to bring together most concepts we have been learning and get them excited about making new stuff)

Things I am skipping in the interest of time but unsure if I should:

Discrete Math, Logic, Algorithms, Datastructures, Linux/UNIX, Lots of OS, Lots of Computer Architecture, A JS framework like React or Vue, Databases

Do you folks have any suggestions to improve the course? Should I include something key that I am missing?

I understand that I have not included very fundamental CS concepts but I am hoping these are things they can take up if they express further interest in learning the subject.

Appreciate your feedback!

PS: If some of you can donate some Computer Hardware and can ship it to Mumbai, India, that would be awesome! If you are interested, drop me a line at [my hn username @ gmail.com]


First of all, I think it's really great you are doing this ;)

One option is that I believe you can get relatively inexpensive Android devices in India. And there are now environments such as Grasshopper and SoloLearn that allow you to develop in Java right on the mobile device!

I can also recommend CS Unplugged: "a collection of free teaching material that teaches Computer Science through engaging games and puzzles that use cards, string, crayons and lots of running around"


The best beginners books I've read are Common Lisp: A Gentle Introduction (free) https://www.cs.cmu.edu/~dst/LispBook/ and the Little Schemer as a primer for learning computation. Little Schemer you can do with pen and paper no hardware required and it's not a long book, so can split it up for an hour a day then have time afterwards to start an actual computer science course, most of the work is done online with Brython so can do it in an internet cafe without needing to install anything and the lecture videos are short youtube presentations under 5 mins usually so not a lot of bandwidth needed https://www.cs.cmu.edu/~112/schedule.html or they can just teach themselves later however they want as the goal is just get them interested in computation.

There's another book out of print called The Schemer's Guide by Iain Ferguson, which was geared for highschool students and could be done entirely in pen and paper. You can buy it used off Abe Books or amazon for $10 and just hand out illicit photocopies.

> Make a simple app from scratch ~ 10 hours (maybe a timetable or a to-do app to bring together most concepts we have been learning and get them excited about making new stuff)

Time tables or todo apps may bore many children to death. Maybe you can find a JavaScript-based 2D game engine? That would certainly be more engaging for them.

You might want to start them out on Scratch. It's pretty easy to do a game with that. After an hour or two on that, let them move on to JS or Python.

My .02 cents....

My most successful day with kids was showing them Processing. Everyone seemed to really enjoy it. Every hour or so I'd go up and show something new. Even after the first day everyone ended up with some really creative art pieces.

That is a really good idea. It might be a little more complicated to teach graphics/simple physics but maybe it would be worth it.

maybe you could take a look at this for some inspiration:


Applications are open for YC Summer 2019

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact