Coffee Time Challenges

I’ve been feeling an itch to do some programming lately, and stumbled across these Coffee Time Challenges while browsing reddit. It’s not really “coffee time” for me right now since I’m on summer break, but I think the idea still applies.

I decided to post my solutions to github. You can of course browse them (but you should really try them on your own first!).

AI for Robotics Final Project

I had the pleasure of taking GT CS-8802: Artificial Intelligence for Robotics this past term as part of my first semester working on my Online Master of Science in Computer Science degree (that’s a mouthful). The course was taught by Sebastian Thrun, who besides founding Udacity, also works for Google on their autonomous car team.

I worked with a team of two other engineers to investigate localization techniques using landmarks based solely on visual information. In other words, we wrote code to help a robot figure out where it was based on pictures. Rather than read about it in boring text, though, you should watch our presentation video!

Computer Science Electives Video

You should take Computer Science at Hathaway Brown. But don’t take my word for it – watch this video explaining why!

I made the video mostly using Scratch, with a little bit of editing done later on to tighten up the timing and sync the audio. You can actually view/remix the Scratch project here:

http://scratch.mit.edu/projects/14930823/

The character sprite is based on the Jeff Winger sprite from the Community episode Journey to the Center of Hawkthorne. I used a similar animation last year, actually, but since then I’ve grown a beard and needed to update the sprites. 🙂

CalFiller

Hathaway Brown has a 6-day rotating schedule that makes it very hard to set up recurring events in most calendar programs.

We have used a solution called DynaCal, which supports all sorts of crazy school schedules, but DynaCal’s interface is pretty cumbersome for our faculty and staff to use. We are a Google Apps for Education school, and we want to encourage faculty to use Google Calendar rather. At the prompting of our director of academic technology, I decided to put together a web-based solution that would create iCal files based on our unusual schedule needs (which could be imported right into Google).

This was also a chance for me to make an interesting web app using Flask and deploy it using things like requirements.txt and pulling from a git repository.

You can see the code here: https://github.com/jamesmallen/calfiller

And you can see what the interface looks like here: http://calfiller.jamesmallen.net/hbus

Raspberry Pi Adventures – Display and SD Card Issues

My students in Intro CS this year have decided they want to build a tabletop arcade game for their final project. They picked this because they had heard about the Raspberry Pi, and wanted to do something cool with it. I swear that I had no influence on them choosing this project (though my personal collection of arcade games may have influenced my willingness to allow them to do something of this scale).

Continue reading →

GravitySim

Pythonista is a groovy app for iPad that lets you do programming in Python right on a device without needing access to a “full” computer or keyboard (although a bluetooth keyboard certainly helps!). It has some pretty good libraries for working with graphics and the input capabilities of the iPad, too.

I was playing around with it while trying to make something to demonstrate to students interested in programming, and came up with this little gravity sim. It was a neat demo of what can be done with just a tiny bit of code.