Skip to content

A bunch of Python 2.x code for generating nice, printable PDFs for course quizzes.

Notifications You must be signed in to change notification settings

fmi/printable-tests-generator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Генератор на тестове за принтиране

Система от стар и заплетен, но работещ Python код, преобразуваща въпроси, описани в plain-text файлове, в красиво изглеждащи и готови за отпечатване PDF документи. В процеса се използва LaTeX.

Системата генерира както тестове, така и отделен PDF с верните отговори.

Screenshot

Външни зависимости

  • Python 2.x, например 2.6
  • LaTeX

Инсталация

  1. Уверете се, че имате Python >=2.6
  2. Инсталирайте си LaTeX, барабар с пакети за кирилица.
    • Под Mac OS е лесно, на цената на 1.6GB download: http://www.tug.org/mactex/
    • Под GNU/Linux ви трябва texlive
      • В Arch пакетите са texlive-core и texlive-langcyrillic
      • В Ubuntu - texlive и texlive-lang-cyrillic
  3. Клонирайте това хранилище.

Примерен формат на въпрос

Въпросите се описват в обикновени текстови файлове. Удобно е да се групират тематично в отделни файлове. Форматът на въпросите е следният:

Какъв ще бъде резултатът от изпълнението на следния израз:
`var name = 'World!';

(function () {
    if (typeof name === 'undefined') {
        var name = 'Jack';
        console.log('Goodbye ' + name);
    } else {
        console.log('Hello ' + name);
    }
})();`

    * `Hello Jack`
    * `Hello undefined`
    + `Goodbye Jack`
    * Ще предизвика синтактична грешка
    * `Hello World`

Верните отговори се отбелязват с +, другите отговори – със символа *. Има един празен ред между текста на въпроса и отговорите, а самите отговори са идентирани едно ниво навътре. В текста на самите въпроси не трябва да има празни редове, освен ако не са във verbatim блок (заграденият в backticks). Такива блокове са блоковете с код, например - там се допускат нови редове.

Процедура за генериране на тест

За да генерирате тестове, готови за отпечатване, следвайте следните стъпки:

  1. Минете стъпките от секцията "Инсталация"

  2. Влезте в директорията на този проект.

  3. Копирайте си файла generate_test.py-example, например във файл javascript_test_1_2014.py.

  4. Редактирайте копирания файл и сменете датата и името на теста ("Програмиране с ... Тест номер ...")

  5. Шаблонът на тестовете има 30 кутийки за верни отговори. Ако ви трябват по- малко, няма нужда да променяте нищо, просто някои кутийки ще бъдат празни. Ако ви трябват повече, ще трябва да променяте кода на проекта, поради липса на съответната конфигурационна опция.

  6. Ако имате написани повече от 30 въпроса и искате да имате само 30 или по- малко в теста, трябва да промените стойността на променливата counts, дефинирана на ред 25 в generate_test.py; тя трябва да има стойност списък с по един елемент за всеки файл с въпроси; елементът показва колко въпроса от файла да се използват; може да се ползва низът 'all', или число

  7. От кореновата директория на проекта изпълнявате следната команда с Pythnon 2.x (не 3):

     python javascript_test_1_2014.py <абсолютен път до папка с въпросите> вариант1 вариант2 ...
    

    където вариант1, вариант2 и т.н. са имената на вариантите, които искате да имате.

  8. Ако всичко е минало по план, в <абсолютен път до папка с въпросите>/<вариант?> трябва да се намират файлове с вариантите, като за всеки вариант трябва да има поне <вариант?>.pdf и <вариант?>-answers.pdf.

Не забравяйте да прочетете внимателно теста (в поне един от вариантите), защото е много възможно да има проблеми на места с определени символи.

  • Винаги ползвайте пълния, а не релативен път до папката, съдържаща *.txt файловете с въпроси
  • Избягвайте символите %
  • Внимавайте с новите редове в код, преди и след въпрос, около блока с отговорите
  • Внимавайте в блока с отговорите да няма повече от един + (т.е. верен отговор)
  • Внимавайте в блока с отговорите да не сте пропуснали +-а на верния отговор
  • Може да има проблеми с ", последователности, изяждайки ги
  • Символи # извън verbatim code blocks създават проблеми

Пример

В папката examples/ има примерни въпроси и примерна конфигурация на тест. За да генерирате примерен тест с тези данни, изпълнете следните команди от папката на проекта:

cp examples/generate_test.py generate_test.py
python2.6 generate_test.py `pwd`/examples one two three

В папката examples/ трябва да има папкки one, two и three с различни варианти (пермутации) на тестовите въпроси, както и съответен PDF с отговори.

About

A bunch of Python 2.x code for generating nice, printable PDFs for course quizzes.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published