Teste Practice

Informații test practic 2025

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.

Reguli generale de organizare

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:

// NEAȚU Darius-Florentin, 3XXCA
#include <iostream>
...

2. Prin acceptarea începerii testului practic, studentul declară pe propria răspundere că el singur și numai el rezolvă problemele din cadrul testului, fără să fie ajutat. De 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 asemenea, studentul 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.

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.

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ă și re-examinarea studentului de către titularul de curs.

6. Participanț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.

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.).

Reguli de evaluare și notare

1. Toate problemele presupun implementarea unui program complet (citire, rezolvare, afișare, funcție main). Limbaje permise: C, C++, Java.

2. O sursă care reprezintă soluția unei probleme din cadrul testului practic și care nu compilează nu se punctează.

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).

4. Se poate anula ulterior punctajul pe o problemă în caz că rezolvarea nu respectă restricțiile impuse în enunț sau în regulament.

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.

6. Orice tentativă de fraudă va aduce un punctaj nul pe parcurs la materia Proiectarea Algoritmilor.

Desfășurare test

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.

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ă (ex. 3XXCA)
  • 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)

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:

Link-uri teste practice anii anteriori:

pa/test_practic.txt · Last modified: 2025/05/05 15:16 by radu.nichita
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