Documente Academic
Documente Profesional
Documente Cultură
Data
Disciplina
Profesor
coala
Clasa
Profil
Tema leciei
Tipul leciei
Durata leciei
Locul de desfurare
:
: Informatic
: Buliga Flotin
: COLEGIUL NATIONAL SFNTUL SAVA, Bucuresti
: a XI a E
: real
: Metoda backtracking
: De fixare i consolidare
: 50 de minute.
: Laboratorul de informatic.
Competene generale:
2. Identificarea datelor care intervin ntr-o problem ce necesita o rezolvare cu metoda backtracking
3. Elaborarea algoritmilor de rezolvare a problemelor
4. Implementarea algoritmilor ntr-un limbaj de programare
Competene specifice:
2.1. Descrierea unei succesiuni de operaii prin care se obin din datele de intrare, datele de ieire
3.1. Analizarea enunului unei probleme i stabilirea pailor de rezolvare a problemei.
3.3. Respectarea principiilor progrmrii structurate n procesul de elaborare a algoritmilor.
4.1.Transcrierea algoritmilor din pseudocod ntr-un limbaj de programare.
4.2. Identificarea necesitii folosirii subprogramelor recursive si implementarea lor.
4.3. Utilizarea unui mediu de programare (limbajul C/C++)
Obiective operaionale:
Elevii vor fi capabili la sfritul leciei :
S defineasc principiul care st la baza metodei;;
S identifice situaiile in care se utilizeaz metoda n rezolvarea problemelor;
S implementeze metoda n diferite aplicaii;
Strategii didactice:
Principii didactice:
- Principiul participrii i nvrii active
- Principiul asigurrii progresului gradat al performanelor i nlturarea treptat a punctelor de sprijin
- Principiul conexiunii inverse
Metode de nvmnt
- Metode de comunicare oral: conversaia, explicaia, problematizarea
- Metode bazate pe aciune: studiul de caz, nvarea prin descoperire, algoritmizarea, exerciiul, problematizarea
Procedee de instruire:
- Explicaia n etapa de comunicare
- nvarea prin descoperire, prin rezolvarea de probleme
- Conversaia de consolidare n etapa de fixare a cunotinelor
Metode de evaluare: evaluare continu pe parcursul leciei, autoevaluare (fia de lucru, calculatorul, platforma educaional)
Desfurarea leciei
Etapele leciei
1.
Moment organizatoric
2.
- pregtirea leciei:
- ntocmirea proiectului didactic
- pregatirea fielor de lucru
- organizarea si pregtirea clasei:
- verificarea frecvenei elevilor;
- captarea ateniei clasei:
- anunarea subiectului pentru tema respectiv
- anunarea obiectivelor urmarite
- anunarea modului de desfasurare a activitii.
-verificarea sari retelei de calculatoare;
- activitatea profesorului: verificarea temei prin sondaj i prin ntrebri i a cunotinele elevilor, necesare nelegerii
coninuturilor ce vor fi comunicate n lecia nou:
- reamintirea noiunilor legate de metoda Backtracking
- forma generala a unei functii backtracking
- exemple de implementare a metodei
3.
Captarea ateniei,
prezentarea titlului i
obiectivelor leciei noi
activitatea elevului: ascult ntrebrile i elaboreaz rspunsurile n concordan cu coninuturile asimilate anterior i cu
experiena dobndit n aplicarea acestora n exerciii i probleme.
activitatea profesorului: prezint situatia in care se utilizeaza metoda backtracking si explicarea primului exemplu:
Utilizarea metodei: se folosete n rezolvarea problemelor care ndeplinesc simultan urmtoarele condiii:
-
soluia poate fi pus sub forma unui vector S=(x1,x2,..., xn) , cu xi Ai , i=1,n ;
mulimile A1, A2,..., An sunt mulimi finite, iar elementele lor se consider c se afl ntr-o relaie de
ordine bine stabilit;
- nu se dispune de o alt metod de rezolvare mai rapid;
Se explic pe exemplu (Exemplu 1)
Observaii:
-
metode i procedee
didactice
conversaia
conversaia
problematizarea
expunere,
conversaie,
demonstraie,
poblematizare
observaie
4.
Transmiterea i nsuirea
cunotinelor
activitatea elevului: ascult i noteaz cele prezentate sau notate pe tabl de ctre profesor i pune ntrebri care s poat
lmuri contextul n care se va desfura lecia.
- activitatea profesorului: profesorul prezint principiul care sta la baza metodei si implementarea acesteia.
activitate frontal,
modelare, expunere,
Invtarea prin
descoperire dirijat,
exerciiu,
demonstraie,poblemat
izare
Fixarea i consolidarea
cunotinelor dobndite
- activitatea profesorului: profesorul solicit elevilor s rezolve urmtoarele sarcini de lucru utiliznd cunotinele dobndite:
- Forma general a unei funcii backtracking
Implementarea recursiv a algoritmului furnizat de metoda backtracking, este mai natural i deci mai
uoar. Segmentul de stiv pus la dispoziie prin apelul funciei este gestionat n mod automat de sistem.
Revenirea la pasul precedent se realizeaz n mod natural prin nchiderea nivelului de stiv.
void BK(int k)
//k-poziia din vector care se completeaz
{int i;
for (i=1; i<=nr_elemente_Sk; i++)
//parcurge elementele mulimii Sk
{ v[k]=i;
//selecteaz un element din mulime
if (validare(k)==1)
//valideaz condiiile de continuare ale problemei
{ if (solutie(k)==1)
//verific dac s-a obinut o soluie
afisare(k);
//afieaz soluia
else
BK(k+1);
//reapeleaz functia pentru poziia k+1
}
}
//dac nu mai exist nici un element neselectat n mulimea Sk,
}
//se nchide nivelul de stiv i astfel se revine pe poziia k-1 a
4
nvrii prin
descoperire, metoda
problematizrii,
metoda algoritmizrii,
lucrare de laborator
//vectorului
//execuia funciei se ncheie, dup ce s-au nchis toate nivelurile stivei, nseamn c n vectorul v nu mai
poate fi selectat nici un elemente din multimile Sk.
1) Aranjamente
Se citesc n i p numere naturale cu p<=n. Sa se genereze toate aranjamentle de n elemente luate cte p.
Exemplu pentru n=3, p=2
(1,2), (1,3), (2,1), (2,3), (3,1), (3,2)
Vom genera pe rnd soluiile problemei n vectorul v=(v1,v2,v3,...,vn), unde vkSk
S facem urmtoarele observaii:
1. pentru aceast problem toate mulimile Sk sunt identice, Sk={1,2,3,....,n}.
2. la pasul k selectm un element din mulimea Sk
ntruct n cadrul unei aranjri, elementele nu au voie s se repete aceast condiie reprezent
condiia de continuare a problemei.
3. Oinem o soluie n momentul n care completm vectorul cu p elemente.
S observm c problema generrii aranjamentelor, nu difer prea mult de problema generrii
permutrilor. Singura deosebire pe care o sesizm este aceea c obinem o soluie n momentul
n care am plasat n vector p elemente.
Prin urmare, n cadrul programului pentru generarea permutrilor trebuie sa modificm o
singur funcie i anume funcia soluie, astfel:
int solutie(int k)
{if (k==p)
return 1;
return 0;
}
6.
Obinerea de performan
Asigurarea feedback-ului
activitatea profesorului: se vor propune 2 tupuri de probleme dupa gradul de dificultate, profesorul propune elevilor
rezolvarea n limbajul C++ a problemelor i ndrum, supravegheaz activitatea elevilor;
1) Generarea permutrilor
Enun: Se citete un numr natural n. Ce cere s se genereze toate permutrile mulimii {1, 2,,n}
Dac n=3, mulimile A1 = A2 = A3 ={1, 2, 3}
Soluiile ar fi: 123
132
5
213
231
312
321
A3
A2
A1
Observaie important
Se observ, c elementele mulimilor sunt n ordine strict cresctoare i consecutive. Aadar modul
de alegere din mulime nu este aleatoriu ci se face n funcie de ordinea elementelor.
2)
Pentru enunul de la exemplul anterior, generm, cu ajutorul stivei, soluiile prim metoda
backtracking.
pas1
pas 2
pas3
pas 4
n=3
111
pas 1
Se ia primul element din mulimea A1 i se pune pe nivelul 1 al stivei. Nu exist deocamdat nici o
restricie deoarece exist permutri ce ncep cu 1. Se trece la completarea urmtorului nivel al stivei.
pas 2
Se ia primul element din mulimea A2 i se pune pe nivelul 2 al stivei. Se observ c valoarea 1 a mai fost
introdus n vectorul soluie, pe nivelul anterior, i, n acest caz valoarea 1 nu poate fi ataat la vectorul
soluie. Aadar, se ia urmtorul element din mulimea A2, adic 2. Se constat c poate fi introdus n
vectorul soluie. Se trece la completarea urmtorului nivel al stivei.
pas 3
Se ia primul element din mulimea A3 i se pune pe nivelul 3 al stivei. Se observ c valoarea 1 a mai fost
introdus n vectorul soluie, pe nivelul anterior, i, n acest caz valoarea 1 nu poate fi ataat la vectorul
soluie. Aadar, se ia urmtorul element din mulimea A3, adic 2. La fel ca valoarea 1, 2 nu poate fi introdus
n stiv. Se trece la urmtorul element din mulime, 3. Se constat c poate fi introdus n vectorul soluie.
S-au completat toate nivelele stivei i deci soluia este 1 2 3.
6
pas 4
Pentru nivelul 3 al stivei nu mai exist o alt valoare din mulimea A3 ce poate fi adugat. Din acest
motiv, se revine la nivelul 2 al stivei (napoi) i se completeaz cu urmtoarea valoare din mulimea A2 ce nu
a fost utilizat, adic 3. Se trece la completarea urmtorului nivel al stivei.
Procedeul se repet pn cnd nu se mai poate introduce o valoare pe nivelul 1 al stivei. n acel moment
s-au generat toate soluiile problemei.
Algoritmul
Se poate constui destul de uor urmtorul algoritm:
k=1; // nivelul stivei
st[k]=x; // iniializez nivelul k al stivei cu o valoare x egal cu predecesorul primei valori din Ak
while (k > 0) // exist nivele necompletate i nu s-au generat toate soluiile
{ q=0; // presupun c nu s-a gsit elementul ce poate fi adugat n st[k]
while ( !q && exist element succesor al lui st[k] netestat n multimea Ak )
{ st[k]= succesor;
if (valid (k)) q=1; // se verific dac se poate aduda la soluie
}
if( !q) k=k-1; // se coboar n stiv
else
if ( solutie(k)) // s-a ajuns la soluie
scrie soluia
else
{ k=k+1; // se trece la nivelul urmtor i se reia procedeul
st[k]=x;
}
}
Exemplu: permutri
k=1; // nivelul stivei
st[k]=0; // iniializez nivelul k al stivei cu o valoare x egal cu predecesorul primei valori din Ak
while (k > 0)
{ q=0;
while ( !q && (st[k]+1<n) )
7
st[k]++;
if (valid (k)) q=1; // se verific dac se poate aduda la soluie
}
if( !q) k=k-1; // se coboar n stiv
else
if ( k = n) // s-a ajuns la soluie
for (int i=1; i<=n; i++) cout<< st[i]
else
{ k=k+1; // se trece la nivelul urmtor i se reia procedeul
st[k]=0;
}
}
---------------------- funcia valid----------------------------int valid(int k)
{ int q=1; // presupun c st[k] poate fi adugat la soluie
for (int i=1; i<k; i++) // verific dac st[k] a mai fost adugat la soluie
if(st[k]== st[k-1]) q=0;
return q;
}
7.
Evaluarea cunotinelor
dobndite
8.
activitatea profesorului: profesorul verific modul n care a fost realizat programul cerut i comenteaz eventualele
erori apoi trece n revist reuitele i erorile frecvente, n ideea eliminrii acestora;
- activitatea elevului: elevii rein i noteaz observaiile fcute
- activitatea profesorului: profesorul precizeaz urmtoarele probleme:
1) S se afieze toate modalitile n care poate fi ordonat mulimea {1,2,...,n} astfel ca numerele 1,2,3 s fie
alturate i n ordine crescatoare(n>3).
2) Dac scriem numrul 9 ca sum de numere naturale distincte, aplicnd metoda backtracking i obinem
toate soluiile n ordinea:
1+2+6, 1+3+5, 1+8, 2+3+4, 2+7, 3+6 i 4+5, aplicnd aceeai metod pentru scrierea lui 12 ca sum,
aplicnd exact aceeai metod de generare, Cte soluii de forma 3+... exist?
a.) 7
b.) 2
c.) 1
d.) 4
-
activitatea elevului: noteaz problemele propuse spre rezolvare i indicaiile de implementare ale profesorului i cere
eventuale lmuriri suplimentare.
metoda conversaiei,
metoda expunerii
metoda conversaiei
Feedback
Tehnica 3-2-1
utilizat pentru a
aprecia rezultatele
unei secvente
didactice sau a unei
activitati.