Code FREAK Basics for Teachers

Code FREAK allows teachers to create assignments with automatic evaluation. Evaluations are (bash) scripts that are run to analyze student code. Each script should generate a report that will be parsed by Code FREAK to give a nice overview of what students did right or wrong.

To read more about evaluations and how to configure them please check out our dedicated Evaluation page.

Tasks and Assignments

The most basic unit of work in Code FREAK is a task. Each task has a title. Everything else—​like a description, boilerplate files or evaluation—​is optional. Tasks are created in the teacher’s personal task pool. This makes it possible to re-use tasks, for example every semester/school year. The pool and its tasks are not shared with anyone else.

Tasks are language-agnostic, meaning you do not have to configure a hard-wired programming language for a task. The evaluation configuration and IDE run configuration tell Code FREAK how to handle the files submitted by students.

To make tasks available for students, the teacher has to create an assignment. An assignment has a title and one or more tasks. The tasks are added from the task pool. This creates an independent copy that can be modified without affecting the original task in the pool. Currently, assignments are shared via link. There is no built-in classroom feature to group assignments and students. Share the link with your students by using you LMS or email, etc.

Learn step by step how to create a task and assignment in our tutorial for teachers.

Running Evaluations

Once configured for a task, the evaluation can be run by students (and teachers) after they upload their results. Currently, we have no limits on how often the evaluation can be run. This might change in the future. The evaluation is also run for all submissions after the deadline for an assignment has been reached.

Evaluations are always executed in separate Docker Containers for each student. This makes evaluation super flexible and adds some form of isolation on top. Students will never be able to see others' submissions this way and cannot tamper the host’s filesystem.

If you have never worked with Docker we recommend that you read at least the basics so your understand the terms Container, Image and Registry. The official Docker documentation gives a nice overview on the Docker ecosystem.