Tutorial on managing a WeBWorK course | topic started 4/27/2000; 3:51:08 PM last post 4/27/2000; 3:51:08 PM |
Arnold K. Pizer - Tutorial on managing a WeBWorK course 4/27/2000; 3:51:08 PM (reads: 2942, responses: 0) |
A DAY IN THE LIFE OF A WEBWORK PROFESSOR
Informal instructions for using WeBWorK
Quick OverviewThis document gives details on how one professor actually uses WeBWorK. See the WeBWork on line documentation for more information on almost everything. Also the online discussion group http://webhost.math.rochester.edu/webworkdocs/discuss/ is a good place to go for help.
First Things FirstFirst of all I have a private copy of my course (mth140apriv) so that I can easily test out new problems, set up exams, etc. in my private version without fear of interfering with the version (mth140a) students are using.
$PATHSecondly I put/www/webwork/system/scripts/
in my path. This way I can run the necessary WeBWorK command line
scripts without typing their full path names. Actually at this point,
most things involved in running a WeBWorK course can be done over the
web, so there is not too much need to run command line scripts. Go to
the professor page to see all the web based routines. To see what your
PATH is, enter the command echo $PATH .
I use the following scipt quite a bit. For a full list of commands (really perl scripts) with descriptions, some of which are only used when setting up a, see "List of Utility Scripts".
USING THE PERL SCRIPTS:If I forget the correct syntax for a script, I just type the script name without any parameters. An error message will be output giving the correct syntax. E.g.
SETTING UP A COURSE:See Setting up a WeBWorK course for information on setting up a course.
I set up my private mth140apriv course exactly the same way as I set up the mth140a course
except that (1) the base course directory
is
MAKING A CLASSLIST:The classlist file is mth140a.lst. First I get a semicolon delimited classlist file (ClassRoster.txt ) from the registrar, remove the header material, and then enter
This sets the section field to "Pizer" and leaves the recitation field empty for all users.
See Classlist format
for information on the format for the classlist file.
Once an initial classlist file has been created, it can be edited on
the server with a text editor or (from the classlist page) downloaded
to a local computer, edited, and then uploaded again.
Then I edit mth140a.lst adding myself (login = apizer, studentID = 111-11-1111, section and recitation left blank). The classlist file mth140a.lst
goes in the templates directory.
At another institution I would edit the
INITIALING CLASSLIST, PASSWORD AND PERMISSIONS DATABASES:I work in the templates directory which contains the mth140a.lst file. To set up the classlist database and initialize the passwords, enter the command
This gives every user their studentID as their initial password. E. g. the initial password for apizer is
111-11-1111 (including the dashes (-)).
I then give myself "professor" privileges by:
Note that if you are have "professor" privileges, you can add classlist data to the classlist database via the web from the classlist page. This is actually the prefered method since it gives you much more control over the processes.
Finally, I give myself the "professor view", i.e. when I view
a problem or download a set, the file names of the source files will be
listed. To do this, uncomment (i.e. remove the #) the following line
in the file
Also in the file
so that feedback from your students goes to you and not to Pizer and Gage!
Note that I am using my PATH (remember I put
Now I log into mth140a, change my password, then go to the Professor Page, build some sets if none exist, go back to the Professor Page and go to the Add Student(s) Page. I add TA's (moussa and douglass), and four practice users (login = practice1, sid = 000-00-000a, last name = PRACTICE1, first name Jane, etc). I keep the section and recitation fields empty for all users who are not real students. Then from the command line I give the TA's "TA" privileges by running:
Finally I go to the Classlist page and enter missing student email addresses, etc. if I happen to know them. The students can add or change their own email address at any time, so this isn't critical.
ADDING NEW STUDENTS AFTER THE COURSE HAS STARTED:Just go to the Add Student(s) Page and follow the instructions. If you want to build sets with different due dates, run the routine multiple times. Adding a student who is already in the course will not change any information already in the classlist database. Hint: If it is early in the course and you want to give new students the same due dates that current students have, add the new students from the Add Student(s) Page but do not build any sets for them there. Then go to the Build Problem Set page and (re)build the sets that were not built for the new students. (Re)building sets that have already been built will not alter any data for students already in the set.
CHANGING A PASSWORD:If a student forgets his or her password, go the the Classlist page and give them a new password..
CHANGING A LOGIN NAME:To change Jane Smith's login name or any other classlist information, go to the Classlist page.
REMOVING STUDENTS:Removing students is easy. Just enter the word "DROP" or the letter "D" (without quotes) in the status box for the student classlist information (from the Classlist page). You may want to enter a comment giving the drop date. You can later resurect the student by changing his or her status to C (for current). In that case, you may want to go to the Build Problem Set page (or Add Student page) and rebuild the sets that were not built for the dropped student. (Re)building sets that have already been built will not alter any data for students already in the set.
CREATING A PROBLEM SET:Often I select problems from the text book which I will modify into WeBWorK problems. First, I always work in my private mth140apriv course. I don't have any "practice" user's in mth140apriv so that even if a student finds out that mth140apriv exists, he or she will not be able to login to mth140apriv. After everything is working smoothly, I transfer everything over to the mth140a area.Let's assume I am creating WeBWorK set9. I have to create a set9.def set definition file (see below) and problem template files. In order to create a problem template file (i.e. a .pg file), usually I start with a .pg file containing a problem similar to the one I want and modify it (see the list ofapproximately 2000 .pg files distributed with WeBWorK).
After creating all the
Actually most of the time I just copy files from the distributed library. In the example below
I copied the directories (and their contents) setLimitsRates1TangentVelocity,
setLimitsRates1_5Graphs, and setLimitsRates2Limits to my templates directory.
I also copy the corresponding set definition files setLimitsRates1TangentVelocity.def, etc.
(using e.g.
Here
is a sample file,
Next I build the WeBWorK set. I have a short classlist file containing a couple
of users and one professor, called
Now I connect to my mth140apriv site with my web browser and look at the new set.
First do a Get Hard Copy. Often, I have made a LaTeX error somewhere.
Or perhaps the group ownership and/or permissions of the files was not set correctly.
If there are errors, they will be listed along with a copy of the TeX source file
which was produced. If I can't see where an error occurs, select the problems one by one.
After fixing any errors and obtaining a postscript version of
the WeBWorK assignment, I look at the assignment for any errors in presentation.
Sometimes, the output is not what I expect. In this case, in order to look at
the TeX source file produced, I insert an intentional error at the end of the pg file
just before the
Do a Get Hard Copy again. The TeX source code will be output. Next I do the assignment to check that WeBWorK and I agree on the answers. If I have time I might try another user or better yet ask the TA's to do the assignment before transferring everything over to the mth140a course.
Finally I move over to the mth140a area, copy set9.def from
Note that the .pg files must have permission 660 and group MTH140A in order for the webserver
to be able to read and write to them and subdirectories should have permission 770.
You can check permissions by entering Then I build the set for real by entering the prof Page in mth140a, then the "Build Problem Set Page", selecting set9.def, and building the set. Next I precreate the latex2html images by entering:
Note that this takes a long time as latex2html is a "slow" program (it might take as long as 4-6 seconds
per problem per student on a relatively fast server). l2hPrecreateSet.pl is best run "niced" and in the background. E.g.
which (under many shells) sends all messages to the set9.log file. However, once
the images are precreated, the "typeset" mode is quite fast. If the
images are not precreated, the first time a problem is output in "typeset" mode,
all the images are created on the fly and there is usually a few seconds delay
(which could be longer if lots of students are creating images simultaneously).
See Constructing Problem Sets for more information. CREATING AND ADMINISTERING A WEBWORK EXAM:I give WeBWorK exams. Every student takes the same identical in class exam. I also produce a standard WeBWorK problem set using the exam questions so that on this set, each student has an individualized version of the exam questions. Student's have 30 hours after the in class exam ends to do the WeBWorK version of the exam. If they get a problem (or a part of a problem) wrong on the in class exam and the whole problem correct on their WeBWorK version, they receive 25% of the original value of the part(s) they missed on the in class exam. This seems to work quite well and is easy to administer. Mechanically, it works as follows. First I create a set of problems for the exam and check that they are OK. For example, I use exam2.def as the set definition file and in that file have setNumber = Exam2 as the first line. Don't put any spaces in the "setNumber", i.e. write Exam2 not Exam 2. I do this in my own mth140apriv area. I have a testexam.lst consisting of SS#'s 000-00-000n and login names apizern where n varies from 1 to 9. I also have a special examHeader.pg file in the exam2 subdirector which identifies the exam, leaves spaces for the student's name and SS#, etc. In exam2.def, I have the line setHeaderFile = exam2/examHeader.pgso that the special header file will be used. Then I build a problem set using this list. On the web, I look at the nine possible versions of the exam and pick one to use for the in class version and download two copies of that one. If for some reason I don't like the samples, I can go to the prof page and change the seeds of problems or I can adjust the pg files and/or delete and rebuild the set. This is usually not necessary. This is done in my private mth140apriv area that the students know nothing about and could not (not knowing my WeBWorK password) access even if they did. On one copy of the in class version, I write in by hand the correct answers (and as a double check enter these answers into WeBWorK to make sure they are correct). Next I xerox sufficient copies of the exam (both with and without answers) for the entire class. I transfer the exam questions to the inuse version of WeBWorK and then build the set again using the standard probSetHeader.pg and mth140a.lst files. I am very careful to make sure that the open date in exam2.def is correct (I open it three quarters of the way through the in class exam). Then I run off paper copies (see down loading paper copies for an entire class) of the individual versions of the exam. The paper copies are printed in order, first by section name, then by student name. At the exam, after a student hands in his or her completed exam, I give the student a copy of the exam with answers and a copy of their individual version of the exam. Thus the student can immediately begin to work on problems which they got wrong on the exam. Giving students these two things is just a convenience for the students, but one which seems to be appreciated. If I just wanted to allow students to check whether or not their answers were correct without telling them the correct answers, I would use the prof page to copy the seeds from the in class exam version to say practice1 in mth140a. That way, Exam2 for practice1 in mth140a would be identical to the inclass exam.
SCORING A PROBLEM SET AND EMAILING RESULTS TO STUDENTS:You can do scoring from the web. Go to the Professor's Page and then to the Scoring Page. You should realize that scoring a problem set is like writing grades into your grading book. It creates files (in a format a spreadsheet program can read and manipulate) which record grades at the time the scoring program is run. If e.g. you gave a student an extension but scored the set before the student completed the set, anything the student did after you scored the set would not be recored. You could aways score the set again or edit the scoring files. Also, the first time a mth140a_totals.csv file is created, student names, sections, and recitations will be taken from the current information. If you score a set after that, the new information is appended to the mth140a_totals.csv file by matching student ID's (often SS numbers). If you change a student's recitation (or name, etc) but keep their student ID, the new recitation will not be wriiten in the mth140a_totals.csv file. If students add or drop the course, this will be handled automatically. One thing you can do is to rescore everything at the end of the semester (first removing (and saving) the old mth140a_totals.csv file. Then all information will be current. The only drawback is that in doing so you would loose non WeBWorK informaton that you may have entered, e.g. exam graders. In practice, I start over just before the first exam. By that time there is very little switching around of sections and recitations. After that, I just edit the mth140a_totals.csv file by hand if necessary.
You can also do scoring from the command line (this is not recommended). To do so follow the directions below. Usually I work from my templates directory (but this doesn't matter). To score set 6 enter:
This creates the files s6scr.csv, s6ful.csv, and s6bak1.csv in my scoring directory.
You will be asked if you want to total the scores in the score file for this set,
and append these totals to the cumulative totals file
mth140a_totals.csv. I always answer Y. The first time you do this you will get a lot of messages of the sort:No record for PRACTICE4 , ID = 000-00-000d, You can ignore all such messages. In general they have to do with automatically handling records for students who have been added to or dropped from the course.
All the scoring files are automatically put in the directory
SENDING EMAIL TO STUDENTS:Go to the Send Mail page. See Sending e-mail to all students for more information. Here is a copy of the file email10-25-96.msg which is in the email subdirectory of the templates directory. :
Now I send "personalized" email to my students by merging the above with the
Usually I want to be really careful, so I first send the email to myself
by using a short
DOWN LOADING PAPER COPIES FOR AN ENTIRE CLASS:Sometimes (especially for exams), I want to create paper copies of an assignment. To do this go to the Download paper copies page. |