marți, 5 mai 2009

Back to writing dupa maraton de teme

Dupa o luna de nescris, din cauza excursiei la munte si maratonului de teme, revin la scris pe blog. Missed me? :P

Apropo de teme, e interesant ca am avut un poll pe aici... in legatura cu ce parere are lumea despre multe teme date elevilor. Rezultatul: 2 oameni au zis ca sunt utile. 2 oameni au zis ca sunt inutile ca le faci in graba oricum si nu inveti nimic din ele. 2 oameni au zis ca vor determina elevul sa urasca materia respectiva.

Ieri seara am avut de predat o tema la o materie numita Protocoale de Comunicatii... Un server si client de chat realizat ca pe vremea lu'strabunicu, useless in real life, cu scopul doar sa inveti. M-am luptat 3 zile si 3 nopti ca'n povesti cu SEGFAULT-urile in C. Am epuizat in timpul asta toate injuraturile cunoscute si am inventat si cateva noi. Intr-adevar am invatat cum sta treaba cu socketurile in C. M-am simtit bine cand am vazut ca clientii chiar isi pot trimite mesaje intre ei. Dar urasc C-ul. Efectul temei asupra colegilor: a fost 1 mai. 90% din ei au fost plecati. In spiritul politehnicii, tema se lasa pe ultimele zile (si daca o faci mai devreme, te trezesti ca scrie pe forum ca profu' s-a razgandit si vrea sa faci altfel, deci trebuie sa rescrii). Ieri s-au chinuit sa faca ceva. Mie mi-a luat 3 zile, in conditiile in care facusem network programming in python si java inainte. Lumea cauta fie de unde sa copieze, fie chiar incerca sa o faca cat mai in graba, frustrarea la maxim cand in loc de mesajul trimis de un client (evident o injuratura), apareau doar caractere ciudate. In final, mai nimeni nu a realizat ceva functional pana la deadline. Multi si-au introdus organele genitale zicand "asta e, frate, o pic!", si mai multi au trimis programele care nu fac decat conexiunea intre server si client si eventual autentificarea, si cam atat. Si astia sunt studenti foarte buni la programare in general, primii sau printre primii din liceul de la care au venit, dar care... guess what? Au ajuns sa urasca programarea.

Statistic vorbind, daca cineva vrea sa invete ceva, va invata fara sa il oblige vreun profesor. Daca nu vrea, nu vrea si punct. Dragi profesori, prin teme nu veti determina un elev care nu invata sa invete, ci invers, veti determina un elev care invata sa nu mai invete. Think about it!

5 comentarii:

  1. (long comment ahead)

    Facultatea nu-i un loc în care să înveți lucruri utile. Pe de altă parte, nici un loc de muncă nu ar fi unul în care să înveți așa ceva. Sau nu, mă înșel. La locul de muncă înveți lucruri utile maxim un an, după care vei observa că ele îi sunt practic utile doar angajatorului, iar tu te plafonezi de mamă mamă. So... unde tragem linia în legătură cu ce e util și ce nu e util?

    Sunt de acord că: cea mai mare parte a fizicii nu e utilă (ce am făcut eu, nu pot vorbi în numele altora), 90% din elth e inutil, peste jumătate din ceea ce se face la electronici nu folosește la absolut nimic.

    Nu sunt de acord să spui că o astfel de temă e inutilă. De fapt stai. E inutilă pentru unul care știe bine programare (iar aici prin programare mă refer la cea mai aproape de nivelul de jos, adică lucrul cu pointeri, parcurgeri de șiruri, alocări, dealocări, verificare de memory leak-uri etc.), că ăla o să se plictisească. Cei care au segfault-uri în draci ar face bine să îi înjure pe cei cu care au făcut programare (îi urăsc pe toți profii de programare din poli fiindcă folosesc urâțenia aia de Dev-Cpp). gdb-ul are bunul obicei să reporteze linia care cauzează segfault-ul respectiv, deci problema se poate rezolva în câteva minune.

    Dar într-adevăr, singurul punct bun al temei e că a fost o temă un pic mai complexă, care trebuia gândită destul de bine înainte să te apuci să o programezi. Altfel, e inutilă și ea. Concluzia? În facultate nu prea înveți lucruri utile, ci chestii care te învață să gândești.

    Ok, temele de genul ăsta nu ajută la mare lucru. Dar dacă nu astea, atunci care ar fi alea care să fie utile? Sau... ce am putea face mai bine să învățăm materia asta (care mie mi se pare destul de grea) sau alte materii, pe parcursul semestrului? Fiindcă acum serios, e cam aiurea să stai trei luni degeaba și să înveți tot în sesiune.

    Eu unul aș avea multe să le reproșez celor de la PC, dar nu faptul că dau teme. De exemplu, le-aș reproșa faptul că sunt în săptămâna a zecea și nu am primit nici până acum rezultatele la tema 1.

    RăspundețiȘtergere
  2. Well, treaba sta cam asa din cate o vad eu. Sa facem un client de chat ar fi ceva interesant... Dar asta e mai degraba o corcitura intre client de mail si client de chat. Ceva ce nici un utilizator normal n-ar folosi. L-am programat, e functional. Bun. La ce imi foloseste acum?

    Si am colegi care ieri seara la 11 noaptea ma intrebau cum se folosesc select() si FD_SET() mai exact... Pana la urma au facut si ei ceva la tema asta... Cat crezi ca au invatat din ea?

    Personal eu daca vreau sa invat ceva, invat si fara teme. Cum am zis si in post, am facut network programming in python si java. Nu aveau legatura cu faculatea.

    Si zi mersi ca nu ti-a dat rezultatele. Mie mi le-a dat... si mi-a demonstrat prin asta ca nu s-a uitat decat foarte superficial peste cod si ca nici n-a citit readme-ul pe care ne obliga sa-l facem. M-a depunctat ca cica nu am pus o chestie care este in cod, cu commenturile corespunzatoare, si scris mare in readme ca e acolo! Gotta love poli. Poate ca o sa vina cineva sa zica ca deh, e neatentia asistentului, se mai intampla, dar nu despre asta e vorba. Deci daca tot dau teme, macar sa se uite peste ele. Au si ei viata si n-au timp? Atunci sa nu mai dea teme! Sa ma lase pe mine sa fac ce am chef cand am chef.

    Teme utile? Nu exista. Alea ni le alegem noi. Vreau sa invat ceva? Ma apuc de diverse proiecte de programare. Am vreo 3 proiecte momentan, care ar fi chiar fun, dar nu am timp sa ma ocup de ele din cauza temelor de genul.

    Te invata sa gandesti? Da, te invata sa gandesti ca esti un rahat care nu are dreptul sa aiba initiativa, trebuie sa faca ce zice sefu, ca un sclav, taskuri repetitive, si ca nimeni nu da 2 bani pe munca ta... mai rau ca nenea gunoieru', da in fata unui comp...

    RăspundețiȘtergere
  3. „Teme utile? Nu exista. Alea ni le alegem noi. [...]”
    Ar fi fain să putem face teme la liber la măcar o materie (mi se pare că proiectul la PM e ceva în genul ăsta), dar ei consideră că nu suntem în stare. De ce? Păi nu știu. Așa consideră ei, probabil că unii chiar nu sunt în stare.

    „Te invata sa gandesti? Da, te invata sa gandesti ca esti un rahat care nu are dreptul sa aiba initiativa, trebuie sa faca ce zice sefu, ca un sclav, taskuri repetitive, si ca nimeni nu da 2 bani pe munca ta... mai rau ca nenea gunoieru', da in fata unui comp...”
    Din păcate, cam ăsta e mersul lucrurilor când te angajezi la o firmă. But I beg to differ referitor la temă. Pe mine m-a învățat să înțeleg cum funcționează OS-ul în spate, cum îmi partajează resursele pentru comunicație pe TCP și în plus, cam cum ar arăta (în mare) un backend pentru un protocol de chat. O listă destul de scurtă, ai zice.

    Acum, din ce înțeleg eu, lucrurile se învârt între două extreme: o parte din oameni au experiență în coding și se simt plafonați de astfel de teme, iar alții nu reușesc să le facă din cauza gradului de dificultate/timpului de muncă necesar. Ținând cont că știam de la început că e o facultate în care toți vor să ne frece la creieri, e clar că e nevoie să investim timp (altfel ce rost mai avea să ne apucăm). Pentru altele s-ar putea da vina pe sistem/profesori/asistenți/whatever, iar noi studenții nu putem să schimbăm lucrurile cu mai mult de un feedback (post-ul tău e un exemplu, acum rămâne să citească și cei care se ocupă de materii).

    RăspundețiȘtergere
  4. "Ar fi fain să putem face teme la liber la măcar o materie"
    Subscriu! Ar fi foarte tare :D

    "Pe mine m-a învățat să înțeleg cum funcționează OS-ul în spate, cum îmi partajează resursele pentru comunicație pe TCP și în plus, cam cum ar arăta (în mare) un backend pentru un protocol de chat. O listă destul de scurtă, ai zice."
    Ce am invatat eu pana acum de la politehnica: cum se fac integrale multiple, care este principiul de functionare al unei diode si al unui tranzistor... hmm si cam atat. Ce stiu despre programare ori am invatat din liceu (partea de algoritmica), ori cu bunul meu prieten google care imi raspunde la toate intrebarile referitoare de sintaxa unui limbaj. Poate in anii mai mari chiar e mai bine, nu stiu, voi vedea...

    RăspundețiȘtergere
  5. @valkyria:

    te afli la una din cele mai bune facultati tehnice din Romania. Ce anume face ca aceasta facultate sa fie in top, mai ales pe partea didactica (ma refer la faptul perceput in industrie, ca absolventii acestei facultati sunt in medie mai buni decat cei de la altele) ?

    TEMELE sunt o parte importanta din raspuns. O facultate fara teme, proiecte etc, doar cu un examen, este o facultate slaba. Doar invatand pt un examen in sesiune nu capeti cine stie ce deprinderi. De altfel se stie ca ce inveti in sesiune uiti peste cateva luni. Lucrand la zeci si zeci de teme si proiecte capeti deprinderi, nu invatand la examen.

    Deci incearca sa accepti temele asa cum ai acceptat ideea de tema la scoala, ca fiind o necesitate in procesul de invatare. Nu ai fi intrat la poli daca nu ai fi facut, pe tot parcursul scolii, teme peste teme la mate si fizica. Nu ai fi invatat mate si fizica doar citind teoria din carte.

    Si bineinteles nu mai cauta utilitate in toate. Temele si proiectele au utilitate didactica (si pe prima pagina a proiectului de diploma scrie: scop didactic). Nu faci tema pentru ca din asta sa iasa un program pe care sa il vinzi pe internet catre milioane de utilizator. La nici o facultate nu se face asa ceva. Ce vrei tu sa faci pt tine sau pt a scoate un ban, e treaba ta, proiectele tale, etc, si va fi scopul de baza al jobului. Aici esti la facultate, nu la job.

    RăspundețiȘtergere