Homework Assignments
Throughout the semester, students are expected to complete homework assignments and submit them to their instructor for review. The assignment specification is the same for all students in the course or tutorial group. The instructor may provide feedback on submitted solutions (code review), discuss the solution with the student, request corrections, and iterate further on the submission.
Preparation
Create a project for homework assignments in your course group (e.g., MI-XYZ), such as homeworks or assignments.
Prepare the individual assignments there (e.g., assignment text, solution skeleton, tests, etc.), each in a separate directory.
Example Configuration
{course-code}/B172: 1
description: Student projects for {course-code} in semester {semester}.
projects:
- create_for:
students_of:
- { course: {course-code}.16, semester: {semester} } 2
users: 3
- marshsta
- brofloky
path: "%{username}" 4
student_role: developer 5
project_settings:
description: Homeworks for course {course-code}.
tag_list: [{course-code}, homeworks]
visibility: private 6
protected_branches:
master: 7
push_access_level: master
merge_access_level: master
source_project:
path: {course-code}/homeworks 8
branches:
- { src: master, sync: true } 9 10- Vytvářet projekty v podskupině
B172skupinyMI-XYZ. - Vytvořit/synchronizovat projekt pro každého studenta zapsaného na předmět BI-XYZ.16 v semestru B172…
- …a navíc pro studenty s uživatelskými jmény
marshstaabrofloky. - Studentský projekt bude mít identifikátor odpovídající uživatelskému jménu studenta.
- Assign the student the developer role in their project.
- Set the student project’s visibility to private so that other students cannot access it.
- Configure the
masterbranch in the student’s repository as protected, preventing the student from pushing to it. - Use the
MI-XYZ/homeworksrepository as the template for creating student repositories… - src: Clone the
masterbranch from theMI-XYZ/homeworksrepository into the student repository. - sync: Automatically synchronize all changes from the
masterbranch of theMI-XYZ/homeworksrepository into the student repository.
Result
Each student has their own project (repository) prepared under the MI-XYZ/B172 group (e.g., MI-XYZ/B172/brofloky).
In the master branch (the default branch), they will find the assignments provided by the instructor.
This branch is automatically updated from the assignment repository (e.g., MI-XYZ/homeworks), and students do not have permission to write to it.
All course instructors automatically have access to these student projects through the permissions assigned in the MI-XYZ group.
Assignment Submission Procedure for Students
- Clone the
MI-XYZ/B172/<username>repository to your computer, or perform a pull of themasterbranch if you have already cloned the repository. - Create a new branch from
masternamedtask-XX, whereXXis the assignment number. - Work on the assignment, commit your changes to the
task-XXbranch, and push them to the server as needed. - Once the assignment is complete, open a merge request (MR) from your
task-XXbranch into yourmasterbranch and assign your instructor as a Reviewer.
If the instructor is not satisfied with the solution and requests changes, make the requested modifications, commit them, and push them to the same branch.
Important:
Do not close the MR and create a new one for the same assignment if an MR already exists!
Doing so is completely unnecessary and would only confuse the instructor. Any commits that you push to the branch after creating the MR will automatically appear in the MR.
Assignment Review Procedure for Instructors
At https://gitlab.fit.cvut.cz/groups/MI-XYZ/B172/merge_requests you can find an overview of all merge requests ("submitted assignments" awaiting review) for the MI-XYZ course in semester B172.
You can easily filter merge requests (MRs) assigned to you as the Reviewer. Once a student assigns you as the Reviewer, GitLab will send you an email notification (unless you have disabled notifications).
- Select an MR to review.
- Click Changes and review the changes made by the student. You can add comments to any modified line.
- If you are satisfied with the submission, leave a comment for the student and close the MR by clicking Close merge request (below the comment form).
Important:
Do not merge the MR (do not click the green Merge button)!
Doing so would unnecessarily create conflicts in the master branch.