Skip to content
December 2, 2011 / Ben Chun

Question of the Day

Three weeks ago, I attended the Grace Hopper Celebration of Women in Computing for the K-12 Computing Teachers Workshop. As with most conferences, the biggest impact came from conversations between sessions. Two colleagues I’ve known only virtually, Hélène Martin and Mike Zamansky, were there and it was great to meet them in person. Based on Hélène’s talk we’ve decided to all try to blog more as a way to keep in touch and share what we’re doing.

Ria Galanos (Georgia CSTA co-founder and a fellow instructor in Google’s CAPE program) was planning to write something about all this on the CSTA blog — so I’m calling her out on the internet. I’m not just naming Ria to make her blog, but also to thank her for an idea she shared with me. I was complaining that I don’t know how to reach some of my students who get lost early on in the course. Ria said that in her APCS class, she has students write a method on paper every day and this formative assessment has cut down on the amount of nonsense code she sees. I decided to try it.

For the past two weeks now, my AP students have written the body of a simple method every day at the start of class. They have 5 minutes with no notes or other resources. The problems are supposed to be quick review — like CodingBat on paper. For example, one recent problem said, “The method charCount takes an array of Strings and returns the total number of characters they contain.” The prompt also gave two example inputs with expected outputs, and then asked them to write the method body.

Later, I sort the answers into three categories: “got it” which means the code as written would compile and produce the correct answer for all inputs, “close” which means there’s a minor syntax or logic error but the overall answer shows an understanding of a possible solution, and “way off” which means confusion about how to approach the problem or major syntax misunderstandings.

Here’s how we’ve been doing:


What does that mean? Well, partly that practice helps. In the first week, I gave problems that all required a loop controlled by an parameter. Students got better at solving them. In the second week, I started giving problems with an array parameter which confused a lot of them. But after a few more of those kind of problems, results improved again. Introducing a twist (like I did in the most recent question) reveals that some of the “close” answers are just mimicry or pattern-matching and not durable learning. Long-term impact or improvement is currently an unknown. You can download the PDF of my first 10 questions here.

Despite the unknowns, there are three things I like about this practice: One, it adds some routine to the day and establishes a space to talk about the little details of programming. Today we talked about the confusion that can arise from using “i” as a non-index variable name. Two, I like getting regular feedback about who is where in terms of their understanding. I can talk to individual students about their work without the external force of a grade weighing on us both. And three, I like the reality check — we’re not where we need to be yet as a class.

I wouldn’t have started doing this without Ria’s suggestion. Teachers of most other subjects have a whole department to talk to about what they’re doing and share their results. Since CS is a small elective at most schools, our professional learning community has to take place online. Good thing y’all know how to use computers!



Leave a Comment
  1. Derek Mahar / Dec 3 2011 11:17 am

    I really like this quick daily question approach, but I have a few questions about the results in that graph.

    What does the vertical axis represent? Does it count the number of students in each category? Is it a percentage? If so, why isn’t the total number of students roughly constant or 100%? Why does the count for all categories drop on Nov 18? If the “got it” and “close” categories both drop, shouldn’t the “way off” category increase? Do these results make sense or have I missed an important detail?

    • Ben Chun / Dec 3 2011 11:22 am

      So busted! Always label your axes! I just updated the chart — the vertical axis represents the count of students. The total drops on days when some students are absent.

  2. zamanskym / Dec 3 2011 4:59 pm

    Sounds like a great idea. I think I’ll give it a shot in some form or another. The hard part to sustaining something like this has got to be the grading. For me it would mean about 93 additional papers a day. Even with only a brief look at each paper, it’s got to add up.

  3. Alfred Thompson (@alfredtwo) / Dec 8 2011 3:58 am

    This made me think of Pex 4 Fun ( which is designed for short coding puzzles in C# (may be close enough to Java for you), Visual Basic and F#. One can create their own puzzles or use existing ones.

    • Ben Chun / Dec 8 2011 2:46 pm

      What’s interesting about Pex4Fun is that it automatically determines the interesting inputs that result in code coverage. It’s a neat demo. However, I don’t see how something can be a puzzle without stated a objective or goal. The framework that Nick Parlante has built at Stanford for CodingBat ( ) is much more clear and is the obvious choice for Java exercises online.

  4. Ria Galanos / Dec 8 2011 3:37 pm

    Because I’m busy grading all of the daily questions I assign, I am behind on both my blog reading and writing. This of course means I missed Ben’s post and am delinquent in my contribution to the CSTA Advocate Blog. Kidding, of course. Well, not on the delinquency part, but on the part of the daily questions adding up. Ben’s approach was a little more involved than my original suggestion. The daily quiz questions I started assigning after hearing about this approach in a session at SIGCSE 2009 required the students to write one or two lines of code. I graded these papers on a binary scale and were able to knock out the grading in under 15 minutes (and that’s for 100 papers). It does take me a bit longer to grade a JavaBat style question by hand, so I don’t do that as part of the daily assessment often, though I do throw that in once in a while. I’m a big advocate of having students do things on paper. I try to limit it though to just enough where I think they have the hang of it, then I send them off to the computer so that 1) they stop complaining about having to code on paper and 2) so that I don’t have to grade so much by hand. Now, if someone can suggest how to keep up with my blog reading and writing, I’d be forever grateful.

Leave a Reply

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

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

Google photo

You are commenting using your Google 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 )

Connecting to %s

%d bloggers like this: