diff options
Diffstat (limited to 'Master/texmf-dist/doc/latex/probsoln/probsoln-manual.tex')
-rw-r--r-- | Master/texmf-dist/doc/latex/probsoln/probsoln-manual.tex | 119 |
1 files changed, 116 insertions, 3 deletions
diff --git a/Master/texmf-dist/doc/latex/probsoln/probsoln-manual.tex b/Master/texmf-dist/doc/latex/probsoln/probsoln-manual.tex index 83f12ca68e6..d2822c6093d 100644 --- a/Master/texmf-dist/doc/latex/probsoln/probsoln-manual.tex +++ b/Master/texmf-dist/doc/latex/probsoln/probsoln-manual.tex @@ -16,7 +16,7 @@ \RecordChanges \PageIndex -\CheckSum{1484} +\CheckSum{1822} \newcommand*{\dq}[1]{``#1''} @@ -24,7 +24,7 @@ \MakeShortVerb{"} \DeleteShortVerb{\|} - \title{probsoln v3.02: + \title{probsoln v3.04: creating problem sheets optionally with solutions} \author{Nicola L.C. Talbot\\[10pt] School of Computing Sciences\\ @@ -33,7 +33,7 @@ Norwich. Norfolk\\ NR4 7TJ. United Kingdom.\\ \url{http://theoval.cmp.uea.ac.uk/~nlct/}} - \date{2011-12-10} + \date{2012-08-23} \maketitle \tableofcontents @@ -493,6 +493,8 @@ set}\marg{n}\marg{filename}\marg{exception list} \end{definition} This is similar to \cs{loadrandomproblems} except that it won't load those problems whose labels are listed in \meta{exception list}. +\textbf{If you want to automatically exclude problems included in +previous documents, see \sectionref{sec:exprev}.} Note that the random number generator has been modified in version 3.01 in order to fix a bug. If you want to ensure that your random @@ -513,6 +515,117 @@ has to load each file twice, which means that anything outside a problem definition will be parsed twice. \end{important} +\subsection{Randomly Selecting Problems Not Selected in Previous +Documents} +\label{sec:exprev} + +Suppose you have a large set of questions that you want to randomly +select for assignments and exams. The chances are, you don't want to +include questions that have been previously set for, say, the last +three years. That is, you don't want to select questions the +students may already have seen. As from version 3.03, you can now do +this. + +The \sty{probsoln} package defaults to the UK academic year, which +starts in September. If this isn't appropriate, you can change it +using: +\begin{definition}[\DescribeMacro{\SetStartMonth}] +\cs{SetStartMonth}\marg{n} +\end{definition} +where \meta{n} is the number of the month. (1 = January, 2 = +February, etc.) + +The \emph{start year} is the calender year in effect when the +academic year started. For example, if this is the academic year +2011/12, then the start year is 2011. This is automatically set to +the start of the current academic year. It is also updated when +\cs{SetStartMonth} is used.\footnote{So don't use \cs{SetStartMonth} +after \cs{SetStartYear}.} If you want to set it to a specific year, +you can use: +\begin{definition}[\DescribeMacro{\SetStartYear}] +\cs{SetStartYear}\marg{year} +\end{definition} +For example: \verb|\SetStartYear{2008}| indicates the academic year +2008/9. + +There are two files concerned with previously used labels. They are: +\begin{description} + + \item[The previously used labels file] This keeps track of all + problems used in previous years, as well as problems used by + other documents that have this as their previously used labels + file, and it contains the problem labels from the last run of + the current document. + + \item[The current used labels file] This defaults to +\cs{jobname}\texttt{.prb}, but the name can be changed using: + \begin{definition}[\DescribeMacro{\SetUsedFileName}] + \cs{SetUsedFileName}\marg{name} + \end{definition} + This file keeps track of all the labels used in the current + document from the previous \LaTeX\ run. Note that if you want to + delete this file, first clear it using + \begin{definition}[\DescribeMacro{\ClearUsedFile}] + \cs{ClearUsedFile}\marg{file} + \end{definition} + in place of \cs{ExcludePreviousFile}\marg{file}, described below. + The argument \meta{file} is the previously used labels file + described above. \cs{ClearUsedFile} will remove all labels in + the current used labels file from the previously used labels file + and clear the current used labels file. Once this file is empty, + it may then be deleted. + +\end{description} + +Before loading randomly selected problems, first specify the +previously used labels file with the command: +\begin{definition}[\DescribeMacro{\ExcludePreviousFile}] +\cs{ExcludePreviousFile}\oarg{number of years}\marg{file name} +\end{definition} +where \meta{file name} is the name of the previously used file. The +optional argument \meta{number of years} specifies the year cut-off. +This defaults to 3, which means that only those labels used this +year or the previous 2 years will be kept. Any problems used before +then may be reused. + +Suppose I'm lecturing a first year undergraduate mathematics course +(designated, say, mth101). I want to set assignments on each topic +and an exam at the end of the year (as well as a resit or second +sitting paper). I've got databases with problems for each topic, but +the first and second sitting exams mustn't include any of the +problems used in the assignments or any problems used in assignments +or exams for the previous two academic years. I'm going to arrange +my directory structure as follows: +\begin{itemize} +\item \texttt{mth101/} + \begin{itemize} + \item \texttt{assignment1/} (differentiation) + \begin{itemize} + \item \texttt{assignment1.tex} + \end{itemize} + \item \texttt{assignment2/} (probability spaces) + \begin{itemize} + \item \texttt{assignment2.tex} + \end{itemize} + \item \texttt{assignment3/} (linear algebra) + \begin{itemize} + \item \texttt{assignment3.tex} + \end{itemize} + \item \texttt{exams/} + \begin{itemize} + \item \texttt{exam.tex} (first sitting) + \item \texttt{resit.tex} (second sitting) + \end{itemize} + \item \texttt{databases/} + \begin{itemize} + \item \texttt{differentiation.tex} + \item \texttt{probabilityspaces.tex} + \item \texttt{linearalgebra.tex} + \end{itemize} + \item \texttt{previouslabels.tex} (created by \sty{probsoln}) + \end{itemize} +\end{itemize} + \section{Iterating Through Datasets}\label{sec:foreach} Once you have defined all your problems for a given data set, you |