Instrukcja obsługi Generatora testów

Zarys programu

Generator testów to prosta aplikacja przeglądarkowa, która umożliwia generowanie testów na podstawie przygotowanej bazy zadań.

Każdy tak utworzony test składa się z określonej przez użytkownika liczby zadań, które mogą być w zależności od potrzeb losowane z wskazanych kategorii, lub dodane ręcznie.

Podstawowy workflow aplikacji przedstawiono na poniższym diagramie.

Schemat korzystania z aplikacji. Należy zwrócić uwagę, że utworzenie baz kategorii i zadań to czynności wymagane jednorazowo (nie licząc ewentualnych poprawek)!

Prerekwizyty

Any móc wykorzystać generator do utworzenia testu, użytkownik musi umieć skompilować plik .tex (utworzony przez aplikację) do formatu PDF. Wymaga to posiadania lokalnie zainstalowanej dystrybucji LaTeXa, np. MiKTeX.

Z kolei aby móc dodawać nowe pytania do bazy, wymagana jest podstawowa znajomość składni LaTeX.

Baza działów (kategorii)

Dział (nazywany także kategorią) to podstawowa jednostka grupująca zadania w tematyczne zbiory.

Jedyne parametry, które posiada kategoria, to automatycznie nadawane id (numer w bazie) oraz nazwa. Nazwa musi posiadać między 5 a 32 znaki.

Aplikacja umożliwa dodawanie nowych kategoii, edytowanie nazwy istniejącej kategorii, oraz usuwanie istniejących kategorii. Kategorii nie można usunąć, jeśli w bazie pytań istnieją zadania do niej przyporządkowane!

Baza pytań (zadań)

Baza pytań jest „kręgosłupem” Generatora. Każde pytanie w bazie posiada następujące parametry:

  • id, czyli numer porządkowy w bazie (przydzielany automatycznie)
  • liczbę punktów,
  • typ (czy zadanie jest zamknięte, czy otwarte),
  • dział, do którego należy zadanie,
  • treść.

Pierwsze cztery parametry są intuicyjne i nie wymagają omówienia.

Treść zadania należy wprowadzić w składni LaTeX. Szablon, w którym zostaną osadzone zadania, zawiera podstawowe makra pomocne w tworzeniu testów; zostaną one omówione poniżej na gotowych przykładach zadań. Poza tym szablon zawiera typowe matematyczne paczki rozszerzeń – aby szczegółowo zapoznać się z ich listą, przejrzyj szablon dokumentu (i opcjonalnie spróbuj go skompilować).

Aplikacja nie weryfikuje ewentualnych błędów składni! Przed dodaniem zadania do bazy należy więc sprawdzić, czy jego treść poprawnie kompliluje się do pliku PDF.

Przykładowe zadanie otwarte

\zadanie[2] Oblicz granicę:

\begin{equation*}
    \lim_{n \to +\infty} frac{ (3n+2)^2 - (1-2n)^2 }{ (2n-1)^2 }.
\end{equation*}

Jako rozwiązanie podaj cyfrę jedności oraz dwie pierwsze cyfry po
przecinku rozwinięcia dziesiętnego otrzymanego wyniku.

Makro \zadanie zostanie automatycznie zastąpione przez liczbę porządkową zadania w teście. Opcjonalny parametr w makrze oznacza maksymalną liczbę punktów do zdobycia za dane zadanie. Jeśli parametr zostanie pominięty, liczba punktów nie zostanie umieszczona w teście.

Przykładowe zadanie zamknięte

\zadanie[1] Różnica $\cos^2 165\text{°} - \sin^2 165\text{°}$ jest równa:

\ABCD{$\displaystyle -1$}%
{$\displaystyle -\frac{\sqrt{3}}{2}$}%
{$\displaystyle -\frac{1}{2}$}
{$\displaystyle \frac{\sqrt{3}}{2}$}

Makro \ABCD posiada cztery wymagane parametry, które oznaczają cztery możliwe odpowiedzi w zadaniu zamkniętym.

Istnieją następujące warianty makra dla odpowiedzi zamkniętych:

  • \ABCD{1}{2}{3}{4} – cztery odpowiedzi, które zostaną umieszczone w jednej linii. To makro przeznaczone jest dla krótkich odpowiedzi, np. pojedynczych słów lub wyrażeń matematycznych.
  • \ABCDdouble{1}{2}{3}{4} – cztery odpowiedzi, które zostaną umieszczone po dwie w linii.
  • \ABCDsingle{1}{2}{3}{4} – cztery odpowiedzi, które zostaną umieszczone pojednyczo, czyli w czterech liniach. To makro przeznaczone jest dla długich odpowiedzi, np. pełnych zdań.
  • \ABCDE{1}{2}{3}{4}{5} – pięć odpowiedzi, które zostaną umieszczone w jednej linii.
  • \ABCDEsingle{1}{2}{3}{4}{5} – pięć odpowiedzi, które zostaną umieszczone pojednyczo, czyli w pięciu liniach.

Przykładowe zadanie zamknięte z dynamiczną treścią

Aplikacja pozwala na tworzenie zadań, w których treść jest zależna od losowych parametrów. Wszelkie wyrażenia zawarte pomiędzy symbolami zostaną w treści zadania zamienione przez odpowiednie wartości. (Symbol został wybrane przez analogię do $, który w składni LaTeX oznacza wyrażenie matematyczne).

\zadanie[1] Pan Wojciech kupił dywan o wymiarach
$€var1€$ metrów na €var2€ metrów. Oblicz pole tego dywanu.

\ABCD{€ans0€}{€ans1€}{€ans2€}{€ans3€}

%% VARIABLES
% var1;l:4;4.5;5
% var2;r:2;5;1
% exp1;var1*var2
% ans0;exp1
% ans1;var1+var2
% ans2;2*var1+2*var2
% ans3;var1*var1+var2*var2

(Symbol % to w składni LaTeX początek komentarza; kompilator zignoruje wszelkie znaki w linii po tym symbolu).

Wszystkie dynamiczne parametry zadania należy umieścić na jego końcu, i poprzedzić je linią %% VARIABLES. Zmienne oznaczone jako var<liczba> to zmienne niezależne. Aplikacja rozróżnia trzy typy zmiennych niezależnych, których przykłady znajdują się poniżej

  • % var1;l:1;2;3;4;5l to zmienna typu lista, gdzie parametr po prostu losowo wybierany z listy podanych wartości
  • % var2;r:2;5;0.7r to zmienna typu zakres. Trzy kolejne liczby rodzielone średnikami to: początek zakresu, koniec zakresu, oraz krok. Wylosowania liczba będzie mieścić się w zakresie oraz różnić się od początku tego zakresu o całkowitą wielokrotność kroku. Dla wartości podanych w przykładzie mogą więc zostać wylosowane liczby: 2, 2.7, 3.4, 4.1, lub 4.8
  • % var3;v:5v w przeciwieństwie do powyższych przypadków oznacza stałą wartość. Możliwość deklaracji stałej nie jest nigdy konieczna, ale niekiedy potrafi ułatwić bardziej złożone obliczenia.

Obok zmiennych niezależnych, dynamiczne zadanie może zawierać także zmienne zależne, oznaczone jako exp<liczba> lub ans<liczba>. Do parsowania tych wyrażeń i obliczania ich wartości aplikacja wykorzystuje bibliotekę NReco LambdaParser – tam należy szukać szczegółowych informacji jak budować wyrażenia.

Najważniejsza z punktu widzenia Generatora jest obsługa operacji arytmetycznych: dodawania, odejmowania, dzielenia, mnożenia, a także:

  • Sqrt(var1) – pierwiastkowania
  • Pow(var2, 3) – podnoszenia do potęgi
  • Floor(var3) & Ceil(var4) – obliczania podłogi i sufitu z liczby, czyli zaokrągleń w dół i w górę do najbliższej liczby całkowitej.

W aktualnej wersji dostępne funkcje matematyczne są ograniczone jedynie do powyższych!

ans to specjalne wyrażenia, oznaczające odpowiedzi w zadaniu zamkniętym. Nie ma wymogu ich stosowania! Jeśli jako odpowiedzi zostaną użyte „zwykłe” zmienne, lub odpowiedz zostaną podane explicite, bez użycia zmiennych dynamicznych – zadanie skompiluje się poprawnie. Użycie ans spowoduje natomiast, że wartości wyrażeń zostaną losowo przetasowane przed umieszczeniem w teście. Z tego powodu nie należy używać tych zmiennych w inny sposób niż jako odpowiedzi w zadaniu zamkniętym!

Baza testów

Widok bazy testów pozwala na podgląd i edycję testów wygenerowanych w przeszłości, a także na wygenerowanie gotowego pliku LaTeX, który następnie będzie można pobrać i skompilować.

Wszelkie akcje dostępne w tym widoku zostaną omówione przy instrukcji generowania nowego testu.

Tworzenie nowego testu

Po kliknięciu na przycisk Utwórz nowy test na stronie głównej aplikacji, użytkownik zostaje przeniesiony do kreatora nowego testu.

W kreatorze należy wskazać następujące parametry generacji:

  • liczbę zadań zamkniętych,
  • liczbę zadań otwartych,
  • tytuł testu,
  • oraz kategorie z których należy wylosować zadania.

Liczba zadań każdego typu musi być dowolną liczbą nieujemną. Gdy liczba zadań żądana przez użytkownika przekracza liczbę zadań dostępnych w bazie, do testu wybrane zostaną po prostu wszystkie zadania spełniające kryteria.

Dopuszczalne jest utworzenie testu który zawiera 0 zadań zamkniętych i 0 zadań otwartych – pozwala to na utworzenie wstępnie pustego testu, do którego użytkownik może następnie ręcznie dodać zadania z bazy.

Tytuł testu może być dowolnym niepustym tekstem.

Jeśli użytkownik nie wskaże żadnej kategorii, z której mają zostać wylosowane zadania, aplikacja będzie losować zadania z pełnej bazy pytań.


Po zatwierdzeniu parametrów generacji, aplikacja użyje ich do wylosowania zadań z bazy. W kolejnym widoku użytkownik będzie mógł zapoznać się z tymi zadaniami, i w razie potrzeby usunąć niechciane zadania lub wskazać dodatkowe zadania z bazy, które mają znaleźć się w teście.

Gdy ewentualne poprawki w liście zadań zostaną naniesione, użytkownik może rozpocząć ostateczny proces generowania pliku .tex z gotowym testem. Jeżeli zadania wybrane do testu posiadają dynamiczną treść, to wskazując odpowiednią liczbę i wciskając Utwórz wiele grup, gotowy test będzie zawierał żądaną liczbę bliźniaczych grup, w których każde dynamiczne zadanie będzie miało losowo dobrane parametry.

Wygenerowany plik .tex będzie dostępny do pobrania ze strony Pliki do pobrania, do której odnośnik znajduje się na belce tytułowej aplikacji.

Czym jest LaTeX

W telegraficznym skrócie – LaTeX to system składu tekstu WYSIWYM, przeznaczony przede wszystkim do publikacji zawierających zaawansowane symbole matematyczne.

Więcej informacji

Poglądowy artykuł czym jest LaTeX można przeczytać na polskiej Wikipedii. Bardziej szczegółowe informacje można też znaleźć w publikacji Nie za krótkie wprowadzenie do systemu LaTeX.