Detail předmětu

Kreativní programování 3

FaVU-KREAP3Ak. rok: 2024/2025

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

čeština

Počet kreditů

2

Garant předmětu

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

KABELOVÁ, Alena a Libor DOSTÁLEK, 2008. Velký průvodce protokoly TCP/IP a systémem DNS. 5., aktualiz. vyd. Brno: Computer Press. ISBN 80-251-2236-0.
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ý
    3 ročník, letní semestr, volitelný
    3 ročník, letní semestr, volitelný
    3 ročník, letní semestr, volitelný
  • Program VUM_B bakalářský 3 ročník, letní semestr, volitelný
    3 ročník, letní semestr, volitelný
    3 ročník, letní semestr, volitelný
    3 ročník, letní semestr, volitelný
    3 ročník, letní semestr, volitelný
    3 ročník, letní semestr, volitelný
    3 ročník, letní semestr, volitelný
    3 ročník, letní semestr, volitelný
    3 ročník, letní semestr, volitelný
    3 ročník, letní semestr, volitelný
    3 ročník, letní semestr, volitelný
    3 ročník, letní semestr, volitelný
    3 ročník, letní semestr, volitelný

Typ (způsob) výuky

 

Přednáška

13 hod., povinná

Vyučující / Lektor

Osnova

  1. Úvod do kurzu, představení možných architektur pro web aplikace
  2. 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.
  3. 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ù.
  4. HTTP Requesty – seznámení s HTTP requesty, requesty GET, POST a responses, praxe na lokálním web serveru za použití modulu Tornado.
  5. 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.
  6. 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ù.
  7. - 13: Další témata dle konsenzuální dohody studujících. Konzultace a debugging semestrálních projektù.

Cvičení

13 hod., povinná

Vyučující / Lektor