User Guide
Comprehensive guide to using EiplGrader effectively for grading “Explain in Plain Language” questions.
Guide Sections
📖 Basic Usage
Learn the core concepts and workflows for using EiplGrader.
- Understanding the two-step process
- Working with CodeGenerator and CodeTester
- Generation types (CGBG and redef)
- Common workflows and patterns
🚀 Advanced Features
Explore sophisticated capabilities for complex grading scenarios.
- Multiple function variants
- Code segmentation for detailed feedback
- In-place operation testing
- Performance optimization
📝 Test Case Format
Master the test case format for all supported languages.
- Dynamic language format (Python, JavaScript)
- Static language format (Java, C++, Go, etc.)
- Type inference vs explicit types
- Complex test scenarios
🌍 Language Support
Detailed information about each supported language.
- Complete feature matrix
- Language-specific capabilities
- Type system requirements
- Performance characteristics
Run EiplGrader securely in containerized environments.
Security benefits
- Batch processing
- Kubernetes deployment
⚠️ Error Handling
Understand and resolve common errors.
- Error categories and solutions
- Language-specific issues
- Debugging strategies
- Best practices
Learning Path
For Beginners
- Start with Basic Usage
- Review Test Case Format
- Explore your language in Language Support
For Advanced Users
Dive into Advanced Features
Master Error Handling patterns
For System Administrators
- Review security in Error Handling
- Understand scaling options
Key Concepts
Generation Types
- CGBG: Code Generation Based Grading - from natural language
- Redef: Function Redefinition - from specifications
Test Modes
- Mode 0: Normal return value testing (default)
- Mode 1: In-place modification testing
- Mode 2: Both modification and return testing
Type Systems
- Dynamic: Python, JavaScript (automatic type inference)
- Static: Java, C++, C, Go, Haskell (explicit types required)
Best Practices
- Clear Descriptions: Provide specific, unambiguous natural language descriptions
- Comprehensive Testing: Include edge cases and boundary conditions
- Appropriate Types: Use language-appropriate type annotations
- Error Recovery: Implement retry strategies for robustness
Ready to dive in? Start with Basic Usage or jump to any section that interests you!