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.

Notare

Anumite componente ale materiei (teme, laborator, examen final, lucrări de curs) 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).

Dacă nu ați obținut 50% din punctajul de laborator va trebui să refaceți disciplina anul universitar următor.

Sumar notare

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

Notare detaliat

Activitate de laborator

Laboratorul valorează 1 punct.

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

Nota pe laborator se obține împărțind punctajul la 12. În situațiile în care punctajul depaseste 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ă 3 puncte.

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

Submisia temelor se face folosind interfața vmchecker. Termenul limită de submisie de teme pe interfața vmchecker este miercuri, 16 ianuarie 2019, ora 23:55.

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ță (15 decembrie 2018 - 6 ianuarie 2019) nu este contorizată ca întârziere.

Lucrări de curs

Există 4 lucrări de curs. Fiecare lucrare de curs este notată cu maxim 0.6 puncte (0.5 puncte bază și 0.1 puncte bonus) pentru un punctaj total (pe lucrările de curs) de 2 puncte. În situațiile în care punctajul depaseste 2 puncte, nota se va trunchia; cu alte cuvinte, nu există posibilitatea transferării surplusului către o altă componentă a materiei.

O lucrare de curs va dura 20 de minute.

O lucrare conține 6 întrebări punctate egal (0.1 puncte de întrebare). O întrebare este bonus. La fiecare întrebare veți răspunde complet, corect și concis. Fiecare întrebare este punctată cu 0 sau 1 (nu există punctaj parțial). Obținerea a 0.6 puncte de lucrare înseamnă obținerea punctajului maxim aferent lucrării.

Lucrarea de curs o veți da la seria din care faceți parte. Dacă, din motive argumentate și obiective, nu puteți ajunge la seria voastră, trimiteți un e-mail lui Bogdan cu subiectul [IOCLA][Lucrare 2] Transfer: NUME Prenume - grupă, de exemplu [IOCLA][Lucrare 2] Transfer: POPESCU Andreea - 322CB. Cererile de transfer se trimit până cel târziu cu o zi înainte de perioada în care se desfășoară fiecare lucrare.

La lucrarea de curs nu aveți voie cu nici un fel de material. Aveți nevoie doar de un instrument de scris. Foaia cu subiectele o veți primi de la noi. Tot pe acea foaie veți răspunde la întrebări. Tentativele de copiere sau fraudare prin orice mijloc se penalizează cu anularea lucrării de curs. În caz de recidivă va rezulta în referat la decanatul facultății.

După desfășurarea și corectarea unei lucrări de curs, dacă sunteți de părere că nota nu este în conformitate cu răspunsurile voastre, puteți solicita recorectarea lucrării de curs pe un thread deschis specific pe forumul cursului pe acs.curs.pub.ro. Puteți solicita doar recorectare, nu validarea unor răspunsuri, sau indicație dacă răspunsurile au fost sau nu corecte. Veți primi răspuns că nota nu s-a schimbat sau, dacă în urma recorectării a fost schimbată, în ce notă a fost schimbată.

Lucrările de curs se desfășoară în prima parte a unui curs și acoperă materia din cursurile anterioare. Desfășurătorul lucrărior de curs este descris mai jos, așa cum este indicat și în Calendar.

Lucrarea de curs 1 va avea loc în perioada marți, 16 octombrie 2018 - luni, 22 octombrie 2018, astfel:

  • marți, 16 octombrie 2018, 09:05-09:25, sala AN030, seria CD, la cursul 4
  • joi, 18 octombrie 2018, 11:05 - 11:25, sala EC101, seria CA, la cursul 4
  • joi, 18 octombrie 2018, 17:05 - 17:25, sala EC101, seria CC, la cursul 4
  • luni, 22 octombrie 2018, 13:05 - 13:25, sala EC004, seria CB, la cursul 4

Lucrarea de curs 1 va conține 6 întrebări din cursurile 1, 2 și 3 (cursuri, nu capitole).

Lucrarea de curs 2 va avea loc în perioada marți, 6 noiembrie 2018 - luni, 12 noiembrie 2018.

  • marți, 6 noiembrie 2018, 09:05-09:25, sala AN030, seria CD, la cursul 7
  • joi, 8 noiembrie 2018, 11:05 - 11:25, sala EC101, seria CA, la cursul 7
  • joi, 8 noiembrie 2018, 17:05 - 17:25, sala EC101, seria CC, la cursul 7
  • luni, 12 noiembrie 2018, 13:05 - 13:25, sala EC004, seria CB, la cursul 7

Lucrarea de curs 2 va conține 6 întrebări din cursurile 4, 5 și 6 (cursuri, nu capitole).

Lucrarea de curs 3 va avea loc în perioada marți, 27 noiembrie 2018 - luni, 3 decembrie 2018.

  • marți, 27 noiembrie 2018, 09:05-09:25, sala AN030, seria CD, la cursul 10
  • joi, 29 noiembrie 2018, 11:05 - 11:25, sala EC101, seria CA, la cursul 10
  • joi, 29 noiembrie 2018, 17:05 - 17:25, sala EC101, seria CC, la cursul 10
  • luni, 3 decembrie 2018, 13:05 - 13:25, sala EC004, seria CB, la cursul 10

Lucrarea de curs 3 va conține 6 întrebări din cursurile 7, 8 și 9 (cursuri, nu capitole).

Lucrarea de curs 4 va avea loc în perioada marți, 8 ianuarie 2019 - luni, 15 ianuarie 2019.

  • marți, 8 ianuarie 2019, 09:05-09:25, sala AN030, seria CD, la cursul 13
  • joi, 10 ianuarie 2019, 11:05 - 11:25, sala EC101, seria CA, la cursul 13
  • joi, 10 ianuarie 2019, 17:05 - 17:25, sala EC101, seria CC, la cursul 13
  • luni, 15 ianuarie 2019, 13:05 - 13:25, sala EC004, seria CB, la cursul 13

Lucrarea de curs 4 va conține 6 întrebări din cursurile 10, 11 și 12 (cursuri, nu capitole).

Exemple subiecte

Lucrare 1 - varianta 1

1. Care este legătura între registrul CH și registrul CL?

2. Care este valoarea în binar a numărului hexazecimal 0xe5?

3. Cum este stocat în memorie numărul 0x55667788 (întreg pe 32 de biți)? Sistemul este little endian. Indicați adresele și conținuturile octeților.

4. Ce valoare zecimală corespunde numărului 0xcd într-o reprezentare fără semn?

5. Ce efect are, din punct de vedere aritmetic/matematic, shiftarea la stânga cu 3 a unui registru?

6. De ce este utilă folosirea unui pipeline de instrucțiuni în procesor?

Lucrare 1 - varianta 2

1. Care este un avantaj al unui limbaj de nivel înalt față de limbajul de asamblare?

2. Care este valoarea în binar a numărului hexazecimal 0xa7?

3. Cum este stocat în memorie vectorul short a[2] = {0x1122, 0x3344}? Sistemul este little endian. Indicați adresele și conținuturile octeților.

4. Ce valoare zecimală corespunde numărului 0xab într-o reprezentare fără semn?

5. Fie masca 00001111. Ce semnificație are pentru un număr N oarecare pe 8 biți: N & masca? (bitwise AND)

6. Dați exemplu de operație care activează CF (Carry Flag) dar nu SF (Sign Flag).

Lucrare 2 - varianta 1

1. Ce efect are instrucțiunea mov EAX, [EBX+12]?

2. După operația shr AX, 3 avem în AX valoarea 0x10. Care era inițial valoarea lui AX (în hexazecimal)?

3. Pentru a executa un apel de sistem de scriere pe Linux x86, folosim int 0x80. Ce trebuie să punem înainte în registrul EAX?

4. De ce instrucțiunea sub 100, [array+ESI] va genera eroare la asamblare în NASM?

5. Fie declarația: array db 10, 4, 5, 42. Ce valori va conține vectorul array după execuția instrucțiunii mov word [array + 2], 500?

6. Dați exemplu concret de operație cu două numere care activează CF (Carry Flag) fără a activa SF (Sign Flag).

Lucrare 2 - varianta 2

1. Cu ce diferă adc EAX, 100 de add EAX, 100?

2. Dupa operația ror AX, 3 avem în AX valoarea 0xAF. Care era valoarea inițială a lui AX (în hexazecimal)?

3. Cum arată construcția assembly prin care definim și inițializăm o variablă la șirul “I love IOCLA”?

4. De ce instrucțiunea mov AL, EBX va genera eroare la asamblare?

5. Fie declarația: array dd 10,12,3,4,1,6,9,8. Ce valoare va reține AX după execuția instrucțiunilor de mai jos?

mov ECX, 3
mov EAX, [array + 4*ECX]

6. În ce registre se stochează rezultatul înmulțirii folosind instrucțiunea mul EBX?

Lucrările de curs nu se refac în sesiunea de examen sau în sesiunea de restanțe.

Examen final

Examenul final valorează 4 puncte. Examenul final are loc în sesiune. Examenul durează 90 de minute.

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 modele de subiecte.

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 realizarea temelor veți folosi SASM (NASM + gcc) sau alte utilitare specificate în enunțul temei.

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 cs.curs.pub.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 cs.curs.pub.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 cs.curs.pub.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.

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 cs.curs.pub.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 cs.curs.pub.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 cs.curs.pub.ro sau echipa de IOCLA pentru a afla răspunsuri la întrebările voastre.

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 cs.curs.pub.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 septembrie. În cadrul sesiunii de restanță/mărire se va reface doar examenul final.

Refacerea materiei

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

Catalogul de anul trecut (2017-2018) este disponibil pe wiki.

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 vineri, 26 octombrie 2018.

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

NUME Prenume, grupă 2017-2018, grupă 2018-2019
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, 323CC, 334CB
Doresc păstrarea notei la activitatea de laborator și teme.

Vom publica modificările în catalog și în sheetul de recuperare punctaj.

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.txt · Last modified: 2018/11/04 14:00 by razvan.deaconescu
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