Dozeloc is a teaching tool for the local and automated checking of Python programming exercises. It allows students to select exercises and run unit tests on their machine with little to no setup by just running a python script that opens a minimalistic and intuitive GUI.
- Make sure you have Python 3.8 or higher installed on your operating system. Also ensure that this is a full python installation that includes the
tkinterstandard library. You might have to install a package calledpython-tkorpython3-tkif Dozeloc complains that it can't findtkininter. - Download the
dozeloc-X.Y.Z+N.zipfrom the latest release. - Extract the ZIP archive.
- Execute the file
dozeloc.pywith Python, for example from a terminal withpython3 dozeloc.py.
This will bring up the following GUI:
You can specify an exercise folder to use either in settings.json or by calling python3 dozeloc.py path/to/exercise/folder.
The exercise folders must have the following structure where code formatting indicates fixed names and normal formatting indicates names that can change to your liking:
- nameOfFirstExercise
test- nameOfUnittest.py
- nameOfOtherUnittest.py
- exerciseDescription.md
- nameOfSecondExercise
test- nameOfUnittest.py
- fileThatStudentsHaveToParse.csv
- secondExerciseDescription.md
- ...
The unit test files should contain unit tests written with the module unittest.
The release version of Dozeloc comes with a set of English exercises exported from exercise-heap. If you want exercises in a different language (only German is currently available), you can get them by cloning the exercise-heap repo and calling the export script:
git clone https://github.com/CSchoel/exercise-heap.git
python exercise-heap/scripts/export/export_dozeloc.py -l de-DE -o ./exercises
python dozeloc.py exercisesDozeloc does not require any packages outside the Python standard library.
However, some distributions (including Ubuntu) do not install the full standard library but leave out the tkinter module.
In these cases you need to install the additional package python-tk or python3-tk.
