Robert Mařík, Roman Plch, Petra Šarmanová Tvorba interaktivních testů pomocí systému AcroTEX Robert Mařík, Roman Plch, Petra Šarmanová Tvorba interaktivních testů pomocí systému AcroTEX c Robert Mařík, Roman Plch, Petra Šarmanová, 2010 Obsah Úvod 2 1 Instalace AcroTEXu 4 2 Typy testů 5 2.1 oQuestion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.2 shortquiz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.3 quiz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3 Typy otázek 8 3.1 Výběr z nabízených možností – jedna správná odpověď . . . . . . . . . . . . 8 3.2 Výběr z nabízených možností – více správných odpovědí . . . . . . . . . . . 9 3.3 Doplňovací otázka – textový řetězec . . . . . . . . . . . . . . . . . . . . . . 12 3.4 Doplňovací otázka – matematický výraz . . . . . . . . . . . . . . . . . . . . 14 4 Vyhodnocení testu 18 5 Vkládání obrázků do testů 19 6 Tvorba otázek s podotázkami 21 7 Sdružování odpovědí pro a 22 8 Náhodné řazení nabízených odpovědí 24 9 Testy s podrobnými řešeními 25 10 Další nastavení a závěrečné poznámky 27 Řešení kvízů 29 Seznam použité literatury a internetových odkazů 30 Rejstřík 31 ÚVOD Úvod Portable Document Format (PDF) je v současnosti pravděpodobně nejrozšířenějším multiplatformním formátem pro výměnu a šíření textových dokumentů. Tento formát v současné verzi umožňuje vkládání JavaScriptů, které při vhodném použití možnosti PDF dokumentů rozšiřují nebývalým způsobem. K prohlížení takového PDF dokumentu pak potřebujeme PDF prohlížeč, který dokáže tyto JavaScripty interpretovat. Nejrozšířenějším volně dostupným prohlížečem je Adobe Reader. V tomto dokumentu si popíšeme jednu z možností, jak vytvořit interaktivní PDF dokumenty pro výuku. Bude se jednat o využití kolekce volně šiřitelných LATEXových maker nazvaných AcroTEX1 eDucation Bundle, které umožňují tvorbu interaktivních testů v PDF formátu. Všechny informace o balíku AcroTEX eDucation Bundle jsou dostupné na oficiální internetové adrese http://www.AcroTeX.net. Zde je možné si jej stáhnout i s podrobným manuálem a vzorovými příklady. Balíček AcroTEX eDucation Bundle se dá použít ke tvorbě interaktivních testů, které v sobě obsahují i prostředky pro kontrolu a vyhodnocování správnosti odpovědí. Možnosti balíčku zahrnují tvorbu dokumentu, který obsahuje otázky následujících typů: • otázka s výběrem z nabízených možností ; • doplňovací otázka, odpovědí je textový řetězec, testuje se výskyt podřetězce nebo úplná shoda, je možno provádět konverzi například na malá písmena, je možno též zadat více variant správné odpovědi a student se musí „trefit“ alespoň do jedné z nich; • doplňovací otázka, odpovědí je matematický výraz, přičemž s tímto výrazem je nakládáno skutečně jako s matematickým výrazem, nikoliv jako s textovým řetězcem. Pro matematické testy je velmi zajímavá poslední možnost. U odpovědí se testuje numerická shoda správné odpovědi zadané tvůrcem testu a odpovědi studenta. Porovnávání probíhá v rámci předem zvolené přesnosti v náhodných bodech vybraných z intervalu (nebo intervalů), který zadal tvůrce testu. Volba porovnávací funkce je také zcela v rukou autora testu, a je možné tedy používat nejenom otázky, na něž je jednoznačná odpověď, ale například i otázky, na něž je odpověď dána až na aditivní konstantu, což je možno využít například v otázkách z integrálního počtu. Srovnatelný volně šiřitelný systém je pravděpodobně pouze projekt STACK [10], který nevyužívá numerické porovnávání funkcí, ale je založen na volně šiřitelném systému počítačové algebry Maxima. AcroTEX je také přívětivý k testované osobě. Po vyplnění políčka je ihned zkontrolováno, zda je zadaný výraz validní, tj. není-li v něm například nepárová závorka či nedefinovaná funkce. Velkou předností testů tvořených systémem AcroTEX je skutečnost, že při vyhodnocování správnosti odpovědi veškeré výpočty probíhají na lokálním počítači. Není tedy nutné mít připojení na Internet. I když porovnávání odpovědí probíhá numericky, je možno používat i funkce s parametry, se kterými je možno zacházet jako s funkcemi více proměnných. 1 Název AcroTEX je složeninou z názvů programů Acrobat Reader a TEX. Jedná se o balíček pro TEXovský formát LATEX, jehož autorem je prof. D. P. Story. 2 ÚVOD AcroTEX snadno a rychle AcroTEX je mocný a složitý systém. Cílem tohoto dokumentu je pomoci vám zvládnout první krůčky k vytvoření vlastních interaktivních testů. Předkládaný text není manuálem, neobsahuje systematické informace o jednotlivých příkazech. Snažili jsme se z obrovského množství příkazů a možností vybrat jen ty, s nimiž vystačíte při tvorbě základních testů. Seznámíme vás se základními typy testů a otázek, které budeme ilustrovat ukázkovými příklady. Za každou ukázkou uvedeme zdrojový kód a okomentujeme použité příkazy. Kromě toho všechny ukázkové testy máte k dispozici v souboru ukazkovy_test.tex. Můžete si tak ihned zkoušet funkčnost a testy modifikovat dle vlastních nápadů. Předpokládáme základní znalost systému LATEX, nainstalovaný volně šiřitelný Adobe Reader a nainstalovaný AcroTEX (instalace je popsána v následující části). Přejeme vám při tvorbě interaktivních výukových materiálů hodně potěšení a úspěchů. Poděkování Děkujeme Mgr. Silvii Kuráňové a doc. RNDr. Jaromíru Kubenovi, CSc. za pečlivé přečtení textu a cenné připomínky a náměty. V lednu 2010 Autoři 3 1 INSTALACE ACROTEXU 1 Instalace AcroTEXu AcroTEX podporuje tři způsoby tvorby PDF dokumentů: pdftex, dvipdfm a dvipsone nebo dvips. V posledním případě k tvorbě funkčního PDF dokumentu musíme použít ještě i komerční programy Adobe Acrobat Distiller a Adobe Acrobat Professional. Proto se dále se věnujeme tvorbě pomocí pdftexu. Instalační balíček stáhneme na adrese http://www.math.uakron.edu/~dpstory/ acrotex/acrotex_pack.zip (vlastní funkční část) a http://www.math.uakron.edu/ ~dpstory/acrotex/acrotex_exdoc.zip (příklady, dokumentace). Balíček je ke stažení i na CTAN a může být odsud zrcadlen do repositáře vaší TEXové distribuce2. Stažený balík acrotex_pack.zip obsahuje instalační soubor acrotex.ins, kterým nainstalujeme celou distribuci. Navíc také obsahuje soubory web.dtx, exerquiz.dtx, dljslib.dtx a instalační soubory pro každý z těchto balíčků. 1. Rozbalíme stažený soubor acrotex_pack.zip. Všechny rozbalené soubory umístíme do libovolného adresáře. 2. V takto vytvořeném adresáři nalezneme soubor acrotex.ins a přeložíme jej formátem LATEX. Po přeložení se vytvoří soubory s extenzemi .def, .sty a .cfg. Do souboru acrotex.log se zapíše výsledná informace o překladu. 3. Všechny soubory vzniklé v bodě 2 nakopírujeme do adresářové struktury, která je prohledávána systémem LATEX. V systému Windows při použití TeXLive2009 může cesta pro umístění souborů vypadat například takto C:\TEX\texlive\texmf-local\tex\latex\acrotex. Nakonec obnovíme databázi balíčků. V TeX Live Manageru zvolíme v menu Akce položku Aktualizovat databázi souborů3. Totéž lze provést spuštěním příkazu texhash z příkazové řádky. Ukázkové soubory Každý LATEXový dokument musí obsahovat hlavičku a tělo. Do hlavičky načteme potřebné balíky AcroTEXu a vložíme příkazy, které specifikují tvorbu a vzhled samotného testu. Připravili jsme pro čtenáře ukázkový soubor ukazkovy_test.tex určený pro zpracování pdflatexem, v němž použita následující hlavička: \documentclass[11pt,pdftex]{article} \usepackage{graphicx,color} ... \usepackage{hyperref} \usepackage[czech]{exerquiz} Pro tvorbu interaktivních testů pomocí AcroTEXu je nutno načíst balíčky hyperref a exerquiz. 2 Verze na CTAN je však v současnosti (leden 2010) podstatně starší. 3 Jedná se o první řádek v menu Akce. Může se stát, že zde máte chybně uvedeno Aktualizovat databázi map fontů stejně jako ve třetím řádku. 4 2 TYPY TESTŮ Další možností je využít připravené vzorové příklady, které jsou součástí balíčku dokumentace distribuce AcroTEX eDucation Bundle (adresář examples). Pro ověření správnosti instalace je zde připraven soubor webeqtst.tex. Pro bezchybné přeložení ukázek dodávaných s AcroTEXem je ale nutno opravit volání balíčků web, exerquiz a eforms. Před překladem souboru prohlédneme hlavičku souboru a všude, kde pomocí příkazu \usepackage voláme některý z těchto balíčků, opravíme volitelný parametr dvipsone na pdftex. Tím umožníme kompilaci programem pdflatex a vyhneme se nutnosti použít komerční Adobe Acrobat Professional. 2 Typy testů Do textu je možno vložit • samostatnou otázku (oQuestion), • test, ve kterém je uživatel o správnosti odpovědi informován okamžitě (shortquiz), • test, ve kterém je uživatel o správnosti jednotlivých odpovědí informován po ukončení testu (quiz). Těmto typům otázek či testů jsou věnovány následující odstavce. 2.1 oQuestion Prostředí oQuestion je jednoduché prostředí vhodné pro samostatné krátké testové otázky. Odpověď na každý příklad či otázku lze vyplňovat jednotlivě a na rozdíl od testů není nutné tyto otázky nijak spouštět. Do tohoto prostředí je vždy uzavřena jedna otázka. Pro odpověď lze využít textový řetězec nebo matematický výraz. Prostředí má jeden povinný parametr s názvem otázky, která musí být jedinečná v rámci celého dokumentu. Ukázka: Derivujte. (sin2(x)) = \begin{oQuestion}{test1} Derivujte. $(\sin^2(x))’ = \RespBoxMath{2*sin(x)*cos(x)}{4}{.0001}{[0,1]}$ \end{oQuestion} Syntaxe příkazu \RespBoxMath a systém vyhodnocení správnosti odpovědi bude popsán v kapitole 3.4. 2.2 shortquiz Prostředí shortquiz je určeno pro tvorbu krátkých, jednoduchých kvizů. U tohoto prostředí již máme možnost v rámci jednoho kvizu zadat několik otázek se všemi možnostmi odpovědí (výběr možností, textový řetězec, matematický výraz) prostřednictvím výčtového prostředí questions a příkazu \item. Vyhodnocování každé odpovědi probíhá okamžitě. Prostředí shortquiz nemá povinný parametr v podobě názvu testu. 5 2 TYPY TESTŮ Ukázka (vyzkoušejte interaktivitu testu): Kvíz. 1. Je číslo 5 sudé? (a) Ano. (b) Ne. (c) Není možné rozhodnout. 2. Je číslo 4 sudé? (a) Ano. (b) Ne. (c) Není možné rozhodnout. \begin{shortquiz}%test2 \begin{questions} \item Je číslo 5 sudé? \begin{answers}{1} \bChoices \Ans{0} Ano.\eAns \Ans{1} Ne.\eAns \Ans{0} Není možné rozhodnout.\eAns \eChoices \end{answers} \item Je číslo 4 sudé? \begin{answers}{1} \bChoices \Ans{1} Ano.\eAns \Ans{0} Ne.\eAns \Ans{0} Není možné rozhodnout.\eAns \eChoices \end{answers} \end{questions} \end{shortquiz} Syntaxe prostředí answers a příkazu \Ans bude popsána v kapitole 3.1. Informace o tom, zda je odpověď správná či ne, se zobrazí ve vyskakovacím okně. To nemusí být vždy ideální řešení, neboť uživatel musí po každé odpovědi toto okno „odklikávat“. V následujícím testu toto implicitní nastavení změníme. Chceme, aby byl uživatel o správnosti řešení informován místo hlášení v okně grafickým symbolem přímo u odpovědi. K tomu slouží prostředí shortquiz*, které umožní označit jednotlivé odpovědi čtverečkem místo písmenek. Příkazy \sqForms a \sqTurnOffAlerts umožní do tohoto čtverečku umístit podle správnosti odpovědi grafický symbol a vypnout hlášky v oknech. (Protože tyto příkazy jsou použity uvnitř prostředí minipage, platí jenom pro stávající test a ne pro všechny následující. 6 2 TYPY TESTŮ Kvíz. 1. Je číslo 5 sudé? Ano. Ne. Není možné rozhodnout. 2. Je číslo 4 sudé? Ano. Ne. Není možné rozhodnout. Část zdrojového kódu ukázky, která se týká modifikace chování prostředí shortquiz, je následující \begin{minipage}{\linewidth} \sqForms\sqTurnOffAlerts \begin{shortquiz*}%test2b \begin{questions} ... \end{questions} \end{shortquiz*} \end{minipage} 2.3 quiz Prostředí quiz slouží k vytváření větších testů. Vyhodnocování správnosti otázek probíhá až po ukončení testu. Je možno vyhodnocovat počet správně zodpovězených otázek v testu nebo počet dosažených bodů. Odpovídat na otázky lze až po spuštění testu kliknutím na tlačítko „Zacatek testu“. Test ukončíme kliknutím na tlačítko „Konec testu“. Pro tvorbu těchto tlačítek vložíme do hlavičky dokumentu příkazy: \useBeginQuizButton[\BC{0 0 1}\CA{Zacatek testu}\rectW{3cm}] \useEndQuizButton[\BC{1 0 0}\CA{Konec testu}\rectW{3cm}] U příkazů vytvářejících tlačítko či pole můžeme nastavit jejich vzhled4 (barvy, rozměr, text, který se na tlačítku vypíše). Příkaz může vypadat např. takto: \useBeginQuizButton[\BC{0 0 1}\textColor{0 0 1 rg}\CA{Zacatek testu}\rectW{3cm}]. Volitelný parametr \BC zadává barvu rámečku tlačítka, \textColor nastavuje barvu písma, \rectW definuje šířku tlačítka a volbou \CA můžeme měnit text tlačítka (v této verzi AcroTEXu nelze použít českou diakritiku při změně textu tlačítka). 1. Samotný test... 4 O všech možnostech nastavení je možno získat informace v dokumentaci k balíčku eforms. 7 3 TYPY OTÁZEK \begin{quiz}{test3} \begin{questions} \item Samotný test... \end{questions} \end{quiz} Název testu je povinným parametrem a musí být v rámci jednoho dokumentu jedinečný. Prvním znakem může být písmeno, podtržítko (_) nebo znak pro dolar ($), dalšími znaky mohou být i číslice. V rámci jednoho testu můžeme zadat libovolný počet otázek, stejně jako v případě prostředí shortquiz, prostřednictvím výčtového prostředí questions a příkazu \item. Konkrétní ukázky testů vytvářených pomocí tohoto prostředí uvedeme v následujícím odstavci. 3 Typy otázek Připomeňme si, otázky jakých typů lze v testech používat: • otázka s výběrem z nabízených možností ; • doplňovací otázka, odpovědí je textový řetězec; • doplňovací otázka, odpovědí je matematický výraz. U prostředí oQuestion jsme omezeni pouze na doplňovací otázky (textový řetězec nebo matematický výraz). U prostředí shortquiz a quiz můžeme použít všechny tři nabízené možnosti. Podívejme se nyní na tvorbu jednotlivých typů otázek podrobněji. 3.1 Výběr z nabízených možností – jedna správná odpověď K tvorbě otázek, u nichž je právě jedna odpověď správná, je určeno prostředí answers. 1. (2b.) Do jakých souřadnic budeme transformovat trojný integrál při odvození objemu koule? (a) Sférických. (b) Polárních. (c) Záleží na poloměru koule. Počet správně zodpovězených otázek: Získané body: Procento úspěšnosti: 8 3 TYPY OTÁZEK \begin{quiz}{test4} \begin{questions} \item\PTs{2} Do jakých souřadnic budeme transformovat trojný integrál při odvození objemu koule? \begin{answers}{1} \bChoices \Ans{1} Sférických.\eAns \Ans{0} Polárních.\eAns \Ans{0} Záleží na poloměru koule.\eAns \eChoices \end{answers} \end{questions} \end{quiz}\hspace{2mm}\eqButton[\CA{Oprava testu}]\currQuiz\\ \noindent Počet správně zodpovězených otázek: \ScoreField\currQuiz\\ Získané body: \PointsField\currQuiz \\ Procento úspěšnosti: \PercentField\currQuiz\\ Všechny otázky jsou uzavřeny ve výčtovém prostředí questions. Každá otázka začíná příkazem \item. Příkaz \PTs{2}, který následuje za \item, nastaví bodové hodnocení dané otázky. Pokud tento příkaz neuvedeme, počítá se implicitně 1 bod za otázku. To ale ještě nezajistí, aby se body, které je možno u dané otázky získat, u otázky i zobrazily. Pokud chceme body zobrazovat, musíme v hlavičce dokumentu nadefinovat příkaz \PTsHook. V našem textu je příkaz nastaven takto: \PTsHook{($\eqPTs\text{b.}$)}. Makro \eqPTs se odvolává na hodnotu zadanou jako povinný parametr u příkazu \PTs, příkaz \text{b.} nastaví, jaký text se bude k počtu bodů vypisovat. Povinný parametr je možné uzavřít do oddělovačů (kulaté, hranaté závorky), do nichž se pak vypíše bodová hodnota. Odpovědi u dané otázky uzavíráme do prostředí answers. Povinným parametrem prostředí answers nastavíme, v kolika sloupcích budeme mít umístěny odpovědi. V naší ukázce je příkazem \begin{answers}{1} nastaven jeden sloupec. Odpovědi jsou dále uzavřeny mezi příkazy \bChoices a \eChoices. Každou jednotlivou odpověď navíc uzavřeme mezi \Ans a \eAns. Správná odpověď je označena příkazem \Ans{1} a nesprávná odpověď \Ans{0}. Pole pro zobrazení počtu správně zodpovězených otázek, získaných bodů a procenta úspěšnosti jsou nepovinná a budeme se jim věnovat v kapitole 4. 3.2 Výběr z nabízených možností – více správných odpovědí Prostředí manswers je určeno pro tvorbu otázky s více správnými odpověďmi. Můžeme tedy zadat libovolný počet příkazů \Ans{1} ve výčtu odpovědí. 1. (4b.) Vztah mezi kartézskými a cylindrickými souřadnicemi je dán rovnicemi: 9 3 TYPY OTÁZEK x = ρ cos ϕ, y = ρ sin ϕ, z = ϕ x = r cos ϕ, y = r sin ϕ, z = ϕ x = r cos ϕ, y = r sin ϕ, z = z x = ρ cos ϕ, y = ρ sin ϕ, z = z 2. (4b.) Rozhodněte, které ze zadaných DR jsou lineární: (a) xy + ln x − x2y = 0 (b) y + sin x = x3y (c) y + exy = x2y2 (d) y + cos y = tan x 3. (3b.) Zaškrtněte pravdivá tvrzení. (a) a + b = b + a (b) a − b = b − a (c) a · b = b · a (d) c(a + b) = ca + cb (e) 1 − 2 = 1 (f) (−1)(−a) = (−a)−1 Počet správně zodpovězených otázek: Získané body: Procento úspěšnosti: \showCreditMarkup \begin{quiz}{test5} \begin{questions} \useForms \symbolchoice{star} \item\PTs{4} Vztah mezi kartézskými a cylindrickými souřadnicemi je dán rovnicemi: \begin{manswers}{2} \rowsep{5pt} \bChoices \Ans[0]{0} $x=\rho\cos\varphi$, $y=\rho\sin\varphi$, $z=\varphi$\eAns \Ans[0]{0} $x=r\cos\varphi$, $y=r\sin\varphi$, $z=\varphi$\eAns \Ans[2]{1} $x=r\cos\varphi$, $y=r\sin\varphi$, $z=z$\eAns \Ans[2]{1} $x=\rho\cos\varphi$, $y=\rho\sin\varphi$, $z=z$\eAns \eChoices \end{manswers} \useLinks \symbolchoice{cross} \item\PTs{4} Rozhodněte, které ze zadaných DR jsou lineární: \begin{manswers}{2} \bChoices \Ans[2]{1} $xy’+\ln x -x^2y=0$ \eAns \Ans[2]{1} $y+\sin x=x^3y’$ \eAns \Ans[-2]{0} $y’+\e^{x}y=x^2y^2$ \eAns \Ans[-2]{0} $y’+\cos y=\tan x$ \eAns \eChoices \end{manswers} 10 3 TYPY OTÁZEK \item\PTs{3} Zaškrtněte pravdivá tvrzení. \begin{manswers}{3} \bChoices[2] \Ans[1]{1} $a+b=b+a$\eAns \Ans[-1]{0} $a-b=b-a$\eAns \Ans[1]{1} $a\cdot b =b\cdot a$\eAns \Ans[1]{1} $c(a+b)=ca+cb$\eAns \Ans[-1]{0} $1-2=1$\eAns \Ans[-1]{0} $(-1)(-a)=(-a)^{-1}$\eAns \eChoices \end{manswers} \end{questions} \end{quiz}\hspace{2mm}\eqButton[\CA{Oprava testu}]\currQuiz\\ \noindent Počet správně zodpovězených otázek: \ScoreField\currQuiz\\ Získané body: \PointsField\currQuiz \\ Procento úspěšnosti: \PercentField\currQuiz\\ Odpovědi u dané otázky uzavíráme do prostředí manswers. Povinným parametrem prostředí manswers nastavíme, v kolika sloupcích budeme mít umístěny odpovědi. Přesněji řečeno, tímto příkazem se vytvoří tabulka s daným počtem sloupců. Příkazem \begin{manswers}{2} jsou nastaveny dva sloupce. Odpovědi jsou dále uzavřeny mezi příkazy \bChoices a \eChoices. Parametr uvedený u \bChoices nám umožňuje umístit odpovědi jen do některých sloupců, které jsou přednastaveny parametrem uvedeným u manswers. Ve třetí otázce našeho příkladu jsou povinným parametrem prostředí manswers nastaveny 3 sloupce pro umístění odpovědí. Příkazem \bChoices[2] nebo \bChoices[nCols=2] se umístí odpovědi jen do prvních dvou sloupců. Jinými slovy, vytvoří se tabulka se třemi sloupci, odpovědi se ale umístí jen do prvních dvou. Dále mají příkazy \bChoices a \eChoices význam při náhodném řazení odpovědí, o čemž bude pojednáno dále. Každou jednotlivou odpověď pak uzavřeme mezi \Ans a \eAns. Správná odpověď je označena příkazem \Ans{1} a nesprávná odpověď \Ans{0}. Při použití prostředí manswers může student zaškrtnout libovolný počet odpovědí, tedy i všechny. Autor testu tedy musí pečlivě zvážit systém bodového ohodnocení jednotlivých odpovědí. K tomu slouží volitelný parametr příkazu \Ans. Například [2] u příkazu \Ans[2]{1} udává počet bodů, které student získá, zaškrtne-li danou odpověď. U první otázky v našem testu student získá za každou správnou odpověď 2 body, za špatnou odpověď 0 bodů. Pokud tedy student zaškrtne bez přemýšlení všechny odpovědi, získá 4 body. To jistě není ideální stav. U druhé otázky student může získat za správné odpovědi 2 body (\Ans[2]{1}) a za špatné odpovědi mu naopak 2 body odečítáme (\Ans[-2]{0}). Chceme-li v testech pracovat se zápornými body, pak pravděpodobně budeme také chtít, aby funkce „Získané body“ zobrazovala i záporné součty bodů. To není implicitně nastaveno. Povolení 11 3 TYPY OTÁZEK záporných součtů provedeme pomocí příkazu \negPointsAllowed, který umístíme do hlavičky dokumentu. Skládá-li se test z mnoha otázek a otázky z různě bodovaných odpovědí, pak je vhodné příkazem \ShowCreditMarkup před začátkem testu povolit zobrazení získaných bodů u jednotlivých otázek. Body se pak zobrazí červeně na levém okraji u každé otázky. Implicitně je za bodovou hodnotou uvedeno pts. (Chceme-li místo pts uvádět například b, pak použijeme příkaz \ptsLabel{b}). K opětovnému zakázání výpisu bodů u otázek slouží příkaz \hideCreditMarkup. Implicitně je nastaveno, že se body získané u jednotlivých otázek nevypisují. Pokud vytváříme test typu „výběr z nabízených možností“, můžeme si zvolit, jakou formou se bude výčet zobrazovat a jaký symbol se použije při označení odpovědi. Přednastavenou volbou pro výčet odpovědí je (a), (b), (c) . . . . Způsob výčtu můžeme změnit použitím příkazu \useForms. Všechny následující výčty se z písmen změní na čtvereček. Pokud chceme opět vrátit implicitní volbu, použijeme příkaz \useLinks. Způsob výčtu odpovědí je možno v rámci jednoho testu libovolně měnit. Pokud chceme čtverečky v celém testu, je možno použít prostředí quiz*. Zaškrtávací symbol je možno měnit příkazem \symbolchoice, jehož povinný parametr volíme z následujících možností check, circle, cross, diamond, square, a star. Implicitně je nastavena volba check. V předchozím příkladě je u první otázky zvolena hvězdička (star) a u druhé otázky křížek (cross). Pro změnu mezery mezi řádky odpovědí použijeme příkaz \rowsep (viz strana 27). 3.3 Doplňovací otázka – textový řetězec Příkazem \RespBoxTxt vytvoříme pole pro textovou odpověď. Použití tohoto pole může vypadat např. takto: 1. (4b.) Uveďte jméno anglického matematika 17. století, který je považován za zakladatele diferenciálního a integrálního počtu: 2. (2b.) Vypočtěte. 20 + 8 = Počet správně zodpovězených otázek: Získané body: Procento úspěšnosti: Zobrazení správného výsledku: \hideCreditMarkup \begin{quiz}{test6} \begin{questions} \item\PTs{4} Uveďte jméno anglického matematika 17. století, který je 12 3 TYPY OTÁZEK považován za zakladatele diferenciálního a integrálního počtu: \RespBoxTxt{0}{0}{4}{Isaac Newton}{Newton}{I. Newton}{Newton Isaac} \CorrAnsButton[\CA{Spravna odpoved}]{Isaac Newton} \item\PTs{2} Vypočtěte. $20+8=$ \RespBoxTxt{0}{0}{1}{28} \CorrAnsButton[\CA{Spravna odpoved}]{28} \end{questions} \end{quiz}\hspace{2mm}\eqButton[\CA{Oprava testu}]\currQuiz\\ \begin{tabular}{ll} Počet správně zodpovězených otázek: &\ScoreField\currQuiz\\ Získané body: &\PointsField\currQuiz \\ Procento úspěšnosti: &\PercentField\currQuiz\\ Zobrazení správného výsledku: &\AnswerField\currQuiz \end{tabular} Popišme si parametry příkazu \RespBoxTxt, který jsme v našem příkladě použili ve tvaru \RespBoxTxt{0}{0}{4}{Isaac Newton}{Newton}{I. Newton}{Newton Isaac} První parametr udává, jak se text vepsaný autorem i uživatelem bude filtrovat, upravovat. Lze ho nastavit na hodnoty −1, 0, 1 a 2. Zvolíme-li −1, text se nebude filtrovat, volba 0 upraví všechna písmena na malá a zároveň odstraní mezery a nepísmenné znaky, volba 1 převede všechna písmena na malá a odstraní mezery, volba 2 odstraní mezery. Druhý parametr nastavuje, jak se bude uživatelova odpověď porovnávat s odpovědí autora. Při volbě 0 je uživatelova odpověď označena za správnou jen při absolutní shodě. Jestliže zvolíme 1, je odpověď označena jako správná, pokud v sobě obsahuje jako podřetězec některou ze správných odpovědí. Pokud tedy student při této volbě zadá odpověď „skvělý matematik Newton“, bude to považováno za správnou odpověď. Třetí parametr udává počet variant odpovědí, které dále autor uvádí jako správné. To je proto, že slovní odpověď nemusí být vždy dána jednoznačně. Například v našem příkladě autor za správnou odpověď považuje jakoukoliv z následujících odpovědí: Isaac Newton, Newton, I. Newton nebo Newton Isaac. Za třetím parametrem následuje tedy výčet autorových odpovědí, které považuje za korektní. Ve výčtu správných odpovědí může autor použít i slova obsahují písmena s českou diakritikou. Podrobnější informace a další ukázky je možno získat v souboru jtxttst.tex, který se nachází v distribuci AcroTEXu v adresáři examples. Příkaz \CorrAnsButton vytvoří tlačítko „Správná odpověď“, které je aktivní až po ukončení testu a slouží k zobrazení správné odpovědi na otázku. Povinným parametrem tohoto příkazu je autorem vybraná správná odpověď, která se pak po kliknutí na tlačítko objeví v poli „Zobrazení správného výsledku“ (toto pole popíšeme v odstavci 4). Popisek tlačítka je možno ovlivnit příkazem \CA v nepovinném parametru příkazu. Abychom nemuseli popisek explicitně vypisovat při každém použití tohoto příkazu, můžeme jej globálně nastavit pomocí makra \everyCorrAnsButton. V tomto dokumentu je v hlavičce uvedeno \everyCorrAnsButton{\CA{?}\TU{Klikni pro zobrazení správné odpovedi.}}. Příkazem \TU nastavíme text, který se zobrazí, najedeme-li myší na tlačítko. 13 3 TYPY OTÁZEK 3.4 Doplňovací otázka – matematický výraz Příkazem \RespBoxMath vytvoříme pole pro matematickou odpověď. Příkaz \RespBoxMath může být vložen do matematického prostředí nebo může být i mimo něj. 1. (1b.) (x6) = 2. (2b.) ∂ ∂x 5x2y = 3. (2b.) ∂ ∂y 4x2y3z = Počet správně zodpovězených otázek: Získané body: Procento úspěšnosti: Zobrazení správného výsledku: \showCreditMarkup \begin{quiz}{test7} \begin{questions} \item\PTs{1} $ (x^6)’ =\RespBoxMath{6*x^5}(x){4}{.0001}{[0,1]}$ \CorrAnsButton{6*x^5} \item\PTs{2} $\dfrac{\partial}{\partial x} {5 x^2 y} = \RespBoxMath{10*x*y}(xy){4}{.0001}{[0,1]x[0,1]}$ \CorrAnsButton{10*x*y} \item\PTs{2} $\dfrac{\partial}{\partial y} {4 x^2 y^3 z } = \RespBoxMath{12*x^2*y^2*z}(xyz){4}{.0001}{[0,1]x[0,1]x[0,1]}$ \CorrAnsButton{12*x^2*y^2*z} \end{questions} \end{quiz}\hspace{2mm}\eqButton[\CA{Oprava testu}]\currQuiz\\ \begin{tabular}{ll} Počet správně zodpovězených otázek: &\ScoreField\currQuiz\\ Získané body: &\PointsField\currQuiz \\ Procento úspěšnosti: &\PercentField\currQuiz\\ Zobrazení správného výsledku: &\AnswerField\currQuiz \end{tabular} Výsledkem příkladu, zapisovaného do takto vytvořeného pole, může být konkrétní číslo či funkce několika proměnných x, y, z,. . . (malá písmena latinky). Velice podstatné je zde správné nastavení povinných parametrů, které určují jakým způsobem se bude ověřovat správnost odpovědi. 14 3 TYPY OTÁZEK Příkaz \RespBoxMath může mít až deset parametrů, přesný popis najdete v manuálu aeb_man.pdf (str. 98). My si zde popíšeme pouze ty parametry, které jsme použili v našem příkladě \RespBoxMath{10*x*y}(xy){4}{.0001}{[0,1]x[0,1]}. První povinný parametr udává správný výsledek. Volitelný parametr (xy) specifikuje v jakých proměnných je výsledek zadán. Použití jakékoliv jiné proměnné vyvolá chybovou zprávu s požadavkem na opravu výrazu, který testovaná osoba zapsala do textového pole. Druhý povinný parametr nastavuje počet bodů, ve kterých se bude výsledek porovnávat s uživatelovým. Nejčastěji volíme 3 nebo 4 body. Tento počet by měl být dostačující pro ověření správnosti výsledku. Třetí povinný parametr určuje odchylku při porovnání autorovy a uživatelovy odpovědi. Porovnání se provádí spočítáním hodnot v několika bodech (viz povinný parametr 2), jak u autorovy odpovědi, tak u uživatelovy odpovědi. Obě hodnoty příslušné ke stejnému bodu jsou porovnány. Výsledek je označen za správný, jestliže odchylka u všech dvojic spadá do nastaveného intervalu. Čtvrtý povinný parametr udává interval, ve kterém se bude řešení ověřovat. Je-li funkce např. dvou proměnných, udáváme do parametru dva intervaly oddělené znakem x (např. volíme [0,1]x[0,1]). Za příkazem \RespBoxMath je možno (stejně jako u příkazu \RespBoxTxt) použít makro \CorrAnsButton pro zobrazení správné odpovědi. Zápis matematických výrazů Pro zápis matematických výrazů v otázkách s tvořenou odpovědí používáme následující syntaxi. • Základní matematické operace: + sčítání (př.: x+1), - odčítání (př.: x-1), * násobení (př.: 3*x) a / pro dělení a zlomky (př.: 1/x pro 1 x ). • Pro zapsání mocniny použijeme symbol ^ a exponent uzavřeme do libovolných závorek (př.: x^(-2) pro x−2). • Odmocninu zapíšeme pomocí sqrt a odmocněnec umístíme do závorek (př.: sqrt(x) pro √ x), pro odmocninu můžeme také použít zápis (př.: x^(1/3) pro 3 √ x). • Základní funkce zapisujeme takto: sin(x), cos(x), tan(x), cot(x), sec(x), csc(x), asin(x), acos(x), atan(x), ln(x). • Exponenciální funkci ex zapisujeme exp(x) nebo e^x. • Číslo π zapisujeme jako pi (př.: 6*pi pro 6π nebo 6+pi pro 6 + π). • Absolutní hodnotu zapisujeme abs() nebo pomocí | | (př. abs(x) nebo | x | pro |x|). • Pořadí operací definujeme uzavřením jednotlivých operací do závorek, je možné používat i hranaté nebo složené závorky (př.: (sin(x))^(2) pro (sin(x))2). Kromě znaků a funkcí popsaných výše je možno povolit zapisovat násobení nejen znakem *, ale i mezerou nebo zapsáním objektů vedle sebe (př.: 3*x nebo 3 x nebo 3x pro 3x). Toto chování zpřístupníme načtením balíčku dljslib s volbou ImplMulti, tj. příkazem \usepackage[ImplMulti]{dljslib} v hlavičce dokumentu. 15 3 TYPY OTÁZEK Vzhledem k tomu, že jsou všechny mezery před zpracováním odpovědi odstraněny, musíme při násobení čísel zapsat znaménko pro násobení explicitně pomocí *. Pozor: 1/2␣3 je rozpoznáno jako 1/(23), což je něco jiného než 1/2*3=3/2 a něco jiného než 1/(2*3)=1/6. Je tedy otázkou, zda je vynechávání * žádoucí. Pokud odpověď není platný matematický výraz (například použití nepárové závorky nebo nepovolené proměnné), není odpověď vyhodnocena jako chybná, ale testovaná osoba musí svou odpověď opravit. Protože odpovědi vložené autorem testu a odpovědi vložené čtenářem textu jsou porovnávány numericky, jsou matematicky ekvivalentní výrazy vyhodnoceny jako stejné. Správnou odpověď (x + 1)2 je tedy možno zadat nejen ve tvaru (x+1)ˆ2, ale například i ve tvaru xˆ2+2*x+sinˆ2(x)+cosˆ2(x). Tato vlastnost není vždy žádoucí, protože například na otázku „Kolik je 20 + 8?“ očekáváme odpověď 28 a nikoliv třeba 21+7. Abychom dosáhli korektního vyhodnocování otázek podobného typu, můžeme v jednoduchých případech porovnávat odpovědi jako textové řetězce (viz příklad v podkapitole 3.3). V případech, kdy textové porovnávání řetězců nestačí, je možno použít další volbu systému AcroTEX, která pomocí vstupních filtrů zablokuje použití některé z předem zvolených funkcí nebo matematických operací. Tyto vstupní filtry se nastavují pro každou otázku samostatně. Například použití následujícího kódu $\sin(\pi/4) = \RespBoxMath[\rectW{.75in}\textSize{0}] {sqrt(2)/2}{1}{.0001}{[0,1]}[{priorParse: NoTrigLogAllowed }] $ způsobí, že odpověď sin(pi/4) bude rozpoznána jako neplatná a od testované osoby se očekává, že zapíše odpověď bez použití goniometrických funkcí. Předdefinované volby jsou DecimalsOnly, NoProducts, NoDivision, NoAddOrSub, NoArithAllowed, NoExpAllowed, NoTrigAllowed a NoTrigLogAllowed a příklady použití jsou v souboru limarith.tex. V případě potřeby lokalizace chybových hlášek této skupiny příkazů do „cestiny“ (tj. bez diakritiky) je nutno opravit odpovídající anglické texty přímo v souboru dljslib.sty. Funkce a procedury pro matematické porovnávání V některých případech odpověď na otázku není dána jednoznačně, například neurčitý integrál je dán až na aditivní konstantu. Aby byla zajištěna potřebná funkcionalita, je nutno při zadání otázky volit odpovídající porovnávací funkci, v tomto případě funkci indefCompare. Abychom tuto funkci mohli použít, musíme v hlavičce dokumentu tuto funkci zpřístupnit načtením balíčku dljslib s volitelným parametrem indefIntegral, například příkazem \usepackage[indefIntegral]{dljslib} Využití této porovnávací funkce si ilustrujeme na následujícím příkladě. Při výpočtu integrálu funkce sin(x) za správnou odpověď považujeme nejen -cos(x), ale i jakoukoliv z funkcí 1-cos(x), -cos(x)+4, -cos(x)+C atd. Aditivní konstantu je možno vynechat, nebo použít velké písmeno C. 16 3 TYPY OTÁZEK 1. (2b.) sin(x) dx = 2. (2b.) x5 dx = Počet správně zodpovězených otázek: Získané body: Procento úspěšnosti: Zobrazení správného výsledku: \begin{quiz}{test8} \begin{questions} \item\PTs{2} $\displaystyle\int \sin(x)\,\mathrm{d}x = \RespBoxMath{-cos(x)}{4}{.0001}{[0,1]}[indefCompare]$ \CorrAnsButton{-cos(x)} \item\PTs{2} $\displaystyle\int x^5\,\mathrm{d}x = \RespBoxMath{x^6/6}{4}{.0001}{[0,1]}[indefCompare]$ \CorrAnsButton{x^6/6} \end{questions} \end{quiz}\hspace{2mm}\eqButton[\CA{Oprava testu}]\currQuiz\\ \begin{tabular}{ll} Počet správně zodpovězených otázek: &\ScoreField\currQuiz\\ Získané body: &\PointsField\currQuiz \\ Procento úspěšnosti: &\PercentField\currQuiz\\ Zobrazení správného výsledku: &\AnswerField\currQuiz \end{tabular} Uveďme si nyní pro zkušenější uživatele příklady funkcí dostupných pro zpracování odpovědí (response functions) a porovnávání výrazů (compare functions). V závorce za názvem funkce je uvedeno, jaký volitelný parametr stylového souboru dljslib tuto funkci zpřístupní pro použití v dokumentu). • Funkce pro porovnávání, zda jsou výrazy stejné nebo se liší nejvýše o aditivní konstantu: indefCompare (indefIntegral). • Funkce pro porovnávání rovnic: ProcRespEq (equations). Rovnice jsou vyhodnoceny jako ekvivalentní, pokud po převedení všech členů rovnice na jednu stranu dostáváme na této straně ekvivalentní funkce, nebo funkce lišící se nejvýše konstantním násobkem). • Funkce pro porovnávání vektorů a vektorových funkcí: ProcVec (vectors). 17 4 VYHODNOCENÍ TESTU • Funkce pro porovnávání množin čísel nebo symbolů: ProcRespSetNum a ProcRespSetSym (setSupport). • Funkce pro porovnávání komplexních čísel v algebraickém tvaru: ProcRespComplex, ProcRespListComplex a ProcRespSetComplex (complex). • Funkce pro porovnávání čárkou oddělených výrazů, kde v prvním případě na pořadí těchto výrazů záleží a ve druhém nezáleží: ProcRespListFormula (setSupport) a ProcRespSetFormula (unordered). • Funkce pro porovnávání bodů: ProcPoint (point). • Funkce pro porovnávání intervalů a sjednocení intervalů: ProcRespIntervals (intervals). • Funkce pro vyhodnocování otázek založených na rozkladu polynomu na součin: ProcRespFactors (factors). Příklady použití různých porovnávacích funkcí je možno nalézt v dokumentaci AcroTEXu v souboru jqzspec.tex a dále přímo v dokumentovaném zdrojovém kódu knihovny dljslib, který získáme po trojím překladu souboru dljslib.dtx LATEXem. Další funkce si může autor testu doprogramovat dle svých potřeb (často stačí mírná modifikace stávajících funkcí, jejichž zdrojové kódy jsou součástí AcroTEXu). 4 Vyhodnocení testu Výhodou testů vytvořených pomocí AcroTEXu je automatické vyhodnocení testů, určení počtu správně zodpovězených otázek a získaných bodů a nakonec vyznačení oprav do testu. K tomu stačí umístit do testu příslušná tlačítka a vytvořit políčka potřebná pro zobrazení těchto informací. K dispozici jsou následující příkazy: • \ScoreField{název_testu} Pokud chceme vyhodnotit počet správně zodpovězených otázek z celkového počtu, zadáme za konec testu příkaz \ScoreField{název_testu}. Název se musí shodovat s názvem testu zadaného na začátku prostředí (\begin{quiz}{název_testu}), nesmí obsahovat mezery a musí být v rámci jednoho dokumentu jedinečný. Podobně jako v níže popsaných příkazech \PointsField, \PercentField, \eqButton a \AnswerField můžeme nahradit název_testu makrem \currQuiz, které se odvolává na název aktuálního testu (\ScoreField\currQuiz). • \PointsField{název_testu} Pro zobrazení bodového zisku zadáme za konec testu příkaz \PointsField. Nastavíme-li různé bodové hodnoty u otázek, může mít toto pole větší vypovídací hodnotu než pole pro počet správně zodpovězených otázek. Po ukončení testu se zobrazí dosažený počet bodů z celkového počtu a odrazí se zde náročnost jednotlivých otázek. 18 5 VKLÁDÁNÍ OBRÁZKŮ DO TESTŮ • \PercentField{název_testu} Pro zobrazení procentuální úspěšnosti slouží příkaz \PercentField. Procenta se počítají z bodového ohodnocení, nikoli z počtu správně zodpovězených otázek. • \eqButton{název_testu} Zobrazení správných odpovědí se provede kliknutím na tlačítko vytvořené příkazem \eqButton. Nepovinnými parametry lze měnit vzhled tlačítka. Při použití příkazu \eqButton[\CA{Oprava testu}]{test8} je na tlačítku text „Oprava testu“. Implicitní nastavení textu tlačítka je „Opravit“. Po stisknutí tlačítka se celý test opraví, zeleně se označí správné odpovědi a červeně se zvýrazní odpovědi chybné. V případě otázek s volbou z nabízených možností se do testu dále vyznačí správné odpovědi. Pokud máme v testu pole pro doplnění matematického výrazu a k nim odpovídající příkaz \CorrAnsButton, pak se stisknutím tlačítka „Oprava testu“ objeví za doplňovacím polem tlačítko „?“. Aby si uživatel mohl zobrazit správnou odpověď, je třeba ještě vytvořit pole pro zápis této odpovědi příkazem \AnswerField – viz dále. Tím je zajištěno, že testovaná osoba vidí současně svoji odpověď i odpověď správnou. • \AnswerField{název_testu} Příkaz \AnswerField použijeme, pokud v testu využíváme doplňovací pole pro textový nebo matematický výraz. Tento příkaz vytvoří pole pro zobrazení správného řešení. Pole můžeme zařadit za každou doplňovací otázku nebo kamkoliv jinam na stránku. V případě, že máme jen jedno pole \AnswerField umístěné např. dole na stránce, se zde budou postupně (po kliknutí na tlačítko „?“ u dané otázky) zobrazovat správná řešení všech příkladů. V případě testu, který je svým rozsahem delší než jedna stránka, je pro pohodlnou práci s testem vhodné použít tento příkaz na každé straně. 5 Vkládání obrázků do testů Obrázky do testů vkládáme stejně, jako na jakékoliv jiné místo v textu, tj. s využitím příkazu \includegraphics. Např. Test s obrázkem 1. (3b.) K množině zvýrazněné na obrázku přiřaďte odpovídající dvojnásobný integrál. (a) 1 0 x2 0 f(x, y) dy dx, (b) 1 0 2x−x2 0 f(x, y) dy dx, (c) 1 0 x2 2x−x2 f(x, y) dy dx, (d) 1 0 2x−x2 x2 f(x, y) dy dx. 19 5 VKLÁDÁNÍ OBRÁZKŮ DO TESTŮ Správně zodpovězené otázky: Získané body: Procento úspěšnosti: \titleQuiz{Test s~obrázkem} \begin{quiz}{test10} \begin{questions} \item\PTs{3} K~množině zvýrazněné na obrázku přiřaďte odpovídající dvojnásobný integrál. \begin{center} \includegraphics[width=6cm]{snimek.pdf} \end{center} \begin{answers}{2} \rowsep{6pt} \bChoices \Ans{0}$\int_{0}^{1}\bigl( \int_{0}^{x^{2}} f(x,y)\, \mathrm{d}y \,\bigr) \mathrm{d}x $,\eAns \Ans{0}$\int_{0}^{1}\bigl( \int_{0}^{2x-x^{2}} f(x,y)\, \mathrm{d}y \,\bigr) \mathrm{d}x $,\eAns \Ans{0}$\int_{0}^{1}\bigl( \int_{2x-x^{2}}^{x^{2}} f(x,y)\, \mathrm{d}y \,\bigr) \mathrm{d}x $,\eAns \Ans{1}$\int_{0}^{1}\bigl( \int_{x^{2}}^{2x-x^{2}} f(x,y)\, \mathrm{d}y \,\bigr) \mathrm{d}x $.\eAns \eChoices \end{answers} \end{questions} \end{quiz}\hspace{2mm}\eqButton[\CA{Oprava testu}]{test10}\\ \begin{tabular}{ll} Správně zodpovězené otázky:& \ScoreField{test10}\\ Získané body:& \PointsField{test10}\\ Procento úspěšnosti:& \PercentField{test10} \end{tabular} Podobně lze do testů vkládat i 3D grafiku, flash, video nebo audio nahrávky. Vkládání interaktivní 3D grafiky do PDF dokumentů je věnován článek [9]. Příkazem \titleQuiz{název_testu} přiřadíme testu název, který se umístí vedle tlačítka začátku testu. 20 6 TVORBA OTÁZEK S PODOTÁZKAMI 6 Tvorba otázek s podotázkami AcroTEX umožňuje i členění testu pomocí podotázek. 1. Je dána funkce f předpisem f(x) = 2 + 3x − x3. Odpovězte na následující otázky. (a) Definiční obor D(f) je: (a) (−3, 3) (b) −3, 3 (c) 0, ∞) (d) (−∞, ∞) (b) První derivace f (x) = (c) Vyšetřete lokální extrémy funkce f. (i) Určete stacionární body funkce f: (a) x = 1, x = 3 (b) x = 1, x = −1 (c) x = 3, x = −3 (d) funkce nemá stac. body (ii) Funkce f má v bodě x = lokální minimum. (iii) Funkce f má v bodě x = lokální maximum. Správně zodpovězené otázky: Získané body: Procento úspěšnosti: Zobrazení správného výsledku: \begin{quiz}{test11} \begin{questions} \multipartquestion \item Je dána funkce $f$ předpisem $f(x)=2+3x-x^3$. Odpovězte na následující otázky. \begin{questions} \item Definiční obor $D(f)$ je: \begin{answers}{2} \bChoices \Ans{0} $(-3,3)$ \eAns \Ans{0} $\langle -3,3\rangle$ \eAns \Ans{0} $\langle 0, \infty)$ \eAns \Ans{1} $(-\infty,\infty)$ \eAns \eChoices \end{answers} \item První derivace $f’(x)= \RespBoxMath{3-3x^2}(x){4}{.0001}{[0,5]}$ \CorrAnsButton{3-3x^2} \multipartquestion \item Vyšetřete lokální extrémy funkce $f$. 21 7 SDRUŽOVÁNÍ ODPOVĚDÍ PRO \RespBoxTxt A \RespBoxMath \begin{questions} \item Určete stacionární body funkce $f$: \begin{answers}{2} \bChoices \Ans{0} $x=1$, $x=3$ \eAns \Ans{1} $x=1$, $x=-1$ \eAns \Ans{0} $x=3$, $x=-3$ \eAns \Ans{0} funkce nemá stac. body \eAns \eChoices \end{answers} \item Funkce $f$ má v~bodě $x=$ \RespBoxTxt{0}{0}{1}{-1} \CorrAnsButton{-1} lokální minimum. \item Funkce $f$ má v~bodě $x=$ \RespBoxTxt{0}{0}{1}{1} \CorrAnsButton{1} lokální maximum. \end{questions} \end{questions} \end{questions} \end{quiz}\hspace{2mm}\eqButton[\CA{Oprava testu}]{test11}\\ \begin{tabular}{ll} Správně zodpovězené otázky:& \ScoreField{test11}\\ Získané body:& \PointsField{test11}\\ Procento úspěšnosti:& \PercentField{test11}\\ Zobrazení správného výsledku:& \AnswerField{test11} \end{tabular} Otázky můžeme do sebe včleňovat tak, jak jsem zvyklí např. u výčtů. Pokud některá z položek uvádí další sérii otázek, ale sama o sobě odpovědi neobsahuje, umístíme před tuto položku příkaz \multipartquestion. 7 Sdružování odpovědí pro \RespBoxTxt a \RespBoxMath V některých případech se otázka v testu skládá z takových podotázek, že proto, aby byla otázka považována za správně zodpovězenou, je nutno správně odpovědět všechny její části. V tomto případě můžeme otázky sdružit do jedné pomocí prostředí mathGrp. Uvažujme diferenciální rovnici y + y = 0. 1. (3b.) Rozhodněte, které z funkcí tvoří fundamentální systém: (a) sin x, cos x (b) ex sin x, ex cos x (c) 1, x (d) ex, e3x 2. (10b.) Wronského determinant fundamentálního systému řešení je W(x) = = 22 7 SDRUŽOVÁNÍ ODPOVĚDÍ PRO \RespBoxTxt A \RespBoxMath Správně zodpovězené otázky: Získané body: Procento úspěšnosti: Zobrazení správného výsledku: V tomto testu jsou dvě otázky. První otázka je otázka s výběrem z možností a pro její správné zodpovězení stačí zakliknout správnou odpověď. V druhé otázce je v prostředí mathGrp sdruženo pět doplňovacích otázek na matematický výraz. Pro zodpovězení této otázky je nutno správně vyplnit všech pět textových políček. Lze získat dva body za každé správně vyplněné políčko. Ve druhé otázce je tedy možno získat maximálně 10 bodů. \begin{quiz}{test12} Uvažujme diferenciální rovnici $y’’+y=0$. \begin{questions} \item \PTs{3} Rozhodněte, které z~funkcí tvoří fundamentální systém: \begin{answers}{2} \bChoices \Ans[1]{1} $\sin x$, $\cos x$ \eAns \Ans[0]{0} $\e^{x} \sin x$, $\e^{x} \cos x$ \eAns \Ans[0]{0} $1$, $x$ \eAns \Ans[0]{0} $\e^{x}$, $\e^{3x}$ \eAns \eChoices \end{answers} \item \PTs{10} Wronského determinant fundamentálního systému řešení je \begin{mathGrp}\PTs*{2} ${W(x)=}\left|\ \begin{matrix} \RespBoxMath[\rectW{2cm}]{sin(x)}{5}{0.0001}{[0,1]}& \RespBoxMath[\rectW{2cm}]{cos(x)}{5}{0.0001}{[0,1]}\\ \RespBoxMath[\rectW{2cm}]{cos(x)}{5}{0.0001}{[0,1]}& \RespBoxMath[\rectW{2cm}]{-sin(x)}{5}{0.0001}{[0,1]} \end{matrix}\ \right|=\RespBoxMath[\rectW{1cm}]{-1}{5}{0.0001}{[0,1]}$ \end{mathGrp} \CorrAnsButtonGrp{sin(x),cos(x),cos(x),-sin(x),-1} \end{questions} \end{quiz}\hspace{2mm}\eqButton[\CA{Oprava testu}]{test12}\\ \begin{tabular}{ll} Správně zodpovězené otázky:& \ScoreField{test12}\\ Získané body:& \PointsField{test12}\\ Procento úspěšnosti:& \PercentField{test12}\\ Zobrazení správného výsledku:& \AnswerField{test12} \end{tabular} 23 8 NÁHODNÉ ŘAZENÍ NABÍZENÝCH ODPOVĚDÍ Po stisku tlačítka pro zobrazení výsledků se objeví jenom jedno tlačítko „?“. Abychom si mohli zobrazit správné odpovědi ke všem políčkům, je nutno toto tlačítko použít opakovaně a správná odpověď cykluje přes jednotlivé položky použité v prostředí mathGrp. Všimněte si, že tlačítko pro zobrazení správných odpovědí je v případě prostředí mathGrp vytvořeno příkazem \CorrAnsButtonGrp. Za povšimnutí též stojí, že v tomto testu jsme nastavili pro odpovědi kratší textové pole příkazem \rectW. Chceme-li změnit velikost doplňovacích polí v celém dokumentu, použijeme makro \everyRespBoxMath. V našem dokumentu je nastaveno \everyRespBoxMath{\rectW{4cm}}. Metodiku přidělování bodů v otázkách v prostředí mathGrp je možno ovlivnit pomocí volitelných parametrů tohoto prostředí, například je možno dosáhnout toho, že body jsou přidělovány až po správném zodpovězení jistého minimálního počtu otázek. Příklad takového nastavení je v dokumentaci AcroTEXu v souboru grp_test.tex. 8 Náhodné řazení nabízených odpovědí Při použití volitelného parametru allowrandomize ve volání balíčku exerquiz můžeme testové otázky při zpracování LATEXem náhodně zamíchat. Všimněte si v následující ukázce použití volby random v makru \bChoices a použití nepovinné části uvozené makrem \eFreeze, která již náhodné záměně pořadí nepodléhá. Test s náhodným pořadím otázek 1. Jaká je derivace funkce xn? odpověď 1 správná odpověď 2 odpověď 3 odpověď 4 jiná odpověď Správně zodpovězené otázky: Získané body: Procento úspěšnosti: \titleQuiz{Test s náhodným pořadím otázek} \begin{quiz}{test13} \useForms \begin{questions} \item Jaká je derivace funkce $x^n$? \begin{answers}{3} \bChoices[nCols=2,random] \Ans{0} odpověď 1 \eAns \Ans{1} správná odpověď 2 \eAns \Ans{0} odpověď 3 \eAns \Ans{0} odpověď 4 \eAns \eFreeze \Ans{0} jiná odpověď \eAns 24 9 TESTY S PODROBNÝMI ŘEŠENÍMI \eChoices \end{answers} \end{questions} \end{quiz}\hspace{2mm}\eqButton[\CA{Oprava testu}]{test13}\\ \begin{tabular}{ll} Správně zodpovězené otázky:& \ScoreField{test13}\\ Získané body:& \PointsField{test13}\\ Procento úspěšnosti:& \PercentField{test13} \end{tabular} Algoritmus vytváření náhodného pořadí otázek vychází z jistého přirozeného čísla, které je zpravidla (až na výjimky popsané v tomto odstavci) určeno v okamžiku startu programu LATEXu pomocí aktuálního systémového data a času. Pro obdržení dokumentu s jiným pořadím otázek tedy stačí spustit překlad opakovaně. Protože TEXovský příkaz \time pracuje s minutami, je nutno počkat alespoň minutu. Číslo, které slouží k inicializaci generátoru náhodných čísel, je možno během překladu uložit do souboru a poté jej automaticky použít při každé následující kompilaci. Tím bude zajištěno, že „náhodné pořadí“ bude v dalších bězích programu již neměnné. Metody, jak dosáhnout této funkcionality, jsou popsány v manuálu AcroTEXu (viz kapitola 23 – Randomizing the Multiple Choices a příkazy \saveRandomSeed, \inputRandomSeed a v případě potřeby i \useRandomSeed). 9 Testy s podrobnými řešeními Pokud chceme kromě výsledku zobrazit i podrobnější postup řešení, použijeme prostředí solution. Řešení zobrazíme pomocí Shift + kliknutí levým tlačítkem myši na zelený čtvereček kolem správné odpovědi (u otázek s výběrem z nabízených možností) nebo na zeleně orámované tlačítko pro odpověď u doplňovacích otázek. 1. Kdo vytvořil TEX? (a) Knuth (b) Lamport (c) Carlisle (d) Rahtz 2. Kdo vytvořil LATEX? (a) Knuth (b) Lamport (c) Carlisle (d) Rahtz 3. Derivujte (sin2(t)) = Správně zodpovězené otázky: Získané body: Procento úspěšnosti: Zobrazení správného výsledku: 25 9 TESTY S PODROBNÝMI ŘEŠENÍMI \begin{quiz}{test14} \begin{questions} \item Kdo vytvořil \TeX? \begin{answers}[knuth]{4} \bChoices \Ans{1} Knuth \eAns \Ans{0} Lamport \eAns \Ans{0} Carlisle \eAns \Ans{0} Rahtz \eAns \eChoices \end{answers} \begin{solution} Donald Knuth je autorem \TeX{}u. \end{solution} \item Kdo vytvořil \LaTeX? \begin{answers}[lamport]{4} \bChoices \Ans{0} Knuth \eAns \Ans{1} Lamport \eAns \Ans{0} Carlisle \eAns \Ans{0} Rahtz \eAns \eChoices \end{answers} \begin{solution} Leslie Lamport je autorem \LaTeX{}u. \end{solution} \item Derivujte $(\sin^2(t))’ =$ \RespBoxMath{2*sin(t)*cos(t)}(t)[sine3]{4}{.0001}{[0,1]} \CorrAnsButton{2*sin(t)*cos(t)} \begin{solution} $$ (\sin^2(t))’= 2\sin(t)\cos(t) = \sin(2t)$$ \end{solution} \end{questions} \end{quiz}\hspace{2mm}\eqButton[\CA{Oprava testu}]{test14}\\ \begin{tabular}{ll} Správně zodpovězené otázky:& \ScoreField{test14}\\ Získané body:& \PointsField{test14}\\ Procento úspěšnosti:& \PercentField{test14}\\ Zobrazení správného výsledku:& \AnswerField{test14} \end{tabular} U otázek s výběrem nabízených možností zadáváme volitelný argument s cílem pro řešení k prostředí answers a prostředí solution použijeme ihned za prostředím answers. Po opravení indikuje zelený čtvereček kolem správné odpovědi odkaz na řešení. 26 10 DALŠÍ NASTAVENÍ A ZÁVĚREČNÉ POZNÁMKY Při použití doplňovací otázky použijeme volitelný čtvrtý parametr příkazů \RespBoxMath a \RespBoxTxt, do kterého zadáme cíl pro umístění řešení. Řešení zobrazíme pomocí Shift + kliknutí levým tlačítkem myši na tlačítko odpověď. Výsledky se automaticky umisťují na konec dokumentu, pokud je chceme umístit jinam (jako v případě tohoto dokumentu), použijeme příkaz \includequizsolutions na místě, kam chceme výsledky umístit. 10 Další nastavení a závěrečné poznámky • Příkaz \setMClabelsep{velikost} nastavuje horizontální mezeru mezi zaklikávacím políčkem (čtvereček) a textem odpovědi. Příklad: \setMClabelsep{\quad}. Původní nastavení získáme příkazem \resetMClabelsep • Vertikální mezeru mezi zadáním otázky a odpověďmi nastavíme příkazem \setlength\aboveanswersSkip{velikost}. Implicitní nastavení je \setlength\aboveanswersSkip{3pt} • Příkaz \rowsep{velikost} nastavuje vertikální mezeru mezi řádky odpovědí. Uvedeme-li \rowsep{2mm}, budou 2 mm přidány k přednastavené hodnotě 0 pt. Tuto přednastavenou hodnotu změníme příkazem \rowsepDefault{velikost}. Pokud chceme ovlivnit mezery mezi řádky odpovědí jen v jedné otázce, umístíme příkaz \rowsep{velikost} mezi \begin{answers} a \bChoices. • V testu vytvořeném v prostředí quiz uživatel nemusí odpovědět na žádnou otázku. Hned po spuštění testu může test ukončit a vyznačením oprav si zpřístupnit správné odpovědi. Je-li takové použití testu z hlediska tvůrce nežádoucí, je možné mu zabránit použitím příkazu \minQuizResp. Nastavímeli \renewcommand\minQuizResp{highThreshold}, musí uživatel před ukončením testu nejprve odpovědět na všechny otázky. Tvůrce testu může definovat vlastní funkci, která nastavuje minimální limit pro počet odpovězených otázek. Například uvedení následujícího kódu v hlavičce dokumentu způsobí, že uživatel musí před vyhodnocením testu odpovědět alespoň na polovinu otázek. \begin{insDLJS}[dljslibX]{dljslibX}{X} function onehalf(nQuestions) { var cnt=0; for ( var i=0; i< Responses.length; i++ ) { if ( typeof Responses[i]!="undefined") cnt++ } if ( 2*cnt= nQuestions); %% upravte podminku dle potreby } \end{insDLJS} \renewcommand\minQuizResp{onehalf} 27 10 DALŠÍ NASTAVENÍ A ZÁVĚREČNÉ POZNÁMKY V tomto případě pak v prostředí mathGrp stačí zodpovězení jedné části na to, aby byla otázka započítána jako zodpovězená. Návrat k původnímu nastavení zajistí příkaz \renewcommand\minQuizResp{lowThreshold}. • Správné odpovědi na všechny otázky jsou uvedeny v PDF dokumentu v podobě čitelné běžným textovým editorem. Nalezení správné odpovědi tímto způsobem je sice velmi obtížné, nikoli však nemožné. O něco snazší je nalezení správné odpovědi při použití komerčního programu Adobe Acrobat Professional (komerční program, který na rozdíl od multiplatformního a volně šiřitelného programu Adobe Reader existuje jenom na platformě Windows a kromě prohlížení PDF souborů umožňuje i editaci formulářových polí a asociovaných JavaScriptů). Proto nejsou testy vhodné například pro ostré elektronické zkoušení. 28 Řešení kvízů Řešení kvízů Řešení kvízu: Donald Knuth je autorem TEXu. Zpět na otázky Řešení kvízu: Leslie Lamport je autorem LATEXu. Zpět na otázky Řešení kvízu: (sin2 (t)) = 2 sin(t) cos(t) = sin(2t) Zpět na otázky 29 SEZNAM POUŽITÉ LITERATURY A INTERNETOVÝCH ODKAZŮ Seznam použité literatury a internetových odkazů [1] AcroTEX web page [online], [cit. 6. ledna 2010]. Dostupné na www http://www. acrotex.net/. [2] JALOVÁ N.: Testy z integrálního počtu funkcí více proměnných, bakalářská práce MU Brno, 2008. [3] KURÁŇOVÁ S.: Interactive PDF Documents in Math Education, Focused on Tests for Differential Equations. Proceedings of the 10th International Conference “Models in Developing Mathematics Education”. Dresden, Germany: University of Applied Sciences, Dresden, 2009, s. 347–352. ISBN 83-919465-9-2. [4] MAŘÍK R.: AcroWeb: Elektronické testy z matematiky [online], [cit. 14. září 2009], dostupné na www http://old.mendelu.cz/~marik/acroweb/index.html. [5] MAŘÍK R.: Interactive Mathematics [online], [cit. 19. prosince 2009], dostupné na www http://www.mendelu.cz/user/marik/kvizy/kvizy.html. [6] MAŘÍK R.: Aplikace matematiky [online], [cit. 5. listopadu 2009], dostupné na www http://www.mendelu.cz/user/marik/aplikace/aplikace.html. [7] PLCH R., ŠARMANOVÁ P.: Interaktivní 3D grafika v HTML a PDF dokumentech, Zpravodaj Československého sdružení uživatelů TEXu, Praha: Československé sdružení uživatelů TEXu, 2008, 18, 1–2, s. 76–92, ISSN 1211-6661. [8] PLCH R., ŠARMANOVÁ P.: Multimediální sbírka příkladů z Integrálního počtu funkcí více proměnných, Sborník konference Setkání učitelů matematiky všech typů a stupňů škol. 1. vydání. Plzeň : ZČU Plzeň, 2008, s. 243–246, ISBN 978-80-86843-22-3. [9] PLCH R., ŠARMANOVÁ P.: An Interactive Presentation of Maple 3D Graphics in PDF Documents, Electronic Journal of Mathematics and Technology, Mathematics and Technology, LLC, Blacksburg, 2008, vol. 2, no. 3, s. 281–290, ISSN 1933–2823. [10] SANGWIN C.: STACK: System for Teaching and Assessment using a Computer algebra Kernel [online], [cit. 7. října 2010), dostupné na www http://stack.bham.ac. uk/stack/. [11] STORY D. P.: AcroTEX eDucation Bundle [online], [cit. 15. ledna 2010], dostupné na www http://www.math.uakron.edu/~dpstory/webeq.html. 30 REJSTŘÍK Rejstřík \aboveanswersSkip, 27 allowrandomize, 24 \Ans, 6 \AnswerField, 18, 19 answers, 6, 9, 26 balík dljslib, 15, 16, 18 dljslib.sty, 16 eforms, 5, 7 exerquiz, 4, 5, 24 hyperref, 4 web, 5 \BC, 7 \bChoices, 9, 11 \CA, 7, 13 check, 12 circle, 12 complex, 18 \CorrAnsButton, 13, 15, 19 \CorrAnsButtonGrp, 24 cross, 12 \currQuiz, 18 DecimalsOnly, 16 diamond, 12 dljslib, 15, 16, 18 dljslib.sty, 16 \eAns, 9, 11 \eChoices, 9, 11 eforms, 5, 7 \eFreeze, 24 \eqButton, 18, 19 \eqPTs, 9 equations, 17 \everyCorrAnsButton, 13 \everyRespBoxMath, 24 exerquiz, 4, 5, 24 factors, 18 \hideCreditMarkup, 12 hyperref, 4 ImplMulti, 15 \includegraphics, 19 \includequizsolutions, 27 indefIntegral, 16, 17 \inputRandomSeed, 25 intervals, 18 \item, 5, 8 manswers, 9, 11 mathGrp, 22–24, 28 minipage, 6 \minQuizResp, 27 \multipartquestion, 22 \negPointsAllowed, 12 NoAddOrSub, 16 NoArithAllowed, 16 NoDivision, 16 NoExpAllowed, 16 NoProducts, 16 NoTrigAllowed, 16 NoTrigLogAllowed, 16 oQuestion, 5, 8 příkaz \aboveanswersSkip, 27 \Ans, 6 \AnswerField, 18, 19 \BC, 7 \bChoices, 9, 11 \CA, 7, 13 \CorrAnsButton, 13, 15, 19 \CorrAnsButtonGrp, 24 \currQuiz, 18 \eAns, 9, 11 \eChoices, 9, 11 \eFreeze, 24 \eqButton, 18, 19 \eqPTs, 9 \everyCorrAnsButton, 13 \everyRespBoxMath, 24 \hideCreditMarkup, 12 \includegraphics, 19 31 REJSTŘÍK \includequizsolutions, 27 \inputRandomSeed, 25 \item, 5, 8 \minQuizResp, 27 \multipartquestion, 22 \negPointsAllowed, 12 \PercentField, 18, 19 \PointsField, 18 \PTs, 9 \PTsHook, 9 \rectW, 7, 24 \resetMClabelsep, 27 \RespBoxMath, 5, 14, 15, 22, 27 \RespBoxTxt, 12, 13, 15, 22, 27 \rowsep, 12, 27 \rowsepDefault, 27 \saveRandomSeed, 25 \ScoreField, 18 \setMClabelsep, 27 \ShowCreditMarkup, 12 \sqForms, 6 \sqTurnOffAlerts, 6 \symbolchoice, 12 \text, 9 \textColor, 7 \time, 25 \titleQuiz, 20 \TU, 13 \useBeginQuizButton, 7 \useForms, 12 \useLinks, 12 \usepackage, 5 \useRandomSeed, 25 \PercentField, 18, 19 point, 18 \PointsField, 18 prostředí answers, 6, 9, 26 manswers, 9, 11 mathGrp, 22–24, 28 minipage, 6 oQuestion, 5, 8 questions, 5, 8, 9 quiz*, 12 quiz, 5, 7, 8, 27 shortquiz*, 6 shortquiz, 5, 7, 8 solution, 25, 26 \PTs, 9 \PTsHook, 9 questions, 5, 8, 9 quiz, 5, 7, 8, 27 quiz*, 12 random, 24 \rectW, 7, 24 \resetMClabelsep, 27 \RespBoxMath, 5, 14, 15, 22, 27 \RespBoxTxt, 12, 13, 15, 22, 27 \rowsep, 12, 27 \rowsepDefault, 27 \saveRandomSeed, 25 \ScoreField, 18 \setMClabelsep, 27 setSupport, 18 shortquiz, 5, 7, 8 shortquiz*, 6 \ShowCreditMarkup, 12 solution, 25, 26 \sqForms, 6 \sqTurnOffAlerts, 6 square, 12 star, 12 \symbolchoice, 12 \text, 9 \textColor, 7 \time, 25 \titleQuiz, 20 \TU, 13 unordered, 18 \useBeginQuizButton, 7 \useForms, 12 \useLinks, 12 \usepackage, 5 \useRandomSeed, 25 vectors, 17 volba DecimalsOnly, 16 ImplMulti, 15 32 REJSTŘÍK NoAddOrSub, 16 NoArithAllowed, 16 NoDivision, 16 NoExpAllowed, 16 NoProducts, 16 NoTrigAllowed, 16 NoTrigLogAllowed, 16 allowrandomize, 24 check, 12 circle, 12 complex, 18 cross, 12 diamond, 12 equations, 17 factors, 18 indefIntegral, 16, 17 intervals, 18 point, 18 random, 24 setSupport, 18 square, 12 star, 12 unordered, 18 vectors, 17 web, 5 33