Tema proiectului
Definiție: Vei realiza o aplicație Python de gestionare a unei liste de produse/stocuri folosind metodele clasei list. Aplicația primește de la utilizator o listă de produse (nume și cantitate) și oferă funcționalități de adăugare, afișare, sortare, căutare și analiză statistică.
Exemplu de domenii pe care le poți alege: stocul unui magazin, biblioteca personală, colecția de jocuri, meniul unei cantine, inventarul unui laborator. Alegerea îți aparține, dar aplicația trebuie să respecte cerințele nivelului de notă la care aspiri.
Cerințe pe niveluri de note
Nota se stabilește în funcție de nivelul de funcționalități implementate. Poți opta pentru orice nivel; nota maximă se obține prin îndeplinirea completă a cerințelor nivelului ales.
| Nivel | Cerințe obligatorii | Nota |
|---|---|---|
| Nivel 1 |
Funcționalitate de bază:
|
Nota 5-6 |
| Nivel 2 |
Toate cerințele Nivelului 1, plus:
|
Nota 7-8 |
| Nivel 3 |
Toate cerințele Nivelurilor 1 și 2, plus:
|
Nota 9-10 |
Criterii de evaluare
La fiecare nivel se evaluează:
| Criteriu | Descriere |
|---|---|
| Corectitudinea funcțională | Programul rulează fără erori și îndeplinește toate cerințele nivelului ales |
| Utilizarea metodelor clasei list | append, sort, remove, index, count, copy, pop folosite corect, în context adecvat |
| Parcurgerea și prelucrarea datelor | Parcurgeri cu for, sume, contoare, min, max, medie, liste de frecvențe |
| Structura și lizibilitatea codului | Variabile cu nume sugestive, cod comentat pe pași logici, indentare corectă |
| Gestionarea erorilor | Validarea datelor, mesaje prietenoase, tratarea listei goale și a produselor inexistente |
| Susținerea orală | Elevul explică codul linie cu linie și răspunde la întrebări despre algoritmii folosiți |
Regulă anti-AI - obligatoriu de citit
Susținere orală obligatorie
Nota se acordă DOAR în urma susținerii orale în fața profesorului, unde elevul explică codul linie cu linie.
- Predarea programului (cod sau link) fără susținere orală nu primește notă.
- La susținere, profesorul poate cere modificări mici, pe loc, pentru a verifica înțelegerea reală a codului.
- Un program funcțional, dar pe care elevul nu îl poate explica, nu depășește nivelul de bază.
- Codul generat integral de un asistent inteligent, fără ca elevul să îl înțeleagă, va fi tratat ca lucrare nesusținută.
Termen de predare
- Termenul de predare: la finalul Modulului 2, conform planificării calendaristice anunțate în clasă.
- Susținerea orală se organizează în săptămâna de după predare, după un program afișat în prealabil.
- Întârzierile nejustificate diminuează punctajul acordat la susținere.
Model de structură pentru nota 9-10
Mai jos ai o schiță de organizare a aplicației, pe funcții. Nu este soluția completă, ci un ghid de structură.
def citeste_produse():
# citeste numarul de produse si lista de produse
# returneaza lista de produse
pass
def adauga_produs(produse):
# adauga un produs nou cu append(), cu validare
pass
def afiseaza_produse(produse):
# afiseaza produsele numerotate, cu for si len()
pass
def sorteaza_produse(produse):
# sorteaza cu sort(), lucrand pe o copie cu copy()
pass
def cauta_produs(produse, nume):
# cauta cu in si index(), returneaza pozitia sau -1
pass
def raport_statistic(produse):
# valoarea totala, media, maximul, produse sub medie,
# lista de frecvente pentru cantitati
pass
Recomandare: dezvoltă aplicația pe niveluri, testând fiecare funcție separat înainte de a trece mai departe. La susținere vei explica exact aceste funcții, linie cu linie.