Although the main ethos of Prewired is to support attendees in developing their own projects, it can also be useful to give them more structured input in the form of short workshops. There are a number of reasons for doing this:
- stretching the kids' capacities and providing a new focus for their work (we still have a few attendees who default to playing shoot-em-up games);
- they don't know what they don't know -- most of them could benefit from improving their coding skills in one area or another and there are always new technologies to learn;
- it can be fun for mentors to get more involved in this way.
- short presentations (10-20 mins) which act as a lead-in to activities by the workshop participants [MUST]
- clear expectations of participants' prior knowledge of topic and some rough idea of learning outcomes [MUST]
- participant activities should be graded in difficulty (start easy, build up to something challenging) [MAY]
- written materials (ideally kept on GitHub/GitLab):
- for participants [MUST]
- for other mentors and as something to build on for future iterations [MAY]
- follow-on activities that workshop participants can carry on with in regular evening sessions [MUST]
In addition, we might want to have something like: feedback forms after each workshop; certificates of completion; target projects that could be worked on over a course of weeks and demo-ed.
For every workshop there should be at least one mentor who takes ownership of defining the topic, delivering the workshop itself, producing learning materials and managing follow-up activities. Of course, this could be done with a team but one person needs to take overall responsibility.
Preliminary list of topics...
- thingy on OSS licensing
- Not sure how to make this into a workshop but it could be a cool talk
- Snake on Micro:bit (EaRS)
- Rock, Paper, Scissors (EaRS) (This one is short and would make an easy test)
- Self-balancing mobile robots
- Remote controlled car with Micro:bits (EaRS)
David: I am talking to EaRS about their workshops. I can run them myself. They are fun and friendly for beginners
- Prompted exercise to control a public display (and show name in lights) ESP8266 controlled lights/display.
- find SSID,
- connect, get login screen, suggest common ID/passwords to try, succeed and get User sign in screen showing company/device, google and find website - user manual + binary code, text search for "password" and find default, use manual to post own name. Display name until next person cracks it.
(Maybe one topic a week ? )
- Batteries (volt, current) ==> power ==> energy -> static electricity, lighting, electric cars -> supercapitors.
- Capacitor (smooth,filter, storage)
- Resistor - pull up, voltage drop, rating, values
- Diode -> LED - (voltage drop resistor)
- Semiconductors (transistor, MOSFET, SCR/TRIAC)
- AC vs DC, mains/battery.
- Transformer -> inductor -> magnetism, radio waves, relay, motor, back EMF.
Soldering, using a multimeter, other skills ?
David: I am not sure we can do this safely. Our insurance would probably not be okay with it either.
Building a computer from basic components
Intro to Linux / be your own sysadmin
Version control - GIT + general good coding practice
- I can make redo my git workshop to be nicer. We can stretch it out and make it interactive.
- I noticed that even kids that know how to use git don't actually know what they are doing most of the time. So we may even do a more "in depth" workshop
David: I feel like it's more interesting to do workshops where they do python instead of a straight up python workshop. The Micro:bit workshops I have are good for this. They also force you to figure things out.
- How to get started e.g., programming micro:bits.
- Simple intro to basic syntax; loops; how and when to write functions -- ideally run this via JupyterHub
- List comprehension
- Documenting code
Internet of Things
- Resource for ESP8266
- Using Node-RED to control devices -- see also Node-RED Guide. The visual programming approach would work well for kids who are used to Scratch.
- HTML elements; write your basic page and put it on a server
- Add some CSS
- Try to write a consistent set of pages (menus, consistent headers) and bang your head in frustration; learn a simple framework (which one?)
- Execute JS in the browser
David: maybe show them something like jekyll instead? It's a super easy and nice way to get their websites up.