Specific uses
Photocopied subject
As explained in Printing and exam, it is not always possible to photocopy one answer sheet to give to several students. However, when using a separate answer sheet and when questions and answers are not to be shuffled, you can photocopy the subject, and print all the answer sheets separately. We detail here the proper way to follow.
-
Use
separateanswersheet
package option (see Package options). -
Write the subject before calling
\onecopy
command or outsideexamcopy
environment. -
Use
\AMCformS
to output answer boxes in each answer sheet, inside\onecopy
/examcopy
.
Here is a minimal example:
\documentclass[a4paper]{article}
\usepackage[separateanswersheet]{automultiplechoice}
\begin{document}
\noindent{\bf Subject}
\begin{question}{sum}
How much are one plus one?
\begin{choices}
\wrongchoice{1}
\correctchoice{2}
\wrongchoice{3}
\end{choices}
\end{question}
\begin{question}{k2}
How high is the K2?
\begin{choices}
\wrongchoice{around 8000m}
\correctchoice{around 8600m}
\wrongchoice{around 9000m}
\end{choices}
\end{question}
\AMCcleardoublepage
\onecopy{5}{
\AMCformBegin
{\large\bf Answer sheet:}
\hfill \namefield{\fbox{
\begin{minipage}{.5\linewidth}
Name:
\vspace*{.5cm}\dotfill
\vspace*{1mm}
\end{minipage}
}}
\AMCformS
}
\end{document}
You will get from this LaTeX file one subject (sheet numbered 0) to print and photocopy to all students, and several answer sheets to print (one for each student).
Post correcting
Suppose you want to use a single generic answer sheet for all your exams. You simply print answer boxes on it (say 5 for each questions, and 40 questions), and give the students a subject that you wrote somewhere else. The point here is that the correct choices are not pointed out in the LaTeX file, so that AMC does not know about them. The solution is to give one answer sheet to the teacher to fill correct choices. Then, after scanning and AMC analysis, you simply have to tell AMC which is the teacher completed answer sheet.
To implement this idea, follow these rules:
-
Use
postcorrect
,insidebox
andnoshuffle
package options (see Package options). -
Only use
\wrongchoice
for all your choices (never\correctchoice
).
Here is a minimal example:
\documentclass[a4paper]{article}
\usepackage{multicol}
\usepackage[insidebox,noshuffle,postcorrect]{automultiplechoice}
\begin{document}
\onecopy{5}{
\noindent
\begin{tabular}{|l|l|l|}
\hline
student number & class & subject\\
\hline
\vspace{-0.25cm}
& &\\
\AMCcode{StudentNum}{10}&
\AMCcode{class}{2}&
\AMCcode{subject}{3}
\\
\hline
\end{tabular}
\hfill\namefield{\fbox{
\begin{minipage}{.25\linewidth}
Name:
\vspace*{.5cm}\dotfill
\vspace*{.5cm}\dotfill
\vspace*{1mm}
\end{minipage}
}}\hfill
\vspace{.5cm}
\noindent\hrulefill
\begin{multicols}{2}\columnseprule=.4pt
\begin{question}{01}
\begin{choicescustom}
\wrongchoice{}%
\wrongchoice{}%
\wrongchoice{}%
\wrongchoice{}%
\wrongchoice{}%
\end{choicescustom}
\end{question}
\begin{question}{02}
\begin{choicescustom}
\wrongchoice{}%
\wrongchoice{}%
\wrongchoice{}%
\wrongchoice{}%
\wrongchoice{}%
\end{choicescustom}
\end{question}
% continue here to get as many questions as needed...
\end{multicols}
}
\end{document}
You can then process the LaTeX file in AMC, print the sheets, scan them after the exam, and start AMC automatic data capture (including the teacher sheet). When you click on Mark in the Marking tab, letting Update marking scale ticked, you will be prompted for the teacher answer sheet number. You can then continue as usual.
You can also write the letters outside the boxes: replace the
|
To use this option only for the questions answers (and not for the
student number), type, just after
Then, use this command locally (inside braces) in the form :
|
Nominative sheets
In some situations, it can be useful to prepare nominative sheets for all students, from a list of students. Let us see how this can be done.
-
The students list has to be a CSV list. Suppose in the following that the file students.csv, in the project directory, is UTF8 encoded and that its content is like the following:
name,forename,id Boulix,Jojo,001 Golin,André,002 Moniuszko,Stanisław,003
Do not use
_
(underscore) with the student’s name or forename. This would lead to compilation errors. -
\onecopy{1}
must be equal to one. -
The number of papers must be equal to zero (graphical interface).
-
The LaTeX source file has to load csvsimple package, with:
\usepackage{csvsimple}
-
In the LaTeX source file, define the subject as a command that produce a single subject. This command will be called once for each student by
\csvreader
(suppose here that the questions has already be defined and included in a group namedgeneral
):\newcommand{\subject}{ \onecopy{1}{ \noindent{\bf AutoMultipleChoice \hfill TEST} \vspace*{.5cm} \begin{center}\em Pre-filled test. \end{center} \hfill \namefield{\fbox{ \begin{minipage}{.5\linewidth} Name: \Large\bf \name{} \surname{} \vspace*{1mm} \end{minipage} }} \noindent\hrulefill \vspace{1ex} \insertgroup{general} \AMCassociation{\id} %\AMCassociation[\name-\surname]{\id} } } %password protect %\AMCstudentslistfile{liste.csv}{id} \csvreader[head to column names]{students.csv}{}{\subject} %\csvreader[head to column names,separator=semicolon]{liste.csv}{}{\subject}
The head to column names option for
\csvreader
defines commands\name
,\surname
and\id
(named from the CSV headers), that can be used inside\subject
. The\AMCassociation
call tells AMC to associate the current sheet to student with id\id
. Optional argument to \AMCassociation to suggest a file name when printing to file. To protect each file with a unique password. Use this command if the CSV file contains only one email address per student. Use this command if the CSV file contains multiple email addresses per student. -
After printing, scanning, data capture and marking, when associating copies with students, choose value "pre-association" for field "code-name for automatic association", and "id" for field "Primary key".
Topics
The aim is to combine a set of questions to calculate a score and
obtain a level of success. These indications will be displayed on the
header of the corrected copy (version
or above needed).
These groups will be described in a YAML file named topics.yml
, to be
placed in the AMC project directory.
AMC will require the following additional perl packages, which must be
installed in your environment: YAML::Syck
, Hash::Merge
.
Principle
The YAML file format is very sensitive to indentation. You must then respect the number of spaces at each beginning of lines. |
---
preferences:
key level 1: value
topics:
- key level 1 value
key level 1:
key level 2:
key level 3: value
Examples
Full example
---
preferences:
odscolumns: level (1)
skip_indicatives: 0 (2)
answered_only: 1 (3)
topics:
- text: "Here are your topics levels" (4)
- id: geography
name: Geography knowledge (5)
questions: (6)
- "geog:*" (7)
- Cameroon (8)
annotate_color: "#B22222" (9)
levels: (10)
- min: 75 (11)
message: Excellent (12)
color: "#1ab407" (13)
code: 4 (14)
- min: 50
message: Fair
color: "#2aea62"
code: 3
- min: 25
message: Fragile
color: "#ffad26"
code: 2
- message: Insufficient
color: "#ff262c"
code: 1
decimals: 0 (15)
decimalsratio: 2 (16)
decimalspc: 0 (17)
floor: 0 (18)
# Comment to lighten code. (19)
- id: history
name: Historical knowledge
format: "%{name} : %{score}/%{max}" (20)
questions:
- "hist2*"
- "hist1*"
annotate_color: "#006c8c"
#
- text: "-------review--------"
- id: global
questions: "*"
value: "ratio:20:0.25" (21)
decimals: 2 (22)
decimalspc: 2
format: | (23)
%{name} : %{code} %{message}
For questions %{nums:c}, your score is %{score}
and your mark is %{value}/20
exclude_questions: (24)
- bonus
- difficultquestion
#
- id: aggregate
name: Aggregated value
aggregate: xxx (25)
value: xxx (26)
questions:
- "*" (27)
1 | New columns (Export to ODS (OpenOffice, LibreOffice)) will be displayed for each topic. You can choose to display the value of the variable <code> . |
2 | To include the indicative questions. |
3 | Does not display topics if all answers are empty. |
4 | A plain text. |
5 | Identifier without accented or spaced letters. |
6 | Full topic name. |
7 | Questions related to the topic. |
8 | All questions with the identifier beginnig with add2: are included (see Identifier). |
9 | Only one question with a unique identifier somme2ch is included. (see Identifier). |
10 | Color annotation related to scores.
If a question does not be a par of |
11 | Topic levels (percent). |
12 | Minimum required for this level. |
13 | Text written on the first page according the level. |
14 | Color for the level text. |
15 | <code> used for the column header while exporting to ODS. See Export to ODS (OpenOffice, LibreOffice) . |
16 | Number of decimals for %{score} and %{code} , defaults to 0. |
17 | Number of decimals for %{ratio} , defaults to 2. |
18 | Number of decimals for %{value} , defaults to 0. |
19 | Floor value. If the calculation of the score in that question yields a value below the floor value, the sore is set to the floor value. |
20 | Comments begin with the hash symbol. |
21 | Formatting.
Defaults to |
22 | The corresponding score will be the ratio multiplied by 20 and rounded to the nearest multiple of 0.25. |
23 | Number of decimals. |
24 | To write a text with multiple lines. |
25 | See Aggregation functions. |
26 | Can take several values: score , ratio , "ratio:a:b" . The
default behavior is to print the percentage. |
27 | Joker which selects all questions. |
Variables
General topic values:
-
%{id}
: topic’s id -
%{name}
: topic’s name
Relative values to student’s score :
-
%{score}
: student’s total score -
%{max}
: maximum total score -
%{ratio}
: quotient of score divided by maximum score (between 0 and 1) -
%{value}
: likewise but in percent
Relative values to questions' topic :
-
%\{nums:s}
: list of question numbers -
%\{nums:c}
: llist of question numbers by intervals (ex: 2-4 instead of 2,3,4)
Values derived from the level reached:
-
%{message}
-
%{code}
-
%{i}
: level
Aggregation functions
- sumscores
-
we choose the sum of the scores, and in the denominator the sum of the maximum scores.
- sumratio
-
We take the sum of the quotients between the question score and the maximum score for the question. In the denominator, we have the number of questions.
If we want the topic to be equal to the sum of the quotients, we take <value:score>, and if we want the topic to be the average of the ratios (so between 0 and 1), we take <value:ratio> or <value:ratio>. If left empty, the percentage is displayed.
- minscore
-
we take the minimum of the scores, and in the denominator the minimum of the maximum scores to the questions.
If we want the topic to be equal to the min of the scores we choose <value:score>, and if we want the topic to be equal to the ratio of the two, we take <value:ratio>.
- maxscore
-
we take the maximum of the scores, and in the denominator the maximum of the maximum scores to the questions.
If we want the topic to be equal to the max of the scores we choose <value:score>, and if we want the topic to be equal to the ratio of the two, we take <value:ratio>.
- maxratio
-
we take the maximum value of the ratio, for each question, between the score obtained for the question and the optimal score that can be obtained for the question. With this aggregate value, <value:score> and <value:ratio> give the same thing.
- minratio
-
we take the minimum value of the ratio, for each question, between the score obtained for the question and the optimal score that can be obtained for the question. With this aggregate value, <value:score> and <value:ratio> give the same thing.
- count(a)
-
number of questions with score <a>.
- count(a,b)
-
number of questions with score between <a> and <b>.
Shared levels
You can define a set of levels that will be used for several different topics, as in this example:
---
conf:
standardlevels: (1)
levels:
- min: 75
message: Excellent
color: "#1ab407"
- min: 50
message: Fair
color: "#2aea62"
- min: 25
message: Fragile
color: "#ffad26"
- message: Insufficient
color: "#ff262c"
decimals: 2
decimalsratio: 2
decimalspc: 0
floor: 0
topics:
- id: geography
name: Geography knowledge
questions:
- "geog:*"
- Cameroon
conf: standardlevels (2)
- id: history
name: Historical knowledge
format: "%{name} : %{score}/%{max}"
questions:
- "hist2:*"
- "hist1:*"
conf: standardlevels
1 | We define a configuration, called standardlevels , which can be
used for several topics. |
2 | Calling up this configuration. |
Include file
Create a levels.yml
file located in the parent directory of the project
directory (therefore the directory common to all AMC projects).
levels.yml
# file levels.yml
preferences:
odscolumns: level
#
conf:
standardlevels:
levels:
- min: 75
message: Excellent
color: "#1ab407"
- min: 50
message: Fair
color: "#2aea62"
- min: 25
message: Fragile
color: "#ffad26"
- message: Insufficient
color: "#ff262c"
decimals: 2
decimalsratio: 2
decimalspc: 2
floor: 0
topics.yml
---
include:
- ../levels.yml
topics:
- id: geography
name: Geography knowledge
questions:
- "geog:*"
- Cameroon
conf: standardlevels
- id: history
name: Historical knowledge
format: "%{name} : %{score}/%{max}"
questions:
- "hist2:*"
- "hist1:*"
conf: standardlevels
Copy anonymity
In conventional use, this option is not recommended. It requires the
use of a source file in LaTeX format, and version
|
Start anonymous mode
Select
.How to create anonymous pdf files
-
Prepare your subject (Preparing the subject).
-
Input students' copies (Reading the copies)
-
Data capture tab , a new menu is displayed : click on Anonymize.
-
Open to access anonymized pdf files.
-
Manually correct some questions from these PDFs.
-
Marks are passed to AMC by the csv file.
This files are uneditable; do notrerun a automatic recognition. |
Useful commands with this option
-
AMCzone[id]{}
The command
\AMCzone[id]{LaTeX code}
is used to hide a defined area.After anonymization, the
\namefield
zone is hidded. -
\AMCexternalQuestion
The command
AMCexternalQuestion{identifier to choose}{score maximal}
allows to brand an external question that will be scored outside AMC, with a maximum score.When using this command, you can freely handle the question number and the question text (AMC will not do this). (AMC will not do this)
It is not possible to add this command after the subject has been fully prepared.
During anonymization, a csv file is created. This file will have to be filled in with the marks and then read by AMC to continue with the correction (see Correction).