Domácí úkoly
Studenti mají v průběhu semestru vypracovávat (domácí) úkoly a předávat je svému cvičícímu ke kontrole. Zadání úkolů je pro všechny studenty předmětu či paralelky stejné. Cvičící může poskytovat zpětnou vazbu k odevzdaným řešením (code-review), diskutovat se studentem, případně si vyžádat opravu a dále nad řešením iterovat.
Příprava
Vytvořte ve své předmětové skupině (např. MI-XYZ
) projekt pro zadání úkolů (např. homeworks
, assignments
).
V něm připravte jednotlivé úkoly (např. text zadání, kostra řešení, testy, …), každý v samostatném adresáři.
Ukázková konfigurace
MI-XYZ/B172: 1
description: Student projects for MI-XYZ in semester B172.
projects:
- create_for:
students_of:
- { course: MI-XYZ.16, semester: B172 } 2
users: 3
- marshsta
- brofloky
path: "%{username}" 4
student_role: developer 5
project_settings:
description: Homeworks for course MI-XYZ.
tag_list: [MI-XYZ, homeworks]
visibility: private 6
protected_branches:
master: 7
push_access_level: master
merge_access_level: master
source_project:
path: MI-XYZ/homeworks 8
branches:
- { src: master, sync: true } <10>9
- Vytvářet projekty v podskupině
B172
skupinyMI-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
marshsta
abrofloky
. - Studentský projekt bude mít identifikátor odpovídající uživatelskému jménu studenta.
- Studentovi přiřadit v jeho projektu roli developer.
- Nastavit viditelnost studentského projektu na „private“, aby do něj neviděli ostatní studenti.
- Nastavit větev
master
v repozitáři studentského projektu jako protected, aby do ní student nemohl zapisovat. - Použít repozitář projektu
MI-XYZ/homeworks
jako „šablonu“ pro vytvoření studentského projektu… - src: Z repozitáře
MI-XYZ/homeworks
naklonovat do studentského projektu větevmaster
. - sync: Automaticky synchronizovat všechny změny z větve
master
repozitářeMI-XYZ/homeworks
do studentského projektu.
Výsledek
Každý student má pod skupinou MI-XYZ/B172
připravený svůj projekt (repozitář) pro domácí úkoly (např. MI-XYZ/B172/brofloky
).
Ve větvi master
(výchozí větev) najde zadání úkolů od cvičícího.
Tato větev se mu automaticky aktualizuje z projektu se zadáními (např. MI-XYZ/homeworks
) a student do ní nemá práva zapisovat.
Všichni učitelé předmětu mají do těchto studentských projektů automaticky přístup (skrze práva ve skupině MI-XYZ
).
Postup „odevzdání“ úkolu pro studenta
- Naklonujte si na svůj počítač repozitář
MI-XYZ/B172/<username>
, nebo proveďte pull větvemaster
, pokud již repozitář máte naklonovaný. - Vytvořte novou větev z větve
master
pojmenovanoutask-XX
, kdeXX
je číslo úkolu. - Pracujte na úkolu, commitujte změny do větve
task-XX
a pushujte na server dle libosti. - Jakmile úkol dokončíte, otevřete merge request (MR) z vaší větve
task-XX
do vaší větvemaster
a přiřaďte v MR vašeho cvičícího do pozice Reviewer.
Pokud cvičící není s vyhotovením spokojený a požádá vás o změny, proveďte je, commitněte a pushněte do stejné větve.
Důležité:
Nezavírejte MR a nevytvářejte nový pro stejný úkol, pro který už jste MR otevřeli! Je to naprosto zbytečné a jen byste tím mátli cvičící. Všechny commity, které po vytvoření MR pushnete do dané větve, se v MR objeví.
Postup kontroly úkolu pro cvičícího
Na https://gitlab.fit.cvut.cz/groups/MI-XYZ/B172/merge_requests najdete přehled všech merge requestů („odevzdaných úkolů“ čekající na kontrolu) v předmětu MI-XYZ pro semestr B172. Můžete si snadno vyfiltrovat merge requesty (MR) přiřazené vám na kontrolu (Reviewer). Jakmile vás student přiřadí v MR do pozice Reviewer, GitLab vám pošle notifikaci e-mailem (pokud si je nevypnete).
- Vyberte MR ke kontrole.
- Klikněte na Changes a zkontrolujte změny, které student provedl. K libovolnému změněnému řádku můžete připsat komentář.
- Pokud jste s prací spokojeni, napište studentovi komentář a MR uzavřete kliknutím na Close merge request (pod formulářem pro zadání komentáře).
Důležité:
MR nemergujte (neklikejte na zelené Merge)!
Zbytečně byste tím způsobovali konflikty ve větvi master
.