Brown Box Computing
Where did this idea come from?
Firstly it is important to be clear about names. The full name is 'The Paul Curzon Honorary Brown Box Computer';
Professor Paul Curzon is a bit of a hero of mine. In a time when I was looking for every opportunity under the sun to computerise learning, he introduced me to the concept of unplugged computing. The concept of teaching Computer Science concepts without using computers is novel, non-obvious, and once you have tried it and tried it well, bloody amazing. I have used many suggestions from Paul and other sources in my teaching and have rolled it up into lessons, interviews, teacher training and CPD delivery.
One problem I faced as a teacher (of many!) was the concept of teaching procedural programs and effective decomposition. I mean - ok - how do you teach these concepts without actually using a computer? Another problem I - and every teacher in the world - have faced is that some children are annoying. So annoying that sometimes it would be nice to just put them in a box out of the way somewhere. All teachers have thought this - some of them just don't admit it.
One day a magical combination came together; I was pondering this problem, it was an inset day not ruled by hours of 'new initiatives', and the right thing came up on Facebook Marketplace: boxes. Big boxes. Boxes from a double bed. The spark happened and, having a boss (he didn't run the coolest bar in Southern England then!) who for some reason trusted me I jumped in the school minibus and tootled over to Croydon to pick them up.
Now; How does this work then? Well it's still a work in progress and more possibilities are coming to my mind all the time.
Version 1
These boxes were big and awesome. I wrote out an algorithm that I could easily decompose into three subroutines - in this case Pythagoras' theorem. The subroutines were add, power and root. Each box had one or more entry slots cut in and one output slots cut in underneath. Slots were about 1/2" high and wide enough for A4 paper. The insides of each slot were named (eg) a and b and the output slot was named return. Different names were labelled on the outside. On the inside of each box was pasted a set of instructions such as 'take the input of a and b. Add them together. Write them on the output card. Post it through the output slot.' Each input and output was on a piece of A4 which was laminated and folded over an inch so it could go through and 'hook' on to the slots. A student sat in each 'subroutine' box with no communication other than the slots and the instructions on the inside of the box. The boxes were open backed - if they are not a torch may be useful. A 'main code' student sat outside with the overall algorithm and used similar input/output 'cards' to collect user input, write it on the cards with a board marker, and pass it in/out of the subroutines until finally they had an output. Hurrah! In this way we were able to demonstrate the decomposition of a program, how subroutines can be used to take in data and put out data, and how the internal names of parameters does not need to correlate to the variable names.
Lessons Learnt
- Put bottom slots low enough so input doesn't cover it!
- Use wide masking tape to hold the boxes togther - stick-on velcro doesn't work.
- Don't jam the boxes into a Seat Cordoba and drive through central london; your vision will be impaired and you may miss congestion zone instructions.
Version 2
An initial improvement was the idea of 'swapping out' a subroutine. In this case when we ran through the first time we used a power subroutine that read like this:
Take input a
Take input b
Calculate a ^ b (I know - this was for demonstration purposes remember!)
Count to 100 in your head
Write the result on output
Post the output card through the return slot
We then looked at the algorithm and worked out how to make it faster. One method was to not count to 100, another was to use a cleverer student. We opted for the first method, and 'swapped out' the subroutine box for another one and observed the improvement. This also led to discussion about the importance of prototyping.
Version 3
The final implemented version is merely an observation. I was running some CPD for a large number of CS teachers across London and made a slight miscalculation - instead of a whole day at The National Museum of Computing, we had only two hours. So I did the responsible thing and asked the local pub if we could go there. They said we could, and I built a number of "CPD in a box" (that's a whole other blog post I reckon!). I wanted to take The PCH BBC (see what I did there?) but really - it wouldn't fit. So with a bit of fiddling we found that toner boxes cut in half can do in a pinch. This is called the PCH BBC LTE (Paul Curzon Honorary Brown Box Computer, LapTop Edition). Mini-post it notes are used for input/output cards, and unless your participants are extra small umpa-lumpa's that can get in a 5" square box they can just sit them on the table in front of them. Much fun was had!
Future Versions
This blog post was initiated by a facebook conversation looking for something to do as a large-scale activity and I figured "why not?". The students can be introduced into the concept with an example such as the one above, and then given a bunch of boxes, scissors, card and pens and a problem, and sent to 'build' the program. No coding needed - can be a useful way discuss the use of pseudo-code, structured English or flowcharts, and later on with the collaboration tools in the likes of repl.it they could code up the program as well. The possibilities are huge!
Reflections
This project has had two outcomes apparent upon reflection. It did not turn my students into amazing programmers overnight, but when built as a descriptive tool it helped them comprehend something they were getting caught up in, and when used (latterly) as an introduction tool early on in the teaching phase (why are subroutines normally left so late?!?) it formed a natural progression point which lessened the pain of introducing a concept.
Secondly is the interest and engagement. Students enjoyed learning in this way, which I believe increases their enjoyment and engagement with the subject. Other staff, visitors, and victims - I mean delegates - of my CPD enjoyed engaging with the concept, discussing it, and being inspired to try new things. Sadly I never got the opportunity to work this with an Ofsted inspection going on - I'm sure they would appreciate children in a box!