Hello there π
Learn what Divekit is and how it can help you manage programming assignments.
What is Divekit?
Divekit is a command-line tool for managing individualized programming assignments at scale. It helps educators create, distribute and evaluate programming exercises for large groups of students.
Visual overview: from origin to distributed repositories
Locally:
my-assignment/
ββ .divekit/
ββ src/$Vehicle$.java # placeholder - used by individualization
ββ test_sandbox/ # filter - excluded from student repos
ββ README.md
Gitlab: “Individualized repositories”:
gitlab.example.com/.../my-group/ # Code repositories (main target)
ββ my-assignment-4d2c0752-f400-4690-9bac-97c927e68e17/
β ββ src/Car.java # $Vehicle$ β Car
β ββ README.md
ββ my-assignment-4d243142-292b-4b95-abbb-af13f102c857/
β ββ src/Bike.java # $Vehicle$ β Bike
β ββ README.md
ββ my-assignment-8153ded6-ee91-4135-b59e-ace2625f83c3/
ββ src/Plane.java # $Vehicle$ β Plane
ββ README.md
Gitlab: “Secure pipeline” (students cannot access)
gitlab.example.com/.../my-sandbox/
ββ my-assignment-4d2c0752-f400-4690-9bac-97c927e68e17/
β ββ src/Car.java # $Vehicle$ β Car
β ββ test/
β ββ README.md
ββ my-assignment-4d243142-292b-4b95-abbb-af13f102c857/
β ββ src/Bike.java # $Vehicle$ β Bike
β ββ test/
β ββ README.md
ββ my-assignment-8153ded6-ee91-4135-b59e-ace2625f83c3/
ββ src/Plane.java # $Vehicle$ β Plane
ββ test/
ββ README.md
Key Features
- Assignment Individualization: Generate unique variations of programming assignments for each student
- Automated Distribution: Create and manage GitLab repositories for students automatically
- Test Integration: Built-in support for automated testing and evaluation
- Bulk Operations: Efficiently manage assignments for large classes
- Access Control: Manage repository access rights and permissions
Benefits
- Prevent Plagiarism: Each student receives a slightly different version of the assignment
- Save Time: Automate repetitive tasks like repository setup and access management
- Ensure Fairness: Standardized testing and evaluation across all variations
- Scale Easily: Handle large classes with minimal additional effort
Use Cases
Divekit is primarily used in educational settings where:
- Programming assignments need to be distributed to many students
- Each student should receive an individualized version
- Automated testing and evaluation is desired
- Manual administrative overhead should be minimized
The tool consolidates functionality that was previously spread across multiple separate tools into a single, easy-to-use CLI application.
Divekit is a toolkit for managing individualized programming assignments at scale.
Who needs Divekit?
Divekit is designed for different stakeholders in programming education:
Course Instructors
Primary users who:
- Create and manage programming assignments
- Need to distribute exercises to large groups of students
- Want to prevent plagiarism through individualization
- Need efficient ways to evaluate student submissions
Benefits
- Automated repository management
- Built-in individualization system
- Integrated testing capabilities
- Bulk operations for large classes
Teaching Assistants
Support staff who:
- Help manage student repositories
- Assist with assignment evaluation
- Provide technical support to students
Benefits
- Standardized repository structure
- Automated access management
- Consistent testing environment
- Clear overview of student progress
Students
End users who:
- Receive individualized assignments
- Submit their solutions through Git
- Get automated feedback on their work
Benefits
- Personal GitLab repositories
- Immediate feedback through automated tests
- Clear assignment structure
- Consistent submission process
Last modified September 11, 2025: docs(quick-start): fΓΌge visuelle Repo-Γbersicht zur EinfΓΌhrung hinzu (0f57d24)