16 sept. 2017

Calculatoare: Anul 3, Semestrul 2

Alright, anul 3, continuarea...

A fost un semestru mai...dur.
O mare parte a timpului era ocupata de: temele la SO, temele la ASC, proiectul de la PM, proiectul de la IP (solo pe partea de implementare) si proiectul de la Innovation Labs (tot solo la partea de implementare); daca apucam sa exersez 2 game pe chitara si sa mai si dorm noaptea, era deja bineeee.

// nota pt cei ca mine: 3-5 ore de somn pe noapte au niste efecte tare faine pe termen lung; nu recomand.

Recunosc, n-am prea dat pe la cursuri, exceptie facand IP-ul unde era cu prezenta si puteam sa stau linistit in banca. Si BD era cu prezenta, dar de la 9 dimineata si profu' punea intrebari...am preferat sa nu ma obosesc prea tare.

Anyway, am gasit oraru'; let's continue, shall we?


1. BD (Baze de date)

Curs: Florin Radulescu
Laborator: Ciprian Truica


O materie care a inceput frumos si s-a terminat foarte urat :))

Cursul se tine de dimineata pe proiector si ppt-urile se gasesc pe site-ul de cursuri. Aparent se poate chiuli dar se face prezenta - nu mai stiu sigur daca dupa prima ora sau a 2-a - iar prezentele ofera un anumit punctaj. Materia incepuse lejer cu "ce-i o baza de date?", "cum se face un SELECT?" - lucruri pe care probabil le stim din a 12-a. Eh, am presupus ca asa o va tine pana la sfarsit de semestru; dupa o perioada de absentare ma trezesc cu niste slide-uri in chineza in care se prezenta rolul algebrei relationale in structurarea bazelor de date.

Materia asta are si un partial care era grila daca-mi amintesc eu bine - n-am luat o nota prea buna aici fiindca nu prea citisem ultimele cursuri.

Momentul ala cand intrebarea includea ceva de genul:
"(1) are proprietatea de JFP?"
and I was like:
"da' ce-i aia JFP?".

Pe langa asta, exista si colocviu - destul de putin timp dar seamana intr-o oarecare masura cu problemele din timpul semestrului (facute la laborator).

Laboratorul...

Sa se afiseze id-ul si numele angajatilor al caror salariu mediu este mai mic decat salariul minim al sefilor de departament ce au salariul mediu mai mare decat salariul maxim al managerilor cu salariu minim pe departament.
 -- Truica et al.


N-a fost chiar atat de rau; incepea cu niste explicatii, pe urma trebuia sa citim 1-2 PDF-uri si la final incasam un test de 10-15 minute in care trebuia sa scriem un query. Se punea mare accent pe join-uri.

Examenul: din 2 parti; o grila ca la partial si o proba mai practica (tot pe foaie) in care trebuiau scrise query-urile care sa creeze un tabel, sa stabileasca cheile primare, straine, etc si pe urma sa faca niste join-uri. Overall, nu-i o materie dificila, iar la partea a 2-a e voie cu foi cu teorie (aka, cursul printat). 


2. PM (Proiectarea cu microprocesoare)

Curs: Dan Tudose / Nicolate Tapus
Laborator: Tudor Visan





Nu-s prea multe de zis; materia la care faceti proiectele alea faine pe care la vedeti anual pe holul EC. La final fie ajungeti sa suportati atmega324 fie sa-l urati...

La curs: ehm...nu-mi amintesc foarte bine ce s-a intamplat acolo :)))) S-a vorbit despre arhitectura x86 (registre, pini, flaguri) cum se cupleaza diverse memorii, sisteme de intreruperi, arbitru de procesor & dma, module dma, etc. etc. Foarte multa materie si foarte multe scheme. Nu-i cu prezenta dar profu' (al 2-lea) pare sa aiba memorie destul de buna.

Laboratorul pe de alta parte a fost relativ dificil. Il aveam vineri seara, fix atunci cand mintea era cu totul in alta parte. Taskurile pareau destul de usoare (de afisat ceva pe un LCD, de redat o melodie, de creat niste handlere pt intreruperi) dar implementarea era dureroasa: cu documentatia in fata tot trebuia stiut de nush unde ca pt a face X, trebuie sa setezi bitul Y din registrul Z pe 1, iar bitul W din registrul K pe 0 (lucruri din astea). De obicei nu prea era timp sa termina exercitiile alea...

Proiectul: se incepe atunci cand se termina laboratoarele (la jumatatea semestrului). Trebuie sa alegeti o idee, vorbiti cu asistentul, care o sa va zica daca e easy (nota maxima se limiteaza la 8) sau nu (caz in care puteti lua 10). Pe urma o sa fie nevoie sa va faceti o pagina de wiki pe care s-o actualizati la fiecare etapa (schema bloc, schema electrica, lista de piese, etc.). Ah da...si o sa alergati dupa piese (recomand sa luati tot ce e nevoie pt placa atunci cand se da comanda cu toata seria - chip-ul nu-l prea gasiti prin Romania).

La final incarcati sursa si schema iar pt notarea proiectului trebuie sa veniti cu el fie pe holul EC fie la laborator.  

Examenul: tot din 2 parti; prima era mai de teorie - 10 probleme date de prof care implicau fie scheme fie definitii. A 2-a parte includea un exercitiu cu 3 sau 4 subpuncte, destul de tricky (cuplari de memorii). Nu trece toata lumea, asa cum se zvoneste (au existat cativa cu restanta dar cred ca au luat in toamna). Si nu se da intotdeauna chestia aia cu "descrieti caracteristicile calculatorului pe care doriti sa-l cumparati".


3. ASC (Arhitectura sistemelor de calcul)

Curs: Emil Slusanchi
Laborator: Adriana Draghici

Beware: threaduri, caching, gpgpu, clustere. cell!

As zice ca numele descrie destul de bine ce se invata (hint: are o oarecare legatura cu APD). 
Totusi alegerea asistentilor, organizarea materiei si nerespectarea propriului regulament sunt lucruri care m-au dezamagit.

Cursul: mi-e destul de greu sa zic ce se face aici; nu reuseam sa urmaresc bine iar cand ii intrebam pe altii...nici ei nu stiau sa-mi raspunda. Am renuntat sa mai merg in cele din urma.

Laboratoarele erau super: prima parte Python + threaduri + tot ce tine de threaduri (cumva noi trebuia sa stim deja Python...I guess?), a 2-a parte cu niste C si operatii pe matrice & vectori, a 3-a parte era ceva mai hardcore - cell: o arhitectura pt care se scrie destul de greu cod fara erori. Ultima parte era cu paralelizari pe gpu-uri. Asistenta e ok.

Temele: mai dificile as zice...dar merg. Sunt 3 teme de 100p (Python, C, Cell sau GPU la alegere) si una de 50p ce implica o prezentare la laborator despre un subiect ales de noi dar care sa aiba legatura cu cursul. Sincer...temele mi s-au parut prost gestionate, in special tema a 2-a: codul dat avea greseli iar responsabilul zicea pe forum ca "nu-i treaba lui". Pe langa asta, conditia ca tema sa ruleze in sub X secunde altfel se dau 0p a fost omisa la corectura (hm...poate unii oameni n-au trimis sursa fiindca stiau ca depaseau timpul de executie ?!?). Also...temele de Cell si GPU nu pareau egale ca dificultate.

Examenul: tot 2 parti; partea de teorie era ok - tocesti cursurile alea super si aia e. Partea practica de obicei contine subiecte mai "exotice" de care studentii aud abia in anul 4 daca dau la C4 (mie mi-a picat ceva cu paralelizarea calculelor pt o retea neurala...). Partea buna e ca se corecteaza lejer.



4. SO (Sisteme de operare)

Curs: Razvan Deaconescu (RD)
Laborator: Laura Ruse

"punem presiune pe ei!"

The good stuff. 
O materie care mi-a placut - bine organizata, utila, cu teme practice.

La curs se discuta despre tot ce tine de un sistem de operare (exceptand drivere & kernel): procese, semnale, memorie, threaduri, fisiere, sisteme de fisiere etc. Mi s-au parut destul de bune explicatiile din slideuri si am cedat locul meu la curs unei persoane mai interesate. 

Se mai dau niste teste anunate (cred ca 4 au fost in total) din cele 3 cursuri predate anterior - partea mai urata e ca nu exista punctaj intermediar (nu merge sa "bati campii").

Laboratoarele... eh unele mai grele altele mai usoare. In general ultimele sunt mai grele. Se pot rezolva "la comun" ca sa zic asa - adica se poate colabora si se pot adresa intrebari. De obicei se iau note bune la laborator iar asistenta e de treaba.

Temele: ...sunt suficiente. Exista o tema comuna pt Linux + Windows si alte 4 pt Linux care au implmenetare separata pt Windows ("dar C-ul merge si pe Windows si pe Linux?" "- da dar nu te lasa sa folosesti functiile comune (high level)"). Asa ca adunandu-le vin vreo 9 teme destul de lungi - dificultatea creste...liniar cred. Se poate obtine 10 si cu numai 5 teme rezolvate, totusi aveti grija ca se corecteaza la sange (au scazut astia puncte si pt comentarii in plus). Iar o parte din punctaj se da daca tema respecta coding style-ul din kernelul linux - verificat cu un script destul de enervant. Inca o treaba: temele sunt aceleasi in fiecare an dar nu va recomand sa le copiati de pe net - exista asistenti care adauga sursele gasite pe net in MOSS si anuleaza punctaje.

Examenul a fost open-book dar fara internet; nu se iau note foarte mari de obicei si nu sunt genul de intrebari la care sa gasiti raspunsul in curs (nu se cer definitii ci mai degraba explicatii despre cum se desfasoara anumite lucruri prin sistem; practic, e ca la teste). Punctajul de pe parcurs face mai toata diferenta. 



5. IP (Ingineria programelor)

Curs: Alin Moldoveanu
Laborator: Oana Ferche

Optional obligatoriu; alegeti fie asta fie IC (ingineria calculatoarelor).
Eu am ales asta - mai greu pe parcurs mai usor la examen.

La curs se preda de pe niste slideuri dar materia e destul de plictisitoare (in mare parte despre moduri de dezvoltare software). Sunt teste de prezenta si e nevoie sa aveti un anumit numar ca sa intrati in examen.

Mai trebuie ales un proiect si dezvoltat in echipe de cate 3-4 oameni (partea de documente: gen ce se cere de la program, ce conditii sa indeplineasca etc.) si partea de implementare impartita in 4 etape cu taskuri stabilite la laborator.

Exceptand astea, ramane de facut o prezentare powerpoint (si...prezentata la curs) despre un anumit subiect ales dintr-o lista - tot in echipe. 

Examenul a fost din vreo 4 sau 5 parti - se baza mult pe ce era prin cursuri, dar nu e dificil de invatat sau de trecut.


6. Marketing


O prostie care iar ocupa timp cu planuri de afaceri si studii de caz; trebuie facute 2 proiecte si sunt necesare cateva prezente la seminar. Ca la economie dar putin mai pretentioasa materia.
Examentul cu grile A/F sau 3-4 variante de raspuns - nu foarte dificil.






Hew, gata si articolul asta - revin la anul cand termin cu licenta. Pt curiosi, am ales C1 ca specializare (initial voiam C4, dar dupa semestrul asta m-am razgandit si am decis sa o iau mai usor).

Ca o concluzie: mi s-a parut putin mai dramatic decat sem 1 - desi acum ca ma gandesc, s-ar putea sa fie putin subiectiva parerea. Probabil am exagerat cand m-am angajat sa ma ocup si de Innovation Labs si de IP si de alte...lucruri.
Exista posibilitatea sa-mi fi ingreunat singur viata din simpla prostie? Hmmm...

Atat. Bafta!

22 aug. 2017

Calculatoare: Anul 3 Semestrul 1

Salut lume,

Tot eu, recent intors la insistentele publicului, cu cel mai asteptat articol al lunii (I guess?!) despre "cum e viata in anu' 3" - publicat in special pt cei care nu pot astepta pana pe 2 octombrie 25 septembrie.

Ca sa reduc din suspans: e tot un semestru de coding cu multe teme si o groaza de teste. Lucru la care se mai adauga si competitia tacita dintre profi pt cine are cel mai lung powerpoint; ale dracu' cursuri parca nu tineau doar 3 ore.

Totusi un lucru care m-a enervat anul asta...si pe care nici pana acum n-am reusit sa-l inteleg: de ce toata lumea da teste la curs ?! Nu vad rostul; mai nou cursurile sunt oarecum recapitulative, in ideea ca studentii ar trebui sa cunoasca deja materia (asta daca vor nota ok pe prezente). Dar cum naiba sa inteleg dupa 6 ore de cursuri nush ce balarie explicata prost de un prof / o profa in 5 minute. Daca invat de acasa, nu mai are rost sa vin la curs - daca vin la curs si nu invat, punctajul pe prezenta nu merita efortul.


Si din nou, miracolul de sarbatori a facut sa am 5 teme cu deadline pe ~23 decembrie...fuck this life.


Ok, materiile:


1. APD (Algoritmi Paraleli si Distribuiti)

Curs: Elena Apostol
Laborator: Radu-Ioan Ciobanu


Trupa de la PC, inca un semestru; de data asta prezentand tot felul de algoritmi pt calcul paralel (multithreaded) si distribuit (pe diverse statii/cluster).

Curs: interesant pana la un punct; acopera ceva despre openMP (care se rezuma cam la o singura instructiune) paralelism in Java si mesaje cu openMPI. Plus o groaza de algoritmi scrisi intr-un pseudocod ceva mai bizar, care se vor cere la examen + complexitati. Din ce am auzit, cursul seamana surprinzator de mult cu cel de la seria CC (adica pdf-urile erau aceleasi...). Parerea proprie si personala: se putea aloca mai mult timp si imbunatati tehnica de predare :/
Testele de prezenta sunt destul de dificile uneori.

Laboratorul: am nimerit bine; explicatii bune, punctaj ok, asistent super. Cealalta semigrupa a facut cu o persoana... a very special snowflake :)), acelasi care a scris si exercitiile pt laburi. Seamana cu laboratorul de PA ca nivel de dificultate - insa aici erau ceva mai multe probleme si se foloseau algoritmi care nu erau in curs. Because why not? Urat de debuggat si mult de scris - beware.

Teme:  3. La prima de scris un algoritm si paralelizat cu openMP (aka bagi #pragma omp for peste tot si vezi daca merge), a 2-a in Java si destul de comoda. A 3-a a fost mai lunga: un program care sa ia niste poze, pe urma sa stabileasca un arbore de acoperire pt retea si sa trimita bucati din poza pt procesare (aplicat blur, sharpen, etc.) la fiecare sistem iar la final sa primeasca bucatile inapoi si sa construiasca poza modificata.

La examen: structura de la PC - dat pe numere, 1 subiect de 2 puncte, 1 de un punct si 2 la alegere (fiecare de 1 punct, se puncteaza un singur subiect). De obicei primul exercitiu face diferenta intre trecut si picat...problema apare cand primul subiect iti cere sa scrii un algoritm de 2-3 pagini (problema terminarii), care in curs e prezentat cu 4 idei pe jumatate de slide...Nu-s prea echilibrate foile de examen dar se corecteaza ok...sa zicem. Se cam vedea dupa nota cine si ce numar a avut...




2. EGC (Elemente de Grafica pe Calculator)

Curs: Irina Mocanu (iar!)
Laborator: Gabriel Ivanica


"OupănGele."

Curs: o groaza de teorie si explicata destul de nasol. As always, teste de prezenta...notele variaza intre 2 si 10 (2 pt muritori, 10 pt cei care citeau de acasa si copiau din curs in timpul testului - cu cateva mici exceptii). Am renuntat sa mai merg chiar daca media notelor din curs se aduna la nota din examen...nu merita sa mai stau 3 ore.

// o mica paranteza: in momentul de maxima plictiseala am instantiat un contor... care a ajuns pe la ~193. practic...mi-era teama ca face overflow.

Laboratorul: asta a fost in regula; se poate termina destul de repede dar necesita putina atentie. Sunt niste parti mai tricky (in special la 3D, partea cu camere first person / third person). In mare... trebuie urmarite niste todo-uri.


Temele: 4 teme destul de muncitoresti (contin si bonusuri). Ultima  (cu texturi) a parut ceva mai usoara - avea si punctaj mai mare. Stiu ca era la un moment dat o regula cu maxim 3 teme pe materie...but 'dem rebels. Toate trebuie prezentate in anumite saptamani la laborator (cam atunci se si corecteaza).

Examenul: comod; o foaie cu 6 subiecte, destul de simple - de dedus o matrice de proiectie, de explicat niste algoritmi din curs; lumea incepuse sa plece cu 20 de minute inainte sa se termine. Personal n-am reusit sa invat dupa pdf-urile date...mi se pare prezentata oribil materia - long live wikipedia!

  

3. RL (Retele Locale)

Curs: Mihai Chiroiu
Laborator: Florin Stancu


O materie la care se pica destul de greu daca faci temele, dai testele si mergi la laboratoare. Singura la care nu se cere jumatate din punctaj in examen.


Cursul: am fost doar cand se dadeau testele (niste grile cu intrebari destul de specifice) - scuze :/ Exista o carte dupa care se preda toata materia si dupa care se poate invata...s-ar putea sa merite luata de data asta, o sa explic mai tarziu de ce.


Laboratorul: lung si cam plictisitor; nu e dificil dar sunt multe exercitii repetitive in care trebuie sa configurezi routere si switchuri, bazandu-te pe comenzi adaptate de la problemele anterioare.


Temele...au fost ok; una in Packet Tracer si cealalta de configurat ceva pe linux - gen USO.


Daca nu ma insel a existat si un fel de partial: atat teoretic cat si practic (in zile diferite).


Examenul: open-book, fara nota minima de trecere (conditia e sa fie peste 5 in total); am busit putin examenul asta fiindca ma asteptam la teorie si m-am incapatanat sa nu iau cartea; am pierdut 2 zile din sesiune conspectand cursul ca mai apoi sa vad ca nu-mi folosea teoria respectiva. To be honest...cred ca aveam sansa la o nota mai mare daca stateam sa rezolv laboratoarele si veneam fara materiale la examen...


Singura dificultate aici: se aloca destul de putin timp pt teste in general.


 
4. LFA (Limbaje formale si automate)

    Curs: Lorina Negreanu
    Seminar: Alex Agache
   


    Student: "Poate s1 sa fie stare finala?"
    Asistentu': "uh...stai sa ma gandesc un pic...mi-a dat segmentation fault"



O materie cu expresii regulate, automate deterministe & nedeterministe, masini Turing si alte obscenitati.


Cursul: amplu si cam reusea sa ma piarda de multe ori; din fericire se explicau la seminar (ceva mai ok). Destul de multe demonstratii si unele relativ lungi / matematice; de asemenea exista si niste teme de curs.


Seminarul: cu exercitii legate de ce s-a facut la curs; good enough, am inteles mai bine de aici; se dau niste teste (cred ca 2 au fost?) cu ajutorul carora se stabileste punctajul pe seminar. Desigur fiecare asistent alege cum puncteaza - altii stiu ca scot la tabla; noi am fost mai multi la seminar si strategia asta nu era eficienta considerand limita de 2 ore.


Teme: una singura (de fapt...2 dar una era simpla si nu se puncta...dar totusi se cerea rezolvata). Eh a 2-a era aia faina: in flex cu java sau C(++) trebuia sa construiesti un automat care sa verifice niste lucruri legate de o gramatica (daca limbajul generat e vid, daca contine sirul vid si care sunt neterminalii inutili). Nu-i chiar asa naspa...dar ia ceva pana te inveti cu flex (e cam trantit asa, la curs nu prea s-a vorbit despre asta) si pana structurezi automatul dureaza...


Un mic hint: cititi cu mare atentie ce scrie prin enuntul temei (responsabilul depuncteaza pana si pt formatarea readme-ului).


Examenul: am reusit sa intarzii la examen din motive pe care nu le voi mentiona :)). Anyway, exercitiile sunt ca alea de la seminar ("cum e limbajul L + justificare"; "daca L1 e regulat, demonstrati ca L3 nu este"; + ceva cu lema de pompare pt limbaje independente de context si turing decidabilitate). It's not that bad, dar e o materie la care trebuie invatat binisor. As always, nota poata sa varieze si in functie de cine corecteaza (o sa intelegeti voi asta).







5. CN2 (Calculatoare Numerice 2)

Curs: Decebal Popescu
Laborator: Vlad Ciobanu
N-o sa va mint, am fost nevoit sa invat ceva mai mult decat la CN1.

Cursul: cu prezenta. Parca si seria CC facea cursul cu acelasi prof (ambele serii erau aproximativ sincronizate). Hint: daca aveti posibilitatea sa nu faceti cursul...run you fools. Altfel bad things will happen. De asemenea, cursul cuprinde intrebari pt studenti / studente, multa lume sta de obicei pe randurile din spate din motivul asta.

Laboratorul: in echipe de 2 parca; se dau niste proiecte (verilog) pt care se aloca un nr de saptamani - ultimul a fost mai hardcore, de implementat algoritmul IDEA (criptare + decriptare). Corectarea proiectelor are loc la laborator - se uita asistentul cateva minute peste surse si verifica daca functioneaza. Notele au un mic "zgomot" ca sa zic asa: de exemplu... un proiect functional la care nu a fost implementat un singur subpunct a luat nota mult mai mica decat un altul incomplet care avea si erori la sintetizare.

Temele sunt de fapt problemele alea de care vorbeam mai sus - nu prea le poti termina in timpul laboratorului.

Examenul: o grila cu mai toata materia de la curs - data pe calculator; exprimarea e mai ciudata in grila si e putin diferita de celelalte: adica...uneori sunt 6 raspunsuri corecte din 6, alteori 0 din 6. Alteori 2 raspunsuri par bune dar de fapt 1 e "mai corect" decat celalalt si prin urmare doar 1 e corect. This kind of stuff. Ah...si nu va luati orbeste dupa zvonul ca sunt aceleasi exercitii ca anul trecut...cateva difera; Inainte de sesiune trebuie sa va organizati voi si sa mergeti la un anumit interval sa dati examenul intr-o sala de laborator.





6. Economie

O materie strict de umplutura; chiar nu vad rostul ei in contextul actual - era chiar asa greu sa lase 2-4 ore libere pt studenti?

Ma rog, stiu ca a venit alt profesor dar a fost mai bine decat ma asteptam - destul de comoda din multe puncte de vedere si am ramas cu cate ceva. Kudos.


-----------------
Cred ca asta a fost primul semestru - as zice ca a fost ok pt cei care erau dispusi sa lucreze si sa invete ceva. Revin cu un articol si despre al 2-lea cand imi fac curaj. brb.