Traseu de învățare — Clasa a V-a
Aici începe totul. La clasa a V-a nu pleci de la „știu deja să programez", ci de la „înțeleg ce înseamnă un algoritm și pot să-l scriu pas cu pas". Până la final vei putea citi date dintr-un fișier, să prelucrezi cifrele unui număr, să generezi șiruri după o regulă și — la extensia națională — să lucrezi cu primul tău vector. E fundația pe care se sprijină toți anii următori: dacă o așezi solid acum, restul devine mult mai ușor.
Harta nivelurilor
Clasa a V-a acoperă Nivel 1 — Start și deschide ușa spre Nivel 2 — Date.
- Nivel 1 — Start: variabile, condiții, bucle, fișiere, cifrele unui număr.
- Nivel 2 — Date (doar începutul, prin extensia națională): primul contact cu vectorii, frecvențele și sortările.
Traseul pe capitole
1. Fundamente de programare
- Ce înveți / de ce contează: ce este un algoritm, variabile și tipuri simple, expresii și cele trei structuri de control (liniară, alternativă, repetitivă). Aici se naște gândirea algoritmică. Lecțiile-punte de urmărire manuală și debugging te învață să „rulezi codul în cap".
- Deblochează: orice problemă de aici încolo. Fără bucle și condiții, nimic nu merge.
2. Prelucrarea numerelor naturale
- Ce înveți / de ce contează: lucrul cu cifrele unui număr (sumă, produs, invers), divizori, numere prime, algoritmul lui Euclid, CMMMC, factorial, ridicare la putere. Sunt cărămizile clasice ale oricărei probleme de gimnaziu.
- Deblochează: aritmetica modulară și divizibilitatea avansată din clasa a VI-a; orice problemă cu „prelucrează cifrele / verifică divizibilitatea".
3. Șiruri generate
- Ce înveți / de ce contează: generarea termenilor după o regulă, șirul lui Fibonacci, recurențe simple. Înveți să transformi o regulă în cod care produce termeni la rând.
- Deblochează: recurențele și gândirea „termenul curent depinde de cele anterioare" — sămânța programării dinamice de mai târziu.
4. Fișiere text
- Ce înveți / de ce contează: citire din fișier, scriere în fișier, organizarea datelor de intrare/ieșire. La concurs datele vin din fișier — fără asta nu poți rezolva nimic oficial.
- Deblochează: toate problemele OJI/ONI, care lucrează cu fișiere de intrare și ieșire.
5. Prelucrarea numerelor citite succesiv
- Ce înveți / de ce contează: prelucrezi valori „din mers", fără să le memorezi pe toate — maxim/minim, primele două maxime, ultimele
pelemente, secvențe cu proprietăți. Aici apare ideea de streaming și de a reține doar ce contează. - Deblochează: tehnicile pe vectori și ferestrele glisante; intuiția „nu trebuie să stochez tot".
6. Vectori — Etapă națională (opțional, dar recomandat pentru olimpiadă)
- Ce înveți / de ce contează: noțiunea de vector, parcurgere, căutare liniară, vectori de frecvență și caracteristici, sortări (selecție, inserție, bubble, prin numărare). E saltul de la „un număr" la „o colecție de numere".
- Deblochează: practic tot Nivelul 2 și mai departe — fără vectori și frecvențe, restul algoritmicii nu există.
Borne / checkpoints
- După Fundamente: poți scrie un program care citește numere și decide ceva cu
ifși bucle (ex. câte numere pare sunt). - După Numere naturale: rezolvi probleme de tip „suma cifrelor", „este prim?", „CMMDC a două numere" — clasice de OJI clasa a V-a.
- După Fișiere + Prelucrare succesivă: rezolvi o problemă completă care citește un șir de valori dintr-un fișier și află maximul, al doilea maxim sau cea mai lungă secvență crescătoare.
- După Vectori (extensie): poți sorta un vector și folosi un vector de frecvență pentru a număra aparițiile — pregătit pentru baremul complet la națională.
Traseul olimpicului
Materia de bază (capitolele 1–5) îți dă punctajul la etapa pe școală și județeană. Capitolul Vectori este marcat ca extensie națională: nu e obligatoriu pentru toți, dar este exact ce te separă de pluton la baremul mare. Sfat: nu sări direct la sortări fancy — întâi stăpânește vectorul de frecvență, pentru că rezolvă enorm de multe probleme aparent grele cu o singură idee simplă.
Capcane de parcurs
- Sari peste urmărirea manuală. Mulți elevi scriu cod fără să-l „ruleze în cap" și apoi nu înțeleg de ce greșesc. Lecțiile-punte de la capitolul 1 există tocmai ca să formezi acest reflex devreme.
- Memorezi în loc să înțelegi prelucrarea succesivă. Dacă reții mereu tot vectorul, ratezi ideea de a păstra doar maximul/ultimele
pvalori. Roadmap-ul pune capitolul 5 înainte de vectori tocmai ca să prinzi intuiția de economie de memorie. - Te grăbești la sortări înainte de frecvențe. Vectorul de frecvență e mai simplu și mai puternic decât pare; lecția-punte „vector simplu vs. frecvență" te ajută să alegi corect unealta.