2. Recursivitate - manualul profesorului
1. Terminologie - Prezentarea elementelor de software
Obiect de conţinut
Un fişier independent, care prezintă informaţii grupate din punct de
vedere tematic, ce nu pot fi prezentate separat. Poate fi format din mai
multe pagini de conţinut. În cadrul acestui ghid, vom folosi şi noţiunea de
componenta atunci când vom face referire la un obiect de conţinut.
Butoane Start animaţie/Trecere la pasul următor
Sunt amplasate în cadrul animaţiilor şi al aplicaţiilor care conţin mai
mulţi paşi. Prin apăsarea acestui buton, începe rularea animaţiei, sau
respectiv se trece la pasul următor al animaţiei. Animaţia se poate relua
prin accesarea butonului.
Texte de reper
Sunt linkuri prezente în text, evidenţiate printr-o colorare aparte.
Prin click pe cuvântul respectiv, elevul primeşte informaţii suplimentare
care detaliază noţiunile respective.
Butoane de obiective
Sunt amplasate în partea de jos a ecranului şi oferă utilizatorului,
într-o fereastră de detalii, obiectivele parcurgerii materialului din modulul
respectiv.
1
3. Recursivitate - manualul profesorului
Butoane studiu individual
Sunt amplasate în partea dreaptă sus a ecranului. Prin accesarea
acestui buton, se oferă elevului probleme suplimentare dacă acesta
solicită şi are timp suficient la dispoziţie sau poate să le printeze şi să le
rezolve acasă.
Butoane defilare pentru text
Prin accesarea acestor butoane, textul se derulează în sensul săgeţii.
Fereastra calculează
Cuprinde butoane care schimbă valorile iniţiale ale variabilelor,
pentru reluarea animaţiei.
Buton preferinţe, fereastra preferinţe
Prin accesarea lui, se deschide fereastra Preferinţe. Acest buton este
amplasat în partea dreaptă sus a ecranului. Fereastra preferinţe permite
elevului să-şi stabilească viteza de derulare a animaţiei şi introduce
derularea automată opţională a animaţiei (de către calculator) sau
condusă de elev, prin accesarea butonului, situat în partea dreaptă sus a
ecranului.
2
4. Recursivitate - manualul profesorului
Ferestre mesaj
Se deschid în urma realizării unei anumite sarcini cerute elevului sau în
urma comiterii unei greşeli de către acesta. În această fereastră se indică
subiectului aprecierea rezultatului său şi se declanşează automat animaţia
cu rezolvarea corectă.
2. Informatii generale despre tema prezentata
Produsul multimedia realizat oferă o perspectivă coerentă, unitară şi
constructivă asupra cunoaşterii, utilizării şi implementării tehnicii
recursivităţii în programare.
În cadrul acestei teme abordate – recursivitatea – au fost puse în
evidenţă următoarele aspecte:
definirea recursivităţii, cu accent pe probleme care se rezolvă
prin recursivitate;
prezentarea tehnicii recursivităţii şi simularea etapelor de
execuţie a unei proceduri recursive;
formarea abilităţilor de construire a algoritmilor recursivi,
utilizând metode activ-participative pentru antrenarea elevului
în procesul de instruire.
Cuvintele cheie la această tema sunt: proces recursiv, recursivitate
directă, recursivitate indirectă , segment de stivă.
Materialul are o structură modularizată, care permite folosirea în mai
multe variante a instrumentelor puse la dispoziţie.
Momentele de evaluare au rolul de a realiza un feed-back
permanent, optim, colectiv şi care să pună în lumină progresul înregistrat
de elevi.
3
5. Recursivitate - manualul profesorului
3. Obiective
Obiectiv Detaliere
Competenţe generale
CG1 Definirea şi recunoaşterea conceptelor
specifice informaticii.
CG2 Elaborarea de algoritmi complecşi, utilizând
tehnicile de programare: recursivitate,
backtracking, divide et impera, greedy.
CG3 Implementarea algoritmilor în limbaje de
programare evoluate: Pascal/C++.
CG4 Realizarea unor transferuri şi integrarea
cunoştinţelor şi metodelor evoluate de
programare în rezolvarea de probleme cu
aplicabilitate practică.
Competenţe specifice
CS1 Identificarea unor noţiuni specifice şi
caracterizarea algoritmilor care utilizează
tehnici avansate de programare
CS2 Exemplificarea, pe baza unor probleme
concrete, a algoritmilor care folosesc metode
de programare evoluată
CS3 Cunoaşterea şi înţelegerea mecanismului
recursivităţii
CS4 Compararea între algoritmul iterativ şi cel
recursiv de rezolvare a problemelor
Obiective operaţionale
OP1 Sa-ţi aminteşti şi să identifici noţiunea
matematică de recursivitate
OP2 Să recunoşti principiul recursivităţii în
programare şi să-ţi dobândeşti mecanismul de
realizare a recursivităţii
OP3 Să interpretezi principiul recursivităţii aplicat
într-o suită de probleme, când ţi se dau
valorile datelor de intrare
OP4 Să aplici recursivitatea în probleme în care
relaţiile dinte componente apar într-o situaţie
concretă, nouă.
4
6. Recursivitate - manualul profesorului
4. Structura generala
4.1 Continut
Se prezintă lista obiectivelor de conţinut (notate cu M) şi
caracteristicile lor generale.
M1 – Noţiuni introductive
Obiective didactice OP2
Timp 5 min.
Tip de interacţiune cu Explicaţia, problematizarea, descoperirea.
elevii
Descrierea În acest modul, este definită noţiunea de
proces recursiv şi se face distincţie între
proces recursiv finit şi proces recursiv infinit
M2 – Noţiuni introductive de matematică
Obiective didactice OP1, OP2
Timp 5 min.
Tip de interacţiune cu Explicaţia, modelarea, problematizarea.
elevii
Descrierea În acest modul este prezentată noţiunea de
recursivitate în matematică.
M3 – Exemple de algoritm recursiv
Obiective didactice OP2, OP3
Timp 10 min.
Tip de interacţiune cu Expunerea, observarea, problematizarea,
elevii simularea.
Descrierea Sunt prezentate într-o forma atractiv-
captivantă, câteva probleme clasice de
recursivitate, cunoscute de la matematică:
suma primelor n numere naturale, calculul
factorialului şi aflarea cmmdc a două numere
naturale.
5
7. Recursivitate - manualul profesorului
M4 – Mecanismul recursivităţii
Obiective didactice OP2, OP3
Timp 10 min
Tip de interacţiune cu elevii Expunere, observare,
problematizare, modelare şi
simulare
Descriere - este prezentată succesiunea
de operaţii care se
realizează pentru calculul
factorialului
- printr-o participare activă,
elevul, aflat permanent în
interacţiune cu calculatorul,
este condus spre înţelegerea
mecanismului recursivităţii,
având la dispoziţie
segmentul de stivă şi
modalitatea în care acesta
este gestionat de sistem
M5 – Exemple de programe recursive
Obiective didactice OP2, OP3
Timp 10 min
Tip de interacţiune cu elevii Expunere, observare, modelare şi
simulare
Descriere - în acest modul se prezintă
modalitatea de
implementare a recursivităţii
în limbajul de programare
Pascal sau C++
- animaţia realizată are scopul
de a atrage atenţia elevului
asupra modului de apelare
şi a condiţiei de terminare a
procesului recursiv
6
8. Recursivitate - manualul profesorului
M6 – Aplicaţie – recursivitate – 1
Obiective didactice OP2, OP3, OP4
Timp 10 min
Tip de interacţiune cu elevii Explicaţie, problematizare,
modelare şi simulare
Descriere - este prezentată într-o formă
atractiv-captivantă o
problemă care utilizează
recursivitatea
- subprogramul recursiv
prezintă pas cu pas, în
ritmul de înţelegere al
elevului, instrucţiunile care
se execută. La această
animaţie elevul participă
activ şi este dirijat spre
însuşirea optimă a
mecanismului recursivităţii
M7 – Aplicaţie – recursivitate – 2
Obiective didactice OP1, OP2, OP4
Timp 15 min
Tip de interacţiune cu elevii Exerciţiu, descoperire,
problematizare, modelare şi
simulare
Descriere - modulul este o aplicaţie a
matematicii în calculul
sumei x1k+ x2k +…+xnk,
unde x1, x2, …, xn sunt
rădăcinile unei ecuaţii
algebrice de gradul n
- utilizarea recursivităţii în
rezolvarea acestei probleme
este o confirmare a
interdisciplinarităţii
(matematică şi informatică)
7
9. Recursivitate - manualul profesorului
M8 – Turnurile din Hanoi
Obiective didactice OP1, OP2, OP4
Timp 15 min
Tip de interacţiune cu elevii Problematizare, modelare şi
simulare
Descriere - modulul conţine un joc prin
care elevul este invitat să
mute discurile situate de pe
tija a, pe tija b, folosind ca
tijă intermediară tija c şi
respectând anumite reguli
- animaţia are rolul de a
conduce elevul la
descoperirea procedurii
recursive de rezolvare a
problemei
4.2 Recomandari de structurare si predare
Îmbinarea modulelor realizate pentru această lecţie este la latitudinea
fiecărui profesor, în funcţie de particularităţile psiho-individuale ale elevilor
clasei.
Modularitatea permite o utilizare selectivă şi dă posibilitatea profesorului
să adapteze lecţia la nivelul de pregătire al subiecţilor.
1. Lecţia 1 (definirea şi înţelegerea recursivităţii)
Obiect de conţinut Timp (minute)
M1 5
M2 5
M3 10
M4 10
M5 10
2. Lecţia 2 (implementarea recursivităţii)
Obiect de conţinut Timp (minute)
M6 10
M7 15
M8 15
8
10. Recursivitate - manualul profesorului
Cele două lecţii proiectate au în final câte un test de evaluare cu 10
întrebări fiecare. În urma parcurgerii acestor teste, elevul este evaluat
optim şi se poate realiza astfel feedback-ul necesar pentru a putea analiza
gradul de înţelegere şi însuşire a noţiunilor predate.
În final, se propune elevilor o temă pentru acasă: câte două
probleme pentru fiecare lecţie, printabile.
5. Structura detaliata a continutului
5.1 Notiuni introductive
Acest obiect de conţinut are rolul da a familiariza elevul cu noţiunea
de recursivitate. Obiectul este interactiv şi prezintă o animaţie
tridimensională care sugerează noţiunea de recursivitate. În partea
dreapta sus se găsesc două butoane prin intermediul cărora se începe sau
se opreşte animaţia. În acest modul sunt de asemenea definite noţiunile
de proces recursiv finit şi infinit, precum şi importanţa condiţiilor de
oprire.
9
11. Recursivitate - manualul profesorului
5.2 Notiuni introductive de matematica
Se ştie ca noţiunea de recursivitate provine din matematică. Acest
obiect de conţinut realizează interdisciplinaritatea între informatică şi
matematică.
Sunt prezentate câteva noţiuni de matematică legate de
recursivitate, pe care elevul le cunoaşte de la capitolul „şiruri”, studiat în
cadrul programei şcolare la progresii aritmetice şi geometrice. În partea
din dreapta sus există două butoane . Elevul poate utiliza cele două
butoane în cazul în care doreşte probleme suplimentare (studiul
individual) şi are posibilitatea să tipărească aceste probleme pentru
vizualizarea lor acasă.
10
12. Recursivitate - manualul profesorului
5.3 Exemple de algoritmi recursivi
Acest modul prezintă trei exemple de algoritmi recursivi: suma
primelor n numere naturale, calculul factorialului unui număr şi găsirea
celui mai mare divizor comun a două numere naturale. Pentru fiecare caz
în parte, elevului i se prezintă în partea dreaptă a ecranului algoritmul.
În stânga ecranului elevul are posibilitatea să primească explicaţii pe
cazuri numerice concrete. Prin folosirea unui buton îşi alege valorile
datelor de intrare în algoritm şi declanşează butonul de începere a
animaţiei care explică modalitatea de execuţie a algoritmului. În paralel,
se evidenţiază operaţiile specificate în algoritmul plasat în dreapta
ecranului. Fiecare pas este însoţit de explicaţii sub formă de text,
prezentate în partea de jos a ecranului.
11
13. Recursivitate - manualul profesorului
5.4 Mecanismul recursivitatii – Executia programelor
recursive
Acest obiect este interactiv şi are rolul de a conduce elevul spre o
înţelegere cât mai bună a mecanismului recursivităţii. Algoritmul de calcul
al factorialului, prezentat în modulul 3, este implementat aici în limbajele
de programare Pascal şi C, elevul având libertatea de alegere. Se
precizează noţiunile cheie cu care operează recursivitatea: apelare în
programul principal, condiţii de terminare şi gestionarea segmentului de
stivă pe care calculatorul o face automat.
Zona de introducere a datelor de intrare se află în partea dreaptă.
Butonul declanşează animaţia care descrie modul în care se
gestionează segmentul de stivă propriu mecanismului recursivităţii. În
paralel, se precizează la fiecare pas cu care sunt instrucţiunile din program
care se execută, printr-o colorare specifică a acestora.
Astfel, elevul face corelaţia între gestionarea segmentului de stivă şi
logica acestei tehnici de programare – recursivitatea.
12
14. Recursivitate - manualul profesorului
5.5 Exemple de programe recursive
Este un moment interactiv al lecţiei, creat în scopul de-a analiza
conexiunea între modulul de execuţie al procedurilor recursive şi
modalitatea în care sistemul gestionează segmentul de stivă creat.
Elevul are la dispoziţie trei butoane situate în partea dreapta jos a
ecranului. Butonul deschide fereastra de preferinţe, iar elevul poate să-
şi aleagă viteza şi modalitatea (automat/manual) de rulare a animaţiei.
Butonul reia animaţia, iar butonul este accesat în cazul în care
elevul doreşte să urmărească animaţia în ritm propriu, efectuând câte un
click cu ajutorul mouse-ului pe acest buton, pentru fiecare avansare în
algoritm. La fiecare pas al algoritmului se dau explicaţi, iar în secţiunea
input/output a ecranului se observă rezultatele obţinute în urma execuţiei
din schema logică.
13
15. Recursivitate - manualul profesorului
5.6 Aplicatie recursivitate – 1
Acest moment al lecţiei este un moment interactiv care are ca scop
formarea deprinderilor de utilizare a tehnicii de programare
(recursivitatea).
Animaţia atractiv – captivantă este dirijată de elev prin intermediul
unor butoane, în ritmul de înţelegere al acestuia. În partea de jos a
ecranului sunt prezentate datele de ieşire, obţinute la fiecare etapă de
execuţie a programului. Apelările recursive sunt prezentate sub forma
unor cutii care se deschid şi se precizează la fiecare pas valorile
parametrilor aflaţi pe segmentul de stivă
Respectând particularităţile psiho-individuale ale elevului,
obiectul conţine următoarele butoane :
- butonul „preferinţe” care declanşează deschiderea
ferestrei în care elevul poate fixa viteza de rulare şi modalitatea de
explicare a execuţiei algoritmului recursiv: automat sau dirijat prin mouse
de elev.
- butonul reia animaţia de la început , iar butonul
declanşează începerea procesului de simulare.
Prin interacţiunea elevului cu acest obiect este pusă în lumină
succesiunea de operaţii mintale care conduc la construirea oricărui
algoritm recursiv.
14
16. Recursivitate - manualul profesorului
5.7 Aplicaţie recursivitate – 2
Prin implementarea acestui obiect de conţinut în lecţie, elevul îşi
fixează cunoştinţele de matematică, dar şi verifică modul în care a înţeles
să folosească recursivitata.
Este un moment interactiv în care, folosind relaţiile lui Viète se
ndescoperă formula de recursivitate pentru calculul sumei Sn=x1n+x2n+x3n
în cazul unei ecuaţii algebrice de gradul 3.
În partea dreaptă sus există butonul Verifică prin care se testează
răspunsurile date de elev, şi în cazul în care acestea sunt greşite, elevul
este atenţionat şi condus spre un răspuns corect.
Dacă se doreşte reluarea testului, se accesează butonul cu
ajutorul căruia reîncepe testarea.
15
17. Recursivitate - manualul profesorului
5.8 Turnurile din Hanoi
Este un obiect interactiv care se prezintă sub formă de joc. Elevul
trebuie să mute trei discuri de pe tija „a” pe tija „b”, prin intermediul tijei
„c”. El trebuie să respecte regulile jocului: nu pune un disc de diametrul
mai mare peste unul de diametru mai mic, nu mută decât un singur disc
odată. Jocul presupune un număr optim de mutări. În cazul în care elevul
nu le descoperă, se prezintă varianta optimă. Prin parcurgerea acestui
modul se pune în evidenţă o succesiune de operaţii mintale care conduc
elevul le descoperirea formulei de recurenţă.
Folosind butonul sistemul este readus în poziţia iniţială.
16