inducer / inducer/relate

Expression evaluation (not just) for information derived from grades

Open
#620 4 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
435
Forks
124
Avg merge
5h 40m
Merged PRs (30d)
14

Description

From an email I received recently:

> 3. In the same way, we need to give the listener information about the
> entire course on any conditions, for example, "course passed," if flow1
> passed more than 50% or flow2 passed more than 75%.
> Here we need your help. Is there a notion of "passing" the course in RELATE? If
> not, how best to implement it?

Perhaps the first question is: What would you like the consequence of "passing the course" to be? For what I say below, I assume that displaying "course passed: True" (or some such) in the student grade book is sufficient. More things are conceivably doable.

Since these conditions can be (IMO) arbitrarily complex, the most convenient thing would be if we could just allow users (instructors) to write Python code to define those derived quantities (e.g. "Exams average", "course passed", "my weighted average", "homework excluding lowest"). Unfortunately, *just* running Python is out of the question, since we can't run untrusted code in a setting that can write to the database. So my "next best" suggestion would be to have a small Python-like expression evaluation thing in Relate. Fortunately, using pymbolic (which is already a dependency), there's not much work to do--that already allows parsing and evaluation of expressions. We just need a "verifier" mapper that makes sure that only "safe" operations may be performed. (I can write a prototype of this if you need guidance.)

cc @dzhuang

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.