
Ask HN: How would you teach programming skills to underprivileged kids? - P6Rs4r
I am associated with an NGO that organizes after-school activities for children in a slum in Mumbai, India. I&#x27;m trying to create a course to teach them some programming skills that will enable them to get freelancing careers or be able to get jobs once they graduate school. The target group is kids in grades 9 to 12 with limited exposure to computers and programming (some of them have some knowledge of HTML from a campaign done by another NGO but most are unfamiliar with any form of computer languages).<p>I&#x27;m trying to come up with a course of about 10 hours (spread out over 2 weekends) that would introduce them to programming. It would be great if the kids could have something working by the end of the course so that its engaging for them (drop out rates have been very high in the past).<p>My inclination is to start with the basics of Python and then move on to something like Django where they can create a working website for themselves. Is this feasible to teach in 10 hours? Is there any other language or program I should start with instead?<p>The longer term goal here is to take the kids that show the most interest and teach them algorithms and data structures allowing them to get good jobs in software companies.
======
pizza
Django is amazingly productive to work with if you are familiar with it, but
you likely have to teach some bits of foundations of databases/SQL on top of
the ORM semantics, some bits of HTTP semantics on top of MVC, some bits of
HTML and CSS semantics on top of the template language, etc.

Check out Django Girls - [https://djangogirls.org/](https://djangogirls.org/)
\- they organize workshops that teach Django to kids all over the world, so
I'm sure this will be relevant to your plan. Check out the tutorial that they
do where the student makes a blog -
[https://tutorial.djangogirls.org/](https://tutorial.djangogirls.org/)

Their organizer's manual -
[https://organize.djangogirls.org/](https://organize.djangogirls.org/)

Their coaching guide -
[https://coach.djangogirls.org/](https://coach.djangogirls.org/)

You could also prepare a few Jupyter/IPython notebooks in advance that have
the basic examples of how to use Python - these could serve as a kind of
executable documentation of language features, to help avoid them getting
stuck.

Is the 10 hour limit really set in stone? Also do you have anyone else who
could teach with you at the same time? More teacher attention % per student
generally translates into a better learning environment.

Hope it goes well!

------
JoshCalbet
I'd suggest to go trough the fundamentals. Make sure they understand the
workflow on Django and a project that they can actually take into production,
don't make it too broad but care about the fundamentals, so they'll be able to
solve their own problems in the future. It doesn't pay well in the long run to
make a project too broad. I'm not sure if Django is the right thing to start
but that depends on your motivation. Think about python notebooks, for
instance how to connect to a well known API, to grab some data and play with
it using data structures, plotting. Things that they can see without investing
too much time in server configuration. Most probably you already know it, but
colab.research.google.com is a ready to code python notebook

