Articolul de față vine ca o replică la mesajele din media din ultima săptămână care critică introducerea limbajului Python în programa de clasa a IX-a și a X-a. Se discută despre necesitatea schimbării, tendințele în industrie, ce se învață ca limbaj de programare în liceu în Europa. De ce limbajul Python este mai potrivit pentru a introduce informatica? De ce argumentele enunțate nu sunt valide pentru marea masă a elevilor? În final, merită analizate motivele celor care se opun acestor schimbări. Să începem cu începutul:
Informatica este unul dintre cele mai dinamice domenii la ora actuală. În ultimii 20-30 de ani, industria și digitalizarea au luat un avânt nemaîntâlnit până acum în istorie. Programa școlară ar trebui să țină pasul cu schimbările. O programă elaborată acum 20 de ani nu mai este de actualitate pentru generațiile de copii care au crescut având acces de mici la tehnologie.
Pentru ce este programa școlară? Cine sunt beneficiarii?
Beneficiarii acestor programe sunt toți copiii încadrați în secțiile de informatică intensiv, matematică-informatică, alte secții apropiate. Am căutat numărul de copii înscriși în liceu la aceste profile, dar a fost greu să le găsesc, așa că am făcut câteva aproximări, luând ca exemplu județul Cluj. Haideți să vorbim pe cifre:
Câți copii merg la olimpiada națională din fiecare județ? Conform documentului sunt 47 de locuri pe județ și 43 pentru redistribuire pentru fiecare an școlar. În total 90 de locuri pe țară. Câte județe sunt? Câți copii învață informatică? Doar în orașul Cluj-Napoca sunt aproximativ 600 de elevi admiși anual la licee cu profil informatic (sau care studiază informatica). Asta dacă nu ținem cont de elevii din celelalte localități. Deci o programă care să avantajeze olimpicii ar favoriza de fapt 10 elevi din 1000?
Bun, cei care merg la olimpiada pe județ poate sunt 30–40 pentru fiecare an școlar… dar tot nu justifică adaptarea programei școlare pentru ei. Nu poate să fie mai important interesul acestor copii versus interesul general. Ca atare, argumentele legate de olimpiade și competitivitate ar trebui să reflecte și aceste numere. 90 de locuri pe an scolar la olimpiada națională!! 4–5 locuri (maxim) pe an școlar în fiecare județ. Facem programă pentru 4–5 elevi dintr-un județ?
Performanța pentru olimpiadă nu se obține la clasă. Cei care pregătesc elevii de olimpiadă știu din start că doar cu informațiile și exercițiile predate la clasă nu se pot obține rezultate notabile la olimpiada. Și atunci, dacă pregătirea de olimpiadă oricum nu se face la clasă, de ce să facem C++ la clasă?
Gândirea critică nu ține de folosirea unui anumit limbaj de programare. Gândirea critică nu se dezvoltă prin limbajul X sau Y. Așadar, o argumentație de tipul „limbajul X dezvoltă gândirea și limbajul Y nu” este eronată.
De ce Python și nu C++?
C++ are o complexitate ridicată. Gândit strict pentru eficiență, limbajul C++ nu are caracteristicile unui limbaj ușor de învățat și de înțeles. C++ nu este un limbaj didactic, are multe inconsistențe, lucruri subtile care nu-i ajută pe elevi. Are sintaxă neprietenoasă, iar erorile sunt raportate mult mai criptic față de alte limbaje – mai greu de înțeles și în consecință de rezolvat, mai ales de către un elev aflat la început.
Complexitatea tipurilor de acces la variabile este prea mare pentru cineva care ia acum contact cu programarea: in C++ exista acces direct, referințe, pointeri. Java și Python, de exemplu, au doar acces direct pentru primitive și referințe pentru obiecte, fără atâtea opțiuni care duc la confuzii.
Nici măcar cout << „Hello world” (cea mai simplă instrucțiune de afișare, primul program pe care il scrie un elev la inceput) nu poate fi explicată în totalitate fără OOP (Programarea Orientată pe Obiecte), deoarece << este un operator supraîncărcat care se studiază mai târziu. Și atunci, ce facem? Le dăm copiilor să învețe pe de rost lucruri pe care nu le înțeleg? E ca și cum la fizică le-am preda la început teoria relativității și fizica cuantică… Și cat ar înțelege copiii? Rezultatul: copiii nu ar înțelege principiile și in consecinta, i-am îndepărta de informatică. Este recomandabil ca învățarea să se facă în spirală, de la simplu la complex, și nu invers. C++ are o mulțime de complicații care îl fac greu abordabil, greu de înțeles și de lucrat, greu de învățat (mai ales dacă elevii nu au mai avut experiențe anterioare cu gândirea algoritmică și alte limbaje de programare).
S-a mai argumentat ca e nevoide C/C++ pentru a intelege fundamentele programarii si ale calculatoarelor. Nimic mai fals. C++ aduce doar un avantaj minimal fata de alte limbaje in intelegerea calculatoarelor, se vrea intelegerea fundamentelor? Atunci de ce sa nu se predea arhitectura calculatoarelor si limbajul de asamblare. Analizat asa, argumentul nu prea mai sta in picioare.
Elevii au nevoie de timp ca să acumuleze cunoștințe, modul de gândire algoritmică, iar un limbaj complex precum C++ nu face decât să le îngreuneze procesul de învățare. Apoi ne întrebăm de ce copiii nu mai vor informatică? C++ poate rămâne o opțiune limitată (câteva ore) pentru cei de la informatică intensiv… dar doar atât.
În concluzie, dacă ținem cont de aspectele menționate anterior, din punct de vedere didactic, Python este mai accesibil și mai ușor de înțeles și predat comparativ cu C++.
C++ vs Python în industrie
Revenind la obiectivul școlii: vrem să dezvoltăm gândirea critică, vrem să îi pregătim pe elevi pentru viață. Și atunci, poate ar fi nimerit să vedem care sunt tendințele în industrie în momentul actual. Indicele TIOBE Programming Community Index evaluează mișcările pieței în raport cu numărul de aplicații făcute într-un anumit limbaj. Am verificat C++ vs Python. Dacă acum 20 de ani C++ domina piața, acum raportul s-a inversat: C si C++ sunt folosite tot mai putin, iar Python a urcat in preferintele dezvoltatorilor de soft.

Și Statista menționează că limbajul Python este folosit în proporție de 57,9%, fiind unul dintre cele mai utilizate limbaje în momentul actual.
(https://www.statista.com/statistics/793628/worldwide-developer-survey-most-used-languages/)
Ca atare, dacă vrem să ne ancorăm în piață, în ceea ce se cere în industrie, răspunsul e clar: Python.
Ce limbaje de programare se învață în alte țări?
Când se elaborează o programă, e bine să mai aruncăm un ochi și în ograda vecinului și la argumentele care l-au determinat să aleagă o soluție și nu alta. Am folosit AI-ul pentru a sintetiza aceste informații și a vedea cum procedează alte țări din UE. Concluzia este: în estul Europei se folosește mai mult C++, din cauza caracterului competitiv puternic, în timp ce țările din Europa de Vest și țările nordice predau Python.
| Țara | Limbaje de programare comune | Observații |
|---|---|---|
| Germania | Python, Scratch, Java | Variază în funcție de land; Python este cel mai des folosit; Scratch pentru începători; unele landuri folosesc Java la examene. |
| Franța | Python, Scratch | Python este limbaj oficial pentru Bacalaureat (profilul științific). Puternică orientare națională către Python în liceu. |
| Regatul Unit (Anglia/Wales) | Python, JavaScript, Scratch, VB.NET | Python este principal la GCSE și ALevel; JavaScript pentru web; unele școli vocaționale folosesc C#. |
| Scoția | Python, Scratch | Python este limbajul principal la National 5 și Higher Computing Science. |
| Spania | Python, Java, limbaje vizuale | Curriculum diferit între regiuni; Python predominant; unele regiuni folosesc Java/JavaScript; Scratch în clasele mici. |
| Italia | C, C++, Java, Python | Școlile tehnice folosesc C/C++ sau Java; liceele generale introduc Python. |
| Țările de Jos (Olanda) | Python, JavaScript, Scratch | Python foarte comun; JavaScript pentru proiecte web. |
| Belgia | Python, JavaScript, Scratch | Alegerea limbajelor este la nivel de școală; Python devine preferat. |
| Suedia | Python, Java, JavaScript | Python dominant; Java pentru OOP; JavaScript pentru web. |
| Finlanda | Python, JavaScript, Scratch | Curriculum flexibil; Python comun; limbaje bloc la început. |
| Danemarca | Python, JavaScript | Python în gimnaziu superior; JavaScript în școli web. |
| Norvegia | Python, Java | Curriculumul recomandă Python; unele școli folosesc și Java. |
| Polonia | C++, Python | C++ tradițional pentru olimpiade; Python în creștere. |
| Cehia | Python, C#, Java, C++ | Școlile tehnice folosesc C#/Java; liceele generale adoptă Python. |
| Ungaria | Python, C++ | Tendință spre Python; C++ în școlile de competiții. |
| Austria | Python, Java, Scratch | Depinde de tipul de școală; Python introdus începătorilor; Java în școli tehnice. |
În concluzie
Alegerea C++ in tarile din Europa de Est este legată de competițiile de informatică. Se pare că tendința în țările dezvoltate este de a de invăța Python, nu C++. Și atunci: rămânem tributari unei programe învechite sau ne aliniem țărilor vestice și nordice, renumite pentru sistemul lor de învățământ?
De unde apare rezistența?
Dacă argumentele sunt pentru introducerea limbajului Python în învățământul liceal (clasa a IX-a și a 1X-a), atunci de ce apare această rezistență? Eu văd 3 motive mari:
- Rezistența la schimbare. Oamenii preferă cunoscutul, preferă să aibă aceleași obișnuințe.
- O schimbare ar implica mai mult efort din partea profesorilor. Majoritatea profesorilor de informatică nu știu Python, așadar ar trebui să îl învețe, să facă alte planuri de lecții… o muncă pe care, dacă pot să nu o facă, de ce să o facă? În general, primii 2–3 ani în învățământ sunt grei – până când profesorul cunoaște bine materia, își face planuri de lecții, exerciții, iar o schimbare implică reluarea acestui proces. Alte exerciții, învățat… și cine are chef de și mai multă muncă, când oricum salariile în învățământ nu sunt mari?
- Interesul personal. Interesul personal al unor asociații care sunt legate strict de olimpiade, care consideră că schimbarea programei le poate afecta obiectul muncii. Alți profesori vocali sunt autori de manuale sau de culegeri, iar modificarea programei i-ar impacta direct: nu se mai cumpără manualele, nu mai au bani din drepturi de autor. În aceste cazuri, poate ar trebui analizată cu multă grijă validitatea argumentelor care vin din partea acestor persoane sau asociații. Căci dacă au și un interes de natura personala, acest fapt pune sub semnul întrebării poziția pe care și-au asumat-o.
_________________
Despre autoare: Manuela Petrescu este cadru universitar la Universitatea „Babeș-Bolyai”, cu specializare în domeniul informaticii la Facultatea de Matematică și Informatică. Are o experiență de peste 20 de ani în mediul corporativ, unde a lucrat ca programator, iar în prezent activează ca project manager în dezvoltarea de software financiar. Articolul reprezintă exclusiv opinia autoarei și nu reflectă poziția instituțiilor în care aceasta își desfășoară activitatea.
Nota redacției: Opinia profesorului este esențială pentru școala din România, pentru viitorul ei și al copiilor. Încurajăm și susținem cadrele didactice să-și exprime părerea, să analizeze sistemul actual, să propună soluții la problemele pe care le întâmpină și să popularizeze exemplele de bună-practică. Publicarea opiniilor cadrelor didactice pe Edupedu.ro nu înseamnă automat că publicația susține aceste idei sau propuneri. Trimiteți opiniile pe redactie@edupedu.ro.