Bakalářská práce se zabývá vytvořením nástroje pro automatizovanou kontrolu školních úloh. Teoretická část obsahuje popis verzovacího systému Git a existujících platforem založených na něm. Dále se zabývá koncepty Continuous Integration (CI) a Continuous Deployment (CD) a představuje nástroje používané pro tyto procesy. Je zde také diskutováno, jakým způsobem lze zmíněné technologie využít v prostředí školního vzdělávání. Praktická část pak aplikuje tyto znalosti pro vytvoření systému, který se skládá z řídící aplikace a nástroje Jenkins pro kontrolu studentských prací. Řídící aplikace dovoluje konfiguraci skrz soubor ve formátu YAML a poskytuje grafické rozhraní formou webových stránek pro zobrazení výsledků kontrol studentských prací.
Anotace v angličtině
The bachelor thesis deals with the creation of a tool for automated checking of school assignments. The theoretical part includes a description of the Git versioning system and existing platforms based on it. It also discusses the concepts of Continuous Integration (CI) and Continuous Deployment (CD) and introduces the tools used for these processes. It also discusses how these technologies can be used in a school environment. The practical section then applies this knowledge to create a system consisting of a management application and a Jenkins instance for checking student assignment solutions. The control application allows configuration through a YAML file and provides a graphical interface in the form of a web page to display the results of student solution checks.
Git, CI, CD, Jenkins, automated evaluation of school assignments
Rozsah průvodní práce
54 s
Jazyk
CZ
Anotace
Bakalářská práce se zabývá vytvořením nástroje pro automatizovanou kontrolu školních úloh. Teoretická část obsahuje popis verzovacího systému Git a existujících platforem založených na něm. Dále se zabývá koncepty Continuous Integration (CI) a Continuous Deployment (CD) a představuje nástroje používané pro tyto procesy. Je zde také diskutováno, jakým způsobem lze zmíněné technologie využít v prostředí školního vzdělávání. Praktická část pak aplikuje tyto znalosti pro vytvoření systému, který se skládá z řídící aplikace a nástroje Jenkins pro kontrolu studentských prací. Řídící aplikace dovoluje konfiguraci skrz soubor ve formátu YAML a poskytuje grafické rozhraní formou webových stránek pro zobrazení výsledků kontrol studentských prací.
Anotace v angličtině
The bachelor thesis deals with the creation of a tool for automated checking of school assignments. The theoretical part includes a description of the Git versioning system and existing platforms based on it. It also discusses the concepts of Continuous Integration (CI) and Continuous Deployment (CD) and introduces the tools used for these processes. It also discusses how these technologies can be used in a school environment. The practical section then applies this knowledge to create a system consisting of a management application and a Jenkins instance for checking student assignment solutions. The control application allows configuration through a YAML file and provides a graphical interface in the form of a web page to display the results of student solution checks.
Git, CI, CD, Jenkins, automated evaluation of school assignments
Zásady pro vypracování
Cílem práce je vytvoření softwarového nástroje typu Continuous Integration pro podporu automatizovaného vyhodnocování školních úloh.
V teoretické části bude popsána problematika užití verzovacího systému Git ve školním prostředí pro odevzdávání programovacích úloh. Bude provedena rešerše možností samotného Gitu a dostupných platforem a nástrojů (GitHub, GitLab, ...). Dále bude představena technika Continuous Integration a možnosti její aplikace při automatizovaném vyhodnocování školních úloh.
V praktické části bude navržen a implementován nástroj (resp. rozšířen či upraven stávající CI nástroj) pro realizaci techniky Continuous Integration pro potřeby školních úloh a jejich automatizovaného vyhodnocování. Nástroj umožní konfiguraci pomocí textových souborů (JSON, YAML, apod.), kde budou specifikovány předměty, zadání úkolů, seznamy či pravidla pro nalezení konkrétních repozitářů s vypracovanými úlohami. Nástroj pak sám provede stažení vypracovaných úkolů, provede definované kroky k jejich kompilaci a otestování (resp. obecně vyhodnocení úlohy), zaznamená výsledky a případná selhání. Výsledkem bude připravený report ve formě HTML stránky či webu, kde budou přehledně zobrazeny výsledky úlohy a možnost zobrazení diffu změn provedených studenty při vypracování jednotlivých úloh proti definovanému zadání úlohy.
Zásady pro vypracování
Cílem práce je vytvoření softwarového nástroje typu Continuous Integration pro podporu automatizovaného vyhodnocování školních úloh.
V teoretické části bude popsána problematika užití verzovacího systému Git ve školním prostředí pro odevzdávání programovacích úloh. Bude provedena rešerše možností samotného Gitu a dostupných platforem a nástrojů (GitHub, GitLab, ...). Dále bude představena technika Continuous Integration a možnosti její aplikace při automatizovaném vyhodnocování školních úloh.
V praktické části bude navržen a implementován nástroj (resp. rozšířen či upraven stávající CI nástroj) pro realizaci techniky Continuous Integration pro potřeby školních úloh a jejich automatizovaného vyhodnocování. Nástroj umožní konfiguraci pomocí textových souborů (JSON, YAML, apod.), kde budou specifikovány předměty, zadání úkolů, seznamy či pravidla pro nalezení konkrétních repozitářů s vypracovanými úlohami. Nástroj pak sám provede stažení vypracovaných úkolů, provede definované kroky k jejich kompilaci a otestování (resp. obecně vyhodnocení úlohy), zaznamená výsledky a případná selhání. Výsledkem bude připravený report ve formě HTML stránky či webu, kde budou přehledně zobrazeny výsledky úlohy a možnost zobrazení diffu změn provedených studenty při vypracování jednotlivých úloh proti definovanému zadání úlohy.
Seznam doporučené literatury
CHACON, Scott. Pro Git. Praha: CZ.NIC, c2009. CZ.NIC. ISBN 978-80-904248-1-4.
SMART, John. Jenkins: The Definitive Guide. O'Reilly Media, 2011. ISBN 9781449305352.
DUVALL, Paul M., Steve MATYAS a Andrew GLOVER. Continuous Integration. Pearson Education India, 2007. ISBN 9788131722916.
Seznam doporučené literatury
CHACON, Scott. Pro Git. Praha: CZ.NIC, c2009. CZ.NIC. ISBN 978-80-904248-1-4.
SMART, John. Jenkins: The Definitive Guide. O'Reilly Media, 2011. ISBN 9781449305352.
DUVALL, Paul M., Steve MATYAS a Andrew GLOVER. Continuous Integration. Pearson Education India, 2007. ISBN 9788131722916.
Přílohy volně vložené
-
Přílohy vázané v práci
-
Převzato z knihovny
Ne
Plný text práce
Přílohy
Posudek(y) oponenta
Hodnocení vedoucího
Záznam průběhu obhajoby
Cílem práce bylo vytvoření softwarového nástroje typu Continuous Integration pro podporu automatizovaného vyhodnocování školních úloh. V teoretické části byla popsána problematika užití verzovacího systému Git ve školním prostředí pro odevzdávání programovacích úloh. Dle vedoucího práce lze systém snadno nasadit a otestovat.
Student při obhajobě názorně představil výsledky své práce a podrobně popsal celou problematiku, kterou se při tvorbě bakalářské práce zabýval.