Programming quizzes – You think I would learn.

I gave what I thought was an easy quiz last week.  Four questions.  Two asked for a short program.  Two gave a short program and asked for the coding mistakes to be corrected.  All with pencil and paper.  After giving the quiz I made the key.  After 30 years of doing this you would think I would remember a cardinal rule of quizzing – make the key, then give the quiz.  Yes, the quiz was easy, especially after I sat there and thought for a minute or two.  The difficulty is the difference between programming with a pencil and programming with the IDE up and running in front of you.  When I code I tinker as I go.  I stare at the ceiling or doodle some notes of issues I see.  I try something, see if it works and if it does I then look for a possibly better solution.  Taking a quiz is not the same as writing a program.  With a quiz there is usually a time factor involved and a pressure factor.  Both have a tendency to mess with my programming skills so I can imagine what it does to the kids’ programming skills.  In real life I have never had to look through a program on paper to find errors.  Coding errors are indicated by a number of things.  The program does not run, the program runs but gives the wrong answer, the equivalent of the blue screen of death occurs or, given the language, the IDE flags the error to indicate your typing ain’t so hot or your understanding of the syntax is wanting

Giving a quiz where the kids have to write a quick script by hand just seems so logical to do, especially to a math teacher like me.  It should test knowledge of the language, program design, algorithm development, and a couple other odds and ends in there.  After deep consideration I think a quiz of this type does very little of the above.  Maybe it tests quick knowledge of the language.  At this stage (first and second semester) the kids are still not at the comfortable stage with the language.  How good were you in the first semester of French?  (Is there a correlation between learning a foreign language and a computer language?  Sort of, especially if you talk to those that want to classify computer programming with the foreign language department.  Gurk.)  Do I really care about quick knowledge of the language?  Not so much.  I want them to be able to solve problems with the language and speed really is not that big a deal.  Program design is next.  Program design should take some time and some tinkering.  I usually do not get a well designed program until after I have gotten something working and sit back and look at it.  Then I get the “I wonder if” brain cells working and start experimenting.  That is what I want my students to do.  Tinker.  Is there any algorithm development in 10 line quiz scripts?  Again, not so much.  More like “how did I do this last time?”  I think I am going to bag hand written quizzes.  I will give quizzes where they can use their computers and their previous programs for reference.  It still will not address what I think the goals of a programming class should be but it keeps the kids honest.  A quiz does require they do their own work.  It eliminates “collaboration”.   Of course I promote collaboration when they are doing programs so there is a bit of a contradiction there but the quiz does catch those that are just along for the ride.

Does a pen and paper quiz/test fit in to a programming course at all?  I can see them for things other than coding problems but I am just not a fan of the time factor that is usually part of a quiz.  Now if I can just remember this the next time I feel the need to give a quiz.


One Response to “Programming quizzes – You think I would learn.”

  1. jiwerks Says:

    Hello Garth. I teach a high school CS course in NYC and am also questioning the use of pencil/paper assessments. My course is primarily project based, but I feel compelled to assess my students in a more “controlled setting” periodically so I can measure their individual progress. Last year I gave three paper/pencil tests over the course of the semester. However, these tests always felt detached from how students typically interact with code (on a computer). I think it would be silly to provide additional paper/pencil assignments to justify the format of the tests. Are you doing things differently this year? Have you found a way to do “computer tests” where students are in their typical operating mode (but perhaps still under a time constraint)?

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: