Sunteți pe pagina 1din 9

Plan de lecie

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)

Forme de organizare a nvrii : frontal, individual, in echipa.


Forme de dirijare a nvrii: dirijat de profesor sau independent
Mijloace de nvare: tabla, calculatorul, fie de lucru individuale, reeaua de calculatoare, Internet , proiecte in echipa , proiescte individuale.
Resurse materiale:
- pedagogice - Metodica Predrii Informaticii
- de specialitate- Emanuela Cerchez, Marnel erban, Programarea n limbajul C/C++, Ed. Polirom, 2005
- http://info.tm.edu.ro:8080/~asimulescu/public/clasa11D/Backtracking_1.pdfoficiale - programa colar;
- temporale - 50 minute;
- psihologice:
- cunotine dobndite de ctre elevi la discipline corelate (Matematic, Informatic, TIC);
- colectiv eterogen (interesat de obiect);
- o grup de elevi (clasa mprit pe grupe)

Desfurarea leciei
Etapele leciei

Activitatea desfurat pentru atingerea competenele vizate

1.

Moment organizatoric

2.

Verificarea temei pentru


acas i a cunotinelor
dobndite anterior

- 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:
-

nu pentru toate problemele n este cunoscut de la nceput;


x1, x2,..., xn pot fi la rndul lor vectori;
n multe probleme, mulimile A1, A2,..., An coincid;
tehnica backtracking are ca rezultat obinerea tuturor soluiilor problemei. n cazul n care se cere o
singur soluie se poate fora oprirea atunci cnd a fost gsit.
3

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.

Principiul care st la baza metodei backtracking:

Pentru a se nelege principiul se folosete exemplul generrii permutrilor(Exemplul 2).


Principiul este destul de simplu: se presupun generate x1, x2,..., xk-1 elemente ale vectorului soluie. Se caut s
se completeze, la pasul k, elementul xk. Se alege o valoare(nu n mod aleator) din Ak. Dac se constat c
valoarea nu e bine aleas (pstrnd-o nu se va ajunge la soluie) se ncearc cutarea altei valori din
mulime. Dac nu s-a gsit o asemenea valoare, se reia cutarea pentru componenta k-1(se face pasul
napoi), n caz contrar, se trece la componenta k+1 (se face pasul nainte).

activitate frontal,
modelare, expunere,
Invtarea prin
descoperire dirijat,
exerciiu,
demonstraie,poblemat
izare

Procedeul se repet pn cnd vectorul soluie are toate componentele construite.


- Implementarea metodei
Se construiete algoritmul (Algoritm) cu aplicarea acestuia la problema permutrilor.
Se ncearc specificarea condiiei de continuare pentru diverse aplicaii.
5.

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

//verificm dac am obinut o soluie


//am obinut o aranjare, dac am reuit s depunem n vector p elemente

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

metoda nvrii prin


descoperire, metoda
lucrului n grupe mici,
metoda
problematizrii,
lucrare de laborator

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.

Tema pentru acas

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

Profesorul solicit elevilor s rspund n scris, la urmtoarele ntrebri:


3 termeni ( concepte ) din ceea ce au nvatat;
2 idei despre care ar dori sa nvete mai mult n continuare;
O capacitate, pricepere sau o abilitate pe care considera ei ca au dobndit-o n urma activitatilor de predare
invatare.

Tehnica 3-2-1
utilizat pentru a
aprecia rezultatele
unei secvente
didactice sau a unei
activitati.

S-ar putea să vă placă și