Thursday, December 15, 2011

Baby's Book of Computer Science

The challenge this week was to create a pattern for a cloth baby book that could fit on a fat quarter. I thought of the old saw, "write what you know," and being a software engineer, decided to try to create a book for babies that goes over some fundamentals of computer science!

The first page explains binary numbers, first by visually representing the first four powers of two. Then there are flaps that let you construct binary numbers from 0 to 15. The second page demonstrates the three most basic logic operations ("and", "or", and "not"). The inputs are what people say about whether the baby can have candy, and the outputs are whether the baby actually can have candy!

The third page shows the classic "Hello, World" in a number of languages. I had to include Java, since that's the main language I use in my day job. Also mandatory was C, since it's such a fundamental and important language. To round it out I included shell script, Perl, and Ruby. Then I found that I had room for one more program, and decided to include Lisp - since its version was small enough to fit in the remaining space, plus it has a funny name! Each of these "Hello World" programs gets hidden by a little flap with the language name on it. Since the four smallest programs were about the same size, I drew a little symbol above the program to make it easier to match up the flap with the correct program - a pearl and a ruby for Perl and Ruby, obviously, then a nautilus shell for shell scripts. I went a little free-association and used a mustache for Lisp.

The fourth page contains demonstrations of the three characteristics needed to make a language Turing complete - loops, "if" statements, and storage of variables - depicted with situations familiar to babies.

The front cover is a baby using a computer. As anyone who's been around a baby these days knows how interested babies are in computers, smartphones, etc - all the fun stuff adults pay constant attention to. The last thing I finished in this design was actually what was on the screen on the computer on the cover - in the end I decided just to go with a robot. Hard to go wrong with cute robots! Finally, on the back cover I went with the classic "parts of a computer" diagram, a staple of beginner computer science texts. I've always seen that done with a standard desktop computer. However, more & more people are using mostly laptops (or tablets, even) for everyday use, so I went with a laptop. And since I used a macbook on the front, I showed a windows laptop on the back, for maximum cultural diversity. :)


I'm really happy with how this came out! I got a number of enthusiastic comments on this one. I haven't received the printed fabric yet, so I'm waiting with baited breath to get that & be able to sew one of these up for real!

My design came in 21st out of 68, with 210 votes.

Incidentally, see above how I finally figured out how to embed a fabric image that links directly to its page on Spoonflower? I mean, I know I could do that myself manually and all, but I was hoping Spoonflower had a widget that did that for you. As it turns out, they so - but I couldn't find it anywhere. I even emailed tech support and suggested that as a new feature! I must not have described it very well, as the lady who replied just gave me a generic response instead of saying, uh, dude, we have that already... A few days later, lo and behold, I suddenly saw that there was a link below the fabric image on the page that said "Embed" which produced the little embed graphic seen here! As it turns out, that feature had been there all along, but it's only visible on certain pages. It's funny, there are two different ways to get to a fabric page. If you navigate from the main page of your own account, the page URL looks like this:, and just below the lower right corner of the fabric image the only action is "Zoom." But if you navigate to the fabric any other way (such as the links on the left hand side from another fabric page) the the URL is just this:, and suddenly you can "Tweet" and "Embed" too! Strange. Well, at least I figured it out eventually, and I'll be able to use that from now on.

No comments: