Skip to content
January 24, 2008 / Ben Chun

JavaBat

I don’t want to jinx myself by writing about this before it’s a completely done deal, but it looks like Galileo will offer AP Computer Science next year, and it looks like I’ll be teaching it! In preparation, I went to visit Lowell High School last week and got to see Art Simon’s computer programming classes. He’s running a great program, and gave me some tips on websites to check out.

One of these was JavaBat, which is put together by Nick Parlante at Stanford to help students build up their coding skills. It focuses on having students complete methods with given signatures and requirements, which are then compiled and unit-tested on the server. It works really well, and has some nice problems. I did the Recur1 set today, warming up my rusty Java chops and remembering how the built-in String class works. I tossed out a couple as challenges to a friend, and we compared solutions. Of course, we did the problems completely differently.

The only thing I miss in the web environment — besides of course the Emacs parenthesis and bracket matching — is the ability to use System.out.println to get some feedback while my code is running. But then again, it’s a nice exercise to try to debug your work using logical thinking instead of just being lazy and looking at output to see what’s wrong. I wonder if students ever work on code for these problems in an environment where they can debug more easily. Would that be cheating, or just working smart?

3 Comments

Leave a Comment
  1. Dad / Jan 27 2008 9:11 am

    First, congratulations on your AP assignment.

    re: cheating or working smart …
    The check engine light for the Subaru lead to a visit with the ‘automotive technician’.
    “Computer diagnostic say [emissions system] so we’re going to change the oxygen sensor and then do a tailpipe check.” Even though 3 months ago it passed the state mandated biannual smog check.

    That was good for about 150 miles until the light signaled again …
    “Computer diagnostics say [emissions system] so we’re going to do a complete service and do a tailpipe check since you’re only a few thousand miles from your major service and it could just need it early”.

    That was good for about 150 miles until the light signaled again …
    “Computer diagnostics say [emissions system] but since everything is running ok we think its just the computer code and you should just ignore it; we reset the computer and maybe we’ll just change the gas cap – it could not be sealing right”

    That was good for about 150 miles and …
    “Computer diagnostics say [emissions]”
    -customer- “I noticed a small tube next to the gas intake that is loose”
    -service technician- “I’ll have the supervisor look at it”
    -supervisor- “We had a guy go under the car and tighten the clamp to the tube”

    That has been good for the last 35,000 miles

  2. Ben Chun / Jan 27 2008 9:29 am

    I see your point, Dad… I guess I was just thinking that if I’m getting stuck or puzzling on some of these problems, how hard will they be for students? Pretty hard, I’ll bet. In a real-life coding situation, you’d never deny yourself the ability to use output to help debugging and development. I want to be sure that students don’t feel that programming requires you to be a genius — because it doesn’t. Just methodical patience and analytical thinking.

    Using output is a little different than just “going by what the computer says” because the programmer has to decide what to output. Maybe the best analogy is that your [emissions system] warnings are like compiler errors, which JavaBat does provide. Fortunately, the compiler is a bit more informative than a car’s onboard diagnostics! Funny story, by the way…

  3. Kevin W / Jun 2 2009 4:07 pm

    The Javabat problems aren’t difficult until Array 3s, String3s, and Recursion 2s. Of course I do still have a few Recursion 1s that are incomplete, but I am working on them.

    They definitely do get you thinking analytically, but at the same time, help you look at the possible ways of solving these problems MULTIPLE ways. I feel as though the final problems, as I’m getting down to the last 20 or so, are beginning to cause a bit of aggravation, and therefore causing me to just work on the RPG I’m working on instead…Haha.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: