The Sum of All Fears - Part trois - POO #1/6
Monday, February 26th, 2007Atat pentru mine cat si pentru cei care vor mai incepe aceste materii si cei care cauta pe Google tot felul de informatii despre materii si profesori si ajung aici, am sa discut pe larg semestrul care tocmai s-a terminat.
Tineti cont ca sunt mai incisiv decat de obicei pentru ca am ocazia sa vad finalitatea acestor cursuri si a efortului de a fi trecut prin ele. Voi nu trebuie sa le incepeti cu aceasta atitudine pentru ca nu exista nimic fara parti bune. Si doar pentru ele ati venit aici.
Din materiile din semestrul al doilea, anul doi, de la facultatea de Automatica si Calculatoare, sectia (sau ce-o fi… ) Calculatoare:
POO (Programare Orientata Obiect) - Prof. Florian Moraru
Sau “poo”, pronuntat ca in engleza. Daca dupa un semestru de C mai-marii au considerat ca avem nevoie de o pauza in care sa nu mai exersam skill-urile programatorice (noroc cu C#-ul de la Microsoft din vara), acum a revenit, deloc in forta si absolut deloc spectaculos. Initial prinsesem o discutie intre profesori in care se stabilise ca, odata cu restructurarea anilor si materiilor, sa schimbe si continutul cursului de POO, astfel incat sa invatam si C++ si Java. In stilul nostru, clasic si totodata etern, nu s-a schimbat nimic si am ramas doar cu Java.
Cursul a fost unul care a filtrat de la sine studentii entuziasti care participau la inceput. Cate unul, cate doi, cate trei, (cate eu), au inceput sa nu-l mai frecventeze, pentru ca nu faceai decat sa scrii cod orbeste, de pe tabla, pe alocuri gresit, puteai sa pui intrebari dar nu prea ti se raspundea si, in fine, ramaneai cu sentimentul ca daca ramai acasa si, in loc de 3 ore, citesti 30 de minute dintr-o carte chiar si a unui obscur profesor american, ramai mai castigat. Exista o carte, suport de curs, distribuita si ca pdf, dar care nu sunt decat spicuiri ale lui “Thinking in Java” a binecunoscutului Bruce Eckel. Spicuiri facute fara prea multa atentie, cu accentuari asupa elementelor nesemnificative (deja-vu Lb romana… liceu…) si explicatii sporadice acolo unde ai avea nevoie de mai mult; nu lipsesc si frazele lipsite de sens sau continut. Acum stiti de unde sa invatati. E recomandabil ca, totusi, macar o data la doua cursuri sa aruncati o privire pe notitele cuiva, macar pentru a avea o idee despre stilul profesorului, pentru ca exact aceasta va urmari si la examen, si in temele de laborator. Chiar daca stii mai mult si mai bine, keep it simple pentru nu ca vrei sa ai de dat explicatii indelungi despre ce si cum ai vrut sa faci intr-o bucata de cod scrisa pe hartie. Nu prea aveai cum sa ramai in urma cu materia pentru ca exista si…
Laboratorul, care vrand-nevrand, este cel care ne-a tinut pe linia de plutire si datorita efortului minimal pe care l-am depus acolo am ajuns sa stim (ceva) Java. Doua ore in ziua de dinaintea laboratorului sunt de ajuns pentru a stapani bine cam tot ce e interesant si deductibil. Exista variante vechi ale laboratoarelor prin retelele p2p si merita atentie deoarece multe se repeta. Laboratorul este tinut tot de profesor, dar sa nu te astepti sa ai parte de asistenta de specialitate in timpul lui: gasesti un fisier .txt cu subiectele si timp de doua ore te descurci cum poti si cum stii ca sa rezolvi acele probleme. De multe ori prea putine, de multe ori prea multe probleme, astfel ca notele de la laborator au fost foarte colorate pentru toata lumea. Daca grupa e ceva mai mare, vor sta si cate doi la un calculator, practica incurajata cam la toate laboratoarele din facultate pentru ca o echipa de doi nu e nici prea mica pentru a se impiedica de lapsusuri si nici prea mare pentru a se impotmoli in discutii. La POO, insa, trebui sa fii pregatit ca la o echipa de doi sa para ca lucreaza amandoi, iar cand spun sa para ma refer strict la cel care scrie la tastatura, pentru ca nu exista niciun mod prin care, mai apoi, sa convingi sursa notei ca au fost doua creiere si nu unul. Notarea e foarte subiectiva si, in stilul claselor primare, nu ti se zice nota. Dar poti sa tragi cu ochiul. Programele poti sa le arati pe scurt ca functioneaza, nu se uita nimeni la cod, si daca iti merge destul de bine gura poti sa treci si peste rulare si peste cod, chiar si peste un program nefacut.
Examenul se da pe hartie si, de regula, ti se da ceva destul de mare de facut incat sa nu ai timp sa testezi ceva pe calculator. Scrie cat poti, tranteste cod cat mai stufos, fa cate clase poti sa imaginezi, comenteaza codul caci un comentariu va spune ceea ce SIGUR face o bucata de cod, chiar daca nu face. Eu am scris 7 pagini de cod care au fost corectate in mai putin de un minut. Spuneti-mi voi ce a contat aici.
Se lucreaza cu Java 1.4 deci daca inveti de capul tau ai grija de unde. Nu te astepta sa ai auto-complete, dar te poti descurca cum stii: vii cu softuri de acasa, hackuiesti contul de administrare, vii cu laptopul. Impresia nu e una grozava. Dezinteresul e foarte mare, aproape palpabil. Trebuie, totusi, sa iti dai silinta sa treci peste prejudecatile cum ca o materie prost predata e si o materie inutila. Ai ocazia sa inveti ceva util si cautat si daca cel care e platit (mult) sa o faca nu isi face treaba, tu incearca sa ti-o faci pe a ta si sa folosesti cu cap acel timp petrecut acasa, din timpul cursului.