Informacije o predmetu



Predmet se u školskoj 2022/2023. godini drži kao obavezni predmet na Odseku za računarsku tehniku i informatiku, na trećoj godini osnovnih akademskih studija (VI semestar).
Ove školske godine nastava se održava uživo, u prostorijama Elektrotehničkog fakulteta. Predmetni nastavnici zadržavaju pravo da način održavanja nastave izmene u slučaju promene epidemiološke situacije ili saveta nadležnih institucija.


Sva obaveštenja, prijave i rezultati se prosleđuju na zvaničnu mejling listu predmeta 13e113pia@lists.etf.rs.
Nakon druge nedelje nastave, kada se završi procedura odabira predmeta za semestar, svi studenti koji su prijavili slušanje predmeta će biti dodati na listu sa zvaničnom studentskom e-mail adresom, o čemu će dobiti i obaveštenje.
Sva komunikacija sa predmetnim nastavnicima mora biti poslata isključivo sa zvanične studentske e-mail adrese.

Molimo studente da budu ažurni u proveri svoje elektronske pošte, naročito u danima pred najavljene aktivnosti na predmetu.

Predavanja:
ponedeljak, 10:15, sala 57 [P1]

Vežbe:
sreda, 14:15, sala 70 [V2] i petak, 10:15, sala 70 [V1]

Laboratorijske vežbe:
U toku semestra se održavaju tri laboratorijske vežbe. Pokaznog su karaktera i nije obavezno prisustvo. Pred svaku vežbu, studentima se šalje prijava za potvrdu prisustva. Nakon svih održanih grupa, tekst i rešenje laboratorisjke vežbe se mogu naći u odeljku laboratorijske vežbe.

Cilj kursa:
Upoznavanje sa osnovnim pojmovima razvoja višeslojnih Internet aplikacija baziranih na programskom jeziku Java. Biće pokazana primena najsavremenijih tehnologija za dizajn i implementaciju Internet aplikacija.
Studenti će biti osposobljeni da projektuju i razviju višeslojne Internet aplikacije potrebne složenosti koristeći moderne načine i savremene veb tehnologije. Nakon izrade projekta, studenti će biti spremni za razvoj (ne)komercijalnih Internet aplikacija.
Sadržaj kursa:
  • HTML, CSS
  • JavaScript
  • Java Servlet tehnologija
  • Java Server Faces (JSF)
  • Povezivanje sa MySQL bazom podataka iz Jave
  • Facelets
  • AJAX - Asynchronous JavaScript and XML
  • Frameworks: Spring, Hibernate ORM, Primefaces
  • Angular
  • Node


35 poena (K1) + 35 poena (K2)
Kolokvijumi predstavljaju pismeni deo ispita. Oba kolokvijuma rade se na računaru, u računarskim laboratorijama.
Uslov za uspešno položen pismeni deo ispita dat je u odeljku Polaganje ispita.
Poeni sa kolokvijuma važe jednu školsku godinu.

  • Prvi kolokvijum (K1)
    Polaže se u vreme kolokvijumskih vikenda. Obuhvata gradivo servleta i JSF tehnologije, sa obaveznim povezivanjem na MySQL bazu podataka. Na kolokvijumu se može ostvariti najviše 35 poena. Za uspešno položen kolokvijum neophodno je osvojiti najmanje 10 poena.
    Kolokvijum se može nadoknaditi u junskom i julskom ispitnom roku. U ispitnim rokovima nakon julskog, prvi kolokvijum se može raditi samo u okviru integrlanog ispita. Izlaskom na nadoknadu kolokvijuma poništavaju se prethodno osvojeni poeni.
    Izrada kolokvijuma traje 120 minuta (2h).

  • Drugi kolokvijum (K2)
    Polaže se u ispitnim rokovima. Obuhvata gradivo Angular, Node i Express tehnologija, uz povezivanje na bazu podataka. Na kolokvijumu se može ostvariti najviše 35 poena. Za uspešno položen kolokvijum neophodno je osvojiti najmanje 10 poena.
    Kolokvijum se može nadoknaditi u svim ispitnim rokovima, kao i raditi u okviru integralnog ispita. Izlaskom na nadoknadu kolokvijuma poništavaju se prethodno osvojeni poeni.
    Izrada kolokvijuma traje 120 minuta (2h).

  • Integralno polaganje (K1+K2)
    U ispitnim rokovima student može polagati oba kolokvijuma u terminu održavanja ispita. Izrada oba dela ispita traje 180 minuta (3h).
    Ukoliko se ispit polaže integralno, poništavaju se do tada osvojeni poeni sa kolokvijuma. Parcijalni poeni sa integralnog polaganja se ne računaju u narednim ispitnim rokovima. To znači da ukoliko student nije zadovoljan poenima sa integralnog polaganja i u nekom narednom roku želi da radi samo jedan kolokvijum, ne računaju mu se poeni ostvareni prilikom integralnog polaganja.


Vredi 30 poena

Projekat se radi samostalno. Izradom projekta student treba da demonstrira stečeno znanje. Potrebno je realizovati Internet aplikaciju zadate specifikacije, koristeći JSF, Facelets i Hibernate ili Angular i Node tehnologiju.

Tekst projekta se objavljuje pred junski, avgustovski i februarski ispitni rok (početkom maja, krajem jula i početkom decembra).

Projekat se može braniti u ispitnom roku u kom student ima uspešno položen pismeni deo ispita (ispunjen uslov) i ima evidentiranu prijavu preko e-Student. Student mora raditi aktuelni projekat za rok u kojem želi da pristupi odbrani. Odbrana se obično organizuje nekoliko dana nakon datuma ispita, ali se može organizovati i 2-3 dana nakon ispitnog roka, u zavisnosti od rasporeda i obaveza u ispitnom roku.

Projekat se mora odbraniti na računaru u računarskoj laboratoriji. Od studenta se očekuje da na odbrani ume samostalno da podesi okruženje za odbranu, kao i da uspešno odgovori na pitanja u vezi sa izradom projekta i evenutalne dodatne zahteve.
Predmetni nastavnici zadržavaju pravo da izvrše proveru sličnosti predatih projekata. Ukoliko se utvrdi nedozvoljena saradnja, studenti mogu biti udaljeni sa ispita i prijavljeni Disciplinskoj komisiji.


U svakom roku u kojem student izlazi na bilo koji deo ispita, on mora imati prijavu ispita, nezavisno od toga koji deo ispita polaže u tom roku (samo pismeni deo, samo projekat ili oba).
Student se na početku ispita izjašnjava na koji način želi da polaže ispit.
U tabeli ispod je dat pregled koje delove pismenog dela ispita student može da polaže po rokovima.

Rok K1 K2 I (K1+K2)
jun
jul
avgust
septembar
februar

Da bi student položio ispit, mora osvojiti najmanje 35 od 70 poena na pismenom delu ispita, od čega najmanje 10 poena na K1 i najmanje 10 poena na K2, i mora osvojiti najmanje 15 od 30 poena na projektu.
Uspešna odbrana projektnog zadatka je poslednja aktivnost na ovom predmetu.


Predmet se u školskoj 2022/2023. godini drži kao obavezni predmet na Odseku za softversko inženjerstvo, na četvrtoj godini osnovnih akademskih studija (VII semestar).
Ove školske godine nastava se održava uživo, u prostorijama Elektrotehničkog fakulteta. Predmetni nastavnici zadržavaju pravo da način održavanja nastave izmene u slučaju promene epidemiološke situacije ili saveta nadležnih institucija.


Sva obaveštenja, prijave i rezultati se prosleđuju na zvaničnu mejling listu predmeta si4pia@lists.etf.rs.
Nakon druge nedelje nastave, kada se završi procedura odabira predmeta za semestar, svi studenti koji su prijavili slušanje predmeta će biti dodati na listu sa zvaničnom studentskom e-mail adresom, o čemu će dobiti i obaveštenje.
Sva komunikacija sa predmetnim nastavnicima mora biti poslata isključivo sa zvanične studentske e-mail adrese.

Molimo studente da budu ažurni u proveri svoje elektronske pošte, naročito u danima pred najavljene aktivnosti na predmetu.

Predavanja:
ponedeljak, 16:15 - sala 308 [P1]
sreda, 14:15 - sala 314 [P2]

Vežbe:
sreda, 16:15 - sala 308 [V1]
sreda, 16:15 - sala 314 [V2]

Laboratorijske vežbe:
U toku semestra se održavaju dve laboratorijske vežbe. Pokaznog su karaktera i nije obavezno prisustvo. Pred svaku vežbu, studentima se šalje prijava za potvrdu prisustva. Nakon svih održanih grupa, tekst i rešenje laboratorisjke vežbe se mogu naći u odeljku laboratorijske vežbe.

Cilj kursa:
Upoznavanje sa osnovnim pojmovima razvoja višeslojnih Internet aplikacija baziranih na programskom jeziku Java. Biće pokazana primena najsavremenijih tehnologija za dizajn i implementaciju Internet aplikacija.
Studenti će biti osposobljeni da projektuju i razviju višeslojne Internet aplikacije potrebne složenosti koristeći moderne načine i savremene veb tehnologije. Nakon izrade projekta, studenti će biti spremni za razvoj (ne)komercijalnih Internet aplikacija.
Sadržaj kursa:
  • Java Servlet tehnologija
  • Java Server Faces (JSF)
  • Povezivanje sa MySQL bazom podataka iz Jave
  • Facelets
  • AJAX - Asynchronous JavaScript and XML
  • Frameworks: Spring, Hibernate ORM, Primefaces
  • Angular
  • Node+Express
  • Povezivanje Angular+Node aplikacije sa MongoDB i MySQL bazama podataka


35 poena (K1) + 35 poena (K2)
Kolokvijumi predstavljaju pismeni deo ispita. Oba kolokvijuma rade se na računaru, u računarskim laboratorijama.
Uslov za uspešno položen pismeni deo ispita dat je u odeljku Polaganje ispita.
Poeni sa kolokvijuma važe do kraja tekuće školske godine.

  • Prvi kolokvijum (K1)
    Polaže se u prvoj kolokvijumskoj nedelji ili po dogovoru sa studentima. Obuhvata gradivo servleta i JSF tehnologije, sa obaveznim povezivanjem na MySQL bazu podataka. Na kolokvijumu se može ostvariti najviše 35 poena. Za uspešno položen kolokvijum neophodno je osvojiti najmanje 10 poena.
    Kolokvijum se može nadoknaditi u januarskom i februarskom ispitnom roku. U ispitnim rokovima nakon februarskog, prvi kolokvijum se može raditi samo u okviru integrlanog ispita. Izlaskom na nadoknadu kolokvijuma poništavaju se prethodno osvojeni poeni.
    Izrada kolokvijuma traje 120 minuta (2h).

  • Drugi kolokvijum (K2)
    Polaže se u drugoj kolokvijumskoj nedelji ili po dogovoru sa studentima. Obuhvata gradivo Angular, Node i Express tehnologija, uz povezivanje na bazu podataka ili rad sa lokalnim podacima. Na kolokvijumu se može ostvariti najviše 35 poena. Za uspešno položen kolokvijum neophodno je osvojiti najmanje 10 poena.
    Kolokvijum se može nadoknaditi u svim ispitnim rokovima, kao i raditi u okviru integralnog ispita. Izlaskom na nadoknadu kolokvijuma poništavaju se prethodno osvojeni poeni.
    Izrada kolokvijuma traje 120 minuta (2h).

  • Integralno polaganje (K1+K2)
    U ispitnim rokovima student može polagati oba kolokvijuma u terminu održavanja ispita, pri čemu važe gore-navedena pravila u vezi sa poenima po kolokvijumu.
    Ukoliko se ispit polaže integralno, poništavaju se do tada osvojeni poeni sa kolokvijuma. Parcijalni poeni sa integralnog polaganja se ne računaju u narednim ispitnim rokovima. To znači da ukoliko student nije zadovoljan poenima sa integralnog polaganja i u nekom narednom roku želi da radi samo jedan kolokvijum, ne računaju mu se poeni ostvareni prilikom integralnog polaganja.
    Izrada oba dela ispita traje 180 minuta (3h).


Vredi 30 poena

Projekat se radi samostalno. Izradom projekta student treba da demonstrira stečeno znanje. Potrebno je realizovati Internet aplikaciju zadate specifikacije, koristeći JSF, Facelets i Hibernate ili Angular i Node tehnologiju.

Tekst projekta se objavljuje pred januarski, junski i avgustovski ispitni rok (početkom decembra, početkom maja i krajem jula).

Projekat se može braniti u svakom ispitnom roku u kojem student ima uspešno položen pismeni deo ispita (barem 10 poena na svakom od kolokvijuma i barem 35 poena u zbiru). Student mora raditi aktuelni projekat za rok u kojem želi da pristupi odbrani. Odbrana se organizuje nekoliko dana nakon datuma ispita, ali se može organizovati i 2-3 dana nakon ispitnog roka.
Obaveštenje o tačnom datumu odbrane i načinu predaje projekta prosleđuje se na mejling listu predmeta nakon datuma ispita u ispitnom roku.

Projekat se mora odbraniti na računaru u računarskoj laboratoriji. Od studenta se očekuje da na odbrani ume samostalno da podesi okruženje za odbranu, kao i da uspešno odgovori na pitanja u vezi sa izradom projekta i evenutalne dodatne zahteve.
Verzije okruženja i dostupnih tehnologija mogu se naći na predmetnom sajtu (odeljak "Literatura"). Savetuje se da student krene razvoj od datog početnog projekta koji se može naći u materijalima kursa.

Predmetni nastavnici zadržavaju pravo da izvrše proveru sličnosti predatih projekata. Ukoliko se utvrdi nedozvoljena saradnja, studenti mogu biti udaljeni sa ispita i prijavljeni Disciplinskoj komisiji.


U svakom roku u kojem student izlazi na bilo koji deo ispita, on mora imati prijavu ispita, nezavisno od toga koji deo ispita polaže u tom roku (samo pismeni deo, samo projekat ili oba).
Student se na početku ispita izjašnjava na koji način želi da polaže ispit.
U tabeli ispod je dat pregled koje delove pismenog dela ispita student može da polaže po rokovima.

Rok K1 K2 I (K1+K2)
januar
februar
jul
avgust
septembar

Da bi student položio ispit, mora osvojiti najmanje 35 od 70 poena na pismenom delu ispita, od čega najmanje 10 poena na K1 i najmanje 10 poena na K2, i mora osvojiti najmanje 15 od 30 poena na projektu.
Uspešna odbrana projektnog zadatka je poslednja aktivnost na ovom predmetu.

Nastavnici

Konsultacije odmah nakon časova ili ih zakazati putem e-pošte.

Materijali za pripremu ispita


Prezentacije sa predavanja
Uvodno predavanje [ PDF]
Java Servleti [ PDF]
Uvodno predavanje PDF
Java Server Pages (JSP) [ PDF]
Java Server Faces (JSF) [ PDF]
Asynchronous JavaScript + XML (Ajax) [PPT]
Realizacija Veb servisa [ PDF]
Angular i TypeScript [ PDF]
NodeJS [ PDF]

Materijal za auditorne vežbe
HTML (HyperText Markup Language) Uvod u HTML [ PDF]
Liste, linkovi i tabele [ PDF]
Forme, frejmovi i layout [ PDF]
HTML primeri - izvorni kod [ZIP]
CSS (Cascading Style Sheets) CSS [ PDF]
CSS primeri - izvorni kod [ ZIP]
HTML + CSS vežbe 2020 - izvorni kod [ZIP]
JavaScript JavaScript - vežbe [ PDF]
JavaScript - zbirka zadataka [ PDF]
JavaScript primeri - izvorni kod [ ZIP]
Java Servleti Java Servleti [ PDF]
Java Servleti - primeri [ ZIP]
Java Server Faces Java Server Faces [ PDF]
Uputstvo za rad
Početni projekat [ZIP]
Primeri sa vežbi - 2022/2023. [ZIP]
Facelets Facelets [PDF]
Baze podataka Korišćenje baza kod Jave [ PDF]
JDBC - kratak pregled [ PDF]
Hibernate | Ajax | Primefaces Hibernate + Primefaces + Ajax [ ZIP]
Angular Angular [ PDF]
Primeri sa vežbi - 2022/2023. [app]
Arhiva primera [app]
MEAN stack Mean [ PDF]
Početno stanje [start]
Primeri sa vežbi - 2022/2023. [app]
Arhiva primera [app]


Literatura
Zvanična literatura predmeta:
Programiranje internet aplikacija - udžbenik sa zbirkom zadataka, B.Nikolić, D.Drašković (maj 2017.)
Preporučena dodatna literatura i korisni linkovi:

Projekat


  • IR3PIA: Projektni zadatak za junsko-julski ispitni rok 2022/23. godine objavljen je OVDE [minimalni zahtevi].
  • SI4PIA: Projektni zadatak za julski ispitni rok 2022/23. godine objavljen je OVDE [minimalni zahtevi].

Prethodni rokovi


Kolokvijum 1 [SI] - novembar 2021. Tekst ispita: prva grupa | druga grupa
Baza podataka uz zadatak: petshop2021
Januarski rok 2022. Tekst ispita
Baza podataka uz zadatak (picerija2022): [SQL] | [Mongo]
Februarski rok 2022. Tekst ispita
Baza podataka uz zadatak (biblioteka2021) - [SQL] | [Angular]
Kolokvijum [IR] - april 2022. Tekst kolokvijuma
Baza podataka uz zadatak (fica2022)
Junski rok 2022. Tekst ispita
Baza podataka uz zadatak (azil2022) - [SQL] | [Mongo]
Julski rok 2022. Tekst ispita
Baza podataka uz zadatak (kasica2022) - [SQL] | [Mongo]
Avgustovski rok 2022. Tekst ispita
Baza podataka uz zadatak (munich2022) - [SQL] | [Mongo]
Kolokvijum 1 [SI] - novembar 2020. Tekst ispita: prva grupa | druga grupa
Baza podataka uz zadatak: prva grupa (radnja2020) | druga grupa (zoo2020)
Januarski rok 2021. Tekst ispita: prva grupa | druga grupa
Baza podataka uz zadatak:
  - prva grupa (palacinkarnica2021) [SQL] | [Mongo]
  - druga grupa (menjacnica2021) [SQL] | [Mongo]
Februarski rok 2021. [IR] Tekst ispita: JSF | integralno
Baza podataka uz zadatak (racuni2021) - [SQL] | [Angular]
Februarski rok 2021. [SI] Tekst ispita: Angular | JSF | integralno
Baza podataka uz zadatak:
  - Angular (mica2021) [Mongo]
  - JSF i integralno (racuni2021) [SQL] | [Mongo]
Kolokvijum [IR] - maj 2021. Tekst ispita: prva grupa | druga grupa
Baza podataka uz zadatak: prva grupa (promocije2021) | druga grupa (prodavnica2021)
Junski rok 2021. Tekst ispita
Baza podataka uz zadatak (dezurstva2021) - [SQL] | [Mongo]
Julski rok 2021. Tekst ispita
Baza podataka uz zadatak (autoskola2021) - [SQL] | [Mongo]
Kolokvijum 1 [SI] - novembar 2019. Tekst ispita
Baza podataka uz zadatak (tajanstveni2019)
Kolokvijum 2 [SI] - januar 2020. Tekst ispita
Baza podataka uz zadatak (kafeterija2020) - [SQL] | [Mongo]
Slike uz zadatak
Januarski rok 2020. Tekst ispita
Baza podataka uz zadatak (knjizaraperce)
Slike uz zadatak
Februarski rok 2020. Tekst ispita IR | SI
Baza podataka uz zadatak (lunches2020) - [SQL] | [Mongo]
[IR] Treća laboratorijska vežba - maj 2020. Tekst ispita: prva grupa | druga grupa | treća grupa
Julski rok 2020. - Angular [K1N RTI, K2N SI] Tekst ispita - IR | SI
Baza podataka uz zadatak (kruskica2020) - [mongo]
Julski rok 2020. - JSF [K2N IR] Tekst ispita
Baza podataka uz zadatak (pekaraklas) - [SQL]
Julski rok 2020. - integralni ispit [IR, SI] Tekst ispita - IR | SI
Baza podataka uz zadatak (kruskica) - [SQL] | [Mongo]
Avgustovski rok 2020. Tekst ispita - IR | SI
Baza podataka uz zadatak (covid19pia) - [SQL] | [Mongo]
Kolokvijum 1 [SI] - novembar 2018. Tekst ispita
Baza podataka uz zadatak (koncerti)
Kolokvijum 2 [SI] - januar 2019. Tekst ispita
Baza podataka uz zadatak (workers) - [SQL] | [Mongo]
Januarski rok 2019. - K1N Tekst ispita
Baza podataka uz zadatak (triatlon)
Januarski rok 2019. - K2N Tekst ispita
Baza podataka uz zadatak (rasadnik) - [SQL] | [Mongo]
Kolokvijum - April 2019. Tekst ispita - A grupa | Resenje
Tekst ispita - B grupa | Resenje
Junski rok [RTI] 2019. Tekst ispita | Resenje
Baza podataka uz zadatak (bioskop) - [SQL] | [Mongo]
Julski rok 2019. - Angular [K1N RTI, K2N SI] Tekst ispita
Baza podataka uz zadatak (zubar) - [Mongo]
Julski rok 2019. - JSF [K2N IR] Tekst ispita
Baza podataka uz zadatak (zubar) - [SQL]
Julski rok 2019. - integralni ispit [IR, SI] Tekst ispita
Baza podataka uz zadatak (zubar) - [SQL] | [Mongo]
Avgustovski rok 2019. Tekst ispita [IR]   Tekst ispita [SI]
Baza podataka uz zadatak (autoprodaja) - [SQL] | [Mongo]