Skip to content

Releases: dbosk/examgen

v4.0

v4.0 Pre-release
Pre-release

Choose a tag to compare

@dbosk dbosk released this 10 Aug 13:53
05ed2da
  • Updates documentation.
  • Changes generation from a function to a Python generator.

v3.1

Choose a tag to compare

@dbosk dbosk released this 08 Nov 12:19
c80c060

This update

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

v3.0

Choose a tag to compare

@dbosk dbosk released this 25 Sep 09:58
e122648
  • 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

Choose a tag to compare

@dbosk dbosk released this 13 Sep 14:15
c9f294d

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

Choose a tag to compare

@dbosk dbosk released this 11 Sep 11:29
28ec3a6
  • 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

Choose a tag to compare

@dbosk dbosk released this 10 May 13:38

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

Bugfix release Pre-release
Pre-release

Choose a tag to compare

@dbosk dbosk released this 26 Jul 19:31

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

Feedback release Pre-release
Pre-release

Choose a tag to compare

@dbosk dbosk released this 05 Jun 08:11

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

Feedback release Pre-release
Pre-release

Choose a tag to compare

@dbosk dbosk released this 04 Jun 12:00

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.