Detail předmětu
Kreativní programování 3
FaVU-KREAP3Ak. rok: 2023/2024
Předmět prakticky seznámí studující s tvorbou webové aplikace od jejího vzniku až po spuštění online, tedy od registrace domény po deployment kódu v cloudovém prostředí či na virtuální server. V tomto procesu se studující teoreticky i prakticky seznámí se SQL i NoSQL databázemi, programováním handlerů pro GET, POST a další HTTP requesty, tvorbou HTML stránky s CSS a JavaScriptem komunikujícím s backend serverem či serverless funkcí a další.
Jazyk výuky
Počet kreditů
Garant předmětu
Zajišťuje ústav
Vstupní znalosti
Kreativní programování 1 nebo lehce pokročilejší znalost programování, základní povědomí o HTML, CSS, JavaScript.
Pravidla hodnocení a ukončení předmětu
Zápoèet je udělen za vypracování semestrálního projektu: autorské webové aplikace.
Výuka probíhá v učebnách FaVU VUT v hodinách určených rozvrhem. Účast na výuce je povinná (5 povolených neomluvených absencí). Vyšší množství absencí lze po dohodì s vyučujícími kompenzovat předložením alternativního úkolu.
Učební cíle
Cílem předmětu je studující prakticky i teoreticky seznámit s tvorbou komplexní serverless webové aplikace v celém průběhu (registrace domény – deployment) i rozsahu (backend – frontend), výuka je věnována problematice DNS, registraci domén, protokolům HTTP a HTTPS, tvorbě serverless funkcí v jazyce Python, komunikaci s databázemi, nutné znalosti HTML5, CSS a JavaScriptu, organizaci kódu, správě verzí a deploymentu kódu do produkce. Během semestru si studující projdou procesem v celé šíři, tedy od registrace domény přes doručení kódu do produkce až po její následné updatování – a to na vlastním individuálním či týmovém projektu.
Absolvováním kurzu se studující seznámí s tvorbou komplexní serverless webové aplikace v celém průběhu jejího vzniku (registrace domény – deployment) i celém jejím technologickém rozsahu (backend – frontend). Porozumí problematice DNS, registraci domén, protokolům HTTP a HTTPS, tvorbě serverless funkcí v jazyce Python, komunikaci s SQL i NoSQL databázemi, zlepší a prakticky využijí své znalosti HTML5, CSS a JavaScriptu. Naučí se organizovat kód v projektu, spravovat jeho verze za pomocí nástroje Git a sdílet jej na GitHubu či GitLabu, automatizovat jeho nasazení v cloudu či na VPS. Absolvováním získají schopnost vyvíjet vlastní webovou aplikaci, tedy kompetenci vhodnou pro další autorskou praxi v oblasti internetového umění, webdesignu či full-stack web developmentu.
Základní literatura
TARNOFF, Ben, 2022. Internet for the People: The Fight for Our Digital Future. London: Verso. ISBN 9781804290392.
Zařazení předmětu ve studijních plánech
- Program DES_B bakalářský 3 ročník, letní semestr, volitelný
- Program VUB bakalářský
obor VU-IDT , 2 ročník, letní semestr, volitelný
obor VU-IDT , 3 ročník, letní semestr, volitelný
obor VU-IDT , 4 ročník, letní semestr, volitelný
obor VU-IDT , 2 ročník, letní semestr, volitelný
obor VU-IDT , 3 ročník, letní semestr, volitelný
obor VU-IDT , 4 ročník, letní semestr, volitelný
obor VU-IDT , 2 ročník, letní semestr, volitelný
obor VU-IDT , 3 ročník, letní semestr, volitelný
obor VU-IDT , 4 ročník, letní semestr, volitelný
obor VU-D , 2 ročník, letní semestr, volitelný
obor VU-D , 3 ročník, letní semestr, volitelný
obor VU-D , 4 ročník, letní semestr, volitelný
obor VU-D , 2 ročník, letní semestr, volitelný
obor VU-D , 3 ročník, letní semestr, volitelný
obor VU-D , 4 ročník, letní semestr, volitelný
obor VU-IDT , 2 ročník, letní semestr, volitelný
obor VU-IDT , 3 ročník, letní semestr, volitelný
obor VU-IDT , 4 ročník, letní semestr, volitelný
obor VU-VT , 2 ročník, letní semestr, volitelný
obor VU-VT , 3 ročník, letní semestr, volitelný
obor VU-VT , 4 ročník, letní semestr, volitelný
obor VU-VT , 2 ročník, letní semestr, volitelný
obor VU-VT , 3 ročník, letní semestr, volitelný
obor VU-VT , 4 ročník, letní semestr, volitelný
obor VU-VT , 2 ročník, letní semestr, volitelný
obor VU-VT , 3 ročník, letní semestr, volitelný
obor VU-VT , 4 ročník, letní semestr, volitelný
obor VU-VT , 2 ročník, letní semestr, volitelný
obor VU-VT , 3 ročník, letní semestr, volitelný
obor VU-VT , 4 ročník, letní semestr, volitelný
obor VU-VT , 2 ročník, letní semestr, volitelný
obor VU-VT , 3 ročník, letní semestr, volitelný
obor VU-VT , 4 ročník, letní semestr, volitelný
obor VU-IDT , 2 ročník, letní semestr, volitelný
obor VU-IDT , 3 ročník, letní semestr, volitelný
obor VU-IDT , 4 ročník, letní semestr, volitelný
obor VU-VT , 2 ročník, letní semestr, volitelný
obor VU-VT , 3 ročník, letní semestr, volitelný
obor VU-VT , 4 ročník, letní semestr, volitelný
obor VU-IDT , 2 ročník, letní semestr, volitelný
obor VU-IDT , 3 ročník, letní semestr, volitelný
obor VU-IDT , 4 ročník, letní semestr, volitelný
obor VU-D , 2 ročník, letní semestr, volitelný
obor VU-D , 3 ročník, letní semestr, volitelný
obor VU-D , 4 ročník, letní semestr, volitelný
obor VU-IDT , 2 ročník, letní semestr, volitelný
obor VU-IDT , 3 ročník, letní semestr, volitelný
obor VU-IDT , 4 ročník, letní semestr, volitelný
Typ (způsob) výuky
Přednáška
Vyučující / Lektor
Osnova
- Úvod do kurzu, představení možných architektur pro web aplikace
- Doména – úvod problematiky IPv4/6 a DNS, registrace domény, editace DNS údajů, seznámení s Gitem, spuštění jednoduchého statického webu na vlastní doméně pomocí Github pages.
- Statický web – seznámení s frameworkem Hugo pro buildìní statického webu z templatù, lehké zopakování HTML5 a CSS, spuštění Hugo projektu na doméně, přidání automatických buildù.
- HTTP Requesty – seznámení s HTTP requesty, requesty GET, POST a responses, praxe na lokálním web serveru za použití modulu Tornado.
- Serverless funkce – tvorba serverless funkcí na AWS či DO functions, seznámení se specifiky, výhody a nevýhody řešení, deployment jednoduché funkce – vlastního API endpointu.
- Databáze – rozdíl mezi SQL, noSQL a graph databázemi. Seznámení s Python moduly SQLite a architekturou SQL, seznámení s modulem a architekturou MongoDB, pøipojení k databázi, tvorba dokumentu, přidávání záznamů, čtení, změny záznamù.
- - 13: Další témata dle konsenzuální dohody studujících. Konzultace a debugging semestrálních projektù.