Using:
and
java junit jam tester automatic auto
auto-mated automated grading teacher comp computer science ap troy high school
class lab easy grade correct test unit testing david poll depoll automation jar
time saver comma separated value csv java java junit junit jam tester automatic
grading tool
|
-
What
is JAM*Tester?
2
Tools. A teacher tool to aid teachers with grading and
a student tool to aid students in testing their code.
Both tools utilize JUnit in order to automate tasks.
- With
the teacher tool you can completely test out the methods of
a class - and do so for EVERY STUDENT AT ONCE! That means
you can grade your students' labs for correctness in seconds.
All results can be saved as a csv file to be imported into
your favorite grading program. Also, working with JPlag,
there is a built-in check for plagiarism.
- With
the student tool you, the student, can easily and even automatically
create test cases for her classes. In addition, with the "code
coverage" feature, she'll see exactly which statements
in her code haven't yet been exercised with the test suite
she created.
The student tool is designed to work in cooperation with your
favorite IDE (here are 2 good free ones - BlueJ
and JCreator).
If you wish, you don't even need to use another IDE - the
tool has a built-in basic IDE (edit and compile from within
the tool).
-
Why use it?
You've already been teaching your students JUnit testing (or
you want to learn - JUnit Demystified)
- maybe you've even used the idea to grade their Java classes.
The problem (used to be, anyway) is that you had to manually
compile/run the test class for each student's class - then,
write down the results(lots of methods per lab/per kid - lots
of writing/notes, etc.). Now the entire process (from JUnit
test class creation to running the tests to grading all labs)
has been automated.
(paper discussing the merits of JUnit in a cs
classroom - Automated Unit Testing
with JUnit - Copyright (c)2004 by College Entrance Examination
Board. All rights reserved. Used with permission.)
Tip
If you've been designing labs with lots of (or any, for
that matter) user input, stop. It's unnecessary and distracting
to your students. There is a time for user/file input - when
that's what you're trying to teach. If you want to fully automate
grading, think about designing your labs without user input;
it's not hard. This has the added side effect/benefit that you
won't have to sit there answering questions when running their
labs. So, when you design their lab, just design the class and
its methods.
-
What
does it cost?
Absolutely
nothing. However, we'd love to know what you think and
welcome ideas. Please, contact us with your questions
or comments. See the Contact
page.
-
What
is my learning curve?
Practically zero. What you'll
spend time learning is JUnit. If you use our JUnit
Demystified tutorial which focuses on JUnit only, you'll
spend 10-15 minutes and be good to go.
-
What
platform will it run on?
Well,
it's written in Java, so as long as you have the Java SDK version
1.4 or better, you should be fine. However, it has only
been tested on Windows machines. Let us know if you run
into problems.
-
How
does it work?
It's
not too hard. All you need to tell the program is what
folder contains the students' labs and where it can find the
test file. JAM*Tester will compile each lab and create
a .csv (comma separated values, compatible with most spreadsheet
programs) file with the results. JAM*Tester makes lab
evaluation simple!
-
I
want more reading on related material.
Unit testing is part of the Xtreme Programming
methodology of letting the testing drive the design/coding. Since
you are likely a high school teacher - maybe professor - we
would suggest you focus on just 2 of the topics within XP (Test-Driven
Development -- Pair-Programming). Here is some interesting
food for your cs mind: What
is XP? -- Pair-Programming
-- Pair-Programming
In the CS Classroom --
An XP Episode!
-
Whose
project is this?
Dave
Wittry, a teacher at Troy
High School, and a gifted/motivated student at Troy High
School named David Poll (class of '05).
| |
|
|