[so] Warning-uri si alte probleme

Dan Badea dan.badea at microsoft-lab.pub.ro
Sun Nov 25 12:18:39 EET 2007


Buna ziua,

Apreciez raspunsul. Si apreciez si faptul ca la SO lucrurile stau mai
bine decat in alte parti. Nu sunt absurd si nu ma cramponez intr-un
punct din tema (doamne fereste, am pierdut muuuult mai multe, muuuuult
mai stupid). Dar, faptul ca la SO lucrurile stau asa cum trebuie sa stea
(un evaluator automat, conditii favorabile pentru student, care au ca
scop incurajarea efectuarii temelor) nu inseamna ca nu exista loc de a
inbunatati lucrurile. Iar acesta sigur este o problema.

Oricum, as vrea sa fac o remarca la adresa depunctarii pentru
intarzieri. Faptul ca nu se scade sub nota 7 nu este ceva exceptional ci
mai degraba ceva normal. Dupa parerea mea scopul temelor este acela de a
testa niste cunostinte, iar acest scop nu are nici o legatura cu
momentul in care studentul se hotaraste sa faca temele. Ideea e sa scrii
tema bine si corect (sa arati ca ai invatat ce trebuia sa inveti pentru
a o rezolva). Faptul ca lucrurile stau altfel la alte materii arata o
problema grava acolo. Personal, daca eu ar trebui sa fac sistemul, nu as
depuncta deloc intarzierile. Ar fi de preferat o rigurozitate mai mare
la celelalte aspecte ale unei teme decat depunctarea pentru momentul in
care ai facut tema. Daca tema e buna ea e buna si acum si peste 2
saptamani si peste un an. Deci, faptul ca SO-ul se aliniaza la un
standard de normalitate este un lucru de apreciat, dar nici nu trebuie
exagerat. Problema esta ca la restul materiilor la care lucrurile nu
stau asa, nimeni nu zice nimic si deci nimic nu se schimba. Chiar si
dumneavoastra ati putea sa incurajati alti profesori sa foloseasca
acelasi sistem. Intodeauna trebuie sa existe bunavointa de ambele parti
pentru a merge inainte, si cum eu trebuie sa accept ca pe viitor va
trebui sa abordez altfel situatia si dumneavoastra trebuie sa faceti
acelasi lucru. Exemplul tebuie sa plece de sus in jos intodeauna si nu
trebuie ca de fiecare data sa se pretinda mai mult de la student.

Ca o ultima observatie, chiar in sesiunea trecuta am avut 3 materii la
care punctajul meu final a fost 94 din -100. Dupa cum va puteti imagina
toate au fost incheiate 9. Este evident ca la toate un puncticel in plus
pe undeva in timpul anului ar fi facut diferenta. Deci pot spune ca stiu
foarte bine valoarea unui 0.1 din nota finala si in cazul in care o sa
am nevoie de el nu am sa ezit sa il pretind.

Apreciez inca o data promptitudinea raspunsurilor si faptul ca am ajuns
la un oarecare consens.

Cu bine,
Dan Badea

-----Original Message-----
From: so-bounces at cursuri.cs.pub.ro [mailto:so-bounces at cursuri.cs.pub.ro]
On Behalf Of Razvan Deaconescu
Sent: Sunday, November 25, 2007 11:39 AM
To: Sisteme de Operare
Subject: RE: [so] Warning-uri si alte probleme

On Sun, 2007-11-25 at 11:04 +0200, Dan Badea wrote:
> Buna ziua,
> 
> Va multumesc pentru recomandari. Din fericire am o copie personala a
>  cartii pe care mi-ati recomandat-o. Va multumesc si pentru articole,
>  toate sunt foarte interesante.
> 
> Sa trecem totusi inapoi la oile noastre care nu sunt functia strcat in
>  sine, ci depunctarea automata care este facuta pentru teme si care
>  duce la bad practices (si anume suprimare de warning-uri).
> 
> Am atasat un exemplu care compilat cu g++ sub linux nu produce nici un
>  warning (-Wall). De aici, sa inteleg ca strcat este deprecated numai
>  pentru Windows? Sau mai bine sa inteleg ca strcat e deprecated doar
pt
>  compilatorul  Microsoft, iar pentru cel al GNU nu?
> 
> Acum ca sa revin la sugestiile de lectura care mi s-au facut. In
primul
>  rand este vorba despre o tema la SO (si cum bine stiti avem multe
>  teme), iar daca as sta sa citesc cate mi s-au recomandat pentru
>  fiecare "problema" care apare, probabil ca, desi as invata foarte
>  multe, nu as mai termina niciodata TOATE temele. Nu este normal ca
>  atitudinea reprezentantilor facultatii sa fie aceea in care esti
mereu
>  impins spre lectura personala. Credeti-ma ca am facut destula de
acest
>  gen si majoritatea cunostintelor pe care le-am dobandit se bazeaza pe
>  acest mod de a invata. Insa nu este deloc normal ca studentul sa fie
>  mereu pus sa "descopere"/invete singur. Nu venim la scoala ca sa
alfam
>  totul din alte surse. Daca considerati ca acest subiect merita
>  atentie, si ca studentii ar trebui sa stie ca strcat nu este bine de
>  folosit atunci ar trebui sa se vorbeasca despre asta. Dar, dimpotriva
>  aceasta este functia care ne-a fost predata. In concluzie, va rog sa
>  nu apelati la cunostinte pe care studentul trebuie sa dobandeasca
>  singur atunci cand propuneti (sau corectati/depunctati) o tema. 
> 

Imi pare rau daca tu personal consideri ca atitudinea noastra este ca
"studentul" trebuie sa invete singur. In mod cert atitudinea nu va fi
"uite trenuletul cu informatie; deschide gurita ... asa ... papa tot".

Din pacate, nu putem face totul la cursul/laboratorul de Sisteme de
Operare. Mi-amintesc o discutie cu Tavi acum un an in care ii spuneam
"Tavi, trebuie sa facem socketi la SO; nu te poti baza pe ce s-a facut
la PC" (vorbeam din proprie experienta). Tavi mi-a zis (si avea
dreptate): "Razvan, trebuie sa te bazezi pe ceva".

Asa si noi ne bazam pe faptul ca, in mare parte, lumea s-a lovit de
problema buffer overflow-ului si a problemelor folosirii functiilor pe
siruri. Din pacate asta nu se prea intampla, dar nu avem timp sa facem
asta la SO.

Ar fi absurd sa cerem studentilor sa stie sa lucreze cu procese,
thread-uri, semnale, primitive de sincronizare cat timp asta intra in
aria de cuprindere a cursului. Din acest motiv aceste notiuni sunt
prezentate in detaliu la curs si la laborator.

[...]
> Si in final, foarte bine, daca vreti sa corectati temele automat, nici
>  o problema, dar ca si in viata si aici exista exceptii. Aceasta in
mod
>  clar este una si mi se pare cat se poate de normal sa nu primesc nici
>  o penalizare.
> 
> Astept niste raspunsuri si legat de a doua parte a mail-uli precedent.

Da, este o exceptie.

Depunctarea pe baza de warning-uri are rostul ca studentul sa-si dea
seama ca e ceva in neregula cu programul sau. De obicei asta inseamna ca
ai uitat sa pui mai multe argumente la printf (destul de grav), ca nu
initializezi variabile, etc.

Cazul tau este o exceptie prin prisma faptului ca pe Linux nu se
intampla acest lucru. Dar nu o sa facem o lista de exceptii pentru
fiecare mic warning care apare in cadrul compilarii unui program.

In cadrul testarii automate se scade 1p pentru fiecare warning
indiferent de natura lui, puterea lui, relevanta, etc.

Recomandarea mea este ca, de acum incolo, avand acest suport de testare
automata (care, din cate stiu eu, nu exista nicaieri in alta parte in
facultate si care prezinta avantaje mari atat studentilor cat si
asistentilor) sa vezi rezultatul rularii programului tau, depunctarile,
etc. si sa iei repede actiune.

Ca o scurta paranteza de final, am trei observatii:

* Nimeni nu vrea sa va ia gatul sau punctele la SO; daca ar fi asa,
credeti ca mecanismul de depunctare pentru intarziere ar fi cel descris
in regulile de notare[1]? Bu, consideram ca temele sunt destul de
relevante pentru subiectele abordate si pentru a va acoperi necesarul de
cunostinte si deprinderi.

 Drept urmare, intentia, dorinta si placerea noastra ar fi ca voi toti
sa faceti toate temele. Cand aveti timp, chef si placere - punctajul
maxim unei teme nu va scadea sub nota 7 niciodata. Nici in sesiune, nici
in semestrul 2, nici in vara, nici la anul (depinde cand apucati voi sa
faceti temele).

 Accentul pica pe dorinta ca voi sa faceti cat mai multe teme si cat mai
bine, nu sa le faceti cat mai repede. De multe ori conteaza mult mai
mult calitatea codului decat cantitatea de cod scrisa.

* Depunctarea ta din cauza warning-urilor inseamna 1p din nota temei
adica 0.1p din nota finala. Stiu ca e vorba de principiu, dar chiar
crezi ca va conta asa ceva la final. Iti garantez ca daca la sfarsit vei
fi la 0.1p de obtinerea unei note mai bune, o vei obtine.

* Daca aici nu avem sistem cu forumuri si, drept urmare, nu exista forum
de feedback, nu inseamna ca nu puteti da feedback chiar pe lista de
discutii. Orice remarca, parere, mesaj critic constructiv, sugestie sunt
mai mult decat binevenite. Pot fi referitoare la punctare, la teme, la
laborator, la curs.

La sfarsitul semestrului va exista un formular de evaluare pe site
(http://cs.pub.ro/~so) pe care va rugam de pe acum sa il completati.
Destul de probabil va exista unul si la nivelul catedrei (pe
http://curs.cs.pub.ro) asa cum a fost si anul trecut in semestrul 1.

Vom analiza si vom lua in considerare observatia/feedback-ul tau
referitor la depunctarea unui singur warning daca acela apare. Acest
lucru nu se poate face insa acum, pentru ca ar insemna sa facem o
exceptie doar pentru tine si ar genera haos. Oricum, daca acel 0.1p ar
face diferenta la final, se va tine cont de acest lucru.

Scuze de mesajul lung. Sper ca nu am repetat (prea mult) unele lucruri
si ca m-am facut inteles.

Razvan

_______________________________________________
so mailing list
so at cursuri.cs.pub.ro
http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/so


More information about the so mailing list