Source code for pedal.core.feedback_category

"""
Categories and Kinds are special enumerations that classify the feedback
conditions and responses, respectively.
"""


[docs] class FeedbackCategory: """ An Enumeration of feedback condition categories. These categories represent distinct types of feedback conditions based on their presence within the students' submission. Notice that these explain the condition, not the feedback response (which would fall under Kind). Some are contextualized to instruction ("mistakes", "specification", "instructor") and some are generic ("syntax", "runtime", "algorithmic"). One category is also available for errors identified by the student. """ #: Grammatical and typographical errors that prevent parsing. SYNTAX = 'syntax' #: Execution errors triggered during runtime by an invalid Python operation RUNTIME = 'runtime' #: Errors that do not prevent functioning code but are generically wrong. ALGORITHMIC = 'algorithmic' #: Errors that do not prevent functioning code but are specifically wrong. MISTAKES = 'mistakes' #: Errors suggested because the code failed to meet specified behavior. SPECIFICATION = 'specification' #: Errors marked by the instructor in a one-off fashion. INSTRUCTOR = 'instructor' #: Errors marked by the students' own code, such as failing test cases. STUDENT = 'student' #: Stylistic errors that do not prevent correct behavior but are otherwise undesirable STYLE = 'style' #: Errors caused by the Pedal grading infrastructure or the surrounding infrastructure. SYSTEM = 'system' #: A category for feedback that are not actually errors, but is positive information. POSITIVE = 'positive' #: A special category recognizing a completed submission COMPLETE = 'complete' #: A category for feedback that are not actually errors, but is neutral. INSTRUCTIONS = 'instructions' #: A category for unknown feedback. Ideally, never used. UNKNOWN = 'uncategorized' ALIASES = { 'parser': SYNTAX, 'verifier': SYNTAX, 'instructor': INSTRUCTOR, 'analyzer': ALGORITHMIC }
[docs] class FeedbackKind: """ An enumeration of the possible kinds of feedback responses, based on their pedagogical role. Valence can vary between specific instances of a kind of feedback, but some tend to have a specific valence. Attributes: MISCONCEPTION (str): A description of the misconception that is believed to be in the student's mind, or perhaps the relevant concept from the material that should be associated with this. ("Variables must be initialized before they are used"). MISTAKE (str): A description of the error or bug that the student has created ("NameError on line 5: sum has not been defined"). HINT (str): A suggestion for what the student can do ("Initialize the sum variable on line 2"). CONSTRAINT (str): A description of the task requirements or task type that the student has violated ("You used a for loop, but this question expected you to use recursion."). METACOGNITIVE (str): A suggestion for more regulative strategies ("You have been working for 5 hours, perhaps it is time to take a break?"). """ # Negative MISCONCEPTION: str = "Misconception" MISTAKE = "Mistake" HINT = "Hint" CONSTRAINT = "Constraint" METACOGNITIVE = "Metacognitive" REINFORCEMENT = "Reinforcement" # Positive COMPLIMENT = "Compliment" ENCOURAGEMENT = "Encouragement" # Variable RESULT = "Result" PERFORMANCE = "Performance" # Neutral INSTRUCTIONAL = "Instructional" META = "Meta"
[docs] class FeedbackStatus: """ Enumeration of feedback status outcomes. When you create a piece of feedback, it will be either active or inactive depeneding on whether its condition was met. Alternatively, it is also possible that it triggered an exception. It may also be delayed, indicating that it has not yet been checked. """ INACTIVE = "inactive" ERROR = "error" ACTIVE = "active" DELAYED = "delayed"