I borrowed a frame from our art department and set up the warp using this description:
I used cotton for the warp and wool for the weaving. Using a needle and thread I got us started, then we passed it around and everyone took a turn:
So, why weaving in computer science? Binary is the mast basic way of communicating weaving and knitting patterns. Think knit - purl - knit -purl. In weaving it is over - under - over - under. Alternating rows of over - under gives a small checkerboard pattern. By changing this we get different patterns in cloth.
This brought on a whole load of questions, and we did get off topic a bit. One kid brought up that the Romans used urine to dye fabric...and in fact To dye animal fibers you need an acid to fix the color to the fibers, which is why Kool Aid can be used to dye hair, or wool. Uric acid was the first commercially available chemical. Long time ago folks used urine to do indigo dyeing, which meant collecting a lot of the stuff. In a bucket, in the barn.
We did finally get back on track and watched a video on Jacquard Looms. I know we always use the examples of punch cards coming from looms, but really who cares? Today was the first time in all the years I have taught this that it mattered at all to the kids. Doing the weaving first made them really ask a lot of good questions about the loom. And the idea of storing a pattern and algorithm in a binary system is the basics of everything we do.
The final Product, it's a bit lumpy, but it is made with love.
They really got into this and had lots of questions. Had I known I would have set everyone up with a loom so they could make their own. Might be an interesting extension to give them a pattern in binary and see what the design ends up being.
After the weaving we started on binary numbers. Last class we spent about 20 minutes doing an activity covering how base ten numbers work. Today for the fast start their question was "if you only had 1's and 0's to represent numbers how would you represent 0, 1, 2 and 3?" Lots of good debate over how to show certain numbers.
Last we made our Analog Binary Calculators that we'll use the next few classes as we go more in depth on how binary works.