Școala Româno-Britanică
Modulul 2 Clasa a IX-a | Python

Proiect pe Niveluri de Note - Modulul 2

Tema proiectului: Aplicație Python de gestionare a unei liste de produse/stocuri folosind metodele clasei list

Rezultat practic: Construiești o aplicație funcțională de gestiune, iar nota se acordă pe niveluri, în funcție de complexitatea funcționalităților implementate.

Competențele 3.1, 3.4, 3.5, 4.1 Termen de predare: la finalul Modulului 2 Susținere orală obligatorie
DESCRIEREA PROIECTULUI

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ă:
  • Citirea unei liste de produse (nume și cantitate) de la tastatură
  • Adăugarea unui produs nou cu append()
  • Afișarea listei de produse, numerotate, cu for și len()
  • Meniu simplu cu alegerea funcționalității
Nota 5-6
Nivel 2 Toate cerințele Nivelului 1, plus:
  • Validarea datelor: verificarea cantităților (numere pozitive) și a numelor negoale
  • Sortarea produselor după cantitate sau după nume cu sort() / sort(reverse=True)
  • Căutarea unui produs după nume cu in și index(); ștergerea cu remove() sau pop()
  • Lista de frecvențe pentru cantități (de exemplu, de câte ori apare fiecare cantitate)
Nota 7-8
Nivel 3 Toate cerințele Nivelurilor 1 și 2, plus:
  • Modularizarea aplicației în funcții: câte o funcție pentru citire, adăugare, afișare, sortare, căutare, raport
  • Raport statistic complex: valoarea totală a stocului, cantitatea medie, produsul cu cantitatea maximă și poziția lui, numărul de produse sub medie
  • Raportul combină parcurgerea cu memorare, sum(), min(), max() și lista de frecvențe
  • Copierea listei cu copy() înainte de sortare, păstrând lista originală
  • Mesaje clare de eroare și tratarea cazurilor speciale (listă goală, produs inexistent)
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ă.

Structura aplicației pe funcții
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.