P is for passion, problem-solving and... programming?
It has been a while since I worked on a project so enjoyable that I have lost track of time. Something that involves creative problem-solving, and seeing the immediate results of changes to this or that, engages a part of my brain that shuts all other distractions out. It's really quite something else.
This fall semester I am taking an introductory computer science course to fulfill some credits for my CS minor. The class is geared toward non-technical students, to give them a broad understanding of technology, and perhaps to help the tech-averse increase their comfort level around computers.
The final lecture covers programming (writing software), and our last problem set for the term includes creating a project in Scratch. Scratch is a programming language created at the MIT Media Lab by the Lifelong Kindergarten Group. It's aim is to help young people to "think creatively, reason systematically, and work collaboratively."
Weekend of firsts
Having just returned from a relaxing and invigorating Thanksgiving holiday at a friend's family ranch—where, for the first time, I caught fish (using leftover turkey as bait), and destroyed cans of fizzy drinks shooting a shotgun, also for the first time—I began to explore the Scratch Projects page for some ideas and inspiration. Also, this was literally part of the assignment: "Your mission is, quite simply, to have fun with Scratch and implement a project of your choice..." And boy, did I have fun with it!
Once I got started—piecing the programming puzzles together; setting up and expanding conditions and loops; making subtle modifications to vector sprites; editing audio clips; thinking of ways to make the program behave a certain way when I did a certain thing; adjusting, testing, adjusting, testing, again and again and again—I just kept going. Suddenly, it was five o'clock in the morning.
Just keep coding, just keep coding
Every night since last weekend, I have been working on this project to improve upon it, and fix any issues that may have surfaced during its various iterations. I took care not to stay up past two o'clock, however, lest a grumpy zombie at the office I be. By the second or third night, I think, I have already surpassed the minimum requirements for this homework. Nevertheless, I still felt the urge to keep going, to build it up, and to enhance the user experience.
During the design and testing process, I managed to coax my husband to participate. I solicited his feedback and ideas for improvement, and asked him to test the mechanics of the game. Being an avid gamer himself, with natural instincts for these things, he is of the strong opinion that the room for improvement is clearly cavernous. I might as well give up and submit the darn thing before I break it. I trust him, of course, so that is what I shall do, just as soon as I finish this one last tweak...