
Ask HN: Curriculum for a Computer Science crash course - raghavtoshniwal
Hey HN,<p>I am taking a month off from work to teach computer science at a public school in Mumbai, India. The kids I&#x27;ll be teaching are from a low income background and have almost no exposure to computer science&#x2F;programming&#x2F;software development. They&#x27;re 14 years old and have a basic math background. I&#x27;ll have close to 40 hours of teaching time with these kids. The objective of the course isn&#x27;t immediate employment. I am hoping to get them more interested in the field and maybe get them started on programming on the side.<p>I need to design a 4 week course for them. Here is what I have right now:<p>Computer Fundamentals ~ 10 hours (Basic computer achitecture, basic networking, very basic introduction to OS)<p>Basic web design ~ 4-6 hours (Introduction to HTML, CSS, making a real simple webpage)<p>Introduction to JS ~ 16 hours (Introducing programming concepts like abstraction, simple JavaScript syntax like functions and variables, basic DOM interactivity)<p>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)<p>Things I am skipping in the interest of time but unsure if I should:<p>Discrete Math, Logic, Algorithms, Datastructures, Linux&#x2F;UNIX, Lots of OS, Lots of Computer Architecture, A JS framework like React or Vue, Databases<p>Do you folks have any suggestions to improve the course? 
Should I include something key that I am missing?<p>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.<p>Appreciate your feedback!<p>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]<p>Thanks!
======
ArtWomb
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"

[https://csunplugged.org/en/](https://csunplugged.org/en/)

------
hackermailman
The best beginners books I've read are Common Lisp: A Gentle Introduction
(free)
[https://www.cs.cmu.edu/~dst/LispBook/](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](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.

------
majewsky
> 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.

~~~
4x5_Rules
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....

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

[https://www.linkedin.com/learning/four-semesters-of-
computer...](https://www.linkedin.com/learning/four-semesters-of-computer-
science-in-5-hours)

