Differences

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

Link to this comparison view

pa:test_practic [2020/04/14 14:06]
radu.iacob
pa:test_practic [2025/05/05 15:16] (current)
radu.nichita
Line 1: Line 1:
-==== Test Practic ​==== +==== Teste Practice ​====
-=== Desfăşurare ​===+
  
-Testul ​practic ​va avea loc sâmbătă, 09 mai 2020, în săptămâna a 12-a de facultate, si va dura maxim 3 ore. Orele vor fi anunțate în săptămâna testului. Pentru a susține testul, trebuie să fiți prezenți în facultate.+=== Informații test practic ​2025 ===
  
-=== Structură ===+Echipa de Proiectarea Algoritmilor își rezervă dreptul de a modifica următoarele reguli. Actualizările vor fi anunțate pe https://​curs.upb.ro/​ sau pe Microsoft Teams.
  
-Testul va conţine **2** probleme **uşoare**,​ **2** probleme **ușoare-medii** și **2** probleme **medii-grele**. +=== Reguli generale de organizare ===
-Va trebui să rezolvaţi la alegere câte o problemă din fiecare categorie.+
  
-Problemele se vor baza pe materia studiată în cadrul cursului de PA:+1. Studentul care participă la un test practic va include numele, prenumele și grupa sa, sub forma unui comentariu, la începutul fiecărui fișier sursă care este trimis spre evaluare. 
 +Exemplu: 
 +<code c> 
 +// NEAȚU Darius-Florentin,​ 3XXCA 
 +#include <​iostream>​ 
 +... 
 +</​code>​
  
-  * **Divide et impera** +2. Prin acceptarea începerii testului practic, studentul declară pe propria răspundere că el singur și numai el rezolvă problemele din cadrul testuluifără să fie ajutatDe asemenea, declară pe proprie răspundere că nu comunică cu alte persoane în timpul testului cu privire la soluțiile problemelor din cadrul testului. De asemeneastudentul declară pe propria răspundere că nu trimite / nu primește codul sursă al soluției unei probleme sau părți din codul sursă altui student / de la alt student.
-  * **Greedy** +
-  * **Programare dinamică** +
-  * **Backtracking** +
-  * **Parcurgeri ​pe grafuri: DFSBFSSortare topologică** +
-  * **Aplicatii DFS: detectare de puntipuncte ​de articulatie,​ componente tare conexe (fara componente biconexe)** +
-  * **Drumuri minime**+
  
-=== Materiale ===+3. Studentul acceptă și recunoaște că nu se inspiră și nu folosește cod sursă inspirat din resurse electronice disponibile pe Internet, din materiale scrise sau alte forme de materiale. ​
  
-Testul este open-bookCu alte cuvinte aveţacces la internet / slide-uri / ocw / HackerRank.+4În cazul unor suspiciuni cu privire la soluțiile trimise spre evaluare de către un student, acesta acceptă anularea punctajului obținut automat în platformă șre-examinarea studentului de către titularul de curs.
  
-**NU** aveţi voie să folosiţi internetul ca mijloc de comunicare**NU este acceptată preluarea de cod de pe internet care rezolvă, chiar și parțial, probleme similare cu cele propuse**. Exemple ​de surse externe **neacceptate** pentru cod: internet, codul altor colegi. Exemple de surse externe **acceptate**:​ căutare de idei și algoritmi, preluare de cod pentru folosirea API-ului din limbajul dorit, orice cod oferit de echipa de PA inainte de testul practic ​(pe ocw/​moodle),​ cod **scris de voi** in prealabil (la laborator, teme sau pentru pregatire suplimentara). Ne rezervăm dreptul ​de a penaliza orice nerespectare a acestor reguli.+6Participanții se obligă să nu distribuie ulterior testului enunțurile problemelor sau soluțiile ​propuse de el în nicio formă (electronică sau scrisăfără acordul prealabil al titularului ​de curs.
  
 +7. Studentul acceptă punerea sa în discuția Comisiei de etică a Facultății de Automatică și Calculatoare în cazul abaterii de la regulamentul menționat anterior și va accepta deciziile acesteia.
  
-=== Evaluare ​Notare ===+8. Testul trebuie să reprezinte exclusiv munca/soluția studentului! Echipa va aplica regulamentele în vigoare pentru ​ sițuațiile de fraudă/​plagiat,​ pentru orice nerespectare a acestei reguli, incluzând, dar nelimitându-se la: copierea de la colegi (se aplică pentru ambele persoane implicate) sau din alte surse a unor părți din test, prezentarea ca rezultat personal a oricărei bucăți de cod provenită din alte surse necitate sau neaprobate în prealabil (site-uri web, alte persoane, cod generat folosit AI/LLM-uri etc.). ​
  
-Testul practic valorează **1.5 puncte** din nota finală.+=== Reguli de evaluare și notare === 
  
-Fiecare problemă va avea un punctaj între 0 și 50Nota voastră pe test va fi calculată după formula: +1Toate problemele presupun implementarea ​ unui program complet ​(citire, rezolvare, afișare, funcție main). Limbaje permise: CC++Java.
-(Punctaj_problema_ușoară + Punctaj_problema_medie + Punctaj_problema_grea/ 100Punctaj_problema_ușoară reprezintă maximul obținut pe cele două probleme ușoare (nu se cumulează punctajul celor două)Punctaj_problema_medie reprezintă maximul obținut pe cele două probleme mediiiar Punctaj_problema_grea reprezintă maximul obținut pe cele două probleme grele. Punctajul maxim este de 1.5 puncte din media finală de la PA+
  
-Dacă nu aveţi cont pe [[https://​www.hackerrank.com|HackerRank]],​ vă sugerăm să vă înregistraţi până la data susținerii ​testului. De asemenea, din cauza restricției de 16 caractere pentru numele contului, acesta trebuie să aibă următorul format: primele 8 litere din numele de familie (doar prima literă cu majusculă),​ inițialele primelor 2 prenume cu majusculă, apoi grupa.+2O sursă care reprezintă soluția unei probleme din cadrul ​testului ​practic și care nu compilează nu se punctează.
  
-  - Exemplu: **Popescovici Ion Gheorghe Marian** din grupa **325CA** ​va avea contul ​pe HackerRank: **PopescovIG_325CA** +3. O sursă care compilează,​ se va puncta cu valoarea punctelor ​pe care soluția respectivă le obține ​pe teste (punctele sunt acordate automat de evaluator).
-  - Exemplu: **Vasile Marian** din grupa **321CA** va avea contul ​pe HackerRank: **VasileM_321CA**+
  
-Daca aveți deja cont pe HackerRank vă sfătuim să vă faceți **unul nou** care respectă ​constrângerile de nume cerute, altfel puteți să modificați numele public al contului existent.+4. Se poate anula ulterior punctajul ​pe o problemă în caz că rezolvarea nu respectă ​restricțiile impuse în enunț sau în regulament.
  
-Vi se va da acces la probleme doar dacă sunteți prezenți în laboratoare,​ accesul extern nefiind posibil+5. Pentru nota 10 pe un test practic, este necesară obținerea a 200 de puncte din cele 200 maxim posibile. Nu se acordă punctaj bonus. O problemă este punctată cu maximum 100 de puncte.
  
-=== Indicații ===+6. Orice tentativă de fraudă va aduce un punctaj nul pe parcurs la materia Proiectarea Algoritmilor.
  
-Asigurați-vă ca ați rezolvat problema [[https://​www.hackerrank.com/​challenges/​simple-array-sum|Simple-array-sum]] în limbajul în care veți coda la test. Limbajele acceptate în cadrul testului sunt **C++** ​și **Java**.+=== Desfășurare test === 
  
-Unele precizări utile legate de submisii ​se află [[https://​www.hackerrank.com/​faq/​how-to-submit-code|aici]],​ iar un exemplu de soluție acceptată pentru Hello World puteți găsi [[https://​www.hackerrank.com/​environment/​sample-problem|aici]].+Un test practic ​se va desfășura pe platforma Hackerrank Business la o adresă menționată. Link-ul va fi disponibil cu câteva minute înainte de începerea testului
  
-Pentru citirea în Java, vă recomandăm să folosiți BufferedReader ​cu InputStreamReader. O clasă care face asta și pe care o puteți folosi în timpul testului practic găsiți [[http://pastebin.com/​XGUjEyMN|aici]],​ folosită pentru a citi un vector de intregi de la  stdinClasa oferă o interfață similară cu Scanner, dar este cam de 2 ori mai rapidă decât Scanner. Nu este nevoie să o salvați ​pentru testul practic, o sa găsiți clasa în scheletul de pe HackerRank, aferent problemelor ​de la test.+Trebuie să vă logați pe platformă ​cu următoarele date: 
 +    * e-mail UPB (ex. darius.neatu@upb.ro) 
 +    * nume complet (ca în catalog) 
 +    * grupă (ex3XXCA) 
 +    * parola privată și personală primită de la echipa de PA pentru testul practic pe platforma ​de curs (curs.upb.ro - vom anunța pe Microsoft Teams / Moodle când vor fi trimise parolele)
  
-Pentru pregătire vă sfătuim sa rezolvați cât mai multe probleme de infoarena, hackerrank, leetcode si alte platforme cu probleme de algoritmică. 
  
-Asigurați-vă ca știți să folosiți structuri de date uzuale puse la dispoziție de limbajul în care veți coda, cum ar fi map, set, lista, etc.+**ATENTIE** Platforma **NU** va verifica automat informațiile de mai sus; este responsabilitatea voastră să verificați atent că datele introduse sunt corecte înainte de a începe testul. Nerespectarea datelor de logare pe platformă va atrage un punctaj nul pe testul practic. 
 + 
 +Testul practic va conține două probleme - o problemă ușoară și o problemă medie. Problemele se vor baza pe urmatoarele capitole studiate în cadrul cursului de PA: 
 + 
 +    * Divide et Impera (laborator 1) 
 +    * Greedy (laborator 2) 
 +    * Programare Dinamică (laborator 3/4) 
 +    * Backtracking (laborator 5) 
 +    * Parcurgerea Grafurilor. Aplicatii (laborator 6/7) 
 + 
 +Se poate obține punctaj parțial la orice problemă. Fiecare problemă are 12 teste, numerotate de la 0 la 11: 
 +    * Testele 0-1: Sunt exemple publice și valorează 0p. 
 +    * Testele 2-11: Sunt teste private și valorează 10 x 10p = 100p. 
 + 
 +Testul practic va avea în intervalul de laborator al fiecărei semigrupe, în săptămâna 05-09 mai 2025. 
 + 
 + 
 +**ATENTIE** Rezolvarea se face exclusiv in browserul Google Chrome, folosind o singură fereastră. După startul testului, este interzisă părăsirea/​minimizarea tabului sau a ferestrei în care s-a pornit testul. Este interzisă scrierea codului în alte aplicații/​ferestre. Platforma va monitoriza orice ieșire din tab-ul de HR, precum și fiecare caracter introdus în editorul de cod. Tot codul introdus trebuie să aparțină studentului evaluat, fără a folosi surse de inspirație sau ajutor. Testul practic valorează 1.5 puncte din nota finală. 
 + 
 +**ATENȚIE**:​ Testul durează 1h 40 min. Pentru a asigura tuturor semigrupelor acces facil in sală, vă rugăm să vă prezentați in față sălii cu cel puțin 5 minute înainte de ora de start a laboratorului (7:55, 9:55, 11:55, etc). Accesul in sală este permis cel târziu până la și 5 minute. 
 + 
 + 
 +Pentru studentii care vor sa rezolve problemele in C++: 
 +  * Puteti folosi scanf si printf (din stdio) pentru citire/​afisare sau cin si cout (din iostream). 
 +  * Aveti voie sa folositi orice doriti din STL.  
 + 
 +Pentru studentii care vor sa rezolve problemele in Java:  
 +  * Vom pune la dispoziție o clasă MyScanner - pe care recomandam sa o folositi in locul clasei Scanner pentru citirea de la stdin. Aceasta este bazata pe BufferedReader,​ care este mai rapid. Daca folositi Scanner-ul clasic, veti lua TLE (time limit exceeded) la unele teste. Interfata utila pentru test a clasei Scanner apare si in interfata clasei MyScanner. Pentru citirea în Java, vă recomandăm să folosiți BufferedReader cu InputStreamReader.  
 +  * Aveți voie să folosiți orice doriți din Java API. 
 + 
 + 
 +Limbajele puse la dispozitie pentru rezolvarea testului sunt C,  C++17 și Java 17. 
 + 
 +    * Nu aveti schelet de cod pentru citire, cu exceptia clasei MyScanner pentru Java. 
 + 
 +    * Nu conteaza coding-style-ul (astfel ca puteti folosi variabile globale* de exemplu). Nu e nevoie de comentarii in surse. Folositi timpul avut la dispozitie doar pentru rezolvarea problemelor. 
 + 
 +    * Pentru pregătire vă sfătuim sa rezolvați cât mai multe probleme de infoarena, hackerrank, leetcode si alte platforme cu probleme de algoritmică. 
 + 
 +    * Asigurați-vă ca știți să folosiți structuri de date uzuale puse la dispoziție de limbajul în care veți coda, cum ar fi map, set, list, etc.
  
 De asemenea vă recomandăm laboratoarele și paginile de pe wiki: De asemenea vă recomandăm laboratoarele și paginile de pe wiki:
Line 59: Line 98:
  
 Link-uri teste practice anii anteriori: Link-uri teste practice anii anteriori:
 +  * [[http://​www.hackerrank.com/​test-practic-2022-06318/​challenges/​ | 2022 - varianta 1]]  ​
 +  * [[https://​www.hackerrank.com/​test-practic-recuperare-2022-90528/​challenges | 2022 - varianta 2]]
   * [[https://​www.hackerrank.com/​contests/​test-practic-pa-2019-64563/​challenges/​ | 2019 - varianta 1]]   * [[https://​www.hackerrank.com/​contests/​test-practic-pa-2019-64563/​challenges/​ | 2019 - varianta 1]]
   * [[https://​www.hackerrank.com/​contests/​test-practic-pa-2019-53266/​challenges/​ | 2019 - varianta 2]]   * [[https://​www.hackerrank.com/​contests/​test-practic-pa-2019-53266/​challenges/​ | 2019 - varianta 2]]
pa/test_practic.1586862377.txt.gz · Last modified: 2020/04/14 14:06 by radu.iacob
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