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

Proiect - Modulul 1: Aplicație Python cu algoritmi de bază

Tema proiectului: „Calculator personal de medii" - o aplicație Python care calculează medii pentru situații din viața școlară

Rezultat practic: Un program Python funcțional, testat și documentat, susținut oral în fața profesorului (Competențele 1.3, 2.3, 3.3, 3.4, 5.3).

Evaluare individuală Săptămâna 5 - termen de predare
SPECIFICAȚIA PROIECTULUI

Descrierea temei

Construiești o aplicație Python numită „Calculator personal de medii". Aplicația primește notele unui elev și calculează, după alegerea utilizatorului: media aritmetică a unui set de note, media cu teze (media aritmetică a notelor și a tezei, după regula 3:1) și media generală pe mai multe materii.

Proiectul îți cere să aplici toate conceptele modulului: algoritmi, pseudocod, variabile, decizii, bucle, testare și eficiență.

De ce această temă?

Media notelor este un algoritm pe care îl folosești în fiecare zi, dar îl calculezi mental sau pe calculator de buzunar. Acum îl vei transforma într-un program propriu: vei înțelege exact ce calcule se fac, vei valida datele introduse și vei obține rezultate exacte, indiferent câte note ai introduce.

Cerințe pe niveluri de note

Nivel de notă Cerințe Exemple de realizare
Nota 5-6
Funcționalitate de bază
  • Program simplu, secvențial, care citește un număr fix de note (de exemplu 3)
  • Calculează media aritmetică și o afișează
  • Algoritm scris în pseudocod înainte de cod
  • Programul rulează corect pentru un exemplu
„Media a trei note" - exact modelul din lecții
Nota 7-8
Validări și mai mulți algoritmi
  • Program cu meniu: utilizatorul alege ce medie să calculeze
  • Citirea unui număr oarecare de note, cu buclă
  • Validări ale datelor: note între 1 și 10, numere întregi; mesaje de eroare prietenoase
  • Cel puțin doi algoritmi diferiți (media simplă și media cu teză)
  • Testare cu date valide, invalide și cazuri limită
Meniu cu if/elif, buclă while pentru citire, try/except pentru date greșite
Nota 9-10
Modularizare și documentație
  • Modularizare cu funcții: o funcție pentru fiecare tip de medie, o funcție pentru validare
  • Media generală pe mai multe materii
  • Optimizări: alegerea formulei eficiente, bucle corecte, fără pași inutili
  • Documentație: comentarii pe fiecare pas logic, explicația algoritmilor, tabel de teste
  • Prezentarea orală impecabilă, cu răspunsuri la întrebări
Funcții precum media_aritmetica(), validare_nota(), afisare_meniu()

Regula anti-AI - OBLIGATORIU DE CITIT

Nota se acordă DOAR în urma susținerii orale în fața profesorului, unde elevul explică codul linie cu linie și răspunde la întrebări despre funcționarea programului.

  • Un program care nu poate fi explicat de autor nu primește punctaj, indiferent cât de complex este.
  • Utilizarea inteligenței artificiale pentru a genera codul este permisă doar ca material de studiu; codul predat trebuie să fie înțeles și rescris de tine.
  • La susținere vei fi întrebat: de ce ai ales această structură, ce se întâmplă la o anumită linie, ce rezultat dă programul pentru datele propuse de profesor.
  • Dacă nu poți răspunde la întrebări despre orice linie din program, proiectul nu va fi acceptat.

Criteriile de evaluare

Criteriu Ce se urmărește
Corectitudinea algoritmilor Media este calculată exact, pentru toate datele valide
Respectarea etapelor Analiză, pseudocod, implementare, testare, depanare - toate documentate
Validarea datelor Notele greșite sunt respinse cu mesaje clare
Modularizarea Programul este împărțit în funcții cu sarcini unice
Documentația Comentarii, explicații, tabel de teste cu date valide/invalide/limită
Susținerea orală Explicarea linie cu linie și răspunsuri corecte la întrebări

Termenul de predare și formatul livrabilului

Termen de predare: ultima zi a Săptămânii 5. Proiectele predate cu întârziere se punctează cu 2 puncte mai puțin.

Livrabilul conține, într-un singur dosar:

  • fișierul proiect_medii.py cu programul complet, comentat;
  • documentul cu analiza problemei și algoritmii în pseudocod;
  • tabelul de teste (date valide, invalide, cazuri limită) cu rezultatele așteptate și obținute.
PUNCT DE PLECARE - SCHELETUL PROGRAMULUI

Scheletul programului pentru nota 7-8

Structura recomandată

Acest schelet te ajută să începi; trebuie completat, comentat și testat de tine

Programul de plecare (exemplu comentat)

Cerință: Completează și extinde acest program, apoi explică fiecare linie la susținere.

proiect_medii.py - punct de plecare
# Proiect Modulul 1 - Calculator personal de medii
# Autor: [numele tău] | Clasa a IX-a

def citeste_nota():
    """Citește și validează o notă între 1 și 10."""
    nota = int(input("Introdu nota: "))
    if nota < 1 or nota > 10:
        print("Nota trebuie să fie între 1 și 10!")
        return citeste_nota()
    return nota

def media_aritmetica(note_lista):
    """Calculează media aritmetică a notelor din listă."""
    suma = 0
    for nota in note_lista:
        suma += nota
    return suma / len(note_lista)

# Secțiunea principală: meniul aplicației
print("CALCULATOR PERSONAL DE MEDII")
print("1. Media aritmetică")
print("2. Media cu teză")
optiune = int(input("Alege: "))

if optiune == 1:
    nr = int(input("Câte note? "))
    note = []
    for i in range(nr):
        note.append(citeste_nota())
    print("Media este:", media_aritmetica(note))
elif optiune == 2:
    print("Media cu teză - pentru nota 8-10")
else:
    print("Opțiune invalidă!")

Observă: programul folosește funcții (modularizare), validare cu if, buclă for și o listă. Pentru nota 9-10 trebuie să adaugi funcția pentru media cu teză, media generală și documentația completă.