In a previous post I spoke about the care-and-feeding responsibilities of the first assignment and my experiences with a few different first assignments. Although I left another set of first-assignments go unblogged, a recent event has led me to contemplate a new and different first assignment. A couple of weeks ago I received email from a student indicating she had a question about one of the problems in my now out-of-print C++ text, A Computer Science Tapestry, could she stop by my office to ask about it? “Wow”, I thought, “a Duke student looking at my old book.” She had found the book in the library, by chance choosing my book to help with her work in C++ in a physics lab. She’s a physics major, learning C++ on her own, hadn’t thought of taking a compsci course here [that’s another story]. Her question was about one of the more philosophical end-of-chapter questions, not a “write code for this” question. After answering the question she wanted to show me the program she had done for an earlier chapter, one that gave the user a choice of hair, eyes, nose, mouth, and drew one of several possible faces. She was really proud of her program, had shown it to her advisor, and wanted to show it to me.
It was a revealing moment. She was proud of the creativity she had brought to the program and how she had made it run. This wasn’t exactly using Astrachan’s Law about leveraging the power of the computer, but it has led me to form a corollary [aside: hearing Sally Fincher talk this week at Snowbird using the British pronunciation of corollary was great — her discussion of localites and cosmopolitans as teachers and researchers, respectively, was spot-on and something I’ll follow up later].
The corollary leverages the power of widespread distribution and crowd-sourcing with the creativity of create-a-face or totem-pole examples [draw several faces on top of each other to create a totem pole]. It’s one thing to do this in a program to practice programming, writing functions/methods to decompose the task and to make things work. It’s another to share this with one, two, or a million people. We can easily do this by essentially uploading the face parts, e.g., hair, eyes, nose, mouth, chin, and providing a web-based UI to allow anyone in the world to create a face using student generated parts. I’m hoping we’ll use something like this in our first assignment, getting students to create hair before actually writing Python code, uploading the hair, then putting it in their own program. They could eventually download parts to use, at random or explicitly, in addition to using their own code. We’d show them how the uploading/extracting server-side code works later and they’d see how they could (easily I hope) write that code part way through the semester.
So, the corollary is
Sharing creativity on a large scale also leverages the power of computing and the network.
I didn’t use any net-centric ideas in formulating my earlier appeal for leveraging computing, it’s time to do that now. It’s one thing, and it’s a good thing, to write a face-drawing (or space-needle drawing, or graphics drawing) program. It’s another to share this with the universe in an easy way and to talk about how this is done. As my students know, there’s an unwritten Astrachan’s addiction/dictum that says I need to register domain names to satisfy some secret craving. In support of the ideas I’ve mentioned above look soon to the websites art-i-face.com, arti-face.com, and art-iface.com (all will map to the same site, they’re just placeholders for now). I hope we’ll have these part of both a non-coding day-zero assignment and a day-one programming assignment ready to go soon.
How is this past, present, future? The student who came to my office to show off the program of which she was so proud was the past. That led me to rethink my disdain for drawing programs in light of my present-day satisfaction with the space-needle program mentioned in the earlier-referenced post. The future of this day-zero and day-one assignment is rapidly approaching. I’d like to predict niftyness, but that’s premature. The corollary to Astrachan’s law needs some more backing — any volunteers?