E2 – Računarstvo i Automatika – generalno o smeru
Pre nekoliko nedelja grupa nas kolega je odbranilo diplomski i tako smo postali diplomirani inženjeri elektrotehnike i računarstva. Iako je rodbina prilicno uzbuđena oko toga, meni to još uvek ne dopire do mozga, a sumnjam i da li će..
Nego, hajde da sada kada su četiri godine studija završene, da pokušam da sumiram šta je to što mene (ne)čini inženjerem. Jer to definitivno nije diploma, već sve ono što sam naučio tokom mojih studija.
U ovom tekstu ću pisati o onome šta sam ja naučio na smeru Računarstvo i Automatika. Tekst je subjektivan (jako) i odnosi se na usmerenje koje sam ja odabrao (RT-RK).
Matematika
Iako sam u prvoj godini razbijao glavu učeći analizu i diskretnu i preklinjao sve što ima veze sa time, sada bih bio presrećan da je toga bilo više. Ne razbijanja glave naravno, nego više matematike, više vežbanja, da sam “upio” više znanja. Na višim godinama je jako čest slučaj da se podrazumeva da smo nesto učili, a zapravo nismo i tu onda nastaju komplikacije. Inače, gradiva je puno, asistenata je malo, a malo je i volje (mogu reći i znanja) u asistentima da objasnje studentima tu matematiku kako valja. Uglavnom, ako se sami primite posla i naučite ono što vam se ponudi, mislim da na kraju i nećete biti u tako lošoj situaciji.
Programiranje
Pod programiranjem ću ovde prodrazumevati sve programerske predmete koje sam imao u toku studija.
Na prvom predmetu vezanom za programiranje, profesor je imao običaj da deli studente na na dve grupe – oni koji su u srednjoj školi učili Paskal i one koji su učili C. Pošto sam ja u srednjoj školi učio C programski jezik, meni je to sve već bilo poznato. Ali imam osećaj da je predmet u principu bio loš. Ne moze se C naučiti za ne puna 4 meseca gde se pored toga polažu jos 3 ispita (dve mate). Ne kvalitetno i detaljno koliko se to od nas očekuje, a kasnije i traži na nekim daljim predmetima. Potrebno je više vežbe, više primera, zadaci treba da budu nešto konkretnije od sume prvih n brojeva ili generatora Fibonačijevog niza. Takvi zadaci kada su rešeni ne ostvare nikakvo zadovoljstvo u studentu što bi ga motivisalo za dalji rad.
Sledeći predmet se bavi objektno orijentisanim programiranjem u C++ programskom jeziku. Ponovo loši primeri i nula motivacije za dalji rad. “Klasa automobil naslesjuje klasu vozilo. Sadrzi funkcije ukljuci i iskljuci motor.” Ni danas mi nije jasno kako takav primer tako “dobro” oslikava objektno programiranje.
Predmet Arhitektura računara mislim da sasvim ok prezentuje oblast koju pokriva. Jasno je objašnjen rad mikroprocesora, uloga registara, aritmetičko logičke jedinice, skupovi operacija.. Na vežbama se radi Asembler. Primeri možda nisu najsrećniji, ali nije ni Asembler jezik za početnike. Uglavnom, moj utisak je da sam dosta naučio slušajući ovaj predmet i zadovoljan sam time.
Kasnije na predmetu Operativni sistemi radi se konkutentno programiranje, pthread, kriticne sekcije, mutex, atomske sekcije, semafori, sinhronizacija.. Ako se niste time bavili do sada, ovo vam sada ne znači puno, ali je zapravo jako važno. Takođe moj pozitivni utisak uz par zamerki. Ne bi bilo loše da se predmet sastoji od većeg fonda časova, a pošto se velikim delom proučava konkurentno programiranje, onda bi se predmet tako mogao i zvati.
Logičko projektovanje računarskih sistema (skraćeno LPRS) dolazi u dva predmeta – 1 i 2. Nisam siguran da li se program menjao, ali moja generacija je, u provm delu predmeta, projektovala procesor sa nekim ograničenim skupom instrukcija. Vrlo dobra vežba da se arhitektura računara oseti u praksi. Sky is the limit, tako da možete napraviti i protočni procesor sa velikim skupom instrukcija. Meni lično, jako zabavan predmet, iako je prilično zahtevan. U drugom delu predmeta radi se podrška za periferije. Malo manje interesantno, ali svakako korisno.
Sistemske programske podrške (dva predmeta) se bave čisto konkurentnim programiranjem, korišćenjem Intelovog TBB i Cilk okruženja. Naučili smo puno, ali izbor alata (TBB i Cilk) mi je potpuno nejasan. Radili smo i projekte gde se zahtevala određena doza ozbiljnosti, što je cool. Opšti utisak kvare pomenuti alati, ali je ostalo ok.
Napredni kurs i C programskog jezika u 4. godini je je*eno SJAJAN! I nisam sarkastičan.. Oduševio sam se kada sam video koliko ne poznajem C programski jezik i kako je lako napraviti teško uočljivu grešku kada se rade egzotične stvari u C-u.
Predmeti vezani za DSP su meni bili jako dosadni zbog teorije. Ali i pored toga smatram da su jako važni predmeti, gde ako neko ne shvati sve, važno je barem da shvati suštinu.
Elektronika
Moje lično mišljenje je da jedan inženjer elektrotehnike pored predmeta Osnovi elektrotehnike mora da zna i malo od klasišne elektronike. Nažalost Elektronika koju sam ja slušao je jako zamorna. Mnogo teorije, mnogo nepotrebnih stvari. Više bih cenio da smo imali pola prezentovanog gradiva, ali da smo imali neki praktični rad na kraju. Laboratorijske vežbe koje se odrade na kraju semestra se oslanjaju na teoriju, ali je to samo vežba sa gotovom maketom, gde se isprati uputstvo, povežu žice i očitaju podaci sa instrumenta. Utisak je prilično loš zbog toga.
Automatika
Jako je važno poznavati koncepte, mada ponovo imam osecaj da se previše pažnje posveti teoretisanju i rađenju zadataka na papiru, dok se to sve moze raditi u prakticno, što je mnogo bolje i mnogo više motiviše.
Ono što nedostaje…
Iskreno, meni je apsurdno što na E2 smeru ne postoji ni jedan predmet koji se bavi algoritmima. Zbog toga se osećam kao ne zaslužujem zvanje inženjera iz moje oblasti, pošto algoritme nemam pojma. To moram da učim sam i sa strane. Nekoliko knjiga i online kursevi su dobra stvar da se nauči nešto, ali uvek fali neko da posavetuje, da neki hint ili upozori na nešto što sam prevideo.
Tako da smatram to kao jednu veliku manu ovog smera. Od prošle godine je otvoren novi smer (ako se ne varam E3?), ali nisam dovoljno upućen šta se tamo događa i da li je njihov program možda bolje organizovan. Iako se iskreno nadam da jeste, mada to ne poboljšava situaciju na smeru E2.
Zaključak
Kada vam neki predmet nije zanimljiv onako kako ga profesor i asistenti predaju, potrudite se i napravite ga da vam bude zanimljiv. Ako su zadaci prejednostavni, smislite neki projekat koji ćete sami uraditi, tako da kada ga završite, dobijete onaj osećaj da ste nešto vredno uradili. Ako su vam zadaci preteški, smarajte asistente da vam ih objasne. Nemojte dopustiti da izpaštate zbog nezainteresovanosti profesora i zbog velikog broja studenata koji utiče na organizaciju nastave. Potrošite deo slobodnog vremena da bi ste unapredili svoje znanje.
Što se tiče algoritama, učite i vi sa strane. Ne dopustite sebi da jednog dana na nekom intervjuu za posao ostanete bez teksta kada vam postave neko osnovno pitanje vezano za algoritme.