SVEUČILIŠTE U RIJECI
FAKULTET INFORMATIKE I DIGITALNIH TEHNOLOGIJA
Ulica Radmile Matejčić 2, Rijeka
Akademska godina 2022./2023.
PROGRAMIRANJE ZA WEB
OSNOVNI PODACI O PREDMETU
Naziv predmeta: Programiranje za web
Studijski program: Sveučilišni preddiplomski studij informatike
Status predmeta: obvezatan/izborni
Semestar: 5.
Bodovna vrijednost i način izvođenja nastave:
- ECTS koeficijent opterećenosti studenata: 5
- Broj sati (P+V+S): 30+30+0
Nositelj predmeta: doc. dr. sc. Vedran Miletić
E-mail: vmiletic@inf.uniri.hr
Ured: O-520
Vrijeme konzultacija: Srijedom od 14:00 do 16:00 uz prethodni dogovor e-mailom
Asistent: Milan Petrović
E-mail: milan.petrovic@inf.uniri.hr
Ured: O-522
Vrijeme konzultacija: Srijedom od 12:00 do 14:00 uz prethodni dogovor e-mailom
DETALJNI OPIS PREDMETA
Ciljevi predmeta
Usvajanje znanja o naprednim konceptima razvoja interaktivnih web aplikacija (prednostima i nedostatcima pojedinih pristupa razvoju -- proceduralni, objektno orijentirani, model-view-controller, model-view-viewmodel, uzorci dizajna), korištenja JavaScript tehnologija za izradu web aplikacija te usvajanje tehnologija i vještina potrebnih za samostalan rad web programera -- sigurnosni koncepti u web programiranju, testiranje i dokumentiranje koda, timski rad u sustavima za čuvanje verzija.
Uvjeti za upis predmeta
Odslušan predmet Uvod u programiranje za web.
Očekivani ishodi učenja za predmet
Očekuje se da nakon izvršavanja svih programom predviđenih obveza studenti budu sposobni:
I1. Izraditi bazu podataka korištenjem relacijskog sustava za upravljanje bazom podataka i poznavati mogućnosti njegove uporabe u web aplikacijama.
I2. Identificirati i analizirati različite pristupe razvoju web aplikacija.
I3. Izraditi web aplikaciju prema zadanim funkcionalnim i nefunkcionalnim zahtjevima korištenjem različitih pristupa (proceduralno, objektno orijentirano, model-view-controller, model-view-viewmodel).
I4. Identificirati prednosti i nedostatke pojedinih pristupa razvoju web aplikacija u smislu kvalitete programskog rješenja.
I5. Prepoznati pojedine uzorke dizajna uz identifikaciju prednosti implementacije pojedinog uzorka.
I6. Razviti skup testova i provoditi testiranje radi kontrole kvalitete programskog rješenja.
I7. Generirati dokumentaciju programskog rješenja.
I8. Primijeniti tehnike timskog rada u sustavima za čuvanje verzija.
Sadržaj predmeta
- Objektno modeliranje web aplikacija i objektno programiranje u skriptnim programskim jezicima za web: klase, objekti, metode; konstruktori, nasljeđivanje, nadjačavanje. Uzorci dizajna u web aplikacijama.
- Relacijski model podataka i relacijske baze podataka: definiranje strukturnih osobina tablica i baze podataka; tvorba tablica i baze podataka. Jezik SQL, tvorba sastavljenih SQL izraza (naredbi).
- Dvosmjerna komunikacija između klijenta, poslužitelja (web aplikacije), interpretera i sustava baze podataka.
- Kreiranje komunikacijskog sučelja za pristup web aplikaciji; kreiranje veze skripta i sustava baze podataka, prihvat i oblikovanje odgovora iz baze podataka. Upiti i mijenjanje sadržaja baze pomoću skriptnog programskog jezika. Skriptiranje korištenjem JavaScript tehnologija.
- Sigurnost web aplikacija.
- Pisanje i provođenje automatiziranih testova koda. Pisanje i generiranje dokumentacije koda.
- Timski rad u sustavima za čuvanje verzija.
Vrsta izvođenja nastave
- predavanja
- seminari i radionice
- vježbe
- obrazovanje na daljinu
- terenska nastava
- samostalni zadaci
- multimedija i mreža
- laboratorij
- mentorski rad
- ostalo _______
Komentari
Nastava se izvodi kombinirajući rad u učionici i računalnom laboratoriju uz primjenu sustava za udaljeno učenje. Studenti će kod upisa kolegija biti upućeni na korištenje sustava za udaljeno učenje.
Obavezna literatura (u trenutku prijave prijedloga studijskog programa)
- Kappel, G., Prýýll B., Reich, S., Retschitzegger, W. Web Engineering: The Discipline of Systematic Development of Web Applications. (Wiley, 2006).
- Fowler, M., Rice, D., Foemmel, M., Hieatt, E., Mee, R., Stafford, R. Patterns of Enterprise Application Architecture. (Addison-Wesley, 2002).
- Bendoraitis, A. Web Development with Django Cookbook, Second Edition. (Packt Publishing, 2016).
- Wiggins, A. The Twelve-Factor App. (Heroku, 2017). Dostupno na: 12factor.net
- Skripte, prezentacije i ostali materijali za učenje dostupni u e-kolegiju.
Dopunska literatura (u trenutku prijave prijedloga studijskog programa)
- Welling, L., Thompson, L. PHP and MySQL Web Development, Fifth Edition. (Addison-Wesley, 2017).
- Ullman, L. PHP and MySQL for Dynamic Web Sites: Visual QuickPro Guide, Fourth Edition. (Peachpit Press, 2011).
- Lockhart, J. Modern PHP: New Features and Good Practices, (O'Reilly Media, 2015).
- Zandstra, M. PHP Objects Patterns and Practice, Fifth Edition, (APress, 2016).
- Bergman, S., PHPUnit Pocket Guide, (O'Reilly, 2005).
- Chacon, S., Straub, B. Pro Git, Second Edition, (APress, 2014).
- Vue.js Documentation. Dostupno na: vuejs.org
- Tailwind CSS Documentation. Dostupno na: tailwindcss.com
- Headless UI. Dostupno na: headlessui.dev
- Heroicons. Dostupno na: heroicons.com
Načini praćenja kvalitete koji osiguravaju stjecanje izlaznih znanja, vještina i kompetencija
Predviđa se periodičko provođenje evaluacije s ciljem osiguranja i kontinuiranog unapređenja kvalitete nastave i studijskog programa (u okviru aktivnosti Odbora za upravljanje i unapređenje kvalitete Fakulteta informatike i digitalnih tehnologija). U zadnjem tjednu nastave provodit će se anonimna evaluacija kvalitete održane nastave od strane studenata. Provest će se i analiza uspješnosti studenata na predmetu (postotak studenata koji su položili predmet i prosjek njihovih ocjena).
Mogućnost izvođenja na stranom jeziku
Nema.
OBVEZE, PRAĆENJE RADA I VREDNOVANJE STUDENATA
VRSTA AKTIVNOSTI | ECTS | ECTS -- PRAKTIČNI RAD | ISHODI UČENJA | SPECIFIČNA AKTIVNOST | METODA PROCJENJIVANJA | BODOVI MAX. |
---|---|---|---|---|---|---|
Pohađanje nastave | 2 | 1 | I1--I8 | Prisutnost studenata i odgovaranje na pitanja nastavnika | Popisivanje (evidencija), Kahoot! | 0 |
Kontinuirana provjera znanja | 1 | 0,5 | I2, I4, I5 | Test na Merlinu | Ovisno o stupnju točnosti i potpunosti | 30 |
Praktični rad | 1 | 1 | I1, I3, I6, I7, I8 | Praktični kolokvij | Ovisno o stupnju točnosti i potpunosti | 20 |
Izrada modela i predložaka (pogleda) za web aplikaciju ili uslugu | Ovisno o stupnju točnosti i potpunosti | 20 | ||||
Završni ispit | 1 | 1 | I1--I8 | Timska izrada web aplikacije ili usluge na temelju izrađenih modela i predložaka (pogleda) te prezentacija projekta | Ovisno o stupnju točnosti i potpunosti | 30 |
UKUPNO | 5 | 3,5 | 100 |
Obveze i vrednovanje studenata
1. Pohađanje nastave
Nastava se odvija prema mješovitom modelu u kombinaciji klasične nastave u učionici i online nastave uz pomoć sustava za e-učenje prema rasporedu koji je prikazan je tablicom u nastavku. Studenti su dužni koristiti sustav za e-učenje Merlin (moodle.srce.hr/2022-2023/) gdje će se objavljivati informacije o predmetu, materijali za učenje, zadaci za vježbu, zadaci za domaće zadaće te obavijesti vezane za izvođenje nastave (putem foruma Obavijesti).
Studenti su dužni redovito pohađati nastavu, aktivno sudjelovati tijekom nastave te izvršavati aktivnosti predmeta u okviru sustava Merlin koje će nastavnici najavljivati putem foruma.
2. Kontinuirana provjera znanja
Tijekom semestra pisat će se test na Merlinu u računalnoj učionici pod nadzorom nastavnika koji će uključivati pitanja iz gradiva predavanja. Na testu će student moći skupiti maksimalno 30 bodova.
3. Praktični rad
Praktični kolokvij. Tijekom semestra pisat će se praktični kolokvij koji će uključivati zadatke iz gradiva vježbi. Na praktičnom kolokviju student će moći skupiti najviše 20 bodova.
Za stjecanje prava pristupa završnom ispitu potrebno je ostvariti barem 50% od maksimalnog broja bodova na praktičnom kolokviju.
U unaprijed danom terminu krajem semestra moguće je ispravljati praktični kolokvij, pri čemu bodovi ostvareni na ispravku zamjenjuju bodove ostvarene na kolokviju. Ispravku praktičnog kolokvija mogu, ako žele, pristupiti i studenti koji su ostvarili 50% i više bodova na kolokviju. Bodovi ostvareni na ispravku zamjenjuju bodove ostvarene na kolokviju bez obzira na vrijednost.
Izrada modela i predložaka (pogleda) za web aplikaciju ili uslugu. Tijekom semestra studenti će u grupama po dvoje ili troje odabrati temu koju će realizirati u obliku web aplikacije ili usluge.
Studenti će u grupi započeti izradu web aplikacije ili usluge i u danom roku predati aplikaciju ili uslugu koja ima izrađene modele i predloške (poglede). Predana aplikacija ili usluga može sadržavati i ostale elemente, ali oni se neće uzimati u obzir kod vrednovanja. Ovisno o točnosti i potpunosti izrađenih modela i predložaka (pogleda), studenti će pritom moći ostvariti do 20 bodova.
4. Završni ispit
Prije izlaska na završni ispit bit će potrebno izvršiti predaju web aplikacije ili usluge izrađene na temelju ranije izrađenih modela i predložaka (pogleda).
Na završnom ispitu će biti organizirana obrana usmenim putem. Cjeloviti rad se sastoji od izrade web aplikacije ili usluge na temelju ranije izrađenih modela i predložaka (pogleda), testova i pripadne dokumentacije prema zadanim funkcionalnim i nefunkcionalnim zahtjevima. Vrednovat će se točnost i potpunost predanog programskog koda i pripadne dokumentacije te opis načina rješavanja danog problema i uloge (preuzetih zadataka) pojedinih članova grupe. Na taj način studenti će moći ostvariti do 30 bodova.
Završni ispit se smatra položenim samo ako na njemu student postigne minimalno 50%-tni uspjeh (ispitni prag je 50% uspješno riješenih zadataka).
Ocjenjivanje
Kontinuiranim radom tijekom semestra na prethodno opisani način studenti mogu ostvariti najviše 70 ocjenskih bodova, a da bi mogli pristupiti završnom ispitu moraju ostvarili 50% i više bodova (minimalno 35) te zadovoljiti ostale postavljene kriterije.
Studenti koji su skupili najmanje 35 ocjenskih bodova i zadovoljiti ostale postavljene kriterije, mogu pristupiti završnom ispitu.
Ukoliko je završni ispit prolazan, skupljeni bodovi će se pribrojati prethodnima i prema ukupnom rezultatu formirati će se pripadajuća ocjena. U suprotnom, student ima pravo pristupa završnom ispitu još 2 puta (ukupno do 3 puta).
Konačna ocjena
Donosi se na osnovu zbroja svih bodova prikupljenih tijekom izvođenja nastave prema sljedećoj skali:
- A -- 90%--100% (ekvivalent: izvrstan 5)
- B -- 75%--89,9% (ekvivalent: vrlo dobar 4)
- C -- 60%--74,9% (ekvivalent: dobar 3)
- D -- 50%--59,9% (ekvivalent: dovoljan 2)
- F -- 0%--49,9% (ekvivalent: nedovoljan 1)
Ispitni rokovi
Redoviti:
- 9. veljače 2023.
- 23. veljače 2023.
Izvanredni:
- 30. ožujka 2023.
- 7. rujna 2023.
RASPORED NASTAVE -- zimski (5.) semestar ak. god. 2022./2023.
Nastava će se na predmetu odvijati u zimskom semestru prema sljedećem rasporedu:
- predavanja: četvrtkom od 12:00 do 13:30 u O-S32 i online
- vježbe: četvrtkom od 14:00 do 15:30 u O-366 i online
Tj. | Datum | Vrijeme | Prostor | Tema | Nastava | Izvođač |
---|---|---|---|---|---|---|
1. | 6. 10. 2022. | 12:00--13:30 | O-S32 | Uvodne informacije o kolegiju. Arhitekture web aplikacija: monolitna i uslužno orijentirana | P1 | doc. dr. sc. Vedran Miletić |
1. | 6. 10. 2022. | 14:00--15:30 | O-366 | Postavljanje razvojnog okruženja web aplikacija na operacijskim sustavima sličnim Unixu i Windowsima. Stvaranje projekta: organizacija, oblikovanje i dokumentiranje koda. Korištenje dokumentacije | V1 | Milan Petrović |
2. | 13. 10. 2022. | 12:00--13:30 | O-S32 | Paradigme programiranja u web aplikacijama: proceduralna, objektno orijentirana, funkcijska. Objektno modeliranje i programiranje web aplikacija. Objektno-relacijsko preslikavanje | P2 | doc. dr. sc. Vedran Miletić |
2. | 13. 10. 2022. | 14:00--15:30 | O-366 | Korištenje baze podataka. Stvaranje modela i objektno-relacijsko preslikavanje. Migracije baze podataka | V2 | Milan Petrović |
3. | 20. 10. 2022. | 12:00--13:30 | O-S32 | Uzorci dizajna u web aplikacijama: kreacijski i strukturni uzorci | P3 | doc. dr. sc. Vedran Miletić |
3. | 20. 10. 2022. | 14:00--15:30 | O-366 | Sijanje. Relacije među modelima. Upiti. Objava ponuđenih tema | V3 | Milan Petrović |
4. | 27. 10. 2022. | 12:00--13:30 | O-S32 | Uzorci dizajna u web aplikacijama: uzorci ponašanja. Uzorci model-pogled-* | P4 | doc. dr. sc. Vedran Miletić |
4. | 27. 10. 2022. | 14:00--15:30 | O-366 | Usmjeravanje i URL-i. Stvaranje pogleda kao odgovora na HTTP zahtjeve | V4 | Milan Petrović |
5. | 3. 11. 2022. | 12:00--13:30 | O-S32 | Faktori razvoja web aplikacije: kod, ovisnosti, konfiguracija, usluge, izgradnja, procesi | P5 | doc. dr. sc. Vedran Miletić |
5. | 3. 11. 2022. | 14:00--15:30 | O-366 | Generički pogledi. Sesije | V5 | Milan Petrović |
6. | 10. 11. 2022. | 12:00--13:30 | O-S32 | Faktori razvoja web aplikacije: vezivanje na vrata, konkurentnost, jednokratnost, paritet razvojne i produkcijske verzije, logging, administracijski procesi | P6 | doc. dr. sc. Vedran Miletić |
6. | 10. 11. 2022. | 14:00--15:30 | O-366 | Rok za odabir teme. Predaja obrazaca HTTP metodama GET i POST. Provjera unosa i prikaz poruka o greškama | V6 | Milan Petrović |
7. | 17. 11. 2022. | 12:00--13:30 | O-S32 | Pisanje i provođenje automatiziranih testova koda. Statička analiza koda. Pisanje i generiranje dokumentacije koda | P7 | doc. dr. sc. Vedran Miletić |
7. | 17. 11. 2022. | 14:00--15:30 | O-366 | Predlošci obrazaca. Stvaranje obrazaca iz modela | V7 | Milan Petrović |
8. | 24. 11. 2022. | 12:00--13:30 | O-359 | Timski razvoj web aplikacija i upravljanje verzijama. Kontinuirana integracija i isporuka | P8 | doc. dr. sc. Vedran Miletić |
8. | 24. 11. 2022. | 14:00--15:30 | O-366 | Autentifikacija. Testiranje | V8 | Milan Petrović |
9. | 1. 12. 2022. | 12:00--13:30 | O-S32 | Konternerizacija web aplikacija i podrška za izvođenje na različitim verzijama platforme | P9 | doc. dr. sc. Vedran Miletić |
9. | 1. 12. 2022. | 14:00--15:30 | O-366 | Izrada REST API-ja | V9 | Milan Petrović |
10. | 8. 12. 2022. | 12:00--13:30 | O-S32 | Mjerenje i tehnike poboljšanja performansi: smanjenje broja zahtjeva, kompresija, korištenje mreža za distribuciju sadržaja, DNS prefetch, HTTP/2, web fontovi | P10 | doc. dr. sc. Vedran Miletić |
10. | 8. 12. 2022. | 14:00--15:30 | O-366 | Praktični kolokvij | V10 | Milan Petrović |
11. | 15. 12. 2022. | 12:00--13:30 | O-S32 | Mjerenje i tehnike poboljšanja performansi: optimizacije relacijske baze, keširanje podataka, keširanje operacija, JIT | P11 | doc. dr. sc. Vedran Miletić |
11. | 15. 12. 2022. | 14:00--15:30 | O-366 | Korištenje REST API-ja za dohvaćanje podataka | V11 | Milan Petrović |
12. | 22. 12. 2022. | 12:00--13:30 | O-S32 | Sigurnost dinamičkih web aplikacija | P12 | doc. dr. sc. Vedran Miletić |
12. | 22. 12. 2022. | 14:00--15:30 | O-366 | Rok za predaju modela i predložaka (pogleda). Korištenje REST API-ja za slanje podataka | V12 | Milan Petrović |
13. | 12. 1. 2023. | 12:00--13:30 | O-S32 | Pregled postojećih sustava za razvoj web aplikacija | P13 | doc. dr. sc. Vedran Miletić |
13. | 12. 1. 2023. | 14:00--15:30 | O-366 | Primjer izvedbe projekta razvoja web aplikacije | V13 | Milan Petrović |
14. | 19. 1. 2023. | 12:00--13:30 | Test na Merlinu | P14 | doc. dr. sc. Vedran Miletić | |
14. | 19. 1. 2023. | 14:00--15:30 | O-366 | Primjer izvedbe projekta razvoja web usluge | V14 | Milan Petrović |
15. | 26. 1. 2023. | 12:00--13:30 | O-S32 | Prošlost, sadašnjost i budućnost weba kao platforme za razvoj aplikacija i usluga | P15 | doc. dr. sc. Vedran Miletić |
15. | 26. 1. 2023. | 14:00--15:30 | O-366 | Ispravak praktičnog kolokvija | V15 | Milan Petrović |
P -- predavanja
V -- vježbe
Napomena: Moguće su izmjene rasporeda nastave. Za nove verzije rasporeda potrebno je pratiti obavijesti u e-kolegiju.