Jdi na navigaci

Domácí úkoly

Studenti mají v průběhu semestru vypracovávat (domácí) úkoly a předávat 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

Ukázka 1. student-projects.yml
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
  1. Vytvářet projekty v podskupině B172 skupiny MI-XYZ.
  2. Vytvořit/synchronizovat projekt pro každého studenta zapsaného na předmět BI-XYZ.16 v semestru B172…​
  3. …​a navíc pro studenty s uživatelskými jmény marshsta a brofloky.
  4. Studentský projekt bude mít identifikátor odpovídající uživatelskému jménu studenta.
  5. Studentovi přiřadit v jeho projektu roli developer.
  6. Nastavit viditelnost studentského projektu na „private“, aby do něj neviděli ostatní studenti.
  7. Nastavit větev master v repositáři studentského projektu jako jako protected, aby do ní student nemohl zapisovat.
  8. Použít repositář projektu MI-XYZ/homeworks jako „šablonu“ pro vytvoření studentského projektu…​
  9. src: Z repositáře MI-XYZ/homeworks naklonovat do studentského projektu větev master.
  10. sync: Automaticky synchronizovat všechny změny z větve master repositáře MI-XYZ/homeworks do studentského projektu.
Výsledek

Každý student má pod skupinou MI-XYZ/B172 připravený svůj projekt (repositář) 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

  1. Naklonujte si na svůj počítač repositář MI-XYZ/B172/<username>, nebo proveďte pull větve master, pokud již repositář máte naklonovaný.
  2. Vytvořte novou větev z větve master pojmenovanou task-XX, kde XX je číslo úkolu.
  3. Pracujte na úkolu, commitujte změny do větve task-XX a pushujte na server dle libosti.
  4. Jakmile úkol dokončíte, otevřete merge request (MR) z vaší větve task-XX do vaší větve master a přiřaďte k MR vašeho cvičícího.

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ů („odevzdáný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é právě vám (Assignee). Jakmile vás student přiřadí na MR, GitLab vám pošle notifikaci e-mailem (pokud si je nevypnete).

  1. Vyberte MR ke kontrole.
  2. Klikněte na Changes a zkontrolujte změny, které student provedl. K libovolnému změněnému řádku můžete připsat komentář.
  3. 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.