Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Epic 2.11 AI-Resistant Assignment Generator #115

Open
32 tasks
Ahmedr275 opened this issue Nov 19, 2024 · 2 comments · Fixed by #108
Open
32 tasks

Epic 2.11 AI-Resistant Assignment Generator #115

Ahmedr275 opened this issue Nov 19, 2024 · 2 comments · Fixed by #108
Labels
type:new-feature For proposals or implementation of entirely new features or functionalities.

Comments

@Ahmedr275
Copy link
Contributor

Ahmedr275 commented Nov 19, 2024

Develop AI-Resistant Assignment Generator Tool


Description

As an educator using the Marvel AI platform, I want to generate AI-resistant assignments so that my students are challenged to engage deeply with the material without relying on AI tools to complete their work. This feature will help preserve the educational value of assignments by ensuring students develop critical thinking skills and truly understand the content.

Design

AI Resistant Assignments
AI Resistant Assignments-1


Acceptance Criteria

  • Feature Requirements:
    • Input Handling:
      • Users can specify the grade level of their students as an input parameter.
      • Users can upload 1 assignment file or URL in the following supported formats:
        • Upload (CSV, PDF, DOCX, PPT, Plain Text)
        • URLs (Youtube Video, Website, Google Sheets)
      • The system validates the uploaded assignment files to ensure they are in one of the supported formats.
    • Assignment Modification Logic:
      • The tool generates three distinct AI-resistant assignment ideas based on the uploaded assignment and input parameters.
        • Each idea retains the core educational objectives of the original assignment.
        • Each idea includes modifications that make it challenging for AI tools to generate responses.
        • The modifications are varied across the three ideas to provide distinct options for the user.
    • AI Resistance Explanation:
      • For each assignment idea, the tool provides a detailed explanation of the modifications made.
        • Explanations highlight why and how each change enhances AI resistance.
        • Reasons are clear, concise, and directly relate to limitations of common AI tools.
    • Output Format:
      • The output is in plain text format.
      • The output focuses on generating ideas for AI-resistant assignments, not full assignment texts.
      • The output includes:
        • Assignment Idea
        • Explanation of AI Resistance
  • Technical Implementation:
    • Create a new folder within app/features/ named appropriately for the tool.
    • Implement the executor function in core.py with input parameters matching the tool's functionality, including type hints.
    • Use tools.py for abstractions and helper functions to keep core.py clean and maintainable.
    • Include a metadata.json file defining the input parameters for proper validation.
    • Utilize a prompt/ folder if prompt templates are needed.
    • Implement logging and error handling as per platform standards.
  • Unit Tests:
    • Write unit tests for all functions and classes in core.py and tools.py using PyTest.
      • Tests cover:
        • Normal operation with valid inputs.
        • Edge cases and invalid inputs.
        • Error handling and exceptions.
  • Code Quality and Documentation:
    • Ensure code follows best practices for readability and maintainability.
      • Use consistent naming conventions.
      • Include type hints for all functions and methods.
      • Avoid redundant or unnecessary code.
    • Add docstrings to all functions and classes explaining their purpose and usage.
    • Provide comments within the code where necessary to explain complex logic.
  • Integration and Testing:
    • Ensure the feature integrates seamlessly with the existing Marvel AI platform.
      • The executor function is compatible with the router.py layer for request handling.
      • Inputs are validated as per the platform's requirements.
    • Test the entire feature from input handling to output generation.
      • Verify that users can input their data and receive the expected outputs without errors.

Please ensure that each of these criteria is fulfilled for the issue to be considered complete.


Sample Output

  • Input:

    • Grade Level: University

    • Assignment:

      Let’s implement a simple Neural Network using PyTorch. Dataset for the neural network is available at:
      <https://gist.githubusercontent.com/netj/8836201/raw/iris.csv>
      
      1. PyTorch implementation
      2. Forward pass
      3. Backward propagation
      
      
  • Output:

    Update to Make this Assignment AI-Resistant (Idea 1):

    Assignment Description:

    1. Implement a simple Neural Network using PyTorch.
    2. Collect your own dataset with at least 100 samples and 4 features relevant to a unique problem of interest.
    3. Perform a forward pass and backward propagation on your custom dataset.
    4. Include a detailed reflection on the data collection process, challenges faced, and solutions implemented.

    Explanation: By requiring students to collect and use their own dataset, the assignment becomes personalized and less likely to be completed solely by AI. This modification compels students to engage deeply with data collection, a task not easily replicated by generative AI.

    Update to Make this Assignment AI-Resistant (Idea 2):

    Assignment Description:

    1. Implement a simple Neural Network using PyTorch.
    2. Perform a forward pass and backward propagation on the Iris dataset.
    3. Modify the neural network architecture in a novel way (e.g., change activation functions, add layers, introduce dropout) and justify your choices.
    4. Compare the performance of the modified network with the original, presenting findings with visualizations and statistical analysis.

    Explanation: By asking for modifications and justifications, the assignment requires higher-order thinking and creativity. It becomes harder for AI to generate complete solutions involving subjective decisions and unique analyses.

    Update to Make this Assignment AI-Resistant (Idea 3):

    Assignment Description:

    1. Implement a simple Neural Network using PyTorch.
    2. Perform a forward pass and backward propagation on the Iris dataset.
    3. Collaborate with a peer to critique each other's implementations. Write a peer review report highlighting strengths, weaknesses, and improvement suggestions.
    4. Revise your neural network based on peer feedback and document the changes made.

    Explanation: Incorporating peer review adds critical analysis and iterative improvement, which AI cannot easily handle. It requires engagement with others' work and refinement based on unique feedback.

    Resources

    1. Figma prototype
    2. How to Create your Marvel AI Tool
    3. Developing Educator Tools for the Marvel AI Backend: A Step-By-Step Guide (VIDEO)
    4. Marvel AI Document Loader: Multi-File Quiz Generation Explained
@Ahmedr275 Ahmedr275 added the type:new-feature For proposals or implementation of entirely new features or functionalities. label Nov 19, 2024
@Ahmedr275 Ahmedr275 moved this to Todo in Issues board Nov 19, 2024
@Ahmedr275 Ahmedr275 changed the title [Feature] Develop AI-Resistant Assignment Generator [Feature] - Develop AI-Resistant Assignment Generator Nov 19, 2024
@Ahmedr275
Copy link
Contributor Author

#102 needs to be checked against acceptance criteria

@Ahmedr275 Ahmedr275 linked a pull request Nov 19, 2024 that will close this issue
@AaronSosaRamos AaronSosaRamos linked a pull request Nov 26, 2024 that will close this issue
@AaronSosaRamos AaronSosaRamos removed a link to a pull request Nov 26, 2024
@AaronSosaRamos
Copy link
Contributor

#108 needs to be checked against acceptance criteria

@Ahmedr275 Ahmedr275 changed the title [Feature] - Develop AI-Resistant Assignment Generator Epic 2.11 AI-Resistant Assignment Generator Dec 3, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type:new-feature For proposals or implementation of entirely new features or functionalities.
Projects
Status: Todo
Development

Successfully merging a pull request may close this issue.

2 participants