Giter Club home page Giter Club logo

gradethispython's Introduction

ARCHIVED

This repo is now archived. It now lives in pygradethis (under R/).

lifecycle

gradethispython

gradethispython is a package that is in development for Python exercise checking in learnr. It is designed to mirror the functionalities of gradethis.

You can install it with:

# install.packages("remotes")
remotes::install_github("rstudio/gradethis")

Currently, it supports output checking and basic static code checking (ast analysis), using gradethis-like feedback messages when output or code is incorrect.

For exercise grading, we wrap a Python library called pygradethis, which can either be used with this gradethispython R wrapper package, or by itself making it accessible for general Python grading use. At a minimum, we will mirror existing {gradethis} functionality but may provide more if we find Python specific grading needs. This will also simplify maintenance by allowing R issues to be opened on this R package, while Python issues to be opened on the Python repository.

gradethispython's People

Contributors

nischalshrestha avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

gradethispython's Issues

Add tests

Tests for this package will simply be testing that the wrapper py_grade_learnr works. Python testing will eventually be added to a Python package. Things to consider:

  • data type translations are good
  • returns the right graded results

Update Readme about opening R vs Python issues

We were thinking it might be good to separate some issues for R and some for the pygradethis library. We might want to still clarify this since certain issues might only make sense in one package or the other.

Make classes out of results

There are some data structures that "require" an associated class. The R wrapper py_grade_learnr will have to handle this because reticulate will not likely be able to properly translate a Python class.

As a priority, let's make sure the final returned structure to learnr at least reflects newest gradethis for consistency. It isn't clear whether the class attribute is actually used beyond testing purposes.

Tasks:

  • grader_graded here

The class here might only be used in gradethis internally, so it may not be necessary.

structure(
    list(message = message %||% "", correct = correct),
    class = "grader_graded"
)
  • grader_feedback here

This class is definitely more important for learnr.

structure(
    list(
      message = grade$message, 
      correct = grade$correct, 
      type = type, 
      location = match.arg(location)
    ),
    class = "grader_feedback"
)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.