Prijave za upis vještine Osnove programskog jezika Java

(objavljeno: 11. veljače 2019. 10:00:00)

Otvorene su prijave za vještinu "Osnove programskog jezika Java" koja će se održati u ljetnom semestru akademske godine 2018./2019. Prijavu je moguće popuniti do ponedjeljka, 2019-02-25.

Koliko se studenata prima?

Broj studenata koji će biti primljeni ograničen je kapacitetom dvorane u kojoj se odvija vještina i neće biti veći od 128.

Tko se može prijaviti?

Na vještinu se mogu prijaviti svi studenti FER-a te drugih fakulteta Sveučilišta u Zagrebu koji su u ljetnom semestru upisani kao redovni studenti preddiplomskih ili diplomskih studija. Upis studenata poslijediplomskih studija, prema meni dostupnim informacijama, nije moguć. Za formalna pitanja o mogućnosti upisa vještine (ako niste student FER-a) molim obratiti se direktno FER-ovoj Studentskoj službi (koja će moći provjeriti s obzirom na fakultet na kojem studirate, imate li mogućnost upisa); znam da za studente PMF-a takva mogućnost sigurno postoji.

Dobivam pitanja brucoša: da li upisati ovu vještinu? Pa da se i na to osvrnem. Na vještini se prolazi kroz područja koja se oslanjaju na algoritme i strukture podataka, operacijske sustave, mrežu i mrežne aplikacije, baze podataka i slično. Stoga apsolutno nema smisla da to upisujete prije no što ste položili ASP i Operacijske sustave i barem počeli slušati Baze podataka - drugim riječima, prije 4. semestra preddiplomskog studija na FER-u.

Dobivam povremeno i pitanja studenata elektrotehnike: mogu li oni upisati vještinu, s obzirom da nikada neće odslušati Operacijske sustave i srodne računarske kolegije. Odgovor je, dakako, potvrdan. Bit će vam puno teže no studentima računarstva koji jesu odslušali i položili navedene predmete, ali ako ste spremni uložiti potrebnu količinu vremena i truda, nema razloga da vještinu ne položite uspješno. Postoje studenti koji su to svojim primjerom i dokazali :-)

Je li to za mene?

Razmišljate li o upisu ove vještine, obavezno u obzir uzmite sljedeće.

  • Za razliku od mnogih kolegija FER-a koji nude dubinsko fokusirano i specifično znanje iz nekog užeg područja, ova je vještina integrativnog tipa: učite programirati u Javi na način da razvijate programska rješenja iz niza raznorodnih domena - od matematike, računalne grafike, jezičnih procesora i obrade teksta pa do višedretvenosti, računalnih mreža, weba i baza podataka. To nije lagano, ali znanje koje tako dobijete je znanje koje će Vam ostati zauvijek.
  • Predavanja su obavezna. Zadaće imate svaki tjedan. I za jedno i za drugo trebat će Vam vremena. Razmislite kako stojite s drugim obavezama na fakultetu. Imate li i dodatnih izvanfakultetskih obaveza? Dosadašnje iskustvo pokazuje: upisom ove vještine, život Vam staje na jedan semestar. Izlasci subotom svode se na dolazak na predavanje dok tijekom ostatka tjedna pokušavate žonglirati između drugih predavanja, labosa i zadaća koje dobivate na ovoj vještini. San - kada/ako stignete.
  • Jeste li doista, ali doista, motivirani za pohađanje ove vještine? Nemojte se dovesti u situaciju da u nekom trenutku zaključite da to možda i nije za Vas, ali sada, eto, kad ste već upisali, budete malo prepisali tu, pa predali rješenje kolege/kolegice tamo, ... To Vam stvarno ne treba; i ne treba Vam da kasnije, kad budete tražili mentora ili komunicirali s bilo kojim nastavnikom, da tamo negdje u pozadini bude "ah, to je onaj koji predaje tuđa rješenja". Sve što radite na vještini (i fakultetu općenito) stvara određenu sliku o Vama - kakva želite da ona bude?

Što ćete dobiti polaganjem vještine?

  • Iskustvo u rješavanju programskih zadataka. Nakon položene vještine, Java će Vam postati alat kojim bez (pretjeranog) razmišljanja možete početi rješavati konkretne zadatke. Ovo Vam uvelike može olakšati daljnji tijek studija, jer ćete se dovesti u situaciju da konačno možete razmišljati o zadatku koji trebate riješiti, a ne o programskom jeziku i sintaksi.
  • Bolji osjećaj za organizaciju vremena. Kad položite vještinu, otkrit ćete što sve stvarno možete iz sebe izvući. Vidjet ćete da bez dobrog planiranja vremena nema šanse da uspijete, a to iskustvo dobro će Vam poslužiti i kasnije.
  • Naučit ćete kako mnoge stvari rade iznutra. Primjerice, nećete samo naučiti kako na web-poslužitelj nabacati malo HTML-a u pokušaju da napravite vlastitu web-aplikaciju, već ćete naučiti što je web-poslužitelj, koji se protokol koristi za komunikaciju između web-poslužitelja i web-preglednika, implementirat ćete svoj vlastiti višedretveni web-poslužitelj, stroj za izvođenje skriptnih stranica te podršku za praćenje i upravljanje korisničkim sjednicama. Nakon toga Vam više uopće neće biti bitno trebate li raditi web-aplikaciju u Javinim tehnologijama, .NET-u, skriptnim tehnologijama poput PHP-a i slično: razumjet ćete kako stvari rade iznutra, a ovo sve ostalo su sintaksni detalji.

Kako se prijaviti?

Popunjena prijava nužan je preduvjet za pristupanje kvalifikacijskom ispitu koji je pak preduvjet za upis i pohađanje vještine. Do propisanog roka potrebno je:

  1. popuniti prijavu za upis vještine Osnove programskog jezika Java te
  2. popuniti i dostaviti Izjavu (detalji o načinu dostave pišu na dnu Izjave).

Samo studenti koji do propisanog roka obave oba koraka bit će kandidati za kvalifikacijski ispit. Prijave ostalih studenata bit će automatski poništene.

Studenti FER-a prijavu rade popunjavanjem prijavnog obrasca u sustavu Ferko. U okviru te prijave potrebno je ispuniti pripremljeni obrazac i odgovoriti na sva postavljena pitanja. Prijave studenata koji obrazac ne ispune istinitim podatcima ili iz čijih se prijava može zaključiti nedostatak motivacije za savladavanje gradiva koje se obrađuje na vještini neće biti razmatrane.

Studenti drugih fakulteta Sveučilišta u Zagrebu prijavu trebaju poslati e-mailom. U poruci obavezno navedite:

  1. vaše ime i prezime,
  2. JMBAG (ne JMBG!),
  3. e-mail adresu,
  4. puni naziv fakulteta na kojem studirate,
  5. godinu te puni naziv studija i smjera na kojem ste,
  6. motivaciju (zašto želite upisati ovu vještinu) te
  7. imate li prethodno iskustvo s Javom ili drugim programskim jezicima (i ako da, sto ste radili).

Kvalifikacijski ispit

Predviđen termin kvalifikacijskog ispita je srijeda, četvrtak ili petak, 27. veljače - 01. ožujka 2019. Točno dan, vrijeme i raspored po dvoranama bit će objavljeni naknadno na ovim stranicama. Temeljem bodova ostvarenih na kvalifikacijskom ispitu napravit će se rang lista i temeljem nje napraviti selekcija studenata koji će krenuti na vještinu. Studenti koji ne pristupe kvalifikacijskom ispitu nemaju pravo pohađanja vještine.

Što se provjerava na kvalifikacijskom ispitu? Pitanja pokrivaju osnove programskog jezika C, temeljne strukture podataka te opću kulturu računarstva: temeljno o programiranju, složenostima, operacijskim sustavima, bazama, webu, višedretvenosti, mreži, protokolima, ... Nije nužno da kandidati ostvare 100% bodova kako bi bili primljeni na vještinu, ali zadržavam pravo postavljanja donje granice na minimalni broj bodova.

Što ako budem primljen?

Studenti koji budu primljeni na vještinu prije dolaska na prvo predavanje trebaju samostalno pročitati prvo poglavlje iz knjige dostupne ovdje (gledati posljednju verziju). Također, očekuje se da imaju vlastito prijenosno računalo (ili da mogu tijekom semestra posuđivati prijenosno računalo na kojem će raditi). Na to računalo trebaju skinuti i instalirati JDK 11.0.2 te Eclipse IDE for Java EE Developers. Također, trebaju osigurati da na računalu mogu koristiti mrežu (FERWLan, Eduroam ili nešto treće).

Termini predavanja i struktura vještine

Predavanja se održavaju subotama kroz semestar, u dvije grupe. Termin grupe 1 je 8h-12h, termin grupe 2 je 12h-16h.

Što se tiče gradiva koje se obrađuje na vještini, ove godine nema većih izmjena u odnosu na prethodnu godinu. Što se tiče aktivnosti koje postoje, uz predavanja ih ima još nekoliko.

  • Domaće zadaće. To je ono na što ćete trošiti najviše vremena i na čemu ćete najviše naučiti te steći praktična i primjenjiva znanja.
  • Projekt. Da biste položili vještinu, predan projekt koji radi savršeno, koji je dokumentiran i testiran, nužan je uvjet (ako smognem snage organizirati ga). Ja ću definirati sve teme (nema slobode odabira). Sve projekte pregledat ću ili ja osobno ili netko od drugih nastavnika FERa.
  • Recenziranje domaćih zadaća. Svaki tjedan nakon napisanih domaćih zadaća dobit ćete kao drugi dio domaće zadaće pogledati i recenzirati rješenja domaće zadaće nekoliko drugih studenata. Nesavjesno (ili čak lažno) ispunjena recenzija (primjerice, tvrdnjom da je zadaća korektna a uopće se ne da iskompajlirati ili pak nedostaju veliki dijelovi) rezultirat će padom vještine recenzenta.
  • Završni ispit. Na kraju semestra čeka vas još i završni ispit sastavljen od nekoliko zadataka koji se rješavaju na računalu i koji za prolaz moraju biti riješeni.

Detaljan plan predavanja bit će objavljen naknadno, no već sada skrećem pažnju da će vještina ići i kroz poneki od tjedana koji ulaze u ona četiri tjedna završnih ispita i ljetnih ispitnih rokova. Ovo napominjem kako bi studenti koji žele braniti Diplomski rad sa svojim mentorom dogovorili termin obrane koji je NAKON roka za predaju posljednje domaće zadaće i projekta (jer Diplomski rad nije moguće braniti ako postoje upisani i nepoloženi kolegiji).

Par riječi od polaznika koji su vještinu pohađali ranijih akademskih godina.

Bio sam napravio anketu pa zamolio polaznike koji su prošli vještinu da napišu poruku za studente koji razmišljaju da li vještinu upisati ili ne. Komentara sam dobio mnogo pa u nastavku dajem nekoliko karakterističnih.

  • Ako imate ~16 slobodnih sati tjedno i želite naučiti programirati, upišite ovaj kolegij.
  • Ako misliš da si Chuck Norris, upiši vještinu i uvjeri se da jesi ;) :D Upisom ove vještine stečete mnoga znanja i sposobnosti, koje će vam kasnije pomoći, pogotovo ako želite zaraditi nešto kao student, ova vještina vam i to nudi. Nemojte odbacivati ostale predmete tijekom semestra radi vještine misleći kako ćete vi to riješiti na ljetnom roku, ništa od toga, bit ćete previše potrošeni da učite za ljetni rok, znači ostat će vam samo jesenski rok. Zato radite ostale predmete maksimalno kontinuirano kako bi ih prošli kontinuirano.
  • Vještina je hardcore, ali je zato vrlo poučna i 'rewarding': nijedan sat utrošen na rad na ovoj vještini nije mi se činio kao trošenje vremena. Zapravo, najviše motivacije za rad od svih predmeta koje sam slušao imao sam za ovu vještinu. Ako si želite učiniti veliku uslugu 'budućem sebi' i motivirani ste, upišite ovu vještinu i tipkajte, tipkajte i tipkajte.
  • Preporuka
    ═════════
    Vještinu bi definitivno preporučio svakom tko je u potrazi za znanjem. Prolazi se kroz same temelje stvari (a i više od tog), nema nikakvih bezveznih Drag&Dropova, templateova, itd. Sve se lijepo objasni i na kraju imaš solidne temelje za ići dalje. Također, uvijek je dobro znati drugi jezik bez obzira koliko ti ne bio/ne bio privlačan jer ne samo da si "širiš horizonte" nego si i daješ mogućnost povlačenja paralela između Jave i "svog omiljenog jezika" i moći ćeš usporediti što je to bolje u Javi, što je bolje u nekom drugom jeziku, što je zajedničko, koji su sve načini na koji su određeni jezici riješili neki problem, itd. To je uvijek dobra stvar – "Quot linguas calles, tot homines vales.". ;) Dakle, nema veze ako te ne zanima direktno Java – jest da je to jezik koji se službeno obrađuje i sve, ali problemi koji se rješavaju na zadaćama su univerzalni i ne ovise baš o jeziku. Moj prioritet pri upisivanju vještine definitivno nije bilo to što se koristi Java nego razne domaće zadaće koje sam načuo od drugih ljudi. Isto tako je super upisati ovako nešto čisto da dobiješ taj osjećaj obveze jer katkad je teško samog sebe natjerati da radiš nešto produktivno. Ovako imaš real deadlines do kojih moraš nešto napraviti i puno teže će ti biti odustati. Koliko kod neki problemi bili u osnovi jednostavni, super je da ih barem jednom implementiraš sam i zato je ova vještina super – prođu se razni klasični problemi za koje uvijek misliš "ma to je jednostavno, ali mi se ne da to implementirati sad", tipa parser za jednostavan jezik, notepad clone, paint clone, itd. Sve skupa jako brzo proleti i dobar je osjećaj na kraju vidjeti koliko si toga prošao i napisao.
  • JAKO puno ćete naučiti, ali, isto tako, JAKO će vas izmoriti. Od subote do četvrtka radite javu, a sve ostale predmete u četvrtak popodne i petak. Iznenadit ćete sami sebe koliko možete raditi, i što sve čovjek može preživjeti.
  • Mogu reći samo ovo: vjerujte uputi na početku, vjerujte pričama, ali isto tako vjerujte da znanja koja ovdje steknete nećete izgubiti nikad, a i koristit će vam.
  • Tko misli da nakon OOPa ne može puno naučiti na ovoj vještini, vara se. Kreće se od početka, ali i taj početak je puno drugačiji i opširniji nego na OOPu. Ja sam ovu vještinu upisao u 4. semestru i nisam pogriješio. Htio sam nešto što će mi postaviti dobre temelje da stvarno počnem raditi nešto korisno, ili na samostalnim projektima u slobodno vrijeme ili u nekoj firmi, to sam i dobio. Web aplikacije, baze podataka, pogled u android.. puno korisnih stvari i drago mi je što sam izdržao do kraja.
  • Vještina je vrlo korisna te ju preporučam svakom tko želi postati programer. No, vještina zahtjeva dosta vremena te svaki student koji ju želi upisati mora biti toga svjestan. Naime, noćni izlasci se pretvore u noćno programiranje, ali osobno mi nije bilo teško izdvojiti 4 mjeseca života bez izlazaka i bez drugih užitaka za nešto što će mi koristiti cijeli život. Zato je važno da svaki student, prije upisa ove vještine, dobro razmisli je li spreman učiniti takvu žrtvu. Ukoliko netko smatra da nije na to spreman, ne bih preporučio upis ove vještine.
  • Svakome ko se dvoumi oko upisa bih preporučio da upiše ovu vještinu, no da to ne shvati olako. Posla ima puno i zadaci nisu lagani. Svatko ko izabere ovu vještinu mora biti svjestan da će mu OPJJ biti glavni predmet taj semestar(pod uvjetom da je predmet upisao da stvarno nešto nauči). Semestar u kojem bih preporučio ovu vještinu su 6. ili 8. Baze podataka, UTR (i PPJ) su definitivno predmeti koji puno olakšavaju praćenje vještine. Također, studentima koji misle odustati u prvih 5-6 tjedana poručio bih da uopće ne pišu prijemni i tako zauzimaju mjesto ljudima koji misle ostati do kraja. :)
  • Poručila bih im da ako imaju volje, želje i zanimanja, da svakako upišu vještinu jer će jako puno korisnih stvari naučiti. Samo moraju biti spremni na rad, red i disciplinu te mnoge neprospavane noći. Ali sve se stigne kad se hoće pošto sam uspjela riješiti sve obavezne predmete kontinuirano uz rješavanje svega potrebnog što se tiče vještine.
  • Vještinu bih preporučio svakome tko je spreman na samostalno pisanje zadaća. Vještina zbilja otvara mnoga vrata u životu, a nije rijetkost da poslovne ponude pristizati i prije njenog kraja.
  • Preporučio bih svim studentima koji su spremni uložiti svoje vrijeme da upišu ovu vještinu. Tempo na vještini je brz, ima puno posla za obaviti i stvarno treba puno vremena za pohvatati sve konce, ali se zato jako puno nauči. Prošlo ljeto nisam apsolutno NIŠTA znao o programskom jeziku Java, a ovo ljeto sam zahvaljujući ovoj vještini (kao i dosta drugih polaznika vještine) pronašao ljetnu praksu gdje se programira primarno u Javi. Za one koji odluče upisati - obavezno počnite rješavati zadaće što prije, tako da imate vremena u slučaju da nešto pođe po zlu (shvatite da će vam trebati više vremena nego što ste planirali ili pronađete neki bug kojemu nikako ne možete otkriti uzrok).
  • Ako ste uspješno položili OOP sa razumjevanjem, očekujte da ćete čupat kosu prvih 6,7 predavanja jer se sve ponavlja (naravno nešto detaljnije na vještini) te su zadaće više manje lagane, samo će vam za njih trebat izuzetno puno vremena. Osobno sam htio odustat, ali mi je drago da nisam, budući da što predavanja idu dalje, to su bila zanimljivija i korisnija. Najbitnija stvar od svega, položite ovo s motivacijom, a ne zato što svi kažu da je korisno. I nemojte tražiti izgovore za prepisivanje (nisam stigao, nikako mi nije radilo - moro sam prepisat, kolega je imao ljepši kod...). Svrha je da naučite, a najbolje se uči na greškama. Profesor Čupić vas sigurno neće izbaciti ako ćete stalno tražiti pomoć ili pojašnjenje gradiva, čak štoviše, bit će mu jako drago da može pomoći. Ali sve u svemu, pripremite se na jako puno rada. I nemojte se bojati ostaviti neke "lakše" predmete za rok, naravno imajući u vidu da to radite kako bi bolje naučili vještinu, a ne zato što ste lijeni.