Tema de proiect la disciplina Programarea Calculatoarelor și Limbaje de Programare reprezintă o componentă esențială a evaluării finale, având scopul de a consolida și aplica cunoștințele dobândite pe parcursul semestrului. Aceasta oferă studenților oportunitatea de a dezvolta o aplicație completă, integrând conceptele fundamentale ale programării în C.​

Obiectivele proiectului

Proiectul are ca scop:​

  • Aplicarea practică a noțiunilor studiate, precum:​
    • Operații cu masive de date (vectori, matrice)​
    • Prelucrarea stringurilor​
    • Gestionarea fișierelor​
    • Utilizarea structurilor​
    • Implementarea funcțiilor definite de utilizator
    • Reprezentarea grafică
  • Dezvoltarea abilităților de analiză, proiectare și implementare a unei aplicații software.
  • Îmbunătățirea competențelor de programare și de gestionare a unui proiect pe termen mediu.​

Cerințe generale ale proiectului

Proiectul trebuie să includă, cel puțin, următoarele componente:​

  1. Citirea datelor dintr-un fișier: Importarea datelor necesare rulării aplicației dintr-un fișier text.​
  2. Afișarea datelor pe ecran: Prezentarea informațiilor într-un format clar și structurat.​
  3. Sortarea datelor: Implementarea unei funcționalități care permite ordonarea datelor după un criteriu specific.​
  4. Calculul unor mărimi: Determinarea unor valori rezultate din prelucrarea datelor de intrare.​
  5. Scrierea în fișier a datelor calculate: Salvarea rezultatelor procesării într-un fișier.​
  6. Reprezentarea grafică: Ilustrarea vizuală a unor aspecte relevante ale datelor procesate.​

Modalitatea de predare

Proiectul se va dezvolta pe parcursul ultimelor săptămâni din semestrul al doilea, iar predarea proiectului se va face în format electronic și fizic, incluzând:​

  • Codul sursă complet, poate fi comentat, dar toate comentariile trebuie să fie tip bloc/multiline ( /*…. */), iar în momentul prezentării toate blocurile vor fi minimizate (se apasă pe semnul – de la începutul comentariului).​
  • Fișierele de intrare și ieșire utilizate.​
  • Un fișier README cu instrucțiuni de compilare și rulare.​
  • Documentația proiectului, descriind arhitectura, funcționalitățile implementate și modul de utilizare, document de tip pdf.​

Prezentarea proiectului va avea loc în cadrul unei sesiuni dedicate, în ultimele două săptămâni din semestru, unde fiecare student va demonstra funcționalitățile implementate și va răspunde la întrebările evaluatorului/evaluatorilor.​

Criterii de evaluare

Evaluarea proiectului se va face pe baza următoarelor criterii:​

  • Funcționalitatea aplicației: Îndeplinirea tuturor cerințelor specificate.
  • Calitatea codului: Claritatea, organizarea și comentariile din codul sursă.​
  • Complexitatea și originalitatea: Gradul de dificultate al funcționalităților implementate și inovația adusă.​
  • Documentația: Completitudinea și claritatea documentației proiectului.​
  • Prezentarea: Modul de expunere a proiectului și capacitatea de a răspunde la întrebări.​

În cazul în care în timpul prezentării, studentul nu știe să răspundă la întrebări, proiectul este respins. Proiectul poate fi respins și în cazul în care nu respectă toate cerințele de mai sus! 

Posibilități de îmbunătățire a aplicațiilor

Pentru a realiza proiecte mai complexe, se pot implementa funcționalități adiționale, cum ar fi:​

  • Interfață grafică avansată (cu interacțiuni din partea utilizatorului). ​
  • Funcționalități de căutare după cuvinte cheie și filtrare avansate.​
  • Adăugarea validărilor datelor de intrare
  • Optimizări de performanță.​
  • Exportarea datelor în format CSV: adăugarea unei opțiuni pentru exportarea listei de evenimente într-un fișier CSV, facilitând astfel importul în alte aplicații sau analiza ulterioară.
  • Backup automat al datelor: crearea unei funcționalități care salvează automat o copie de rezervă a datelor la intervale regulate sau la închiderea aplicației.
  • Personalizarea afișajului: permite utilizatorului să personalizeze modul în care sunt afișate informațiile, cum ar fi ordinea coloanelor sau culorile utilizate în interfață.

Proiectele pot avea și alte teme decât cele propuse, nota urmând a fi stabilită în funcție de complexitatea aleasă.

O lista cu proiectele propuse găsiți la adresa: