Java Submission and Exam System
Automates submission, grading, and feedback for Java assignments and exams using GitLab as the central platform and a secure Flex Client exam environment.
Overview
Value: Automates submission, grading, and feedback for Java assignments and exams using GitLab as the central platform and a secure Flex Client exam environment.
Problem: GitLab features used: CI/CD for automated evaluation; repository templates for exams, projects, and homework; milestones to plan due dates; issues for bug tracking and communication; artifacts to store test reports; protected branches to prevent late commits. Flex Client: an isolated desktop exam environment usable in labs or online exams; restricts access to external programs, files, and the internet; automatically launches the GitLab repository and editor (e.g., VS Code in read‑only mode). Further information: https://git.fh-aachen.de/exam/doc
Solution: Automated execution, grading, and feedback for Java submissions and exams with GitLab as the central platform and Flex Client as the secure exam environment.
Who Benefits
Primary
-
Students
- Immediate feedback on submissions
- Consistent evaluation criteria
- Secure exam environment
- Clear grading transparency
-
Instructors
- Automated grading process
- Reduced correction time
- Standardized evaluation
- Fraud prevention during exams
Secondary
-
System Administrators
- Centralized evaluation infrastructure
- Scalable assessment system
- Reduced manual intervention
When to Use
- Java programming courses
- Automated testing requirements
- Large student cohorts
- Secure exam environments needed
- Standardized grading criteria
When Not to Use
- Non-programming subjects
- Subjective evaluation criteria
- Small class sizes with manual grading preference
- Languages other than Java without tooling support
Process
- Students receive assignment in private GitLab repository
- Implement solution using provided templates and requirements
- Submit code via Git commit before deadline
- GitLab CI/CD automatically runs tests (JUnit, Checkstyle, SonarQube)
- Results stored as artifacts and grades calculated
- Instructors review automated results and provide final grades
Requirements
People
- Students
- Java Instructors
- System Administrators
- Technical Support Staff
Data Inputs
- Assignment specifications
- Java source code
- Test cases
- Grading rubrics
Tools & Systems
- GitLab with CI/CD
- Java Development Environment
- JUnit testing framework
- Checkstyle
- SonarQube
- Flex Client
- GitLab Runner (Docker-based)
Policies & Compliance
- Academic integrity policies
- Student data privacy
- Exam security requirements
- Grade retention policies
Risks & Mitigations
-
System failure during exam deadlines
- High availability GitLab setup
- Backup evaluation systems
- Extended deadline procedures
- Real-time monitoring
-
Students bypassing Flex Client security
- Comprehensive security controls
- Activity monitoring
- Violation detection
- Backup proctoring methods
-
False positive/negative in automated testing
- Comprehensive test suites
- Manual review processes
- Appeal procedures
- Test case validation
Getting Started
To implement this use case, you need GitLab with CI/CD, Java development environment, testing frameworks, and Flex Client for secure examinations.
- Set up GitLab instance with appropriate authentication and user management
- Configure CI/CD pipelines with Java, JUnit, Checkstyle, and SonarQube
- Install and configure Flex Client for secure exam environment
- Create assignment templates and automated test suites
- Train instructors and students on system usage
FAQ
What is Flex Client and how does it work?
Flex Client is an isolated desktop application that creates a secure exam environment by restricting access to external programs and internet while providing necessary development tools.
Can students get partial credit for partially working solutions?
Yes, the automated testing system can be configured to award partial points based on passed test cases and code quality metrics.
How are late submissions handled?
GitLab's protected branches prevent commits after deadlines, but instructors can adjust permissions for exceptional cases.
Glossary
- Flex Client
- Isolated desktop application providing secure examination environment for programming assessments
- JUnit
- Unit testing framework for Java programming language
- Checkstyle
- Tool for checking Java code against coding standards and style guidelines
- SonarQube
- Platform for continuous inspection of code quality and security vulnerabilities