A. Lista de proiecte pentru anul universitar 2024-2025
Mai jos sunt date proiectele ce vor fi asignate echipelor de studenți din anul I, care fac pentru prima dată aceasta disciplină,
nu sunt repetenți, nu repetă disciplina, nu sunt reînmatriculați sau cursanți sau studenti Erasmus sau se încadrează
în vreo alfel de situație specială.
Lista de proiecte se actualizează permanent.
Studenții care, dintr-un motiv sau altul, repetă disciplina, precum și cursanții si studentii reinmatriculati vor face singuri proiectul sau vor prezenta proiectul realizat de ei anul trecut. Ei sunt rugati sa ia legatura cu titularul de curs, pentru a nu fi inclusi intr-o echipa cu studentii din anul I, care fac pentru prima data acest proiect.
Pentru fiecare proiect sunt precizate cateva elemente simple, descrierea completă a proiectului facandu-se verbal, de catre titularul de curs,
către fiecare grup de echipe în parte. De asemenea, colaboratorii pot veni cu cerințe suplimentare privind complexitatea proiectului și modul de
implementare.
1.Gobblet Gobblers
Implementați o variantă 2D / 3D a jocului Gobblet Gobblers.
Indicații
Jocul se joaca corect, fara niciun fel de greseala, pe o matrice: 9p
Jocul are interfață grafică și stochează datele în fișiere: 2p
Generarea automata de table de joc si "provocari" corecte: 1p+1p
Rezolvarea automata a unei "provocari": 2p
Elemente de grafica suplimentare (culori, tipuri de piese, muzica, refacere ultima miscare, clasament, timp etc.): 2p
Elemente de creativitate / originalitate: 2p
4. Bridg-It
Proiectul constă în implementarea unui joc de strategie "Bridg-It", descris mai jos.
Indicații
Jocul este descris în cartea
Martin Gardner - Entertaining Mathematical Puzzles, începând cu pagina 59 (VEZI pagina 35 in fisierul PDF).
Vedeți aici un început de joc: click aici.
Barem
Din oficiu: 1p
Jocul se joaca corect, fara niciun fel de greseala, pe o matrice: 9p
Jocul are interfață grafică și stochează datele în fișiere: 2p
Joc impotriva calculatorului, dar calculatorul joaca aleatoriu: 2p
Joc impotriva calculatorului, dar acesta joaca cu o strategie (de exemplu cea castigatoare, descrisa in cartea lui Martin Gardner): 2p
Elemente suplimentare (table cu de joc generale n x n, setarea culorilor la piese, muzica, refacere ultima miscare, clasament, timp etc.): 2p
Elemente de creativitate / originalitate: 2p
5. Împărţirea careului
Implementați un joc pentru jocul Împărţirea careului descris mai jos.
Indicații
Jocul este descris sub forma rezolvării de probleme, la pagina 121 în cartea Nicolae Oprișiu - Mai în glumă, mai în serios
Click aici pentru un început de joc.
Barem
Din oficiu: 1p
Jocul se joaca corect, fara niciun fel de greseala, pe o matrice: 9p
Jocul are interfață grafică și stochează datele în fișiere: 2p
Generarea de "provocari" (table de joc cu piese amplasate deja pe ele): 2p
Rezolvarea automata a unei "provocari": 2p
Elemente de grafica suplimentare (culori, tipuri de piese, muzica, refacere ultima miscare, clasament, timp etc.): 2p
Elemente de creativitate / originalitate: 2p
6. Raliu auto
Implementați un joc Raliu auto conform indicațiilor de mai jos.
Indicații
Jocul este descris în cartea Olimpiada jocurilor raționale de Nicolae Oprișiu.
Vedeți aici un început de joc.
Barem
Din oficiu: 1p
Jocul se joaca corect, fara niciun fel de greseala, pe o grilă: 9p
Jocul are interfață grafică și stochează datele în fișiere: 2p
Strategie de joc pentru calculator (chiar și fără a juca foarte bine): 2p
Elemente de grafica suplimentare (culori, tipuri de piese, muzica, refacere ultima miscare, clasament, timp etc.): 2p
Elemente de creativitate / originalitate: 2p
7. Segmente
Implementați un joc Segmente, așa cum este descris el în cartea de mai jos.
Indicații
Vezi jocul descris în cartea „Olimpiada jocurilor raționale” de Nicolae Oprișiu.
Barem
Din oficiu: 1p
Jocul se joaca corect, fara niciun fel de greseala, folosind o structură de date care memorează coordonatele punctelor și legăturile lor, verificându-se intersecția segmentelor folosind un algoritm din cartea „Introducere în algoritmi” de Cormen & Co (capitolul de geometrie computațională): 9p
Generarea automată a unei table de joc, cu tot cu puncte: 2p
Jocul are interfață grafică și stochează datele în fișiere: 2p
Strategie de joc pentru calculator (chiar și fără a juca foarte bine): 2p
Elemente de grafica suplimentare (culori, tipuri de piese, muzica, refacere ultima miscare, clasament, timp etc.): 2p
Jocul se joaca corect, fara niciun fel de greseala, pe o matrice: 9p
Jocul are interfață grafică și stochează datele în fișiere: 2p
Joc impotriva calculatorului, dar calculatorul joaca aleatoriu: 2p
Joc impotriva calculatorului, dar acesta joaca cu o strategie (implementare originală): 2p
Elemente de grafica suplimentare (culori, tipuri de piese, muzica, refacere ultima miscare, noi reguli, clasament, timp etc.) 2p
Elemente de creativitate / originalitate: 2p
9. Război în 8
Implementați un joc Război în 8, așa cum este descris el în cartea de mai jos.
Indicații
Vezi descrierea jocului în cartea „Olimpiada jocurilor raționale” de Nicolae Oprișiu.
Aveți aici un început de joc.
Barem
Din oficiu: 1p
Jocul se joacă corect, fara niciun fel de greseala la mutari, pe o matrice: 9p
Jocul are interfață grafică și stochează datele în fișiere: 2p
Joc impotriva calculatorului, dar calculatorul joaca aleatoriu: 2p
Joc impotriva calculatorului, dar acesta joaca cu o strategie: 2p
Elemente de grafică suplimentare (culori, tipuri de piese, muzica, refacere ultima miscare, clasament, timp etc.): 2p
Elemente de creativitate / originalitate: 2p
10. Cinci în linie
Implementați un joc Cinci în linie, așa cum este descris el în cartea de mai jos.
Indicații
Vezi jocul descris în cartea
Olimpiada jocurilor raționale” de Nicolae Oprișiu.
Barem
Din oficiu: 1p
Jocul se joacă corect, fara niciun fel de greseala la mutari, pe o matrice: 9p
Jocul are interfață grafică și stochează datele în fișiere: 2p
Joc impotriva calculatorului, dar calculatorul joaca aleatoriu: 2p
Joc impotriva calculatorului, dar acesta joaca cu o strategie: 2p
Elemente de grafică suplimentare (culori, tipuri de piese, muzica, refacere ultima miscare, clasament, timp etc.): 2p
Elemente de creativitate / originalitate: 2p
11. Colțul negru
Proiectul constă în implementarea unui joc de strategie Colțul negru, așa după cum este descris acesta în cartea de mai jos.
Indicații
Olimpiada jocurilor raționale„ de Nicolae Oprișiu, începând cu pagina 17.
Vedeți aici un mic început de joc:click aici.
Piesele sunt aici: jocuri1/0.jpg, jocuri1/1.jpg si jocuri1/2.jpg.
Barem
Din oficiu: 1p
Jocul se joacă corect, fara niciun fel de greseala la mutari, pe o matrice: 9p
Jocul are interfață grafică și stochează datele în fișiere: 2p
Joc impotriva calculatorului, dar calculatorul joaca aleatoriu: 2p
Joc impotriva calculatorului, dar acesta joaca cu o strategie: 2p
Elemente de grafică suplimentare (culori, tipuri de piese, muzica, refacere ultima miscare, clasament, timp etc.): 2p
Elemente de creativitate / originalitate: 2p
12. Câinii și vulpea
Implementați un joc de strategie între doi jucători Câinii și vulpea, ca cel descris mai jos.
Indicații
Vezi jocul descris în cartea „
Olimpiada jocurilor raționale” de Nicolae Oprișiu.
Vedeti aici un inceput de joc: click aici.
Barem
Din oficiu: 1p
Jocul se joacă corect, fara niciun fel de greseala la mutari, pe o matrice: 9p
Jocul are interfață grafică și stochează datele în fișiere: 2p
Joc impotriva calculatorului, dar calculatorul joaca aleatoriu: 2p
Joc impotriva calculatorului, dar acesta joaca cu o strategie: 2p
Elemente de grafică suplimentare (culori, tipuri de piese, muzica, refacere ultima miscare, clasament, timp etc.): 2p
Elemente de creativitate / originalitate: 2p
13. Smart Farmer
Proiectul constă în implementarea 2D a jocului Smart Farmer, așa cum este el descris mai jos.
Indicații
Jocul este descris mai jos:
Jocul are un meniu si sunt prezentate regulile de joc: 1p
Jocul se joaca corect, fara niciun fel de greseala, pe o matrice, pentru un jucator: 3p
Jocul se joaca corect, fara niciun fel de greseala, pe o matrice, pentru doi jucatori: 2p
Sugerarea locurilor unde se poate muta, la un moment dat: 1p
Citirea de table de joc din fi?iere sau generarea de table de joc, cu diverse linii/coloane, cu diferite forme, cu piese puse in diferite locuri: 2p
Rezolvarea automata a unei "provocari" (unei table de joc), citind rezolvarea dintr-un fisier sau folosind un algoritm: 1p, respectiv 2p
Elemente de grafica suplimentare (setari pentru culori, tipuri de piese, sunete la mutarea pieselor) etc.: 2p
Refacere ultima miscare, clasament, limitarea timpului de joc pentru mutari etc.: 2p
Elemente de creativitate / originalitate: 2p
15. Eval - Evaluator matematic și reprezentarea grafică a arborelui asociat expresiei
Proiectul presupune implementarea în C/C++ (fără POO) a unui evaluator de expresii algebrice pentru un limbaj de programare
(de exemplu C).
Apoi, plecând de la expresia algebrică, se va crea arborele asociat acestei expresii algebrice, iar apoi acesta va fi reprezentat grafic,
cu diferite opțiuni (inclusiv mutarea nodurilor cu mouse-ul), pe ecranul calculatorului.
Informații
Programul functioneaza corect, fara niciun fel de greseala, pe orice exemplu (cu oricati operatori, functii etc), aratand si erorile de sintaxa: 2p
Programul trateaza cazurile de limita (impartire la zero, adunare/inmultire cu infinit, radical/logaritm din numar negativ etc): 2p
Programul reprezinta corect arborele asociat expresiilor, fara niciun fel de greseala: 2p
Nodurile se redimensioneaza in functie de continutul lor: 2p
La functiile cu un argument (ln,sin,cos) nodul fiu se reprezinta n jos (nu n stnga sau n dreapta): 2p
Nodurile se ampleaseaza in functie de structura subarborelui stang si drept, astfel incat sa nu fie inghesuite (sa nu se suprapuna): 2p
Programul permite mutarea nodurilor din arbore, cu mouse-ul sau cu tastele: 2p
Elemente suplimentare (o alta limba, meniuri, setari de tot soiul, grafica): 2p
Elemente de creativitate și competitivitate: 2p
16. Grafic - Graficul unei funcții
Plecând de la expresia unei funcții, dată sub formă de șir de caractere, se va face un program care să deseneze graficul
funcției pe un anumit interval, punând în evidență eventualele puncte de discontinuitate, asimptotele verticale, orizontale,
punctele de inflexiune etc. Indicații
Video cu explicatii pentru desenarea graficului unei funcții: click aici
De asemenea, în capitolul 12 al aceleiași cărți este și un program cu graficul unei funcții.
De asemenea, vezi cursul și laboratorul 6.
Barem
Din oficiu: 1p
Separarea expresiei in tokeni (itemi) individuali: 1p
Verificarea corectitudinii expresiei functiei, pe baza tipurilor de tokeni: 1p
Evaluarea expresiei intr-un punct dat: 2p
Programul reprezinta corect graficul funcțiilor, fara niciun fel de greșeală, respectandu-se proportiile pe orizontala si verticala, pentru orice functie: 3p (2p daca nu se respecta proportiile)
Sunt reprezentate corect si axele de coordonate: 1p
Programul permite efectul de lupa (zoom), pentru a vedea graficul functiei mai de aproape sau de mai departe, mai in stanga sau mai indreapta: 1p
Reprezentarea simultana a mai multor functii, salvarea functiilor in fisiere etc.: 1p
Afisarea punctelor de minim, maxim local/global, a asimptotelor, a intervalelor unde functia nu e definita etc: 4p
Elemente suplimentare (o alta limba, meniuri, setari de tot soiul, culori, calcularea integralei, tabelarea functiei etc.): 3p
Elemente de creativitate și competitivitate: 2p
17. Deriv - Derivare formală (simbolică)
Se dă o funcție (sub forma unui șir de caractere) și se cere să se obțină derivata sa simbolică (formală).
Indicatii
Se poate transforma expresia funcției în forma postfixată, se creează arborele binar asociat expresiei, se obține din acesta arborele derivatei
și apoi se generează noua expresie, dupa câteva simplificări ale arborelui derivat).
Vezi si proiectul Eval - Evaluator de expresii algebrice
Videoclipuri cu explicatii
Derivarea formala a unei expresii, folosind arbori binari (12:57): click aici
Simplificarea arborelui expresiei derivate (5:25): click aici
Structurile de date folosite (eventual și păstrarea lor în fișiere): 2p
Programul deriveaza corect functia, fara niciun fel de greseala: 5p
Programul rafineaza/simplifica functia derivata (elimina inmultirile cu 0 sau cu 1, adunarile/scaderile cu 0, ridicarea la puterea 1 sau 0,
impartirea la 1, eliminarea parantezelor inutile etc.): 5p
Verificarea corectitudinii expresiei: 1p
Elemente suplimentare de interfață (interfață cu mai multe limbi/meniuri/setari de tot soiul): 1p
Reprezentarea grafica a arborelui expresiei, a expresiei derivate: 2p
Elemente de creativitate și competitivitate (câteva idei: reprezentarea „matematică” a expresiilor, derivata de ordin 2, funcții cu mai multe argumente etc.): 3p
18. InterSchem - Vizualizator și interpretor de scheme logice
Să se realizeze un vizualizator și interpretor de scheme logice, precum Interschem.
Indicatii
Vor fi oferite detalii ulterior.
Ajutor:
electron1/trasare_legaturi.txt
eval1/evaluator1.txt
Barem
Din oficiu: 1p
Structurile de date folosite și păstrarea lor în fișiere: 1p
Programul reprezinta corect blocurile si legaturile dintre ele (chiar si daca legaturile sunt directe): 4p
Blocurile se pot muta (cu mouse sau cu taste), legaturile mutandu-se dupa blocuri: 1p
Legaturile dintre blocuri pot ocoli blocurile: 2p
Editarea continutului blocurilor: 1p
Executia si codificarea programului din schema logica in cod C++: 5p
Altele elemente (salvare, incarcare schema logica din fisier): 1p
Elemente de creativitate și competitivitate: 4p
19. Electron - Vizualizator de scheme electronice
Să se proiecteze un vizualizator de scheme electronice, ce conține tranzistori, diode, condensatori,
surse de alimentare etc. Dacă se fac și verificări și calcule pe această schemă electronică, cu atât mai bine.
Indicatii
Vezi folderul acesta: aici Vor fi oferite detalii si ajutor la consultatii online.
Un mic inceput este aici: click.
Descarcati si fisierele PS (care pot fi vizualizate cu Notepad, sunt fisire text pur si simplu, care contin descrierile unor piese).
Barem
Din oficiu: 1p
Structurile de date folosite și păstrarea lor în fișiere, separarea clară a datelor de cod
(folosirea unei structuri generale, nu a unor structuri pentru fiecare piesa n parte, desenarea se face prin interpretarea unor comenzi ce sunt preluat din niste fisiere): 4p
(daca nu se respecta acest lucru, punctajul acordat va fi de 2p)
Programul reprezinta corect piesele electronice si legaturile dintre ele (dintre punctul pct1 al piesei p1 si punctul pct2 al piesei p2): 3p
Desenarea legaturilor: 1p
Piesele se pot muta (cu mouse sau cu taste), legaturile refacandu-se sau mutandu-se dupa ele: 1p
Piesele se pot roti, redimensiona: 1p
Alte elemente, cum ar fi verificarea corectitudinii circuitului, calcule fizice etc.: 1p
Salvare, incarcare circuit electronic, alte elemente: 2p
Elemente de creativitate și competitivitate: 4p
20. BibMat - Bibliotecă de lucru cu tablouri (vectori și matrice)
Se vor implementa funcții de operare cu tablouri uni- și bidimensionale.
Atenție! Toate operatiile vor fi vizualizate grafic în timp ce se desfășoară.
IndicatiiUn punct de plecare pentru BibMat:: aici Exemple de operatii ce pot fi implementate:
citire de la tastatură sau din fișiere;
afișare pe ecran sau în fișiere;
adunare, scădere, înmulțire, împărțire, ridicare la putere matrice;
obținerea transpusei și inversei unei matrice;
obținerea determinantului unei matrice;
operații cu vectori: suma elementelor din vector, produsul lor, sortare vector crescător sau descrescător
(prin diferiți algoritmi), shiftare vectori la stânga sau la dreapta etc;
înmulțirea unui vector cu un scalar;
operații cu matrice: suma elementelor de pe diagonala principală, de sub diagonala principală, de pe diagonala secundară,
de sub diagonala secundară etc.
Barem
Din oficiu: 1p
Structurile de date folosite și păstrarea lor în fișiere: 2p
Implementarea functiilor de operare cu tablouri uni- si bidimensionale. 5p
Animatia: 6p
Elemente suplimentare (alte functii, meniu, setari, culori, sunete, etc): 3p
Elemente de creativitate și competitivitate: 3p
21. BibLis. Bibliotecă de operații cu liste
Proiectul presupune programarea în C a unui unei biblioteci de funcții pentru operații cu liste
implementate dinamic (simplu înlănțuite, dublu-înlănțuite, stive, cozi).
Atenție! Toate operatiile vor fi vizualizate grafic în timp ce se desfășoară.
Se va urmări îndeaproape teoria legată de aceste structuri de date.
Barem
Din oficiu: 1p
Structurile de date folosite și păstrarea lor în fișiere: 2p
Implementarea functiilor de operare cu liste: 5p
Animatia: 6p
Elemente suplimentare (alte functii, meniu, setari, culori, sunete, etc): 3p
Elemente de creativitate și competitivitate: 3p
22. Calculator în limba română
Indicatii
Programul va putea face calcule cu mai multe expresii de tipul operand1 operator operand2, în care operatorii sunt cei aritmetici
(+,-,*,/), plecând de la o propoziție interogativă în limba română, de genul "Cat este suma dintre 3 si patru?"
sau "Care este rezultatul inmultirii lui zece cu paisprezece?".
Ajutor aici: eval1/evaluator1.txt
Detalii, idee de rezolvare pentru un singur operator: Input: un șir de caractere, conținând o întrebare în limba română despre o operație de tipul menționat. Output: un șir de caractere, reprezentând rezultatul operatiei, scris cu cuvinte, in limba romana Restrictii: operanzii si rezultatul operatii sunt numere naturale intre 0 si 100.000.000
Algoritmul
Pentru a rezolva această problemă, vom lua un exemplu: "Care este rezultatul inmultirii lui zece cu paisprezece?"
se desparte propoziția în cuvinte, apoi se execută următoarele:
cuvintele inutile se elimină (de exemplu, "Care", "este", "rezultatul", "lui", "cu");
celelalte cuvinte se aduc la o forma standard (de exemplu, "inmultirii" -> "*", "zece" -> "10", "paisprezece" -> "14");
vectorul de trei cuvinte obținut se pune în ordine infixată (de exemplu, ["10", "*","14"]);
se evalueaza expresiă, transformând șirurile de cifre în numere și ținând cont de operator;
astfel se obține o valoare numerică (de exemplu, 140);
se transformă valoarea numerică în cuvânt în limba română (de exemplu, "o suta patru zeci").
Barem
Din oficiu: 1p
Transformarea din intrebare (in limba romana) in expresie matematica: 6p (2p pentru expresii cu doi operanzi si un operator, 4p pentru expresii mai complexe)
Evaluarea expresiei cu doi operanzi si un operator: 1p
Evaluarea expresiilor mai complexe: 3p
Transformarea raspunsului din numar in cuvinte: 3p
Elemente suplimentare (inclusiv grafica): 3p
Elemente de creativitate și competitivitate: 3p
23. My Commander
IndicatiiSe va realiza un program de tip Total Commander, Norton Commander, Midnight Commander, care va permite afisarea continutului a doua foldere din calculator (lista, arbore),
crearea de noi foldere, copierea de fisiere, de foldere, stergerea lor, mutarea lor etc. Se vor face si vizualizarea fisierelor de tipuri de baza (txt, imagini etc.).
Programul va permite selectarea, deselectarea de fisiere, pe baza de filtre, sortarea dupa diferite criterii, cautarea lor, comenzi rapide etc.Barem
Din oficiul: 1p
Parcurgerea continutului a doua directoare si afisarea lor in cele doua panouri (din stanga si din dreapta): 2p
Realizarea unor bare de derulare, pentru a putea vizualiza continutul directoarelor: 2p
Posibilitatea de a naviga prin directoare: 1p
Selectarea de fisiere sau directoare si grupuri de fisiere si directoare, pe diferite criterii: 2p
Implementarea functiilor de creare de director, stergere, mutare, copiere de directoare/fisiere, pe baza unei selectii: 2p
Sortarea fisierelor din directoare, pe diferite criterii: 2p
Deschiderea fisierelor, prin asocierea diferitelor programe diferitelor tipuri de fisiere: 1p
Meniu cu diferite optiuni: 2p
Cautarea unui fisier dupa anumite criterii: 2p
Elemente suplimentare necuprinse mai sus: 1p
Elemente de creativitate: 2p
24. Vizualizator de formule matematice
Indicatii
Pe baza unui limba predefinit, programul va afisa expresii matematice, cu operatorii de baza, dar si cu indici, sume, produse, radicali, limite, matrice etc.
Pasul 1: Se transforma expresia, citita de la tastaura ca un sir de caractere, intr-un tablou unidimensional de siruri de caractere: de exemplu din "(x+3.26)/sin(x^10)" se va obtine
tabloul cu elementele "(", "x", "+", "3.26",")","/","sin","(","x","^","10",")".
Pasul 2: Se verifica daca tabloul generat la pasul 1 contine o expresie corecta, din punct de vedere sintactic. Acest lucru se face in doua etape: verificarea corectitudinii deschiderii/inchiderii parantezelor,
verificarea numaruluid de paranteze deschise/inchise. Si apoi se clasifica itemii (tokenii) obtinuti la primul pas pe categorii, iar dupa fiecare categorie de item pot urma doar anumite categorii de itemi (de exemplu, dupa categoria in care ar intra + si - pot urma doar variabile, constante, paranteza deschisa, functii, dar nu si altceva)
Pasul 3: Daca expresia este corecta, dupa pasul 2, atunci se va obtine arborele asociat expresiei. Un ajutor in acest sens este aici:
https://www.edusoft.ro/pascal12/cap5_pascal12.pdf capitolul 5, la pagina 103.
Pasul 4: Se parcurge recursiv, in preordine, arborele asociat expresiei si se reprezinta intr-un dreptunghi. Explicatii video aici:
Barem:
Din oficiu: 1p
Transformarea expresii din sir de caractere in tablou de sir de caractere, prin identificarea diferitelor categorii de itemi (tokeni): 1p
Verificarea corectitudinii expresiei: 1p
Crearea arborelui asociat expresiei: 2p
Reprezentarea grafica a expresiei, parcurgand arborele expresiei
(pentru o expresie cu operatorii de baza: +,-,*,/,^, precum si functii trigonometrice, ln, abs, cu ajustarea dimensiunilor zonelor de reprezentare): 5p
Ajustarea marimii fonturilor in functie de reprezentare: 2p
Tratarea cazurilor de numere mari, a unor elemente suplimentare (de exemplu radical, integrala, limita, matrice, determinant etc.): 4p
Elemente de creativitate: 4p
25. Analizor sintactic pentru limba romana (CKY)
Indicatii:
Vezi aplicatia Parser din cap. 6 din de aici: click aici
Vezi aici coduri C++ pentru a avea un punct de start: click aiciBarem:
Din oficiu: 1p
Documentarea privind gramaticile generative: 1p
Definirea unei structuri de date pentru a memora multimile de simboluri: 1p
Definirea unei structuri de date pentru a memora regulile: 1p
Documentarea privind elementele de geometrie necesare proiectiei 3D -> 2D: 2p
Definirea unor structuri de date adecvate reprezentarii corpurilor: 2p
Proiectia din 3D in 2D, vizualizarea corpurilor 3D pe ecran: 2p
Editarea corpurilor (adaugarea de puncte/linii/suprafete): 3p
Translarea si rotirea corpurilor fata de cele 3 axe: 1p+1p
Operatii de salvare si restaurare in/din fisiere (in formatul propriu): 2p
Incarcarea unor corpuri din fisiere din alte formate: 1p
Elemente suplimentare de grafica: 1p
Elemente suplimentare de algoritmica (de exemplu evidentierea linilor ascunse, desenarea de suprafete/umbre etc.): 2p
Elemente de creativitate: 2p
28. Algoritmica grafurilor
Indicatii
Editor de grafuri si vizualizarea rezolvarii principalelor probleme de teoria grafurilor.
Barem
Din Oficiu: 1p
Documentarea privind algoritmi fundamentali din teoria grafurilor (parcurgerea grafurilor, determinarea arborelui partial de cost minim, determinarea drumului de cost minim etc.): 1p
Definirea unei structuri de date adecvate pentru program: 1p
Posibilitatea de a amplasa noduri pe o "tabla" grafica, de a desena muchii intre noduri si de a le asocia costuri muchiilor (graf neorientat): 4p
Posibilitatea de a amplasa varfuri pe o "tabla" grafica, de a desena arce intre varfuri si de a le asocia costuri arcelor (graf neorientat): 2p
Posibilitatea de a deplasa nodurile/varfurile si muchiile/arcele impreuna cu nodurile/varfurile, in mod dinamic (preferabil cu mouse-ul): 1p
Implementarea unor algoritmi de parcurgere a grafurilor, cu animatie (BFS, DFS): 2p
Implementarea algoritmului Prim sau Kruskal pt. arbore partial de cost minim: 1p
Implementarea algoritmului lui Dijkstra pt. drum de cost minim: 1p
Implementarea altor algoritmi: 1p
Elemente suplimentare de grafica: 2p
Elemente de creativitate: 3p
29. Ceas digital si analogic
Indicatii
Un ajutor si pentru cei care au de facut Ceasul analogic si digital:
aici si aiciBarem
Din oficiu: 1p
Ceasul functioneaza corect, indicand corect ora si data, in format digital cu grafica (fara grafica: 0p): 2p
Ceasul functioneaza corect, indicand corect ora, in format analogic: 5p
Ceasul are posibilitatea de a seta o alarma, la o anumita ora: 2p
Exista posibilitatea de a schimba ora si data: 2p
Exista si cronometru: 1p
Posibilitatea afisarii orei in functie de fusul orar: 2p
Elemente de grafică suplimentare (culori, fonturi, ticait, diferite fete la ceas (inclusiv pentru acele ceasornicului) etc.): 2p
Indicatii
Vezi capitolul 11 din cartea Invatati limbajul Pascal in 12 lectii:click aiciBarem
Din oficiu: 1p
Editarea cu mouse-ul a mai multor linii poligonale inchise: 3p
Modificarea unei linii poligonale inchise, pentru a obtine o alta linie poligonala inchisa, cu acelasi numar de puncte, dar plasate in alte locuri: 4p
Animatia (transformarea primelor linii poligonale (de start) in liniile poligonale finale, prin translatie in diferiti pasi): 3p
Adaugarea de culori pentru liniile poligonale inchise si pentru poligoanele pe care acestea le formeaza: 2p
Salvarea si restaurarea din fisiere a liniilor poligonale inchise: 2p
Elemente de editare sau animare suplimentare: 3p
Elemente de creativitate / originalitate: 2p
32. Quoridor
Indicatii
Implementarea 2D a jocului Quoridor.
O lucrare de licenta despre Quoridor: https://docplayer.net/14902978-Mastering-quoridor-lisa-glendenning-thesis-submitted-in-partial-fulfillment-of-the-requirements-for-the-degree-of.html
Barem
Din oficiu: 1p
Crearea suprafetei de joc, a tablei: 1p
Posibilitatea de a muta piese sau amplasa garduri, validarea mutarilor: 5p
Tratarea mutarilor speciale: 1p
Verificarea castigarii jocului prin ajungerea la linia opusa: 1p
Verificarea faptului ca nu s-a blocat total pionul adversarului: 2p
Posibilitatea de a juca impotriva calculatorului, calculatorul jucand cu miscari aleatorii: 3p
Calculatorul poate juca cu o strategie oarecare, chiar si una simpla: 2p
Elemente de creativitate / originalitate: 3p
33. Coduri Huffman, Algoritmul LZW (Lempel-Ziv-Welch) - Vizualizator de fisiere tip arhiva (TAR, ZIP)
Compresia unui fisier, intr-un format bazat pe coduri Huffman: 3p
Decompresia unui fisier, dintr-un format bazat pe coduri Huffman: 3p
Arhivarea mai multor fisiere (poate fi si o structura de foldere) intr-un singur fisier comprimat: 2p
Dezarhivarea mai multor fisiere dintr-un singur fisier comprimat, cu refacerea structurii de foldere: 3p
Elemente de grafica SAU Impachetarea in format TAR a unor fisiere: 1p
Elemente de creativitate / originalitate: 2p
34. Editor de texte
IndicatiiRealizarea unui editor simplu de texte, de genul NotepadBarem:
Din oficiu: 1p
Implementarea unei structuri de date adecvate lucrului cu fisiere text (mari) (de exemplu String, liste dublu-inlantuite etc): 2p
Afisarea in mod grafic a unui fragment dintr-un fisier text: 2p
Posibilitatea de a naviga cu tastele prin fisierul text: 2p
Posibilitatea de a naviga cu cursorul de mouse prin fisierul text: 1p
Posibilitatea de a edita (adauga, sterge) caractere din bucata de fisier text vizibila in fereastra grafica: 3p
Salvarea si restaurarea fisierului modificat in editor, intr-un fisier text: 1p
Functii de selectie, copiere, decupare, lipire: 3p
Functii de cautare in fisierul text: 1p
Word wrap, meniuri, alte functionalitati specifice: 2p
Elemente de creativitate / originalitate: 2p
35. Elisa
IndicatiiCrearea unui terapeut bazat pe sabloane, ca la inceputurile Inteligentei Artificiale:
https://en.wikipedia.org/wiki/ELIZA.
Vezi aici un schelet de aplicatie:
https://docs.google.com/document/d/1f-WtvGDanuLMUIOxYEowxs6C_GYHOogXOAeA0g86tbk/edit?pli=1
Barem
Din oficiu: 1p
Documentarea privind programul Elisa original: 1p
Documentarea privind regex (expreii regulate): 2p
Intelegerea scheletului de program primit de la profesor: 2p
Crearea unor sabloane complexe pentru diferite tipuri de intrebari si raspunsuri, care sa cuprinda si negatii si cuvinte in alta ordine etc.: 4p
Incadrarea intrebarilor si raspunsurilor in diferite contexte: 2p
Posibilitatea de a da raspunsuri pe baza istoricului conversatiei: 3p
Adaugarea unei baze de intrebari si raspunsuri (propozitii) consistente: 1p
Elemente necuprinse anterior: 1p
Elemente de creativitate / originalitate: 2p
36. Joc cu Mario
Indicatii
Vezi aici un schelet de joc: mario/
Barem
Din oficiu: 1p
Intelegerea scheletului de joc pus la dispozitie de profesor: 2p
Modificarea scheletului de joc, de exemplu prin optimizarea afisarii hartii si a lui Mario, ca sa fie transparent: 2p
Adaugarea unor dusmani, pe care Mario trebuie sa ii evite: 1p, pt. dusmani care nu se misca, 4p pt. dusmani care se misca
Adaugarea de salt lui Mario: 1p
Adaugarea de mai multe niveluri: 1p
Diferite sunete (in mod asincron/sincron): 1p
Diferite elemente de cules, implementarea de vieti, energie etc: 3p
Alte elemente necuprinse anterior: 2p
Elemente de creativitate/originalitate: 3p
Vezi aici explica?ii detaliate:
https://docs.google.com/document/d/1f-WtvGDanuLMUIOxYEowxs6C_GYHOogXOAeA0g86tbk/edit?pli=1
B. Resurse generale pentru realizarea proiectelor
În dreptul fiecărui proiect sunt/vor fi link-uri către resurse utile.
Totuşi, iată câteva resurse generale:
Un mic program ce ilustrează utilizarea mouse-ului și graficii (folosind biblioteca WinBGIm):
click aici! Acesta NU are o matrice asociată tablei jocului.
Un alt program care ilustrează utilizarea mouse-ului și graficii (folosind biblioteca WinBGIm):
click aici! Acesta ARE o matrice asociată tablei jocului.
C. Evaluarea proiectelor pentru anul universitar 2023-2024
Proiectele trebuie prezentate până la finalul celor 14 săptămâni, preferabil în săptămâna a XIII-a.
Proiectele vor fi prezentate titularului de curs (domnului Bogdan Pătruț) și profesorului colaborator de la laborator.
Fiecare student din echipă dintr-un proiect primește, astfel, două note. Notele sunt individuale (fiecare student are nota lui,
în funcție de complexitatea proiectului (vezi mai jos), dar și de munca depusă la proiect, de răspunsurile la întrebări
(care pot fi și întrebări din cod, cerința de a modifica bucăți din cod pentru a schimba comportamentul etc) și așa mai departe.
Fiecare echipă va pregăti și un mic film cu felul în care rulează proiectul (3-5 minute).
Studenții care, dintr-un motiv sau altul, repetă disciplina, precum și cursantii și studenții reînmatriculați
vor realiza singuri proiectul sau vor prezenta (din nou) proiectul realizat de ei anul trecut.
Criterii generale de evaluare a proiectelor
Criteriile sunt orientative și punctajele sunt maxime, deoarece profesorii pot interveni cu cerințe suplimentare pe măsură ce proiectele se dezvoltă.
Nota fiecărui studentul depinde și de efortul depus, de munca în echipă, de colaborarea cu colegul de echipă,
de răspunsuri la întrebări din cod, de felul în care este prezentat proiectul și altele.
ATENȚIE!
Dacă membrii unei echipe realizează 2/3 proiecte, în loc de unul singur, în comun: toți studenții echipei iau nota 1.
Dacă nu lucrează ambii studenți (sau toți trei) la proiect: toți studenții echipei iau nota 1.
Dacă nu există colaborare reală între membrii unei echipe: toți studenții echipei iau nota 1.
Dacă se folosesc elemente suplimentare care nu fac obiectul acestui curs (STL, OOP etc.): toți studenții trebuie să cunoască aceste elemente
și să fie capabili să răspundă la întrebări din domeniu, altfel primesc nota 1.
Dacă se lucrează în alte limbaje de programare decât C/C++, un mediu de dezvoltare care are multe elemente ”prefabricate”: nota 1
Dacă se lucrează un o bibliotecă grafică performantă (OpenGL, GLUT etc.): nota 1
Dacă se copiază de pe Web, de la studenții din anii anteriori sau de la altă persoană, sau se copiază tutoriale de pe Youtube: nota 1
Dacă nu se realizează videoclipul de prezentare: se scad 6p din nota finală.
Dacă se răspunde greșit la întrebări, se scade câte 1p pentru fiecare greșeală făcută. Pot fi scăzute până la 6p.
Dacă unul dintre studenți renunță la facultate, coechipierul/coechipierii ne anunță imediat.