Skip to content

Releases: dbosk/examgen

v4.0

10 Aug 13:53
05ed2da
Compare
Choose a tag to compare
v4.0 Pre-release
Pre-release
  • Updates documentation.
  • Changes generation from a function to a Python generator.

v3.1

08 Nov 12:19
c80c060
Compare
Choose a tag to compare

This update

  • edits the documentation and slightly restructures the code;
  • changes the usage example to use exam.mk from the makefiles submodule.

v3.0

25 Sep 09:58
e122648
Compare
Choose a tag to compare
  • Changes the default behaviour, use examgen -NCE to achieve previously default behaviour.
  • Refactors algorithm, now the code is also useful as a Python library.
  • Adds examples in the code.
  • Adds makefile (exam.mk) with usage examples.

v2.1

13 Sep 14:15
c9f294d
Compare
Choose a tag to compare

Usability update: after a question has been edited, check that it still qualifies for the exam. Adds usage example in README.

Example usage

To generate the exams I have an exam directory for the course, in this
directory I have a Makefile which says something along the lines of:

.PHONY: 2016
2016: exam-160603.pdf exam-160822.pdf exam-161024.pdf

exam-161024.pdf: exam-161024.tex miunexam
exam-160822.pdf: exam-160822.tex miunexam
exam-160603.pdf: exam-160603.tex miunexam

MODULE_QUESTION_DBs+=   ../modules/crypto/questions.tex
MODULE_QUESTION_DBs+=   ../modules/crypto/slides.tex
EXAM_TAGS+=             AnalyseNeededCryptoProperties
EXAM_TAGS+=             DesignSystemsWithCryptoProperties

# ...

new_exam_questions.tex: ${MODULE_QUESTION_DBs}
    examgen -d ${MODULE_QUESTION_DBs} -t ${EXAM_TAGS} -i > $@


INCLUDE_MIUNTEX=../miuntex      # https://github.com/dbosk/miuntex
INCLUDE_MAKEFILES=../makefiles  # https://github.com/dbosk/makefiles
include ${INCLUDE_MAKEFILES}/tex.mk
include ${INCLUDE_MAKEFILES}/miun.depend.mk

Whenever I get the reminder that I should submit new exams for a course I just
run the command make new_exam_questions.tex in that directory, that will
create questions for one exam. Then I can easily create the three exams needed
for the year by repeating the process.

What actually happens when I run that command is the following:

  • The exam generator will try to find questions in the files
    MODULE_QUESTION_DBs whose tags are subsets of the required tags
    specified in EXAM_TAGS. The exam needs enough questions to cover the
    required tags --- but no tags which are not in the required tags.
  • The -i parameter enables the interactive (or inspirational) mode.
    This opens each qualifying question in the user's favourite editor,
    set by the EDITOR environment variable. This allows you to use the
    exam generator to generate questions for inspiration: you use the
    questions as starting points when creating new ones. But if
    a question truly is the perfect question you can always use the
    question without any modification.
  • The way the questions are tagged is as follows. Each question is tagged
    with the intended learning outcomes (ILOs) it covers --- which is what we
    examine in a course! The ILOs in the course syllabus represent the least
    a student should be able to do to pass the course. So we need ILOs for the
    higher grades too to be able to grade an exam A-F. In the example above:
    AnalyseNeededCryptoProperties for E and DesignSystemsWithCryptoProperties
    for A.

v2.0

11 Sep 11:29
28ec3a6
Compare
Choose a tag to compare
  • Adds support for exercise environments, converts them to question format automatically.
  • Prints errors to stderr.
  • Adds comment-based mark-up of questions' tags.
  • Improves interactive mode by opening the question in the user's favourite editor.

v1.0

10 May 13:38
Compare
Choose a tag to compare

After some use and all minimal features there, this utility is ready for a first release. examgen.pdf is the documented source code and examgen is the Python 3 code ready for execution.

Recommended installation:

sudo wget -O /usr/local/bin/examgen https://github.com/dbosk/examgen/releases/download/v1.0/examgen
sudo chmod +x /usr/local/bin/examgen

Please provide feedback in the issue tracker.

Bugfix release

26 Jul 19:31
Compare
Choose a tag to compare
Bugfix release Pre-release
Pre-release

This release fixes #12, i.e. makes the generator actually useful. Now it requires a new question to not fully overlap previous questions, as is expected.

In this release we have also fixed #1, so the error messages are a bit easier to understand.

Feedback release

05 Jun 08:11
Compare
Choose a tag to compare
Feedback release Pre-release
Pre-release

This is a feedback release, there is no error handling in the code. It's main purpose is to test the algorithms and interface.

This release adds manual mode and fixes two bugs.

examgen.pdf: the documented source code.
examgen: the executable Python 3 code.
infosakb-150601.tex, dasak-150604.tex: example questions databases.

Please report feedback in issues.

Feedback release

04 Jun 12:00
Compare
Choose a tag to compare
Feedback release Pre-release
Pre-release

This is a feedback release, there is no error handling in the code. It's main purpose is to test the algorithms and interface.

examgen.pdf: the documented source code.
examgen: the executable Python 3 code.
infosakb-150601.tex, dasak-150604.tex: example questions databases.

Please report feedback in issues.