A series of cgi scripts can permit a more exploration-oriented homework for students in large classes, either as a group assignment or individual assignment. The basic idea is that there be a little database of information that the students can access. In its original incarnation, the idea was that students would "examine" geologic formations and then make a report on the geologic history of an area (Boulder). This can easily be expanded to any other situation where you might want a student to select information from a larger collection that can be expressed as the characteristics of a long list (formations, locations, etc., shown as a pulldown menu) and a short list (observation type, characteristic, etc.). So the original homework has the formations near CU as the long list and the kind of observation (fossil, sediment characteristics, radiometric date) as the short list; an alternative, for instance, could be locations on a river system as the long list and characteristics of the river bed or sediments as the short list. Another might be a list of volcanoes and characteristics of volcanoes (shape, chemistry, eruptive behavior, etc.). The current incarnation of the script includes a field for student to explain their choice.
The answers then exist in a question file, which is a tab-delimited text file with the question id, a 1 or 0 indicating whether the answer is "valid" (i.e., counts against the student's quota), and the text of the answer, which can include html coding so that figures and links are possible. The question id is formed from the position in the long list (times ten) plus the position in the short list. If an entry is missing, the script will inform the student an answer is not available at this time and to try again. So for instance, for my homework, unit 1 is the Rocky Flats gravel and question type 1 is the sedimentary characteristics of the unit, so the question id for the sedimentary characteristics of the Rocky Flats gravel is 11. As question type 2 is an examination for fossils, a list of fossils in the Rocky Flats gravel is entry 12:
11 1 The Rocky Flats gravels are poorly sorted with clasts to boulder sized;
interbedded sands are immature. Bedding generally massive, indicating sheet
floods a likely component of much of this. Some cobbles might have glacial
scour marks and polish. Clasts are made up of bedrock clasts from exposures
upstream to the west, mostly the plutonic rocks of the Front Range.
12 0 No fossils have been recovered from the Rocky Flats gravels.
Note that the second field is "1" for question id 11, indicating it is a successful question and 0 for question id 12, indicating that it doesn't count against the student's limit.
There are two other main input files: a student file and a group file. The student file is also tab delimited with a student password (I use the last 5 digits of student ID), group number, number of questions/observations asked/made, student name, and the collection of student-generated justifications. The user id must be unique!
12345 1 0 test1
23456 1 0 test2
At the start, the user file might look like the above (this is how you might set it up). Then after students have used it, you might see the following:
12345 1 2 test1 want to see how
old the granite is;want to date the shale with fossils
23456 1 2 test2 looking for shoreline facies in the Dakota; looking
for shoreline facies in the Pierre
This is how the user file might look after awhile. Note both users are in group 1.
The group file contains the group id number, the list of questions (by question id) asked (comma delimited), and the group's topic question. Both of these can be generated from Excel or Word without too much difficulty. By assigning each student to their own group, the group exercise becomes an individual exercise.
A second set of scripts then can allow for students to review each others work anonymously (both for the original author and the reviewer). In this mode, the student logs in through a separate page and see buttons for each paper she or he is to review. Clicking on the button brings up the "observations" that the report being reviewed used and the report. Below that is a set of buttons for a summary evaluation (from excellent to poor) and a text box for the review. Clicking on the submission button then records the evaluation and review in a file for that report; the student can then review any reports assigned to them by clicking on the appropriate button at the bottom of the confirmation page. As with the reports, student-reviewers can return and edit their review up to the time it is due.
Once the review process is complete, the reviews are released to the authors (preferably after being reviewed by the instructor or a TA to be sure there isn't anything inappropriate), a new login page (looks identical to others) will lead students to a page identical to the original observation/report page except that the reviews are visible. ("Editor" comments can also be added to this page). The possibility of new observations is allowed if the instructor desires. The original report can then be edited.
There are two main grading tasks: the reports and the reviews. The grading page in either case is password protected (password is in the Perl script itself, so as long as that file is only readable by the owner and the page is not accessed from public machines, the password should be reasonably secure). For the reports, the grader sees the observations made by that group/individual, the justifications for those observations, the reviews received, and the report (optionally possible to make the pre-review report available as well). For the reviews, the grader sees the reports being reviewed and the reviews that reviewer made. In each case a grade box and a text box for comments are provided; these are then stored in a grade file.
If desired, grades can then be made available back to the students through a login page similar to that used throughout the exercise. As this is not totally secure (ask me for details), if you have profound security concerns you might not want to do this, but grades are not trivially available to anybody but the student who earned them.
The exercise path consists of a login page, an initial group topic questions, then individual student inquiries of the question database, then a report writing interface once enough observations have been made (available to a student only after they have made enough observations). Individual parts can be adjusted or removed. The exercise is generated by a series of cgi scripts written in Perl. The main script (presently chj2ind.pl) checks that the login is legal (generated at the login page or passed along through other pages; this doesn't use cookies at all), determines which stage the student is at, and displays the appropriate information. If the student is presented with a box asking for a group topic question, the response is handled by chjTopic.pl. If the student is making observations, the response is handled by chj1ind.pl, which determines if the request can be filled, informs the student of the result, and updates group and user files. Finally, editing the report is handled by chjReport.pl, which redisplays it and saves it to a file. Some grading/reporting scripts for instructors will be made shortly.
The new files that are made include a number of log files (which are for recovering from problems and troubleshooting) and the report files. Useful information is in the user file and the group file, as noted above.
Reviewing. Again, a login page (which is static), a list
of papers page, then the review page for each paper followed by a confirmation
page (all generated by Perl scripts). The initial script here (chjIndReview.pl)
checks the login and then loads the number of the reports to be used from $reviewerF,
generates a page with the display graphic (Boulder crosssection for my stuff)
and buttons for each of the reports to be reviewed. Clicking on a button launches
the chjEditReview.pl script, which displays the graphic, the observations
made by this group, their report, a series of radio buttons for a summary evaluation,
and a textbox for the review. Any existing review by this reviewer is shown.
Clicking the submit button here triggers the chjSaveReview.pl script,
which saves the review to the review file for this group's report, displays
the review as html, and gives the same buttons as chjIndReview.pl for
the reviewer to move on to another manuscript (or revise this review).
Revising reports. Pretty identical to the basic exercise except now reviews are visible in addition to the observations and any existing report. Scripts paralleling the original ones are chjReviseReviewedReport.pl, chjSaveRevisedReport.pl, and chjReviseTopic.pl (which probably should be inactive, so only if you want somebody to start from scratch at this point).
$path = "/htdocs/GeolSci/courses/GEOL1020-CHJ";$data = "$path/hw/question_file";/htdocs/GeolSci/courses/GEOL1020-CHJ/hw/question_file) $reportF = "$path/hw/reports/user_";$userf = "$path/hw/ind_user_file";$logf = "$path/hw/log_failed_logins_2005";$groupf = "$path/hw/ind_user_questions";$maxquestions = 5;$webcthome = "http://webct.colorado.edu/"; $reviewerF="$path/hw/indReviewers";$reviewF = "$path/hw/reviews_2005/group";Or how to customize things.
Basic observation/report exercise. You first copy the four
scripts listed above (probably contacting me to get them, or get them from
the cgi directory on spot),
rename them for your use, and place them in the departmental cgi folder (/htdocs/GeolSci/cgi on spot).
Copy the login page (presently htdocs/GeolSci/GEOL1020-CHJ/HW2_2005_login.html)
to your website and then edit it, replacing chj2ind.pl in
the line below with the name of your equivalent script
<form method="post" action="/cgi-bin/cgi-su/GeolSci/cgi/chj2ind.pl" name="login">
This page is what you point students to. Next you would want to change the
material in the chj2ind.pl script to reflect your course materials.
This is the most involved step. If you can handcode html, this should be pretty
obvious by just recognizing what html is in there already (the only trick is
to escape the quotes with a backslash). This includes changing the list in
the pulldown menu and the button labels. It isn't hard but might be somewhat
intimidating. If there is interest, I will rewrite the scripts to pull in html
from separate files so that you won't have to do anything to the script. Also
you would change the filenames at the top of the script to reflect where you
want things to go. Next you'd probably change chj2ind.pl, chjReport.pl,
and chjTopic.pl in
a similar manner, though these scripts probably mainly just need the proper
file locations. Finally you would make your own user, group, and question
files. Permissions on the Perl scripts in the cgi directory need to be executable
(chmod
700 *.pl would work). At this point, you should be up and running.
You can shut down a web exercise trivially by making the permissions on the
perl scripts 600 (removing executable access); a handy trick for the slightly
Unix savvy is to enter a crontab task that will make these files unexecutable
when the homework is due (not much argument on late homework that way!).
Reviewing. Unlike the above, nearly all the changes here
are to the header variables (filenames) in the scripts, except that chjEditReview.pl again
has the observation lists in its body and those need to reflect the exercise
in question. Note that each student can be assigned any number of papers to
review; this is dictated by the $ReviewersF file.
Revising Reports. Scripts here are slight modifications of chj2ind.pl and chjReport.pl (and chjTopic.pl, if you wish to be thorough). Directions above will get most of the necessary changes.
Grading. There are two scripts., chjGradeind.pl builds a list of students (by login name) to choose from. This then fires chjIndStudentGrade.pl, which displays the information needed to grade a report. This in turn launches chjSaveGrading.pl, which saves the grade for this group (not set up for true individual grading, but seeing as how things are based on a group report, a separate individual grade isn't too useful) and displays buttons allowing access to next, previous, or any student. chjIndReviewGrade.plwill deal with report grading and should shortly be accessible from the post-login page and confirmation page.
Exporting from the final grade files to a format for use in class grading is a fairly simple exercise. Hopefully a direct Perl script will be completed shortly.