Objectives: to get the participants/kids acquainted with programming in a fun and engaging way, possibly rooting the knowledge in the families by having the parents participate. Most of the basics of programming (loops, branching, variables, functions, data structures) can readily be learned from on-line resources. However, some very important notions are hard to come by and are best learned through osmosis in a group. These include:
- versioning
- testing and debugging
- refactoring
- proper variable naming and meaningful comments
- caching and other optimizations
- the art of maximizing the amount of code not written and clean code principles
- knowing when to ask for help
- issue tracking
- efficient usage of search engines, the CLI, regexps and keyboard short-cuts
- understand the implications of software licenses (free / open source / proprietary)
When starting the session, ask everyone to introduce him/herself:
- say your name
- where you come from
- where you live
- how old you are
- what you are working on or would like to work on (ticket number) and will you present something today?
Be sure to have some project propositions available if someone doesn’t have an own idea, for instance
- code a drawing in Khan Academy. Bonus: make it move (that’s the Euler method!) .
- make a 3D model in OpenSCAD. Bonus: test out a spline library.
- using an Arduino, measure the value on an analog pin and print it to the console. Bonus: put in a small piece of conducting wire (=an antenna) and try and have the Arduino identify different configurations based on the readings (e.g. is someone touching the antenna, being close to a radio transmitter, etc.)
Note that we only use free/libre tools, one of the benefits being that they are available for the kids and families to use outside of the sessions.
After a presentation:
- try and ask some relevant questions and/or give some feedback.
- encourage to register the project in a ticket on trac and share the code
- applause after a presentation (in sign language = vibrate hands, so everyone doesn’t have to turn on the mic)
At the end of the session, evaluate 5+5: On a scale of 0-5 how much did you learn? how fun was it?
What do we need to improve? Is there anything we in particular should keep doing?
When sending the invitation email for the session, remember:
- a link for signing up for the session
- a link to the conference call