This is an old revision of the document!


Reguli și notare

În cadrul cursului de Introducere în organizarea calculatoarelor și limbaje de asamblare (IOCLA) sunt două componente: partea de laborator (parcurs) și partea de curs. Partea de curs acoperă cursurile, lucrările de curs și examenul final în vreme ce partea de laborator acoperă activitatea de laborator și temele.

Mai jos sunt detaliate modurile de desfășurare a cursurilor și laboratoarelor, sistemul de notare, reguli și recomandări.

Distincții

Pe parcursul anului academic 2021-2022 vor fi acordate distincții clasificate în următoarele categorii:

  • Examen: 1 distincție pentru fiecare variantă de examen, acordată celui care termină cel mai rapid examenul (cu punctaj maxim)
  • Activitate la curs: 12 distincții în total, 3 per serie
  • CTF de la finalul semestrului: 5 distincții pentru participanții clasați pe primele locuri ale clasamentului
  • Teme: se vor acorda distincții doar în cazuri excepționale. Exemple: coding style excepțional, o rezolvare extrem de originală, o temă foarte bine optimizată
  • Meme-uri: se vor acorda distincții pentru mesaje amuzante de tip meme în cadrul “concursurilor de meme” anunțate în comunitate

Fiecare student va putea primi maximum o distincție. Dacă un student va fi nominalizat pentru mai multe categorii, i se va acorda distincție doar pentru o categorie, iar celelalte vor fi cedate altor studenți din coadă.

Notare

Anumite componente ale materiei (teme, laborator, examen final) dispun de punctaje bonus sau suplimentare. Acestea pot fi folosite pentru a suplimenta punctaje mai mici în cadrul aceeași componente. Dacă nota pe componentă trece de nota maximă aferentă, atunci această notă se trunchiază. Nu puteți transfera punctaje bonus între componente.

Pentru absolvirea materiei trebuie să obțineți cel puțin 50% din punctajul de curs (lucrări de curs și examen final) și cel puțin 50% din punctajul de laborator (laborator și teme) și 50% din punctajul cumulat.

Dacă nu ați obținut 50% din punctajul de laborator nu veți putea participa la examenul final și va trebui să refaceți disciplina anul universitar următor.

Sumar notare

  • 1 punct: Activitate de laborator (12 laboratoare)
  • 1 punct: Lucrări (4 lucrări)
  • 4 puncte: Teme (3 teme)
  • 4 puncte: Examen final (în sesiune)

Notare detaliat

Activitate de laborator

Laboratorul valorează 1 punct. Notarea este realizata subiectiv de către asistent.

Vor fi 12 laboratoare pe parcursul semestrului. Fiecare laborator poate avea puncte bonus care sunt folosite pentru a compensa eventuale puncte pierdute în cadrul altor laboratoare.

Nota pe laborator se obține împărțind punctajul la 12. În situațiile în care punctajul depășește 1 punct, nota se va trunchia; cu alte cuvinte, nu există posibilitatea transferării surplusului către o altă componentă a materiei.

Teme

Temele valorează 4 puncte.

Există 3 teme, fiecare valorând 1.33 punct.

Submisia temelor se face folosind interfața vmchecker. Termenul limită de submisie de teme pe interfața vmchecker urmeaza a fi anuntat.

După expirarea termenului de rezolvare, o temă este depunctată cu 2 puncte pe zi (din 10) timp de 5 zile. După 5 zile de întârzieri nu se mai pot trimite teme. Nu se pot trimite teme pe perioada verii.

În realizarea temelor țineți cont de regulile și recomandările din secțiunea Realizarea temelor si Reguli de realizare a temelor.

Perioada de vacanță (18 decembrie 2021 - 16 ianuarie 2022) nu este contorizată ca întârziere.

Lucrări de curs

Există 4 lucrări de curs care valorează 1 punct în total. Acestea se vor susține online pe platforma de Moodle și vor fi disponibile pe durata unei zile (acestea se vor închide la 23:55 în cadrul zilei anunțate). Fiecare întrebare va avea 4 variante de răspuns, dintre care una singură este corectă. Desfășurătorul lucrărior de curs este descris mai jos, așa cum este indicat și în Calendar. Fiecare lucrare va avea 5 întrebări, iar timpul efectiv de răspuns este de 10 minute.

Lucrarea de curs 1 va avea loc în data de 26-Oct-2021 . Lucrarea va fi dată din capitolele 1-3 (Programe și sistemul de calcul, Investigarea programelor, Arhitectura sistemului de calcul).

Lucrarea de curs 2 va avea loc în data de 16-Nov-2021 . Lucrarea va fi dată din capitolele 4-5 partea 1 (Reprezentarea numerelor, Interfata hardware-software x86 - Registre + flaguri si Set de instructiuni).

Lucrarea de curs 3 va avea loc în data de 14-Dec-2021 . Lucrarea va fi dată din capitolele 5 partea 2-7 (Interfata hardware-software x86 -Moduri de adresare si Declararea datelor, Stiva, Functii).

Lucrarea de curs 4 va avea loc în data de 25-Ian-2022 . Lucrarea va fi dată din capitolele 8-9 (Interfata binara a functiilor, Buffer Overflow).

Examen final

Examenul final valorează 4 puncte. Examenul final are loc în sesiune. Puteți participa la un singur examen pe parcursul unei sesiuni. Examenul final este examen practic. Veți primi subiecte de rezolvat în fața calculatorului. Vom reveni cu mai multe detalii în apropierea examenului.

În funcție de evoluția situației epidemiologice se poate reveni la forma de examinare tip interviu.

Repartițiile vor fi comunicate înainte de examenul aferent fiecărei serii pe canalele MS Teams / Moodle.

Puteți participa la un singur examen pe parcursul unei sesiuni la data stabilita seriei voastre. Puteți cere mutarea în altă dată de examen cu motive obiective temeinice. Motivul “nu am învățat suficient” nu este acceptat. Vom fi mai deschiși cererilor de mutare pentru studenții care refac materia și care au și alte examene în sesiune și posibile suprapuneri. Dacă aveți motive temeinice obiective de mutare trimiteți un e-mail lui Andrei Albișoru cu subiectul [IOCLA] Schimbare examen - NUME Prenume, Grupa, de exemplu [IOCLA] Schimbare examen - POPESCU Adrian, 322CB.

Nota examenului va fi comunicată pe loc, la încheierea acestuia.

Reguli și recomandări

Desfășurarea laboratorului

Vom desfășura laboratorul pe semigrupe. Fiecare grupă se va împărți în jumătate (câte două semigrupe egale ca dimensiune, sau diferență de cel mult un student). Nu permitem schimbarea semigrupelor pe parcursul semestrului. Un student poate participa la o singură semigrupă a grupei din care face parte.

Studenții care au restanță și cei de la alte facultăți pot participa la orice laborator cât timp există locuri disponibile.

Pentru a asigura buna desfășurare a laboratorului, limita de studenți în cadrul unui laborator este 15 persoane.

Puteți recupera laboratoare de maxim două ori, doar cu acordul ambilor asistenți (acordat înainte). Recuperarea se poate face doar în timpul săptămânii normale de desfășurare a laboratorului; nu se poate recupera un laborator în mod retroactiv, în afara săptămânii normal de desfășurare a acestuia.

În timpul laboratorului permitem doar activități aferente acelui laborator.

Realizarea temelor

Echipa cursului de IOCLA își rezervă dreptul de a nu publica soluții ori rezolvări parțiale pentru teme nici după expirarea termenului de predare. Acest lucru este valabil pentru toate celelalte componente ale materiei.

Echipa cursului de IOCLA poate să solicite prezentarea uneia sau mai multor teme de casă cu notificare în prealabil.

Trimiterea temelor se va realiza prin intermediul interfeței vmchecker.

Pentru testarea temelor puteți folosi mașinile virtuale create special pentru cursul de IOCLA, descrisă în secțiunea aferentă. Aceaste mașini virtuale sunt configurate și pentru testarea pe vmchecker.

Reguli de realizare a temelor

Temele la IOCLA sunt individuale; cu excepția cazurilor în care se precizează explicit că o temă se poate rezolva în echipă. Asta pentru că temele au ca principal obiectiv ca voi să dobândiți sau să vă aprofundați abilitățile practice. În măsura în care nivelul de colaborare este prea ridicat sau atunci când cereți soluții pe Internet, acest obiectiv nu va fi îndeplinit. Fiecare temă este realizată de un student fără a consulta codul sursă al colegilor săi.

Știm că lucrul în echipă este important, dar nu avem mediul pentru a realiza proiecte de echipă la cursul de IOCLA. Încurajăm colaborarea în timpul orelor de laborator, interactivitate în timpul orelor de curs și implicarea în activități extracurriculare ce presupun lucru în echipă.

Dacă întâmpinați orice fel de probleme în rezolvarea temei, folosiți forumurile pe curs.upb.ro sau întrebați asistenții la laborator sau titularii la curs. Rolul nostru este să vă ajutăm în rezolvarea acestora. Apelați cu încredere la echipa de IOCLA.

Să evitați, vă rugăm, discuțiile private (e-mail, Facebook, face-to-face) legate de teme și aspecte organizatori ale materiei. În aceste situații să folosiți forumurile pe curs.upb.ro ca să putem oferi răspunsuri publice.

Puteți discuta între voi în limitele bunului simț; adică nu trebuie să-i dictați cuiva rezolvarea, dar puteți să-i oferiți ideea generală. Dacă sunteți cel care este întrebat și oferă explicații, să aveți în vedere redirectarea către forumurile pe curs.upb.ro sau echipa de IOCLA.

Nu este permis să solicitați rezolvarea unei teme pe un site de tip StackExchange, Rent a coder sau altele. Puteți pune întrebări mai generice, dar nu solicitați rezolvarea temei.

Temele vor fi realizate direct în limbaj de asamblare. Nu este permis să scrieți temele în limbaje de nivel înalt (precum C sau C++) pe care apoi să le compilați în limbaj de asamblare. Excepție face cazul în care este menționat explicit ca temele se realizează în limbaje de nivel înalt.

Puteți folosi fără probleme cod din laborator, schelete puse la dispoziție de noi. Puteți folosi resurse externe (GitHub, cod open source sau altele), atâta vreme cât acestea nu reprezintă rezolvări evidente ale temei, puse public cu sau fără intenție. Vedeți și paragraful următor.

Nu este permis să publicați soluțiile temelor (nici după încheierea materiei). Dacă găsiți pe GitHub sau în altă parte rezolvări publice de teme, raportați-le pe forumurile de pe curs.upb.ro sau privat asistentului de laborator sau titularului de curs. Reiterăm că dacă doriți clarificări pe care le-ați adresa colegilor de ani mai mari, sau pe alte forumuri, StackExchange sau alte surse, folosiți forumurile pe curs.upb.ro și echipa de IOCLA. E cea mai sigură și onestă cale de a rezolva problemele.

Nu este permis să faceți transfer de fișiere între voi. În general, recomandăm să nu urmăriți ecranul unui alt coleg, sau pentru inspirație sau pentru a îl/o ajuta la rezolvare. Evitați testarea unei teme pe un sistem al unui coleg. Pot exista excepții, puteți ajuta pe cineva la troubleshooting, dar să aveți în vedere să nu treacă de la “hai să dăm de cap problemei” la “hai să-ți rezolv tema”. Dar vă recomandăm să folosiți forumurile pe curs.upb.ro sau echipa de IOCLA pentru a afla răspunsuri la întrebările voastre.

Depunctari teme

Codul vostru trebuie nu numai să “meargă”, ci și să respecte anumite standarde. Aveți mai jos o listă de potențiale erori de care trebuie să țineți cont în momentul realizării unei teme. Nerespectarea indicațiilor poate atrage dupa sine depunctări proporționale cu gravitatea erorii.

  • Label-uri și variabile numite nesemnificativ (x1, x2, a, b, c). Pentru denumirea unei variabile ce itereaza printr-un vector se pot folosi denumirile uzuale i, j, k însă denumiri de genul label1, label2, introduc ambiguitate
  • Comentarii in cod care pot fi ambigue, insuficinete sau lipsa comentariilor
  • Cod duplicat
  • Hardcodări pentru a trece teste. Natura testelor este orientativă și menite să va ajute în realizarea temei, implementarea vostră este partea pe care o vom nota. Apelați la forum daca nu sunteți siguri daca ceva constituie hardcodare
  • Încărcarea unui README în alt format decât fisier text (să nu fie .docx, .pdf)
  • Secvente de instructiuni care nu ajuta la rezolvarea efectiva a temei. Ex:
mov eax , 500
inc eax
xor eax, eax
  • Utilizarea secvențelor 'sub esp, 4; mov [esp], eax' în locul 'push eax' sau 'mov eax, [esp]; add esp, 4' în locul 'pop eax'
  • Temele care nu trec de procesul de asamblare (build) nu vor fi luate în considerare.

Penalizare pentru teme copiate

În general, considerăm că măsurile punitive sunt ultimele de luat în considerare. În măsura în care tema este realizată individual, fără aport de cod sursă problematic din exterior, atunci nu este temă copiată.

Noțiunea de temă copiată se referă, fără a fi limitată, la situații precum:

  • două teme care seamănă suficient de mult pentru a putea trage această concluzie;
  • folosirea de cod sursă de pe Internet care este evident soluția la temă;
  • folosirea unor bucăți din codul altui coleg;
  • accesul la codul altui coleg pe durata desfășurării temei;
  • modificarea unei teme existente;
  • urmărirea codului altui coleg;
  • ajutor direct în realizarea temei (altcineva a scris cod sau a dictat codul);
  • altcineva a scris tema (de bună voie, cu plată sau alte beneficii).

În cazul în care două teme sunt considerate copiate, atât sursa cât și destinația se vor depuncta identic, fără discuții relative la cine a copiat de la cine și a cui e vina. Excepția face situația în care destinația a obținut acces fără permisiune la sursă, iar sursa nu a avut intenția de a oferi tema (sau bucăți din temă) spre copiere.

Primul caz de temă copiată duce la scăderea punctajului temei din punctajul aferent materiei (adică nu primiți punctajul pe temă și, suplimentar, vi se scade și punctajul pe temă). Recidiva (încă o temă copiată) duce la anularea punctajului și repetarea materiei în cadrul anului universitar următor.

Reiterăm faptul că obiectivul nostru nu este și nu va fi penalizarea pentru copiere. Considerăm copierea ca fiind un act neonest care va fi pedepsit dacă are loc. Obiectivul nostru este însă să prevenim copierea; pentru aceasta oferim suportul și resursele echipei atât pe forumurile pe curs.upb.ro cât și în discuții față în față. Vă rugăm să le folosiți cu încredere; o abordare onestă la realizarea temelor va însemna și un câștig de cunoștințe și abilități pentru voi.

Restanță / mărire

Sesiunea de restanță/mărire se desfășoară în sesiunea de toamnă. În cadrul sesiunii de restanță/mărire se va reface doar examenul final.

Dacă și după sesiunea de restanță/mărire din toamnă nu obțineți punctaj suficient, veți repeta materia în anul universitar viitor.

Puteți participa la examen pentru mărirea notei obținută în sesiunea de iarnă. În cazul participării pentru mărirea notei, nota astfel obținută va înlocui nota obținută anterior, în sesiunea de iarnă.

Pentru studenții de anul 4 care refac IOCLA există și o sesiune specială de restanță de vară.

Puteți participa la un singur examen pe parcursul unei sesiuni.

Restanță vară 2022

TBD

Restanță / mărire toamnă 2022

TBD

Refacerea materiei

Pentru studenții care refac materia în cadrul anului universitar curent, în mod implicit, punctajele se resetează la începutul semestrului.

Dacă se dorește, studenții care refac materia pot păstra punctajul de laborator din anul universitar anterior în următoarele variante:

  • pot păstra nota pe activitatea de laborator
  • pot păstra nota pe teme
  • pot păstra nota atât pe activitatea de laborator cât și pe teme

Se păstrează nota de anul trecut, nu punctajul. Nota din catalogul de anul trecut pentru activitatea dorită (laborator sau teme) este trecută în poziția aferentă din catalogul de anul acesta; se aplică pe nota astfel trecută ponderile din acest an.

Cei care doresc păstrarea notei de laborator și/sau teme vor trebui să posteze un mesaj pe acest thread până cel târziu la 31 Octombrie 2021 - ora 23:55.

Mesajul trebuie sa aibă următorul conținut:

NUME Prenume, grupa actuala, grupa veche
Doresc păstrarea notei la activitatea de TODO.

În loc de TODO, folosiți una dintre opțiunile:

  • laborator
  • teme
  • laborator și teme

Un exemplu de mesaj este:

IONESCU Adrian, 334CC, 323CB
Doresc păstrarea notei la activitatea de laborator și teme.

Vom publica modificările în catalog.

Studenții care refac materia pot participa la laborator cu o singură grupă, în limita locurilor disponibile (au prioritate studenții din semigrupa afișată la orar).

iocla/reguli-notare.1634112424.txt.gz · Last modified: 2021/10/13 11:07 by andrei.albisoru
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0