Skip to content

Grading Criteria

Dmitri edited this page Nov 17, 2024 · 20 revisions

The grading system evaluates student submissions across five components: ChatBot, ChatBotPlatform, ChatBotGenerator, ChatBotSimulation, and Program Quality, with a total mark allocation as follows:

  • ChatBot: 36 marks
  • ChatBotPlatform: 20 marks
  • ChatBotGenerator: 7 marks
  • ChatBotSimulation: 12 marks
  • Program Quality: 25 marks

Marks are distributed based on correctness, functionality, and adherence to specifications, using weighted test cases for key functional requirements.

Weighting Allocation

Tooomuch yap Each grading class, such as ChatBotGeneratorGrade, uses an allocateWeightings() method to assign weightings to individual tests within that component. These weightings determine how much each test case contributes to the component’s total score. For example, critical functionality tests for ChatBotGenerator—like checking valid chatbot codes and response accuracy—are given proportionally higher weight.

Feedback Generation

~ Tooo much yap but not bad explanation~ In the current grading system, feedback is simplified to "Pass" or "Fail" results. If a test case passes, it is recorded as "Pass"; if it fails, it is recorded as "Fail" in the PDF report. The feedbackMap in each grading class simply stores the marks earned per test case, making it easy to track test outcomes without custom feedback explanations.

Note: Detailed explanations for each test case are provided in the accompanying PDF to help students understand what was required for each test.

Example Test: ChatBotGeneratorTest

The ChatBotGeneratorTest class evaluates the functionality of the generateChatBotLLM method using a series of targeted test cases. Marks are allocated based on whether the method passes specific requirements, with feedback noted as "Pass" or "Fail."

Test Breakdown

  1. Static Method Check (1 Mark)
    Ensures that generateChatBotLLM is declared as a static method.
    Test: testMethodIsStatic_generateChatBotLLM()
    Mark Allocation: 1 mark for passing.

  2. Invalid Codes (1 Mark)
    Ensures invalid codes default to returning "ChatGPT-3.5." Passing this test earns 1 mark.
    Test: testGenerateChatBotLLM_ReturnsChatGPT35ForInvalidCodes()

  3. Valid Codes (5 Marks)
    Verifies that valid chatbot codes return the correct chatbot names. Each successful test case earns 1 mark.
    Tests:

    • testGenerateChatBotLLM_ReturnsLLaMaForCode1()
    • testGenerateChatBotLLM_ReturnsMistral7BForCode2()
    • testGenerateChatBotLLM_ReturnsBardForCode3()
    • testGenerateChatBotLLM_ReturnsClaudeForCode4()
    • testGenerateChatBotLLM_ReturnsSolarForCode5()

Mark Allocation Table

Test Case Marks Feedback
testMethodIsStatic_generateChatBotLLM 1 Pass/Fail
testGenerateChatBotLLM_ReturnsLLaMaForCode1 1 Pass/Fail
testGenerateChatBotLLM_ReturnsMistral7BForCode2 1 Pass/Fail
testGenerateChatBotLLM_ReturnsBardForCode3 1 Pass/Fail
testGenerateChatBotLLM_ReturnsClaudeForCode4 1 Pass/Fail
testGenerateChatBotLLM_ReturnsSolarForCode5 1 Pass/Fail
testGenerateChatBotLLM_ReturnsChatGPT35ForInvalidCodes 1 Pass/Fail
Total 7

Example of Mark Allocation and Feedback

Summarize show tabular example If the ChatBotGeneratorTest runs and the student’s submission passes four out of the five valid code tests, it would receive 4 out of the possible 5 marks for that section. The report would indicate "Pass" for each successful test and "Fail" for the one that failed. These results are mapped in feedbackMap and used to generate a PDF report showing the marks and Pass/Fail status for each test.

This approach gives students clear, objective feedback through Pass/Fail indicators, with detailed expectations in the PDF for further insight.

Clone this wiki locally