summaryrefslogtreecommitdiff log msg author committer range
blob: 2ed93b3192710ff46b8774cdd1a5f4b4787f3238 (plain)
 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287  \documentclass{article} \usepackage[fleqn]{amsmath} \usepackage{graphicx} \usepackage [tight, designi,%forpaper, navibar ]{web} \usepackage{exerquiz} \usepackage[ImplMulti]{dljslib} \usepackage{pifont} % \previewOn \pmpvOn \title{Extending the Exerquiz Package Math Fillin Questions} \author{D. P. Story} \subject{Sample file} \keywords{LaTeX, PDF, derivative, calculus, JavaScript} \university{NORTHWEST FLORIDA STATE COLLEGE\\ Department of Mathematics} \email{dpstory@acrotex.net} \version{3.0} \copyrightyears{1999-\the\year} \norevisionLabel % Uncomment the lines below to create buttons % for "Begin Quiz", "End Quiz" instead of links \useBeginQuizButton[\textColor{blue}] \useEndQuizButton[\textColor{blue}] % Uncomment this line to require the student % to answer all questions in the quiz before % the quiz is evaluated. %\renewcommand\minQuizResp{highThreshold} % The following is to create a \js command in which JavaScript code % can be written, without the use of the \verb command. Merely cosmetic. \def\hvperk{\char^} {\catcode\^=\active \gdef\js{\bgroup\ttfamily\catcode\^=\active \let^=\hvperk \jsi} }\def\jsi#1{#1\egroup} % Some convenience commands for differentiation. \def\D{\dfrac {\text{d}}{\text{d}x}} \def\dPose#1{$\D#1=$ } \begin{document} \maketitle \tableofcontents \section{Math Fill-In Question} The current version of \textsf{exerquiz} included only multiple choice questions. That's all well and good, but instructors would occasionally like to ask questions that would require the student to fill in the answer, whether it be numerical or symbolic. This new question type, the Math Fill-in, can be used in either the \texttt{shortquiz} or \texttt{quiz} environment. In the former case, there is immediate feedback as to right or wrong; in the latter case, correction is delayed until the quiz is completed and the user requests to be corrected. In either case, you can choose to include the correct answer, which can be obtained by the click of a button. The next section outlines the syntax for the user to enter the answer. \subsection{Instructions} When responding to a Math Fill-in question, you answer by typing in your answer. Use the following notation to enter your answers. \begin{itemize} \item Use \js{*} to indicate multiplication: Type \js{4*x} for $4x$; \item Use \js{^} to indicate powers: Type \js{4*x^3} for $4x^3$; \js{12*x^-6} for $12x^{-6}$. \item Use parentheses to delimit the argument of a function; i.e., type \js{sin(x)} rather than \js{sin x}. \item Use parentheses to define the {\it scope\/} of an operation: For example, type \js{4*x*(x^2+1)^3} for $4x(x^2+1)^3$; \js{ 4^(2*x+1)} for $4^{2x+1}$; \js{(sin(x))^2} for $(\sin(x))^2$. {\it Do not\/} type \js{sin^2(x)} for $\sin^2(x)$, type \js{(sin(x))^2} instead. \item You can also use brackets \js{[ ]} or braces \js{\{ \}}, to delimit a mathematics expression. \item Functions you may use: \begin{itemize} \item Trig: \js{sin}, \js{cos}, \js{tan}, \js{cot}, \js{sec}, \js{csc}; \item Inverse Trig: \js{asin}, \js{acos}, \js{atan}; \item Log: \js{ln} (natural log), or use \js{\tt log}; e.g. \js{ln(x)}; \item Exponential: The natural exponential function, $e^x$, can be entered as \js{exp(x)} or as \js{e^x}. \item The absolute function, \js{abs($\cdot$)} can also be written in the usual way \js{|$\cdot$|}; thus, you can type either \js{abs(x)} or \js{|x|}. \item Misc.: \js{sqrt}, usage \js{sqrt(x)} for $\sqrt{x}$ (or, use exponential notation: \js{x^(1/2)}). \end{itemize} \end{itemize} When you enter your response, some attempt will be made to determine whether the response is a valid mathematical expression. For example, if you say \js{san(x)}, the function \js{san}' will not be recognized as a valid mathematical function; an error message is generated, and the user is not penalized for a possible typing error. The JavaScript routines will also check for unbalanced parentheses; thus, \js{((x^4+1) + sin(x)^2} will be flagged as a syntax error. \medskip\noindent\textcolor{red}{\textbf{Important:}} When you enter a function of a single variable---the only type currently supported---use as the independent variable implied by the statement of the problem. If the problem statement involves the variable $x$, use \js{x} as the independent variable; if the problem statement uses $t$, use \js{t} in your answer. To enter a function of $t$ when a function of $x$ is expected will, no doubt, result in missed problem. \subsection{Answers and Solutions} For fill-in questions, if the document author so wishes, answers and (optionally) solutions can be provided. The author provides an \textsf{Ans}' button. This button is visible for a \texttt{shortquiz} and hidden for a \texttt{quiz}. For a \texttt{shortquiz}, the \textsf{Ans}' button can be clicked at anytime. In the case of a \texttt{quiz}, after a \texttt{quiz} has been completed, the hidden \textsf{Ans}' buttons appear. Click the button to get an answer to the problem. Concerning solutions. If the \textsf{Ans}' button has a green boundary, that means that question has a solution. Performing a \textsf{Shift-Clicking} the \textsf{Ans}' button causes the viewer to jump to the solution. For multiple choice questions, the boundary for the correct answer is colored green as well. \textsf{Click} the answer field to jump to the solution. Solutions to a \texttt{quiz} can be protected from prying eyes with the \texttt{\string\NoPeeking} command. See the \hyperref[s:quiz] {Section~\ref*{s:quiz}} for an example and a brief discussion. \subsection{Practice Example} \noindent\textcolor{blue}{\textbf{Example:}} Consider the following sample question. Practice by typing in the answer: \js{2*x^3*(x^4+1)^(-1/2)}. You can also type \js{2x^3(x^4+1)^(-1/2)} since the \texttt{ImplMulti} option is taken with the \textsf{dljslib} package. \medskip \begin{oQuestion}{example} \def\RBW{120pt}\def\DefaultHeightOfWidget{16pt}\def\TBW{18pt} \edef\STRUT{\noexpand\rule[\ifxetex-1bp\else-5bp\fi]{0pt}{0pt}} \noindent$\dfrac{\text{d}}{\text{d}x} {(x^4 + 1)^{1/2}} = \eqsanitize \underset{\text{\rotatebox{-45}{\rlap{The Response Box}}}} {\underbrace{\RespBoxMath{2*x^3*(x^4+1)^(-1/2)}{4}{.0001}{[1,2]}}} \underset{\text{\rotatebox{-45}{\rlap{Answer Button}}}} {\underbrace{\cgBdry\CorrAnsButton{2*x^3*(x^4+1)^(-1/2)}}} \underset{\text{\rotatebox{-45}{\rlap{Num.\ of incorrect tries}}}} {\underbrace{\olBdry\sqTallyBox\relax}}\olBdry\sqClearButton$ \end{oQuestion} \vspace{5\bigskipamount} \noindent When a correct answer is input into the response box, the color of the border surrounding the response box changes to \textcolor{webgreen}{green}. The answer can also be expressed correctly using the \js{sqrt} operator, try modifying the answer using \js{sqrt}. \newpage \subsection{Short Quiz Environment}\label{s:shortquiz} %In the following problems, answer by typing in your %response using the correct syntax. Problem \#2 illustrates how to define a problem with a variable other than the default $x$. \textsf{Click} the \textsf{Ans}' button to get the answer, \textsf{shift-click} the \textsf{Ans}' button that have a green boundary to get the solution. \begin{shortquiz*}[answer] Answer each of the following. Passing is 100\%. \answersEndHook{\hfill\makebox[0pt][r]{\sqTallyBox}} \begin{questions} \item If $f$ is differentiable, then $f$ is continuous. \begin{answers}[diff]{4} \Ans1 True & \Ans0 False \end{answers} \begin{solution} Yes, differentiability at a point implies continuity at that point. \end{solution} %If you want another variable other than $x$, then specify the variable immediately %following the correct answer in the \RespBoxMath command. Following the optional %variable specification is the optional named destination for the solution the %the problem. \item $\dfrac{\text{d}}{\text{d}t} {4 t^{-1/2}} = \RespBoxMath{-2*t^(-3/2)}(t)[diffprob]{4}{.0001}{[1,2]}$\hfill \CorrAnsButton{-2*t^(-3/2)}\cgBdry\sqTallyBox \begin{solution} We use the power rule: \begin{equation*} 4 t^{-1/2} = 4(-1/2) t^{-3/2} = \boxed{-2 t^{-3/2}} \end{equation*} Or, in the syntax of this quiz: \js{-2*t^(-3/2)}. \end{solution} \item \dPose{e^{x^2}}\RespBoxMath{2*x*e^(x^2)}{4}{.0001}{[0,1]}\hfill \CorrAnsButton{2*x*e^(x^2)}\olBdry\sqTallyBox \item $\displaystyle\int_0^\pi \sin(x)\,dx = \RespBoxMath{2}{1}{.0001}{[0,1]}$\hfill\CorrAnsButton{2}\olBdry\sqTallyBox \end{questions} \hfill\sqClearButton\olBdry\sqTallyTotal \end{shortquiz*} \subsection{Quiz Environment}\label{s:quiz} The example below illustrates multiple choice questions and objective math questions in the \texttt{quiz} environment and is protected by the \texttt{\string\NoPeeking} command. First, browse the solutions at the end of the file, when you encounter a solution protected by \texttt{\string\NoPeeking}, see what happens. Click on the \textsf{Ans}' button to get answers, shift-click on \textsf{Ans}' buttons that have a green boundary to get a solution. \NoPeeking % or put in preamble \begin{quiz*}{mathquiz} Answer each of the following. Passing is 100\%. \begin{questions} \item If $\lim_{x\to a} f(x) = f(a)$, then we say that $f$ is\dots \begin{answers}[cont]{3} \Ans0 differentiable &\Ans1 continuous &\Ans0 integrable \end{answers} \begin{solution} A function $f$ is said to be continuous at $x=a$ if $x\in\operatorname{Dom}(f)$, $\lim_{x\to a} f(x)$ exists and $\lim_{x\to a} f(x) = f(a)$. \end{solution} \item $\cos(\pi) = \RespBoxMath{-1}[cospi]{1}{.0001}{[2,4]}\cgBdry\kern1bp\CorrAnsButton{-1}$ \begin{solution} Of course, everyone knows that $\cos(\pi) = -1$. \end{solution} \item \dPose{e^{x^2}}\RespBoxMath{2*x*e^(x^2)}[diffexp]{4}{.0001}{[0,1]}\cgBdry\kern1bp \CorrAnsButton{2*x*e^(x^2)} \begin{solution} First apply the rule for differentiating an the natural exponential, then apply the power rule: \begin{align*} \dfrac d{dx}\,e^{x^2} & = e^{x^2}\,\dfrac d{dx}\,x^2 \\& = e^{x^2}\,(2x) \\& = 2x e^{x^2} \end{align*} In the syntax of this document, \js{2*x*e^(x^2)}. \end{solution} \end{questions} \end{quiz*}\quad\ScoreField\currQuiz\olBdry\CorrButton\currQuiz \noindent Answers: \AnswerField\currQuiz \end{document} `