Osnove programskog jezika Java

Opis predmeta

Java kao programski jezik. Java kao strojno neovisna platforma. Razredi i objekti - nasljeđivanje, polimorfizam, enkapsulacija, skrivanje. Java kolekcije - skupovi, liste, stabla, stogovi, redovi, mape. Java Generics. Višedretvenost i višedretvene aplikacije. Problemi sinkronizacije i sinkronizacijski mehanizmi (muteksi, semafori, barijere). Izrada aplikacija s grafičkim korisničkim sučeljem: AWT i Swing; uporaba postojećih i razvoj vlastitih komponenti. MVC paradigma. Razvoj tjeran testovima (Test Driven Development). Rad s datotekama i datotečnim sustavom. Rad s podatkovnim slijedovima (streams). Raspodijeljene aplikacije (paket java.net). Uporaba UDP i TCP protokola. HTTP protokol. Razvoj Web aplikacija. Tehnologije Java Servlet i Java Server Pages (JSP). Web formulari. Apache Tomcat. Sigurnost u Web aplikacijama. Dodatne tehnologije: ANT, Hibernate, MySQL. Rad s bazama podataka. Preslikavanje objekata u relacije (O/R mapping).

Opće kompetencije

Studenti će moći razvijati samostalne (desktop) aplikacije kao i web aplikacije uporabom programskog jezika Java. Znat će koristiti ugrađene kolekcije podataka, raditi s datotekama, razviti korisničko sučelje te iskoristiti višedretvenost. Moći će napisati distribuirane aplikacije koje komuniciraju putem mreže. Znat će povezati program s relacijskom bazom podataka te koristiti O/R podsustav. Razumjet će kako rade web aplikacije te kako se pišu.

Ishodi učenja

  1. kreirati programe pisane u programskom jeziku Java
  2. koristiti Javin okvir kolekcija za organizaciju podataka te raditi s datotekama
  3. razviti korisničko sučelje uporabom tehnologije Swing
  4. primijeniti višedretvenost
  5. povezati aplikaciju s relacijskom bazom podataka te koristiti O/R podsustav
  6. dizajnirati web poslužitelj te koristiti tehnologije servleta i JSP-a za izgradnju web aplikacija
  7. razviti distribuirane aplikacije koje komuniciraju putem mreže računala

Oblici nastave

Predavanja

Održavaju se u računalnim laboratorijima pri čemu studenti mogu isprobavati primjere koji se rade kao i rješavati zadatke.

Provjere znanja

Studenti će dobiti niz zadataka koje trebaju rješavati samostalno u okviru redovnih domaćih zadaća. Na kraju se zadaje samostalni studentski projekt koji je također uvjet.

Tjedni plan nastave

  1. Uvod. Java kao jezik, Java kao platforma. Prvi program
  2. Razredi i objekti. Reference
  3. Razvoj temeljen na testovima
  4. Java kolekcije (1)
  5. Rad s datotekama
  6. Java kolekcije (2)
  7. Višedretvene aplikacije
  8. Swing (1)
  9. Swing (2)
  10. Distribuirane aplikacije. java.net paket
  11. Razvoj Web aplikacija.
  12. Web formulari. Tomcat. Sigurnost u Web aplikacijama.
  13. Dodatne tehnologije (ANT, Hibernate, MySQL)

Studijski programi

Automatika -> Elektrotehnika i informacijska tehnologija (Profil)

Elektrotehnički sustavi i tehnologija -> Elektrotehnika i informacijska tehnologija (Profil)

Elektrotehnika i informacijska tehnologija -> Elektrotehnika i informacijska tehnologija i Računarstvo (Studij)

Elektroenergetika -> Elektrotehnika i informacijska tehnologija (Profil)

Računarstvo -> Elektrotehnika i informacijska tehnologija i Računarstvo (Studij)

Automatika -> Elektrotehnika i informacijska tehnologija (Modul)

Elektroničko i računalno inženjerstvo -> Elektrotehnika i informacijska tehnologija (Profil)

Elektroenergetika -> Elektrotehnika i informacijska tehnologija (Modul)

Elektronika -> Elektrotehnika i informacijska tehnologija (Profil)

Elektroničko i računalno inženjerstvo -> Elektrotehnika i informacijska tehnologija (Modul)

Obradba informacija -> Informacijska i komunikacijska tehnologija (Profil)

Elektronika -> Elektrotehnika i informacijska tehnologija (Modul)

Telekomunikacije i informatika -> Informacijska i komunikacijska tehnologija (Profil)

Radiokomunikacijske tehnologije -> Elektrotehnika i informacijska tehnologija (Modul)

Radiokomunikacijske tehnologije -> Informacijska i komunikacijska tehnologija (Profil)

Obradba informacija -> Računarstvo (Modul)

Programsko inženjerstvo i informacijski sustavi -> Računarstvo (Profil)

Programsko inženjerstvo i informacijski sustavi -> Računarstvo (Modul)

Računalno inženjerstvo -> Računarstvo (Profil)

Računalno inženjerstvo -> Računarstvo (Modul)

Računarska znanost -> Računarstvo (Profil)

Računarska znanost -> Računarstvo (Modul)

Telekomunikacije i informatika -> Računarstvo (Modul)

Literatura

Marko Čupić (2007.), Materijali za Java tečaj,
Kent Beck (2006.), Test-Driven Development, By Example, Addison-Wesley, Boston
(.), Tutorijali s http://java.sun.com/,
Bruce Eckel (2002.), Thinking in Java, 3rd Edition (Free electronic book), Prentice-Hall

Bodovi i izvedba

4 ECTS
R0 Engleski jezik
R1 E-učenje
60 Predavanja
0 Auditorne vježbe
15 Laboratorijske vježbe

Ocjenjivanje

izvrstan
vrlo dobar
dobar
dovoljan