Here
is my preliminary list of jobs for the summer. Please post your
comments, and I'll add to and modify the current list. The comments may
be suggestions for other needed jobs, ideas for accomplishing the tasks
already listed, or volunteering for one task or another. Arnie, Eva and
I will prioritize and split up the tasks as soon as we think we
understand what needs to be done.
-- Mike
WeBWorK Projects
| 1. FIX displayMacros.pl STICKY ANSWERS |
| The
preview answers and sticky answers macros in displayMacros.pl assume
that answers begin with a fixed answer prefix. See if this can be
fixed. It should not be too hard -- perhaps a project for one day or
less. |
| You
may need some of the documentation in PGtransform.pm and
processProblem8.pl and will need to look at the code for ENDDOCUMENT in
PG.pl. (There are some gaps in the documentation. |
| I
think you will need to change createDisplayedProblem to accept
$pt->rh_flags() as well as $pt->ra_text(). From the former you
can obtain the array of answer names from the array
@{$pt->rh_flags->{ANSWER_ENTRY_ORDER}} to process the sticky
answers and sticky preview answers properly. You will also need to
change some other subroutines in displayMacros.pl and you will need to
make at least one change in processProblem8.pl where
createDisplayedProblem is called so that $pt->rh_flags is passed. |
| Keep
an account of omissions in documentation and confusing documentation --
either on webworkdocs or in a note book. -- or if it is easier, fix the
documentation as you go. |
| Redesign
this so that one can have a different number of answers from the number
of questions. Or one answer can be used more than once. It may be
desirable to have two versions of Select.pm -- the simple one and a
more complicated one. |
| During
the design it might be a good idea to first consider how one would have
done this with the old code which did not use objects and so forth. |
| When
the new version is designed and built, write good documentation (using
pod in the code itself) and create one or more examples for
webworkdocs. |
| Keep track of unclear documentation or omissions in documentation and record it in a notebook or on webworkdocs. |
| 3. EDIT THE DESCRIPTIONS in all of the problems in the problem bank. |
| 4. Make HTML output of processProblem8.pl conform to HTML 4.0 specifications. |
| This
might be an opportunity to rewrite processProblem8.pl so that it is
easier to change the format of the displayed problem. (Imagine for
example, that you wanted a version of WeBWorK in French -- make it
fairly easy to change this without understanding all of the code.) |
| 5. FIND LEAKS in PGtranslator.pm and optimize that package for efficiency. |
| 6. Write documentation for Units.pm in the code (pod format) |
| 7. MODULARIZE ANSWER MACROS in PGanswermacros.pl |
| Possibily answer-evaluator generators should become an object class |
| Possibly
ans_hash should become an object class (to facilitate generating a
blank with generic error messages and the required entries.) |
| Design
a spec for filters which modify answers or check answers. What should
the input and output arguments be. You should be able to string filters
together. |
| In
addition to "is_a_number", "is_a_string" type of filters we could also
have an "OR" filter and "AND" filter which allows you to combine
answer_evaluators. |
| Answer evaluators should accept either arrays or references to arrays in addition to single valued inputs. |
| Check for efficiency of these macros. |
| 8. CREATE NEW DATABASE glue file (DBGLUE.PL)-- one that works with mySQL perhaps. |
| and
make the popup list on the web based editor point to a short
description of each macro. This will help newcomers, I think. If
possible do this in a way which will require minimum upkeep as new
macros are added. |
<| Post or View Comments |>
|