Informacije o predmetu



Predmet se u školskoj 2018/2019. godini drži kao obavezni predmet na Odseku za računarsku tehniku i informatiku, na trećoj godini osnovnih akademskih studija (VI semestar).


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, 14:15, @učionica 57 [P1]

Vežbe:
sreda, 14:15, @učionica 70 [V2] i petak, 10:15 @učionica 70 [V1]

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:
  • HTML, CSS
  • JavaScript
  • Angular
  • 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


30 poena (K1) + 40 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.

  • Prvi kolokvijum (K1)
    Polaže se u vreme kolokvijumskih vikenda. Obuhvata tehnologije HTML/HTML5, CSS, JavaScript, Angular, uz rad sa lokalnim podacima (localStorage). Na kolokvijumu se može ostvariti najviše 30 poena.
    Kolokvijum se može nadoknaditi u junskom i julskom ispitnom roku. U ispitnim rokvima 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 servleta i JSF tehnologije, sa obaveznim povezivanjem na MySQL bazu podataka. Na kolokvijumu se može ostvariti najviše 40 poena. Za uspešno položen kolokvijum neophodno je osvojiti najmanje 10 poena.
    Kolokvijum se može polagati u svim ispitnim rokovima, kao i raditi u okviru integralnog ispita. Ponovnim izlaskom na kolokvijum 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 210 minuta (3.5h).
    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 svakom ispitnom roku u kojem student ima uspešno položen pismeni deo ispita. 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.

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 2019/2020. godini drži kao obavezni predmet na Odseku za softversko inženjerstvo, na četvrtoj godini osnovnih akademskih studija (VII semestar).


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, 14:15, @učionica 308 [P1] i sreda, 14:15, @učionica 314 [P2]

Vežbe:
sreda, 16:15, @učionica 308 [V1] i @učionica 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.

  • Prvi kolokvijum (K1)
    Polaže se u prvoj kolokvijumskoj nedelji. 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 rokvima 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. 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. Izrada oba dela ispita traje 210 minuta (3.5h).
    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 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. 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.

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)
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]
JSF 2.0 [ PDF]
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]
JavaScript JavaScript - vežbe [ PDF]
JavaScript - zbirka zadataka [ PDF]
JavaScript primeri - izvorni kod [ ZIP]
Java Servleti Java Servleti [ PDF]
Java Servleti - primeri (1.deo) [ ZIP]
Java Servleti - primeri (2.deo) [ ZIP]
Java Server Faces JSF 2.0 - Primeri sa vežbi - maj 2017. [ ZIP]
Primer sa bibliotekom - izvorni kod [ ZIP]
Primer sa bibliotekom - libraries[ ZIP]
Primer sa bibliotekom - skript za bazu[ ZIP]
Facelets Facelets [PDF]
AJAX Primeri sa Ajaxom - 1.deo[ ZIP]
Primeri sa Ajaxom - 2.deo[ ZIP]
Baze podataka Korišćenje baza kod Jave [ PDF]
MySQL Connector JAR [ JAR]
Hibernate Hibernate + Ajax [ ZIP]
MEAN stack MEAN [ 08.01.2019. ZIP]

Laboratorijske vežbe
Računarska tehnika i informatika Softversko inženjerstvo
Prva laboratorijska vežba Angular JSF

Tekst i izvorni kod biće objavljeni ovde nakon laboratorijske vežbe.

Druga laboratorijska vežba JSF Angular+Node

Tekst i izvorni kod biće objavljeni ovde nakon laboratorijske vežbe.


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

Projekat



Prethodni rokovi


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]
Avgust 2019. Tekst ispita [IR]   Tekst ispita [SI]
Baza podataka uz zadatak (autoprodaja) - [SQL] [Mongo]