Differences

This shows you the differences between two versions of the page.

Link to this comparison view

programare:regulament [2014/10/05 15:15]
octavian.grigorescu [Temele de casă]
— (current)
Line 1: Line 1:
-===== Programarea Calculatoarelor ===== 
  
-Anul universitar 2013 - 2014 
- 
-Anul I, Semestrul I 
- 
-==== Obiectivele cursului ==== 
- 
-Cursul introduce studenţilor principalele noţiuni, tehnici şi unelte necesare realizării programelor pe calculator, de la cele mai simple, la aplicaţiile complexe, într-o prezentare axată pe limbajul C. Materialul principal al cursului este reprezentat de cartea lui Brian Kernighan şi Dennis Ritchie - "The ANSI C Programming Language"​. 
- 
-În urma parcurgerii tuturor activităţilor oferite de cursul Programare, studenţii vor fi capabili să: 
- 
-  * descrie procedura tipică de dezvoltare a unui program pe calculator, în particular modul de compilare, legare şi execuţie a unui program în C 
-  * folosească tipurile de date de bază pentru declararea şi iniţializarea variabilelor 
-  * folosească instrucţiunile oferite de limbajul C pentru atribuiri, structuri decizionale sau ciclice 
-  * definească funcţii, să le apeleze şi să modularizeze organizarea programului folosindu-se de acestea 
-  * lucreze cu tablouri şi pointeri, şi să fie deprinşi cu operaţiile de bază asupra acestora 
-  * declare şiruri de caractere şi să folosească funcţiile oferite de biblioteca standard pentru manipularea acestora 
-  * aloce dinamic memorie și să o foloseasca eficient 
-  * declare şi să foloseasca structuri și uniuni 
-  * opereze cu fişiere: deschidere, închidere şi operaţii de intrare/​ieşire 
-  * lucreze cu parametrii liniei de comandă pasaţi programului prin funcţia main() 
- 
-==== Cunoştinţe necesare ==== 
- 
-Pentru a putea urmări, înţelege şi aplica cunoştinţele dobândite în cadrul cursului de programare, studentului îi sunt recomandate cunoştinţe anterioare legate de operarea unui PC şi utilizarea de bază a unui sistem de operare (de preferinţă Linux). Aceste cunoştinţe sunt introduse şi aprofundate şi separat în cadrul cursului de Utilizarea Sistemelor de Operare, astfel că pe parcursul semestrului,​ studentul va deveni mai familiar cu mediul de lucru. 
-Cunoştinţele anterioare legate de programare (în special limbajul C), dobândite în liceu sau prin studiu individual, vor uşura învăţarea şi munca de rezolvare a problemelor,​ însă conţinutul cursului nu va presupune cunoscută în prealabil nici o noţiune din acest domeniu, oferind şanse egale tuturor studenţilor. 
- 
-==== Notarea ==== 
- 
-Se va acorda câte o notă (pe o scară de la 0 la 10) la examenul final, cel parţial, pentru temele de casă și activitatea de laborator. Nota finală pentru materia Programarea Calculatoarelor se calculează în felul următor: 
- 
-<note important>​ 
-**NotaFinală** = 0.40***NotaExamen** + 0.20***NotaParţial** + 0.30***NotaTemeCasă** + 0.10***NotaLaborator** 
-</​note>​ 
- 
-Pentru a promova, trebuie îndeplinite simultan condiţiile:​ 
- 
-  * NotaExamen >= 5 (din 10) 
-  * 0.20*NotaParţial + 0.30*NotaTemeCasă + 0.10*NotaLaborator >= 3 (din 6) 
- 
-<​note>​ 
-Prezenţa si nota de laborator este condiţionată de rezolvarea primei sarcini din cadrul fiecărui laborator. 
-</​note>​ 
- 
-În continuare sunt prezentate detalii despre fiecare activitate în parte. 
- 
-=== Examenul final === 
- 
-Examenul final se va susţine scris, pe grupe, câte o grupă în fiecare zi a sesiunii. Data examenului se va stabili de către studenţi de comun acord cu titularul de curs. 
- 
-=== Examenul parţial === 
- 
-Examenul parţial se va susţine cu toată seria în acelaşi timp, până în vacanţa de iarnă, în jurul săptămânii a noua. Data exactă a acestuia se va stabili la curs cu profesorul titular. **Examenul parțial se poate reface doar în toamnă**. 
- 
-=== Temele de casă === 
- 
-Temele de casă sunt în număr de 3 şi fiecare este notată cu câte 100 de puncte. Enunţurile acestora vor fi publicate pe site-ul de curs. De asemenea, fiecare temă va avea deadline-ul precizat în enunţ. Ora limită de trimitere din ultima zi nu poate fi mai târziu de 23.59. 
- 
-În cazul întârzierii trimiterii temelor de casă, se aplică următoarea regulă: pentru fiecare zi (24 de ore) întârziere,​ se vor scădea 10 puncte din nota acordată. Temele trimise după 7 de zile de întârziere vor putea fi notate cu maxim 30 de puncte. 
- 
-<​note>​ 
-În timpul vacanțelor nu se aplică depunctări iar zilele de vacanță nu se iau în calcul la stabilirea deadline-urilor. 
-</​note>​ 
- 
-Temele se vor trimite prin upload, pe site-ul cursului (http://​cs.curs.pub.ro) folosind contul de student primit la începutul semestrului pentru portalul de cursuri. Rubrica de upload se va găsi în secţiunea cursului de Programare, la fiecare temă în parte, în săptămâna corespunzătoare. 
- 
-<note warning> 
-Copierea parţială sau totală a unei rezolvări din altă sursă va atrage după sine anularea punctajelor pentru toate temele de casă, atât pentru cel care a copiat, cât şi pentru sursa acestuia. 
-</​note>​ 
- 
-Pentru detalii, citiţi secţiunea legată de [[regulament#​politica de colaborare|politica de colaborare]],​ din cadrul acestui document. 
- 
-Pentru mai multe detalii legate de modul de rezolvare şi trimitere a temelor de casă, consultaţi [[regulament#​Temele de casă|secţiunea dedicată]] acestui aspect din cadrul acestui document. 
- 
-=== Laboratorul === 
- 
-Programul general al laboratorului este cel publicat pe pagina principală a cursului, pe săptămâni. Laboratorul este obligatoriu,​ întrucât la fiecare şedinţă va fi acordată câte o notă, bazată pe activitate. 
- 
-Un laborator nu se poate recupera decât în săptămâna în care a fost pierdut, cu anunţarea asistentului de la grupă şi cu aprobarea asistentului la care se face recuperare. În cazul în care din această cauză numărul de studenţi depăşeşte capacitatea laboratorului,​ prioritate vor avea studenţii din semigrupa care are atunci laboratorul în orar. 
- 
-Conţinutul laboratoarelor va fi publicat pe site la începutul semestrului. Este recomandat ca fiecare student să-şi printeze sau xeroxeze o variantă tipărită şi să o aibă cu el în timpul laboratorului. 
- 
-<​note>​ 
-Pentru sesiunea de restanţe/​măriri din toamnă, notele de la teme şi laborator care vor fi luate în calcul sunt cele obţinute în timpul anului. Nu există posibilitatea măririi lor. Se pot reface doar examenul şi/sau parţialul. 
-</​note>​ 
-==== Politica de colaborare ==== 
- 
-Comunicarea joacă un rol important în informarea şi pregătirea fiecăruia, şi echipa cursului de Programare este conştientă de acest lucru. Din acest motiv, site-ul cursului pune la dispoziţia studenţilor un forum în care aceştia pot discuta şi pune întrebari legate de temele de casă date spre rezolvare şi a subiectelor de programare ce se pot dezvolta în jurul acestora. 
- 
-Asistenţii vor sta la dispoziţia studenţilor pentru a le răspunde la nelămuriri legate de enunţul temelor şi laboratoarelor. 
- 
-În acelaşi timp, cursul promovează reuşitele personale şi vor fi sancţionate,​ în concordanţă cu regulamentul facultăţii,​ orice acţiuni de fraudare sau plagiat. Astfel: 
- 
-  * temele de casă vor fi realizate individual şi nu vor fi permise publicarea pe forum sau furnizarea sub orice altă formă a porţiuni sau a întregului cod sursă. În cazul încălcării acestor reguli, rezolvările vor fi punctate cu 0 puncte, atât pentru cel care a copiat, cât şi pentru sursa acestuia. 
-  * în cazul copierii rezolvărilor problemelor de laborator, se va anula punctajul pe laboratorul respectiv. În acest sens, studenţii vor trebui să fie capabili să explice şi să argumenteze modul în care au rezolvat exerciţiile din laborator. 
-  * de asemenea, nu este permisă colaborarea sub nicio formă sau folosirea de materiale ajutătoare în timpul examenelor sau testelor. Studenţii care nu vor respecta aceste reguli vor avea 0 puncte pentru examenul respectiv şi riscă să fie exmatriculaţi (pentru detalii, consultaţi regulamentul facultăţii). 
- 
-==== Temele de casă ==== 
- 
-=== Reguli de notare === 
- 
-Criteriile luate în calcul la notarea temei sunt: 
- 
-  - //​Funcţionarea temei conform cerinţelor - 60 puncte// 
-      * Pentru a primi punctaj maxim, soluţia trebuie să treacă cu bine toate testele de corectare (atât cele publicate pe site o dată cu enunţul temei, cât şi cele private pe care le va face asistentul şi care vor fi publicate o dată cu afişarea notelor la tema respectivă). 
-  - //Calitatea şi eficienţa soluţiei - 20 puncte// 
-      * Soluţia propusă de voi pentru rezolvarea unei teme de casă trebuie să fie clară şi eficientă. Soluţia propusă se va explica prin intermediul comentariilor din codul sursă şi al fişierului ''​README''​ care însoţeşte tema de casă. 
-  - //​Claritatea codului - 10 puncte// 
-      * Codul trebuie să fie uşor de urmărit: indentare adecvată, nume de variabile sugestive, constante simbolice (nu numere), cod aerisit. 
-  - //​Claritatea explicaţiilor - 10 puncte// 
-      * Pentru a obţine maximum de punctaj, explicaţiile trebuie să fie clare („să înţeleagă şi alţii”) şi concise („nu scrie ce nu ai vrea să citeşti”). Prin explicaţii se înţelege: 
-          * comentariile din surse 
-          * explicaţii din fişierul ''​README''​ 
- 
-<​note>​ 
-Punctele de la (2), (3) şi (4) sunt condiţionate de punctul (1). O temă care nu se poate compila sau care face altceva decât era specificat în cerinţe se va nota cu 0 puncte. 
-</​note>​ 
- 
-Pentru a evita problemele legate de diversele configuraţii de testare a temelor, pentru corectarea şi evaluarea lor se va pune la dispoziţie o maşină virtuală în care se vor corecta temele. 
- 
-=== Reguli de trimitere a temelor === 
- 
-Tema trebuie trimisă sub forma unei arhive ''​.zip''​ (NU .rar, .ace, .arj, .exe sau alte formate) şi trebuie să conţină: 
- 
-  * toate sursele în **rădăcina** arhivei. La începutul fiecărui fişier sursă trebuie să existe un comentariu care să conţină numele şi grupa celui care a trimis tema. 
-  * un fişier ''​README''​ în **rădăcina** arhivei. La începutul fişierului trebuie să apară numele şi grupa celui care a trimis tema. 
-  * fişierul ''​makefile'',​ care trebuie sa conțină reguli pentru ''​build''​ și ''​clean''​. 
- 
-Arhiva trebuie să conţină **doar** sursele, fişierul makefile, README şi eventuale fişiere de test. Arhiva NU va conţine fişiere executabile sau obiect. 
- 
-<note important>​ 
-Numele şi extensiile fişierelor trimise nu trebuie să conţină spaţii sau majuscule, cu exceptia fisierului README. ​ 
- 
-Numele arhivei va fi de forma Grupa_Nume_Prenume.zip. Exemplu: 311CA_Popescu_Ion.zip 
-</​note>​ 
- 
-Dacă arhiva nu respectă specificaţiile de mai sus nu va fi acceptată şi astfel tema nu va fi luată în considerare. 
- 
-Pentru trimiterea si corectarea temelor vom folosi platforma **vmchecker**. 
- 
-**How to:** 
- 
-  - Intraţi pe: [[https://​elf.cs.pub.ro/​vmchecker/​ui/​|vmchecker]] cu user-ul si parola de pe curs.cs.pub.ro. 
-  - Alegeţi cursul de Programarea Calculatorelor. 
-  - Selectaţi “Tema 1” (2-5 pentru celelalte). 
-  - Daţi click pe “Trimitere soluţii”. 
-  - Încărcaţi arhiva conform specificaţilor de mai sus. 
-  - În acest moment, tema voastră este trimisă în coada de testare. Rezultatul o să îl puteţi vizualiza când daţi click pe “Rezultate”. 
- 
-**Observaţii:​** 
- 
-  * Vmchecker nu stie să scadă automat puncte în funcţie de testele care vă pică sau nu. 
-  * O să vă apară un câmp cu “Date şi depunctări” în care vor fi scăzute automat doar punctele de la penalizări de întârziere. 
-  *  În câmpul “Execuţia testelor” o să vă apară output-ul testelor (tema 0 testează doar corectitudinea arhivei, pnetru restul temelor vor fi si teste de funcţionalitate),​ iar la sfârşitul acestuia numărul de puncte acumulate. 
-  * Pe pagina principală aveţi “Rezultate generale”. Dacă vă apare “ok” înseamnă că tema voastră nu a fost corectată încă. 
-  * Temele vor fi corectate doar după ce va expira deadlineul hard. 
-  * Dacă aveţi nelămuriri,​ observaţii sau probleme sunteţi rugaţi să postaţi pe forum. 
- 
-Dacă aţi trimis deja o temă şi doriţi din diverse motive să o trimiteţi din nou, puteţi face acest lucru respectând întocmai protocolul de mai sus. 
- 
-Ultima versiune ajunsă pe site va fi cea luată în considerare la corectare şi condiţiile de punctare vor fi cele din ziua în care aceasta a fost uploadată. 
- 
-<​note>​ 
-Platforma Vmchecker este obligatorie! Ea va fi folosită pentru trimiterea, verificarea și corectarea temelor. Temele vor fi trimise OBLIGATORIU și pe site-ul de curs, in sectiunea dedicata temei respective: http://​cs.curs.pub.ro. 
-</​note>​ 
- 
-=== Reguli de realizare a temelor === 
- 
-Temele sunt individuale. Copierea integrală sau parţială a unei teme duce la anularea punctajului pentru TOATE temele atât pentru sursă cât şi pentru destinaţie (pentru detalii vezi secţiunea referitoare la [[regulament#​Politica de colaborare|politica de colaborare]]). 
-==== Desfăşurarea activităţilor de laborator ==== 
- 
-=== Lucrul pe semigrupe === 
- 
-Laboratorul de Programare se va desfăşura la nivel de semigrupă. Din raţiuni de spaţiu şi calculatoare disponibile,​ şi pentru a asigura confortul necesar fiecărui student, fiecare grupă va fi împărţită în două semigrupe, cât mai bine balansate. 
- 
-Deşi alcătuirea semigrupelor va fi aproximativ aceeaşi pentru toate laboratoarele desfăşurate în acest semestru, nu sunt excluse unele variaţii. Astfel, la cererea studenţilor implicaţi, se pot face schimburi între semigrupe, la nivelul acestui laborator, dar fără a afecta numărul de studenţi din fiecare semigrupă, sau componenţa semigrupelor din celelalte laboratoare. Toate aceste modificări trebuie efectuate în decurs de o săptămână de la începerea semestrului. Orice altă modificare dupa această perioadă va fi acceptată numai în condiţii speciale şi cu titlu temporar. 
- 
-Laboratorul durează 2 ore şi are loc în fiecare săptămână. Prezenţa este obligatorie,​ întrucât la fiecare şedinţă va fi acordată câte o notă (a se vedea secţiunea următoare),​ şi prezenţa va fi implicit făcută pe baza acestei note. 
- 
-Activitatea de laborator constă din prezentarea pe scurt, de către asistent, a noţiunilor teoretice şi apoi din rezolvarea pe calculator a o parte sau a întregului set de probleme propuse. 
- 
-Rezolvarea problemelor se va face realizând programe în C, compilate cu GCC. 
- 
-=== Notarea === 
- 
-La sfârşitul fiecărui laborator, asistentul va acorda câte o notă de la 0 la 10 fiecărui student, bazată pe activitatea acestuia din cadrul laboratorului. Criteriile de notare vor avea la bază: 
- 
-   * numărul de probleme rezolvate corect de către student 
-   * lizibilitatea codului sursă - indentarea codului, spaţierea logică a instrucţiunilor,​ etc. 
-   * posibilitatea de a explica în cuvinte cum şi de ce a fost scris în codul sursă 
- 
-<note important>​ 
-Condiţia necesară şi obligatorie pentru a obţine prezenţa la laborator este realizarea primului task. 
-</​note>​ 
- 
-Astfel este încurajată o atitudine cât mai activă în timpul laboratoarelor;​ o atitudine pur pasivă nu va fi punctată şi echivalează cu o absenţă. Este de asemenea încurajată interacţiunea cu asistenţii atât la laborator cât şi pe forum. 
- 
-Nota primită la sfârşitul semestrului pe activitatea de laborator va fi media aritmetică a notelor primite în cadrul fiecărei şedinţe de laborator. În cazul unor laboratoare,​ punctajul total este posibil să depăşească 10 puncte. Punctele acumulate în plus pot compensa punctajele de la alte laboratoare,​ dar nu şi absenţele. În cazul în care nota finală la laborator depăşeşte 10 puncte se va trunchia la 10. 
- 
-În timpul semestrului situaţia la laborator va putea fi consultată la [[http://​ocw.cs.pub.ro/​courses/​programare/​catalog|această adresă]]. Asistenţii vor actualiza pe cât posibil în timp real situaţia pentru a permite evidenţa clară a prezenţelor şi pentru a preîntâmpina orice probleme de natură administrativă. 
- 
-==== Reguli de repetare a materiei ==== 
-<note important>​ 
- 
-Studenții care repetă materia pot opta pentru păstrarea punctajului pe parcurs sau a punctajului la examen (dupa caz) din anul universitar anterior. Păstrarea punctajului se face doar cu acordul titularului de curs. Studenții vor solicita păstrarea punctajului printr-o cerere scrisă, pe care o vor înmâna titularului de curs în primele două săptămâni de la începerea semestrului (nu vor fi acceptate cereri întârziate sau trimise prin e-mail sau alte mijloace electronice). ​ 
- 
-Atenție! Păstrarea punctajului pe parcurs nu permite modificarea lui prin acumlarea unor puncte suplimentare în activități pe parcurs din anul universitar curent, dar permite anularea lui dacă se încalcă politica de colaborare. 
- 
-</​note>​ 
- 
-==== Alte resurse ==== 
- 
-   * Pagina de web a cursului de Programarea Calculatoarelor se găseşte pe site-ul de cursuri al catedrei de calculatoare:​ http://​curs.cs.pub.ro/​. 
-   * Folosirea acestei pagini şi conţinutului ei (materiale de curs şi laborator, forum-uri, formulare de evaluare, exemple de subiecte posibile) se va face în scop academic şi cu respectarea normelor de conduită ce decurg din aceasta. 
- 
-În speranţa că veţi urma acest curs cu aceeaşi plăcere şi entuziasm cu care a fost realizat, echipa cursului de Programare vă urează mult succes! :) 
programare/regulament.1412511321.txt.gz · Last modified: 2014/10/05 15:15 by octavian.grigorescu
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