Teme:Reguli

Reguli de trimitere a temelor
Tema trebuie trimisa ca un fisier .zip si trebuie sa contina:
 * un fisier README in radacina arhivei
 * un Makefile in radacina arhivei cu urmatoarele reguli:
 * build - compileaza tema si genereaza executabilul; numele executabilului va fi precizat in enuntul temei, la sectiunea Testare
 * clean - face curat; nu mai trebuie sa ramana decat ceea ce nu poate fi generat din Makefile in urma comenzii make build (in principiu sursele)

Arhiva nu trebuie sa contina decat fisierele sursa (nu se accepta fisierele executabile sau obiect).

Daca arhiva nu respecta specificatiile de mai sus nu va fi acceptata la upload si astfel tema nu va fi luata in considerare.

Reguli impotriva copierii temelor
Se considera copiate doua teme care seamana suficient de mult pentru a putea trage aceasta concluzie. Modificarea unei alte teme, asemanarea mai mult sau mai putin evidenta a implementarii, bucati de cod identice etc. duc la considerarea temelor in cauza ca fiind copiate.

In cazul in care doua teme sunt considerate copiate, atat sursa cat si destinatia se vor depuncta identic, fara discutii relative la cine a copiat de la cine si a cui e vina. Mai exact, la prima abatere de acest gen se va considera punctajul tuturor temelor zero.

Reguli de notare
Temele trebuie sa foloseasca API-urile specificate la laborator. Astfel, temele de UNIX (Linux) trebuie sa foloseasca API-ul specific UNIX, fara a folosi de exemplul functii oferite de biblioteca Wine. La randul lor temele de Windows trebuie sa foloseasca API-ul Win32, prezentat la laborator. Nu se accepta folosirea de functii MFC, sau functii POSIX sau functii din crt (de exemplu nu se considera acceptate functiile _open, _close, etc; in loc de aceaste functii ar trebuie sa folositi functiile CreateFile, ReadFile.).

Temele vor fi verficate automat cu ajutorul unor teste publice, teste ce vor acoperi 90% din notă. Pot exista şi situaţii excepţionale în care nu se ţine cont de această regulă (de exemplu dacă tema este implementată doar pentru a trece testele şi nu respectă cerinţele temei). Sistemul de verificare depunctează (automat) anumite situaţii (segmentation fault, exceptii netratate, erori sau warning-uri de compilare) indiferent de rezultatul testelor.

10% din nota temei se va acord după inspectarea codului sursă. Se pot depuncta următoarele situaţii:


 * Makefile incorect sau README necorespunzator
 * situatiile de buffer overrun, folosirea incorecta de pointeri, neverificarea codurilor de eroare
 * utilizarea unor metode ce consuma resurse in mod inutil (alocare de memorie, busy waiting)
 * neeliberarea resurselor folosite (eliberare memoriei alocate, stergerea fisierelor temporare, inchiderea fisierelor, eliberarea resurselor IPC, asteptarea si terminarea proceselor copil)
 * situatii de deadlock, sincronizari incorecte intre procese/thread-uri, race-uri manifestate sau nu
 * alte situatii nespecificate aici, dar considerate inadecvate

Deadline-ul temelor va fi precizat pe site, odata cu publicarea enuntului. Pentru fiecare zi intarziere o tema va fi depunctata cu 0.25 puncte din cele 10 ale temei. O tema poate fi depunctata cu maxim 3 puncte din cauza intarzierilor.