Skip to content

Hello Android

Some semesters I teach courses that just need to be taught. On the other hand, this Fall I get to teach a class that should be purely fun — an Android projects course for upper-level undergrads. I already promised an “A” to anyone who (legitimately) makes at least $100 using an application developed for the class. I plan to nudge students away from web applications and single-node games, which seem boring. Rather, I hope they’ll interface with the awesome peripherals that make phones and tablets special. Today in class we looked through the source code for a pedometer app — the most interesting part being the step detection logic. It turned out to be pretty hacky, but it more or less works.

Here’s a gratuitous hardware shot — my pile of Galaxy 10.1 tabs, which the students got to take home today. Half of the tabs were gifts, half were purchased using university funds acquired by Thomas Schmid who was awesome enough to loan them to me (or rather, to my students) for the Fall. The most interesting part of the class will be when I get some Tegra 3 development boards — these should be seriously awesome.

{ 13 } Comments

  1. Derek Jones | August 31, 2011 at 7:13 am | Permalink


    Here is an idea for a brave student (I have been tempted to try it but am weary of being sucked into it). Turning an Android phone into a sonar, windows version (with some source) here:

    A good candidate for earning $100+ is putting an Android GUI around the yucas computer algebra system (I hear the iPhone version is doing well):

  2. regehr | August 31, 2011 at 9:38 am | Permalink

    Thanks Derek. Sonar in particular would be really cool.

    Another idea I had was putting together an IMU — the Galaxy 10.1 has more than enough sensors and CPU power.

  3. Derek Jones | August 31, 2011 at 12:55 pm | Permalink


    I looked into doing an IMU and found an analysis (a Cambridge University MSc thesis maybe) of phone sensor accuracy which showed this idea was a complete non-starter. There was something about using the magnetic field detector to improve accuracy, but my memory is a bit hazy.

  4. regehr | August 31, 2011 at 12:58 pm | Permalink

    I’d be interested in the details Derek. But I’m not talking about an industrial-quality IMU, just something supporting tablet apps that require reasonable 6-DOF information. The video here is pretty interesting:

  5. Amjith | August 31, 2011 at 2:23 pm | Permalink

    I miss your hands on class, John. I still remember the Embedded Systems class where we wrote a C program to run on the bare metal, no OS or anything. I felt like a God after that project. :)

  6. Derek Jones | August 31, 2011 at 5:50 pm | Permalink


    If I recall correctly the issue was that any small error in the calculated orientation would cause the error in the estimated position to continually grow over time because acceleration due to gravity would not be correctly accounted for. Information from a magnetic field detector could be used to reduce the error in the calculation of the orientation.

    If hardware add-ons are allowed, how about support for an infra-red device on the USB port
    so I can fly my moquito helicopter?

  7. Matt Might | August 31, 2011 at 6:25 pm | Permalink

    The $100 idea is pure genius.

    Let me know how it turns out.

  8. Nathan Cooprider | August 31, 2011 at 6:34 pm | Permalink

    In some ways, that sure beats having to use motes. On the other hand, it takes away a lot of the fun. GUI shmui

  9. regehr | August 31, 2011 at 6:56 pm | Permalink

    Derek, hardware add-ons are definitely allowed — hopefully using ADK and some Arduino boards. A USB IR dongle would work too.

    Regarding IMU drift, I’m sure it’s a problem. We’ve been using MEMS accelerometers in my embedded systems class for several years and they’re fairly crappy. But the Android tablets have GPS. It’s all just grist for the Kalman filter…

  10. Eric Eide | August 31, 2011 at 7:02 pm | Permalink

    $100 is cheap poker; a student can afford to spend that on his or her own app.

  11. regehr | August 31, 2011 at 7:38 pm | Permalink

    “Legitimately,” Eric. I define it.

  12. James Banks | September 1, 2011 at 12:26 pm | Permalink

    What is the point of your class if an “A” is equivalent to making $100 on a project? People spend money on the darnedest things. And $100, legitimate or not, isn’t really that much anymore.

    What are the qualities the software/student should have to get an “A” without $100 (I know, it’s probably in the syllabus)? Money has never been a particularly motivating factor for me.

    Sorry for the cynicism, and good luck!

  13. regehr | September 1, 2011 at 8:11 pm | Permalink

    Hi James, the point of the $100 offer is to create an incentive for the students to think seriously about what it would take to make money using the Android platform. The reason I am comfortable making this deal is that I suspect it’s not going to be the easy way to get an A.