MathGroup Archive 2005

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Re: Re: Timed Notebooks for Student Take-home examinations

You might like to look at the approach I used for so-called "validators" 
that I developed (building upon earlier work of mine and my colleagues 
for other programming languages).  The web site

shows how this was set up for the case of an assignment in which, among 
other things,students had to write a Mathematica function to encipher a 
plaintext using a Hill cipher.

The idea of a validator is that once the student writes the function and 
has tested it himeself, he calls the validator.  The validator 
automatically runs the student's function with various test inputs, rans 
the instructor's (presumably correct) version of the function with the 
same test inputs, and reports whether and how the student function's 
results are correct.

The materials there, put into a form for presentation at ICTCM12 (1999), 
include three key component files:  (1) a notebook describing the 
project; (2) an "About" notebook guiding the student through the 
validation process; (3) the package that validates the function.

While this design puts no limits on how long a student can work at 
developing his definition, it issues a time stamp at the time of 
validation.  But I saw, and see, no obvious way, without using 
additional database capabilities, of controlling the total time 
available for the student to develop the definition.

It seems to me that the suitable framework for what you want must be a 
learning management system.  There are any number of such systems (WebCT 
and OWL, e.g.)

W. Craig Carter wrote:
> Thanks everyone, for all the advice, but I should clarify.
> What I wish to have is a notebook template that the student would 
> take less than 3 hours to complete.  The student would be told, "you 
> should read the sections in the Help Browser on, (say), Thread and 
> Nest prior to the exam."
> The assignment would require the student to write simple Mathematica 
> routines and functions, and would be judged on cleverness and the 
> "elegance" of the solution.  For example, a question that might take 
> an hour would be, "Suppose that the interaction between two atoms in 
> a solid is V[r] = a/r^6 + b/r^12, calculate the equilibrium 
> separation of atoms, calculate their vibration frequency, using 
> Boltzman statistics produce a graphic that represents the density of
> states as a function of temperature."
> Thus the forms of the solutions are not fixed, but must be created 
> by the student.  The exams would be graded comparatively.
> And so, I am thinking along these lines.
> 1. A package, say TakeHomeExam, would be created which could be 
> encoded and with hidden variables.
> 2. The package would have an--also encoded---init.m which would 
> produce a string as the first line of the notebook via something 
> like:
> Encode[ToString[Date[]],"foo.m", "instructors_key"];
> Print[Get["foo.m","instructors_key"]]
> 3. Unfortunately, I don't see anything like "exit.m" so I would 
> require the student to finish the exam with a function from the 
> package, say FinishExam, which would do something like:
> FinishExam := 
> Module[{},Encode[{?Global`*,SessionTime[],Date[]}//ToString,"foo.m","instructors_key"],Print[Get,"foo.m","instructors_key"]
> Thus I might be able to decode and test the exam for "fairness" with 
> my own private "instructors_key"
> It's unfortunate that I must use file i/o, but I don't see a simple 
> way around that.
> I do see that students would be able to seek expert help, or copy, 
> but I am willing to live with that.
> I haven't tried to implement this---I am sure there will be some 
> problems.  I was thinking that somebody else might have tried 
> something similar (or someone at Wolfram might see the benefit
> of such a package and create one...)
> Thanks again, Craig
> On Wed, 14 Sep 2005, Igor Antonio wrote:
>>I'm probably misunderstanding something, so correct me if I'm wrong:
>>the package would reside on the student's computer and it would generate
>>a notebook for the student to complete.  At the time the student
>>"requests" the notebook from your package, you write an encoded string
>>to the notebook itself that basically assigns it a timestamp.  Then the
>>student would upload/send you that notebook and you would decode that
>>string? (encoded string + time of upload = time spent) Is that the idea?

Murray Eisenberg                     murray at
Mathematics & Statistics Dept.
Lederle Graduate Research Tower      phone 413 549-1020 (H)
University of Massachusetts                413 545-2859 (W)
710 North Pleasant Street            fax   413 545-1801
Amherst, MA 01003-9305

  • Prev by Date: Re: solve for a squared variable
  • Next by Date: Re: Nesting NMaximize
  • Previous by thread: Re: Re: Timed Notebooks for Student Take-home examinations
  • Next by thread: Re: Timed Notebooks for Student Take-home examinations