- Excellent for a single script which can be copy/pasted to the editor or uploaded (CS101 type course)
### Weaker points:
- Debugger integration
- Workflow is broken up between local editing/debugging and remote testing
- Test development seems complicated (is each question a separate sandbox? How do I specify expected output automatically? How do I handle more complicated datastructures like pandas dataframes?)
### Unclear to me how to:
- Manage exercise code in a package (i.e. several interdependent files)
- What if students want to write 3 files instead of 1 to solve a problem?
- Let students install 3rd party packages (tensorflow etc.) to solve problem
- Manage tests which are very similar (test different functions with the same cases)
- Synchronize many tests with a local repo which may change
- I just don’t see this scaling to a realistic scenario
## Unitgrade:
### Stronger points
- Based on unittests framework
- Student exercises look like regular code
- Full debugger integration
- “If your code runs the test runs”
- Test code can be automatically refactored
- Automatic generation of expected output
- Class-based tests allow code sharing (4 complete tests for 2 questions is 43 lines of code total)
### Weaker points
- Security model based on local execution + obfuscation + source code analysis
- Having student results in a browser is cool (but could be replicated)