summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/probsoln/probsoln-manual.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/latex/probsoln/probsoln-manual.tex')
-rw-r--r--Master/texmf-dist/doc/latex/probsoln/probsoln-manual.tex119
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