Sunteți pe pagina 1din 312

COLLEGIUM

Metodic\
© 2016 by Editura POLIROM

Această carte este protejată prin copyright. Reproducerea inte­grală sau parţială, multiplicarea
prin orice mijloace şi sub orice formă, cum ar fi xeroxarea, scanarea, transpunerea în format
elec­tronic sau audio, punerea la dispoziţia publică, inclusiv prin internet sau prin reţele de calculatoare,
stocarea perma­nentă sau temporară pe dispo­zitive sau sisteme cu posi­bili­tatea recu­perării informaţiilor,
cu scop comercial sau gra­tuit, precum şi alte fapte similare săvârşite fără permisiunea scrisă a deţină-
torului copy­rightului reprezintă o încălcare a legis­laţiei cu privire la protecţia proprietăţii inte­lectuale
şi se pedep­sesc penal şi/sau civil în con­formitate cu legile în vigoare.

Pe copertă: © Iconic Bestiary/Shutterstock.com

www.polirom.ro

Editura POLIROM
Iaşi, B‑dul Carol I nr. 4; P.O. BOX 266, 700506
Bucureşti, Splaiul Unirii nr. 6, bl. B3A, sc. 1, et. 1,
sector 4, 040031, O.P. 53

Descrierea CIP a Bibliotecii Naţionale a României:

MASALAGIU, CRISTIAN‑DUMITRU
Didactica predării informaticii / Cristian‑Dumitru Masalagiu, Ioan Asiminoaei, Mirela‑Anca
Ţibu. – Ed. a 2‑a, rev. şi adăug. – Iaşi: Polirom, 2016
Conţine bibliografie

ISBN print: 978‑973‑46‑3388-3


ISBN ePub: 978-973-46-6270-8
ISBN PDF: 978-973-46-6271-5

I. Asiminoaei, Ioan
II. Ţibu, Mirela‑Anca

371.3:004+007

Printed in ROMANIA
Edi‑ia a II‑a revăzută şi adăugită

POLIROM
2016
CRISTIANMASALAGIUesteprofesoruniversitardoctorlaFacultateadeInformaticăDepar
,
deInformatică,dincadrulUniversită‑ii„AlexandruIoanCuza”,Iaşi,fiindangajatînîn
superiordinanul1980.Informa‑iisuplimentareprivindîntreagasaactivitatedid
pot fi găsite la adresa web http:/ www.info.~masalagiu.
uaic.ro/
IOANASIMINOAEIesteadministratorre‑eacalculatoare,CECBankSA,SucursalaJude‑ea
cadru didactic asociat la Facultatea de Informatică a Universită‑ii „Alexandr
Cursuri sus‑inute în cadrul facultă‑ii: Metodica predării informaticii (anul IV, Sec
ProgramareWindows   –MFC,COM/DCOM,dezvoltaredeaplica‑iifolosindplatforma.NET,topici
speciale. NET. Informa‑ii suplimentare privind întreaga sa activitate didacti
găsite la adresa web http:/ www.info.uaic. ro/
~iasimin.
MIRELA ,IBU este profesor titular la Liceul Teoretic de Informatică „Grigore Mois
metodist al Inspectoratului Şcolar Jude‑ean Iaşi, coordonator de practicăplina ped
Informatică, anul III) şi colaborator la Facultatea de Informatică a Universită‑ii „Al
Cuza” din Iaşi, unde a sus‑inut seminarele la disciplina Didactica informaticii
Informatică.)
Cuprins

Cuvânt-înainte. . . . . . . . . . . . . . . . 9

Introducere
.............. 11
Ce este informatica?
. ............. 11
Societatea informa‑ională şi .e-
. . . . . . .educa‑
.. ia 15
Structura lucrării şi contribu‑iile personale ....... ale autorilor
12
Capitolul 1. Curriculum, instruire,
......... evaluare 23
1. Teoria curriculumului . ........... 23
1. Curriculumul na‑ional în informatică . ....... 23
1. 2 Elaborarea ofertei curriculare ......... 25
1. 3 Planurile de învă‑ământ . .......... 26
1. 4 Programele şcolare (analitice, curriculare) . ...... 30
1.2 Teoria instruirii
. ............. 36
1.2 Manualele şcolare ............ 36
1.2 Structura. .lec‑ . . . . . . . . . . iei 42
1.2 3 Calitatea cunoştin‑elor . . . . . . . . . asimilate 43
1.2 4 Formarea limbajului de specialitate . ....... 4
1.2 5 Caietele elevilor . ........... 45
1.3 Teoria evaluă . . . . . . . . . . . rii
... 46
1.3 Repetare, recapitulare, . . . . . . . . evaluare 46
1.3 2 Practica evaluării activită . . . . . . . . ‑ii didactice 15
1.3 Aprecierea cunoştin‑elor elevilor. Măsuri de prevenire
a rămânerilor în. urmă .......... 53
1.3 4 Condi‑ia profesorului . .......... 5
1.3 5 Planificarea activită.‑ii . . . . . . . didactice 57
Capitolul 2. Principii didactice şi didactica formă. rii
... de competen
59
2.1 Clasificarea şi caracteristicile principiilor . ..... didactice59
2.1 Principiul intui‑
. . . . . . . . . . . iei 60
2.1 Principiul legării teoriei. . .de . . . . . practică 60
2.1 3 Principiul însuşirii conştiente şi active . . . . a cunoştin‑
1 6 elor
2.1 4 Principiul sistematizării şi continuită . . . . . ‑ii cunoştin‑62 elor
2.1 5 Principiul accesibilită‑ii cunoş . ....... tin‑elor 62
2.1 6 Principiul însuşirii temeinice a. cunoş ..... tin‑elor 63
2.1 7 Principiul individualizării şi diferen‑ . . . . . ierii învă‑ării64
2. Didactica formării de competen‑ .......... e 69
2. 1 Contextul trecerii de la obiective . . . . . . la competen‑e 69
2. Competen‑ele‑cheie în studiul. . . . .informaticii . 17
2. 3 Proiectarea competen‑ . . . . . . . . . . elor 73
2. 4 Analiza resurselor
............ 75
2. 5 Elaborarea strategiei . . . . . . . . . didactice 19
2. 6 Clasificarea competen‑ . . . . . . . . . . elor 19
2. 7 Formularea competen‑ . . . . . . . . . . elor 93
2. 8 Momentele lec‑
. . . . . . . . . .iei
.. 93
Capitolul 3. Metode, tehnici şi procedee
. . . . . . . didactice 101
3.1 Metode generale de învă . . . . . . . . . . . ‑are 101
3.1 Expunerea sistematică a cunoş . . . . . . . . tin‑elor 20 1
3.1 2 Metoda conversa‑ . . . . . . . . . . . iei 30 1
3.1 Problematizarea şi învă‑area prin descoperire ...... 50 1
3.1 4 Modelarea
. ............ 80 1
3.1 5 Exemplificarea sau demonstrarea materialului .... 1 intuitiv
11
3.1 6 Metoda exerci‑. iului .......... 21 1
3 . 1 6 . Exerci‑ii şi probleme de recunoaştere a unor no‑iuni,
formule, metode ......... 31 1
3 . 1 6 2 . Exerci‑ii şi probleme aplicative pentru formule
sau algoritmi cunoscu‑ . ........ i 31 1
3 . 1 6 3 . Probleme reale care permit însuşirea . . . unor4 1 no‑
1 iuni
3.1 7 Metoda învă‑ării în grupe mici . ........ 71 1
3.1 8 Metoda lucrului cu manualul şi documenta‑ ..... ia 81 1
3.1 9 Metoda jocurilor didactice ......... 120
0 .3 1 Instruirea programată şi învă‑area asistată . . . . de calculator 120
3.2 Metode specifice de învă . . . . . . . . . . . ‑are 12
Capitolul 4. No‑iuni de. . . bază
......... 125
4.1 No‑iuni de bază în informatică . .......... 125
4.2 Paradigme de programare . ........... 130
4.3 Tehnici de programare. Proiectarea algoritmilor: . . . sortare 13 şi căuta
2
4. Algoritmi clasici de sortare, de complexitate ) şi mai mare.
timp . . O(n 136
4. 1 Sortarea prin interschimbarea elementelor . .... vecine 136
4. 2 Sortarea prin selec‑ . .......... ie 137
4. 3 Sortarea prin inser‑. . ie . . . . . . . directă 138
4. Sortarea. Shell
........... 139
4. 5 Sortarea rapidă
. ........... 1 41
4 . 5 1 . Sortarea prin interclasare ........ 142
4 . 5 2 . Sortarea quicksort. . . . . . . . . . 143
4 . 5 3 . Sortarea cu grămezi (
heapsort) ....... 146
4.5 Metode de elaborare (proiectare) a . . . . . . .algoritmilor 150
4.5 1 Metoda
divide et impera. . . . . . . . . . 1 51
4.5 2 Metoda
backtracking. . . . . . . . . . . 153
4.5 3 Metoda
greedy. . . . . . . . . . . . 158
4.5 Metoda programării dinamice ......... 1 61
4.6 Analiza complexită‑ii, corectitudinii şi terminării
algoritmilor/programelor . ........... 164
Capitolul 5. Structuri de date: liste,
....... stive, cozi 17
5.1 Liste ............... 17
5.1 Liste liniare simplu. înlă . . . . . . . . n‑uite 178
5 . 1 . Crearea unei liste simplu . . . . . . înlăn‑uite 1 81
5 . 1 2 . Accesul la un nod al listei simplu . . . . înlăn‑uite 183
5 . 1 3 . Inserarea unui nod -o listă într simplu înlăn‑. . . .uită 185
5 . 1 4 . Ştergerea unui nod -o listă dintr simplu înlăn‑. . .uită 18
5.1 2 Liste circulare simplu. . . înlă . . . . . . n‑uite 1 91
5 . 1 2 . Crearea unei liste circulare simplu . ... înlăn‑192 uite
5 . 1 2 . Inserarea unui nod -o listă într circulară
simplu înlăn‑uită . ......... 193
5 . 1 2 3 . Ştergerea unui nod -o listă dintr circulară
simplu înlăn‑uită . ......... 193
5 . 1 2 4 . Parcurgerea unei liste circulare. simplu .. înlă 193 n‑uite
5.1 3 Liste liniare dublu. înlă . . . . . . . . n‑uite 194
5 . 1 3 . Crearea unei liste dublu . . . . . . înlăn‑uite 195
5 . 1 3 2 . Accesul la un nod al unei liste dublu . ... înlăn‑uite 197
5 . 1 3 . Inserarea unui nod -o listă într dublu înlăn‑. . . uită . 197
5 . 1 3 4 . Ştergerea unui nod -o listă dintr dublu înlăn‑. . uită .. 19
5 . 1 3 5 . Ştergerea unei liste dublu . . . . . . înlăn‑uite 20
5.2 Stive ............... 1 02
5.3 Cozi ................ 20
5.4 Baze de date . ............. 203
5.4 1 Furnizori ADO.NET . . . . . . . . . . 203
5.4 2 Conectarea la baza. . de . . . . . . . . date 205
5.4 3 Execu‑ia comenzilor . .......... 205
5 . 4 3 1 . Adăugarea înregistră . . . . . . . . rilor 205
5 . 4 3 2 . Actualizarea înregistră ........ rilor 206
5.4 Regăsirea informa‑. iilor .......... 7 02
Capitolul 6. Teoria grafurilor şi a
. . . . . arborilor
.... 209
6.1 Grafuri şi arbori . ............ 209
6.2 Arbori binari
. ............. 31 2
6.2 1 Inserarea unui nod frunză -un arbore într binar
alocat dinamic . ........... 51 2
6.2 Parcurgerea unui arbore . . . . . . . . binar 71 2
6.2 3 Crearea arborilor binari plecând de la parcurgerile
în preordine şi inordine
. ......... 91 2
6.2 4 Accesul la un nod al unui arbore ....... binar 20
6.2 5 Ştergerea unui arbore . . . . . . . . . binar 12
Concluzii
................ 233

Anexe. . . . . . . . . . . . . . . . . 235
Anexa 1. Proiecte de tehnologie didactică
......... 237
Anexa 2. Subiecte date la concursuri de. . . specialitate
... 263
Anexa 3. Adrese web utile
. ........... 1 03
Bibliografie. . . . . . . . . . . . . . . . 30
Cuvânt-înainte

Informatica a început să fie considerată ştiin‑ă abia din deceniul nouă al sec
fiind denumită de atunci ştiinţa şicalculului, ştiinţa calculatoarelor sauştiinţa tehnologiei
informaţiei şi comunicării.Fundamenteleei‑indeştiin‑eleexacte:matematicăfizică , chim
,
biologie sau chiar medicină. Informatica este însă atât o ştiin‑ă abstractă, câ
legată de o realitate concretă, intermediată de o maşină (calculatorul). Viito
deja marcat de societatea informa‑ională în care trăim, pe plan interna‑iona
cel economic fiind înlocuite adesea prin războiul informa‑ional. În România
industria IT (I
nformation T echnology) şi‑au căpătat actualul statut cumva cu întârzie ‑
cultă‑ilefiinddeterminatederegimulcomunist.Între1097şi1980(poatechiarmaide
şi‑au făcut totuşi loc calculatoarele analogice, maşinile de facturat ‑ şi conta
rele de tipul Felix sau IBM şi mai apoi minicalculatoarele. În acea perioad
economică (şi relaxare politică) s‑au înfiin‑at centrele teritoriale de calcul
de calcul din anumite întreprinderi, Institutul Central de Informatică
de informatică, sec‑iile de informatică (maşini de calcul, automatizări ş.a. ‑ ) din cad
tă‑ilor de matematică sau al facultă‑ilor de inginerie. După această etapă ‑ de oare
cen‑ă internă şi în ciuda unor succese recunoscute şi pe plan interna‑ional, s
spre sfârşitul epocii Ceauşescu, exact în momentul în care, în lume, apari‑ia ca
personale transforma informatica din ştiin‑a unor aleşi în bun public. A fost
19 0,întreagasocietateromâneascăsădepunăunefortimens(sprijinităşi‑ dinexte
siv prin contribu‑ia generoasă a unor organiza‑ii nonguvernamentale) pent
să nu rămână la periferia utilizării tehnologiilor informa‑ionale moderne. Şcoa
de informatică are astăzi un prestigiu interna‑ional notabil, începând cu
cercetareaşiîncheindcuspecialiştiideînaltnivelcareactiveazăînmaril
şi interna‑ionale.
Datorită noută‑ii, importan‑ei şi dinamicii deosebite de schimbare a dome
încă numeroase întrebări şi dileme ale căror răspunsuri sau solu‑ii se pot doved
pentruînvă‑ământ,câtşipentruansamblulsocietă‑iiviitoare.Trecemînrevis
câteva dintre acestea. Din punct de vedere conceptual, este firesc să ne
dacă informatica este o ştiin‑ă concretă/aplicativă sau abstractă. Este ea indi
matematicăsaumaimultdefizică,chimieoribiologie?Terminologiasaactuală ‑ ,în
pletă şi uneori ambiguă, trebuie să fie nouă în totalitate sau preluată şi adapt
fundamentale,degrani‑ă?Careesterela‑iaexactădintreanumiteconceptede
(aparent) complet diferită, cum ar fi algoritm şi cip?înseamnă Informatica
oare programare,
algoritmicăstructuri
, deinforma‑iesaucomunicare(Internet,telefoniemobi
criptare, interfa‑ă om‑mediu? Care va fi în viitor rela‑ia exactă dintre informa
ştiin‑e?Careesteînacestmomentadevăratasubstan‑intelectuală ă aaceste
01 CUVÂNT-ÎNAINTE

ne putem întreba cât de util poate fi procesul de predare‑învă‑are a unei


didactica (metodica) predării informaticii la nivel universitar? În multe
informaticaseprezintămaidegrabăcaodisciplinădetipul„făcamine”decâtdet
şi ai să înve‑i ce şi cum să faci”. Trecerea pe primul plan a învă‑ământului asistat, a ed
permanenteparesănulaselocpentrupreceptemetodico‑pedagogicepresta
însă că tocmai datorită contextului amintit păstrarea şi chiar impunerea un
a unor principii de natură metodică (şi nu numai) în rela‑ia dintre cei care pred
înva‑ă informatica, precum şi în rela‑ia şcoală‑companii IT reprezintă singura garan‑i
evitarea anumitor sincope în evolu‑ia societă‑ii umane. La nivel na‑ional, di
inspectorate şcolare jude‑ene şi sub egida Ministerului Educa‑iei Na‑ion
Ştiin‑ifice, care are o nouă structură organizatorică începând cu 3 februarie ‑ 16,20s‑a
tivat deja o parte importantă a noilor programe curriculare obligator
primar şi gimnazial (urmând, desigur, învă‑ământul liceal), inclusiv în ceea ‑ ce priv
maticai ş tehnologiainforma‑ieii ş acomunica‑iilor.Uşurin‑aaparentăautilizăriic
dezvoltareamicroelectronicii, acomunică
wireless şi,nuîn
rii
ultimulrând,accesibilitate
ceîncemaimareapre‑urilorauconduslaapari‑iaunuinumărimportantdecomp
particulare(unelechiarspecializate)careaudreptscopdeclaratorgani
instruirea în programare şi în folosirea eficientă a unor dispozitive precum
tablete, laptopuri etc. (dar şi a unor softuri specializate, destinate, de
paginilor web sau creării de bloguri personalizate). Au apărut noi profesii im
de acest domeniu (vezi Nomenclatorul meseriilor sau Clasificarea ocupa‑i
şi se pune întrebarea ce trebuie făcut neapărat în şcoală, respectiv ce poate fi
învă‑ământului de stat. În‑elegerea necorespunzătoare a fenomenului informa
profunzimii acestuia poate genera grave convulsii sociale.
Didactica predării informaticii studiazătehnicileşimetodeledepredare‑învă‑areînî
lorcomplexitate,căutândsăeviden‑iezeproblemelemajorealeacesteidisc
şi să dea sugestii cu privire la programele analitice (curriculare) curente
organizarea sistemului de învă‑ământ specific în ansamblu.
Lucrareadefa‑continuă
ă şi,înacelaşitimp,completeazăşiaducelaMetodica zivolumele
predării informaticii (Matrix‑Rom, 1)20 şi Didactica predării informaticii (Polirom, 20 4).
O parte a materialului anterior a fost preluată ca atare (doar din a doua c
şidinprima),dars‑auprodusmodificăriimportanteînstructurageneralăavol
în primul rând de transformările societă‑ii româneşti care au generat schi
decizionale, curriculare la nivel de învă‑ământ preuniversitar şi nu numai.
Volumul se adresează în principal profesorilor din învă‑ământul preuniv
elevilorşistuden‑ilorcupreocupărilegatedeinformaticăAm . doritînprimulr
în eviden‑ă problemele importante de natură metodică şi psihopedagogică ‑ ale pr
maticii în învă‑ământul preuniversitar. Fără a avea preten‑ia de a trata exhau
ale cărui frontiere (şi impact social) nu pot fi clar delimitate, considerăm că
acoperi un gol existent în literatura de specialitate din România.
Le mul‑umim pe această cale tuturor celor care ne‑au sprijinit şi încuraja
şi realizarea volumului. De asemenea, dorim să mul‑umim membrilor familiilor ‑ no
tru răbdarea şi în‑elegerea acordate.
Autorii
mai16 20
Introducere

Înprimulsubcapitolvomdiscutadespreinformaticămai , exactdesp
cunoscuteînînvă‑ământulgimnazialşilicealsubdenumirilegenericede
şi „tehnologia informa‑iei şi comunica‑iilor” (TIC). Apoi vom prezenta con
general în care se plasează societatea românească la început ‑ de mile
cular, învă‑ământul. Vom insista asupra învă‑ământului preuniversita
câ‑iva termeni intra‑i deja în vocabularul de bază al limbii române, ‑ d
nifica‑ie exactă este încă necunoscută sau interpretată [Mas2 în
], mod
[*1 ]). eronat
Accentul este pus pe legătura cu mediul virtual cu care educa‑ia, mai
pe cale electronică ( , este astăzi interconectată de‑a lungul între
e‑educaţia)
(vorbim despre lifelong learning, LLL). La sfârşit prezentăm pe scurt con‑inutul
fiecărui capitol în parte, precum şi contribu‑ia concretă a fiecăruia di
autori.

Ce este informatica?

Începând cu 1980, termenul „informatică” a devenit sinonim cu „ştiin‑a cal


„ştiin‑a calculatoarelor”, „ingineria calculatoarelor”, „tehnol
comunica‑iilor” ş.a.m.d. Neexhaustiv, alte defini‑ii informale ar mai pute
1 . Informaticaseocupăcustudiulcalculatoarelorşialfenomenelor
acestora.
2 . Informatica cuprinde totalitatea cunoştin‑elor asupra calcul
Ea are componente teoretice, experimentale şi de proiectare şi inc
a) Teoriipentruîn‑elegereaechipamentelordecalcul,aprogramel
b) Experimente pentru testarea şi dezvoltarea conceptelor.
c) Metodologii (reguli, metode) de proiectare (algoritmi,
unelte pentru aplica‑ii
practice particulare).
d) Metodedeanalizăpentruverificareafaptuluicărealizărileîndep
. 3 Informaticaseocupăcustudiulreprezentăriicunoştin‑elori ş implemen
4 . Informatica se ocupă cu studiul modelelor şi complexită‑ii cunoştin‑e
12 DIDACTICA PREDĂRII INFORMATICII

5 . Informatica se ocupă cu studiul sistematic al proceselor algorit


şi transformă informa‑ia (teoria
informa‑iei), precum şi cu analiza, proiectare
implementarea şi aplicarea acestora.

Pe parcursul lucrării este posibil să întâlnim şi alte descrieri a


dar considerăm util să facem pentru început câteva considera‑ii as
informatica este atât o ştiin‑ă inginerească, cât şi una abstractă. O şt
pune în general accent pe teorie (analiză şi sinteză) şi doar accidental şi
modelare, iar o ştiin‑ă inginerească sau experimentală pune accent în p
modelareşiproiectare.Săeviden‑iem,aşadar,câtevacaracteristici , mode‑ a
lării
şi proiectării.
Acceptăm ideea că teoria îşi are rădăcinile în matematică. Pentru a fi va
consistentă, orice teorie trebuie să urmărească parcurgerea a cel pu‑i
1 . Să caracterizeze prin defini‑ii obiectele de studiu.
2 . Să caracterizeze prin teoreme rela‑iile posibile dintre acestea
3 . Să determine dacă rela‑iile stabilite sunt adevărate, utilizând

namente.
4 . Să interpreteze rezultatele ob‑inute, prin verificare.

Paşii anteriori pot fi reitera‑i dacă apar erori. Din punctul de ved
calculatorul ajută la demonstrarea teoremelor, poate controla ‑
ilor, furnizează contraexemple, verifică anumite calcule pe date de te
calcule simbolice.
Modelarea îşi are rădăcinile în ştiin‑ele experimentale, având‑ drept
garea unui fenomen, din nou prin câteva etape:
1 . Formarea unei ipoteze de lucru.
2 . Construirea unui model formal (abstract) şi realizarea unei pred
3 . Proiectarea sau realizarea unui experiment şi colectarea date
4 . Analiza rezultatelor.

La fel ca mai înainte, aceste etape pot fi reiterate în vederea


‑ îmbu
luluişipentruînlăturareaerorilor.Modelareaeste„datoare”cal
cumoduldeprezentareaunuimodelşiterminândcuevaluareacorect
sau cu deducerea unor predic‑ii asupra lumii modelate.
Proiectarea îşi are rădăcinile în inginerie, în construirea oricăru
necesar să fie urmate etapele:
1 . Elaborarea specifica‑iilor de stare şi a rela‑iilor dintre stări.
2 . Proiectarea efectivă şi implementarea sistemului.
3 . Testarea sistemului în condi‑ii reale.

Proiectarea utilizează calculatorul în orice etapă a sa, căci fără calc


ar fi mare consumatoare de timp, energie, resurse umane şi material
INTRODUCERE 13

situa‑ii, chiar imposibilă. Toate cele trei procese amintite inter


apare în (aproape) fiecare etapă de modelare şi, eventual, proiectare; mo
un rol esen‑ial atât în teorie, cât şi în proiectare; proiectarea est
a fiecărei etape de teorie şi modelare.
Fiecaredintreceletreiproceseprincipaledescrisemai ‑ suspoa
matica îi apar‑ine şi că dezvoltarea acesteia se face numai în cadrul
proces. În realitate, informatica se dezvoltă la grani‑ele dintre ace
urmare, utilizează metodele lor de cercetare, la care se adaugă met
specifice.
Scopulprincipalalacestuivolumnuesteînsăaceladeademonstra
esteoştiin‑ădesinestătătoare(lucrudealtfelconfirmatderealita ‑
nii), ci mai curând de a identifica şi studia actualitatea şi adapta
folosite în predarea disciplinelor de informatică din ciclul preun
i
ş liceal).Vomadmiteastfelcăscopurileintroduceriiinformaticiicadi
stătătoarefie ( eaobligatorie,op‑ionalăsaufacultativăîn ) planuriledeîn
• Creareauneiatitudinipozitiveprivindimportan‑adeosebităai
contemporană şi pătrunderea ei în toate domeniile vie‑ii economico
• În‑elegerea informaticii ca mijloc de modelare şi simulare‑ a fenome
‑ii înconjurătoare.
• Asigurareaniveluluideculturăgeneralăîninformaticăprin ‑ parcur
lelor etape din dezvoltarea informaticii ca ştiin‑ă.
• Dezvoltarea unei motiva‑ii intrinseci în studiul informaticii.
• Dezvoltarea capacită‑ii de utilizare a terminologiei, a unui ‑ limba
cific şi a tehnicii de calcul în însuşirea unor noi cunoştin‑e.
• Crearea unei atitudini favorabile activită‑ii de rezolvare a pro
calculatorului, prin deprinderea strategiilor de abordare a a
într‑un mod riguros.
• Dezvoltarea competen‑elor digitale.
• Dezvoltareaspirituluiinventivşicreatorşiacapacită‑iidereali
utilizabile
.
• Dezvoltarea unor capacită‑i de autoinstruire.

ÎnRomâniaexistăolegisla‑ieclarăprivindorganizareaînvă‑ământulu ‑
sitar, precum şi curricula corespunzătoare. Până în 16,20 planurile‑cadru
învă‑ământulprimarşigimnazials‑aureconfigurat(apelându‑seinclusi
publice), în curând acelaşi lucru urmând a fi făcut, sub egida Ministerul
Na‑ionaleşiCercetăriiŞtiin‑ifice(MENCŞşi ) aInspectoratuluiŞcolarJude‑ea
şipentruînvă‑ământulliceal.Înprezent,disciplineleinformatică ‑ şite
ma‑iei şi a comunica‑iilor, care abordează con‑inuturi de informatică în m
şi declarat, se regăsesc (în gimnaziu şi liceu) în trunchiul comun (discipl

gatorii), în curriculumul diferen‑iat (în func‑ie de specializare) şi în cur
decizia şcolii. La gimnaziu, vorbind despre prezen‑a disciplinelor de i
trebuie să spunem că nu existăînore
trunchiul comun, dar sunt propuse tot m
14 DIDACTICA PREDĂRII INFORMATICII

discipline op‑ionale de informatică în curriculumul la decizia şcolii


de elevi. Câteva exemple care pun accentul şipe
programare:
algoritmică
• Introducere în algoritmică
– clasa a  V‑a.
• Algoritmică şi programare 
– clasele VI‑VIII.
• No‑iuni de informatică
– clasele
  V‑VIII.
• Programarea în Scratch 
– clasele V‑VII.
• Prietenul meu calculatorul 
– clasele V‑VIII.
• Lumea digitală
– clasele
  V‑VIII.

Ca un exemplu, în urma derulării proiectului „Competen‑e‑cheie ‑ TIC în


lumul şcolar: accesul la educa‑ie şi formare profesională ini‑ială ‑ de cal
nan‑at din Fondul Social European (prin Programul Opera‑ional Secto
DezvoltareaResurselorUmanepe 12370‑ axaprioritarănr.„Educa‑
1 ieşiformare
profesionalăînsprijinulcreşteriieconomiceşidezvoltăriisocietă ‑ ‑ii
tere”, domeniul major de interven‑ie 1. ), au fost concepute programe
pentru disciplina tehnologia informa‑iei şi a comunica‑iilor, clasel
din13,20majoritatea şcolilor au introdus la clasele de gimnaziu aceas
Con‑inuturi studiate astăzi la tehnologia informa‑iei şi a ‑ comuni
naziu:
• Structura sistemului de calcul, componente hardware. Accesorii
operare Windows.
• Procesorul de texte Word; prezentări multimedia; comunicarea pri
mesageria electronică, e‑mail.
• Calculul tabelar, documentare online.

Considerând disciplinele de informatică din liceu,


curriculumul
să men‑ionăm de
că la toate filierele (teoretică, tehnică şi voca‑ională), profilurile şi s
primele două clase sunt prevăzute ore de tehnologia informa‑iei şi a co
(două ore pe săptămână la clasa a IX‑a, o oră pe săptămână la clasa a X‑a). În unele
şcoli, acolo unde planul‑cadru permite alocarea unor ore în curricul
şcolii pentru discipline din aria curriculară „Tehnologii”, din ‑ care f
plinele informatică şi tehnologia informa‑iei şi a comunica‑iilor (în sp
filiera teoretică), sunt propuse discipline noi, care urmăresc să famil
cu tehnologii moderne, cum ar fi:
• Web design.
• Game development.
• Grafică 3D.
• Crearea jocurilor în limbajele Alice şi Greenfoot.
• CISCO fundamentals (organizate în şcolile care sunt academii CISCO
• Publicitate în medii electronice.
O D UI C
NTR ER 15

Societatea informa‑ională şi e-educa‑ia

Să precizăm încă de la început faptul că ştiin‑ele implicate direct în demer


sunt (conform [*2]):
a) Pedagogia – ştiin‑a care se ocupă cu studiul metodelor de educa‑ie şi de i
a oamenilor, în special a persoanelor cu pu‑ină experien‑ă.
b) Psihologia – ştiin‑acareseocupăcustudiulproceselorşiparticulari
umane.
c) Metodica  –parteadidacticiigeneralecarestudiazăprincipiile,meto
de predare adaptate specificului fiecărui obiect de învă‑ământ.
d) Didactica  – parte a pedagogiei care se ocupă cu principiile şi metodele
materiilor de învă‑ământ, precum şi cu organizarea învă‑ământului.

Putemspunecădidacticageneralăstudiazăproblemeleteoretice ‑ şi
cativeglobalealeînvă‑ământului(inclusivaleînvă‑ământuluideinfor
referălaprocesulînsuşiriidecătreeleviacunoştin‑elor,priceperilo
lasarcinileşicon‑inutulînvă‑ământului,precumşilaprincipiile,metod
de organizare a învă‑ământului. Metodica poate fi privită ca o didactic
Obiectul de studiu al didacticii predă îlrii
constituie
informaticii
astfel învă‑ământ
deinformaticăprecum
, şisarcinilecareîirevin.Acestesarcinidecurgd
generale ale învă‑ământului şi educa‑iei în etapa actuală de dezvoltar
Înceeacepriveştecadreledidactice,acesteştiin‑esuntimportan
şi trebuie studiate şi stăpânite simultan. Cunoştin‑ele ştiin‑ifice a
vaste şi profunde ar fi) nu sunt suficiente pentru desfăşurarea ‑ în con
zătoare a procesului de instruire. Pentru ca activitatea profesor
dorit este necesar ca aceasta să se desfăşoare într‑un mediu adecva
vedere legislativ, economic, administrativ etc. Asta pentru a nu ma
şi perseveren‑ă.
Ideileprincipaleprivindaspectulsocietă‑iinoişirolulprofesor
schimbare conştientizată a acesteia datează aproximativ din ‑ deceni
lui trecut. Iată câteva dintre ele, aşa cum au fost enun‑ate în perioad
• Societatea viitorului (cea în care trăim acum) va fi o societate
( Information Society). Acest tip de societate va apărea datorită răspândi
noilor tehnologii privind informa‑ia şi comunica‑iile. Schimbări pro
produce în toate domeniile, începând cu administra‑ia (e‑guverna
(e‑commerce) şi terminând cu educa‑ia/învă‑ământul (e‑education/e‑lea
cultura (centre multimedia şi biblioteci virtuale) şi chiar manie
anumită profesiune.
• Astfel, nu vom putea evita (în viitorul foarte apropiat) educa‑ia pe
va implica folosirea calculatorului în mod profesional. Pondere
deschis, la distan‑ă şi în timp real (şi online), va fi covârşitoare. E
16 DIDACTICA PREDĂRII INFORMATICII

Internetuluiconstituieceamaiimportantăbazăpentrupromovar
tip de educa‑ie.
• Rolul profesorului va fi mult mai dificil şi mai important, iar ‑ probl
irea profesorilor, reconversia profesională, vor multispecializare
căpăta impor

tan‑ă na‑ională.
• ,ara noastră trebuie să devină parte activă a efortului general de
costurilor economice şi efectelor sociale negative generate de
societate.
• Anumite condi‑ii specifice României de azi, cum ar fi instabilitat
prelungită, lipsa sprijinului consistent (financiar sau de altă n
faptul că învă‑ământul superior nu poate garanta o pozi‑ie socială si
absolven‑i, existen‑a unor regiuni defavorizate, legisla‑ia (uneor
ne for‑ează (poate surprinzător) să facem paşi mai mul‑i şi mai rapizi decât ‑ăr
dezvoltate pentru a trece la societatea informa‑ională.
• Folosirea generalizată a învă‑ământului la distan‑ă poate genera ch
De exemplu, este posibil ca un singur calculator sau server perfor
sta‑iidelucruplasateînzonegreuaccesibileşicupu‑inielevi)săco
decât între‑inerea şi administrarea mai multor spa‑ii de învă‑ământ
• Tranzi‑ialasocietateainforma‑ionalăvageneraînsăproblemecompl
întregii umanită‑i, astfel încât nu numai guvernele şi administra
chiar şi organiza‑iile de anvergură mondială vor trebui să se implice ‑ a
dierea şi finan‑area unor proiecte de cercetare legate de ‑ rezolv
bleme.Factoriiceimaiimportan‑ipentruoasemeneatranzi‑iesunt
de comunica‑ii şi aplica‑iile informatice.

Ca o primă concluzie, sintagma „societate informa‑ională” descrie o


şiosocietateîncareaccesul,achizi‑ia,stocarea,prelucrarea,trans
şiutilizareacunoştin‑elorşiainforma‑ieijoacă[*6]. unrol
Peaceastă
decisiv”
linie,
seobservăcăanumiteconsecin‑epozitivealetranzi‑ieispresocietat
pot fi lesne identificate şi apreciate. În acelaşi timp, consecin‑ele n
putut să apară într‑un mod aproape imprevizibil puteau genera un im
negativdelocdedorit.Societateainforma‑ionalătrebuiesă‑rămânăos
cratică, sporindu‑şi în acelaşi timp capabilită‑ile economice. Vorbind di
vedere cultural şi ştiin‑ific, ea trebuie să rămână o societate a cunoaşt
aacumulăriideinforma‑ii.Iatăcâtevadintreproblemeleviitoarei(a
realită‑i, identificate tot în acea perioadă
[Sa], [WO ], [*6]): (
• Noiletehonologiilegatedeinforma‑iei ş Information
comunicare (
and Communication
Technologies)voreliminamultedintrelocuriledemuncăactuale.Vafis
însăşi natura principală a activită‑ii umane şi chiar valorile‑ eticii
‑ionale derivate în principal din ideea „un loc de muncă egal un ang
fie distruse. Cadrele didactice vor constitui o categorie soc
afectate de schimbări, pregătirea profesorilor trebuind maisă fie di
INTRODUCERE 17

variată şi profundă, în condi‑iile în care presiunea mediului asupra


mai mare. Din acest motiv şi pentru ca şcoala românească să‑şi men‑ină în lu
pozi‑ia de vârf deja dobândită, este necesar ca întregul sistem d
fie adaptat societă‑ii în transformare şi să sprijine cu adevărat t
implicate în procesul de educa‑ie.
• Unul dintre lucrurile sigure în viitor va fi extinderea vastă a ce
teleworking( [*4 ], [*5 ], [*10 ]). Vom fi nevoi‑i să lucrăm cu calculatorul şi acasă,
şi la serviciu, cel pu‑in pentru a putea accesa la distan‑ă diverşi p
diverse informa‑ii.
• Contribu‑iile financiare necesare pentru sus‑inerea progres
acceptate de fiecare membru al societă‑ii, indiferent de posibil
Tendin‑ele de a multiplica pia‑a serviciilor interactive multi
fără acest sprijin financiar suplimentar.
• Creşterea numărului de produse soft dedicate publicului larg, în
cele dedicate lumii afacerilor, va fi semnificativă în viitor. Accen
educa‑ia permanentă şi pe posibilitatea de a accesa baze de date pu
ce mai mari.
• Lumeaafacerilortrebuiesădevinăconştientădefaptulcăroluleduca
şi de aceea va trebui să se implice activ şi permanent în procesul e
Oameniideafaceriartrebuisăseasigurecănoileîndemânări,talent
pe care trebuie să le posede angaja‑ii lor sunt cu adevărat predat
institu‑ii specializate performante şi acreditate.
• Solu‑iapentruaaveaosiguran‑materială ă câtdecâtacceptabilăva
persoane ocuparea concomitentă a mai multor locuri de muncă, unele
chiar calificări diferite.
• Unul dintre scopurile sociale cele mai importante în viitor va
o balan‑ă corectă între tendin‑a naturală de dezvoltare a oricărei pi
intereselorpublicesauindividualevitale.Prioritateaest
acelcadrulegalregulator capabilsă‑ideafiecăruiaposibilitateadeaben
avantajelesocietă‑iiinforma‑ionale,protejândînacelaş‑ itimpco
rită‑ile de orice fel.
• Administra‑iile publice locale trebuie să se implice puternic ‑ în p
donare a tranzi‑iei către societatea informa‑ională în men‑inerea ‑ î
cului larg în siguran‑a socială.
• Educatorii trebuie să se schimbe în primul rând pe ei şi să fie‑ promot
selor men‑ionate.
• Oamenin‑are majoră pentru fiecareindividîntr‑oasemenea‑ societ
litatea pierderii intimită‑ii personale. Va fi dificil de men‑inut
între necesitatea publică de a şti cât mai mult despre tot şi drep
a avea o via‑ă privată protejată (să ne gândim că nu apăruseră încă site‑ur
socializare!).
18 DIDACTICA PREDĂRII INFORMATICII

Putemconcluzionacăpreviziunilefăcuteaufostcuadevăratremarca
care a trecut putând fi exploatată la maximum pentru optimizarea
minimizarea riscurilor de eşec legate de adaptarea la societate
subliniem faptul că printre obiectivele declarate ale tuturor
cadrul Uniunii Europene s‑a numărat şi asigurarea unei tranzi‑ii cât
conflicte spre societatea informa‑ională pentru toate statele
fost dovedit de existen‑a şi activitatea unei Comisii Europene
Informa‑ională (The European Commission for Information – ECIS)
Society 
, parte
a Forumului pentru o Societate Informa‑ională (Informational  – ISF, Society
una dintre comisiile permanente ale Uniunii Europene), precum şi a
privind ‑ările est‑ şi central‑europene care nu sunt membre ale Uniu
(EuropeanUnionCommissionforEasternandCentralEurope  – EUCECC) Countries
.
Sătrecempescurtînrevistăsitua‑iaactualăa‑ăriinoastre,pornind
istoric. În primul rând trebuie amintită Legea învă‑ământului‑ nr. 84/19 5. Ca o c
secin‑ă, Hotărârile de Guvern nr. 36/19 7 şi02/19 8 fixau condi‑iile prin care se
puteaucreaşifinan‑aşiputeaufunc‑ionaanumitere‑eleşiinstitu‑iidedi
tuluiladistan‑Au . ă urmat,înmodfiresc,câtevaordinealeMENCŞprincares‑aupre
condi‑iile concrete de aplicare a directivelor amintite. Printre
• Ordinul MENCŞ 3289/1 8 (http:/ www.edu.ro), de creare a centrelor zonal
pentru învă‑ământul la distan‑ă, finan‑ate, în principal, din resurse
func‑ionând sub asisten‑a proiectului european PHARE. Pentru ‑ a ex
donare eficientă, s‑a creat şi Oficiul Na‑ional pentru Învă‑ământ la
(ONIDD), iar centrele zonale au avut posibilitatea de a crea şi contro
departamentale, cum ar fi cele înfiin‑ate în institutele de înv
Acesteadinurmă,deşicreatesubegidaunorinstitu‑ii‑mamă,aveauind
financiară.
• Ordinul MENCŞ 3495/1 8, prin care s‑a adoptat o nouă listă a specializărilor
admise pentru învă‑ământul superior. Învă‑ământul la distan‑ ‑ ă a fost l
tat, în ansamblu, ca o nouă specializare.
• OrdinulMENCŞ3 54/19 ,princares‑aoficializatşicreareacentrelor‑ deînvă
‑ământ la distan‑ă în institutele (de stat) de învă‑ământ superior. Ace
drept scop primordial asigurarea educa‑iei permanente (sau chia
în anumite situa‑ii) pentru acele persoane care nu au avut posibi
un învă‑ământ clasic. Conform legilor anterioare, finan‑area lor se
fondurieuropene, prin programul PHARE,precumşidinresurselocale(i
aleuniversită‑ilorsaufacultă‑ilorimplicate)cu , oindependen‑
‑ dec
ă
punzătoare fa‑ă de conducerea institu‑iilor în cadrul cărora func‑ion

În16,2întreaga
0 activitate legată de societatea informa‑ională este
MinisterulComunica‑iilorşipentruSocietateaInforma‑ională(MCSI;fos
al Comunica‑iilor şi Tehnologiei Informa‑iei; http:/ www. mcsi. ro) . MCSI es
„organuldespecialitatealadministra‑ieipublicecentraleîndo
INTRODUCERE 19

şi tehnologiei informa‑iei, având scopul de a realiza politica Guvern


acest domeniu” (http:/ www.mcsi.ro).
Misiunea principală este „crearea premiselor durabile treceri

ma‑ională în România”. Institu‑ii aflate în subordinea MCSI:
• InstitutulNa‑ionaldeStudiii ş CercetăripentruComunica‑iihttp: ( ww
/
• InstitutulNa‑ionaldeCercetare‑Dezvoltare –ICIBucureş
înInformatică
ti(http:  /
www.ici.ro).
• Agen‑ia pentru Serviciile Societă‑ii Informa‑ionale.
• Societatea Na‑ională de Radiocomunica‑
– RADIOCOM.
ii SA 
• Unitatea de Management de Proiect „Knowledge‑Based Economy” (htt
mcsi.ro).

Men‑ionăm că există şi numeroase legături institu‑ionale interna‑ ‑ ion


terului,princarepoliticainternăestepermanentconectatălapolit
Înacestmod,seurmăreşteopermanentărepozi‑ionarea‑ăriinoastrepeh
conferindu‑i „un avantaj competitiv pentru o creştere economică ‑ du
gen‑rapidă
ă înspa‑iuleuropeanprinincluziunedigitalăi ş eliminareadecala
i
ş consolidareaunorsectoare‑cheieprioritarepentruRomânia”htt (
Programele derulate prin MCSI încearcă mereu să acopere problematic
„Internetulviitoruluişiperspectivele5G,con‑inutuldigitalbaza
Big Data şi cloud computing, cyber security şi cyber intelligence”. Există planuri
strategice anuale şi cu perspectivă mai largă (până în 20 ), în cadrul că‑ rora ed
‑iei permanente şi e‑educa‑iei le revine un rol esen‑ial.
În final, în privin‑a e‑educa‑iei şi educa‑iei permanente, să spunem că nu c
timp în urmă şcolile şi liceele din România doar îşi imaginau ce ar putea ‑ fa
logiile digitale pentru elevi şi pentru întregul sistem de învă‑ămân
teleprezen‑a,interconectareasautablainteractivănicinuexista
Con‑inutul lec‑iilor poate fi înregistrat şi încărcat pe o platformă o
pentru a fi ulterior accesat de elevi. Într‑adevăr, doar prin inter
putem face educa‑ia accesibilă oricui, oricând şi oriunde. Se poate ‑ afir
tudine că „multiplicarea şi diseminarea bunelor practici, a rezulta ‑
lor didactice resurselor
şi a educa‑ionale create reprezintă o concluzi
logicădeacontinuaundemerseduca‑ionalcomplex,provocatorşiinovat
Gavrilă, inspector general al IŞJ Iaşi). Schimbarea a venit, în mare, prin acc
de fonduri europene şi prin implicarea directă a unor mari companii. S
faptulsetulcă de obiective şi priorităţi naţionale este bazat pe necesităţile actuale şi
realităţile societăţii româneşti, fiind în acelaşi timp în concordanţă cu exigenţele la
nivel european, însoţite de mecanisme de finanţare şi mecanisme de cooperare sus-
tenabile. În strânsă legătură cu cele afirmate, terminologia amintită – nici la în
pedeparteexhaustivădacă‑inemcontdeîmbogă‑irea(exgerată,credemnoi)al
române cu neologisme provenind din – este
zonatrecută
IT  aici în revistă cu sco
de a fixa un limbaj comun între cititori (limbaj
şi autori
din ce în ce mai greu de
20 DIDACTICA PREDĂRII INFORMATICII

identificat cu precizie) şi de a scoate la iveală alte concepte


‑ inven
tatea informa‑ională. Astfel, un calculator este o maşină programabil
caracteristici principale ale sale sunt:
• „Răspunde” unei mul‑imi fixate de instruc‑iuni într‑un mod bine preci
definit.
• Execută o listă de instruc‑iuni (program) încărcate anterior
memorie. într‑o

Ştiin‑a calculatoarelor se ocupă cu studiul calculatoarelor ‑ şi i


tarea şi utilizarea de soft, cât şi de hard. Ea este compusă din mai mult
incluzând inteligen‑a artificială sau ingineria soft. În societate ‑
sireatehnicilorştiin‑eicalculatoarelorestepermanentăşiprofe
mod ideal) a fiecărui membru al societă‑ii. Prin arhitectură
se în‑elege un domeniu
structurat, format din entită‑i (obiecte) (legături
şi rela‑
întreii obiecte). Un siste
inteligent de învă( Intelligent
‑are Tutoring System) este un concept care defineşte
nouă viziune asupra rela‑iei profesor/„antrenor”‑elev/calculator. A
compusă din patru subarhitecturi:
– baza de cunoştin‑e existentă ini‑ial, împreună cu contextul acesteia
– baza de cunoştin‑e care va trebui să fie achizi‑ionată pe parcursul
‑ ut
mului;
– informa‑iile colaterale presupuse a fi fost deja achizi‑ionate;
– interfa‑a disponibilă dintre (de exemplu) elev şi profesor.

Prin mediu inteligent de ( Intelligent


învă‑areLearning Environment) în‑elegem o
metodologiegeneralăcuajutorulcăreiaelevulestepusîntr‑ositu
deprobleme.Aceastămetodologieestetotaldiferitădemodultradi
bazatîngeneralpeosecven‑ădeîntrebărişirăspunsuri(precedate ‑ even
nerişifiindnecesarereveniri).Ideeaestecăelevultrebuiesărezolv
probleme specifice, primind în decursul acestui proces o asisten‑ă pr
partea unui grup de persoane calificate, şi anume profesori, cercetăt
Mediul inteligent de învă‑are reprezintă o extensie a sistemului int
(fiind sisteme mai bine organizate şi consolidate). În cadrul lor mai po
şi alte metode moderne de predare. Dintre acestea, nu putem să‑ nu amin
gul sau coachingul. Foarte posibile devin clasele electronice, ‑ ce re
lizare şi, în acelaşi timp, o concretizare a conceptului de învă‑ământ l
precum şi o generalizare a mediului inteligent de învă‑are. În acest c
cunoscute ale învă‑ământului clasic (profesor, elev, clasă) pot avea în‑el
şi trebuie privite drept concepte virtuale. Astfel, profesorii pot f
specialiştiîndomeniusauchiaranumiteaplica‑ii),iareleviipotfişi
anumite produse soft. Clasele, ca spa‑ii fizice de învă‑ământ, s‑ar putea s
decâttotvirtual,membriiunuiasemeneagrupsausubgrupputândf
anumite codificări (semnături eletronice, adrese de poştă electronic
INTRODUCERE 12

Structura lucrării şi contribu‑iile personale ale

Capitolul1 este destinat, după cum rezultă şi din titlul său, prezentă ‑ rii te
culumului,instruiriişievaluăriiînînvă‑ământulpreuniversitar,cuac
informatică. Se discută metodele de elaborare a ofertei curricular
învă‑ământ şi a programelor şcolare. Este subliniată importan‑a manuale ‑
mării limbajului de specialitate al elevilor. În capitolul 2, obiect
didactice sunt tratate din punct de vedere metodic, atât la ni
particularizat. Ca o continuare normală, în capitolul 3 se face o trec
metodelor, tehnicilor şi procedeelor didactice folosite la nivel g
clasic,precumşiînpredareainformaticiimoderne.Capitolele4,5şi6sunt
practicexemplificăriiconceptelortratateanterior,prinstudiu
de bază ale folosirii calculatoarelor (în special laparadigme nivel de de softwa
programare, algoritmi esenţiali (în special cei de sortare), metode generale ‑ d
borareaalgoritmilor (
divide et impera, backtracking, greedy,programaredinamică),
analizacomplexită‑ii,corectitudiniişiterminăriiprogramelor,struc
stive, cozi) şi baze de date şi, separat, grafuri şi arbori. Anexele con‑in e
suplimentare de proiecte didactice, subiecte date în anii anter
admiterea în învă‑ământul superior de specialitate (împreună cu bare
precum şi subiecte date la exemenele de grad şi definitivat (pentr
informaticăcepredaulalicee)etc.Deasemenea,suntprezentate free,online) resur
utilepentrudesfăşurareaîncondi‑iicorespunzătoareaprocesuluidid
AeL,Cisco,Oracle,altecăr‑işimanuale),prinfurnizareaunoradresedesi
careleconsiderămimportante.Bibliografia,deşivastăeste , departede
Să punctăm faptul că to‑i cei trei autori au contribuit la conceperea
redactareatextului,dacănuîntr‑unmodegal,oricumfoartegreu ‑ dedif
cit.Totuşi,fiecaredintreeiaremeritemaiimportante(uneori,chiar
crearea anumitor capitole, sec‑iuni sau por‑iuni de text, după cum urm
• Ioan Asiminoaei: capitolele 4 şi 5, cu excep‑ia sec‑iunilor privind para
de programare şi analiza complexită‑ii, corectitudinii şi terminării
programelor, al căror autor este Cristian Masalagiu. Contribu‑ii
• CristianMasalagiu:introducerea(sec‑iunea„Ceesteinformatic ‑
ună cu Mirela ,ibu), capitolul 3 (o bună parte 
– împreună cu Mirela ,ibu),
concluziile. Contribu‑ii la anexe.
• Mirela ,ibu: capitolul 1 (aproape în totalitate), capitolul 2 (ajuta
Masalagiu şi Ioan Asiminoaei) şi capitolul 6. Contribu‑ii la anexe.

Să men‑ionăm şi că este foarte posibil ca textele de program/cod să mai con


erori de redactare (neinten‑ionate). Sperăm ca ele să nu fie atât de so
să facă în‑elegerea imposibilă (sau distorsionată).
Capitolul 1

Curriculum, instruire, evaluare

Înacestcapitolvomtratacâtevaproblemeglobalealeînvă ‑ ‑ământ
niu, punând accent pe actualitatea din România. Strategiile acce
na‑ional pot influen‑a ierarhiile şi importan‑ a utiliză
principiilor, riişi
metodelor
obiectivelor (de fapt,competenţelor) didactice.

1. Teoria curriculumului
Să începem prin a spune că este necesară o participare activă a fiecă ‑ rui ca
ticînîndeplinireaobiectivelorgeneralealeînvă‑ământului,confor
educa‑ional românesc trebuie să răspundă prompt atât cerin‑elor pe
celor ce implică transformarea societă‑ii. Una dintre cele mai import
acestuisistemestecurriculumulşcolarprivindcon‑inuturile ‑ înv
ticii educa‑ionale,curriculumul defineşte sistemul de procese decizionale, manageri-
ale şi de monitorizare care precedă, acompa­niază şi urmează proiectarea, elaborarea,
implementarea, evaluarea şi revizuirea permanentă şi dinamică a setului de experienţe
de învăţare oferite de şcoală ( [*7 ], [*8 ]).

1. Curriculumul naţional în informatică


Con‑inutul învă‑ământului preuniversitar este asigurat
curriculumul naţional.prin
Acestaesteansamblulcoerentalplanurilor‑cadrudeînvământ, ă‑ alpro
şi al manualelor şcolare din învă‑ământul preuniversitar (Legea educa
nr., actualizată
11 1/20 , conform Anexei 3).
Curriculumul na‑ional (numit
nucleu) cuprinde
şi sistemul documentelor d
regulator şi normativ în care se consemnează experien‑ele de învă‑are r
elevilorprinintermediulşcolii.Conformacesteiaccep‑iuni,curricu
ansamblul experien‑elor de învă‑are pe care şcoala îl oferă tinerilor, cu
asistaîndescoperireai ş valorificareamaximăapropriilordisponibil
înacelaşitimp,înseamnăceeaceîntreprindeleviiîncoală ş subîndrumareapr
24 DIDACTICA PREDĂRII INFORMATICII

în materie de învă‑are şi dezvoltare personală. Curriculumulreprezintă na‑ion


ansamblulexperien‑elordeînvăare ‑ princareoriceinstitu‑iecolară
ş as
idealului educa‑ional şi a finalită‑ilor învă‑ământului. Acesta impune
fixarea cadrului de referinţăcadocumentregulator,înglobândanumi‑iindicat
vorasiguracoeren‑a(întermenideproceseşiproduse)aîntreguluisis
Planul‑cadru de învăţământ este un document regulator care delimite
curriculare, obiectele de studiu şi alocarea de timp minimă şi maximă‑ afe
tora, pe niveluri de învă‑ământ.
Programele şcolare stabilesc programele analitice, insistându‑ ‑ se a
tului particular (acestea fiind realizate pe clasele şi discipli ‑
nul‑cadru). În consecin‑ă, există metodologii de aplicare a lor, reprezent
de implementare, reglementări suplimentare etc.
O discu‑ie mai vastă asupra manualelor alternative şi asupra cu
alegerea şcolii ar fi benefică, dar necesită un spa‑iu tipografic mult
Introducerea unui curriculum na‑ional a fost înso‑ită de o serie de co
laniveluldocumentelorregulatoare,câtşilanivelulprogramelo
succint (neexhaustiv şi, din motive obiective, poate nu în ultima for
urmează. Trebuie să vorbim mai întâi despre profilul de formare al unui
Acestaartrebuisăsintetizezeprincipalelecunoştin‑e,capacită‑işiat
ob‑inutelacapătulparcursuluişcolarobligatoriu,înconcordan‑ ‑ cu
ă aşt
tă‑ii fa‑ă de el. În termeni opera‑ionali, de la un absolvent de învă‑ământ o
se aşteaptă ( [*8 ]):
[Cri],
• Să comunice eficient în situa‑ii reale.
• Să în‑eleagă sensul apartenen‑ei la diverse tipuri de comunită‑i (loca
europeană etc.).
• Sădemonstrezeflexibilitate,capacitatedeadaptareşideintegra
• Să rezolve probleme, să ia decizii şi să‑şi exprime opiniile, folosind gân
critică şi creativă.
• Să folosească în mod eficient tehnologiile relevante pentru via‑a
• Să în‑eleagă fenomenele esen‑iale ale naturii înconjurătoare şi ale m
imediat.
• Să contribuie la structurarea şi ocrotirea unei vie‑i sociale de c
• Să aplice şi să‑şi valorifice propriile experien‑e de învă‑are, în scopul dez
unuiansamblupersonaldeatitudinii ş alidentificăriiviitoareio
• Să‑şi formeze capacită‑ile şi motiva‑iile pentru o învă‑are permanentă.

Princiclu curricularseexprimăunconceptbazatpestadiuldedezvoltareps
gogicăalelevilori ş careoferăunsetcoerenti ş clardeobiectivedeînvăar ‑
lanivelulprogramelorcolare. ş Specificitateadominantelorcurricu
înparteesteimportantăatâtpentruproiectareacurriculumului
elevi,părin‑ietc.Curriculumul curriculumul
nucleuşi ladeciziaşcoliisuntcel
segmenteprincipalecareconcurălaformareacurriculumului Curriculumul na‑ion
nucleuestegeneral)
( obligatoriupentrutoatecolile
ş i
ş to‑ielevii,repreze
prin care învă‑ământul public speră să asigure egalitatea şanselor. Aces
CURRICULM, INSTRUIRE, EVALA
U RE 25

unicul sistem de referin‑ă pentru examinarea externă admisă în siste


baza standardelor na‑ionale de performan‑ă Curriculumul
şi de evaluare.
la decizia
şcolii vizează zona op‑ională a curriculumului na‑ional şi se concretizează p
– segmentul op‑ional al disciplinelor obligatorii;
– disciplinele propriu‑zis op‑ionale.

Avantajele acestui mod de abordare a organizării curriculare su


– descongestionarea materiei;
– creşterea posibilită‑ilor de op‑iune pentru elevi şi profesori;
– asigurarea parcursurilor individuale de învă‑are;
– creşterea posibilită‑ilor unită‑ii şcolare de a‑şi determina propriu
– posibilitatea utilizării flexibile a segmentului neobligatori‑
‑ie de nevoile locale de educa‑ie şi formare;
– obligativitatea stabilirii unor standarde coerente de perfo
– obligativitatea formării resurselor umane (profesori şi manageri

În continuare, putem spune că ariile curriculare reprezintă grupa


precum şi de domenii şi obiecte op‑ionale, fiind neschimbate pe întrea
şcolii (segmentului şcolar). Ponderea lor pe cicluri şi clase variază în ti
sens,obiectele de studiu sunt păr‑i ale ariilor curriculare şi pot
op‑ionale. Programele şcolare stabilesc obiectivele şi con‑inuturi
învă‑ării la nivelul obiectelor de învă‑ământ. Acestea reglează atât ‑ pr
dare‑învă‑are, cât şi realizarea manualelor şi a altor materiale ‑ supo
cesului de predare‑învă‑are. Programa şcolară ar trebui să cuprindă, print
modelul curricular al disciplinei; obiectivele‑cadru ale discipl
referin‑ă; activită‑ile de învă‑are recomandate; con‑inuturile sugerat
de manuale; standardele de performan‑ă pe ciclu curricular
ciclul (
achiziţiilor fun-
damentale, ciclul de dezvoltare, ciclul de observare/orientare)Pe
. bazaplanului‑cadru
gânditlanivelna‑ional,esteevidentcăfiecareşcoalăîşipoatedecide
orară, în func‑ie de proiectul curricular pe care‑l realizează. Se poate a
personalitatea şcolii, într‑o societate care‑şi propune să respect
diversitatea, în contextul respectării standardelor interna‑io
calitate şi acordării unor şanse cu adevărat egale tuturor tineril

1. 2 Elaborarea ofertei curriculare


Ofertacurricularăgeneralăesteocomponentăaculturiicurricular
integrantăacurriculumuluina‑ional.Proiectareaşielaborareacur
apanajul unei elite, un sistem educa‑ional puternic trebuind ‑ să fi
mareaini‑ialăiş continuăaunuicontingentnumerosi ş binepregătitdecad
capabile să proiecteze şi să elaboreze un curriculum. O asemenea ofert
urmărească compatibilitatea sistemului de învă‑ământ (românesc) cu a
26 DIDACTICA PREDĂRII INFORMATICII

învă‑ământ performante din lume, în acelaşi timp cu mărirea impactului s


de învă‑ământ asupra reformei societă‑ii româneşti. Oferta curricula
unită‑i şcolare este un atu important pentru rezonan‑a şcolii ‑ în micro
economic în care s‑a integrat. Pornind de la finalită‑ile fiecărui ciclu
ofertacurricularăauneiunită‑işcolaretrebuiesă‑inăcontdeurmătoar
nivelul de studiu, profilurile şi specializările existente, baza d
resursele umane, preferin‑ele părin‑ilor şi elevilor, specificul ‑ local
pa‑ionale,contextulsocioculturaletc.Deciziaprivindmodulîncareva
segmentdecurriculumapar‑inedeopotrivăofertan‑ilor(şcolii, ‑ adicăpr
geri) şi beneficiarilor (elevi, părin‑i, reprezentan‑i autoriza‑i ai comun
Curriculumul la decizia şcolii poate fi astfel orientat spre:
• Curriculumul nucleu aprofundat  – cuprinde numărul maxim permis de ore din
planul‑cadru şi este conceput pentru o atingere integrală şi efect
şicon‑inuturilordintrunchiulcomun(poatefiutilclaselorcuun
slab al pregătirii de specialitate).
• Curriculumul extins  – cuprinde numărul maxim de ore din plaja orară, dar
scopul extinderii obiectivelor şi con‑inuturilor din trunchiul
claselor cu performan‑e bune la diciplina de specialitate).
• Curriculumul elaborat în şcoală  – această componentă permite introducer
op‑ionale de tip nou, care abordează o tematică diferită, din afara p
obligatorii (util pentru a exploata resursele şi tradi‑iile ‑ loca
pina cerin‑ele şi exigen‑ele de instruire ale elevilor, părin‑ilor, co

Putem spune că aspectele formative şi informative cuprinse în cur


decizia şcolii
vor constitui obiectul evaluării interne.
Didacticapentruînvă‑ământulgimnazialşilicealsereferă,înprincip

tivele formative (generale) ale studiului informaticii şi legă‑ turii
cipline, la metodele şi mijloacele didactice specifice disciplinei, p
clasiceaplicateînpredareainformaticii,planuriledeînvă‑ământ,pro
manualele şcolare ş.a.m.d.

1. 3 Planurile de învăţământ
Planurile‑cadruprecizeazădisciplineledeînvământ ă‑ însuccesiunealorpe
i
ş tipuri de coli
ş sau niveluri. Pentru fiecare disciplină în parte sunt
de ore pe săptămână şi ani de studiu, precum şi numărul de ore de aplica‑ii pr
delaborator,acoloundeestecazul.Acesteaauuncaracterunicşiob
fiecarestadiudepregătiresautipdeşcoalăcuprinzând , obiecteledes
clasă (perioadă de studiu). Într‑un moment de reorganizare a mecanismul ‑
zi‑ii de cunoştin‑e, conceperea unui curriculum este o întreprindere
dacăinem
‑ contdefaptulcăseimpunerenun‑arealalucruridepăite, ş dari
ş p
unor solu‑ii viabile. La baza elaborării planurilor‑cadru stau următ
(aten‑ie,nuestevorbadespreprincipiiledidactice,carevor 2): fidiscut
27

a) Principiul selecţiei culturalealegerea


( domeniilorcunoaşteriii ş gruparealor
curriculare)vizeazăarmonizareadintreparticularităile ‑ personali

dinilei ş intereselesalepersonaleexprimate ( prinop‑iuneapentruo
specializare),diversitateadomeniilorcunoaşteriisauperenita
bazăalepersonalităii ‑ iş avalorilorasociateacestora,propriiuneisocie
b) Principiul coerenţei vizează caracterul omogen şi echilibrat al parcursu
având în vedere integrarea verticală şi orizontală a ariilor cur
fiecărei filiere, profil şi specializare, această integrare fiind ‑ expri
rile procentuale dintre ariile curriculare şi disciplinele de
c) Principiul funcţionalităţii presupune organizarea parcursului şcolar pe
curriculare care să respecte caracteristicile de vârstă, int
elevilor. Acest principiu, coroborat cu strategiile de organizar ‑
lumului, a determinat structurarea procesului de învă‑are pe ci
(periodizări ale şcolarită‑ii) care se suprapun structurii sistemul
cu scopul de a focaliza obiectivele majore ale fiecărei etape şcola
prin modificări curriculare procesul de învă‑ământ. Ciclurile curri
continuitatea în momentul trecerii de la o treaptă de şcolarizar ‑
xiuniexplicitelanivelulcurriculumului,corelareastructur
psihologică, transferul de metode şi procedee didactice.
d) Principiul egalizării şanselor vizează oferta de oportunită‑i echivalente ‑ d
nuareacolariză
ş riiîncondi‑iileunorparcursuricolare ş diferen‑iate
solicită un raport adecvat între trunchiul comun şi disciplinel
e) Principiul flexibilităţii parcursurilor individuale este concretizat prin ofert
pachete op‑ionale, la nivel central sau local, pentru fiecare ari

Noulcurriculumfacelocop‑iunilorelevilor,permiteorealăinstruiremu
ointerdisciplinaritateefectivăînabordareacon‑inuturilor,orie
îndirec‑iacapacităilor
‑ debazăaleviitoruluispecialistîninformaticădintr
,
– formarea gândirii algoritmice (capacitatea de abordare sistem
– capacitatea de abstractizare;
– capacitatea de comunicare imediată şi eficientă;
– capacitateadeexploatareafacilităilor
‑ oferitedetehnologiilein

Descentralizarea curriculară încurajează parcursurile individ


spulberămitulobligativităii ‑ i
ş uniformităii
‑ parcurgeriicon‑inuturilo
didactice o flexibilitate de decizie şi ac‑iune. Dacă la liceu prezen‑a di
informatică în trunchiul comun le conferă un statut sigur, la gimnaziu
s-a decis ca în Planul-cadru să apară o disciplină obligatorie, Informati
prevăzută cu o oră pe săptămână la toate clasele. Şcolile gimnaziale vor av
de resurse logistice Şi tehnice (precum şi de cadre didactice specia
putea sus‑ine această schimbare. Numai astfel elevii vor avea ‑ şanse e
‑ie corectă în domeniul IT, educa‑ie esen‑ -oială
societate
într informatizată.
O prezentare succintă a disciplinelor de informatică ce se regăsesc
curriculumul na‑ional (la liceu) este furnizată în tabelul următor (ww
28
Tabelul 1. Disciplinele de informatică, conform curriculumului naţional
Numărul ore/ Anii
Filiera Profilul Specializarea Disciplina Exemple de conţinuturi studiate
săptămână de studiu
Teoretică Real Matematică- Informatică 1 (IX-X) IX-XII Elaborarea algoritmilor
informatică 3 (XI-XII) Implementarea algoritmilor în limbaj de progra
(C/C++, Pascal): algoritmi elementari, structuri de
Matematică- + 3 ore la date statice, tehnici şi metode de programare, t
informatică, intensiv grafurilor
Intensiv Structuridedatedinamice,programareorientată
informatică C++/C# (doar la intensiv)
Sisteme de gestiune a bazelor de date
Software utilizat: CodeBlocks, Free Pascal, Visu
Studio, platforma Oracle SQL/Visual Fox
TIC 1 (IX) IX-X Sisteme de calcul şi sisteme de operare
2 (X) Comunicarea în medii electronice
Elemente de realizare a website-urilor
Editoare de texte
Foi de calcul
Prezentări multimedia
DIDACTICA PREDĂRII INFORMATICII

Baze de date Access


Softwareutilizat:OpenOffice,MicrosoftOffice(Word,
Access,PowerPoint,Publisher)Photoshop,
, MovieMaker
Aplica‑iionlinedeprelucraredeimagini,utilita
de editare text, grafică, video
Ştiin‑ele Informatică 1 XI-XII Elaborarea algoritmilor
naturii Implementarea algoritmilor în limbaj de progra
(C/C++, Pascal): algoritmi elementari, structuri de
date statice, tehnici de programare
Uman Ştiin‑e sociale
TIC 1 (IX) IX-X Analog profilul real
2 (X)
Filologie Tehnici de documentare XIXIII
-   –aplica‑iisoftwarededicate,adaptatespeciali
asistată de calculator
1 (XI-XII) (aplica‑iidebiroticăşidocumentare,aplica‑
‑ iimulti
Tehnoredactare ­tată
asis dia, interfe‑e Web)
de calculator 1 (XI-XII)
Voca‑io­
nală Militar
Matematică- Informatică 1 (IX-X) IX-XII Analog profilul real
informatică 3 (XI- XII)
TIC 1 (IX) IX-X Analog profilul real
2 (X)
Artis­tic arhitecturăarte
, TIC 1 (IX) IX-XII Analog profilul real
ambientale, 2 (X)
design,arte Procesarea compute ‑
plas
­tice, arte rizată a imaginii 1 (XI-XII) XIXIII
-   –aplica‑iisoftwarededicate,adaptatespecia
decorative
Tehnici de prelucrare Aplica‑iimultimediadeprocesareaudiovideo,CorelDRA,
Muzică, Arta audiovideo Photoshop, Movie Maker
actorului,
Coregrafie 1 (XI-XII)
Teo­lo­
gic Toate TIC 1 (IX) IX-XII Analog profilul real
2 (X)
Sistemedegestiunea
bazelor de date XI-XIII  –aplica‑iisoftwaredegestiuneabazelordeda
1 (XI-XII) Visual Fox, Microsoft Access
Tehno­
logică Tehnic Toate Informatică 2 (IX-XI) IX-XIII IX-X Analog profilul real
Tehnologiiasistate 1 (XII-XIII) de
calculator XIXIII
-   –aplica‑iisoftwarededicate,adaptatespecia
29
30 DIDACTICA PREDĂRII INFORMATICII

1. 4 Programele şcolare (analitice, curriculare)


Programele şcolare au trecut printr‑un proces complex de elaborar
viziune curriculară, presupunând o reproiectare interactivă ‑ a obie
rilor, activită‑ilor de învă‑are şi a principiilor şi metodelor de evalu
şcolare (analitice) stabilesc con‑inutul disciplinelor (de informa
an de studiu şi materie, pe niveluri, filiere, profiluri şi specializări
forme de învă‑ământ. Acestea precizează ce cunoştin‑e, priceperi, deprinder
săi
ş‑ însuşeascăeleviiînanuldestudiurespectivi ş careestesuccesiune
ele dobândite. Programele sunt elaborate de comisia de specialit
coordonareaConsiliuluiNa‑ionalpentruCurriculum(CNC),dincaref
didactice cu experien‑ă din învă‑ământul universitar, profesori de lic
deosebite în activitatea la catedră, inspectori şcolari din ‑ cadru
‑ene şi al ministerului, psihopedagogi şi cercetători de la Institut
Educa‑iei(IŞE).Realizateînconcordan‑ăcunoileplanuri‑cadru,urmărind ‑ ode
gestionarera‑ionalăacon‑inuturilor,actualeleprogrameşcolarerep
revolu‑iedidacticăînceeacepriveşteconcepteledeformareacompet
superior, de învă‑are în clasă, de studiu în grup, de învă‑are asistată de ca
de autodocumentare etc. O programă şcolară adecvată este rezultatul
colectiv, desfăşurat sub semnul unui profesionalism specific, dar nu e
curriculară locală, la nivelul individului sau colectivului dida
necesară parcurgerea următoarelor etape:
– elaborarea individuală (propuneri de programă), care se face de către
decatedrăaleunită‑ilordeînvă‑ământsaudecătrecadreledidactic
– analiza propunerilor şi elaborarea colectivă; aceasta presupune
finaleauneipropunerideprogramădecătreechipedelucru,stabili
de către comisia de specialitate a ministerului de resort;
– prezentareaşiargumentareaînfa‑acomisieidespecialitateamini
stabilite de echipele de lucru.

După o perioadă de câteva săptămâni, răgaz în care fiecare membru anali


programa rezervată subcomisiei din care face parte, aceasta este r
aplicămodificărilenecesare.Programeleastfelfinalizatesuntsupu
Elaborarea programelor şcolare, inclusiv a celor de la disciplinele
la decizia şcolii, trebuie să îndeplinească anumite cerin‑e de ordin
‑ şti
gic, didactic şi metodic.
Programa şcolară pentru un obiect de studiu trebuie să con‑ină:
– o notă informativă cu privire la scopurile şi obiectivele predării, in
laordonareamaterieişirepartizareaorelorpecapitole,subcapit
– numărul de ore pe săptămână, numărul de ore de laborator (dacă e cazul)
‑ , num
rul de ore alocat recapitulărilor, ore la dispozi‑ia profesorului
CURRICULUM, INSTRUIRE, EVALUARE 13

– competen‑ele‑cheie, competen‑ele generale şi cele specifice (la clas


– valori şi aptitudini pe care elevii le vor dobândi după parcurgere
– con‑inuturile de studiat prezentate în concorda‑ă cu competen‑el
de ore alocat lucrărilor scrise, recapitulărilor, evaluării,
‑ ore la
rului ş.a.m.d.;
– sugestii metodologice;
– îndrumări cu privire la folosirea manualelor, materialului bibli

Programa actuală nu prevede un număr fix de ore pentru fiecare temă î


aceasta fiind lăsată la aprecierea profesorului, în func‑ie de particu
şi de condi‑iile specifice de predare. Preocupările privind elaborar
şcolare pentru disciplinele de informatică sunt îndreptate ‑ spre îm
melorînsensulpuneriideacordacon‑inuturilorcucerin‑elesociale
să se realizeze o pregătire a elevilor în direc‑ia satisfacerii ‑ cerin‑e
grării rapide a absolven‑ilor în activitatea economică. Dinamica con‑i
o cerin‑ă esen‑ială pentru programa şcolară a disciplinelor de informat
men‑inerii pasului cu progresele realizate în domeniu. Trebuie să rema
că există o tendin‑ă (cu efecte nu tocmai benefice, după opinia noastră) de re
auneiprogramelaunniveltiin‑ ş ificfoarteridicati ş cuunvolumdecon‑i
amplu. Nu trebuie scăpat din vedere nici un moment faptul că o programă şc
odatăconceputăşiaprobată,esteobligatoriepentruto‑ielevii,darn
dota‑ii ş motiva‑i.Elaborareacurriculumuluiesteînsăunprocescontinuu,c
perioade de schimbări profunde şi care ‑inteşte îndelungi perioade de
Noul curriculum îşi propune să realizeze stabilitatea printr‑un
componenta na‑ională (care vizează trunchiul comun) şi componenta loc
vizează oferta curriculară a şcolii). Elaborarea curriculumului local
componentă esen‑ială a activită‑ii didactice, o rezultantă a efortur
conduceriişcolii,cadrelordidactice,elevilor,părin‑ilor,precumşiale
sociali viabili.
Prezentămîncontinuareocompara‑ieîntrecaracteristicilecurr
imediat anterior şi cele ale curriculumului actual.

Curriculumul anterior:
• A fost centrat pe con‑inuturi.
• Formularea obiectivelor viza în mod direct atestarea ‑ profe
tului.
• Con‑inuturile învă‑ării erau aceleaşi pentru to‑i elevii.
• Absen‑a cooperării între elevi în realizarea unei aplica‑ii era o re
• Existau con‑inuturi didactice fixe, neadaptabile la resursele l

Curriculumul actual permite:


• Centrareapera‑ionalizareaactivităilor
‑ deînvăare,
‑ înfunc‑iedecompe
şi de competen‑ele specifice.
32 DIDACTICA PREDĂRII INFORMATICII

• Formularea obiectivelor, realizată în termeni de competen‑ ‑ e şi de c


viduale.
• Oferirea unei palete largi de activită‑i în cadrul curriculumulu
prin care elevul îşi poate acoperi propria sferă de interese.
• Încurajarea cooperării între elevi prin activită‑i de grup cu asu
individuale pentru realizarea unei aplica‑ii.
• Adaptarea con‑inuturilor la resursele locale.

Prezentăm în continuare câteva programe analitice la disciplin


aflate în vigoare în prezent.

Disciplina informatică – clasa a IX‑a


(Programa avizată de MENCŞ; http:/ www.edu.ro)

Filierateoreticăprofil
, real,specializările:Matematică‑informatic

matică
Filieravoca‑ională,profilmilitar,specializarea:Matematică‑inform
informatică

Nota de prezentare
Prezentul document con‑ine programa şcolară pentru disciplina ‑ in
diatăînfilierateoretică,laprofilulreal,specializareamatematic ‑
siv informatică , precum ş i la filiera voca‑ ională , profil militar, s
matematică‑informatică intensiv informatică, prevăzută săptă
o oră mânal cu
pentru
activităţi teoretice şi 3 ore pentru activităţi practice, în conformitate cu art. 9. din
OMECI0/16. 3 2049.
Studiul disciplinei informatică se va desfăşura cu întregul colec
clasei pentru activită‑ile teoretice şi cu colectivul de elevi ‑ org
gatoriu în laboratorul de informatică, pentru activită‑ile practic

Competenţele‑cheie europene vizate prin studiul disciplinei


Pe baza rezultatelor studiilor efectuate la nivelul Comisiei ‑
bilite opt competen‑e‑cheie, fiind precizate, pentru fiecare compete

tin‑ele, deprinderile şi aptitudinile care trebuie dobândite, res
în procesul educa‑ional.
Aceste competen‑e‑cheie răspund obiectivelor asumate pentru ‑ d
melor educa‑ionale şi de formare profesională în Uniunea Europeană şi, ca u
stau la baza stabilirii curriculumului pentru educa‑ia de bază.
Principalelecompeten‑e‑cheieeuropenevizateprinstudiul ‑ disc
peten‑e în matematică şi competen‑e de bază în ştiin‑e şi tehnologie; compe
digitale.
CURRICULM, INSTRUIRE, EVAAR
LU E 33

Competenţe generale:
1 . Identificarea conexiunilor dintre informatică şi societate.
2 . Identificarea datelor care intervin într‑o problemă şi a rela‑iilo
3 . Elaborarea algoritmilor de rezolvare a problemelor.
4 . Aplicarea algoritmilor fundamentali în prelucrarea datelor.
5 . Implementarea algoritmilor într‑un limbaj de programare.

Valori şi atitudini:
1 . Exprimareaunuimoddegândirecreativînstructurareaşirezolva
2 . Conştientizarea impactului social, economic şi moral al informati
3 . Formarea obişnuin‑elor de a recurge la concepte şi metode informa
algoritmic specifice în abordarea unei varietă‑i de probleme.
4 . Manifestarea unor atitudini favorabile fa‑ă de ştiin‑ă şi de cunoaşte
5 . Manifestarea ini‑iativei şi disponibilită‑ii de a aborda sarcini v

Competenţe specifice şi conţinuturi:


1 . Identificarea conexiunilor dintre informatică şi societate
Competenţe specifice Conţinuturi
1. Identificarea aplica‑iilor informaticii
Definireaîn
informaticii ca ştiin‑ă
via‑a socială Rolul informaticii în societate
1.2 Recunoaşterea situa‑iilor în care
‑ Studii
este nedecazaleunorsitua‑iisociale,
‑ îna
cesară prelucrarea algoritmică a informa‑
dare informatizată
iilor

2 . Identificarea datelor care intervin într‑o problemă şi a rela‑iilo


Competenţe specifice Conţinuturi
2.1 Descrierea unei succesiuni de opera‑
Date cuiicare lucrează algoritmii (constan
princareseob‑in,dindateledeintrare,
variabile,
datele expresii)
deieşire Opera‑ii asupra datelor (aritmetice, lo
rela‑ionale)

3 . Elaborarea algoritmilor de rezolvare a problemelor


Competenţe specifice Conţinuturi
3.1   Analizarea enun‑ului unei probleme
Etapeleşirezolvării problemelor. Exemple.
stabilirea paşilor de rezolvare a No‑problemei
iuneadealgoritm.Caracteristici.Exemp
3.2   Reprezentareaalgoritmilorîn Reprezentarea
pseudocod algoritmilor. Pseudocod.
3.   Respectarea principiilor Principiile
programă rii programării structurate. St
structurateînprocesuldeelaborare ‑ debază:structura
aalgorit liniară,structura
‑ alt
milor vă, structura repetitivă.
34 DIDACTICA PREDĂRII INFORMATICII

Algoritmi elementari.
1. Prelucrarea numerelor :
• prelucrarea cifrelor unui numă ‑ r (de exem
plu, suma cifrelor, testarea proprietă‑i
palindrom etc.)
• problemededivizibilitatede ( exemplu,
­ det
minareadivizorilorunuinumă­narea r,determi
c.m.m.d.c.c./ m.m.m.c.testare
, prima ­litateetc.)
• calculul unor expresii simple ‑ (sume, pro
duse etc.)
2. Prelucrarea unor secven‑e de valori:
• determinare minim/maxim
• verificarea unei proprietă‑i (de exempl
dacătoateelementeledinsecven‑ ‑ ăsunt
mere perfecte etc.)
• calcululunorexpresiiîncareintervin
din secven‑ă (de exemplu: numărarea ‑ ele
mentelor pare/impare etc.)
• generareaşirurilorrecurente(deexemp
şirul Fibonacci)

4 . Implementarea algoritmilor într‑un limbaj de programare


Competenţe specifice Conţinuturi
4.1 Transcrierea algoritmilor din pseudocod
Noţiuni introductive:
într -un limbaj de programare • Structura programelor
4.2 Identificarea necesită‑ii structură
‑ • Vocabularul
rii da limbajului
telor în tablouri • Tipuri simple de date (standard)
4.3 Prelucrarea datelor structurate • Constante, variabile, expresii
4. Utilizarea fişierelor text pentru
‑ • Citirea/
introduscrierea datelor
cerea datelor şi extragerea rezultatelor
Structuri de control:
4.5 Utilizarea unui mediu de programare
• Structura liniară
(pentru limbajul Pascal sau pentru • Structura
limbajulalternativă
C/C++) • Structuri repetitive
Tipuri structurate de date. Tipul tablou:
• Tablouri unidimensionale
• Tablouri bidimensionale
• Algoritmifundamentalideprelucrare ‑
telor structurate în tablouri
• căutare secven‑ială, căutare binară
• sortare
• interclasare
• parcurgerea tablourilor bidimension
linii/coloane
Fişiere text. Definire, operaţii specifice
Mediul limbajului de programare studiat
• Prezentare generală
• Editarea programelor‑sursă
• Compilare, rulare, depanare
CURRICULUM, INSTRUIRE, EVALUARE 35

5 . Implementarea algoritmilor într‑un limbaj de programare


Competenţe specifice Conţinuturi
5.1 Elaborarea unui algoritm de rezolvare a
Aplicaţii interdisciplinare (specifice profilului)
unor probleme din aria curriculară‑ Exemple
a specia
orientative:
lizării • Rezolvareaecua‑ieidegradulIşidegradu
5.2Alegereaunuialgoritmeficient ‑ derezol
al II-lea
vare a unei probleme • Simplificarea frac‑iilor
• Aplica‑ii geometrice (distan‑a dintre d
puncte,aria/perimetrulunuitriunghi ‑
mul corpuri­ lor regulate, centrul ‑ de greut
te al unei mul‑imi de puncte)
• Determinarea primilor n termeni ai unei
progresii aritmetice/geometrice
• Determinareapunctuluideintersec‑iea
mobile în mişcare rectilinie şi uniformă
• Determinarea masei moleculare a un
compus chimic
Analiza eficienţei unui algoritm

Sugestii metodologice
Predarea informaticii va fi orientată spre
rezolvarea de probleme, utilizându‑se
preponderent metode activ‑participative şi punându‑ se accent pe
analiza problemei.
Pentru buna desfăşurare a orelor şi aplicarea programei se sugereaz
activită‑i de învă‑are:
– discu‑ii despre activită‑i cotidiene şi modelarea acestora sub for
bine definite de paşi;
– combinarea unor opera‑ii elementare (paşi) pentru ob‑inerea anumi
complexe în func‑ie de scopul propus;
– explicarea conceptului de algoritm şi a caracteristicilor algor
– explicarea diferen‑ei existente între informa‑ii care reprezint
descriu calea de rezolvare a unei probleme;
– descrierea unui algoritm în limbaj natural;
– prezentareaobiectelorcucareopereazăalgoritmii(constante,va
– clasificarea datelor în date de intrare, de ieşire şi date de mane
– descrierea etapelor rezolvării unei probleme din punct de veder
– prezentarea schemelor logice ca modalitate de reprezentare a a
– prezentarea structurilor de bază în pseudocod;
– exersarea scrierii unor algoritmi simpli, folosind structuri l
repetitive;
– identificareaunorsitua‑iiîncarealegereaunuialgoritmprezin
cu alegerea altuia;
– exersareacreăriişiaplicăriialgoritmilorpentrurezolvareaunor
de elevi în studiul altor discipline şcolare;
36 DIDACTICA PREDĂRII INFORMATICII

– eviden‑ierea greşelilor tipice în elaborarea algoritmilor;


– prezentarea unor exemple de implementare într‑un limbaj de prog
algoritmi elabora‑i de elevi şi executarea acestora pe calculato
– prezentarea mediului de programare (facilită‑i de editare, de co
rulare);
– prezentarea şi exemplificarea elementelor de bază ale limbajului
– activită‑i de dezvoltare a deprinderilor de organizare a informa
– exersarea citirii datelor de la tastatură şi a afişării datelor pe
– exersarea scrierii unor programe simple;
– codificarea structurilor de control învă‑ate în limbaj de progra
– proiectarea unui algoritm şi implementarea acestuia;
– folosirea facilită‑ilor mediului în depanarea programelor;
– implementarea structurilor de tip tablou;
– exerci‑ii de transfer al datelor din/în fişiere text;
– eviden‑ierea analogiilor şi diferen‑elor între citire/scriere ut
standard de intrare/ieşire şi fişiere text;
– testareai ş analizareacomportamentuluiprogramelorpentrudife
– încurajareadiscu‑iilorpurtateîntreelevi,exprimareai ş ascultar

1.2 Teoria instruirii

1.2 Manualele şcolare


Crearea pie‑ei libere a manualelor şcolare şi trecerea de la manua
alternativauînsemnatunpasînainteprinînlăturareauneipoliti
dearealiza(celpu‑in)treimanualealternativelafiecarediscipli
inten‑ia de a atinge un standard minim de diversitate şi calitate
Manualul şcolar reprezintă mijlocul didactic de bază folosit ‑ în pro
‑ământ, este profesorul la purtător al elevului şi principalul mate
acestuia(deşiîninformaticălucrurilenustauîntotdeaunaaşa)Manua .
printre altele, con‑inutul detaliat al programelor şcolare, func‑ia
aceea de informare a elevului, mijlocul său principal de documenta
manuale trebuie să ‑ină seama că acestea ar trebui nu numai să‑l ajute
înve‑e (informatică), ci şi să‑l obişnuiască cu munca/studiul individual. Ma
trebuiesăîndrumeelevulspreogândireindependentăşisă‑lîndemnel
efortului creator. În acelaşi timp nu trebuie să inhibe sau să orient
în anumite direc‑ii.
Omarepartedintrefunc‑iilemanualuluipotfipreluate,în ‑ învă‑ămân
matică,decătrecalculator.Acestapoatefiprivitşicamanual,şicaprofe
tându‑şi atât func‑ia de comunicare de cunoştin‑e, cât şi cea de verific
dar nu încă în mod exhaustiv, i ş cea de evaluare permanentă a gradului re (
CURRICULUM, INSTRUIRE, EVALUARE 37

acumulare acunoştin‑elor.Dacădiscutămdespredocumenta‑iiledefirmă,opin
acesteanuseridică(şinicinutrebuie)laniveluldidacticalmanuale
lorfiindpurinformativşidestinatnuneapăratspecialiştilorsauvi
Tehnicile de învă‑are şi evaluare a nivelului atins, corectarea ‑ depr
pletarea cunoştin‑elor (simultan cu descoperirea lipsurilor) nu po
deprofesor.Manualulareîncăunroldeosebit,şianume măsurăacela de
a gradului
de profunzime în abordarea noţiunilor, precum şi a domeniului ca atare. El ne poate
indicapânălacegraddecomplexitateşidetaliutrebuieîntreprins
Apari‑ia manualelor alternative scoate în eviden‑ă, o dată în plus, ‑ div
telor de vedere în această privin‑ă. Rolul manualului ca mijloc de co
cunoştin‑esediminueazăcontinuuînînvă‑ământulmodern,loculluifiind
mijloace didactice, mai eficiente şi mai atractive: mijloacele audi
informaticii,calculatoarelecuechipamenteperifericespeciale,s
utilizarea unor suporturi de mare capacitate şi cu posibilită‑i ra
(re)găsire a informa‑iei (casete audiovideo, CD‑uri, DVD‑uri, teletext, In
telefonie mobilă etc.). Credem că profesorul şi manualul, ca surse ‑ didact
crate, nu pot fi decât par‑ial înlocui‑i. Toate mijloacele anterior e
auxiliari mai mult sau mai pu‑in eficien‑i, în func‑ie de domeniul‑ şi disci
date. Transformările societă‑ii româneşti din ultimii ani, dezvoltar
informaticii impun o pregătire diversificată a tinerilor în acest do
Disciplina informatică – din cadrul
  profilului matematică–‑informaticătrebuie  
astfel să asigure dobândirea unor cunoştin‑e de informatică la ‑ nivel
rală, necesare continuării studiului, şi a unor cunoştin‑e cu caracter
societatea în care trăim. Pornind de la faptul că nu există domeniu de ac
să nu se prelucreze şi să nu se transmită informa‑ii atât în domeniul res
spre exteriorul lui, informa‑ia este foarte pre‑ioasă, ea trebuie sto
transmisă în condi‑ii care să asigure corectitudine şi exactitate, a
profesional. Indiferent de profesia pe care o va alege un tânăr, cu sigu
nevoie de cunoaşterea modului de utilizare a unui instrumentar i
cunoştin‑elorşideprinderilornecesarevadepinde,desigur,dedomeni
şi cerin‑ele concrete. Este însă o nevoie stringentă de ini‑iere a tine
şcolileînutilizareacalculatoarelorlaunnivelprofesional,peca
nivel de cultură generală.
Dezvoltarea gândirii algoritmice este un prim obiectiv la realizarea ‑ căruia
matica îşi aduce o contribu‑ie esen‑ială şi eficientă. Asemenea matemati ‑
tica dezvoltă gândirea (ra‑ionamentul), care în şcoală, dar şi în via‑a de zi cu zi are
un rol esen‑ial în procesul de învă‑are, în formarea caracterului şi a pe
Aceastanuseleagădoardecunoştin‑eledeprogramare,cişi(aşacumammen‑i
deja) de cunoştin‑ele referitoare la gestionarea bazelor de ‑ date, l
relor de texte etc. Prin specificul ei, informatica este esen‑ ‑ ial le
vidualcuuncalculatorşicontribuie la
dezvoltarea deprinderii de a lucra individual.
Pe de altă parte, prin intermediul re‑elelor de calculatoare este p
informa‑ii mult mai eficient decât prin orice altă metodă
Educarea clasică.
elevilor
38 DIDACTICA PREDĂRII INFORMATICII

în spiritul unei activităţi desfăşurate în grup, în colaborare, se finalizează prin


‑ pre
darea informaticii orientate pe proiecte. Realizarea unor aplica‑ii complexe impun
lucrulîngrup,modularizareaprogramuluişipăstrareacontactelorc
ai grupului. În şcoală se pot crea condi‑ii similare lucrului din via‑
activită‑ilenusedesfăşoarăizolat.Aplica‑iile,proiectele,darşiproduc‑i
sunt întrepătrunse cu o serie de faze de lucru în care calculatorul e
deneînlocuit.Obişnuireaelevilorcuresponsabilită‑iprivindfinaliz
şi asigurarea înlăn‑uirii unor elemente realizate în paralel‑ îi va pre
vitate pe care cu siguran‑ă o vor întâlni în viitor. Educarea elevilor
unor produse utilizabile, pentru dezvoltarea spiritului invent
obiectivimpusdesistemuleconomicîncaretrăim.Indiferentdecon‑in
ceea ce realizează elevul trebuie să func‑ioneze, trebuie să fie utiliza
trebuie să aibă toate calită‑ile unui produs comercial.
Datorită implica‑iei pe care o are azi informatica în toate profes
caracterul ei interdisciplinar . Informatica nu poate fi privită numai ca o disci
independentă şi nu poate fi ‑inută între bariere create artificial. Î
de activitate, rezolvarea problemelorconcrete impune foarte des
Informaticaesteprintrepu‑ineledisciplinecareoferăuninstrume
învă‑area modelării. De asemenea, pune la dispozi‑ie cele mai spectaculo ‑
lită‑i de simulare virtuală, care este o parte a modelării (neclasică şi n
Eleviitrebuiesăîn‑eleagăconexiuniledintreinformaticăşisocietat
săseadaptezedinamiciischimbărilordeterminatedeacesteconexiun

Manualele şcolare avizate de Ministerul Educaţiei şi utilizate sau recomandate


în prezent în funcţie de profil şi specializare

I. Filiera teoretică
1. Profilul real
a) Specializarea matematică‑informatică
Manuale aprobate de minister:
• Mariana Miloşescu, Manual pentru clasele IX‑X. Bucureşti: EDP, 20 4.
• Emanuela Cerchez, Marinel Paul Şerban, Informatică  – Manual pentru clasa
a IX‑a. Iaşi: Polirom, 20136.‑
• Sorin Tudor, Manual de informatică pentru clasa a IX‑a (Pascal şi C++), pro-
filul real. Bucureşti: L&S Infomat, 20 9.
• Sorin Tudor, Vlad Tudor (Hu‑anu) Manual , de informatică pentru clasa a X‑a
(Pascal şi C++), profilul real. Bucureşti: L&S Infomat,12. 0
• Sorin Tudor, Vlad Tudor (Hu‑anu) Manual, de informatică pentru clasa a XI‑a
(Pascal şi C++), profilul real. Bucureşti: L&S Infomat, 20 6.
Auxiliare şi culegeri:
• Carmen Popescu, Vlad Tudor (Hu‑anu) ,
Tehnologia Informaţiei şi a Comunicării
(TIC). Competenţe digitale (vol. I‑II) . Bucureşti: L&S Infomat,14.20
CURRICULUM, INSTRUIRE, EVALUARE 39

Platforme de învă‑are online:


• SistemedegestiuneabazelordedateOracle/SQL(clasaaXII‑a)http:
: /acad
oracle.com.
• Software e‑learning: AeL.

b) Specializarea matematică‑informatică, intensiv informatică


Manuale aprobate de minister:
• Sorin Tudor, Vlad Tudor (Hu‑anu) ,
Manual de informatică pentru clasa a IX‑a
(Pascal şi C++), profilul real (intensiv). Bucureşti: L&S Infomat, 20 9.
• Sorin Tudor, Vlad Tudor (Hu‑anu) Manual, de informatică pentru clasa a X‑a
(Pascal şi C++), profilul real (intensiv). Bucureşti: L&S Infomat,12. 0
• Sorin Tudor, Vlad Tudor (Hu‑anu) ,
Manual de informatică pentru clasa a XI‑a
(Pascal şi C++), profilul real (intensiv). Bucureşti: L&S Infomat, 20 6.
• Mariana Miloşescu, Informatică. Manual pentru clasa a IX‑a, a X‑a (intensiv).
Bucureşti: EDP, 20 4.
• SandaJunea,AdrianaSimulescu, Informatică C++. Manual pentru clasa a XI‑a
(intensiv). Târgovişte: Gimnasium, 20 6.
• CarmenPopescu, Manual de informatică pentru clasa a XII‑a (Oracle).Bucureşti:
L&S Infomat, 270.
• Carmen Popescu, Vlad Tudor (Hu‑anu) ,
Manual de informatică pentru clasa
a XII‑a, profilul real intensiv. Bucureşti: L&S Soft, 270.
• Carmen Popescu, Vlad Tudor (Hu‑anu) ,
Tehnologia Informaţiei şi a Comunicării
(TIC). Competenţe digitale (vol. I‑II). Bucureşti: L&S Infomat,14.20
• Mariana Pan‑îru, Tehnologia Informaţiei şi a Comunicării (TIC) Manual pentru
clasele IX‑X. Bucureşti: BIC ALL, 20 6.
• Radu Boriga, Vlad Hu‑anu, Carmen Popescu, Tehnologia Informaţiei şi a Comu­
nicării (TIC). Manual pentru clasa a XII‑a. Bucureşti: L&S Infomat,. 11 20
Culegeri şi auxiliare:
• Emanuela Cerchez, Marinel PaulProgramarea Şerban, în limbajul C/C++ pen-
tru liceu (vol. I‑IV). Iaşi: Polirom, 20136.‑
• Dana Lica, Mircea Paşoi,Fundamentele programării, culegere de probleme (cla ‑
sele a IX‑a, a X‑a, a XI‑a). Bucureşti: L&S Soft,12. 0
Platforme de învă‑are online:
• SistemedegestiuneabazelordedateOracle/SQL(clasaaXII‑a)http:
: /acad
oracle.com.
• Software e‑learning: AeL.
Căr‑i în format electronic disponibile pe http:/ www.infobits.ro:
• Bacalaureat 2015. Subiecte rezolvate.
• Cătălin Frâncu,Psihologia concursurilor de informatică.
• Victor Mitrana,Bioinformatica.
• Sorin Tudor, Vlad Tudor, Bazele programării în Java.
40 DIDACTICA PREDĂRII INFORMATICII

c) Specializarea ştiin‑e ale naturii


Manuale aprobate de minister:
• Mariana Miloşescu, Informatică. Manual pentru clasele IX‑X. Bucureşti: Editura
Didacticăi ş Pedagogică.40 2,
• Emanuela Cerchez, Marinel Paul ŞInformatică. erban, Manual pentru clasa
a IX‑a. Iaşi: Polirom, 20136.‑
• Sorin Tudor, Manual de informatică pentru clasa a IX‑a (Pascal şi C++), pro-
filul real. Bucureşti: L&S Infomat, 20 9.
• Sorin Tudor, Vlad Tudor (Hu‑anu) Manual , de informatică pentru clasa a X‑a
(Pascal şi C++), profilul real. Bucureşti: L&S Infomat,12. 0
• Sorin Tudor, Vlad Tudor (Hu‑anu) Manual, de informatică pentru clasa a XI‑a
(Pascal şi C++), profilul real. Bucureşti: L&S Infomat, 20 6.
• Mariana Pan‑îru, Tehnologia Informaţiei şi a Comunicaţiilor. Manual pentru cla-
sele IX‑X, TIC3 (XI), TIC4 (XII). Bucureşti: BIC ALL, 20 6.
Auxiliare şi culegeri:
• Carmen Popescu, Vlad Tudor (Hu‑anu) ,
Tehnologia Informaţiei şi a Comunicării
(TIC). Competenţe digitale (vol. I‑II) . Bucureşti: L&S Infomat,14.20
Platforme de învă‑are online:
• SistemedegestiuneabazelordedateOracle/SQL(clasaaXII‑a)http:
: /acad
oracle.com.
Software e‑learning: AeL.
2. Profilul uman. Specializări: ştiin‑e sociale, filologie
Manuale aprobate de minister:
• Mihaela Garabet, Ion Neacş u,
Tehnologia Informaţiei şi a Comunicaţiilor TIC2,
tehnici de documentare, tehnoredactare asistată de calculator (clasa a XII‑a).
Bucureşti: BIC ALL, 270.
• Mihaela Garabet, Ion Neacş u,
Tehnologia Informaţiei şi a Comunicaţiilor TIC3,
tehnoredactare asistată de calculator (clasa a XII‑a).Bucureşti:BICALL,270.
• Mariana Pan‑îru, Tehnologia Informaţiei şi a Comunicaţiilor. Manual pentru cla-
sele IX‑X, TIC3 (XI), TIC4(XII). Bucureşti: BIC ALL, 20 6.
• DanielaMarcu,OvidiuMarcu, Tehnologia Informaţiei şi a Comunicaţiilor TIC3,
tehnoredactare asistată de calculator (clasa a XII‑a).Bucureşti:EdituraGIL,.7 02
• Mariana Miloşescu, Tehnologia Informaţiei şi a Comunicaţiilor TIC4. Manual
pentru clasele XI‑XII. Bucureşti: Editura Didactică şi Pedagogică, 20 6.
Auxiliare şi culegeri:
• Carmen Popescu, Vlad Tudor (Hu‑anu) ,
Tehnologia Informaţiei şi a Comunicării
(TIC). Competenţe digitale (vol. I‑II) . Bucureşti: L&S Infomat,14.20
Platforme software e‑learning: AeL
II. Filiera tehnologică, toate profilurile, toate specializările
Manuale aprobate de minister:
• Mariana Miloşescu, Tehnologia Informaţiei şi a Comunicării. TIC4. Manual
pentru clasele XI ‑XII. Bucureşti: Editura Didactică şi Pedagogică, 20 6.
CURRICULUM, INSTRUIRE, EVALUARE 14

• Mariana Pan‑îru,Tehnologia Informaţiei şi a Comunicării (TIC). Manual pentru


clasele IX‑X,TIC3 (XI), TIC4 (XII). Bucureşti: BIC ALL, 20 6.
Auxiliare şi culegeri:
• Carmen Popescu, Vlad Tudor (Hu‑anu) ,
Tehnologia Informaţiei şi a Comunicării
(TIC). Competenţe digitale (vol. I‑II) . Bucureşti: L&S Infomat,14.20
Platforme software e‑learning: AeL.
III. Filiera voca‑ională, toate profilurile, toate specializările
Manuale aprobate de minister:
• Mariana Miloşescu, Tehnologia Informaţiei şi a Comunicării (TIC4). Manual
pentru clasele XI‑XII. Bucureşti: Editura Didactică şi Pedagogică, 20 6.
• Mariana Pan‑îru, Tehnologia Informaţiei şi a Comunicării (TIC). Manual pentru
clasele IX‑X, TIC3 (XI), TIC4 (XII). Bucureşti: BIC ALL, 20 6.
Auxiliare şi culegeri:
• Carmen Popescu, Vlad Tudor (Hu‑anu) ,
Tehnologia Informaţiei şi a Comunicării
(TIC). Competenţe digitale (vol. I‑II) . Bucureşti: L&S Infomat,14.20
• Utilizarea aplica‑iilor free, disponibile online, pentru prelucr

Pentrudisciplinatehnologiainforma‑ieii ş comunicăriiTIC)
( dincurricu
(trunchiul comun), con‑inuturile corespunzătoare cerin‑elor probei
digitaledincadrulexamenuluidebacalaureatsuntdisponibileo
competentedigitale.ro,oresursăaccesibilăşiamplăpentruactivitat ‑
‑are.
În urma implementării Programului SEI (Sistem Educa‑ional Informat
învă‑ământul preuniversitar românesc, 13.0 de şcoli au fost dotate cu r
calculatoare şi au fost distribuite pachete de lec‑ii multimedia i
de lec‑ii la discipline variate, printre care şi informatica). Lec‑iile a
comisiidespecialitatedincadrulMENCŞşiintegrateîntr‑oplatformăAe
e‑Learning) instalată pe re‑ele de calculatoare din toate liceele. ‑ L
nibileonlinepentruelevii ş profesoripeportaluleduca‑ionalSEI,http:p /
Metodologia de aplicare a programei pentru disciplina informati
cont de faptul că studiul ei la profilul matematică‑informatică are a
teoretic, cât şi practic, fiind organizat după cum urmează:
– în trunchiul comun, din totalul de (două) ore aprobate, o oră cu caract
se poate desfăşura în clasă sau în laborator, cu întregul colectiv a
doua oră, cu caracter practic, se va desfăşura în laboratoarele de in
grupe de0‑15 elevi, fiecare grupă fiind asistată de câte un profesor;
– în curriculumul la decizia şcolii, orele se vor organiza în laborat
clasă.

Profilul matematică‑informatică poate func‑iona în licee care dispu


un laborator de informatică dotat corespunzător. Numărul de laborat
42 DIDACTICA PREDĂRII INFORMATICII

asigure acoperirea orelor de laborator solicitate atât de tr


curriculumulladeciziaşcolii.Programapentrudisciplinainformati ‑
matică‑informatică, este orientată pe competen‑e, profesorul având po
alegeactivită‑ilespecificeatingeriiacestora.Con‑inutulînvă‑ăriip
obligatoriu este conceput astfel încât să asigure un bagaj minim
deprinderi din domeniul informaticii, în timp ce curriculumul la de
oferi module derivate din materia studiată, teme care nu sunt incl
trunchicomunsautemeintegratoarepentruariicurriculare ‑ cua
matică.

1.2 Structura lecţiei


Lec‑ia este forma fundamentală de organizare individualizată‑ a proces
ire este lecţia, indiferent de durata sa temporală. La con‑inutul propriu
lec‑ii se adaugă atât aplicarea metodelor alese de profesor, cât şi
careacestaîşipropunesăleformeze.Nupoateficonsideratălec‑ iecevacar
leagă
ceeaces‑astudiatînainte,cunoştin‑eledobânditeanterior,decuno
transmiseîncontinuare.Lec‑iaareuncaracterunitarprincon‑inutule
ceseaplică,pringraduldeparticipareaelevilorlaprocesulinstr
cum preambulultrebuiesăcon‑inăoprezentareclarăaceeaceurmează,oricel
trebuie încheiată printr‑ rezumat, ounrecapitulare a întregului volum de cunoştin‑e
abordate pe întreg cuprinsulfixare, lec‑prin
iei, şicare
o să se finalizeze activita
întreprinsă.Artrebuianticipatenecesitateaintroduceriiunor
abordare a lec‑iilor următoare. Considerăm că unitate o asemenea
de învăţare ar
trebui să dureze 90‑100 de minute, fără întreruperi. Lec‑ia nu este numai o formă de
organizareaactivităii ‑ depredare‑învăare, ‑ ciiş osuccesiunedeetapebin
(dedorit)realizate.Evenimenteleimprevizibile,apari‑iaunorparti
care trebuie stăpânite sunt inevitabile. O cerin‑ă metodică lor:
este cla
de comunicare/transmitere de cunoştin‑e, de studiu individual, de
verificare, de recapitulare etc. Delimitările nu sunt însă stricte, fi
împletire (care se doreşte armonioasă) de metode şi tehnici ce concură l
obiectivelor propuse, raportul în favoarea uneia sau alteia dint
de stabilit în final şi cu atât mai mult ini‑ial. Vom puncta totuşi c
esen‑ialealedesfăşurăriiuneilec‑ii,subliniindrelativitatea ‑ ace
tan‑ă, ordine):
• Momentul organizatoric impune, în primul rând, verificarea ‑ prezen
‑iilordedesfăşurare(existen‑amaterialuluididacticnecesar, ‑ inc
latoare, soft etc.). Ideal ar fi ca aceasta să se facă în pauza dintre ore
unpersonalspecializat.Dinacest pauzelemotiv,
ar trebui să fie de minimum 20 de
minute. Ideală ar fi verificarea temei pentru acasă şi identificarea d
întâmpinate în efectuarea ei.
CURRICULUM, INSTRUIRE, EVALUARE 43

• Elevii sunt apoi asculta‑i din materia predată în lec‑ia anterioa


se înlăture anomaliile de în‑elelegere apărute în procesul de asim
• Se predă lec‑ia nouă (sau are loc fixarea unor cunoştin‑e anterioare).
• Se fixează cunoştin‑ele (noi) prin (alte) exerci‑ii.
• Se stabileşte tema pentru acasă.

O lec‑ie poate fi apreciată ca necorespunzătoare dacă, de exemplu, se


timpul”cumomentulorganizatoric,inclusivcuverificareatemeişic
de profesor în legătură cu neefectuarea acesteia. Cel mai mult timp t
comunicării cunoştin‑elor noi şi fixării acestora prin exerci‑ii. Tema pent
trebuie dată în grabă (în pauză sau când se sună).

Observaţie
Volumul de muncă necesar efectuării temelor pentru acasă trebuie să
limiterezonabile(existăsuficienterecomandărilegalepentrusarci

Unnumărmaimaredeexerci‑iiducelalucrudemântuială,copieri,aban
întregii teme, refuz fa‑ă de abordarea temei. Tema trebuie să fie pe
‑ măsura
tă‑ilorelevilorşilegatădeînsuşireaşiaplicareacunoştin‑elorpredat
diferen‑iat, atunci când între elevii aceleiaşi clase există difere
priveşte capacitatea sau pregătirea lor. Tema trebuie să fie înso‑ ‑ ită d
tătoare, de indica‑ii potrivite. Când tema presupune artificii de
pricepere deosebită, trebuie ca elevilor să li se atragă aten‑ia asup
(deexemplu,prinexerci‑iimarcatecu*,adicădificile).Mul‑ieleviînva‑ăpede
metodele de rezolvare a unor probleme şi îşi formează şabloane pe care
automat. Cu siguran‑ă că şi algoritmii importan‑i, rezultat al analize
îndelungate, trebuie re‑inu‑i, dar uzându‑se de logica internă a acest
are(şi)obliga‑iasă‑iînve‑epeelevicumsă‑şifacătema,nusăcreezeunclimatcar
impune angajarea unui meditator
(mediator păgubos între elev şi profesor şi nu
prelungire a acestuia din urmă, în cazuri extreme). Temele pentru aca
scopul doar dacă pot fi controlate în permanen‑ă de către profesor.

1.2 3 Calitatea cunoştinţelor asimilate


Procesul de comunicare a cunoştin‑elor trebuie să aibă ca efect
‑ formar
zentări corecte despre lucruri şi fenomene reale, însuşirea de no‑iu
în‑elegerea legilor care reglementează raporturile dintre fenomen
permit exprimarea acestor raporturi într‑un mod clar. Formalismul e
dintre pericolele care pândesc procesul instructiv‑educativ şi
• Lipsa legăturii evident exprimate dintre formă şi con‑inut.
4 DIDACTICA PREDĂRII INFORMATICII

• Memorarea mecanică a cunoştin‑elor şi predominarea formei exterioar


esen‑eicon‑inutului(schimbareanota‑ieipoateprovocauneoriad
• Predominarea memorării asupra în‑elegerii.
• Supremaţia şablonului asupra inventivită‑ii.
• Ruperea teoriei de practică.

Evitarea formalismului excesiv se realizează mai ales printr‑o în‑e


a fenomenului abstractizării, o urmărire şi o conştientizare a scopulu

‑ii abordării temei şi o subliniere a consecin‑elor realizării ei. Treb
folosireaşabloanelor,chiardacăexistăsitua‑iiidenticecareserepe
logic trebuie să ne înso‑ească paşii în permanen‑ă.
Un alt impediment în calea în‑elegerii (generat de abstractizar
eleviislabi,care,laconstruireaprimelorprogrameîntr‑unlimbajd
dorin‑alorjustificatădeamen‑inepasulcuceilal‑ielevi,depununef
învă‑ând pur şi simplu pe de rost programele făcute în clasă. Dacă acest vi
tehnică de învă‑are nu este depistat la timp şi înlăturat, în special p
către elev sub supravegherea profesorului a unor programe simple
fiecare dată), cu greu va mai putea fi corectat.

1.2 4 Formarea limbajului de specialitate


Desigur, limbajul este un instrument prin care oamenii comunică, fa
informa‑ii,idei,seîn‑elegîntreei.Acestaestenemijlocitlegatdegân
i
ş fixândîncuvinterezultateleunoractivităi. ‑ Suntimplicitnecesar
o exprimare lipsită de ambiguită‑i, în orice domeniu şi cu atât mai
‑ mult în
tică, unde limbajul natural este un intermediar important în int
de calcul. Formarea limbajului de specialitate este (şi) o consecin‑ă a u
instruire de lungă durată. Profesorul trebuie să înlăture în permanen‑ă o
deexprimarei ş săclarificeoriceneîn‑elegereaunorno‑iuni,săreformulezecor
afirma‑ielegatădeno‑iunii ş fenomeneincorectexprimate.Supraveghereaîncăd
miciducelaformareaunuireflexcritic,marcatdeoaten‑iesporităatu
seexprimăincorect,şilaremarcareacelormaisubtileşiascunseerorid
Formarea unei exprimări corecte scrise şi orale se realizează prin:
• Exprimarea corectă a profesorului însuşi, care
abconstituie
initio) un model(
pentru elevi. De aceea, profesorul trebuie să‑şi formuleze cu grijă afi
• Supraveghereapermanentăaexprimăriielevilori ş corectareacontinuăa
• Încurajarea libertă‑ii de exprimare, cu argumentarea ra‑ionamen
eleviirăspundtelegraficsaunumai„încep”săseexprime.Cumaceştia
greoi,eisuntuneoriîntrerup‑işiprofesorulcontinuăideeaformulâ
în‑elegeriii
ş ra‑ionamentuluisău.Acestmoddeabordareadialoguluie
are efecte negative în legătură cu formarea limbajului de speciali
CURRICULUM, INSTRUIRE, EVALUARE 45

lui de către elev. În plus, prin interven‑ia prematură a profesorulu


întrerupe firul ra‑ionamentelor, el făcând cu greu fa‑ă efortului d
în‑elege ra‑ionamentul profesorului.

Este absolut necesară asigurarea unei anumite „libertă‑i indiv


riscul unor confuzii momentane. Putem vorbi astfel maiexprima- în amănunt des
rea fluentă în limbajul de specialitate şi exerciţiul oral.Prezentareaoralăasolu‑iil
unor probleme înainte de abordarea lor strict ştiin‑ifică are menir
totalitateaspecteleneclarealeproblemelor.Limbajulnatura
de reprezentare a algoritmilor   – prin urmare, o prezentare în limbaj natural‑ a
rei activită‑i ce urmează a fi desfăşurată clarifică şi uşurează multe situa
Exerciţiul oral are o însemnătate deosebită din punct de vedere educativ
aten‑ia,capacitateadeconcentrare,prezen‑adespirit,ini‑iativac
orale îmbunătă‑esc randamentul multor activită‑i şi contribuie în m
formarea limbajului de specialitate. Sunt necesare totuşi anumit
în folosirea exerci‑iilor orale. Astfel, acestea trebuie:
• să fie alese cu grijă, astfel încât să nu presupună un nivel ridicat de
sau acumularea unui volum mare de informa‑ii noi;
• să fie prezentate gradat;
• să nu presupună calcule mentale lungi şi complicate;
• să poată fi folosite cu un bogat material intuitiv/ilustrativ.

Înfinal,profesorultrebuiesăpunăaccentpeaspectelecareriscăsădev

1.2 5 Caietele elevilor

De ce notează elevii în caiete? De regulă, elevii şi profesorii acceptă că e


caiet care con‑ine partea teoretică şi aplica‑iile ilustrative, ‑ iar
nat exerci‑iilor individuale. Dacă există manual, la predare, elevii tr
doarexempleleilustrative,şinuparteateoreticăEi . noteazădoarconc
simplificată a lec‑iei. Când profesorul expune materia altfel decât
trebuie să o noteze complet. Pe de altă parte, notarea în caiete treb
doarceeaceprofesorulscriepe„tablă”calculator ( personal,teletext,t
Explica‑iile orale lungi şi complicate, chiar dacă trebuie să se evite
caiete, îşi au rolul lor. Astfel de notări sunt grele pentru elevii di
efortul lor se canalizează în direc‑ia notării, şi nu a în‑elegerii no‑iun
Trebuie exclusă ideea copierii textelor din manuale pe caiete, exce
care se realizează o sinteză şi o sistematizare a lec‑iei din manual. O ate
trebuie acordată
Caietului de aplicaţii practice de laborator. Datorită caracterului
aplicativ al anumitor ore, există tendin‑a de a se nota pu‑in şi de cele
46 DIDACTICA PREDĂRII INFORMATICII

secven‑e izolate şi necorelate între ele. Un caiet de aplica‑ii pract


trebui să con‑ină la fiecare lec‑ie:
• unrezumatalcunoştin‑elorteoreticenecesarerealizăriiaplica‑ie
• enun‑ul problemei a cărei rezolvare constituie obiectul activi
asupra „mediului concret”;
• algoritmul de rezolvare, descris în limbaj natural/pseudocod/sc
• rezolvarea implementată sau acea parte din solu‑ie care constit

rii (programul sau secven‑ele cele mai importante, cu precizarea în c
s‑a realizat în acea etapă);
• un rezumat al cunoştin‑elor nou‑dobândite în urma rezolvării probl

Chiar dacă ideea copierii pe caiete a programelor întocmite la or


practice de laborator poate fi supusă unor critici severe, aceste t
totuşi biblioteca la purtător a elevului, cel mai rapid accesibilă
‑ , cu
gramele să fie înso‑ite de explica‑ii corespunzătoare. Sursele programel

‑ul problemelor şi specifica‑iile de programare sunt texte moarte. Ma
al metodei constă în timpul pierdut cu copierea pe caiete (nu exclud
electronice moderne), dar acesta este compensat de ob‑inerea unui
corect şi reprezentând o implementare verificată.
Esterecomandatăi ş constituireaunuiportofoliuînformatelectro
toate aplica‑iile realizate în cadrul orelor de laborator, porto
(şi, eventual, comentat), la fiecare lec‑ie.

1.3 Teoria evaluării

Credem că este benefic să ne oprim pu‑in asupra recapitulărilor, înaint


mai în detaliu despre evaluare.

1.3 Repetare, recapitulare, evaluare


Repetarea materiei parcurse serveşte la împrospătarea cunoştin‑el
la formarea de noi corela‑ii, la reluarea materiei predate într‑un c
uneoricucompletareaunorcunoştin‑e.Repetarealec‑ieisauchiarale
se poate face înainte de predarea unei lec‑ii noi, la sfârşitul unu
semestrusaualanuluişcolarsauchiarpremergătorsus‑inerii ‑ unuie
tar. Recapitularea ar trebui să se realizeze după un plan dinainte st
Procesul de învă‑ământ se desfăşoară într‑un cadru organizat şi bine de
cuprinde următoarele etape:
predare, învăţare, evaluare. Deşi etapele se desfăşoară
separat, proiectarea lec‑iilor nu poate fi făcută fără a avea în vedere t
legate de acestea, ele întrepătrunzându‑se. După cum ştim, proiectare
47

începecustabilireaobiectivelorşiarelabazăprogramaşcolarăadiscipli
trebuie să se încadreze în numărul de ore stabilit prin programă.
Evaluarea este o componentă foarte importantă a procesului de î
evalua rezultatele şcolare înseamnă a determina, a cuantifica ‑ măsur
vele programului de instruire au fost atinse, precum şi eficien‑ ‑ a met
dare‑învă‑are folosite 
– pe scurt, înseamnă a evalua randamentul şcolar. Ac‑iu
efectuate în procesul de evaluare se referă la măsurare/cuantific
rezultatelor şi, evident, la adoptarea unor decizii corespunzătoa
măsuraresaucuantificareserealizeazăcuajutorulunorprocedees
sub numele de metode şi instrumente de evaluare. Interpretarea ‑ şi
tatelor evaluării sunt strâns legate de metodele şi instrument
precum şi de factori externi ce ‑in de vârsta elevilor, mediul de dezvo
etc.Înmodnormal,aprecierearezultatelorevaluăriivacon‑ine ‑ douăe
tante: elevii evalua‑i, pe de o parte, disciplina şi profesorul titula
De fapt, evaluarea, componentă esen‑ială a procesului de învă‑ământ, înde
func‑ii bine definite:
• Funcţia de constatare şi diagnosticareaperforman‑elorob‑inutedeelevi,expli
prin factorii şi condi‑iile care au condus la succesul sau insucces
sunt de o mare diversitate (psihologică, pedagogică, socială etc. ‑ ). Permi
tarea lacunelor şi greşelilor elevilor, precum şi înlăturarea acest
• Funcţia de reglare şi perfecţionare a metodologiei instruirii pe baza infor
ob‑inute din explicarea factorilor şi condi‑iilor care au determi
învă‑ătură.
• Funcţia de predicţie şi decizie vizează desfăşurarea viitoarelor activită‑i di
şi performan‑ele ulterioare ale elevilor.
• Funcţia de selecţie şi clasificareaelevilorînraportcurezultateleşcolare
aceasta permi‑ând clasificarea şi/sau ierarhizarea elevilor.
• Funcţia formativ‑educativă,deameliorareametodelordeînvă‑arefolosited
de stimulare şi optimizare a învă‑ării.
• Funcţia de perfecţionare a întregului sistem de învă‑ământ.

Ca orice altă activitate didactică, evaluarea cunoştin‑elor


‑ ele
pecte normele impuse de minister. În general, aceste norme (direct
stipulează o evaluare ritmică pe parcursul semestrelor. În func‑
‑ ie de
cularită‑ile psihointelectuale ale elevilor şi de specificul ‑ fiec
mentele de evaluare pot fi:
a) probe (lucrări) scrise;
b) probe (verificări) orale;
c) activită‑i practice;
d) referate şi proiecte;
e) interviuri;
f) alte instrumente stabilite de catedrele/comisiile metodice
sau elaborate de minister sau de inspectorate.
48 DIDACTICA PREDĂRII INFORMATICII

Aplicarea uneia sau alteia dintre formele de evaluare depinde


forma răspunsului şi de caracteristicile disciplinei respective.
formedeevaluaresuntceleoraleşicelescrise,privitelamodulcla
de evaluare pot fi aplicate individual saufrontal. Încercând să comparăm cele două
metode, vom constata avantaje şi dezavantaje de fiecare parte ‑ (în ca
para‑ii intervin atât personalitatea cadrului didactic, cât şi s
disciplină tehnică impune în general un mod direct de gândire şi exprim
uneori ca mod un algoritmic de prezentare a cunoştin‑elor, în timp ce o disci
„netehnică” cere abilită‑i suplimentare de exprimare a cunoştin‑el
discu‑ii, aceste comparări (evaluare orală, evaluare scrisă) par să fie
corecte, dar practica demonstrează că nu putem renun‑a la nici una d
favoarea alteia.
Verificarea orală, cel mai frecvent folosită, are anumite avantaje car
Înprimulrând, favorizează dialogul, elevulputândsă‑şiargumentezerăs
săparticipelaoconfruntaredeideicuîntreagaclasă,iarprofesorul
uşurin‑ă erorile şi poate interveni şi corecta „pe loc”. Verificarea ora
numeroase limite: întrebările nu au toate acelaşi grad de dificulta
emotivi şi se blochează (mai ales atunci când sunt ironiza‑i de‑ profeso
rile lor stârnesc ilaritate în clasă; timpul nu permite o verifica ‑
nutuluipredat.Maimult,comportamentulşistareapsihicăaprofesoru
notarea. Majoritatea specialiştilor în domeniu consideră că verifi
gradînaltdesubiectivism.Subiectivăsaunu,aceastămetodăesteuna
caredaucadruluididacticposibilitateadeacorectadeficien‑ ‑ el
dare a cunoştin‑elor, elevul putând exersa şi expune direct no‑iunile
nu are mult timp la dispozi‑ie pentru a‑şi alege cuvintele potrivit
obligat să redea cunoştin‑ele în mod direct. De asemenea, această met
cadrului didactic posibilitatea de a face o incursiune în ‑ univers
vului pentru a sesiza din timp no‑iunile care creează dificultă‑i în î
corectă. Considerăm ca un mare avantaj al acestei metode crearea
comunicare a elevului cu lumea exterioară. Dezavantajul este că profe
testa decât un număr restrâns de elevi, iar în cazul unei programe ‑ a
rie multă, pu‑ine ore alocate), el se vede în situa‑ia de a o folosi foarte
putândpercepedisciplinarespectivăcafiindruptăderealitate.În
citi o carte şi fără a i se povesti dinainte ac‑iunea, dar nu oricine este
oricine poate „puncta” esen‑ialul.
Verificarea scrisă se utilizează sub formalucrări unorde scurtă durată, lucrări
tip obiectiv, lucrări de una sau două ore, semestriale (care sunt anun‑ate dinainte
pregătite şi în clasă ),
lucrări scrise tip examen. Cercetările au dovedit că evaluar
formativă în formă scrisă după fiecare capitol, combinată cu verificările o
deosebitdeeficientăşistimulativă.Probelescrisesuntpreferate
pentru că asigură un grad mai mare de obiectivitate la notare, ofer
emotivi sau celor care gândesc mai lent posibilitatea de a ‑ se expr
en‑a‑idefactoriperturbatori,asigurăevaluareaunuinumărmaredeel
CURRICULUM, INSTRUIRE, EVALUARE 49

au acelaş i grad de dificultate ş i favorizează realizarea compară ri


Dezavantajelemetodeisuntlegatedefaptulcăprofesorulnupoate
peloceroriledescoperite,elurmândsăofacăabialadiscutarealucr
potficorecta‑ipentruanumiteconfuziisaucândrăspunsulnuestecompl
incomplete pot genera şi diferen‑e de apreciere şi notare. Metoda de
verificare scrisă presupune în general un grad mai mare de obiectivi
cadrului didactic în momentul aprecierii lucrării, dar are marele d
comunicarea dintre elev şi profesor. Această metodă îşi dovedeşte efi
momentul în care este utilizată împreună cu verificarea orală‑ sau cu me
ului. Verificările scrise pot fi din lec‑ia curentă sau din materia unu
verificareascrisăvizeazămaimultelec‑ii(uncapitoletc.),cadruldida
anun‑eeleviiîntimp util
lucrări ( eventual
anunţate) , săpunctezeceeaceseurmăreşt
înmodspecialîncadrultestuluirespectiv.Laurmaurmei,profesorul
elevii răspund bine cerin‑elor sale şi îi poate aprecia cu note bune, i
încredereînfor‑elepropriişi,deasemenea,înprofesor.Profesorulnuva
astfel ca „un vânător” de elevi ce nu‑şi pregătesc lec‑iile. Verificările s
expunerea unei anumite tematici (în general, o lec‑ie sau două) sau pot
sub formă de teste‑grilă. Un rol important în reuşita acestei metode ‑ îi
lui didactic, responsabil cu alegerea subiectelor şi formularea co
Între cele două forme de verificări scrise există o diferen‑ă foarte mare
în scris a unei anumite tematici cere din partea elevului un efor
trebuie să prezinte tematica în timpul alocat, deci activitatea d
elevului. Verificarea scrisă cu ajutorul testului‑grilă presupune
întrebărilor şi răspunsurilor posibile din partea profesorului, ast
materia anun‑ată pentru test, să dea elevilor posibilitatea să se î
alocat testului. Se recomandă ca întrebările cu răspunsuri multiple
celecuunsingurrăspunsşideasemeneasemnalateverbalîncadrulte
de notare pentru un test‑grilă trebuie anun‑ată de către profesor (d
se acceptă răspunsuri par‑iale şi în ce condi‑ii nu se acceptă aceste răsp
ştie că elevii îşi redactează răspunsurile şi în func‑ie de strategia profe
eleviiştiucăsuntacceptaterăspunsuripar‑ialelauntest‑grilă(tes
răspunsuri posibile), atunci ar putea încerca să completeze toate ‑ răsp
ran‑a ob‑inerii unui punctaj cât mai mare.
Să analizăm în continuare următoarele scenarii pentru teste‑gril
răspunsuri posibile. Fiecare întrebare din testul‑grilă este nota
profesorulanun‑ăcăacceptăşirăspunsuripar‑iale,fărăamaispecificaşialtc
aceste condi‑ii, o întrebare cu patru răspunsuri poate fi abordată de
selectarea tuturor celor patru răspunsuri. Calculul nu amelevului
fost e
anunţaţi că erorile se penalizează, deci ar trebui să obţin punctajul maxim.Bineîn‑eles
că este ipotetic acest lucru şi că în realitate nu se poate admite aşa
problemă, profesorul anun‑ă următoarea strategie de notare: pentru fi
incorectselectatsescadepondereaunuirăspunscorectdinvaloa
elevului poate dacăfi:
la o întrebare de 15 puncte cu patru răspunsuri posibile trei
50 DIDACTICA PREDĂRII INFORMATICII

sunt corecte, atunci prin selectarea tuturor răspunsurilor obţin 10 puncte; dacă sunt
două corecte, obţin 0 (zero) puncte şi atunci voi selecta doar trei întrebări la toate
testele ce conţin patru răspunsuri posibile, asigurându‑mi astfel un minim de 5 puncte
pe întrebare. Şi astfel de scenarii pot continua. Deşi par simple, testel
dovedescafidestuldedificileîncazulîncarenuseacceptălanotare
este mecanismul de func‑ionare a testelor‑grilă) decât testele ca
corect. Primul test‑grilă aplicat la o clasă va crea surprize mari atât
şi pentru profesor, de aceea profesorul trebuie să fie conştient că est
pregătească elevii pentru un asemenea eveniment.
Testele‑grilă prezintă urmăavantaje
toarele imediate:
1. Obiectivitate şi uşurin‑ă în notare.
2. Răspunsul se poate da într‑un timp scurt.
3. Se poate acoperi o mare parte din materia predată.
Dezavantajele ar fi:
1. Nu se poate pune în eviden‑ă ra‑ionamentul făcut de elev.
2. Există posibilitatea ghicirii răspunsului (valori prea mari, necon
rezultat aşteptat etc.).

De asemenea, realizarea testelor‑grilă impune profesorului să res


condi‑ii: itemi clar formula‑i, într‑un item să nu existe o indica‑ie a răs
„lungimea” op‑iunilor să nu constituie un criteriu de selectare et
Examinarea prinprobe practice este caracteristică disciplinelor cu un
caracteraplicativ,iarinformaticiicuatâtmaimult.Easepoate ‑ desfăur
ş
ate,delarealizareadeprogramesimplesauedităridetexteorigrafi
ore, lucrându‑se individual sau în grup, până la aplica‑ii complexe, rea
interval mai lung de timp. Sunt verificate şi evaluate cunoştin‑ele t
realizării lucrării, precum şi deprinderile şi dexterită‑ile indispensa
Este necesară şi formarea lacapacităţii
elevi a de autoevaluare, prezentându‑le ‑ cri
teriile de apreciere, ceea ce va mări încrederea elevului în proprii
înlăturaoriceurmădesuspiciune.Deşiimperfect,sistemulactualdeev
o ierarhizare a elevilor în „clase” după criterii reale de competen‑ă, o
edificatoareasupraniveluluidecunoştin‑ealfiecăruielev,stimule
Putem face şi o clasificare a formelor de evaluare în func‑
timpul când ie
sede
aplică
acestea.Luândînconsiderareacestultimcriteriudeclasificare
a) Evaluarea iniţială,careconducelaformareauneiimaginidesprebagajul‑ d
tin‑e cu care elevul „porneşte la drum”. Trebuie să ne asigurăm asupra
cunoaşte elevul înainte de a‑l învă‑a alte lucruri. Această formă de
creează şi o imagine asupra posibilită‑ilor de progres ale elevului,
‑ a
tă‑ii lui de învă‑are, în func‑ie de care se va stabili programul de ins
general, evaluarea ini‑ială este aplicată întregii clase, profes
posibilitatea să‑şi adapteze programul de instruire.
15

b) Evaluarea formativă ( continuă)esteformadeevaluarepecareprofesoruloa


pe întreaga durată a programului de instruire în cadrul lec‑iilo
unui capitol. Această formă de verificare oferă permanent informa‑ii c
eficien‑a programului de instruire şi permite profesorului să ia ce
măsuri de prevenire a insuccesului şcolar, ajutând totodată ‑ la a
delordepredare‑învă‑are.Pebazamecanismuluidefeedbackcontinuu
ritmică oferă semnalele necesare atât elevului, cât şi profesoru ‑
tabil metronom al activită‑ii didactice.
c) Evaluarea sumativă ( cumulativă ) este forma tradi‑ională de evaluare real
sfârşitul unui semestru sau an şcolar şi cuprinde întreaga ‑ mater
grameicolare,
ş peintervaluldetimplacareseaplicăverificarea. ‑ Rezu
tei forme de verificare nu reflectă întotdeauna adevăratul nive
elevilor, dar prin faptul că determină o recapitulare şi o abordare ‑ g
riei parcurse, are efecte pozitive în direc‑ia dezvoltării capacit
şidesintezăaelevului.Superioarăprincaracteruleipredictiv,eva
trebuietotuşicompletatăşicucelelalteforme.Rezultateleşcola
în cunoştin‑ele acumulate, în priceperi şi deprinderi, capacită ‑ ‑i int
sături de personalitate şi de conduită ale elevilor. Aprecierea c
rezultatelor la învă‑ătură presupune şi urmărirea anumitor criter
• Criteriul raportării rezultatelor la obiectivele generale şi operaţionale, prevă ‑
zute în programa şcolară. Prin aceasta se scot în eviden‑ă calitate
programului de instruire. Pe lângă orientarea metodologică ‑ , obi
gogicepermitşioverificareşioapreciereexactăarezultatelore
încât doi profesori care evaluează aceeaşi performan‑ă să realizeze ‑
ren‑e de notare foarte mici). În acest sens, obiectivele îndepli
criteriu de referin‑ă atunci când se formulează o judecată de va
rezultatelor şcolare, dar ele sunt influen‑ate şi de factori pe
obiectivi, alteori subiectivi, cum ar fi dotarea materială ‑ , niv
ten‑iile profesorului etc.
• Criteriul raportării rezultatelor la nivelul general atins de populaţia şcolară
evaluată, care se manifestă câteodată, din păcate, printr‑o tendin‑ ‑ ă de
ereindulgentăarezultatelorelevilordinclaselemaislabeşi
pentru elevii din clasele considerate mai bune.
• Criteriul raportării rezultatelor la capacităţile fiecărui elev şi la nivelul lui de
cunoştin‑e de dinaintea încheierii programului de instruire. A
evaluare dă măsura progresului şcolar realizat de elevi.

1.3 2 Practica evaluării activităţii didactice


Controlul cunoştin‑elor dobândite de elevi îi dă profesorului posi
la aceştia sim‑ul răspunderii, să sesizeze la timp lipsurile, să aprecieze
muncalor.Controlultrebuiefăcutsistematicdacă ( sepoate,zilnic)iş înmo
52 DIDACTICA PREDĂRII INFORMATICII

Lafiecarelec‑ieseverificămodulîncareafostîn‑eleasălec‑şiia
asimilată
nouă,iar
dacă lec‑ia are un caracter instructiv, trebuie verificat şi gradul î
au fost re‑inute. Verificarea gradului de asimilare se poate face:
– prinrepetareara‑ionamentelorrealizatepeparcursullec‑iei,c
– prin întrebări de control;
– prin rezolvarea de probleme noi.

Toate acestea ajută la verificarea rezultatelor muncii real


Verificarea lucrărilor scrise, date ca teme pentru acasă, se poate fac
– printr‑ o
trecere printre bănci şi o examinare
superficială, cantitativă;
– prinprezentarearezolvării(ideeaprincipală)decătreunelev ‑ şiconf
legerii de către ceilal‑i.

Este important ca verificarea temelor să se coreleze cu răspunsur


întrebări dinainte stabilite, vizându‑se lec‑ia predată anterior
elevilor să combine repetarea noti‑elor cu formarea şi dezvoltarea d
corela no‑iunile teoretice între ele şi de a le aplica în practică ‑ . O alt
ficareesteceaoralăcutoatăclasa,cândse puntoţi.
pentru întrebă
Eleviiri
suntlăsa‑i
săgândească,apoiestenumitunuldintreeicaresărăspundă.Ceilal‑isun
să completeze răspunsul sau să corecteze greşelile. Această examinare s
regulă) nu se notează, dar în situa‑ia în care un elev nu a învă‑at deloc sau a
constant bine la mai multe întrebări, ar trebui notat. La examinar
întrebări care nu necesită desene, notări în caiete sau la tablă, calcu
cu scoatere la tablă (sau cea cu calculatorul personal) se face cu unu
elevi. În timp ce elevii pregătesc răspunsurile, se poate lucra cu cla
temapentruacasă.Cândeleviirăspund,estebinecaprofesorulsăseas
clasaesteatentăşipregătităsăintervinăProfesorul
. poatepuneîntre
sauajutătoareatâtelevilorasculta‑i,câtşicelorafla‑iînbănci.Pr
să se pună în eviden‑ă aspectele esen‑iale ale lec‑iei. Profesorul ‑ trebu
teascădinainteîntrebările,sănutransformeverificareaîntr‑oscoa
şi să nu pună un noian de întrebări care duc chiar până la sugerarea răsp
Când elevul tace, profesorul nu trebuie să‑i sugereze el fraza‑ sau ide
neze un alt elev. Interven‑ia inoportună a profesorului poate conduc
ambiguită‑i cu privire la răspunsul şi la cunoştin‑ele elevului. Lucrări
scrise pot varia ca dimensiune:
– cele scurte10‑15( minute) se dau, de obicei, în a doua parte a lec‑iei şi urmăres
modul de asimilare a lec‑iei noi sau a cunoştin‑elor predate ‑ ante
la‑ie cu lec‑ia nouă;
– cele de1‑2 ore se dau numai după ce au fost anun‑ate din timp şi pregă ‑ tite
tual printr‑o lec‑ie de recapitulare, însă orice procedeu de veri
îndeplinească anumite condi‑ii, discutate în prealabil cu elevii
CURRICULUM, INSTRUIRE, EVALUARE 53

În general, verificările trebuie:


• să aibă un scop precis care, chiar dacă nu este transparent pentru el
fie foarte clar pentru profesor;
• să dezvolte deprinderea elevului de a ra‑iona rapid şi de a da răspun
precise şi scurte, dar complete;
• să dezvolte la elevi grija pentru formulări exacte şi exprimări corec
gramatical;
• să permită elevilor să aprecieze răspunsurile;
• să fie operative.

1.3 Aprecierea cunoştinţelor elevilor. Măsuri de prevenire


a rămânerilor în urmă
Aprecierea se face, în principal, prin notă (calificativ). Ea trebuie să ref
bine şi cât de conştient şi‑a însuşit elevul materia parcursă şi în ce m
capabilsăutilizezeîncontinuarecunoştin‑eledobândite.Existăanum
careserealizeazăapreciereaşinotarea.Greşelilepecarelecomitele
sunt diferen‑ iate
grave, (
mici, de neatenţie, de înţelegere etc.). Sunt calificate drept
greşeli grave cele legate de necunoaşterea sau neîn‑elegerea unei no
nepriceperea în abordarea problemelor. Greşelile de genul celor ‑ le
tarea eronată a unor enun‑uri sau de neaten‑ia de moment nu trebui
fiind grave. Acestea se manifestă printr‑o formă neîngrijită de prezent
exprimare, prescurtări ambigue în lucrările scrise. Profesorul se lov
dificultatea aprecierii răspunsurilor. De cele mai multe ori se cad
aceeaesteindicatsăsestabilească unpentrufiecaresubiectînpar
barem de notare
şi o notare a fiecărui răspuns cu un anumit procent din punctajul maxim
apreciere se manifestă personalitatea profesorului, preten‑iile
lucrurile esen‑iale sau mărunte, tactul lui pedagogic. Rămânerea în ur
reprezintă un pericol pentru orice disciplină. În informatică, acest
manifesta sub forme cumva deosebite. Este evident că un curs de infor
fi privit ca unul accesibil (dacă nu este primul de acest gen). Prin ‑ urma
tează foarte mult experien‑a cursantului. Prevenirea
eşecului şcolar depinde în mare
măsură de metodica predării, de buna organizare a muncii elevilor la clasă
special la orele de aplica‑ii practice de laborator. Interesul tre
este esen‑ial. De aceea, trebuie alese probleme atractive, interes ‑
tat (pozitiv) să fie uşor de constatat. Pentru prevenirea eşecului, es
important să se sesizeze la timp lipsurile şi să se intervină prompt, în
greşelile. Un profesor nu invocă în mod gratuit (uneori în glumă ) greşeli
antologice
ale unor elevi. Astfel este posibilă evitarea repetării lor; se creea
cont de greşeli personale la care se face referire dacă e nevoie. În cazul rămâne
în urmă, se recomandă reluarea unor no‑iuni prin lec‑ii suplimentar
54 DIDACTICA PREDĂRII INFORMATICII

consulta‑ie la care elevii întreabă şi profesorii răspund. Se poate re


suplimentare, individuale sau colective.
Promovarea succesului şcolar nu se poate realiza decât printr
măsuri şi strategii la nivelul macrosistemului de învă‑ământ, al unită‑
contribu‑ia activă a profesorilor, părin‑ilor şi elevilor. La nivelul ma
reforma învă‑ământului trebuie să promoveze ideea perfec‑ionării ‑ struc
lui de învă‑ământ în raport cu cerin‑ele sociale şi cu dinamica muta‑iilo
şi sociale, prin modernizarea obiectivelor pedagogice, a con‑inutu
programe, manuale), a metodologiei şi mai cu seamă a bazei didactico‑mat
procesului de învă‑ământ. Efortul devine singular dacă bunele inten‑i
promovate la nivel macro nu sunt aplicate în unită‑ile şcolare. Este
creeze un climat favorabil de muncă, să se stimuleze ini‑iativa şi resp
corpului profesoral, să se accentueze perfec‑ionarea profesională în r
cerin‑e. Aceasta va avea efecte benefice asupra strategiilor de pro
şi realizare a activită‑ii didactice şi se va reflecta pozitiv în ‑ promov
lare. Ca un corolar, să punctăm şi următoarele:
• În învă‑ământul preuniversitar, evaluările se concretizează, de reg
de la 1 la0. 1
• În clasele din învă‑ământul primar, aprecierea rezultatelor elev
calificative sau alte forme de apreciere, conform reglementărilo
• Numărul de note acordate fiecărui elev, la fiecare disciplină de st
nota de la teză, trebuie să fie cel pu‑in egal cu numărul de ore să
‑ ptămân
văzute în planul de învă‑ământ, cu excep‑ia disciplinelor cu o oră pe săptăm
la care numărul minim de note/calificative este de două.

Primul pas ar consta deci în a defini ceea ce încercăm să măsurăm/eval


evaluarea fiind o componentă esen‑ială a procesului de învă‑ământ şi în
func‑ii bine conturate:
• Funcţia de constatare şi diagnosticareaperforman‑elorob‑inutedeelevi,expli
prin factorii şi condi‑iile care au condus la succesul sau insucces
sunt de o mare diversitate (psihologică, pedagogică, socială etc.).
• Funcţia de reglare şi perfecţionare a metodologiei instruirii pe baza infor
ob‑inute din explicarea factorilor şi condi‑iilor care au determi
învă‑ătură.
• Funcţia de predicţie şi decizie, care vizează desfăşurarea în viitor a activi
didactice.
• Funcţia de selecţie şi clasificareaelevilorînraportcurezultateleşcolare
• Funcţia formativ‑educativă,deameliorareametodelordeînvă‑arefolosited
de stimulare şi optimizare a învă‑ării.
• Funcţia de perfecţionare a întregului sistem şcolar.
CURICULUM, UIRNES,T ALEV ARE U 5

Creştereaeficien‑eiprocesuluidepredare‑învă‑arepresupuneomai
a actului de evaluare în desfăşurarea activită‑ii didactice prin ver
sistematică a tuturor elevilor, pe cât posibil după fiecare capito
obiectivelegeneraleşiopera‑ionalealeacesteia,prinverificarea ‑
ire şi corelarea notelor din catalog cu rezultatele ob‑inute de el
(concursuri, olimpiade, examene de admitere etc.).
Metodele de verificare a randamentului şcolar presupun observarea modului
care înva‑ă elevul (logic, mecanic, creativ, ritmic, continuu, în salturi
‑ e
lizează prin probe orale, scrise şi practice, teste de cunoştin‑e şi depr
cum am văzut.

1.3 4 Condiţia profesorului


Analiza psihologiei
omului de la catedră a constituit un obiect de studiu per
pentru cercetători. De exemplu, [Po] se
înabordează problema condi‑iei psihice
profesorului (
Decalogul profesorului),conturându‑seun(posibil)profilpsiholog
acestuia. În fa‑a elevului, profesorul trebuie să fie (sau cel pu‑in să par
• Cel mai interesat de subiectul pe care‑l abordează, deoarece pe parcursul unei
lec‑ii starea profesorului se transmite elevului. Profesorul n
manifeste dezinteres sau plictiseală fa‑ă de subiectul pe care‑l p
să‑lconsidereşisă‑lfacăinteresant(chiardacăestesimplu,îlcunoaşte
abordat de zeci şi zeci de ori). Profesorul nu poate să dea niciodată s
rutină sau plictiseală. El va capta interesul elevilor atunci câ
celmaiinteresatşiîncântatdesubiectulabordat(numaiaşavast
treaz interesul elevilor).
• Va cunoaşte cu exactitate subiectul. Este normal că orice metode am alege, orice
mijloace am folosi în predare, nu‑i putem face pe al‑ii să în‑eleagă ceva
noi nu în‑elegem cu exactitate. Celebra butadă „am explicat până am p
eu”vinesăconfirmeregula.Aexplicaoproblemăsauaelucidaunaspect
nu‑l poate în‑elege clasa presupune abordarea aspectului prin p
în‑elegere a elevului de nivel mediu din clasă şi amplificarea în spir
carepresupun,pelângăra‑ionament,şiintroducereaunorno‑iuninoi.S
etapelordemonstra‑ieiestesubordonatăobiectivului final,adi
înţelegerea subiec-
tului. Orice „ruptură sau for‑are” compromite demersul didactic, ‑ iar e
zeazăcurapiditateacestemomente.O„conjunctură”dera‑ionamentpo
laaspectecarevorfiabordateînlec‑iile viitoare
stăpânirea con‑inuturilor
(astfel,
în ansamblul lor este osine condi‑qua ie
non pentru profesor, singura în măsură
să realizeze conexiunile dintre con‑inuturi).
• Să ştie că înainte de a învăţa de la altcineva, poţi descoperi singur. Recurgerea
la metodele active (bazate pe activitatea proprie a elevului) în
concepte, priceperi, deprinderi are un efect stimulator, şablonismul, dă elimin
56 DIDACTICA PREDĂRII INFORMATICII

frâu liber imagina‑iei creatoare, muncii independente. Desigur că e


aplicarea acestui principiu, cunoscuta metodă aîncearcă specialistului
întâi
toate posibilităţile, apoi citeşte documentaţia fiind un argument în plus.
• Profesorul colaborează, nu conduce.Adicăactivitateaîngrupareavantajul ‑
nizării ideilor în vederea atingerii obiectivului final, iar profe
frecvent în grup, participând de cele mai multe ori ca lider ‑ la so
blemelor.Aceastăposturădelidercreeazăgrupuluiunhandicap,întăr
ideea preconcepută că profesorul cunoaşte cu exactitate modul de
prin urmare, el nu participă la descoperirile echipei, ci doar le su
aceea, tot ceea ce el sugerează este regulă). Elevului trebuie ‑ să i se o
litatea prezentării şi argumentării ideilor sale; el trebuie lăs
ra‑ionamentul (în anumite limite, chiar dacă acesta este greşit), p
convinge de greşeală. Întreruperea brutală şi fără argumentare trans
din colaborator în adversar, acesta canalizându‑şi eforturile în
în colaborare.
• În procesul instructiv, profesorul trebuie
se coboare să de înţelegere şi
la nivelul
anticipare al elevului, să se transpună în situa‑ia acestuia, rela‑ia profe
fiind una de colaborare, în care, cu certitudine, profesorul este
elevul cel care înva‑ă. Premisele colaborării pornesc de la cunoaşte
a exigen‑elor profesorului şi a posibilită‑ilor elevului, iar împăr‑i
apriorică în profesori blânzi sau duri sau în elevi slabi şi buni es
Profesorul are obliga‑ia să cultive elevului încrederea în posib
depistezepuncteleslabeşi,fărăailescoateîneviden‑ăsă , ‑lajutesăsec
Cea mai dăunătoare atitudine este calificarea unui elev după rez
la celelalte discipline. Op‑iunile, înclina‑ia, voca‑ia, interesele ‑
rioarepotinfluen‑aîntr‑unsenssaualtulpresta‑iaelevuluila
situa‑ia o permite, calificarea elevilor se va face totdeauna cu
mai interesa‑i, mai pasiona‑i, mai rapizi, mai originali.
• Să informeze şi să formeze priceperea de a utiliza informaţia. Realizarea acestui
deziderat face parte din panoplia de mijloace externe a fiecărui
Uniiprofesori,înfunc‑ieşidedisciplină,introducno‑iunişitemenoipo
la necesită‑i reale, de solu‑ionare a unor probleme concrete, iar
devinmijloacenaturale,folositeimediat.Analizaatentăamijlo
la dispozi‑ie pentru rezolvarea unei probleme scoate în eviden‑ ‑ ău
tin‑elor dobândite anterior, îmbrăcarea problemelor
iar aparent strict te
într‑o haină practică, reală, se poate transforma într‑o posibilitat
• Să dirijeze raţionamentul elevului către descoperirea soluţiei optime.Elevultrebuie
îndreptat pe făgaşul descoperirii, corectându‑i‑se alegerile şi s
verifice singur paşii, învă‑ându‑l să facă analogii, să descopere diferen‑ ‑ e
iască situa‑iile‑limită. Elevul trebuie învă‑at în acelaşi timp să abst
aplice rezultatele teoretice care i‑au fost prezentate, să aleag
solu‑ii metoda cea mai adecvată de rezolvare. Elevul trebuie să fie
faptul că nu este primul şi nici singurul rezolvator al acelei probl
CURRICULUM, INSTRUIRE, EVALUARE 57

să existe o metodă mai eficientă descoperită de al‑ii. În acest fel, va fi p


mereu de optimizarea propriilor solu‑ii, i se vor forma spiritul cr
şi dorin‑a de autodepăşire.
• Să înveţe elevii să‑şi argumenteze şi demonstreze corectitudinea soluţiei găsite.
Argumentele pro şi contra unei solu‑ii trebuie să înso‑ească‑ fiecare
vării. Elevul trebuie obişnuit să‑şi corectitudinea solu‑iei găsite
suspecteze
analizacazurilor‑limităşisăcauteînpermanen‑contraexemple. ă ‑ Anali
xită‑ii algoritmilor este un concept care se deprinde şi se aplică du
experien‑ă.
• Să formeze elevilor capacitatea de abstractizare şi generalizare. Posibilitatea
adaptării şi aplicării unui algoritm la o clasă de probleme de acelaşi
rezultat, printre altele, apari‑ia metodelor de elaborare a alg
problematicii generale şi a metodelor aplicate, particularizare ‑
crete. Crearea unor deprinderi de lade genul
simplu la complex este la fel de
importantă.
• Să nu prezinte sau să rezolve o problemă pe care elevul o poate rezolva singur.
Elevul trebuie încurajat să descopere cât mai multe solu‑ii, prof
şi pretinde totul aşa cum a oferit devenind dedefapt
dresor un Cu
papagali.
răbdare, punând întrebări ajutătoare, dând mici indica‑ii, elevul p
ob‑inăsausăcreadăcuconvingerecăaob‑inutsingurrezultatuldorit
în posibilită‑ile lui creşte, nu se simte stresat sau presat ‑ de asi
siuni ame‑itoare de noută‑i.
• Maimultcaoricarealtul,profesorul trebuie să fie un bun actor,uninterpretfără
partitură, care imaginează şi improvizează mereu, fără ca lui fidel,
spectatorul
elevul, să sesizeze vreodată acest aspect. Ne vom preface că o solu‑ie p
de elev este bună până când îşi va descoperi singur greşeala, vom sufe
de el căutând‑o pe cea corectă şi ne vom bucura odată cu el descope
Profesorul nu poate fi supărat sau trist, nu poate fi melancolic, d
El trebuie să fie mereu bine dispus şi atent. În plus, trebuie să‑şi so
singur toate probleme cu clasa, să nu dea semne de slăbiciune. Cu cât
reciproc mai mult, cu cât colaborează şi se ajută mai mult, cu cât se în
apreciază mai mult, cu atât profesorul şi elevii se vor apropia mai m

1.3 5 Planificarea activităţii didactice


Actoria didacticăareînsălimite.Înurmapracticiididactices‑astabilit
săprezinteunplandemuncăanual(calendaristic)sausemestrial. ‑ Pla
daristică trebuie să con‑ină eşalonarea con‑inuturilor disciplinei r
anului sau a semestrului, cu indicarea numărului de ore şi a datei s
studiulfiecăreiteme.Înparalelculec‑iiledecomunicaredecunoştin‑e
necesară planificarea lecţiilor recapitulative, iar la sfârşitul semestrului,
lecţiilor a
de evaluare sumativă. În planificarea calendaristică se vor face referiri l
58 DIDACTICA PREDĂRII INFORMATICII

didactic şi la lucrările practice care vor fi efectuate. Rubrica‑ ‑ ia pla


risticedepindedegraduldedetaliulacaresedoreştesăserealize
specificate în planificare sunt concretizate în lec‑ii, pentru care p
întocmească în plus un plan deproiect
lec‑ie de( tehnologie didactică etc.) la nivel
de detaliu. Pentru o proiectare corectă, profesorul trebuie să ‑ină se
etape pe care trebuie să le parcurgă şi în care trebuie să răspundă la ur
întrebări:
a) Ce voi face?
Înainte de toate, se vor preciza cu claritate obiectivele educa
viitoare.
b) Cu ce voi face?
Este absolut necesar să se analizeze atent resursele educa‑
‑ iona
tru a realiza obiectivele stabilite.
c) Cum voi face?
Sevaalcătuistrategiaeduca‑ionalăpotrivităpentrurealizareao
d) Cum voi şti dacă s‑a realizat ceea ce trebuia?
Dealtfel,înoriceactivitateestedificildestabilitdacăs‑aati
În activitatea didactică este cu atât mai greu. Găsirea unei
‑ meto
toare de evaluare a eficien‑ei activită‑ii realizate este o pro
rezolvată.

Proiectarea didactică presupune totuşi concretizarea şi detal


etape (şi vom încheia capitolul cu aceste considera‑ii):
a) Proiectarea formării de competenţe. Presupune stabilirea în mod precis a
deprin-
derilor care se doresc a se forma pe parcursul desfăşurării activită‑ii dida
Se va verifica dacă ceea ce s‑a stabilit este ceea ce trebuia real
programa şcolară. Se va verifica şi dacă obiectivele stabilite sunt
timpul disponibil.
b) Analiza resurselor. Se va stabili con‑inutul activită‑ii. Se vor analiza
materialului uman, dezvoltarea fizică şi psihică a elevilor, particu ‑
duale, motiva‑ia învă‑ării, mijloacele materiale. Se vor alege metod
necesare.
c) Elaborarea strategiei. Se vor selecta mijloacele de instruire de care e
combinândmetodele,materialeleşimijloaceleastfelîncâtsăsea
lor didactică. Se va descrie în detaliu
scenariul activită‑ii care urmează a ‑ fi des
făşurată.
d) Evaluarea. Se vor analiza cu aten‑ie standardele de performan‑ă şi se va
un sistem de metode şi tehnici de evaluare adecvate atingerii s
Capitolul 2

Principii didactice şi didactica


formării de competen‑e

Înacestcapitolsuntprezentatepescurtcâtevadintreprinci
şi reperele didacticii formării de competen‑e, cu unele exemplificări
acestora în domeniul informaticii. Trebuie să precizăm faptul că term
care o folosim în prezent (competen‑e în loc de obiective, competen‑e-che
de obiective-cadru,competen‑especificeînlocdeobiectivedereferi
o schimbare conceptuală petrecută relativ recent la nivelul fac
Schimbarea se referă la o lec‑ie şi mută accentul de pe îndeplinirea obie
profesor pe însuşirea unor competen‑e de către elevi. Vom reveni pe parc

2.1 Clasificarea şi caracteristicile principiilor di


Un model al sistemului de învă‑ământ trebuie să se încadreze în conte
obiective care ac‑ionează în societate la momentul respectiv. Sco
sarcinile concrete ale predării informaticii pot fi deduse din plan
precum şi din alte activită‑i specifice (şcolare sau extraşcolare)
‑ , şi core
lor(ciclurilor)deînvă‑arefixateînconformitatecudezvoltareainte
O aten‑ie prioritară trebuie direc‑ionată spre adaptarea la nou, in
priveşte dezvoltarea bazei materiale.
Principiile didactice reprezintă normele generale care orientează con
organizarea şi desfăşurarea procesului de predare‑învă‑are şi conduc spr
eficientă a competen‑elor proiectate. Profesorul va decide când, cu
principiile didactice va fi aplicat în fiecare moment al lec‑iei.
Aşacumestenormal,începemprinapunctacâtevadintrecaracteri
aleprincipiilor,dupăcareurmeazăoclasificareşiodescrieremaidetal
Principiile didactice se caracterizează prin:
– caracter legic, ceea ce înseamnă că ele exprimă raporturile esen‑ial
care orientează conceperea şi desfăşurarea procesului de învă‑ământ;
60 DIDACTICA PREDĂRII INFORMATICII

– caracter obiectiv, adică se asigură o orientare a procesului ‑ de înv


ficatăşidetaşatădeimpresii,tendin‑eşidorin‑esubiective;procesuld
este de dorit să fie orientat în concordan‑ă cu legile dezvoltă ‑ rii p
vidului, precum şi cu legile evolu‑iei societă‑ii;
– caracter algoritmic 
– se exprimă cerin‑e şi solu‑ii prin utilizarea unui‑ sist
cis de reguli, care trebuie cunoscute şi respectate cu exactitat
orientare eficientă a procesului de învă‑ământ;
– caracter dinamic 
– principiile didactice sunt elemente legice, ‑ dar de
rilor şi creativită‑ii. Ele trebuie să fie în pas cu schimbările şi muta‑i
interveni în actul didactic;
– caractersistematic
–fiecareprincipiu
  intrăînrela‑iecucelelalteprincip
un ansamblu unitar de legită‑i ale cărui componente se condi‑ionea

Pentruobunăorganizarei
ş desfăurare
ş aprocesuluideînvământ,
ă‑ profesorul
sărespectemereuşisăaplicecorectcelpu‑inurmătoareleprincipiidid
1 . Principiul intui‑iei.
2 . Principiul legării teoriei de practică.
3 . Principiul însuşirii conştiente şi active a cunoştin‑elor.
4 . Principiul sistematizării şi continuită‑ii cunoştin‑elor.
5 . Principiul accesibilită‑ii cunoştin‑elor.
6 . Principiul însuşirii temeinice a cunoştin‑elor.
7 . Principiul individualizării şi diferen‑ierii învă‑ării.

Vomdescriepescurtlaturaaplicativăafiecăruiprincipiuînzonanoas

2.1 Principiul intuiţiei


Acest principiu exprimă necesitatea studierii obiectelor, fenomen
ajutorul sim‑urilor, inându‑
‑ se cont de importan‑a realizării unităii ‑ d
ra‑ional. A transmite cunoştin‑e de informatică în mod intuitiv însea
lacontactuldirectcurealitatea,pentrucaapoi,prinperceperea
lageneralizări.Decelemaimulteoriputemfaceapellamemorie,reprezent
asemănări, analogii. Instrumentele de tip multimedia moderne oferă so
de eficiente. Totuşi, folosind doar acest principiu, este posibil să nu
exact şi complet o problemă, într‑o singură fază. Putem deschide însă o cale
în‑elegerea acesteia, putem stabili un drum cât de cât sigur spre r

2.1 Principiul legării teoriei de practică


Raportuldintreteoriei ş practicădepinde,înultimăinstan‑,ădedificul
implicate,demijloaceletehniceavuteladispozi‑ie,decunoş
precum tin‑elea
PRINCIPII DIDACTICE ŞI DIDACTICA FORMĂRII DE COMPETEN,E 16

şi de capacită‑ile intelectuale ale clasei de elevi, de abilitatea


didactic.Îninformaticăconş, tientizareanecesităii ‑ utilizăriiperforma
folositefrecventastăziînvia‑acotidiană(coduridebare,telefoniem
localizareGPS,transmisieaudiovideoprinsatelit,poştăelectronic
esen‑ială. Mai mult, importan‑a verificării faptului că elevii sunt în st
practică cunoştin‑ele teoretice acumulate este cu adevărat vital
spune că aplicarea eficientă a principiului legării teoriei de‑ practi
tarea consecventă a următoarelor direc‑ii:
• Laboratoarele (cu caracter didactic), precum şi sălile de curs tre
nivelul cerin‑elor moderne, anticipându‑se condi‑iile ce ar put
viitoarele locuri de muncă (calculatoare performante necesare‑
dent, conexiune la Internet, sistem de videoproiec‑ie, software va
• Activită‑ile practice ale elevilor trebuie să aibă o finalitate‑ şi o
diată, manifestate, de exemplu, prin lucrul în echipă la proiecte d
parteneriat cu unită‑i economice,
coaching,gen
prin elaborarea unui proiec
complexşioriginalpentruexamenuldeob‑inereacompeten‑elorprof
prinelaborareauneilucrăricucontribu‑iipersonale,publicabil
Arfibeneficcaatâtrecompensele,câtşipedepselesăfiesimilarec
într‑o activitate reală, şi nu doar reprezentate de note sau ‑ cali
rajeze autoevaluarea şi evaluarea reciprocă.
• Activită‑ile serioase cer o fundamentare teoretică, conştienti
partea de teorie este efectiv utilă, chiar indispensabilă dacă se d
„din mers” la cerin‑e ulterioare.
• Asisten‑a cadrelor didactice trebuie corelată cu apelarea la s
din sfera produc‑iei directe, precum şi cu o testare pe cât posibil
şi specifică a elevului.

2.1 3 Principiul însuşirii conştiente şi active a cunoştinţelor


Acestprincipiuexprimănecesitateacaprocesuldeinstruire ‑ prina
tin‑e să se relizeze organizat, prin fixarea unor scopuri, finalită‑i şi ter
În‑elegerea semnifica‑iilor şi conexiunilor esen‑iale pentru‑ studiu
sităunefortdegândireac‑ional.Profesorultrebuiesădelimitezeînc
lec‑iei scopul şi utilitatea practică şi teoretică a temei respectiv
material exemplificativ. Se urmăresc trecerea de la inten‑ie la gând
la treapta senzorială la treapta ra‑ională, precum şi favorizarea ‑ formăr
turi informa‑ionale. Pentru evitarea unei însuşiri mecanice, se va
metodele active de învă‑are, pe asigurarea participării permanent
elevilor la desfăşurarea lec‑iilor, pe stimularea muncii creatoar
Însuşirea conştientă şi activă a cunoştin‑elor determină formarea unor
condi‑ii favorizante pentru învă‑are cum ar fi:
62 DIDACTICA PREDĂRII INFORMATICII

– ob‑inerea unei motiva‑ii favorabile şi a satisfac‑iei învă‑ării;


– asigurareacredibilită‑iiadevărurilorşitransformarealorînconv
ştiin‑ifice;
– sporireaposibilită‑ilordeautilizaînmodconcretşiprofitabilinf
oferindpoten‑ialuluiintelectualindividualşansesuperioare
practic/constructiv, cât şi pe plan creativ.

2.1 4 Principiul sistematizării şi continuităţii cunoştinţelor


Scopul oricărei activită‑i de predare este de a dota elevii cu un sis
corect de cunoştin‑e. Logica internă a obiectului de predat şi legile
‑ ge
voltării capacită‑ilor de cunoaştere individuale impun asigurarea c
necesitatea sistematizării materiei. Noile informa‑ii relevante
deja introduse şi vor prefigura informa‑iile ulterioare (respectâ ‑
lară). Principiul sistematizării se concretizează deci prin expuneri or
cunoştin‑elor de asimilat, respectându‑se un anumit plan. Pentru a d
gândirea logică a elevilor, pentru a încuraja participarea lor act
deprinderi de sistematizare şi generalizare a celor învă‑ate, profes
folosească la maximum capacită‑ile creatoare şi talentul pedagogic
expunerilor. Activitatea individuală conştientă a elevului treb
Cunoştin‑ele nu se pot asimila în salturi, iar deprinderile neexe
specialîninformatică,underatadeperisabilitateaacestoraest
dorim un învă‑ământ de masă eficient şi asigurarea unei pregătiri ritmic
trebuie acceptat un control permanent şi riguros al profesorulu
stadiului de însuşire a cunoştin‑elor de către elevi. Recomandăm apli
reguli generale:
– secven‑ele de cunoştin‑e transmise trebuie să fie coerente şi unita
determinată de conexiuni logice clare;
– învă‑area trebuie să aibă loc ritmic, la intervale optime, asigurân
restructurarea şi reorganizarea pachetului de cunoştin‑e;
– în privin‑a instrumentelor specifice pentru controlul realizăr
putem cita: utilizarea de rezumate, conspecte, sinteze, planuri d
clasificări, tabele, scheme, statistici etc.
– controlul şi evaluarea periodică a calită‑ii receptării trebuie să fi
reglaj, dar şi de autoreglaj.

2.1 5 Principiul accesibilităţii cunoştinţelor


Cunoştin‑ele predate pot fi asimilate de elevi numai dacă sunt acces
con‑inut.Otemăesteaccesibilăatuncicândcorespundeparticulari
PRINCIPII DIDACTICE ŞI DIDACTICA FORMĂRII DE COMPETEN,E 63

de vârstă ale elevilor cărora le este adresată, reprezintă o continu


acumulate anterior şi corespunde capacită‑ii lor reale de muncă. Con
principiu, respectarea programei şcolare este esen‑ială. De asemen
instructiv‑educativ trebuie adaptat condi‑iilor concrete ale
raport optim între efortul solicitat elevului şi ajutorul care i
învă‑are. După cum am eviden‑iat deja, în informatică, acest aspect este cu
important cu cât condi‑iile de lucru se pot schimba cu rapiditate
aceluiaşi semestru. Respectarea particularită‑ilor psihologice de
scutirea elevilor de efortul intelectual necesar dezvoltării gâ
scop recomandăm:
– folosirea unor demersuri gradate de predare‑învă‑are, de genul: de
complex,delauşorlagreu,delaparticularlageneral,delaconcret
– conştientizarea elevilor asupra faptului că efortul personal e
pentru în‑elegerea corectă şi de durată a celor studiate;
– asigurarea unui studiu ritmic pentru a evita golurile de cuno
ulterioare de în‑elegere şi asimilare;
– asigurarea unui control activ şi a unei evaluări permanente,
‑ în sco
rii maxime a actului didactic.

2.1 6 Principiul însuşirii temeinice a cunoştinţelor


Acestprincipiureclamăcerin‑afixăriimaterialuluidespecialitate
eleviisă‑lpoatăreproduceşiutilizaînmodcreativatâtînrezolvare
curente, cât şi în activitatea practică viitoare. Expunerile treb
accentuându‑se esen‑ialul şi evitându‑se supraîncărcarea. Fixarea
trebuierealizatăprintr‑orepetaresuccintăacelorexpuse,citrebui
receptare logică, ra‑ională, cu ajutorul căreia să se poată identifica
‑ esen
menea însuşire temeinică poate fi ob‑inută prin diverse modalită‑i de r
curentă, de sistematizare şi sinteză, de preîntâmpinare a uitării cel
de asigurare a fixării în memorie a sistemului de cunoştin‑e fundament
Recomandăm respectarea câtorva reguli:
– predarea să fie intuitivă şi accesibilă;
– însuşirea cunoştin‑elor trebuie direc‑ionată spre o asimilare log
urmându‑se un studiu sistematic;
– elevii trebuie stimula‑i în ideea participării active şi continue
– estededoritsăseasiguremotiva‑iaînvă‑ării,înstrânsălegătură‑ cuan
ra‑ii individuale.
64 DIDACTICA PREDĂRII INFORMATICII

2.1 7 Principiul individualizării şi diferenţierii învăţării


Exprimă necesitatea adaptării strategiei instructiv‑educative
psiho
­fiziologicealefiecăruielevînparte,câtşilaparticularită‑ileun
de elevi, în vederea dezvoltării lor ca personalită‑i distincte şi a pr
Individualizarea învă‑ării se referă la valorificarea cât mai bună a po
eforturilor individuale, atât pentru persoanele înzestrate, câ
înzestrate.
Se recomandă:
• Elaborareadesarciniinstructive(teme,lucrărietc.)individuali
elevînparte(înfunc‑iedeaptitudinile,înclina‑iile,op‑iunile,nive
intelectuală, coeficientul de inteligen‑ă).
• Cerin‑a ca oricare dintre sarcinile specificate anterior să fie i
de lucru individuale, cum ar fi:
– fişe de recuperare (pentru cei rămaşi în urmă);
– fişe de dezvoltare (pentru elevii foarte buni);
– fişe de exerci‑ii, destinate tuturor, în scopul formării unor
‑ price
deri aprofundate;
– fişe de autoinstruire, destinate în special însuşirii unor t
individuală şi independentă;
– fişe de evaluare generală, pentru constatarea nivelului gener

Consulta‑iilespeciale,individualizate,nupotfievitate.Diferen‑ier
însănecesitateadeaadaptacon‑inutulstrategiiloreduca‑ionaleînfunc‑i
comportamentuluiindividualsaudegrupalelevilor ­varea
cum
( aptitudinilo
arfipromo
specifice pentru anumite materii). Această diferen‑iere va răspunde
destinate tratării unor particularităi ‑ psihologice individuale
cerin‑e sociale privind pregătirea şi utilitatea existen‑ei unor s
utile:creareadecoli
ş i/
ş sauprofilespecializate;relaxareaînvământulu
ă‑ ‑
cereamaimultordisciplineop‑ionalei ş facultative;intensificarea
­donare activi
directăprofesor‑elevconsulta‑
( ii,discu‑ii,meserotunde,cercuri ‑ deprofi
tereacâtmaicompletăafiecăruielev,atâtcaindividualitate,cât
îmbinarea judicioasă a tratării individuale şi diferen‑iate cu cea gl
care se rezolvă sarcini de echipă; utilizarea învă‑ământuluizarea
asistat; c
elevilor privind posibilită‑ile proprii de formare/dezvoltare int

Exemplu
Pentru ilustrarea aplicării tuturor principiilor, vom încheia
exempluglobal.ProblematurnurilordinHanoieste,considerămnoi,un
de edificator şi de complex, putând fi folosit şi pentru:
– în‑elegerea metodei
divide et impera;
– în‑elegereaderecursivăriiautomateînsensiterativ(parteacons
relor)precum
, şianecesită‑iiprezentăriiunui
doar algoritm
înformasarecursivă;
PRINCIPII DIDACTICE ŞI DIDACTICA FORMĂRII DE COMPETEN,E 65

– în‑elegerea unor tehnici de prelucrare a imaginilor;


– introducerea câtorva considera‑ii de corectitudine şi complexi
– introducerea câtorva concepte de programare nestandard, cum a
func‑ională.

Enunţul problemei. În oraşul Hanoi există trei turnuri de aur n de


şi un număr
discuri de diamant. Fiecare disc are diametrul diferit de al celorl
suntplasatepeunsingurturn,dejosînsus,înordineadescrescătoa
discul cu diametrul maxim găsindu‑se la bază. Se cere să se deplaseze
n discuri cele
de pe primul turn pe al doilea folosind, eventual, ca suport interm
turn.

Restric‑ii:
– mutarea discurilor trebuie făcută într‑un număr succesiv de paşi ind
fiecare pas deplasându‑se un singur disc de pe un turn pe altul;
– se mută întotdeauna discul din vârf, adică cel cu diametrul minim
respectiv;
– nusepoateaşezaundisccudiametrulmaimarepesteunulcudiamet

Soluţie.Caunprimcomentariu,săremarcămfaptulcăenun‑ulrecursiveste
simplu, deşi ideea unui algoritm iterativ general pentru aceast
deloc transparentă. Propunem alegerea următoarelor nota‑ii, care
exprimarea ulterioară a solu‑iei:
1 . Pentruturnuri:
i, j, k ∈ {1, 2, 3},valoridiferiteîntreiele, reprezintă
unde
turnul „de plecare”,
j este turnul de sosire, k esteiar
„turnul intermediar
acest caz, putem observa căkavem = 6 ‑ i ‑ j = al_treilea (i, j).
2 . Discurile vor fi notate cu n, în func‑ie de dimensiune
1, 2... n este
( discul de
dimensiune maximă).
3 . Mutările vor fi desemnate prin triplete <a, b, de
c>, ceea
tipul
ce va însemna
că se deplasează discul
c (cel mai din vârf) de pe turnul
a pe turnul b (în vârf).
Desigur căa, b ∈ {1, 2, 3}, iarc ∈ {1, 2... n}.
4 . Succesiunea mutărilor va fi indicată ·”. prin „

Exprimarea problemei ca o func‑ie definită recursiv (în sens matemat


M
este numele func‑iei (care depinde de turnul‑sursă, turnul‑destin
discuri mutate), atunci putem defini:

M(i, j, n) = M(i, k, n ‑ 1) • <i, j, n> • M(k, j, n ‑ 1)

Intuitiv, pentru andeplasa


discuri de pe turnul i pe turnul
j, se deplasează mai
întâi
n ‑ 1 discuri de pe turnul
i pe turnulk şi în final se deplaseazăncele
‑ 1
discuri rămase de pe turnul
k pe turnul
j. În cadrul unei lec‑ii concrete, se pot d
66 DIDACTICA PREDĂRII INFORMATICII

explica‑iilede rigoare cu privire la func‑ia recursivă şi la faptul ‑ că un l


gramare func‑ional este un limbaj care lucrează cu liste şi liste de cu
defini‑iarecursivăestecorectărezultăimediatprininduc‑ie.‑ Înfinal
rea func‑iei ca o secven‑ă finită de paşi (cuvânt)
<i, dej,
tipul
n>. Acest lucru
rezultă din faptul că, aplicând în mod repetat M, îndefini‑
egalitatea
ia lui precedent
n scade la fiecare repetare.

Observaţie
M(p, q, 0) va reprezenta cuvântul vid (punctulM
din
poate
defini‑
fi consi
ia
‑ lui
derat ca reprezentând opera‑ia de concatenare, în sensul‑ obişnuit
jelor formale).

Acum,săprecizămcăpentruderecursivareaalgoritmuluivomfolosiosti
stiva este goală. În reprezentarea grafică, ordinea mutărilor este d
încercuit. Elementele stivei denotă:
a) M(...)  – apelul recursiv alM func‑
. iei
b) M(... 0) – se ignoră apropo de orice ac‑iune (de fapt, acest simbol va fi
ulterior).
c) <...>  – se efectuează o mutare normală.

Opera‑iile generale care se efectuează asupra stivei sunt:


• În cazul a). Dacă vorbim de un apel al func‑
M cu
iei
ultima pozi‑ie diferită de
zero, atunci con‑inutul vârfului se şterge şi acesta 3 celule
se înlocuieş
noi. te
Restul con‑inutului stivei „coboară”.
• Încazulb).Con‑inutulvârfuluistiveiseştergeşirestulcon‑inutu
• În cazul c). Se execută efectiv mutarea indicată, se trece aceasta pe l
(care va constitui în final solu‑ia problemei) şi apoi se procedează ca m

Procesulseterminăşiseob‑inesolu‑iafinalădoarînmomentulcândst
goalăÎn
. exempluldetaliatdemaijos,consideră
i = 1, j = m3, k = 2, n = 3.
Ceea ce se găseşte în final, ca succesiune de mutări, este:

<1, 3, 1> • <1, 2, 2> • <3, 2, 1> • <1, 3, 3> • <2, 1, 1> •
<2, 3, 2> • <1, 3, 1>.
PRINCIPII DIDACTICE ŞI DIDACTICA FORMĂRII DE COMPETEN,E 67

Observaţie
Numărul de mutări pentru
n discuri3şiturnuri este
1 + 21 +... + 2n‑1= 2n.

Imaginea stivei şi cea a grafului prin care se reprezintă apelurile


prezentate în continuare.
68 DIDACTICA PREDĂRII INFORMATICII
PRINCIPII DIDACTICE ŞI DIDACTICA FORMĂRII DE COMPETEN,E 69

2. Didactica formării de competen‑e

2. 1 Contextul trecerii de la obiective la competenţe


Datorită progresului tehnologic accelerat de la începutul acest
schimbărimajorepepia‑amunciişi,implicit,îndomeniuleduca‑iei. ‑ Adeven
sară trecerea de la învă‑area centrată pe cunoştin‑e aplicate în ‑ situa
‑area centrată pe elev, pe formarea competen‑elor profesionale şi d
personală ale acestuia. Astfel, la începutul anilor 20 , atât în curric
cât şi în variantele Legii educa‑iei na‑ionale, Legea educa‑iei na‑iona
actualizată (lege5.ro/Gratuit/gezsobvgi/legea--nationale-
educatiei
), -11 1 20 a avut
nr
locaceastătransformareconceptualăprin , carecompeten‑eleauluat
ca finalită‑i educa‑ionale.
Dinanulnoile
,90 2 programecolare
ş pentruclaseleV‑XIIauprezentatuncurricu
centrat pe competen‑e, cu referiri explicite la competen‑ele‑cheie e
Suntmultedefini‑iialeconceptului
competenţă, dar
de înaceastălucrarevomcon­
sidera competen‑a ca fiind capacitatea intelectuală ce generează mu
detransfersaudeaplicabilitateînoperareacu[MC con‑],inuturile [MCBA ]). învă‑ări
Prinincluderea competen‑elorînLegeaeduca‑ieina‑ionalenr.,actu 11 1/20
a fost întărit rolul lor normativ.

Competen‑ele‑cheie în Legea educa‑iei na‑ionale:


Art. 4  – Finalitatea principală a educării o reprezintă formarea competenţelor
(definite ca un ansamblu multifunc‑ional şi transferabil de cunoşt
abilită‑i şi aptitudini necesare în situa‑ii diferite).
Art. 13  – subliniază căînvăţarea pe tot parcursul vieţii este un drept garantat
Art. 86 –Curriculumul
)1( na‑ionalpentruînvământul ă‑ primariş gimnazialseaxe
pe opt domenii de competen‑e‑cheie care determină profilul de formare
a) competen‑e de comunicare în limba română şi în limba maternă, în
‑ cazul m
rită‑ilor na‑ionale;
b) competen‑e de comunicare în limbi străine;
c) competen‑e de bază de matematică, ştiin‑e şi tehnologie;
d) competen‑edigitaledeutilizareatehnologieiinforma‑ieicainst
şi cunoaştere;
e) competen‑e sociale şi civice;
f) competen‑e antreprenoriale;
g) competen‑e de sensibilizare şi de expresie culturală;
h) competen‑a de a învă‑a să înve‑i.

Art. 68 (5)  – subliniază ideea conform căreia învă‑ământul liceal este ce


dezvoltareaşidiversificareacompeten‑elor‑cheieşiformareacompet
în func‑ie de filieră, profil, specializare sau calificare.
07 DIDACTICA PREDĂRII INFORMATICII

Art. 07 (2)  – biblioteca şcolară virtuală şi platforma e‑learning includ


exemple de lec‑ii, ghiduri, exemple de probe şi reprezintă o concretizare

ten‑ei‑cheie– tehnologia
TSI  societă‑ii informa‑iei.
Art. 72  – face precizarea că evaluarea se centrează pe competen‑e.
Art. 329  – „învă‑area pe tot parcursul vie‑ii se centrează pe formarea
‑ şi
tareacompeten‑elor‑cheieşiacompeten‑elorspecificeunuidomeniud
unei calificări”.
Competenţele‑cheie conform Comisiei Europene
Defini‑iacompeten‑elor‑cheiepromovatădeComisiaEuropeană„Compet :
cheie reprezintă un pachet transferabil şi multifunc‑ional de cuno
(abilită‑i) şi atitudini de care au nevoie to‑i indivizii pentru împlin
personală, pentru incluziune socială şi inser‑ie profesională. Acestea

tate până la finalizarea educa‑iei obligatorii şi trebuie să ac‑ioneze
pentru învă‑area în continuare, ca parte a învă‑ării pe parcursul întreg
Toateariilecurriculare,decişiaria„Tehnologii”,dincarefacepar
suntcompatibilecuceleoptdomeniidecompeten‑e‑cheiestabilite
1 ) Comunicarea în limba maternă.
2 ) Comunicarea în limbi străine.
3 ) Competen‑e matematice şi competen‑e de bază în ştiin‑e şi tehnologii.
4 ) Competen‑a digitală – tehnologia
(TSI  societă‑ii informa‑iei).
5 ) Competen‑a socială şi competen‑e civice.
6 ) A învă‑a să înve‑i.
7 ) Ini‑iativă şi antreprenoriat.
8 ) Sensibilizare şi exprimare culturală.

Competen‑ele‑cheie nu se formează prin studiul unei singure disci


transversale şi au un caracter teoretic, cu un grad înalt de generalitat
cunoştin‑e, abilită‑i (aptitudini, deprinderi), atitudini.
,inând cont de faptul că prezenta lucrare se adresează profesoril
profesorideinformaticăam , încercat,fărăaaveapreten‑iacăamatinstoat
să formulăm o ierarhie a competen‑elor generale şi a competen‑elor sp
trebuieatinseprinstudiuldisciplinelordeinformaticăînliceu,j
de pregătire a elevilor. Pentru detalii, se mai pot consulta referi
[MC ], [MCBA ], [Ba], [Bî], [Fr],
Programa şcolară este expresia cea mai simplă a modelului curricula
structuratăastfel:notădeprezentare,sistemdevalorişiatitudin
competen‑egeneraleCG) ( competen‑
, especificeCS)
( con‑
, inuturi,sugestiimetod
Competenţele generale exprimate în programa şcolară se definesc pentru fi
disciplinădestudiu, au un grad ridicatdegeneralitateşicomplexit
pe durata unui ciclu de învă‑ământ, deşi abordează niveluri de formare di
un an la altul. Competen‑ele generale exprimă rezultate durabile ‑ a
di‑ionează nivelul la care elevul înva‑ă noi sarcini şi pot fi transfer
varietate de sarcini specifice. Pot fi focalizate pe cunoaştere, pe an
priceperi sau pe atitudini.
PRINCIPII DIDACTICE ŞI DIDACTICA FORMĂRII DE COMPETEN,E 17

Competenţele specifice se formează pe parcursul unui an de studiu, sunt d


din competen‑ele generale şi sunt etape intermediare în formarea a
Conţinuturile învăţării sunt mijloace prin care se urmăreşte formarea
‑ com
‑elorspecificeşiimplicitacompeten‑elorgeneralepropuse.Unită‑iled
organizate tematic.
Profesorul de informatică trebuie să subscrie întregul său demers
proiectare şi până la evaluare, formării competen‑elor elevilor.

2. . Competenţele‑cheie în studiul informaticii


Transformărilecareaulocînsocietate,dezvoltareaşirăspândirea ‑ inf
derea rapidă în via‑a economică, socială şi în învă‑ământ a celor mai noi reali
domeniulhardware‑uluişisoftware‑uluiimpunodiversificareapregăt
liceuînacestdomeniu.Învă‑ământulpreuniversitartrebuiesăasigu
dobândireaunorcunoştin‑edeinformaticălaniveldecultură‑ general
tin‑eledetehnologia informa‑iei, utilizareacalculatoarelorînr
din diversele domenii ale vie‑ii economice şi sociale reprezintă o cer
în toate domeniile profesionale ale pie‑ei muncii. Din acest motiv,
admitemşiintroducerea/predareaînliceu,eventualîncadrulunordi
aunoraplica‑iicomplexeprecum:Unity,pentrudezvoltareaaplica‑iilorvizual
şi anima‑ie 2D/3D, Java, aplica‑ii pentru cursuri Cisco, software profesiona
dezvoltare de aplica‑ii dedicate telefoanelor mobile sau preluc
Astfel,înfunc‑iedefilierăşispecializare,eleviitrebuiesă‑şiformezeşisă‑şid
până la un anumit nivel de aprofundare, un sistem solid de compete
prelucrarea informa‑iei cu ajutorul calculatoarelor persona
acestor competen‑e considerăm că este necesar ca elevii:
a) Să dobândească cunoştin‑ele necesare în‑elegerii principalelor as
no‑iunea de informa‑ie (culegere, prelucrare, stocare, transmitere
b) Să‑şi formeze şi să‑şi modeleze modul de gândire şi abordare a problemel
Asemenea tuturor ramurilor ştiin‑ei, informatica dezvoltă gândi
esen‑ial în procesul de învă‑are, în formarea caracterului şi a perso
plus, informatica formează şi dezvoltă o manieră sistemică de abordare, p
o analiză progresivă a detaliilor, o rezolvare în context general
particulare. Aceasta este gândirea algoritmică, practică‑, diferit
rea teoretică şi abstractă. O astfel de manieră de abordare a probl
cunoştin‑ele de programare de contextul bazei de date pe care o pre
cel al solu‑iilor pe care le va ob‑ine. Formarea unor competen‑e cogni
pe gândirea algoritmică, analitică şi sistematică, precum şi a unui mod
ordonat are consecin‑e deosebite în evolu‑ia viitoare a elevului şi e
esen‑ial al studiului informaticii în învă‑ământul preuniversita
c) Să‑şi formeze şi să‑şi dezvolte deprinderi de a munci individual şi în echip
riscul de a ne repeta, trebuie să subliniem că, chiar dacă munca în inf
72 DIDACTICA PREDĂRII INFORMATICII

este aparent individuală, activitatea colectivă este esen‑ ‑ ial


lizareabazelordedatemarii ş aproduselorsoftwarededimensiunim
Se impune formarea la elevi a acelor deprinderi elementare ‑ de l
torul care oferă şansa unei învă‑ări în ritmul propriu al fiecăruia, ‑ dar ş
tatea asimilării lucrului în echipă. Acesta va fi un element esen‑i
socială şi va conduce la formarea unor trăsături de caracter‑ ce pot o
alismuluioalternativăcivilizatăÎn . via‑arealăactivită
, ‑ilenused
astfel încât se impune realizarea unor aplica‑ii complexe care n
grup, modularizarea programului şi păstrarea contactelor cu ceil
grupului. Se realizează astfel asumarea responsabilită‑ii cu privi
proprieimuncişiasigurareacondi‑iilordefinalizareaactivită‑ii
ai colectivului. Conducerea ra‑ională a activită‑ii de proiectar
dezvoltarea intui‑iei determină elevul să capete încredere în pro
d) Să capete deprinderi care‑l vor ajuta să devină un utilizator profe
dobândeascăcunoştin‑elenecesareexploatăriiresurselorhardwa
ladispozi‑iedetehnologiainformaticăactualăPentru . aceasta,el
formeze o cultură generală informatică, ce presupune identificarea
func‑ionăriiprincipalelorcomponentealecalculatoruluişire‑ele
precum şi dobândirea deprinderilor necesare utilizării noilor
Punctămdinnoufaptulcăpentru, dezvoltareaacestorcompeten‑e‑cheie,t
ritădezvoltareaînmoddiferen‑iataurmătoarelorcompeten‑ecognit
– cunoaştereai ş utilizareapânălaunanumitniveldedetaliuasiste
a mediilor de programare cel mai des folosite (Windows, Unix, Linux e
– cunoaşterea structurii şi arhitecturii sistemelor‑ de calc
mentare de hardware, care să le permită să ia decizii corecte şi efi
situa‑iicareaulegăturăcucaracteristiciletehnicealeunuid
de tip calculator personal, laptop, tabletă, smartphone etc.;
– cunoaşterea şi utilizarea unui limbaj de programare de nivel
limbaj de gestiune a bazelor de date (C/C++, Pascal, SQL, Prolog, Java,
Phyton etc.) şi a no‑iunilor elementare despre limbajele de asam
înliceeledespecialitate),aunuimediudeprogramarevizualde ( e
sau, de ce nu, Scratch (pentru gimnaziu sau chiar pentru clasele I
– cunoaşterea şi utilizarea tehnicilor de proiectare a produ
caracter ştiin‑ific, a metodelor de elaborare a algoritmilor, ‑ aa
damentali, a tehnicilor de optimizare a algoritmilor (elevii a
o bună capacitate de apreciere a complexită‑ii algoritmilor);
– cunoaşterea unor no‑iuni privind analiza şi proiectarea aplica
economică;
– cunoaşterea şi utilizarea unui sistem de gestiune a bazelor d
procesoare de calcul tabelar etc.;
– cunoaşterea şi utilizarea celor mai uzitate programe utilitar
şi editoare grafice, pachete de programe de compresie (arhivare
antivirus, no‑iuni primare de inginerie de sistem etc.:
PRINCIPII DIDACTICE ŞI DIDACTICA FORMĂRII DE COMPETEN,E 73

– cunoaşterea principalelor modalită‑i de exploatare a facilit


re‑elelelocaleşiinterconectate,serviciiledeInternet, ‑ doc
lită‑ile multimedia etc.
e) Formarea unei conduite şi a unei moralită‑i profesionale reprezint
de dezvoltare personală esen‑ială. În informatică, respectarea ‑ str
fesionaleesteonecesitateimpusăderespectarealegiicopyright
să conştientizeze impactul social al dezvoltării informaticii, car
modifice societatea, de aici rezultând necesitatea în‑elegeri
areînschimbăriledinvia‑asocială,economică,aaspecteloreticecar
aceste schimbări, a avantajelor şi riscurilor impuse de utilizar
Elevii trebuie să cunoască prevederile legale cu privire la ‑ drept
fiden‑ialitatea informa‑iilor, protec‑ia bazelor de date, efectel ‑
ma‑iei sau distrugerii ei prin spargeri de parole de protec‑ie, vi
neautorizat etc. Formarea trăsăturilor de caracter nu se poat
cunoaştere a istoricului dezvoltării informaticii ca domeniu al
şiaperspectivelor,fărăimpunerearespectuluifa‑ădevalorilemater
precum şi fa‑ă de efortul colectivului din care elevul face sau va face
aspect trebuie avut în vedere pe toată durata şcolarizării elevu
apară ca un scop în sine, ci ca un element de coloratură, în contextu
altor no‑iuni. Formarea unor trăsături ale personalită‑ii elevil
ilustrate prin înseşi produsele lor informatice, face din imagine
din modul de organizare a instruc‑iunilor în program, o oglindă ‑ fidel
lită‑ii intelectuale şi sociale a elevului.

2. 3 Proiectarea competenţelor
Competen‑aşcolarăesteunansambludecunoştin‑e,capacită‑i,deprinder
dobândite de elev în activitatea de învă‑are şi utilizate în context
vârstei elevului şi nivelului cognitiv al acestuia, în vederea rez
cu care acesta se poate confrunta în via‑a reală.
Succesuloricăreiactivită‑ididacticeestecondi‑ionatde ‑ clarit
ten‑elor pe care aceasta urmăreşte să le formeze sau să le dezvolte. Mai
în oricare alt domeniu, învă‑ământului de informatică îi este caracte

nalitatea–orientareacătredezvoltareaunorcompeten‑e‑ carede
bărişitransformăricepotficontrolateşidirijate.Înacestspirit,ce
condi‑ie pentru reuşita predării informaticii face referire la ‑ stru
zareaşiierarhizareaunorcompeten‑egeneraleşispecifice,adaptate
devârstăaleelevilor,con‑inutuluicunoştin‑elorşipregătiriilorşti
Poate fi aplicat următorul algoritm pentru formarea competen‑el

Cunoştin‑e aplicabile
→ Capacită ‑ i, Abilită ‑ i, Priceperi
→ Conş tientizare

Atitudini, Comportamente pozitive
→ Competenţă
74 DIDACTICA PREDĂRII INFORMATICII

Competen‑elegeneralealepredăriiinformaticiiauanumitedeter
să pună în eviden‑ă:
– importan‑ainformaticiiînlumeacontemporanăîn , tiin‑
ş în
,ă tehnicăsauec
– necesitatea învă‑ământului de informatică şi rolul acestuia în fo
generale şi nu numai;
– necesitatea dezvoltării capacită‑ii intelectuale şi a gândirii a
– necesitateaformăriielevuluipentruactivită‑ileviitoare,cau
la diferite niveluri.

Fixarea competen‑elor generale ale informaticii trebuie să răspun


următoarele două întrebări:
• De ce se predă informatica în şcoală?
• Ce se urmăreşte prin includerea ei în planul de învă‑ământ?

Predarea ştiin‑elor informatice în şcoală include cu siguran‑ă:


– trezirea interesului pentru studiul acestora;
– formareapriceperilori
ş deprinderilordebazăînutilizareaiş exploatareac
– stimularea creativită‑ii;
– integrarea utilizării informaticii în modul de gândire şi de via‑ă al

În afara competen‑elor generale pe care le vizează, informatica


– prin par
mijloace ce‑i sunt proprii 
– la modelarea personalită‑ii, nu numai sub‑ aspect
tual,cişisubaspectesteticşimoral(parteaesteticăvizeazăprograma
personalitatea autorului se manifestă prin opera sa; partea moral
că activitatea în domeniul informaticii nu se poate desfăşura ‑ în afar
fesionale sănătoase, dacă ne gândim doar la pericolul hackerilor ‑ şi la
tuoasă a acestora cu cyberspa‑iul). Din competen‑ele generale, putem
anumite competen‑e specifice care pot fi la rândul lor structurat
• Nivelul obiectivului (elev).
• Nivelul subiectului (profesor).
• Nivelul ac‑iunii comune.

La nivelul elevului, competen‑ele specifice sunt:


– integrarea şi asimilarea cunoştin‑elor cuprinse în programă;
– memorarea activă a acestor cunoştin‑e;
– dezvoltarea judecă‑ii deductive şi inductive;
– conştientizarea procedeelor ce stau la baza ra‑ionamentelor;
– formarea capacită‑ii de analiză şi sinteză;
– formarea capacită‑ii de structurare şi planificare;
– formarea capacită‑ii de abordare a unei probleme complexe.

La nivelul profesorului, competen‑ele specifice se referă la‑ capacit


ere a fenomenelor şi rezultatelor.
Nivelul ac‑iunii are în vedere asimilarea de către elev a no‑iunilo
în practică. Pe baza acestor considera‑ii, se pot formula şi delimita c
PRINCIPII DIDACTICE ŞI DIDACTICA FORMĂRII DE COMPETEN,E 75

specifice ale fiecă rui capitol, lec‑ ie etc. , cu detalierea tuturo


Formularea competen‑elor specifice trebuie făcută în termeni compor
mai precişi, care să excludă formulările vagi, iar acest lucru presupune:
– identificarea performan‑ei finale care trebuie realizată;
– descrierea în detaliu a condi‑iei esen‑iale în care se poate
‑ produ
tul respectiv;
– precizareaniveluluideperforman‑ălacaretrebuiesăseajungă ‑ pent
tată ca atare.

În acelaşi timp, trebuie să se cunoască:


– Cine va dirija modelarea unui comportament dorit?
– Ce comportament observabil va dovedi că obiectivul a fost atins
– Care va fi produsul (performan‑a) acestui comportament?
– În ce condi‑ii trebuie să aibă loc comportamentul?
– Pe baza căror criterii apreciem că produsul este satisfăcător?

2. 4 Analiza resurselor
Înacestmomenttrebuiesărăspundemlaîntrebarea:cumpotdezvolta
propuse? Sunt necesare:
– oanalizăaresurselorpsihologice,carenecesităcunoştin‑edepsiho
a capacită‑ii de învă‑are, a particularită‑ilor de vârstă şi natură
‑ psih
‑iei învă‑ării etc.;
– o analiză a resurselor materiale;
– o analiză a con‑inutului învă‑ării.

Programa şcolară determină con‑inutul învă‑ării, dar acest con‑inut est


după două categorii de competen‑e:
– cognitive (ce va şti elevul?);
– comportamentale, ac‑ionale şi atitudinale (ce va putea face elevu

Clasificareaanterioarătrebuiesăstealabazaîntocmiriiplanif
care se poate realiza după următoarea procedură:
– se va selecta din manual con‑inutul informativ propus de program
– acestcon‑inutvaficoroboratcucelformativpretinspriceperi,
( depri
– ambelevorfiraportatelaelementultimpprinstabilireanumăru
fiecărei teme.

Conform recomandărilor existente pe site‑ul ministerului‑ (www.ed


careacalendaristicăanualăladisciplinainformaticăprofilul, mate
intensivinformaticăpoateaveaurmătorulformat(con‑inuturilesu
programei şcolare în vigoare pentru anul şcolar165)‑.20
76
Unitatea şcolară: . . . Profesor: . . . . .
Disciplina INFORMATICĂ Clasa a IX‑a
Număr ore pe săptămână: o oră  – teorie
Planificare calendaristică
Programa aprobată cu O.M. nr. 509 / .09 2
Filiera teoretică
Profil matematică‑informatică/intensiv informatică

Competenţe Nr. ore


Unităţi de învăţare Conţinuturi Săpt. Obs.
specifice alocate
Informatică şi societate
1. Definirea informaticii ca ştiinţă.
1.2 Rolul informaticii în societate. 1 S1
Studii de caz ale unor situaţii sociale, în abordare informatizată.
Identificarea datelor
2.1 care Date cu care lucrează algoritmii (constante, variabile, expresii).
intervin într‑o problemă şi Clasificarea datelor. Tipuri de date. 3 S2‑S4
a tipurilor acestora Opera‑ii asupra datelor. Operatori. Clasificarea operatorilor.
Preceden‑a operatorilor. Expresii.
Evaluare sumativă.
Elaborarea algoritmilor de Etapele rezolvării problemelor.
DIDACTICA PREDĂRII INFORMATICII

2.1
rezolvare a problemelor şi No‑iunea de algoritm. Caracteristici. 8
implementarea lor 3.1 într‑ un Reprezentarea algoritmilor în pseudocod.
limbaj de programare3.2 Principiile programării structurate.
3.3 Structuridebazăstructura
: liniarăstructura
, alternativăstructura
, repetitivă.
4.1 Evaluare sumativă.
4.5 Algoritmi elementari
1. Prelucrarea numerelor:
• prelucrarea cifrelor unui număr (de exemplu, suma cifrelor, inversul unui
număr, testarea proprietă‑ii de palindrom etc.);
• probleme de divizibilitate (de exemplu, determinarea ‑ divizorilor unui nu
măr, determinarea c.m.m.d.c./c.m.m.m.c., testarea primalită‑ii, descom ‑
punere în factori primi etc.);
• calculul unor expresii simple (sume, produse etc.).
Evaluare sumativă.
2. Prelucrarea unor secven‑e de valori: S5‑S12
• determinare minim/maxim;
• verificareauneiproprietă‑i(deexemplu,dacătoateelementele
‑ dinsecven
‑ă sunt numere perfecte etc.);
• calculul unor expresii în care intervin valori din secven‑ă (de exemplu:
numărarea elementelor pare/impare etc.);
• generarea şirurilor recurente (de exemplu: şirul Fibonacci,
‑ progresii arit
metice şi geometrice).
Evaluare sumativă.
Elementeledebazăalelimbajuluideprogramare.No‑iuniintroductive.
Structura programelor. 5 S13‑S17
Vocabularul limbajului.
Tipuri simple de date (standard).
Constante, variabile, expresii.
Citirea/scrierea datelor.
Reprezentarea algoritmilor într‑un limbaj de programare.
Structuri de control implementate în limbajul de programare.
Evaluare sumativă.
Fişiere text 4. Definire, opera‑ii specifice:
4.5 • citirea şi afişarea datelor folosind fişiere text 1 S18
Tablouri unidimensionale
2.1 Algoritmi fundamentali de prelucrare a datelor structurate în tablouri:
3.1 • parcurgerea tablourilor unidimensionale; 11 S19‑S29
3. • interschimbarea, deplasarea, ştergerea şi inserarea de elemente;
PRINCIPII DIDACTICE ŞI DIDACTICA FORMĂRII DE COMPETEN,E

4.1 • opera‑ii cu mul‑imi;


4.2 • căutare secven‑ială, căutare binară;
4.3 • sortare;
4.5 • interclasare;
• secven‑e şi subşiruri.
Evaluare sumativă.
Tablouri bidimensionale
2.1 • parcurgerea tablourilor bidimensionale pe linii/coloane;
3.1 • tablouri bidimensionale pătratice, diagonale. 5 S30‑S34
3. Evaluare sumativă.
4.1
4.2
4.3
4.5
Aplicarea algoritmilor
5.1 în Aplica‑ii interdisciplinare (specifice profilului).
7

prelucrarea datelor5.2 Analiza eficien‑ei unui algoritm. 2 S35‑S36


78 DIDACTICA PREDĂRII INFORMATICII

Competen‑e generale şi specifice:

CG1. Identificarea conexiunilor dintre informatică şi societate.


CS1.1 Identificarea aplica‑iilor informaticii în via‑a socială.
CS1.2 Recunoaştereasitua‑iilorîncareestenecesarăprelucrarea ‑ a
ma‑iilor.
CG2. Identificarea datelor care intervin într‑o problemă şi a relaţiilor dintre acestea.
CS2.1 Descriereauneisuccesiunideopera‑iiprincareseob‑in,dindat
datele de ieşire.
CG3. Elaborarea algoritmilor de rezolvare a problemelor.
CS3.1 Analizarea enun‑ului unei probleme şi stabilirea paşilor ‑ de re
blemei.
CS3.2 Reprezentarea algoritmilor în pseudocod.
CS3.3 Respectarea principiilor programării structurate în proces
algoritmilor.
CG4. Implementarea algoritmilor într‑un limbaj de programare.
CS4.1 Transcrierea algoritmilor din pseudocod într‑un limbaj de pr
CS4.2 Identificarea necesită‑ii structurării datelor în tablouri.
CS4.3 Prelucrarea datelor structurate.
CS4.4 Utilizareafişierelortextpentruintroducereadatelorşiext
CS4.5 Utilizarea unui mediu de programare (pentru limbajul Pascal ‑ s
bajul C/C++).
CG5. Aplicarea algoritmilor fundamentali în prelucrarea datelor.
CS5.1 Elaborarea unui algoritm de rezolvare a unorprobleme din ari
specializării.
CS5.2 Alegerea unui algoritm eficient de rezolvare a unei probleme
Unitatea şcolară: . . . Profesor: . . . . .
Disciplina INFORMATICĂ Clasa a IX‑a
Număr ore pe săptămână: 3 ore  – aplica‑ii practice de laborator

Planificare calendaristică

Programa aprobată cu O.M. nr. 509 / .09 2


Filiera teoretică
Profil matematică‑informatică/intensiv informatică
Competenţe Nr. ore
Unităţi de învăţare Conţinuturi Săpt. Obs.
specifice alocate
Identificarea datelor ‑ 2.1 care inter• Datecucarelucreazăalgoritmii(constante,variabile) 12 Clasificarea
. S1‑S4
4.1
vinîntr‑oproblemăşiatipurilor datelor. Tipuri de date standard.
acestora 4.5 • Citirea şi scrierea datelor de la/la consolă.
• Opera‑ii asupra datelor. Expresii.
Elaborarea algoritmilor‑ de re Aplica‑ii cu structuri de bază:
zolvare a problemelor‑ şi2.1 imple 21
• structura liniară (exemple: calculul ariei şi al perimetrului S5‑S11 unor
3.1
mentarea lor într‑un limbaj de figuri geometrice);
PRINCIPII DIDACTICE ŞI DIDACTICA FORMĂRII DE COMPETEN,E

programare 3.2 • structura alternativă (exemple: rezolvarea ecua‑iei de gradul 2,


3. verificarea dacă trei numere pot fi laturile unui triunghi);
4.1 • structurarepetitivăexemple:
( parcurgereanumerelornaturaledintr‑un
4.5 interval în ordine crescătoare sau descrescătoare, sau cu un pas
precizat, folosind toate cele trei tipuri de structuri repetitive).
Algoritmi elementari.
1. Prelucrarea numerelor:
• prelucrarea cifrelor unui număr (exemple: suma cifrelor unui
număr, inversul unui număr, testarea proprietă‑ii de palindrom,
numărul de cifre dintr‑un număr etc.);
• probleme de divizibilitate (exemple: determinarea divizorilor
unui număr, determinarea c.m.m.d.c./c.m.m.m.c., testarea
‑ pri
malită‑ii, descompunerea în factori primi etc.);
79

• calculul unor expresii simple (sume, produse etc.).


80
Evaluare sumativă.
2. Prelucrarea unor secven‑e de valori:
• determinare minim/maxim;
• verificarea unei proprietă‑i (exemplu: dacă toate elementele din
secven‑ă sunt numere prime etc.);
• calculul unor expresii în care intervin valori ‑ din secven‑ă (exem
ple: numărarea elementelor pare/impare, însumarea ‑ sau înmul
‑irea numerelor dintr‑o secven‑ă etc.);
• generarea şirurilor recurente (de exemplu: şirul ‑ Fibonacci, pro
gresii aritmetice şi geometrice).
Evaluare sumativă.
Elementeledebazăalelimbaju
‑ 2.1 • Mediul limbajului de programare studiat. Prezentare generală.
lui de programare 4.1 Editarea programelor‑sursă. Compilare, rulare, depanare. 3 S12
4.5 • Structura programelor.
• Elemente de vocabular al limbajului.
• Scrierea pe ecran.
Elementeledebazăalelimbajuluideprogramare.No‑iuni9 introductive: S13‑S15
• Structura programelor.
• Vocabularul limbajului.
DIDACTICA PREDĂRII INFORMATICII

• Tipuri simple de date (standard).


• Constante, variabile, expresii.
• Citirea/scrierea datelor.
• Reprezentarea algoritmilor într‑un limbaj de programare.
• Structuri de control implementate în limbajul de programare.
Evaluare sumativă.
Fişiere text 4. Definire, opera‑ii specifice:
4.5 • citireai ş afişareadatelorfolosindfişieretext,aplica‑ 3 iicufiş
S16 ieretext
exemplu:
( ordonareanumerelordintr‑unfişier,interclasareacon‑i­
nutuluiadouăfişierecarememoreazănumereordonatecrescătoretc.. )
Tablouri unidimensionale
4.1 Algoritmi fundamentali de prelucrare a datelor structurate în tablouri:
4.2 • aplica‑ii cu parcurgerea tablourilor unidimensionale 36 S17‑S28 (exemple:
4.3 citirea şi afişarea elementelor tablourilor);
4.5 • aplica‑iicuinterschimbarea,deplasarea,tergerea ş ‑ i
ş inserareadeele
mente(exemple:inversareaordiniielementelor ‑ unuitablou,şter
gereaelementelorcuoanumităproprietate,permutăricirculare);
• elemente distincte (exemplu: transformarea ‑unui vector în mul
‑ime prin eliminarea elementelor nedistincte);
• opera‑iicumul‑imi(reuniune,intersec‑ie,diferen‑ă,apartenen‑ă,
incluziune);
• căutare secven‑ială, căutare binară;
Evaluare sumativă.
• sortare (selec‑ie, inser‑
bubble ie,
sort, numărare);
• aplica‑iicuvectoridefrecven‑(exemplu: ă frecven‑acifrelorunui
număr, ordonarea de cifre);
• interclasare (exemplu: opera‑iile cu mul‑imi ordonate);
• secven‑e şi subşiruri, generarea submul‑imilor unei mul‑imi;
• aplica‑iicuconversiiîntrediferitesistemedenumera‑ie(cuşiruri
de cifre);
Evaluare sumativă.
4.1 4.2
Tablouri bidimensionale • parcurgereatablourilorbidimensionalepelinii/ 15 coloane
S29‑S33 (exemple:
4.3 4.5 elementeminime/maxime,veciniiunuielementdinmatrice,sume
peliniisaucoloane,tergerea
ş sauinserareadeliniii ş coloaneetc.;)
• tablouri bidimensionale pătratice, diagonale, împăr‑irea matricii
în zone în func‑ie de diagonale, generarea unei matrici după o
regulă etc.).
PRINCIPII DIDACTICE ŞI DIDACTICA FORMĂRII DE COMPETEN,E

Evaluare sumativă.
Aplicarea algoritmilor
‑ 5.1 în prelu Aplica‑ii interdisciplinare (specifice profilului) 9 : S34‑S36
crarea datelor 5.2 • Opera‑ii cu frac‑ii şi numere ra‑ionale (simplificarea frac‑iilor,
adunare, scadere, înmul‑ire, împăr‑ire, comparare).
• Generarea primilor
n termeni ai unei progresii.
• Aplica‑ii geometrice (distan‑a dintre două puncte, ‑ volumul cor
purilorregulate,centruldegreutatealuneimul‑imidepuncteetc..)
• Determinarea punctului de intersec‑ie a două mobile în mişcare
rectilinie şi uniformă.
• Determinarea masei moleculare a unui compus chimic.

Analiza eficien‑ei unui algoritm. Analiza eficien‑ei a doi sau mai


mul‑i algoritmi care rezolvă aceeaşi problemă.
18

Evaluare sumativă.
82 DIDACTICA PREDĂRII INFORMATICII

Competen‑e generale şi specifice:

CG1. Identificarea conexiunilor dintre informatică şi societate.


CS1.1 Identificarea aplica‑iilor informaticii în via‑a socială.
CS1.2 Recunoaştereasitua‑iilorîncareestenecesarăprelucrarea ‑ a
ma‑iilor.
CG2 . Identificarea datelor care intervin într‑o problemă şi a relaţiilor dintre acestea.
CS2.1 Descriereauneisuccesiunideopera‑iiprincareseob‑in,dindat
datele de ieşire.
CG3. Elaborarea algoritmilor de rezolvare a problemelor.
CS3.1 Analizarea enun‑ului unei probleme şi stabilirea paşilor ‑ de re
blemei.
CS3.2 Reprezentarea algoritmilor în pseudocod.
CS3.3 Respectarea principiilor programării structurate în proces
algoritmilor.
CG4. Implementarea algoritmilor într‑un limbaj de programare.
CS4.1 Transcrierea algoritmilor din pseudocod într‑un limbaj de pr
CS4.2 Identificarea necesită‑ii structurării datelor în tablouri.
CS4.3 Prelucrarea datelor structurate.
CS4.4 Utilizareafişierelortextpentruintroducereadatelorşiext
CS4.5 Utilizarea unui mediu de programare (pentru limbajul Pascal
C++).
CG5. Aplicarea algoritmilor fundamentali în prelucrarea datelor.
CS5.1 Elaborarea unui algoritm de rezolvare a unorprobleme din ari
specializării.
CS5.2 Alegerea unui algoritm eficient de rezolvare a unei probleme

Dupărealizareaplanificăriianualeestenecesarăproiectareauni
detaliate la nivel de lec‑ie. Unită‑ile de învă‑are:
– sunt teme stabilite de profesor, care constituie capitole sau
din punctul de vedere al con‑inutului şi care pot fi evaluate suma
– înrubrica„Competen‑especifice”setrecsimbolurilecompeten‑el
programa şcolară;
– con‑inuturile selectate sunt extrase din lista de con‑inutur
– numărul de ore alocate se stabileşte de către profesor în func‑ie d
acestuia şi de nivelul de achizi‑ii ale elevilor.

Planificarea este, desigur, orientativă, iar eventualele modifi


aplicarea efectivă la clasă se pot consemnate în rubrica „Observa‑ii
anualăcorectîntocmitătrebuiesăacopereintegralprograma‑ şcolarăl
peten‑e specifice şi con‑inuturi.
Vom da un exemplu de planificare a unită‑ilor de învă‑are din planificăr
prezentate anterior.
Unitatea şcolară: . . . Profesor: . . . . .
Disciplina INFORMATICĂ Clasa a IX‑a
Planificare unităţi de învăţare

Unitatea de învă‑are: Informatică şi societate


Număr de ore: o oră
Forma de organizare:
• teorie: o oră

Competenţe
Conţinuturi Activităţi de învăţare Resurse Evaluare
specifice
Definirea informaticii ca ştiin‑1. ă Exemple de aplica‑ii informatice din
‑ învia‑
clasă
a so
: evaluare curentă
Rolul informaticii în societate
1.2 cială – conversa‑ia
Studii de caz ale unor situa‑ii sociale, înExemple de situa‑ii în care este necesară pre
‑ – exemplificarea
abordare informatizată lucrarea algoritmică a informa‑iilor

Unitatea de învă‑are: Identificarea datelor care intervin într‑o problemă şi a tipurilor acestora.
Număr de ore: 2 + 6 ore.
Forma de organizare:
PRINCIPII DIDACTICE ŞI DIDACTICA FORMĂRII DE COMPETEN,E

• teorie: 2 ore
• activitate practică: 6 ore

Competenţe
Conţinuturi Activităţi de învăţare Resurse Evaluare
specifice
Date cu care lucrează algoritmii (constante,
2.1 Studiidecazcuexemplificarea ‑ în clasă
suc: evaluare curentă
variabile, expresii). 4.1 cesiunilor de opera‑ii prin care se
– conversa‑ia
Clasificareadatelor.Tipuridedate. 4.5 ob‑in, din datele de intrare, datele
– exemplificarea evaluare sumativă
Opera‑iiasupradatelor.Operatori.Clasificarea de ieşire lasfârşitulunită‑ii
– exerci‑iul
înla­bo­ra­
tor:
ope­
ratorilor. Prezentareamediuluideprogramare de învă‑are
Exerci‑ ii de citire ş iscrierea con­
versa‑ia; obser­
datelor va­
Preceden‑a operatorilor. Expresii. rea; exerci‑ iul
de
83

Citirea şi scrierea datelor de la/la consolă de. la/laconsolăutilizândmediul


programare
84
Unitatea de învă‑are: Elaborarea algoritmilor de rezolvare a problemelor şi implementarea lor înt
Număr de ore: 5 + 15 ore
Forma de organizare:
• teorie: 5 ore
• activitate practică: 15 ore

Competenţe
Conţinuturi Activităţi de învăţare Resurse Evaluare
specifice
Etapele rezolvării problemelor. Exempledealgoritmidindiferiteîn domenii
clasă: de evaluare ‑ cu
No‑iunea de algoritm. Caracteristici. 2.1 activitate – conversa‑ia rentă
Reprezentarea algoritmilor în3.1 pseudocod. Exerci‑ii de descriere a unor succesiuni – exemplificarea
de
Principiile programării structurate. 3.2 opera‑ii prin care se ob‑in, din datele – exerci‑de
iul
Structuri de bază: structura liniară
‑ 3.3 , strucintrare, datele de ieşire
tura alternativă, structura repetitivă 4.1 .
Aplica‑ii cu structuri de bază: 4.5 Studiidecazceimplicăanalizareaîn enun‑
laborator:
ului evaluaresuma
­
• structuraliniară(exemple:calculul‑ ari unei probleme şi stabilirea paşilor de rezol
‑ – exerci‑ iul tivă la sfârş‑ i
ei şi al perimetrului unor figuri‑ geome vare a problemei – exemplificareatul unită‑ii de
DIDACTICA PREDĂRII INFORMATICII

trice); Exerci‑ii de utilizare a structurilor de bază


– problematizareaînvă‑are
• structuraalternativă(exemple: ‑ rezolva Exerci‑ iidereprezentare aalgoritmilor înpseu ­
– algoritmizarea
reaecua‑ieidegradul2se, verificădacă docod
­
treinumerepotfilaturileunuitriunghi)Elaborare ; de algoritmi cu respectarea
‑ prin
• structurarepetitivă(exemple: ‑ parcurge cipiilor programă rii structurate
Exerci‑ii de transcriere a algoritmilor din
rea numerelor naturale dintr‑un interval
pseudocod într‑un limbaj de programare.
înordinecrescătoaresaudescrescătoare,
Lucruînmediuldeprogramarepentru ‑ fami
sau cu un pas precizat, folosind toate liarizarea elevului cu interfa‑a şi op‑iunile
cele trei tipuri de structuri repetitive) .
acestuia
Algoritmi elementari
1. Prelucrarea numerelor:
• prelucrareacifrelorunuinumă ­ rde ( exem
plu,sumacifrelor,inversulunuinumăr,
testareaproprietă‑iidepalindrometc.);
• probleme de divizibilitate (de exemplu,
determinarea divizorilor unui numă r,
deter
­minarea c. m. m. d. c. / c. m. m. m. c. ,
testare malitate,
pri­ descompunere ‑ înfac
tori primi etc.);
• calcululunorexpresiisimple ‑ (sume,pro
duse etc.).
2. Prelucrarea unor secven‑e de valori:
• determinare minim/maxim;
• verificareauneiproprietă‑i(deexemplu,
dacă toate elementele din secven‑ă sunt
numere perfecte etc.);
• calculul unor expresii în care intervin
valoridinsecven‑ă(deexemplu:‑ numă
rarea elementelor pare/impare etc.);
• generareairurilor
ş recurentede ( exemplu:
şirul Fibonacci, progresii aritmetice şi
geometrice).
PRINCIPII DIDACTICE ŞI DIDACTICA FORMĂRII DE COMPETEN,E
85
86
Unitatea de învă‑are: Elementele de bază ale limbajului de programare
Număr de ore: 5 + 15 ore
Forma de organizare:
• teorie: 5 ore
• activitate practică: 15 ore
Competenţe
Conţinuturi Activităţi de învăţare Resurse Evaluare
specifice
No‑iuni introductive. 2.1 Exerci‑iidescriereaprogramelor în clasă
C++ : evaluare‑ cu
Structura programelor. 4.1 cuprinzând
: – conversa‑ia rentă / evalua

Vocabularul limbajului. 4.5 • tipuri de date standard; – exerci‑iul re sumativă la
Tipuri simple de date (standard). • constante, variabile; – exemplificarea sfârşitul‑ unită
Constante, variabile, expresii. • operatori; – problematizarea
în ‑ii de învă‑are
Citirea/scrierea datelor. • expresii C++; laborator:
exerci‑iul;
Reprezentarea algoritmilor într‑un limbaj de• citiri/scrieri în C++. exemplificarea;‑ ob
programare. Lucrul cu mediul Codeblocks
: servarea
Structuridecontrolimplementateînlimbajul • lansare;
de programare. • meniuri;
Mediul limbajului de programare studiat. • editarea unui program;
Prezentare generală . Editarea ‑ programe • compilarea unui program;
DIDACTICA PREDĂRII INFORMATICII

lor‑sursă. Compilare, rulare, depanare. • lansarea în execu‑ie a unui program.

Unitatea de învă‑are: Fişiere text


Număr de ore: 2 + 6 ore
Forma de organizare:
• teorie: 2 ore
• activitate practică: 6 ore
Competenţe
Conţinuturi Activităţi de învăţare Resurse Evaluare
specifice
Definire,opera‑iispecifice:citirea 4. şiafişareaExerci‑ii de utilizare a fişierelor
‑ în clasă
text: pen evaluare‑ cu
datelor folosind fişiere text, aplica‑
‑ 4.5 ii cu fiş
trui introducerea datelor şi ‑ extragerea
– conversa‑reia rentă / evaluare
ere text ( exemplu: ordonarea numerelorzultatelor – exerci‑iul sumativă la
dintr‑un fişier, interclasarea con‑inutului Lucrul
a înmediuldeprogramareCodeblocks
– problematizareaîn labo­
ra­ sfârşitul‑ unită
douăfişierecarememoreazănumereordona
‑ pentru limbajul C++ tor:
exerci‑iul;observarea;
‑ii de învă‑are
te crescător etc.). Exerci‑ii de citire/scriere cu/fără format
implementarea
Unitatea de învă‑are: Tablouri unidimensionale
Număr de ore:+ 3 11 ore
Forma de organizare:
• teorie:ore 11
• activitate practică: 3 ore
Competenţe
Conţinuturi Activităţi de învăţare Resurse Evaluare
specifice
Algoritmi fundamentali de prelucrare‑ a2.1 datelor structu Exerci‑iidetranscrierea ‑ algoritmi
în clasă: evaluarecurentă/
rate în tablouri 3.1 lor ce utilizează tipul tablou – conversa‑
din ia evaluaresumati
­vă ­
• Aplica‑ii cu parcurgerea tablourilor unidimensionale
3. pseudocod într‑un limbaj ‑ –deexerci‑
pro iul la sfârşitul ‑ uni
(exemple:citireaşiafişareaelementelor4.1 tablourilor) gramare
. – exemplificareată‑ii de învă‑are
• Aplica‑iicuinterschimbarea,deplasarea, 4.2 ştergereaExerci‑
şi iideidentificare‑ a–necesităproblematizarea
inserarea de elemente (exemple: inversarea 4.3 ordinii
‑ii structurării datelor–în algoritmizarea
tablouri
elementelor unui tablou, ştergerea elementelor 4.5 Exerci‑
cu oii de prelucrare a în datelor
laborator:
anumită proprietate, permutări circulare). struc­turate în tablouri – exerci‑iul
• Elementedistincteexemplu:
( transformareaunuivector Lucrul în mediul de programare – exemplificarea
în mul‑ime prin eliminarea elementelor nedistincte) Codeblocks
. pentru implementarea
–problematizarea
• Opera‑ii cu mul‑imi (reuniune, intersec‑ie, diferen‑ă, algo­ ritmilor ce prelucrează – algoritmizarea
datele
PRINCIPII DIDACTICE ŞI DIDACTICA FORMĂRII DE COMPETEN,E

apartenen‑ă, incluziune). structurate în tablouri – implementarea


• Căutare secven‑ială, căutare binară.
• Sortare (selec‑ie, inser‑
bubbleie,
sort, numărare).
• Aplica‑ii cu vectori de frecven‑ă (exemplu: ‑ frecven
‑a cifrelor unui număr, ordonare de cifre).
• Interclasareexemplu:
( opera‑iilecumul‑imiordonate).
• Secven‑e şi subşiruri, generarea submul‑imilor unei
mul‑imi.
• Aplica‑ii cu conversii între diferite‑ sisteme de nume
ra‑ie (cu şiruri de cifre).
87
8
Unitatea de învă‑are: Tablouri bidimensionale
Număr de ore: 5 + 15 ore
Forma de organizare:
• teorie: 5 ore
• activitate practică: 15 ore

Competenţe
Conţinuturi Activităţi de învăţare Resurse Evaluare
specifice
Algoritmi fundamentali de prelucrare
‑ 2.1 Exerci‑ii de transcriere a algoritmilor
a da ‑ în clasă ce: utili evaluare curentă /
telor structurate în tablouri zează tipul matrice din pseudocod‑ într‑
3.1 bidimensionale – conversa‑
un lim iaevaluare sumativă
• parcurgereatablourilorbidimensionale
3. bajpede programare – exerci‑iul la sfârşitul unită‑ii
linii/coloane (exemple: elemente
‑ 4.1 mini Exerci‑ii de identificare a necesită ‑ –‑ii structurăde învă‑are
exemplificarea
me/maxime,veciniiunuielement ‑ din
4.2 ma rii datelor în tablouri bidimensionale – problematiza ‑
trice,sumepeliniisaucoloane,4.3 ştergereaExerci‑ii de prelucrare a datelor structurate rea în
sau inserarea de linii şi coloane 4.5 etc.); matrice – algoritmizarea
Lucrul în mediul de programare Codeblocks
înlaborator: exer­
• tablouri bidimensionale pătratice,
‑ diago
pentru implementarea algoritmilor ‑ ci‑iul;ce prelu
exemplifi ‑
nale,împăr‑ireamatriciiînzoneînfunc‑ie
creazădatelestructurateîntablouri bidimensi
DIDACTICA PREDĂRII INFORMATICII

‑ careaproblemati ‑
dediagonale,generareauneimatricidupă
onale zarea; algori
­ tmi ­
o regulă etc.).
zarea;implemen­
tarea
Unitatea de învă‑are: Aplicarea algoritmilor în prelucrarea datelor
Număr de ore: 4 + 12 ore
Forma de organizare:
• teorie: 4 ore
• activitate practică: 12 ore

Conţinuturi Competenţe Activităţi de învăţare Resurse Evaluare


specifice
Aplica‑ii interdisciplinare (specifice
‑ 5.1 profi
Exerci‑ii de elaborare a algoritmilorîn clasă: de evaluarecurentă/
lului) 5.2 rezolvare a unor probleme din ‑ aria– conversa‑
curri ia evaluare sumati

• Opera‑ii cu frac‑ii şi numere ra‑ionale culară a specializării – exerci‑iul vălasfârşitul ‑ uni
(simplificareafrac‑iilor,adunare, ‑ scăde Studii de caz în vederea alegerii ‑ – exemplificarea
unui al tăii
‑ de învă‑are
re, înmul‑ire, împăr‑ire, comparare). goritmeficientderezolvarea ‑ unei
– problematizarea
proble
• Generarea primilor n termeni ai unei me – algoritmizarea
progresii. în laborator:exerci

• Aplica‑iigeometricedistan‑( adintredouă iul;
‑ problematizarea;
puncte,volumulcorpurilorregulate,cen­ algoritmizarea;imple­
truldegreutatealuneimul‑ ‑ imidepunc mentarea
PRINCIPII DIDACTICE ŞI DIDACTICA FORMĂRII DE COMPETEN,E

te etc.).
• Determinarea punctului de intersec‑ie a
douămobileînmişcarerectilinie ‑ şiuni
formă.
• Determinarea masei moleculare a unui
compus chimic.

Analiza eficien‑ei unui algoritm. Analiza


eficien‑eiadoisaumaimul‑ialgoritmicare
rezolvă aceeaşi problemă.
89
90 DIDACTICA PREDĂRII INFORMATICII

Resurse bibliografice:
Emanuela Cerchez, Informatica. Culegere de probleme pentru liceu, Editura
Polirom, Iaşi, 20 .
EmanuelaCerchez,MarinelŞerban, Informatica pentru gimnaziu,EdituraPolirom,
Iaşi, 20 .
Emanuela Cerchez, Marinel Şerban, Informatica. Manual pentru clasa a IX‑a,
Editura Didactică şi Pedagogică, Bucureşti, 20 4.
EmanuelaCerchez,MarinelŞerban, PC. Pas cu pas,ed.aII‑a,EdituraPolirom,
Iaşi, 20 5.
Emanuela Cerchez, Marinel Şerban, Programarea în limbajul C/C++ pentru
liceu, vol. I, Editura Polirom, Iaşi, 20 5.
Emanuela Cerchez, Marinel Şerban, Alexandru Perie‑anu, Dragoş Răduca
Elemente de bază ale limbajului C/C++, soft educa‑ional, 20 6.
Mariana Miloşescu, Informatica. Manual pentru clasa a IX‑a, Editura Didactică
şi Pedagogică, Bucureşti, 20 6.

Competen‑e generale şi specifice:

CG1. Identificarea conexiunilor dintre informatică şi societate.


CS1.1 Identificarea aplica‑iilor informaticii în via‑a socială.
CS1.2 Recunoaştereasitua‑iilorîncareestenecesarăprelucrarea ‑ a
ma‑iilor.
CG2. Identificarea datelor care intervin într‑o problemă şi a relaţiilor dintre acestea.
CS2.1 Descriereauneisuccesiunideopera‑iiprincareseob‑in,dindat
datele de ieşire.
CG3. Elaborarea algoritmilor de rezolvare a problemelor.
CS3.1 Analizarea enun‑ului unei probleme şi stabilirea paşilor ‑ de re
blemei.
CS3.2 Reprezentarea algoritmilor în pseudocod.
CS3.3 Respectarea principiilor programării structurate în proces
algoritmilor.
CG4. Implementarea algoritmilor într‑un limbaj de programare.
CS4.1 Transcrierea algoritmilor din pseudocod într‑un limbaj de pr
CS4.2 Identificarea necesită‑ii structurării datelor în tablouri.
CS4.3 Prelucrarea datelor structurate.
CS4.4 Utilizareafişierelortextpentruintroducereadatelorşiext
CS4.5 Utilizarea unui mediu de programare (pentru limbajul Pascal s
CG5. Aplicarea algoritmilor fundamentali în prelucrarea datelor.
CS5.1 Elaborarea unui algoritm de rezolvare a unorprobleme din ari
specializării.
CS5.2 Alegerea unui algoritm eficient de rezolvare a unei probleme
PRINCIPII DIDACTICE ŞI DIDACTICA FORMĂRII DE COMPETEN,E 19

2. 5 Elaborarea strategiei didactice


Elaborarea strategiei presupune alegerea unui sistem de forme, me
mijloace. De selectarea şi combinarea acestora depinde reuşita act
Selectarea tehnicilor de învă‑are se face în func‑ie de materialel
variază în func‑ie de metodele utilizate, iar metodele sunt determi

‑ele de dezvoltat, de con‑inut şi de nivelul colectivului de elevi
depinde şi de îmbinarea judicioasă a celor „3M” (Metode, Materiale, Mij
Această corelare este gândită din momentul întocmirii scenariulu
se în‑elege o descriere anticipată a desfăşurării pas cu pas a unei lec‑i
detaliu vizează aspectele esen‑iale ale condi‑iei elevului şi schimb
să le realizăm.

2. 6 Clasificarea competenţelor
În momentul proiectării unei lec‑ii, vom avea în vedere formarea de:
– competen‑e sub raport stadial;
– competen‑e sub raport psihopedagogic.
a) Competen‑e sub raport stadial
Sunt competen‑e pe care le putem împăr‑i, la rândul lor, în:
• Competenţe‑cheie, care definesc elementele şi sarcinile rezultate di
scopului final al educa‑iei, cum ar fi cele legate de formarea unei
puternice, complexe, cu o mare dispozi‑ie spre ini‑iativă şi creativit
vedere:
– formarea capacită‑ii de asimilare a cunoştin‑elor de către elevi;
– formarea capacită‑ii de transfer a cunoştin‑elor şi a experien‑ei de
la rezolvarea unor sarcini necunoscute, apărută pe parcursul ‑ d
sului didactic;
– formarea limbajului ştiin‑ific de specialitate;
– formarea unei atitudini ştiin‑ifice; trebuie insuflat un ‑ respe
tru ştiin‑ă şi importan‑a acesteia în evolu‑ia sa ulterioară; elev
în‑eleagă că procesul de cunoaştere nu se încheie într‑o perioadă de
detimp,căprocesuldecercetaretrebuiesăprelucrezeoriceinfo
critic pentru a fi eficient, fără a se face afirma‑ii categorice/defin
Competen‑ele‑cheiesuntorientatespreanumitelaturialepro
intelectuală, tehnologică, profesională, morală, estetică, fizică etc.
• Competenţe generale ale disciplinei, care sunt formulate în planul‑ ‑ ca
cesuluideînvă‑ământ(privitcaunsistemcomplexşiîntr‑opermanent
În primul rând, se urmăreşte dobândirea unei culturi generale ‑ de
mântul preuniversitar), a unei culturi de specialitate (în înv
sau chiar a unei meserii (şcoli de profil).
92 DIDACTICA PREDĂRII INFORMATICII

• Competenţe specifice, care se definesc pe obiect de studiu şi se formează


‑ pe
cursul unui an şcolar. Ele sunt derivate din competen‑ele general
dobândireaacestora.Competen‑elorspecificeliseasociazăprinp
de con‑inut.
• Competenţele derivateprivescîndeplinireaconcretăaunoractivită‑icur
ar fi cele legate de predarea unei lec‑ii sau de exemplificarea ‑ uno
rator.
b) Competenţe sub raport psihopedagogic
Sunt competen‑e necesare formării de capacită‑i intelectuale (teo
şi/sau afective. Şi acestea pot fi clasificate pe mai multe categorii
• Competenţe cognitive.Prinacesteaseurmăreşteformarea/dezvoltarea
‑ ur
lor capacită‑i intelectuale:
– cunoaşterea: posibilitatea, în principal, a îndeplinirii sarc
memorarea, reproducerea şi recunoaşterea materiei de asimila
– în‑elegerea: se referă la transpunere, interpretare şi extrapol

Transpunerea înseamnă reformularea unei defini‑ii/no‑iuni sau a unui re


propriile cuvinte; de exemplu, traducerea unui algoritm dintr
oarecare într‑un limbaj implementat.
Interpretarea înseamnă în‑elegerea comportării/evolu‑iei unui obiect/s
într‑un context/mediu clar precizat.
• Competen‑e extrapolare.
de Au drept consecin‑ă căpătarea îndemânării ‑ de a ev
den‑ia consecin‑e noi, neidentificate încă în procesul anterior:
– analiza: demonstrează capacitatea elevului de a gândi discrim
deductiv, de a distinge faptele concrete (noi) de ipotezele (gene
– sinteza: vizează – în  principal 
– activitatea intelectuală de corela
fenomenelor observate şi a cunoştin‑elor asimilate, în vederea
lucrări cu caracter personal;
– evaluarea: implică posibilitatea formulării de către elevi a un
valoare, originale (de natură ştiin‑ifică, socială, culturală), raport
la cantitatea de informa‑ii acumulate până în acel moment.
• Competenţe psihomotorii. Asemenea obiective includ formarea de perc
capacită‑i, deprinderi motorii/practice legate de utilizarea ‑ cor
raturi de laborator (tastatură, mouse, joystick etc.). Totul treb
mod profesional şi utilizat rapid, precis, cu o bună coordonare a miş
implicând agilitate şi suple‑e.
• Obiective afective (conative). Au scopul de a dezvolta emo‑ii şi sentimente ‑ su
rioare, contribuind la formarea conştiin‑ei şi conduitei – vizează deci,morale 
în
mare, formarea intereselor, atitudinilor şi valorilor etico‑mor
elevului. Personalitatea poate fi formată începând cu o vârstă ‑ fo
pizat şi utilizând idei, norme, practici şi valori deja recunoscute
de asemenea deprinderi reprezintă scopul principal al predării
gimnaziu/liceu, rezultatele indirecte pot fi spectaculoase. Să ne
PRINCIPII DIDACTICE ŞI DIDACTICA FORMĂRII DE COMPETEN,E 93

societateainforma‑ionalăşidefaptulcăpractic,
, informaticapoatede
de lucru pentru toate celelalte discipline.

2. 7 Formularea competenţelor
Nu considerăm că scopul principal al acestui volum este acela de a int
elaborării unui plan sau a unei programe analitice pentru o discip
eaştiin‑acalculatoarelorsautehnologiainforma‑ieişicomunicării.A
dinstrategiile(petermenscurtsaulung)dedezvoltare/promovarea
de competen‑a consiliilor profesorale, inspectoratelor şcolare, se
ministerului de resort etc. În momentul în care un plan de învă‑ământ şi
analitică sunt însă fixate, alegerea competen‑elor specifice din progr
competen‑elor derivate pentru o lec‑ie reprezintă obliga‑ia profeso
o parte indispensabilă a oricărei proiectări didactice. Formarea ace
în plus faptul că un cadru didactic are o orientare globală şi coerentă
‑ a
lui proces de învă‑ământ, că el cunoaşte şi aplică în mod curent elementele

dică, că procesul în sine de coordonare a învă‑ării în clasă nu mai are secre
urma oricărei lec‑ii, elevii trebuie să dobândească anumite cunoş ‑ tin‑e
tateadealestructura(analiza,sintetiza)înmodcreator.Aceştiatr
şi posibilitatea de a se manifesta direct, interven‑ia profesorulu
degrabă discretă. Prin urmare, scopurile urmărite sunt transpuse în
formulate în termenii unor opera‑ii, ac‑iuni sau manifestări observa
concordan‑ăcucerin‑elegenerale.Formareacompeten‑elorderivate„e
putând însă avea în anumite situa‑ii şi o finalitate pe un termen mai l
ideea că deprinderile şi cunoştin‑ele dobândite anterior vor treb
prinac‑iuniviitoarecaresăcontribuiedecisivlaincluderealorîn
de cunoştin‑e, deprinderi şi priceperi. Formarea de competen‑e trebui
eventual gradat, etape diferite de dificultate care să precizeze:
– competen‑e în termeni comportamentali observabili;
– sarcini concrete de învă‑are, precum şi contextul de realizare;
– criteriul de succes şi modul de evaluare.

2. 8 Momentele lecţiei
Putem considera că principalele momente ale unei lec‑ii pot fi sumari
urmează:
– captarea aten‑iei;
– enun‑area competen‑elor de dezvoltat;
– reactualizarea cunoştin‑elor învă‑ate anterior;
– prezentarea con‑inutului noii lec‑ii;
94 DIDACTICA PREDĂRII INFORMATICII

– dirijarea învă‑ării;
– asigurarea feedbackului;
– intensificarea aten‑iei;
– asigurarea reten‑iei şi transferului de cunoştin‑e.

Succesiunea şi importan‑a lor variază de la un tip de lec‑ie la altul


tipuri de lec‑ii sunt:
– lec‑ia de comunicare/însuşire de noi cunoştin‑e;
– lec‑ia de formare de priceperi şi deprinderi;
– lec‑ia de fixare şi sistematizare;
– lec‑ia de verificare şi apreciere a rezultatelor şcolare;
– lec‑ia mixtă.

Subliniem încă o dată că lec‑ia este, în concep‑ia noastră, un act de crea


nu se poate încadra în şabloane. Profesorul se bazează doar pe anumite
‑ s
tru întocmirea de diverse scenarii. Vom prezenta în continuare ‑ un p
logie didactică pentru o lec‑ie mixtă.

Proiect de tehnologie didactică

Şcoala:  –
Disciplina: Informatică
Clasa: a IX‑a
Profilul: Matematică‑informatică, intensiv informatică
Data:  –
Profesor:  –
Unitatea de învăţare: Tablouri bidimensionale
Tema lecţiei: Parcurgerea tablourilor bidimensionale pe linii şi colo
Tipul lecţiei: Mixtă
Durata: 50 de minute

Competenţe generale:
CG2
( Identificarea
) datelorcareintervinîntr‑oproblemăi
ş arela‑iilordi
(CG3) Elaborarea algoritmilor de rezolvare a problemelor.
(CG4) Aplicarea algoritmilor fundamentali în prelucrarea datelor

Competenţe specifice:
(CS4.2 ) Identificarea necesită‑ii structurării datelor în tablouri.
(CS4.3 ) Prelucrarea datelor structurate.
(CS5.1 )Elaborareaunuialgoritmderezolvareaunorproblemedin ‑ aria
lară a specializării.
(CS5.2 ) Alegerea unui algoritm eficient de rezolvare a unei probleme.
PRINCIPII DIDACTICE ŞI DIDACTICA FORMĂRII DE COMPETEN,E 95

Competenţe derivate:
La sfârşitul activită‑ii didactice elevii vor fi capabili:
(CD1) Să analizeze problema propusă şi să identifice necesitatea repre
eficiente a datelor sub formă de tablou bidimensional/unidimensio
(CD2) Să descrie parcurgerile pe linii/coloane ale elementelor ‑ unui
mensional care intervin în rezolvarea problemelor propuse.
(CD3Să) elaborezealgoritmieficien‑iderezolvareaproblemelorpropus
parcurgerile pe linii/coloane ale unui tablou bidimensional.
(CD4) Să implementeze secven‑e de cod C++ pentru rezolvarea cerin‑‑ elor p
blemelor propuse.

C1. Competenţe cognitive


La sfârşitul lec‑iei, elevii vor fi capabili:
C1.1: să analizeze o problemă, să identifice necesitatea utilizării stru
tip tablou bidimensional şi/sau unidimensional.
C1.2: să descrie structurile de date identificate.
C1.3: să conceapă algoritmul de rezolvare a aplica‑iei propuse.

C2. Competenţe afective


La sfârşitul lec‑iei, elevii vor fi capabili:
C2.1: să argumenteze corect solu‑ia prezentată.
C2.2: să se autoevalueze corect.
C2.3: să dovedească curiozitate şi interes pentru no‑iunile prezentat

C3. Competenţe atitudinale/comportamentale


La sfârşitul lec‑iei, elevii vor fi capabili:
C3.1: să conştientizeze importan‑a alegerii unor structuri de date
rezolvarea problemelor cu ajutorul calculatorului.
C3.2:săargumentezeeficien‑astructuriloralesedinpunctul ‑ deved
lui de memorie.

C4. Competenţe acţionale


La sfârşitul lec‑iei, elevii vor fi capabili:
C4.1: să utilizeze corect în aplica‑ii no‑iunile teoretice însuşite.
C4.2: să implementeze corect în C++ algoritmii elabora‑i.

Strategii didactice
Principii didactice:
– principiul sistematizării şi continuită‑ii cunoştin‑elor;
– principiul accesibilită‑ii;
– principiul individualizării şi diferen‑ierii învă‑ării.
96 DIDACTICA PREDĂRII INFORMATICII

Metode şi procedee didactice:


– problematizarea (P), algoritmizarea (A), conversa‑ia frontală şi ind
(Cv), explica‑ia (E), munca independentă (M).
Forme de organizare: lucrul frontal şi individual
Forme de dirijare a învă‑ării:
– independentă;
– dirijată de profesor prin mijloacele de învă‑are.

Metode de evaluare:
– evaluare continuă pe parcursul lec‑iei;
– apreciere verbală.

Resurse materiale:
– tabla;
– fişa de probleme.
Structura lecţiei pe secvenţe de instruire

CS/CD Min. Etapele lec‑– Activitate


iei  elev‑profesor MD
2’ Moment organizatoric
Profesorul: verifică frecven‑a elevilor, verifică existen‑a resurselo
materiale
Elevii: se pregătesc pentru – deschid
oră  caietele
3’ Captarea atenţiei. Enunţarea competenţelor de format
Profesorul:anun‑tema
ă lec‑iei,distribuiefişeledeprobleme,explică
modul de desfăşurare a orei
Fişa con‑ine enun‑ul unei probleme cu mai multe cerin‑e, o parte
dintre ele fiind obligatorii, iar o cerin‑ă sau două, mai dificile, su
pentru elevii cu performan‑e mai bune. Vezi fişa.
Elevii: răspund solicitărilor profesorului, cer lămuriri
Desfăşurarea lecţiei
Profesorul solicită elevilor: citirea atentă a cerin‑P,elor, Cv propune
CD1 40’ unor structuri de date care să permită rezolvarea ‑ eficientă a a
ra, argumentarea alegerii
C1.1 Elevii: analizează problema, identifică tipurile de date ‑ şi argumen
C1.2 tează oportunitatea reprezentării datelor printr‑o struc
tabloubidimensional,descriindsemnifica‑iacomponentelorac
Profesorulvapuneîntrebări,stimulândprinconversa‑ieparti
activă a elevilor la oră. Cv
Dirijarea învăţării
Întrebări posibile:
• Ce structură de date ar permite memorarea răspunsurilor da
către n candida‑i la un testm întrebă
cu ri de tip grilă?
• Cum putem memora răspunsurile corecte m întrebă
la cele
ri?
• Cum putem determina întrebările la care a răspuns corect u
anumit candidat?
• Cum putem determina candida‑ii care au răspuns ‑ greşit la o în
trebare dată?
• Cum actualizăm răspunsul unui candidat la o întrebare dată?
PRINCIPII DIDACTICE ŞI DIDACTICA FORMĂRII DE COMPETEN,E 97

• Cum calculăm punctajul unui candidat?


CD2 • Ce tip de date este potrivit pentru reprezentarea răspu
40’ candida‑ilor şi a răspunsurilor corecte, astfel încât struc
date aleasă să utilizeze eficient memoria? Dar pentru ‑ repreze
tarea punctajelor?
• Care sunt candida‑ii cu punctaj maxim?
Răspunsurile aşteptate ale elevilor:
• Pentru memorarea răspunsurilor n candida‑
a i la un testm cu
întrebări se poate folosi un tablou bidimensional, în care l
sunt candida‑ii, iar coloanele sunt întrebările. E
CD3 • Răspunsurilecorectepotfimemorateîntr‑ melemen
unvector
‑ cu
te sau pe prima/ultima linie a tabloului bidimensional.
• Întrebărilelacarearăspunscorectuncandidatsegăsescpeliniaca
didatuluii ş auproprietateacăvaloareacoincidecuvaloarear
suluicorectaflatpeaceeaşicoloanăi ş peliniasau
0 peultimalin
C2.1 în
( func‑iedeloculîncareaufostmemoraterăspunsurilecorecte
• Candida‑iicareaurăspunsgreşitla kseîntrebarea
determinăprin
parcurgerea coloaneik şi numărarea elementelor care ‑ sunt dife
ritedeceledepelinia n linia
/0 + 1i
ş coloana
kră
( spunsulcorect).
C2.2 • Actualizarearăspunsuluicandidatului xlaîntrebarea ypresupune
modificarea valorii din matrice aflate x şi coloana
pey.
linia
• Punctajulunuicandidatestenumărulrăspunsurilor A corect
m întrebări şi se determină parcurgând pe linii candida‑ ‑ ii I, cal
culând pentru fiecare linie numărul de valori egale cu cele
linia răspunsurilor corecte; punctajul fiecărui candidat s
memora într‑un vector n componente
cu sau pe coloana 0 sau
M + 1 în matrice; M
C3.2 • Fiind test grilă cu răspuns unic, răspunsurile corecte ‑ pot fi me
morate într‑o matrice cu componente de tip char, care ocupă 1
octet în loc de valori de tip int, care ocupă 4 octe‑i fiecare.
• Punctajelecandida‑ilornumaipotfimemorateînmatricepe
că vor fi de tip int şi se va opta pentru reprezentarea lor înt
tablou unidimensional, la fel şi pentru răspunsurile corect
• Pentre determinarea candida‑ilor cu punctaj maxim este ne
determinareapunctajelor,apunctajuluimaxim,‑ apoi,prinparcu
rea candida‑ilor, se vor determina cei care au punctajul max
Intensificarea atenţiei
Potvenielevilatablăcaresăexemplificefunc‑ionalitatea ‑ algo
C1.3
lui pe date concrete, realizând eventual o reprezentare g
matricii numerice, încercuind pentru fiecare cerin‑ă linia/col
elementul, pentru o mai bună în‑elegere.
C4.1
Elevi diferi‑i vor scrie la tablă secven‑e de cod C+‑ + care imple
menteazăalgoritmiidiscuta‑ipentrurezolvareacerin‑elelorp
C4.2
propuse. Clasei i se cere să urmărească, să corecteze‑ sau să îmbu
nătă‑ească varianta scrisă.
Profesorul încurajează conversa‑ia, acordă feedback răspunsurilor
elevilor, intervenind cu explica‑ii suplimentare acolo unde
nelămuriri sau erori de logică ori de exprimare.
Profesorul încurajează elevii cu performan‑e superioare să rezolve
cerin‑ele suplimentare.
98 DIDACTICA PREDĂRII INFORMATICII

Asigurarea reţinerii şi transferului de cunoştinţe


Profesorulpunecâtevaîntrebăripentruapunctacompeten‑elev
– deceafostaleasăreprezentareadatelorprinmatricisau/i ş vec
– când este necesară reprezentarea datelor prin tablouri
bidimensionale?
– cum se referă o valoare-un dintr
astfel de tip structurat de date?
Evaluarea:
CD4 – pe parcurs, prin observarea sistematică a reac‑iilor elevil
muncii lor independente, prin aprobare sau dezaprobare ver
în urma răspunsurilor date de elevi la întrebări;
– la finalul orei, cu note argumentate de rezultatele prest
(cei care au ieşit la tablă, cei care au rezolvat independent
corect sarcinile distribuite de profesor).
2’ Aprecierea activităţii
Profesorulfaceaprecieriprivindperforman‑eleelevilor,recom
de recuperare celor care nu au reuşit să rezolve sarcinile obli
şi îi notează pe cei care au fost activi.
Profesorul poate cere elevilor să se autoevalueze.
3’ Tema pentru acasă
Profesorul propune tema pentru acasă, elevii notează în caiete.
Temapentruacasăarputeafioaplica‑ieasemănătoare ‑ cucearezol
vată şi pe care elevii o au pe fişa de probleme.

Clasa: a IX‑a
Temalec‑iei:Tablouribidimensionale 
–parcurgereapelinii/coloaneauneimat

Fişă de probleme

Un test M cu
întrebări de tip grilă cu răspuns unic este aplicat N unui
candida‑1i ( ≤ N ≤ 100, 3 ≤ M ≤ 300). Răspunsurile corecte şi răspunsuril
candida‑ilor sunt numere din mul‑2,
{1, imea
3, 4}. Fiecare răspuns corect
valorează un punct.
Scrie‑i un program C/C++ care citeşte din fiştest.in,
ierul N M, apoi de pe
următoarele N linii câte
M numere reprezentând răspunsurile elevilor M între
‑ la c
bări. De pe ultima linie se citescM răspunsuri
cele corecte.
Se cere:
• Numărul candida‑ilor care au greşit la întrebarea 3.
• Întrebările la care nimeni nu a răspuns corect.
• Punctajul maxim ob‑inut de un candidat.
• Pentruuncandidat K cititdelatastatură,săseafişezepunctajulob‑inu
întrebare, în ordine.
• Să se modifice răspunsul candidatului
x la întrebarea
y ( x, y şi noul răspuns
se citesc de la tastatură).
PRINCIPII DIDACTICE ŞI DIDACTICA FORMĂRII DE COMPETEN,E 9

Cerin‑e suplimentare:
• Să se determine candida‑ii care au ob‑inut punctajul maxim.
• Să se afişeze lista candida‑ilor în ordinea descrescătoare a puncta

Temă: Adapta‑i algoritmul propus astfel încât să rezolve următoare


considerăm că se dă punctajul asociat fiecărei întrebări, iar punctaju
candidat se calculează adunând punctajele răspunsurilor corect
cele ale răspunsurilor greşite. Se cere:
• Întrebările la care au greşit cei mai mul‑i candida‑i.
• Procentul de întrebări la care a răspuns corect
k. candidatul
• Candida‑ii cu punctajul maxim.
• Lista candida‑ilor cu punctaj pozitiv, în ordine descrescătoare.
Capitolul 3

Metode, tehnici şi procedee didacti

Sarcinile didactice se realizează cu ajutorul


metodelor, tehnicilor şi procedeelor
didactice. Folosirea judicioasă a acestora are o deosebită importan‑ă pe
activită‑ii la catedră. Pe de altă parte, con‑inuturile fiecărei discipl
propuseimpunmetodespecifice.
Adoptarea  –şinu adaptarea  –metodelordepredare
aunordisciplinelaaltedisciplinepoateconduce dictorii.
larezultate
Aplicarea
co
metodelor, tehnicilor şi procedeelor didactice generează activită ‑ ‑
fice.

3.1 Metode generale de învă‑are

Trebuiesăavemînvederecaredintrecompeten‑edetipopera‑ionalre
studierii competen‑elor‑cheie şi a celor specifice sunt urmărite
‑ pri
nelordeinformatică,cecunoştin‑enoivorasimilaeleviişicecunoş ‑ tin‑e
dite în cadrul altor discipline vor fi utilizate. Certadopta
este că infor
şi adapta metode de predare de la alte discipline, dar acest lucru tr
‑inându‑se cont de:
• Dinamica con‑inuturilor şi particularită‑ile metodice ale predări
• Individualizarea învă‑ării informaticii ca disciplină deschisă şi dina
• Constructivism, care pretinde o participare prioritară conşt
procesul de autoinstruire.
• Studiul informaticii, atât ca disciplină autonomă, cât şi ca instru
al altor discipline.

Dintre metodele de predare specifice matematicii, de exemplu, ami


• Metoda demonstra‑iei.
• Metoda reducerii la absurd.
• Metoda induc‑iei matematice (structurale).
20 1 DIDACTICA PREDĂRII INFORMATICII

A cestemetodenufac,înprincipiu,obiectulcăr‑iidefa‑ăCititorul
. in
consulta[An],
însă [CMS ], [RV ].

În cele ce urmează se vor analiza metodele generale, clasice,


‑ utiliz
darea informaticii:
• Expunerea sistematică a cunoştin‑elor.
• Conversa‑ia.
• Problematizarea.
• Modelarea.
• Demonstrarea folosind materialul intuitiv.
• Exerci‑iul.
• Învă‑area pe grupe mici.
• Lucrul cu manualul.
• Jocurile didactice.
• Instruirea programată.

În tratarea acestor metode se vor urmări cu predilec‑ie particu


predării disciplinelor de informatică şi, în special, aplica‑iile pract
eventual, contribu‑ia informaticii la însuşirea competen‑elor ‑ dida
pline din învă‑ământul preuniversitar. În activită‑ile didactice sp
este necesară utilizarea combinată a metodelor de mai sus.

3.1 Expunerea sistematică a cunoştinţelor


Dintre formele pe care le îmbracă expunerea sistematică a cunoştin‑elo
povestirea,
prelegerea, descrierea, explicaţia, conversaţia etc.opină
), mcăinformaticautilizează
cu precădere explica‑ia. Elementele explicative domină procesul ‑ de in
matică, acestea fiind caracteristice atingerii unor competen‑e spe
formarea de deprinderi şi abilită‑i practice de utilizare a unor pro
complexe,deşisuficientdeintuitiveprininterfa‑ă.Ceeaceconferăonot
de adaptabilitate este operativitatea impusă de aplicarea ‑ aces
rea expunerii cu demonstra‑ia practică, elevii fiind astfel scoş ‑ i din p
rii de simpli receptori. Analogiile cu situa‑ii cunoscute fac din re
participantactivlaexpunere.Expunereanusedesfăşoarăîncondi‑iiper
adicăfărăalternative şi reveniri, niciladisciplinelecărorametoda ‑ l
tică. La informatică, aceasta se întâmplă cu atât mai pu‑in. Elevul ‑ prime
di‑iiunivocedoarceeaceisecomunicăînfunc‑iedeniveluldecunoştin
de propriile presupuneri, de experien‑a sa practică, de nivelul său d
în‑elegerea codului de comunicare, ca să nu mai vorbim de oscila‑iile
Profesorul trebuie să reproiecteze lec‑ia prin prisma posibilită ‑ ‑ilo
loacele lor de gândire. Accentul trebuie pus pe ra‑ionament,‑ prin ar
nice, prin scoaterea în eviden‑ă a modului în care trebuie să gândeasc
METODE, TEHNICI ŞI PROCEDEE DIDACTICE 30 1

trebuie să fie înso‑ită de un control permanent al gradului de recept


urmărindu‑se mimica elevilor (edificatoare în specialsatisfacţia
la elevii mici),
înţe-
legerii lec‑iei sau
îngrijorarea şi neliniştea în cazul în care elevul a pierdut fir
explica‑iei. Întrebările, repeti‑ia, explica‑iile suplimentare, analog
cunoscute permit realizarea unui control permanent al receptiv
informaticărecurgemneapăratlametodaexpunerii(explica‑iei)atunci
complet nouă şi printr‑ o activă nu se poate descoperi noutatea, sau me
metodă
activă este ineficientă din punctul de vedere al operativită‑ii. As
aceastămetodăpentruaîn‑elegeno‑iuniledealgoritminclusiv ( exemplifi
de structură de date (inclusiv modalită‑ile de reprezentare), de coma
procedură standard (în legătură cu sistemul de operare sau mediul d
ales),dera‑ionament(într‑unspa‑iuînchisales)şichiarmodalitatead
introducere a unor programe utilitare, softuri de aplica‑ie ‑ etc. În
tru prezentarea comenzilor unui sistem de operare, a unui editor d
grafic,aaltorsofturimaicomplicateprevăzutedeprogramaşcolarăse , po
la următoarele metode:
• Expunerea la tablă în paralel cu secven‑e de prezentări multimedia
• Explicareameniurilordiverseloraplica‑iisimultancuexersare
în cadrul orelor de aplica‑ii practice de laborator.

Fiecaredintreceledouăvariantedemaisusprezintăatâtavantaje
Prima este folosită atunci când profesorul nu are la dispozi‑ie un l
pentru predare, iar aceasta se face cu întreaga clasă. A doua variant
mai eficientă, deoarece elevul are posibilitatea de a testa pra
cunoştin‑elorproaspătexplicate.Totuşi,uniieleviîşiformeazămai ‑ reped
rea utilizării, iar al‑ii mai greu, primii fiind tenta‑i să încerce între t
(chiar neprezentate încă de profesor), ceea ce creează disfunc‑ionalită
‑ ‑i î
rea lec‑iei, aprecierea gradului de asimilare şi chiar formarea unor
utilizare(datorateîncercărilorindividuale,necoordonate)Pe . lâ
uneori din vedere realizarea unui rezumat sistematic al modului
fiindtentatsăexersezeimediatşiuităsă‑şinoteze(înstilpropriu)modu
a acesteia.

3.1 2 Metoda conversaţiei


Metoda conversa‑iei se referă la dialogul dintre profesor şi elev, în c
nutrebuiesăaparăînrolulexaminatoruluipermanent,cialunuicola
numai întreabă, ci şi răspunde la întrebările elevilor. Prin metoda co
stimuleazăgândireaelevilorînvedereaînsuşirii,fixăriişisistemati
şi deprinderilor, a dezvoltării spiritului de colaborare şi de echipă. S
oparticipareactivădinparteaelevilor,întrebărileputândfiadre
40 1 DIDACTICA PREDĂRII INFORMATICII

moment al lec‑iei. Metoda conversa‑iei este frecvent utilizată ‑ în înv


cii,eaimplicândundialogcontinuuîntreelevşiprofesor(şinunumai)res ,
anumite reguli elementare de colaborare constructivă care ‑ să nu d
rea demersului didactic, ci să‑l amplifice şi să‑l consolideze. Conversa
poate îmbrăca forme diferite, în func‑ie de anumite criterii.
Raportată la numărul de persoane, conversa‑ia poate fi:
• Individuală. Se poartă între un elev şi profesor.
• Colectivăsaufrontală.Întrebărilesuntadresateîntregiiclase,iarrăsp
de la diferi‑i elevi.

După obiectivele urmărite în diferite variante de lec‑ii, conversa


• Introductivă. Aceasta este folosită în momentul captării aten‑iei şi re
cunoştin‑elorasimilateanterior,pentruatreziinteresulfa‑del ă
• Expozitivă. În timpul prezentării unei noi lec‑ii, ea poate trezi inte
fixarea noilor cunoştin‑e.
• Recapitulativă. Este utilizată atunci când se urmăresc recapitularea

rea unor rezultate prezentate anterior.
• Evaluativă.Esteindicatădesigur,
, peparcursulprocesuluideverificare
• Dezvoltată. Este destinată prezentării unui subiect nou, discutat an

Caracteristicile principale ale întrebărilor, indiferent de


impun precizie şi vizarea unui singur răspuns. De multe ori se adresea
vagicareîncepcu„Cepute‑ispunedespre…”sau„Ceşti‑idespre…”,carep
elevul într‑un dubiu total în legătură cu con‑inutul răspunsului. Din
face parte şi celebrul îndemn de evaluare „Prezintă subiectul pe car
mai bine”. Nu este normal nici ca întrebarea să con‑ină răspunsul sau să c
răspuns prin „da” sau „nu”. Ea trebuie să contribuie la dezvoltarea
asemenea, răspunsurile acceptate trebuie să fie corecte, complete, ‑ e
meniprecişi,săoglindeascăoîn‑elegereefectivăaproblemeiabordate.Dis
şi rolul de a corecta greşelile din răspuns. Identificarea cauzei, elim
precum şi posibilitatea reapari‑iei ei sunt foarte importante. Co
primordial prin faptul că ajută la formarea limbajului informatic, ‑ la
onamentului logic şi a gândirii elevului.
Dificultă‑ilepecareelevulleîntâmpinăînformarealimbajuluides
lăsaurmeînplanafectiv,repercutându‑seasupradezvoltăriiluiint
se impune o analiză amănun‑ită a cauzelor acestor dificultă‑i, iar scoat
eviden‑trebuie
ă relevatăprinexaminăriscrisesauorale.Afilacurent
de limbaj pe care le au elevii la anumite vârste şcolare şi la un an
însuşire a disciplinei înseamnă, în primul rând, să nu se abuzeze de ‑ terme
cialitate.Serecomandăînlocuireaunorastfeldetermenicusinoni
curent sau explicarea sensului acestora în limbaj uzual, dacă ‑ un alt
sibil. Dificultatea formării vocabularului de specialitate const
METODE, TEHNICI ŞI PROCEDEE DIDACTICE 50 1

cuvinte noi sunt introduse în acelaşi timp cu no‑iunile noi, ceea


‑ ce f
‑irea limbajului informatic să se realizeze simultan cu dezvoltarea

rii informatice. Stă pânirea limbajului se reflectă în în‑ elege
documenta‑iilor de specialitate şi, în final, în rezolvarea probleme
acestuia provoacă inhibi‑ie, imposibilitatea comunicării sau chiar o
în‑elegeredefectuoase,făcându‑lpeelevtimid,incoerentsauchiarridi
Această metodă mai are şi următoarele subdirec‑ii:
• Euristică.Nuexistăreguliprecise,sebazeazădoarpeîntrebare/ră‑ spuns,în
‑ie de evolu‑ia concretă a dialogului.
• Tip dezbatere. Se realizează un schimb de păreri în care este implicat un a
colectiv.Arfibinesăfietrasei ş nişteconcluziicaresănuaibădoarunro
• Catehetică. Impune efectuarea unor teste care implică memoria.

Este clar că o conversa‑ie se face prin întrebări care trebuie


‑ să sati
rele condi‑ii (unele dintre ele rezultând din ceea ce am amintit ma
• Să fie precise (vizând un singur răspuns).
• Să nu con‑ină răspunsul şi să aibă un rol instructiv.
• Săstimulezegândireaşicapacitateadecreativitateaelevilor
cauză?”, „În ce caz?” etc.).
• Să fie formulate prin enun‑uri variate şi atrăgătoare.
• Să se adreseze întregului colectiv vizat.
• Să con‑ină întrebări ajutătoare atunci când răspunsul este eronat

Răspunsurileacceptatetrebuiesăfienunumaicorecte,cişiexprima
precişişisăoglindeascăunanumitniveldeîn‑elegere.Răspunsurile ‑ erona
tează imediat, prin discu‑ii individuale. Cadrul didactic va dirija
încât ideile să fie bine conturate înainte de a trece la altele, î
men‑ine caracterul unitar. În ceea ce priveşte informatica, recomand
unor instrumente ajutătoare, cum ar fi introducerea/exprimarea n
limbaj algoritmic (scris/oral) care să implice utilizarea eficientă a simbol
afară de latura didactică propriu‑zisă), ceea ce înseamnă separarea clar
de semantică.

3.1 Problematizarea şi învăţarea prin descoperire


Predarea şi învă‑area prin problematizare şi descoperire presupun u
tehnici care să producă elevului conştientizarea conflictului ‑ dint
dită şi o nouă informa‑ie, determinându‑l să ac‑ioneze în direc‑ia rezolvări
prin descoperirea unor noi proprietă‑i ale fenomenului studiat.
Începemcudescriereametodeiproblematizării.Pedagogicvorbind,c
mai numesc şisituaţii‑problemă, putând fi de cel pu‑in două tipuri:
60 1 DIDACTICA PREDĂRII INFORMATICII

• Contradicţii între posibilită‑ile existente ale elevului (nivelul


‑ in
gătire)şicerin‑esausitua‑iileîncareestepusdenouaproblemă.Acest
se datorează imposibilită‑ii elevului de a le selecta dintre ‑ cuno
oare pe cele potrivite cu valoarea opera‑ională de aplicabilita
• Incapacitatea elevului de a integra no‑iunile selectate într‑un siste
timpcuconştientizareafaptuluicăsistemulestepemomentinefi
(lucru care poate fi remediat doar prin completarea informa‑iei d

Întrebările frontale sau individuale utilizate în etapa de pr


unei no‑iuni, a prezentării unui domeniu nou, întrebări care se adrese
de reac‑ionare a individului, pot genera noi situa‑ii conflictuale
anterior. Pe cât posibil, cadrul didactic trebuie să gestioneze ‑ el în
‑iilor‑problemă. La modul ideal, ele trebuie să apară de la sine în mintea
Relativ la condi‑iile pedagogice ale acestor situa‑ii conflictual
problemepractice,putemspunecăproblemeletrebuiesăaibăunsenspr
enun‑ate într‑un moment optim al lec‑iei. Ele trebuie să înglobeze cun
însuşitedeelev,săletrezeascăinteresul,sălesoliciteunanumitefor
Există părerea că rezolvarea problemei poate fi privită ca un proces prin
descoperă că o combina‑ie de reguli învă‑ate anterior se poate aplica pe
solu‑ieiuneinoisitua‑iiconflictuale.Înacestsenssepoteviden‑i
în rezolvarea problemei:
• Prezentarea problemei.
• Definirea problemei de către elev în sensul distingerii caracte
ale situa‑iei, însuşirii enun‑ului, găsirii legăturii între date, info
• Formularea de către elev a anumitor criterii, ipoteze care ‑ pot fi a
rea găsirii unei solu‑ii.
• Verificarea succesivă a unor asemenea ipoteze, eventual şi a altor
efectivă a unei solu‑ii (sau a tuturor solu‑iilor).

Desigurcăîn
, contextuldemaisus,sintagmele„situa‑ieconflictuală”
şi „rezolvare de problemă” se referă la probleme şi solu‑ii noi, necunoscu
elev,iş nulacevadetipulsubstituiriidevalorinumericeînexpresiid
programdatpentruniştevalorifixatedeintrareetc.Utilizareaînpreda
este întotdeauna utilă în momentul în care se şi găseşte rezolvarea co
Învă‑area prin descoperire apare ca o întregire a problematizării. D
ra‑ionamentfolosit,sepotpuneîneviden‑ătreimodalită‑iprincipale
problematizare şi descoperire:
• Modalitatea
inductivă.
• Modalitatea
deductivă.
• Modalitatea
prin analogie.
METODE, TEHNICI ŞI PROCEDEE DIDACTICE 70 1

În primul caz este vorba de generalizări. Elevul trebuie încuraja


propria cale de învă‑are, care să nu contrazică lucrurile în care crede, pr
unormijloacetehniceşiresurseinforma‑ionalepersonale.Înaldoil
logica sau, mai exact, sistemele deductive ca metodă de ra‑ionament. P
(ob‑ine) cunoştin‑e noi din cunoştin‑e vechi cu ajutorul unor reguli ‑ de i
cifice (
[Mas3 ]).Înultimulcaz,seîncurajeazăfolosireauneiexperien‑eant
numai dintr‑un domeniu conex, ci chiar din domenii total diferite.
Problematizarea are astfel interferen‑e cu conversa‑ia, întrebăr
frontale care se adresează gândirii, ra‑ionamentului născând sit
Generarea situa‑iilor‑problemă trebuie produsă astfel încât într
mintea elevului fără ca acestea să fie adresate de către profesor. După cu
precizat, ca disciplină cu caracter formativ, informatica îşi propune de
gândiri algoritmice, sistematice şi riguroase, care să promoveze ‑ crea
muleze imagina‑ia şi să combată rutina. Chiar dacă, aparent, travaliul in
sprijină pe anumite şabloane, ele reprezintă numai tendin‑e utile d
Procesele care izvorăsc din situa‑ii reale, care implică folosirea ca
rezolvarea unor probleme apar‑inând diferitelor sfere ale vie‑ii
acestor probleme, alegerea structurilor de date pe care se muleaz
de mediul înconjurător, paşii algoritmilor şi programarea în sine dete
metodei problematizării, iar aplicarea ei necesită formarea unor de
ob‑in decât printr‑un exerci‑iu îndelungat. Rezolvarea de probleme, c
învă‑area informaticii, poate fi privită ca un proces prin care elevul d
altă combina‑ie de reguli învă‑ate anterior conduce la rezolvarea u
problematice. Formularea de probleme de către elevi constituie ‑ for
‑ii şi presupune că elevii şi‑au format deprinderi intelectuale eficien
vedere al generalizării şi aplicabilită‑ii (orice solu‑ie generează o no
Problemele propuse pot fi inspirate din via‑a cotidiană, din cunoşti
prinstudiulaltordiscipline,dingeneralizareaunorproblemedei
anterior, probleme de perspicacitate, jocuri etc.
Problematizarea şi descoperirea
fac parte dintre metodele
formativ‑participative,
care solicită gândirea creatoare a elevului, îi pun la încercare v
imagina‑ia, îi îmbogă‑esc experien‑a. În lec‑iile la care se aplică aceste ‑ met
fesorul alege problemele, le formulează, dirijează învă‑area şi control
depusă de elev în toate etapele activită‑ii sale. Aceste metode sun
exemplu, unor lec‑ii de aplica‑ii practice de laborator, metoda ‑ învă‑ări
perirefiindfrecventaplicatăînmomentulîncareestenecesarăfolo
de aplica‑ie. Concentrarea aten‑iei va fi dirijată spre rezolvarea
asupra analizei facilită‑ilor şi lipsurilor produsului software. Cu
deosebit de importante experien‑a dobândită, cunoştin‑ele şi deprin
alte situa‑ii similare de învă‑are. Cunoaşterea facilită‑ilor produs
momentul ivirii necesită‑ii exploatării acestuia, şi nu printr‑o prez
înşiruire mai mult sau mai pu‑in sistematică şi completă de func‑ii sau fa
contextul unor produse similare, trebuie concepută o viziune de an
80 1 DIDACTICA PREDĂRII INFORMATICII

săsedesprindăcaracteristiciledominantealeaplica‑iilordincla
prezinteparticularită‑ilespecificeprodusului,cuîmbunătă‑iri ‑ fa‑ădev
rioare şi perspective de dezvoltare pentru cele viitoare.
Ca informaticieni, în acest context ne interesează ceea ce‑ numim r
blemelor (
problem solving). Competen‑ele dobândite în legătură cu acest su
depindînprimulrânddecunoştin‑elespecificeacumulate,dardinpun
al psihologiei, ca ştiin‑ă, există consensul că se pot dobândi şi competen‑e
Procesul cognitiv în ansamblu este foarte complicat şi vom sublinia ‑
mente‑cheie şi direc‑ii principale pentru abordarea rezolvării unor
când ni se solicită rezolvarea cu ajutorul calculatorului ‑ a unei
plexe)presupunând
, căenun‑ulformaleste„acceptat”,trebuiesărăspund
întrebări, cum ar fi:
• Ce ştim în legătură cu domeniul implicat?
• Cum sunt apreciate rezultatele?
• Ce strategii generale sunt aplicabile?
• Care sunt motiva‑iile suplimentare?

Dupăceproblemaafostenun‑atăşisuntfurnizateanumiteindica‑iisu
putem trece la alegerea strategiei concrete de rezolvare.‑ Aceast
tată după un anumit plan de lucru şi să permită o modalitate de verifica

lizare. De asemenea, trebuie avute în vedere metode sau metodologii
interzică anumite alternative şi să se permită explorarea de direc‑i
dintre strategiile generale poate fi următoarea:
• Pot să rezolv problema (am cunoştin‑ele necesare).
• Descriu algoritmul de rezolvare în mod (semi)formal.
• Caut informa‑iile suplimentare astfel încât să am o defini‑ie for
(eventual, într‑un limbaj de programare cunoscut).
• Concep planul de implementare şi îl execut: scriu
programele şi le rulez pe date
de test.
• Verific dacă ceea ce am făcut este
corect.
• Identific posibilită‑i de generalizare la alte probleme (se‑ poate u
tolul 4. )

3.1 4 Modelarea
Modelarea, ca metodă pedagogică, poate fi descrisă ca un mod de lucru pri
gândirea elevului este condusă spre descoperirea adevărului, folo
model şi utilizând ra‑ionamentul prin analogie. Modelul şi metoda ‑ în s
pun o asemănare perfectă cu cazurile reale specificate ini‑ial, ci num
rezonabilă. Ea constă în construirea unuiS1 a căsistem
rui descriere coincide cu
descrierea sistemului S până
original
la un anumit punct.
S1 poate avea o natură
METODE, TEHNICI ŞI PROCEDEE DIDACTICE 90 1

diferită şi este în general mai simplificat şi formalizat. Ideea este c


sistemul S1 prin metode specifice legate de o anumită temă de lec‑ie, se pot
solu‑ii, care apoi pot fi translatate în concluzii asupra evolu‑ S. iei si
Modelarea are o mare valoare euristică colaterală, prin utiliza
dezvolta spiritul de observa‑ie, capacitatea de analiză şi sinteză, cr
ar fi să putem determina elevii să descopere singuri modelul. Astfel,‑ e
nuieşte să creeze noi probleme ce trebuie rezolvate, să adapteze algor
la situa‑ii noi etc. Realitatea înconjurătoare este percepută şi în‑e
modele deja cunoscute. Dezvoltarea deprinderilor de modelare, ob
cu gândirea logică se realizează prin prezentarea exactă şi clară a model
transparen‑a particularizărilor. Un exemplu edificator îl constitu ‑
lor de elaborare a algoritmilor. Necesitatea unor formalizări se imp
modului de abordare a problemei, prin sistematizarea organizării
intrare,aexactită‑iiproiectăriiprelucrăriişiprinstandardizarea
necesită cunoştin‑e dobândite în studiul altor discipline, fundam
accesibilitateaformalizăriiestecondi‑ionatădefactorispecificin
dobândit anterior, de categoria de vârstă, de capacitatea‑ de asim
sei, de exemplu). Abordarea ponderată a acestor aspecte conduce la
deprinderilor de abstractizare, a gândirii algoritmice şi sistemi ‑
lor în realizarea algoritmilor presupune stabilirea unor analo
datelor de intrare.
„Învăarea”
‑ algoritmilorestelegatădecunoaştereamoduluideorgan
decunoaştereaprofundăastructurilordedatecepotfiprelucrateuşord
Etapa cea mai importantă este cea a descoperirii algoritmului, urm
modului de organizare a datelor, iar importan‑a acestui ultim aspec
determinarea performan‑elor produsului‑program care implementea
Modelarea, ca metodă pedagogică, este definită ca un mod de lucru pri
gândirea elevului este condusă la descoperirea adevărului cu aj
gra‑ie ra‑ionamentului prin analogie:
• Modelarea similară constă în realizarea unui sistem de aceeaşi natură ‑ cu
lulşicaresăpermităeviden‑iereatrăsăturiloresen‑ialeale ‑ origin
plu,ogamăvariatădeproblemepotfirezolvatebacktracking. prinmetoda Pentru
implementarea într‑ un limbaj de programare a unui algoritm
backtracking, elevul are nevoie de un model reprezentat de un progra
fi cel de generare a permutărilor sau de rezolvare a
problemei celor opt regine,
şi, prin anumite adaptări, el poate implementa algoritmi ce rezolvă a
clasice, cum ar fi: generarea aranjamentelor/combinărilor, genera
injective/bijective, a parti‑iilor unei mul‑imi, problema celor
Similarseprocedeazăpentrurezolvareaproblemelorcarenecesit ‑
turilor de tip stivă sau coadă, folosind opera‑iile specifice ‑ acest
mice elementare. Pentru alte detalii, vezi anexele, capitolul 5 şi c
• Modelarea analogică nu presupune o asemănare perfectă cu originalul, ci n
folosirea unor analogii.
011 DIDACTICA PREDĂRII INFORMATICII

Momentele cunoaşterii în procesul modelării sunt:


• Trecerea de la original la model.
• Transformarea modelului sau experimentarea pe model.
• Transferul pe original al rezultatelor ob‑inute pe model.
• Verificarea experimentală pe original a proprietă‑ilor ob‑inute pe

Trecerea de la original la model se face prin simplificare. Se ‑ impune


carea să nu fie exagerată, pentru a nu se omite trăsăturile esen‑iale al
Totodată,trebuiesănusescapedinvederecăvaloareamodeluluivafia
prisma eficacită‑ii lui, adică a posibilită‑ilor pe care le oferă pentru
‑ at
lui,şicănoileinforma‑iiob‑inutepebazamodeluluivorfitransferatec
originalului, având în vedere diferen‑a dintre model şi original. M
astfelpurtătoruluneisemnifica‑ii,informa‑ii,carepoatefiexprimat
material sau ideal. O clasificare a modelelor după natura suport
vehiculează informa‑ia le împarte în:
• Modele materiale, care au suport concret: folosirea unui table‑ de şah în
rea problemei celor opt dame determină o rapidă în‑elegere a mec
metodei backtracking;utilizareauneistivedemonedededimensiunidi
optimăpentruîn‑elegerearezolvăriiproblemeiturnurilordinHan
însuşi este potrivit pentru studiul structurii şi arhitectur
• Modele ideale (virtuale), care se exprimă prin imagini, sisteme de simboluri
semne conven‑ionale.

Învă‑area informaticii prin modelare presupune două etape:


• Învă‑area se va face pe baza modelelor construite de profesori. În a
se vor analiza trăsăturile modelului, apoi acesta va fi comparat
Pentru a reliefa condi‑iile pe care trebuie să le îndeplinească mod
şi contraexemple.
• Elevii vor fi deprinşi să construiască singuri modele. Importan‑a d
modelului de către elev constă în faptul că el este obişnuit să repr
formă standard condi‑iile impuse de problemă şi‑şi adânceşte convin
informatica este un domeniu în care rezultatele pozitive se ob
înlăn‑uire logică de ra‑ionamente. Folosirea modelelor nu înseamnă i
unormetodecaretrebuiere‑inuteşiaplicateorbeşte.Seva ‑ puneac
legerea paşilor unui algoritm şi se va încuraja prezentarea oricăr
exclud modelul şi care se impun prin elegan‑ă şi eficien‑ă. Elevii vor fi încu
să‑şi dezvolte şi să‑şi prezinte ideile proprii, contribuind astfel ‑ la cr
derii în posibilită‑ile lor, în valoarea ideilor lor. Ei nu trebuie s
reproducăideilealtora,săaşteptecatotulsăfieprezentatdeprofe
re‑ete, ci să descopere metode noi, să le prezinte, să le analizeze ‑ şi să le
‑ioneze printr‑o comunicare continuă şi constructivă.
METODE, TEHNICI ŞI PROCEDEE DIDACTICE 111

Folosireamodelelorînînvă‑aredeschidepentruinformaticăoaried
inter‑ şi transdisciplinară impresionantă, de la artele plastice
domenii ale tehnicii.

3.1 5 Exemplificarea sau demonstrarea materialului intuitiv


Prinexemplificaresaudemonstra‑ie,înacestcaz,în‑elegemprezentare
şi organizată a unor obiecte, procese, experimente, cu scopul de a uşura în
intuitivă şi executarea corectă a unor activită‑i programate. Cuvânt
subtitlu se referă la utilizarea oricărui ra‑ionament inductiv, în
bagajului de cunoştin‑e ale elevului. Utilizarea intui‑iei împreună
necesară poate implica folosirea unor modalită‑i şi tehnici didactic
varietă‑ii materialului de studiu. Exemplificarea sau demonstrare ‑
itiv presupune utilizarea unei diversită‑i de materiale multimed ‑
‑are şi de alte resurse online. În acest context putem spune că: „Prin d
materialului intuitiv se în‑elege prezentarea sistematică şi orga
procese etc. sau producerea unor experien‑e, fenomene în fa‑a elevilor
a uşura în‑elegerea şi executarea corectă a unor [RV activită
]). Un rol deosebit
‑i” ( îl
joacă astfel intui‑
(o experien‑
ia ă mentală; înseamnă o simplă observare şi notare
unor fapte; poate fi asimilată cu un ra‑ionament[RV de tip
]). Intui‑
inductiv
ia rea ‑
lizeazăcorela‑iadintreimagineşicuvânt,fiindatâtsursădecunoşti
deverificare.Informaticanupoatefidesprinsădebazeleeiintuitiv
ei în realitatea cotidiană. Convertirea principiului intui‑iei în
se realizează în func‑ie de materialul intuitiv, folosit în numeroase
• Învă‑areaalgoritmilorde –prin
sortare 
diferitemoduridereprezentare ‑ sun
rite grafic valorile care se compară şi se schimbă între ele, conducân

rea şirului (sau.. imagini cu o forma‑ie de dansuri populare!).
• Învă‑area metodei
backtracking  – folosind materialul avut, într‑un mod na
se urmăreşte formarea solu‑iei prin avansări şi întoarceri repetat
• Vizualizarea ocupării şi eliberării zonelor de memorie prin alocare
variabilelor.
• Ilustrarea modului de lucru cu elementele listelor simplu şi d
stivelor şi a cozilor.
• Echilibrarea arborilor binari (arbori AVL).

,inând cont de eficien‑a transmiterii informa‑iei prin mijloace


inclusiv de pe Internet) şi de orientarea cu predilec‑ie spre mijloa
rapidă care solicită atât memoria vizuală, cât şi cea auditivă şi formare
a unui public consumator de informa‑ie audio/video, o orientare ‑ a met
cedeelor didactice în vederea exploatării acestei stări de lucrur
aparte procesului
instructiv‑educativ. Crearea unor secven‑e video cu
21 1 DIDACTICA PREDĂRII INFORMATICII

care să urmărească cu exactitate programa şcolară generează facilită‑i d


pentru multe discipline şi permite elevului să reia vizualizarea
elimina ambiguită‑ile sau golurile create de momentele de neaten‑
‑ i
dării şi arconstitui un veritabil „profesorla purtător”al elevulu
astfel de mijloc nu poate suplini exerci‑iul individual şi nici pr
cadrului didactic. Efortul profesorului este cu totul special. Ele
„vadă”, nefiind suficient ca el doar să urmărească materialul propus.
În acest moment trebuie să aducem în discu‑ie euristicile‑ şi încura
tă‑ii.Conform[WO ],sepotpuneîneviden‑euristici
ă pentrudezvoltareacr
• Încerca‑i să ave‑i cât mai multe idei. Cu cât sunt mai multe, cu atât
să pute‑i selecta câteva utile.
• Inversa‑i problema (reformula‑i, reitera‑i, pune‑i într‑un alt contex
• Ghici‑i o solu‑ie la întâmplare (chiar urmărind un dic‑ionar.. )
• Gândi‑i‑vă la ceva distractiv, apropo de utilizările posibile ale re
• Gândi‑i‑vă la probleme similare şi la solu‑iile acestora, chiar în con
• Concepe‑iolistăgeneralăexplicativădecuvinte‑cheie,proprietă‑iut
ş.a.m.d. care au cât de cât legătură cu tema în cauză.

3.1 6 Metoda exerciţiului


La modul cel mai general, exerci‑iile pot fi privite ca ac‑iuni concrete

ştientşirepetatînscopuldobândiriiunorpriceperişideprinderi(m
noi, pentru a uşura anumite activită‑i şi a contribui la dezvoltarea
Avantajele metodei exerci‑iului sunt:
• Formarea unei gândiri productive, creatoare, cu posibile implica
• Câştigarea unei anumite independen‑e individuale.
• Ini‑ierea unui dialog cu obiective precise asupra unor metode şi s
• Activarea unei atitudini critice şi creşterea discernământulu
celor mai bune metode de lucru.
• Profesorulpoateanalizaşievaluamaidirectactivitateasaupe
ale unui elev.

Condi‑iaprimordialădereuşităestedatăînprincipaldeselectarea
aproblemelorsauexerci‑iilor,precumşideactivitateadeîndrumare
urmare, exerci‑iile sunt ac‑iuni efectuate în mod conştient şi repetat
scopul dobândirii unor priceperi şi deprinderi şi chiar a unor cunoşt
a uşura alte activită‑i şi a contribui la dezvoltarea altor aptitu

tin‑elor de informatică este legată de exersarea utilizării unor soft
rezolvarea unor probleme de programare etc. Nu există lec‑ie în care să n
această metodă. Alte avantaje sunt concretizate în rezultatele a
METODE, TEHNICI ŞI PROCEDEE DIDACTICE 31 1

o gândire productivă, oferă posibilitatea muncii independente, a an


metode şi solu‑ii de rezolvare a problemelor, activează sim‑ul critic şi a
înva‑ă pe elevi să‑şi aprecieze rezultatele şi metodele de lucru, oferă po
depistării şi eliminării erorilor.
Este clar că metoda nu contribuie numai la formarea priceperilor şi
de lucru cu calculatorul, ci contribuie substan‑ial şi la dezvoltar
flexibilşioperant.Pentruprofesor,alegerea,formulareaşirezolvare
apoi exploatarea rezultatelor ob‑inute constituie o sarcină de o i
Alegerea problemelor este condi‑ionată de programa analitică ‑ , de su
zentării no‑iunilor în manuale, de metodele de rezolvare ce pot ‑ fi folo
lul elevilor cărora li se adresează. Formularea problemelor trebui
no‑iunile cunoscute de elevi, să fie clară (neambiguă), concisă şi să foloseas

bajuldespecialitatenumaiînmăsuraîncareestecunoscutelevilo
să aibă în vedere ob‑inerea rezultatelor pe căi cât mai simple şi uşor de
re‑inereatipurilordera‑ionamentefolosite,deschidereaperspec
unor probleme analoage sau mai complexe. Folosirea rezultatelor ob
vizeze lămurirea con‑inutului activ în cunoaşterea no‑iunilor învă‑a
semnifica‑ieilor,asimilareametodelorderezolvareşiaplicarealor
probleme.Utilizarea pe scară largă a acesteimetodeacondusla ‑ oclas
ci‑iilor şi problemelor în func‑ie de aportul capacită‑ilor intelectu ‑
vării lor.
Însubsec‑iunilecareurmeazăneaxămasupraanumitorparticularizăr
posibil abordate deja.

3 . 1 6 . Exerci‑ii şi probleme de recunoaştere a unor no‑iuni,


formule, metode
De exemplu, utilizând metoda
backtracking, se pot descrie algoritmii care gene
permutările, aranjamentele, combinările, apoi li se poate cere elev
toate func‑iile injective/surjective/bijective m elemente,
definitecu
pe o mu
valori într‑o mul‑ime
n elemente.
cu

3 . 1 6 2 . Exerci‑ii şi probleme aplicative pentru formule


sau algoritmi cunoscu‑i
Cunoscând modul de lucru cu elementele structurilor de date
elevilor li se poate propune să rezolve problema parcurgerii ‑ în lă ‑ i
cimeaunuigrafoarecare] , [CP],
[Cro ( [LG ]) .Exerci‑ iileaplicativetrebuieut
atât timp cât trezesc interesul. Repetarea lor nejustificat
contrarii. Sunt astfel necesare contraexemple înso‑ ite de o an
erorilor.
41 1 DIDACTICA PREDĂRII INFORMATICII

3.1 6 3. Probleme reale care permit însuşirea unor no‑iuni


O posibilă clasificare a problemelor/exerci‑iilor (relativ la capaci
pentru rezolvare) ar fi:
• Exerciţii de recunoaştere a unor no‑iuni: func‑ii recursive, grafuri, struct
date (liste, arbori) etc.
• Exerciţii aplicative.

Aceste două clase de exerci‑ii sunt recomandate în special pentr


cunoştin‑e deja predate. În acest context poate fi utilă o complicare

‑ului ini‑ial, urmărindu‑se memorarea mai bună a formulei sau a ideii alg
cum ar fi: încadrarea acestuia într‑un eventual alt tip de probleme‑ c
plicarea lui în mod progresiv în vederea utilizării sale în alte sit
unor cazuri‑limită care pot conduce la rezultate eronate.
• Exerciţii grafice.
• Exerciţii complexe, care presupun o analiză mult mai detaliată a proble
ansambluşiimplicădescompunereaeiînsubprobleme,succesiv, ‑ pânăîn
tul în care rezolvarea subproblemelor elementare este cunosc

Pentruformareaunorpriceperisauabilită‑ilegatedemuncaindep
utiliza şi aşa‑numita formulă a exerci‑iilor comentate. Aceasta const
exerci‑iilor de către to‑i elevii, în timp ce un elev desemnat explică
‑ per
tatele ob‑inute. Nu este nevoie ca această explica‑ie să fie utilizat
Profesorul poate în orice moment să invite oricare alt elev‑ pentru
ca‑iei (în acest fel, metoda devine activ‑participativă). Se pot eviden
avantajelei ş dezavantajelerezolvărilorpropuse,altemetodeposi
privind utilizarea acestor rezolvări sau particularizări ale lor d
Specificeinformaticiisuntproblemelealcărorgraddedificultatec
cuformareai ş asimilareano‑iunii,fiecarenouăproblemăaducândunplusded
În rezolvarea unei probleme este necesar să se ‑ină seama de următoare
• Analiza ini‑ială a problemei, prin care se stabilesc formatul, natura
de varia‑ie ale datelor de intrare/ieşire şi ale variabilelor ‑ de l
diare). Tot în această etapă se va stabili un algoritm de rezolvare, ex
în limbaj natural, ceea ce va permite fiecărui elev să lucreze indep
• Rezolvarea propriu‑zisă a problemei este etapa în care se realizează tra
într‑un limbaj de programare a algoritmului stabilit în prima ‑ et
rea). Algoritmul este reprezentat în una dintre formele cunosc
variabilele de lucru, forma lor de alocare, prelucrările ce vor av
trece la implementarea în limbajul dorit. Dacă rezolvarea se poa
multecăi,esteindicatăalegereacăiloroptimeînfunc‑iedeanumite
anterior(paradigmadeprogramare,complexitateaalgoritmului, ‑ s
turilor de date etc.).
METODE, TEHNICI ŞI PROCEDEE DIDACTICE 51 1

• Verificarea solu‑iilor ob‑inute va permite elevului să‑şi dea seama


‑ de c
nea lor. În această etapă, profesorul intervine cu seturi de date
cuprindă majoritatea sau chiar toate cazurile posibile, în speci
la limită, pentru datele de intrare. Se recomandă introducerea cât
posibil a no‑iunilor privind verificarea formală apriorică ‑ a corect
mului (conform subcapitolului 4. 2)

Etapele anterioare se pot modifica sau dezvolta după natura pro


unde problema permite mai multe căi de rezolvare, profesorul analize
elevilor toate aceste căi, le selectează pe cele mai importante şi
rezolvare pe grupe. Elevii vor compara apoi rezultatele, avantajel
fiecărei metode în parte şi vor putea eviden‑ia astfel
solu‑cea
ie. mai bună

Exemplu (con‑inutul unei lec‑ii în care se utilizează mai multe dint


amintite).
Pentru în‑elegerea completă a algoritmului de determinare a arb
costminim,profesorulpoatepropunesprerezolvareelevilorproble
care să le dezvolte simultan capacitatea de analiză, de recunoaş ‑ tere
retice,deabstractizareadatelorşideoptimizareaob‑ineriisolu‑i
s‑ar putea cere rezolvarea cu ajutorul calculatorului a problem
enun‑:
O localitate complet înzăpezită
n puncte
arevitale2 ≤ n( ≤ 100), legate prin
străzi pe care se poate circula în ambele sensuri, străzi ale căror lung
cunosc. Deoarece nu dispune de suficiente rezerve de combustibil
obligată să deszăpezească un număr de străzi, astfel încât toate puncte
localită‑ii să fie accesibile direct sau indirect din fiecare alt pun
se realizeze cu un consum minim de carburant. Să se determine străzile
deszăpezite şi cantitatea minimă totală de carburant necesar ştiind
de carburant este direct propor‑ional cu lungimea drumului ‑ deszăpe
zăpezirii unui km de stradăk. este

Propunerea de rezolvare va avea cel pu‑in trei etape:


a) În prima etapă se verifică dacă elevii cunosc no‑iunile teoretice de a
arbore par‑ial de costPrin minim.
conversa‑ie, se solicită elevilor să an
problema, să reprezinte graful pe baza exemplului numeric oferit de
anticipeazăpeexempludateledeieşire.Profesorulconducediscu‑ia
astfelîncâteleviisătragăsinguriconcluziacăproblemasereducel
arborelui par‑ial de cost minim într‑un graf neorientat ponderat
algoritmul lui Kruskal. Se stabilesc apoi datele de intrare, ‑ form
nifica‑ia acestora (deja se gândeşte în direc‑ia implementării algo
limbaj de programare). În acest caz, datele de intrare se vor pute
fişier text cu structura, să zicem:
61 1 DIDACTICA PREDĂRII INFORMATICII

n //numărul de puncte vitale


m //numărul de străzi
k //costul de deszăpezire pentru 1 km de stradă
x1 y1 c1 // xi yi ci au semnificaţia: ci este lungimea străzii
care uneşte punctele vitale xi şi yi
x2 y2 c2 //
.................
Xm ym cm //

Având contextul precedent, se poate fixa şi formatul fişierului de


x1 y1 // xi yi cu semnifica‑ia: se deszăpezeşte strada care uneşte pu
vitale
xi şi yi

x2 y2 //
.................
Xn‑1 yn‑1 //
cmin // consumul total minim de carburant necesar desză‑
pezirii celor n ‑ 1 străzi alese

b) În a doua etapă se va stabili modalitatea de memorare a datelor de i


elevii vor fi tenta‑i să reprezinte graful printr‑o matrice ‑ de cost
fesorul va sublinia risipa de memorie realizată prin acest tip de
propune sau va încerca să ob‑ină de la elevi o memorare mai eficientă (pr
vector,deexemplu)doaramuchiilorşicosturiloracestora.Sevade
tip de dată numit muchie:

typedef struct{
int punctX, punctY;
double lungime;
}STRADA;

cusemnifica‑ia că
punctX , punctY suntnodurileadiacente,
lungimeiar
reprezintă
costul muchiei. În consecin‑ă, se va alocaSTRADA
un vector
, a cărui dimensiune
maximăsevastabiliîmpreunăcuelevii.Eleviivorexplica aplicarea
Algoritmului
lui Kruskalpeenun‑uldatalproblemei.Încontinuare,sesugereazăapli
strategiigreedy; detip sevorsortamuchiilecrescătordupăcost;sevaparc
graful în inordine, plecând ini‑ial de la un arbore par‑ial vid; la fie
selectamuchiadecostminimneselectatăanteriorşicarenuforme
muchiiledejaselectate;procedeulseopreşte după
n – 1muchii
selectarea
([Cro
], a
[CP], [MM ]). Se insistă asupra importan‑ei criteriului de oprire, profe
douăposibilită‑i:săprezinteelînsuşicriteriulşisăverificecuclasa
este cel corect sau să încerce să ob‑ină de la clasă un criteriu de opri
METODE, TEHNICI ŞI PROCEDEE DIDACTICE 71 1

c) În a treia etapă (posibil, ea nu va constitui finalul lec‑iei) li se ‑ va prop


lorimplementareaalgoritmului(fiememorânddateledeintrare
într‑un vector „de muchii”) pe grupe de lucru. Li se poate cere, de as
folosireadealgoritmidesortarediferi‑i,pentruaconstatafapt
unică şi, în plus, li se va cere să determine
cauza ob‑inerii de solu‑ii diferite, d
tot optime. Profesorul va supraveghea implementarea solicitâ ‑
rea etapă cu etapă a scrierii programului.
d) În (eventual) ultima etapă, elevii vor proba corectitudinea programului ‑
sirea de date de test construite de ei şi prin noi teste propuse
teste putând fi prezentate (de exemplu) chiar sub diverse forme gr
ei să fie în stare să‑şi construiască singuri fişierul de intrare.

La sfârşitul lec‑iei ar fi indicat să se propună elevilor probleme ca


rezultatul ob‑inut şi să folosească tehnici asemănătoare pentru rezol

3.1 7 Metoda învăţării în grupe mici


Activitatea de învă‑are pe grupe mici se defineşte ca o metodă în care sa
executate de grupuri de elevi, grupuri care sunt câteodată autoco
autodirijează. În informatică, activitatea se desfăşoară în general în e
individual fiind o componentă a muncii corelate din cadrul unui gru
acestecondi‑iiestenormalcaşiactivitateadidacticăsărecurgălame
colectivă, fără a neglija însă munca individuală, ci doar privind‑o pe acea
o componentă a muncii în echipă (], [St
[Cri ]). Profesorii recunosc eficacitatea
asemenea organizări a activită‑ii didactice şi o integrează în arsena
predăriidisciplinei.Alegereacriteriilordeformareagrupelordep
urmărite, cum ar fi însuşirea de noi cunoştin‑e, rezolvarea de probleme e
forma astfel: grupuri
omogene (elevi cu acelaşi nivel de cunoştin‑e) ; grupuri
etero-
gene (elevi de toate categoriile 
– foarte buni, buni şi slabi 
–, dar în propor‑ii apro

piate); grupuri formate pe criterii afective (prietenie, vecini de b
elevilor dintr‑un grup poate varia de la 2 la0, 1dar cele mai potrivite
celeformatedin5‑3elevi.Grupurilealcătuitedinmaimultde2elevilaun
se dovedesc a fi neproductive. Este bine ca la întocmirea grupurilor
oseriedecriteriiclaredeformare,iareleviisăfielăsa‑isăsegrupezes
grupurile omogene, sarcinile pot diferi în func‑ie de scopul propus. Pen
eterogene sau create pe criterii afective, sarcinile vor fi acelea
profesorul poate distribui sarcini suplimentare elevilor mai bu
Etapele identificate în metoda învă‑ării în grupe mici sunt:
– repartizarea materialului (problemelor) fiecărui grup;
– munca independentă a grupurilor sub supravegherea profesorului
– discutarea în plen a rezultatelor ob‑inute.
81 1 DIDACTICA PREDĂRII INFORMATICII

Activitatea profesorului se concretizează în două etape:


• Etapa
proiectivă, în care se pregăteşte materialul de repartizat ‑ pe grup
rialul în plus pentru elevii buni.
• Etapa de
îndrumare/supraveghere şi de animare a activită‑ii grupelor de lucr

Ajutorul acordat grupelor de lucru trebuie să fie dat numai la ce


încât profesorul să se situeze pe pozi‑ia de colaborator, nu pe cea de a
îşi impune părerile şi solu‑iile personale. Profesorul va interveni cu a
atunci când activitatea grupului se îndreaptă într‑o direc‑ie gre
mai multe grupuri descoperă o solu‑ie, propunerile lor vor fi discuta
succesiv sau în paralel. Scopul acestei discu‑ii este de a reliefa ‑ co
vării, determinarea celei mai eficiente şi mai elegante solu‑ii ‑ şi de a d
tualele erori. Importan‑a dezbaterilor pentru dezvoltarea ra‑ion
mare, iar rolul profesorului este acela de a incita şi coordona dis
ob‑inerii concluziilor care se impun. Se impută, pe bună dreptate, acest
grup o intensitate şi o productivitate scăzute. Diversificarea sar
împăr‑ireasarcinilorîntremembriigrupuriloratenueazăaceastădefi
activitateaîngrupseinten‑ioneazădobândireadenoicunoştin‑ ‑ epri
alul, documenta‑ia sau prin testarea unor produse soft, profesor
organizeze dezbaterile finale care să stabilească dacă elevii‑ şi‑au îns
unile şi şi‑au format deprinderi corecte. Este de asemenea greşit să se lu
cu grupuri constituite după aceleaşi criterii, pentru că în acest ‑ caz f
licita‑ieleviibunidingrupurileeterogene,iareleviislabisebazeazăe
liderilordegrup,fie,îngrupurileomogene,eleviislabisecomplacînpo
se află şi nu mai încearcă să scape de acest calificativ. Alte câteva pro
abordatesubununghidiferitînacestcontext.întrebări Astfel sepotpune
ajutătoare
mult mai individualizate (ele nu ‑in neapărat de con‑inutul în sine
întrebări ajutătoare se adresează şi modul în care se adresează pot fi ma
decâtîntrebareaînsine.Ulterior,atâtîntimpullec‑iei,câti ş dupăace
cueleviiestemaisimplă.Caprioritatei ş solu‑ielaanumiteprobleme ‑ loc
mânt, sus‑inem aducerea unor specialişti din afara sistemului de înv
predalec‑iidesinteză,lec‑iispecialeetc.

3.1 8 Metoda lucrului cu manualul şi documentaţia


Manualele şcolare, purtătoare ale valen‑elor formative prin deose
metodic şi didactic, reprezintă o limită impusă de programa şcolară din pu
vedere al con‑inutului informativ. În informatică, mai mult decât în
manualulestesupusperisabilită‑iicon‑inuturilorprinfrecven‑ac
receptivălanoută‑ilecareapar.Realitateadidacticăreliefeazăfaptul
pentru învă‑area teoriei doar noti‑ele luate în clasă la predare ‑ (sa
media recomandate/accesibile online) şi, din considerente de como
METODE, TEHNICI ŞI PROCEDEE DIDACTICE 91 1

obişnuin‑ă, foarte pu‑in (sau deloc) manualele. Acestea sunt consulta


fericit caz doar pentru citirea enun‑urilor problemelor. Atitudin
respingere fa‑ă de manual (fie el şi în format electronic) are consecin‑e n
asupra caracterului formativ, cât şi asupra celui informativ al înv
dera‑ionamentaunuielevnuseformeazănumaidupămodeledera‑ionamen
deprofesor,cişi prin eforturi proprii,prinactivitateaindividual ‑
pararecualteschemedera‑ionament.Valoareaacesteimetodenucon
însuşire temeinică a cunoştin‑elor, ci şi în formarea unor deprinderi d
intelectuală. Mul‑i elevi încheie ciclul liceal fără a avea formate dep
cu manualul şi documenta‑ia, ceea ce le creează serioase probleme de a
explică eşecurile din primul an de studen‑ie şi greutatea de adaptare ‑
diului universitar. Metoda muncii cu manualul este un aspect al s
şi se utilizează sub directa îndrumare şi supraveghere a profesorulu
abordaaceastămetodă,profesorultrebuiesăatragăaten‑iaelevuluia
importante ale lec‑iei, care trebuie urmărite în mod special, cerân
un rezumat cu principalele idei de re‑inut. Rolul profesorului nu se
la a indica lec‑ia din manual sau documenta‑ia care trebuie studiat ‑
eriidecătreelevianouluimaterial,profesorulareunrolactiv.Elu
întocmeşte conspectul fiecare elev, dă îndrumări elevilor care‑l so
planurile întocmite de aceştia, corectând acolo unde este cazul. Pr
descopere în acest fel anumite lacune în cunoştin‑ele dobândite a
să intervină ulterior pentru remedierea lor. El se ocupă deopotrivă d
de cei buni, cărora le dă sarcini suplimentare, reuşind astfel să‑şi facă o
despre stilul de lucru şi ritmul fiecărui elev. După studierea indivi
sau documenta‑ie, urmează discu‑ii asupra celor însuşite de elevi. Aces
scopul de a preciza problemele esen‑iale ale lec‑iei, de a le sistemat
posibilitatea unor omisiuni din partea elevilor sau chiar a îns
no‑iuni.Profesorultrebuiesăselectezeşisăpregăteascăminu‑iosmateri
pentru a fi în măsură să răspundă prompt la orice întrebare pusă de elevi. Nu
lec‑iepoatefiînsuşitădinmanual.Metodaseaplicănumailec‑iilorcare
oredactaresistematicăşiaccesibilănivelurilordevârstăşidecuno
Acestoraliserecomandăstudiultemeistabilitepentruacomodar
profesorul reia prezentarea cu sublinierea aspectelor [Max1 ]). Având oesen‑ial
asemeneabază,profesorulsepoateconcentraasupradiscursuluisău
discurs bine organizat [WO sunt
]): (
• Urmărireaatentăaaudien‑ei:fiecărui„ascultător”(elev)îipoatefisu
că este personajul principal, că el este cel vizat în primul rând.
• Noi por‑iuni de text pot fi uşor introduse suplimentar, prin referi
• Se prezintă lucruri deja verificate. Nimic nu poate merge rău.
• Stresul fiecărui elev în parte poate fi micşorat, el ştiind că nu est
special.
• Există posibilitatea unui feedback rapid şi anumite principii de
folosite imediat.
120 DIDACTICA PREDĂRII INFORMATICII

• Există posibilitatea pregătirii prealabile a materialului, cu d


inclusiv cea a expunerii.
• Posibilitatea de a controla ceea ce s‑a transmis/recep‑ionat, c
formă, precum şi a modului de reac‑ie este foarte mare.

Desigur,existăşidezavantaje.Nuinsistăm,pentrucăideeaestecăfieca
de mai sus devine un dezavantaj dacă profesorul nu este un bun ‑ gesti
lor şi timpului său, caz în care se poate ajunge, din partea clasei,
‑ la pas
nare, plictiseală, lipsă de individualizare etc.

3.1 9 Metoda jocurilor didactice


Jocurile didactice au valen‑ele lor educative şi în cazul informati
învă‑are, acestea dau rezultate deosebite în special la clasele mic
utilizarea acestei metode de instruire îl constituie folosirea
soft care au o încărcătură educativă redusă. Datorită atractivită‑ii, el
re‑inaten‑iaelevului,uneorichiaroreînşir,fărăînsăcaelsădobândeascăc
sau deprinderi pe măsura efortului depus. Un rol aparte se atribuie

pulative, prin care elevul devine conştient de proprietă‑ile obie
formează deprinderi şi dexterită‑i de utilizare a acestuia prin simula
a utilajului sau dispozitivului respectiv. Aceste jocuri, numite
necesită în cele mai frecvente cazuri echipamente periferice supl
specializatepelângăceleclasice.Amintimînacestsensutilizareai
aunorcăştispecialepentruob‑inereaefectuluiderealitate ‑ virt
telorcaresimuleazăcondi‑iidezbor(pentrupilotaj)etc.Altetipuri
reprezentative), prin simbolizarea sau abstractizarea unor eleme
descoperirea unor reguli de lucru cu aceste elemente, dezvoltân
elevului. Ce altceva reprezintă un produs soft, atunci când înve‑i să‑l
un joc mult mai serios? Chiar dacă metoda nu este caracteristică ‑ st
ticii, la limita dintre jocul didactic şi învă‑area asistată de calc
bună parte dintre software‑urile [RVde
]). învă‑are (

0 .3 1 Instruirea programată şi învăţarea asistată de calculator


Instruirea programatăpoatefiaplicatăcumaresuccesînmomenteleîncareob
primordial al predării îl constituie utilizarea unui mecanism real
programate, esen‑iale devin probele şi produsele demonstrative, pe
le descriem elevilor. Trebuie avut în vedere ca numărul de ore ‑ afecta
iri programate să nu fie foarte mare. Ea trebuie să beneficieze de un număr
de ore de verificare a cunoştin‑elor acumulate, evitându‑se‑ însă mono
rarea plictiselii (se recomandă utilizarea alternativă a altor me
METODE, TEHNICI ŞI PROCEDEE DIDACTICE 1 21

şi folosirea metodei un timp îndelungat, lucru care poate conduce în


la o izolare socială a elevului. O idee pentru contracararea‑ acesto
tereanumăruluideoresauorganizareaactivită‑ilorpeInstruirea grupurisauîne
asistată de calculator este un concept diferit de instruirea programat
modalitatea de utilizare. Există aceleaşi premise şi moduri de utili
faptului că un sistem de calcul devine principala interfa‑ă dintre u
elev.Absoluttoateno‑iunile,conceptele,exerci‑iile,problemele,ev
prezentările legate de o anumită temă în cadrul unei lec‑ii (inclusiv ‑ e
pliniriiobiectivelor)suntîndepliniri,dirijări,verificăricuajut
informatică (de fapt, în majoritatea disciplinelor şi majoritatea şco
intensplatformadeînvă‑areAeL,accesibilăonline(http:/ advancedelea
Procesele de predare‑învă‑are şi verificare‑evaluare func‑ ionează pe
princi-
piului cibernetic comandă‑control‑reglare (autoreglare). Instruirea programată, ca
metodă didactică, presupune construirea unor programe de învă ‑ ‑are car
mentareamaterialuluidestudiatînsecven‑e,realizeazăoadaptar
posibilită‑ileelevilor,laritmullordeînvă‑are,asigurăoînvă‑areactiv
operativă a rezultatelor învă‑ării, necesară atât elevului, pentru a
profesorului. În elaborarea programelor de învă‑are se au în vedere
opera‑ii [RV( ]):
– precizareaobiectiveloropera‑ionaleînfunc‑iedecon‑inutşiposibi
– structurarealogicăacon‑inutuluidupăprincipiulpaşilormicii ş alînv
– frac‑ionarea con‑inutului în secven‑e de învă‑are (unită‑i didactice) i
înlăn‑uite logic;
– fixarea după fiecare secven‑ă a întrebărilor, exerci‑iilor sau probleme
rezolvate pe baza secven‑ei informa‑ionale însuşite;
– stabilirea corectitudinii răspunsurilor sau solu‑iilor elabo

Ca orice inova‑ie, instruirea programată a trecut prin câteva fa


Laînceputs‑alovitderezervatenaceatradi‑ieişidedificultă‑ilemat
apoi, după ce a câştigat teren în conştiin‑a teoreticienilor şi‑ practic
gerat într‑o oarecare măsură valen‑ele ei aplicative, creându‑se il
pietreifilosofaleîndomeniulpedagogic.Înfinal,dupăoanalizălucidă,s‑a
există păr‑i pozitive şi păr‑i negative. Criticile aduse instruirii prog
de ordin psihologic, cât şi de ordin pedagogic şi metodic. Psihologic,
‑ ins
gramate i se impută faptul că nu ‑ine seama de principiile psihologice a
vizând învă‑area ca o simplă succesiune şi înmagazinare de fapte. De aseme
ştie că motiva‑ia învă‑ării nu poate fi analizată numai prin prisma‑re‑ineri
rii imediate, făcând abstrac‑ie de interesul elevului fa‑ă de con‑inut
singur sau cu calculatorul, elevul se simte izolat. Pedagogic vorb
con‑inuturilor este în detrimentul formării unei viziuni globale, ‑ i
terii imediate de către elev a rezultatului ob‑inut are valen‑e co
decupajul analitico‑sintetic al con‑inuturilor îi îngustează ‑ ele
mării aptitudinilor de analiză şi sinteză. Aceste critici au determina
12 DIDACTICA PREDĂRII INFORMATICII

în concep‑ia de aplicare a metodei, dar practica didactică dovedeşte c


secunoscşiseevităcauzelecaregenereazăefectenegative,metodaprod
bune. Tendin‑ele de îmbunătă‑ire a aplicării metodei se îndreaptă spre
utilizării metodei cu celelalte metode clasice. Inserarea într‑o
unor metode clasice schimbă determinarea muncii şcolare, repunând
directă dependen‑ă de activitatea profesorului şi dându‑i acestu
verifice gradul de însuşire a cunoştin‑elor con‑inute în program. O altă t
aceea de a modifica modul de redactare a programului, în special
‑ prin m
muluideinforma‑iedinunită‑ilelogiceşiprinseparareapăr‑iideverifi
situa‑ii în care verificarea se va face după câteva ore sau chiar a dou
program se pot insera secven‑e independente, care să necesite un ti
gândiresaudelucru.Izolareaimputatăînvă‑ăriiprogramatepoateficon
alternarea cu munca în grup sau chiar prin învă‑are programată în grup, s
care grupul parcurge în colectiv un program special conceput în aces
Perspectiva învă‑ării asistate de calculator, inclusiv prin inte
este certă. Ea oferă posibilitatea prezentării programului, verificăr
corectării erorilor, modificând programul după cunoştin‑ele şi condu
Calculatorul nu numai că transmite un mesaj informa‑ional, dar el
formarea şi consolidarea unor metode de lucru, de învă‑are. Prin aplic
metode de învă‑are nu se întrevede diminuarea rolului profesorul
sarcinileluiseamplificăprinfaptulcăvatrebuisăelaborezeprogram ‑
tezelacerin‑eleprocesuluieducativ.Oricâtdecompletearfiprogr
asistată de calculator, profesorul rămâne cea mai perfec‑ionată maşi
Pentru informa‑ii suplimentare, se poate consulta site‑ul ministe

3.2 Metode specifice de învă‑are

Acestea se referă la ramuri/subramuri particulare ale informatici


algoritmilor, logica etc.). Fără a intra în prea multe detalii (fiecare sub
metodeleeispecifice)invită , mcititorulsăconsulte cât atât
şicapitolul
bibliogra
 4.
Să mai men‑ionăm faptul că, în realitate, metodele (generale sau specific
complet independente, precum obiectivele sau principiile didact
în majoritatea cazurilor, iar dacă luăm în calcul şi varietatea de o
metode/metodologii specifice, ajungem la un număr impresionant ‑ de va
‑ionale pe oră şi temă. Credem că am prezentat în carte suficiente exempl
ales edificatoare (în principal înîn
capitolele
anexe şi 4‑6). Alegerea problemelor
reale poate fi condi‑ionată de planul de învă‑ământ, manualele altern
local,nivelulclasei,materialuldidacticdisponibilsaucriteri
În plus, formularea problemelor trebuie să ‑ină cont, la rândul ei, de
manualelor, de no‑iunile anterioare pe care le posedă elevii, poate
fundamental sau legislativ al problemelor.
METODE, TEHNICI ŞI PROCEDEE DIDACTICE 123

Săneoprimtotuşiasupracâtorvametode,specificepoatenuatâtu
câtcontextuluiactualeisocietă‑iinforma‑ionale(sepoateconsult
cursuriautorizate.eu, de unde ne‑am şi inspirat uneori), care impune, p
şi educa‑ia adul‑ilor (ele ar putea fi numite şi metode/tehnici de inst
• Metoda brainstorming, corelată cu discu‑iile în cadrul unei mese r
• Maieutica.
• Asa‑numita metodă
role play.

Brainstormingulesteunprocedeuîncareungrupdeparticipan‑i(sigurcăa
pot fi chiar elevi) se concentrează (prin discu‑ii) asupra unei problem
caută solu‑ii prin intermediul procesului colectiv de adunare de
admise formulări descurajatoare de tipul: „Am încercat acest lucr
„Nu va da rezultate niciodată”; „Cine are timp pentru aşa ceva?”. ‑ După ce s
izează lista sugestiilor, aceasta poate fi redusă la un număr de op‑iuni
poatefiolistăasolu‑iilorînordineapriorită‑ilor.Unelesugestiipo
nu se întruneşte consensul grupului. Profesorul trebuie să aibă grij
continue,prevenindgândireanegativăCa . unavantajdeluatînseam
permite enun‑area unor opinii şi/sau aprecieri creative, fără restric
tema în discu‑ie. Masa rotundă se referă la ideea de a desfăşura discu‑iil
în cadrul unor subgrupuri, pentru ca ulterior acestea să fie extinse
Maieutica este o metodă prin care se urmăreşte ajungerea la adevăr to
unordiscu‑ii/dialoguri,încareîntrebărileipoteticesuntfolosite
Maiexact,predareadetip„întrebare‑răspuns”estecâteodatămultm
maiactivădecâtprelegereauzualăO. discu‑iecareîncepecuoîntrebare
dificilă) necesită un angajament activ al participan‑ilor de a răspu
solu‑ii, fiind mai productivă decât receptarea pasivă.
În sfârşit,
interpretarea de roluri (autoexplicativă ca sens, credem) are ca sc
primordialsăcontribuielaconştientizareadecătreparticipan‑ ‑ iam
tive, valori, stiluri de comunicare şi norme culturale care se pot ma
unordiscu‑ii(deasemenea,dorin‑aesteşidea‑iînvă‑apeaceştiacumsălefa
cu succes). În acest mod, s‑ar asigura aplicarea în practică a unei game v
aptitudini evident necesare lucrului în echipă, cum ar fi solu‑iona
luarea unor decizii echilibrate, rezolvarea situa‑iilor neprevă ‑ zut
selor op‑iuni pentru solu‑ionarea unor situa‑ii dificile.
Ca o concluzie (par‑ială şi nicidecum exhaustivă) a acestui capitol, pr
tratarea rezolvărilor trebuie să aibă în vedere ob‑inerea rezultat
pecâtposibil,verificabileprintr‑oaltămetodă)analiza , metodeloru
tipurilor de ra‑ionamente folosite, deschiderea unor noi perspect
similare sau mai complexe. Se urmăresc cunoaşterea activă a no‑iunilo
adâncirea semnifica‑iilor, asimilarea metodelor de rezolvare, ‑ apl
onarea altor tipuri de probleme.
Capitolul 4

No‑iuni de bază

Acest capitol este destinat în principal prezentării unor ele


absolutnecesarepentrupăstrareacaracteruluidesinestă‑ tătoral
tul preuniversitar, anumite no‑iuni deosebit de importante su
diferit.

4.1 No‑iuni de bază în informatică

Începemcuoscurtătrecereînrevistăacâtorvaconceptecarevorfiu
în carte, în special ca suport teoretic pentru exemplele alese. Pen
pot consulta [An], [At], [CMS ], [Hor], [HS ], [Max1 ], [Po], [RV ].
Temeleşidomeniileabordateîntratareadisciplinelordeinform
prin competen‑ele‑cheie şi competen‑ele specifice. În concep‑ ia noastr
algoritmul
reprezintă o no‑iune fundamentală, un concept de bază pentru informa
algoritm (imperativ) se în‑elege ansamblul de transformări (metode)
asupra unui set de date de intrare şi care determină ob‑inerea, într
după o succesiune precisă de paşi, a unui set de ieşdate
ire( [CLRde], [K1 ], [K2 ]).
Aceasta nu este o defini‑ie, ci o descriere a unui concept. Spre ‑ deose
matica clasică (în care no‑iunile de bază, nedefinite, ci doar descrise,
simple: mul‑ime, punct, plan etc.), no‑iunile informatice similare sunt
complicate (în afară de algoritm, mai amintim: bază de date, program concu
site, cip etc.). Un accent deosebit trebuie pus pe caracteristicile gene- a
ralitatea ( universalitatea), determinismul şi finitudinea, eficacitatea ( [K1 ], [Max2 ]).
Introducereaoricăreino‑iuni(chiarnefundamentalăar ) trebuisăparcu
etape:
• Etapa de elaborare şi motivaţie(ini‑ialăFundamentată
). şieficientintegratăînt
sistem, o no‑iune cere noi domenii de aplicare. Prin urmare, atrage
(motivează) introducerea unor noi no‑iuni sau furnizarea unor noi r
când aria de extindere se îngustează.
126 DIDACTICA PREDĂRII INFORMATICII

• Etapa de formare a no‑iunii. Ilustrată prin exemple, argumentată teore


dorit,demonstratămatematic,ono‑iuneseconstituiecaunutilşi
de produc‑ie în domeniul pentru care a fost elaborată. Didactic, a
cuprindeargumentareaştiin‑ificăano‑iuniiintroduseşireliefarea
domenii de aplicabilitate.
• Etapa de consolidare se realizează prin operare consecventă cu no‑‑ iunea. O
une poate fi considerată asimilată dacă devine şi instrument de do
cunoştin‑e şi dacă elevii pot opera cu ea în situa‑ii noi.

De exemplu, în privin‑a reprezentării algoritmilor, optăm pentru ‑ folo


docodului sau a altor tipuri de „diagrame”. No‑iunile introduse ul
înmodfiresc,căpătândcaracteristicileunorînlăn‑uiricauzale.Unelet
pot fi organizate în (ceea ce presupune o reîntoarcere la acelaşi con‑in
spirală
pe un nivel superior). Acest mod de planificare corespunde concentric sistemu
propriu‑zis( concentric calitativ)şisistemului concentric cantitativ( concentric liniar).
Sistemul concentric calitativ desemnează modul de organizare a cunoştin‑elor
programele de învă‑ământ, manuale şi lec‑ii, în aşa fel încât no‑iunile (cuno
se însuşesc prin reluări, restructurări, reinterpretări, până la formar
Sistemul concentric cantitativestemoduldeorganizareacunoştin‑elorînprogr
şcolare, manuale şi lec‑ii (inclusiv pe Internet), constând în reluar
detaliată a materiei parcurse anterior, reluare reclamată ‑ nu atâ
legeriino‑iunilor,câtmaialesdenevoialărgiriicunoştin‑elorînsuc
şi treptelor şcolare. Trebuie astfel făcută diferen‑avariabilă, între no‑aşaiunea de
cum este ea cunoscută din matematica clasică , şi cea
variabilă în sensul
de limbaje ‑
lor de programare imperative ]), no‑iune
[Barr ( care poate fi reprezentată astfe
unde poate rezulta şi interpretarea corectă a atribuirii):

Intuitiv vorbind, pentru a parcurge drumul de la realitatea ‑ de


mentarea pe calculator, trebuie în‑elese, cel pu‑in la nivel descrip
cumarficelede problemă, complexitate, corectitudine/verificareetc.Dupăcumam
mai precizat, pentru că no‑iunea de algoritm este datăşi
descriere, printr‑
nu prino
utilizarea
genului proxim şia diferenţei specifice (însensullogiciiaristotelicec
casubdisciplină a [Mas3 ])avem
filosofiei , maiîntâinevoie de de reprezentare
metode
a algoritmilor. O primă formă de reprezentare este, desigur,
limbajul natural. O altă
formă de reprezentare a algoritmilor este Limbajul pseudocod,
limbajul pseudocod.
spre deosebire de limbajul natural, este o formă de reprezentare ‑ ma
‑ându‑neînplusoriceniveldedetaliere.Anumiteopera‑ii/instruc‑i
informa‑ie (
[Bac1], [Barr]) nu lipsesc dintr‑un astfel de limbaj:
NO,IUNI DE BA=Ă 127

• O mul‑ime de opera‑ii elementare:


– atribuirea unei valori pentru o variabilă „internă”;
– citireauneivaloripentruovariabilă(aceastafiindtotoatr
special);
– scrierea valorii curente a unei variabile „în exterior”.
• O mul‑ime de structuri de control:
– structura secven‑ială;
– structura alternativă;
– structura de tip repetitiv.
• Clase de structuri de date:
– numere;
– şiruri de caractere;
– tablouri;
– arbori;
– liste etc.
• Blocul de instruc‑iuni poate con‑ine una sau mai multe instruc‑i
execu‑ieainstruc‑iunilorestesecven‑ială,dacănusespecifică
‑ altfe
‑iuni de control, instruc‑iuni de salt etc.).
Tabelul 4.1 Forma pseudocodului şi reprezentarea grafică

Operaţie Pseudocod; C/C++/C# Reprezentare grafică


NumeVariabila = valoare;

Atribuire
In C/C# semnul pentru
atribuire este =

citire NumeVariabila;

Observaţie
VariabilaNumeVariabilavaavea
Citire
atribuită valoarea furnizată în cadrul
acestei opera‑ii (de exemplu, ceea ce
tastăm sau citim-unîntr
fişier).

scrie NumeVariabila;

Observaţie
Scriere
Valoarea variabilei va fi afişată pe
ecransauscrisă
-un
într
fişier.Ecranul
este văzut tot ca un fişier.
BlocInstructiuni;
Structura
secven‑ială
Observaţie
(bloc de ÎnC/C++/C# BlocInstructiuni
instruc‑
‑ ieste delimitat de acolade
uni)
128 DIDACTICA PREDĂRII INFORMATICII

Daca (conditie) atunci


StructuraBlocInstructiuni
SfDaca
de control
alternati ‑
// C/C++/C#
vă  – in‑
if (conditie)
completă
BlocInstructiuni

Daca (conditie) atunci


Bloc1_Instructiuni
altfel
StructuraBloc2_Instructiuni
de control
Sfdaca
alternati‑
vă  – com ‑ // C/C++/C#
pletă if (conditie)
Bloc1_Instructiuni
else
Bloc2_Instructiuni
Cattimp (conditie)
Structura
executa
de control
BlocInstructiuni
repetitivă
Sfcattimp
cu test la
intrarea în // C/C++/C#
ciclu while (conditie)
BlocInstructiuni
Repeta
BlocInstructiuni
Panacand (conditie)
Structura
de control
repetitivă // C/C++/C#
cu test laDo
ieşirea din BlocInstructiuni
ciclu while(conditie);

for(initializare;
conditie; actualizare)
{ BlocInstructiuni;
StructuraActualizare;
}
de control
repetitivă
// C/C++/C#
cu număr
for(initializare;
finit de conditie; actualizare)
paşi {
BlocInstructiuni;
Actualizare;
}
NO,IUNI DE BA=Ă 129

Observaţie
Pseudocodul, schema logică etc., folosite în mod real, pot diferi de la p
profesor, de la şcoală la şcoală. Sperăm ca abordarea sugerată de noi să nu con
diferen‑e majore, care să genereze neîn‑elegeri insurmontabile. Nu am i
formă de pseudocod similară cu un cod Pascal deoarece acest limbaj es
ce mai pu‑in folosit.

Se observă că orice opera‑ie sau structură reprezentată mai sus poat


cu un bloc cu o singură intrare şi o singură ieşire. Prin urmare, chiar şi un al
la nivelul cel mai redus de detaliu, poate fi privit calogică)
schemă un bloc: unic (

În 196 ( [BJ]) s‑a demonstrat că algoritm (imperativ) poate fi reprezentat


orice
folosind numai structurile de control: secvenţială, alternativă şi repetitivă.Rezultatul
ob‑inut a condus în acel moment la apari‑ia unor noi viziuni de‑ proiec
milor, cum ar fi cele modulară şi structurată. Din acelaşi motiv vom ‑ folos
cursullucrării,încazcăanumiteconfuziipotfievitate,şialteinstru
sau limbaje pseudocod apropiate până la identificare de limbaje
comerciale. Fără a intra în detalii, următoarea schemă calculează‑ cel mai m
zor comun a două numere nenule (presupuse a fi naturale în mod implicit
130 DIDACTICA PREDĂRII INFORMATICII

Observaţie
Înainte de a prezenta schema logică sau codul pentru un algoritm es
realizămodescriereaacestuia.Oabordaredirectă,similarăcuceaofer
nu este productivă şi va for‑a elevul să memoreze ceva ce nu a în‑eles.

Se observă că în orice algoritm rezultatul final este condi‑ionat d


şi,maimult,căsuccesiuneaîncareseexecutăopera‑iileelementaredepi
deintrareşiderezultateleintermediareob‑inuteînurmaexecu‑iil
ini‑iale, rezultatele intermediare şi deciziile luate în structur
şi repetitive determină astfel
traiectorie ( [Max1
o ], [Max2 ]) a execu‑iei opera‑iilor
(prelucrărilor), aceasta putând fi reprezentată printr‑ digraf). un graf orien
Algoritmului anterior i se poate asocia digraful:

Prinurmare,oricetraiectoriedeprelucrăriinduceîndigrafulaso
un drum de la nodul ini‑ial (etichetat cu 1), asociat primei opera‑ii d
( Start‑Început), la nodul final (etichetat cu 8), asociat ultimei‑ opera‑ii
ritmStop‑Sfârşit
( ).

4.2 Paradigme de programare

Începem această sec‑iune prin a puncta că, din punctul nostru de ‑ veder
ritm, indiferent de forma sa de prezentare sau de descriere (mai mult
apropiată de un limbaj natural, mai mult sau mai pu‑in formalizată), tre
din urmă, să fie implementat într‑un limbaj de programare şi executat ‑ pe
lator real. Totul depinde de modalitatea de a defini opera‑ional
fără a folosi direct (de exemplu, maşina Türing) sau indirect (prin genul pro
diferen‑aspecifică)unconceptformal.Suntastfelnecesarecâtevapr
paradigmele (saustilurile fundamentale) de programare. Suportul bibliografic‑ prin
cipal este dat de linkurile din Anexa 3.
NO,IUNI DE BA=Ă 1 31

Odatăcuintrareano‑iunilordealgoritmşicalculatorînlimbajul
diverse idei privind modalitatea în care gândim rezolvarea unei p
devederegeneralfilosofic,paradigmeleformeazătotalitateapract
o disciplină ştiin‑ifică la un moment dat. Ele dictează „ce se studiază”, „c
problemeimportantesepun”,„cumsuntinterpretaterezultatele”
ceea ce afirmau Aristotel (ştiin‑a „normală” se bazează pe acumularea ‑ de
ma‑iipesteceeacesecunoaştedeja,totulalcătuindşiîmbogă curentă
‑indparadi
)
şiPlaton(ştiin‑a„revolu‑ionară”punelaîndoialăînsăşiparadigmacurentăp ,
problema cum s‑ar putea cunoaşte ceva nou „altfel”). Atunci vom‑ accept
tatea trecerii, câteodată, de la o paradigmă
schimbarealade
alta (
paradigmă) .
Paradigma de programare ar reprezenta astfel un set de reguli ‑ pri
zeazămodulîncareseconstruieşteunprogramîntr‑unlimbajdeprogram
modul în care se proiectează limbajul însuşi. O paradigmă de programare
astfel:cumsereprezintăinforma‑iavariabile,
( func‑ii,obiecte,fapte,const
şi cum se prelucrează aceste reprezentări (prin atribuiri, evaluări, fir
fluxuri de lucru 
etc.).
Men‑ionăm doar câteva tipuri de (paradigme de) programare:
• Programarea imperativă/procedurală/von Neumann (concretizată ‑ de li
ceduraleca:ALGOL,FORTRAN,COBOL,BASIC,Pascal,Cetc.saudelimbaje
de asamblare şi codurile maşină, specifice fiecărei genera‑ii de cal
începând cu ENIAC şi terminând cu PC‑urile, tabletele şi telefoanel
astăzi).
• Programarea declarativă/nonprocedurală, subdivizată de obicei în:
– programareafunc‑ionalăcâteva
( limbajecunoscute:Lisp,APL,Erlang,Has
ML, OCaml, Scheme etc.);
– programarea logică (limbaje de tip Prolog);
– programarea asociativă (CLIPS).
• Programarea orientată pe obiecte (Smalltalk, C++, Java, C#, PHP etc.).

Mai putem adăuga ca fiind reprezentative: programarea paralelă/c


programarea bazată pe reguli sau constrângeri, programarea textua
O paradigmă complet nouă, care încă nu s‑a structurat şi individualizat c
fi programarea probabilistă. Să punctăm de pe acum că nu putem clasifica un
real, implementabil, ca apar‑inând unei paradigme doar după sintaxă‑ , că e
baje multiparadigmă sau integrate (precum Python) şi că exemplele de li
anterior sunt de nivel înalt şi comerciale. Clasificarea men‑iona
departe exhaustivă.
Să detaliem, începând cu paradigma despre care s‑a mai discutat, ‑ ad
gramarea imperativă (= date + opera‑ii). Pe scurt, aceasta desemnează fapt
cod (algoritm) implică efectuarea unor opera‑ii asupra datelor. Star
asociat variază în timp, execu‑ia opera‑iilor/instruc‑iunilor este se
ordinii de scriere textuală a lor) şi variabilele denumesc/reprezin
132 DIDACTICA PREDĂRII INFORMATICII

memorie ale calculatorului. Con‑inutul zonelor se modifică în timp


Abstrac‑iuneaspecificăprogramăriiimperativearficonceptuldeproc
(formal)decalcul/execu‑ieestemaşina Türing
/T üring M achine/TM(un  modelsimi ‑
lar ca putere de calcul este maşina cu memorie cu andom‑A acces aleator/
ccess R
M emory machine/RAM). Mai sunt şi alte aspecte care ar putea fi caracter
pentru încadrarea unui limbaj într‑o anumită paradigmă: de exemplu, în
imperative se permite existen‑a efectelor secundare, valori a tipurilor
şi vari

abile etc. În cadrul acestei paradigme nuceeste esteimportant
o solu‑ie (ob‑inută în
urma excu‑iei codului) , cise ob‑ine aceasta.
cum
Programarea func‑ională (= func‑ii + control) este bazată pe matematic
exact pe teoria generală a func‑ l‑calculul)
iilor ( . Este, practic, atemporală, valor
fiind imuabile: nu există atribuiri, nu există efecte secundare prop
prelucrările se bazează pe aplicarea unei func‑ii unui argument şi pe com
func‑ii (de un argument; func‑iile cu mai multe argumente sau valori se
simplucufunc‑iideunargumentşiavândosingurăvaloare).Abstrac‑iune
este conceptul matematic de func‑ie (reprezentată în nota‑ia lambd
tipizarea (aceasta fiind însă greu de manipulat computa‑ional).
Programarea logică (= rela‑ii/logică + control) este bazată tot pe mate
dar nu pe ideea de func‑ie, ci pe cea de rela‑ie.lÎn ‑calcul,
loc dese foloseşte ca
suport teoretic calculul cu predicate depredicate
first order ordinul I/ (FOL).
logic/
Deşi orice rela‑ie poate fi introdusă ca fiind o func‑ie particulară şi re
func‑iepoatefiprezentatăcaorela‑ie)conceptele , generale(lanivelu
axiomaticealematematicii)suntdiferite(deaceeaşilimbajele„pil
În programarea logică se permite tipizarea, cu aceeaşi observa‑ie de la
func‑ională. Abstrac‑iunea specifică este dată de conceptul de predicat
elfolositînlogicamatematicăbinarăclasică , Pornind
). delainforma‑ii(fa
şiregulideinferen‑ă/rela‑iiîntrefapte),solu‑ia(teoremă,carăspunslaoi
seconstruieşteprinra‑ionamente/demonstra‑ii/deduc‑ii.Sedescrie
spunece/careesteaceasta)şinucumseajungelaea(maiexact,seajung
printr‑o execu‑ie standard, solu‑ia în sine fiind practic doar un efe
acestei execu‑ii).
Programarea asociativă este de multe ori asimilată cu programar
există câteva deosebiri importante (atât în sintaxă, cât şi în semant
exemplu,faptelesuntdoardetipul„Dacă.atunci.. ”,şitoată„execu‑ia”este
pe substitu‑ii textuale pattern şi tehnici deabstrac‑iunea specifică
matching, ‑ repre
zentând‑o conceptul de maşină Markov/ arkov M Machine/MM.
În sfârşit, programarea orientată pe obiecte (= clase + metode) este
teoria conceptelor, legată de permanenta interac‑iune umană cu med
realesereprezintăprinclase,iarinstan‑ele/întrupareafizică ‑ aconce
tele.Obiectuleste,defapt,şiabstrac‑iuneaspecificăacestuitipdepr
o ierarhie generală între clase/obiecte, bazată pe no‑iunea de moşten
implică folosirea metodelor şi comunicarea între clase/obiecte (prin
mesaje/message passing).
NO,IUNI DE BA=Ă 13

Nu vom detalia mai mult. În momentul necesităii


‑ învării
ă‑ sau chiar al pr
unui anumit limbaj concret (de nivel înalt sau nu) pentru a fi folosi
mod constant şi regulat, sperăm să fie suficiente considera‑iile de mai

4.3 Tehnici de programare. Proiectarea algoritmilo


sortare şi căutare

Pentru o introducere în problematica vastă a acestui domeniu (inc


studiului său intensiv), recomandă[CLR], m volumele
[K1 ], [K2 ], [Me ]. Deşi din
punct de vedere practic
sortarea externă este mult mai importantă, din conside
didactice vom insista asupra
sortării interne. Aceasta înseamnă că algoritmii în sine
ideile importante de rezolvare a problemelor reale, complexitate
asupra considerentelor legate de spa‑iul (resurse hard) şi timpul e
secunde) de rezolvare.

Enunţul problemei de sortare


Fie „la intrare” o colec‑ie de obiecte nu neapărat distincte, ‑ peste
nită o rela‑ie de ordine. Să se furnizeze „la ieşire” aceeaşi colec‑ie, even
o altă formă, care să satisfacă anumite criterii, precizate anterior
ordine.

Exemplu
Considerăm colec‑ia:

{(Popescu, 9, 1.78),
(Ionescu, 10, 1.76),
(Eva, 10, 1.65),
(Adam, 8, 1.79),
(Ionescu, 9, 1.72)}.

Această colec‑ie o putem ordona crescător/descrescător după primul


perechii,
nume, sau după al doilea element al perechii,
nota, sau după al treilea
element al perechii, ce ar putea reprezenta
înălţimea.

Enunţul problemei de căutare


Se consideră dată o mul‑A ime
, finită, peste care este definită o rela‑ie bin
Să se determine dacă un element x, de tipul elementelorAmul‑
, se găimii
seşte
sau nu în mul‑imea A.
134 DIDACTICA PREDĂRII INFORMATICII

Observaţii
1. Nu ne interesează dacă elementul
x se află de mai multe ori în mul‑Aimea.
2. Unele probleme de căutare definesc criterii complexe x cepentru
se ele
caută, nu se rezumă numai la existen‑a/inexisten‑a acestuia A. în mul‑ime
3. Deoarece mul‑imeaA este finită, rezultatul căutării poate fi adevărat
adicăelementulexistăsaunuînAmul‑ şiîntotdeauna
imea vaexistaunrezult
4. Dacă elementele mul‑Aimii sunt aranjate -o anumită
într ordine, este posibil ca
algoritmul de căutare a elementului
x să aibă o formă particulară.
5. Algoritmul normal de căutare începe prin a compara rând pe rând
mul‑imiiA cu elementulx. La prima apari‑ie a elementuluix, algoritmul va
semnala acest lucru şi se poate opri. Dacă s-a parcurs toată A şi ele‑ mul‑imea
mentul xnuafostgăsit,atuncisevaterminaalgoritmulprinafişarea
corespunzător.

Referitorlaproblemacăutăriiconsiderămunexempluclasic,dar
‑ care
drează perfect în enun‑ul de mai sus.

Exemplu
Unvectornotat Ade
, cu
dimensiunencon‑
, inetoatenumerelenaturaleşidis
de la
1 lan + 1 (cu excep‑ia unuia, bineîn‑eles). Să se determine numărul ca
lipseşte.

O idee pentru rezolvare poate fi exprimată astfel:


a) Calculămsumaprimelor
n + 1 numerenaturalecu(n formula
+ 1)(n + 2)/2.
b) Printr‑o parcurgere secven‑ială, calculăm suma elementelor
A. vector
c) Diferen‑a celor două sume este numărul căutat.

Complexitatea este evident liniară pentru o implementare cor

O altă idee de rezolvare este dată în următoarea secven‑ă de cod:

Code1:

int m = 0;
for (int i = 1; i < n + 1; i++)
m = m + i ‑ A[i];
m = n + 1 + m;

NO,IUNI DE BA=Ă 135

Observaţii
1. Repetăm, autorii nu recomandă descrierea unui algoritm prin furn
codşiapoidiscutarealui.Amputeadescriemetodademaisus,folos
prima idee, în felul următor: odată cu calculul sumei elementelor
vomcalculai ş sumaprimelor
nnumerenaturalei ş vomfacedirectdiferen‑adin
acesteavezi( cAvem
.) nevoiedesumaprimelor(n + 1)numerenaturale a)vezi
(
şi, în concluzie, trebuie să adună
(n m
+ 1) la rezultatul ob‑inut.
2. Codul de mai sus poate fi scris detaliat după cum urmează. Acum se ob
clar că este în fapt prima idee, dar exprimată altfel.

Code2:

int m = 0;
int suma = 0;
for (int i = 1; i < n + 1; i++)
{
m = m + A[i];
suma = suma + i; // suma primelor n numere naturale
}
// suma primelor (n + 1) numere naturale
suma = suma + n + 1;
m = suma – m; // Acest număr lipseşte


Numărul căutat vamfi . Vă invităm să găsi‑i (implementa‑i) şi al‑i algoritmi,
rezonabili ca ordin de complexitate.
Dacă vectorul ar fi sortat crescător, atunci putem formula un alg
numărul lipsă din vector coincide cu primul k pentru
indice
care
A[k]! = k, dacă
existăaltfel
, este
(n + 1)iar
, kiavaloride 1la lanCe
. concluzieamputeaextrage
din enun‑ul de mai sus? Modul de prezentare a informa‑iei contribuie
algoritmilor.
Revenim la problema ordonării elementelor unui A. În majoritatea
vector, notat
problemelor analizate, elementele A vorvectorului
fi numere naturale, întregi s
reale.Săpresupunemînsă,pentruînceput,cădorimsărezolvămordonării problema
(crescătoare)aunuivector A.Pesteelementeleacestuivectorexistădefin
de ordine totală. Pornind de la acest considerent, vom prezenta
metode de di
sortare. În func‑ie de locul în care sunt păstrate elementele A în timpul
vectorul
prelucrării, distingem:
a) Sortarea internă:elementeleAlui
suntpăstrateînmemoriainternăacalculat
b) Sortarea externă:elementele Alui
suntpăstratepeunsuportextern;seuti
neapărat în cazul unui volum foarte mare de date.
136 DIDACTICA PREDĂRII INFORMATICII

Metodeledesortarevorfidiferite,înfunc‑iedetipulsortării,int
De asemenea, modul de solu‑ionare a problemelor care presupun regăs
este puternic influen‑at de suportul de memorare a informa‑iei. Î
interne, există o multitudine de strategii de sortare, fiecare
‑ cu a
tajele sale, strategii care sunt analizate în func‑ie de diverse cr
• Memoria ocupată.
• Numărul de compara‑ii.
• Numărul de deplasări ale elementelor.
• Timpul de execu‑ie.

În cazul informa‑iilor aflate în memoria internă se pune problema d


sunt memorate în
structuri statice sau înstructuri dinamice. Algoritmii de sortare
internă pot fi împăr‑i‑i în: algoritmi
banali  – timp de lucru O(n2) sau chiar mai
mare –,careauînsămareacalitatecăsuntuşordeîn‑eles,performanţi şialgoritmi
– 
O(nlogn) sau mai mic –, care au însă dezavantajul că fac apel la cunoş ‑ tin‑e ma
matice de specialitate care nu se predau în liceu. În ceeaam ce priveşt
adoptataceeaşitacticădenaturădidactică,fărăaaveapreten‑iadeaep
însine(otratareexhaustivăpresupune,deexemplu,familiarizareacit
matematic şi informatic, cu domeniulrecunoaşterii formelor).

2
4. Algoritmi clasici de sortare, de complexitate
) t
şi mai mare
Indiferent dacă implementarea structurii de date alese pentru A m
(ceea ce mai sus s‑a numit vector) care va fi sortată este bazată‑pe ceva s
turaarray) sau dinamic (structura
pointer), descrierea în pseudocod a algoritmi
va fi orientată spre sublinierea ideii generale metodei)
de concretizare
, şi nu pe (a
detaliile de implementare.

4. 1 Sortarea prin interschimbarea elementelor vecine


Ideea algoritmului este următoarea:
• Se parcurge vectorul de sortat şi se compară elementele vecine. Da
sunt în ordinea corectă, se schimbă elementele între ele. Procesul
întregul vector până când nu se mai face nici o interschimbare.
• Notăm cu x vectorul ce con‑
n ine
numere reale şi pe care dorim să‑l sortăm.
• Algoritmul poate fi uşor implementat şi verificat. Întrebările uti
trebui să se refere la cazul cel mai favorabil şi la cel mai defavorabi
nu necesită alocarea unui nou tablou.
NO,IUNI DE BA=Ă 137

Codul în C/C# poate fi:

do
{ // vectorul ce se sortează este notat cu x
bool ok = true;
for(i=1; i<n-1; i++)
{
if (x[i] > x[i+1]) // crescător/descrescător [*]
{
ok = false;
temp = x[i]; // temp are acelaşi tip ca x[i] şi se
presupune că a fost declarat
x[i] = x[i+1];
x[i+1] = temp;
}
}
} while (ok);

Observaţii
1. Condi‑ia[*] dinif determină modul de sortare, crescător sau descres
2. Un şir sortat crescător parcurs de la sfârşit spre început este des

4. 2 Sortarea prin selecţie


Notăm cu x vectorul ce con‑
n ine
numere reale şi pe care dorim să‑l sortăm.
Sortarea prin selec‑ie poate fi descrisă astfel:
Se determină elementul minim din şirul dat şi se trece pe pozi‑ia 1. În co
determinăm elementul minim din subşirul
{x[2], x[3],... x[n]} şi‑l trecem
pe pozi‑ia primului element din subşir etc.

Observaţie
Am considerat indexul primului element din vector ca având valo
caz, vectorul în C/C# trebuie declarat ca având dimensiunea
n + 1 . Reamintim că
în C/C# indexul primului elementarray
al unui
are valoarea 0.

Presupunând căcitit
am elementele vectorului, numărul de elemente, a
toatedeclarăriledevariabileşiini‑ializărilenecesare,codulînC/C
138 DIDACTICA PREDĂRII INFORMATICII

for(i = 1; i < n; i++)


{
minim = x[i];
indexMinimInitial = i;
for (int j = i + 1; j<=n; j++)
{
if (minim > x[j])
{
minim = x[j];
indexMinimActual = j;
}
}
if (indexMinimInitial != indexMinimActual)
{
// Interschimbăm elementele x[indexMinimInitial] şi
x[indexMinimActual]
int temp = x[indexMinimInitial];
// se presupune că elementele lui x
// sunt de tip int
x[indexMinimInitial] = minim; // adică x[indexMinimActual]
x[indexMinimActual] = temp;
}
}

Observaţii
1. Am considerat indexul primului element ca fiind 1. Dimensiunea de
tabloului trebuie să fie în acest
+ 1.
n  caz
2. Secven‑a de cod arată şi modalitatea de a ob‑ine elementul cu valoa
sau maximă dintr
-un şir.

4. 3 Sortarea prin inserţie directă


Notăm cu x vectorul ce con‑
n numere
ine reale şi pe care dorim să‑l sortăm. Primul
element are indexul egal cu 1.

Descrierea algoritmului
Considerămcăprimele j – 1elementealevectoruluisuntsortatecres
[1] < x[2] < x[3] <...< x[j ‑ 1]. Următorulelement, x[j],îlvomcompara
cux[j – 1], x[j – 2] etc., până când este îndeplinită condi‑
x[i]  iaşi apoi
< x[j]
îl vom insera pe pozi‑ ia
i + 1. Inserarea pe pozi‑ ia
i + 1 presupune salvarea x[j] lui
într‑o variabilă locală şi apoi deplasarea, în cadrul x , a elementelor
vectorului
NO,IUNI DE BA=Ă 139

x[j ‑ 1], x[j ‑ 2],... x[i + 1]cuopozi‑iespredreapta.Dupădeplasare, ‑ memo


rămvaloareasalvată alui
x[j]pepozi‑iai + 1dinvectorul
x. Codul în C/C# poate fi
scris ca mai jos. Se presupune că vectorul este x, iar în
notat
n sunt cuprecizate
numărul de elemente din vector. Tipul elementelor din vector este
primul element din vector are indexul egal cu 1.

int temp = 0;
int i = 0;
for (int j = 2; j<=n; j++)
{
temp = x[j];
i = j - 1;
while ((i>0) && (temp < x[i]))
{
x[i + 1] = x[i];
i = i - 1;
}
x[i + 1] = temp;
}

Observaţii
1. Determinarea locului unde se va insera elementul
x[j] se face aici prin parcur

gerea secven‑ială a subşirului deja ordonat crescător. Acest algor
poate fi înlocuit cu cel de căutare binară. Subşirul ordonat este împ
subşiruri.Seexamineazărela‑iadeordinedintreelementul ‑ delami
ruluişielementul
x[j]şisestabilesteîncaresubşirsevafacecăutarea.Op
de divizare continuă până se găseşte pozi‑ia în care urmează să fie ‑ inser
mentulx[j].
2. Deoarece se ia în considerare următorul element al şirului fa‑ă de sub
ordonat,aceastămetodăpoatefinumită„sortareprininser‑iedirect

4. Sortarea Shell
Vom începe prezentarea cu o observa‑ie pe care o considerăm utilă.
Metoda de sortare Shell face parte din categoria metodelor de s
directă în care pasul de inserare este mai mare ca 1. Pentru a mai alunga
prezentăriloranterioare,metodaîncauzăvafidescrisăincomplet,
( fărăcodsau
precise legate de corectitudine, complexitate etc.) sub forma unui
Pentrucăpeparcursulsubcapitoluluiprivindsortareavommaiintrod
detehnologiedidacticărugă , mcititorulsăconsulteAnexapentru
1, aide
standard (recomandată astăzi) a acestora. În acest loc, forma unui proi
aproximativă.
140 DIDACTICA PREDĂRII INFORMATICII

Proiect de tehnologie didactică


Data:
Clasa: a X‑a
Profesor:
Disciplina: Algoritmică şi programare
Subiectul lecţiei: Sortarea tablourilor
metodaprin
Shell
Scopul lecţiei: Introducerea unei noi metode de sortare a tablouril
arborilor de sortare şi căutare
Tipul de lecţie: Mixtă
Competenţe de natură operaţională
Elevii trebuie să fie capabili:
• Să deosebească această metodă de cele prezentate anterior.
• Să implementeze corect metoda Shell.
• Să observe avantajele şi dezavantajele fa‑ă de celelalte metode.
Metode folosite: expunerea, conversa‑ia, exerci‑iul.
Mijloace de realizare: conven‑ionale.
Desfăşurarea lecţiei:

Punctul 1
Etapa: Moment organizatoric.
Timp: 2 min.
Activitatea desfăşurată de profesor:
– Se face prezen‑a şi se verifică existen‑a celor necesare începerii o

Punctul 2
Etapa: Verificarea cunoştin‑elor.
Timp: 12 min.
Activitatea desfăşurată de profesor:
– Verificarea temelor date elevilor pentru acasă.
– Verificarea cunoştin‑elor din lec‑ia precedentăSortarea , cu tema
tablourilor
prin metoda inserţiei directe, prin întrebări:
• În ce constă această metodă?
• Avantajele şi dezavantajele fa‑ă de alte metode implementate an
• Reluarea metodei cu ajutorul unui alt exemplu.
Metoda: Verificare orală.

Punctul 3
Etapa: Trecerea la lec‑ia nouă.
Timp: 2 min.
Activitateadesfăşuratădeprofesor:Anun‑areaşiscriereapetablăati
Sortarea tablourilor prin metoda Shell.
NO,IUNI DE BA=Ă 1 41

Punctul 4
Etapa: Predarea noilor cunoştin‑e.
Timp: 5 min.
Activitatea desfăşurată de profesor:
Pornind de la metoda inser‑iei directe, observăm că această metod
îmbunătă‑i, ajungându‑se la sortarea Shell. Ideea este următoarea:
• Se împarte la început tabloul în grupe de câte două elemente care
separat: de exemplu, dacă dimensiunea
16, putem
esteforma grupele
(1, 9),
(2, 10)…; (1, 9) înseamnă subşirul
{x[1], x[9]}.
• Se formează grupe de câte patru elemente din cele sortate anter
• Procedeul continuă până se ajunge la tabloul în cele din urmă ordon
Metoda: Expunerea.

Punctul 5
Etapa: Fixarea noilor cunoştin‑e.
Timp: 3 min.
Activitatea desfăşurată de profesor:
Fiecare grupă fiind sortată separat, se observă că elementele
se deplasează mari
la dreapta.ComplexitateatimpîncazulcelmainefavorabilShell alalgoritmu
sort
este n3. Prin urmare, profesorul formulează întrebări şi exerci‑ii în legătură c
• Metoda de sortare Shell.
• Compararea cu celelalte metode.
• Exemplifică la tablă no‑iunile introduse.
Metoda: Conversa‑ia.

Punctul 6
Etapa: Precizarea temei pentru acasă.
Timp: 3 min.
Activitatea desfăşurată de profesor:
• Exemplifică pas cu pas sortarea prin noua metodă pe un exemplu concre
• Solicită implementarea algoritmului
limbajul de
în programare studiat.

4. 5 Sortarea rapidă
În această sec‑iune ne vom axa pe prezentarea succintă a doar două
‑ meto
plexitate
O(n log n)Enun‑
. ulproblemeiesteacelaşicuceldinsec‑iuneaprec
Ideea celor doi algoritmi ce vor fi prezenta‑i în continuare se ba
ac‑iuni importante:
• Divizarea şirului în subşiruri care vor fi supuse procesului de sort
• Combinarea subşirurilor pentru a ob‑ine rezultatul final.
142 DIDACTICA PREDĂRII INFORMATICII

Tabelul 4.2 Realizarea celor două etape prezentate mai sus, pentru algoritmii de sortare
prin interclasare şi Quicksort

Algoritm Divizare Combinare


Sortare prin interclasare
În func‑ie de pozi‑ie Interclasare
Quicksort În func‑ie de valoare Concatenare

4. 5 1. Sortarea prin interclasare


Fiesecven‑ a1a, a2,... an (n ≥ 2)Aplicând
. metoda
divide et impera,seîmparte
irul
ş îndouăsubşiruri
a1, a2,... am, respectiv
am+1, am+2,... ancu, m = (n + 1)
div 2. Procedeul se repetă pentru subş ap,irurile
ap+1,... aq (m = (p, q)
div 2)pânăcândseob‑insubşiruridelungime(1şirdejasortat)Dintre . su
sortate, se ob‑in prin alte subşiruri formate din elementele a d
interclasare
două subşiruri, până la ob‑inerea şirului sortat, n. de lungime

Observaţie
Acest algoritm presupune crearea unui spa‑iu temporar de memorie c
con‑ine şirul sortat. Spa‑iul suplimentar de memorie are aceeaşi dime
necesar şirului ce urmează a fi sortat.

Vom începe cu un exemplu. Fie şirul (secven‑a, vectorul,A lista


= {7,etc.
1, )
9, 4, 3, 1, 5, 2, 6} de lungime 9. El va fi împăr‑it în două subşiruri:

– {7, 1, 9, 4, 3} primul subş ir, identificat prin capetele ( inde


[1, 5]; Deci A[1] = 7, iarA[5] = 3.
– {1, 5, 2, 6} al doilea subşir, identificat
[6, 9]prin
.

Subşirul[1, 5] se împarte în subşirurile


[1, 3] şi [4, 5], dintre care subş ‑ i
rul [1, 3] se mai divide[1,
în 2] şi [3, 3]. Subşirurile [1, 2] şi [4, 5] se
împartînsubşiruridelungime1.Subş irul
[6, 9] seîmparteînsubşirurile [6, 7]
şi [8, 9], care la rândul lor se împart în subşiruri de lungime 1. Acestei
de divizări i se poate asocia un arbore binar care are
marcată curădă
[1,cina
9]
(capetele şirului ini‑ial) şi pentru fiecare [s,nod
d] marcă
marcat
m succesorii
cu săi
stâng şi drept cum], respectiv
[s, [m + 1, d], până cânds ‑ d = 0 ( s = stânga,
d = dreapta). Mărcile nodurilor reprezintă capetele subşirurilor ob‑i
succesive de divizare. Nodurile terminale sunt marcate cu capete
lungime 1. Reprezentarea grafică ob‑inută searbore numeşte de căutare. Nu dăm
această reprezentare aici.
Subşirurile terminale sunt sortate. Se interclasează apoi ‑ şirur
nându‑senoiiruriş în
( loculirurilor‑
ş părintealeacestora)care , vorfiulteriorordo
NO,IUNI DE BA=Ă 143

Aplicareasuccesivăaproceduriideinterclasareseface printr‑opar
inordine
a arborelui binar asociat.
Codul pentru sortare poate fi următorul:

public void SortarePrinInterclasare(ArrayList<int> x, int


left, int right)
{
ArrayList<int> leftArray = new ArrayList<int>();
ArrayList<int> rightArray = new ArrayList<int>();
if (left<right)
{
// Divizare
int middle = (left + right) / 2;
// Rezolvare
SortarePrinInterclasare(x, left, middle);
// Rezolvare
SortarePrinInterclasare(x, middle + 1, right);
// Combinare
Interclasare(x, left, middle, middle + 1, right);
// (left, middle): index iniţial şi final pentru primul
subtablou
// (middle + 1, right): index iniţial şi final pentru al
doilea subtablou. }
}

Codul pentru metoda


Interclasare va executa următoarele ac‑iuni:
. 1 Separcurgsubtablourileînparaleliş lafiecarepassetransferăcelm
2 . Se transferă eventualele elemente rămase în primul subtablou.
3 . Se transferă eventualele elemente rămase în al doilea subtablo

Observaţie
Există variante ale acestui algoritm, dar ideea de bază rămâne aceeaşi

4. 5 2. Sortarea quicksort
Ceeaceurmeazăestedoarovariantă(datoratăautorilor)ametodeilu

Observaţie
Reamintim că opera‑ia de divizare cerută de acest algoritm se face în
valoarea elementelor.
14 DIDACTICA PREDĂRII INFORMATICII

Proiect de tehnologie didactică

Disciplina: Informatică
Clasa: a IX‑a
Profesor:
Data:
Tema: Căutare şi sortare. Metodaquicksort
Tipul de lecţie: Predare
Metode didactice: Expunere, exerci‑ii
Mijloace de învă‑are: Manuale, culegeri
Material bibliografic: ( [Me ])
Desfăşurarea lec‑iei este asemănătoare cu cea de la proiectul ante
am renun‑at să o prezentăm şi aici.

Competenţe de natură operaţională:


Elevii trebuie să fie capabili:
• Să în‑eleagă metoda predată.
• Să poată aplica metoda pentru un exemplu concret.
• Să poată face deosebire fa‑ă de celelalte metode.
• Să poată identifica cu claritate metoda.

Pentru a simplifica expunerea, să presupunem că avem un singur ‑ criter


tare. Considerăm că datele sunt memorate în vectori de
array) şiînregistră
căuta‑ ri (
rea datelor se face pe baza valorii unui câmp. În mod tradi‑ional, ac
numeştecheia înregistrării. Tipurile de date utilizate pentru câmpurile
alese astfel încât asupra lor poate fi definită o rela‑ie de ordin
componentele vectorului sunt memorate în ordinea crescătoare s
cheilor, atunci regăsirea unei înregistrări cu cheie dată se poate fac
prin parcurgerea secven‑ială a tuturor elementelor vectorului. Ma
ordonăm (crescător) elementele vectorului, pe baza valorilor cheilo
problema de sortare, aceasta înseamnă să transformă
pe loc) un vector
m ( A într‑un
vector pentru care:

A[i].cheie<=A[i + 1].cheie,1≤1 < n ‑ 1, (1)

utilizând o cantitate minimă de memorie suplimentară. După cum am mai p


nu există un cel mai bun algoritm universal de sortare. Alegerea algoritmului ‑ potr
vit pentru o aplica‑ie dată trebuie să ‑ină seama de numărul de element
sortate, de complexitatea opera‑iilor de schimbare între ele ‑ a val
gistrării ş decât de
neordonate suntelementelevectorului. Încazul
quicksort, folosim
vectorul A cu elemente numere întregi. Prin parcurgerea vectorului p
ambelecapete(perând)şiinterschimbareaelementelorcarenusunt
se împarte vectorul în două păr‑i, nu neapărat de lungimi egale, cu propri
NO,IUNI DE BA=Ă 145

toate elementele din prima parte sunt mai mici (sau mai mari, ‑ în cazu
crescătoare) decât toate elementele din a doua parte. Unul dint
memorat (prin indicii de început şi sfârşit), iar cu cel rămas se procedea
Subşirurilememoratesuntprelucrateapoiperândînacelaş‑ imod(rec
nea inversă a memorării lor.
Aplicând algoritmul, condi‑ia de ordonare (1) poate fi rescrisă sub for

Pentru orice element A[k] din vector (denumit pivot) este


indeplinita conditia:
i < k ⇒ A[i] ≤ A[k] si
k < j ⇒ A[k] ≤ A[j]
Sfpentru

La fel ca la
sortarea cu bule, se verifică dacă la un moment dat este îndepli
condi‑ia corespunzătore, în caz contrar efectuându‑se corec‑ia nece
inversare:

Daca (gasim o pereche de valori (i, i + 1) pentru care)


A[i].cheie > A[i + 1].cheie (2)
atunci
vom schimba intre ele cele doua elemente.
Sfdaca

Presupunem că s‑a alespoziţie


ca pivot (k), pozi‑ia dinmijlocul vectorului.
Algoritmul următor asigură îndeplinirea condi‑iei anterioare pent
Limitele între care variază indicii elementelor prim din
şi ultim
vector
. sunt

QuickSort (A, primul, ultimul)


i <= primul
<= ultimul
pivot = A[(prim + ultim)/2]
repeta
• pozitioneaza i dupa elementele cu chei < pivot.cheie
• pozitioneaza j inaintea elementelor cu chei > pivot.cheie
Daca (i < j) atunci
schimba (A[i], A[j])
Dacă (i <= j) atunci
{
i := i + 1
j := j + 1
}
Panacand (i >= j)
146 DIDACTICA PREDĂRII INFORMATICII

Exemplu.
Fie şirul următor
{9, 2, 4, 10, 3}. Considerăm pozi‑ia ini‑ială a pivotulu
ca fiind k = 3. Evolu‑ia algoritmului produce următoarele transform

prim = 1 ⇒ i = 1
⇒k = 3
ultim = 5 ⇒ j = 5
1) 9 2 4 10 3
2) 3 2 4 10 9 i = 2, j = 4, k = 3
3) 3 2 4 10 9 i = 3, j = 3, k = 3

Se observă că, deşi pentru


k = 3 condi‑ia este îndeplinită, şirul nu este
ordonat. Pentru
k = 2 şi k = 4, condi‑ia nu mai este îndeplinită. Pentru a cor
aceste „greşeli”, algoritmul trebuie aplicat din nou, atât la stâ
pivotului. Nu este necesar să se caute dincolo de vechea k (toate
valoare
valorile aflate „la dreapta” acestei pozi‑ii sunt sigur mai mari de
penouapozi‑iedereferin‑ăMai). mult,estesuficientsăsecautenumaipân
valoare pentru
j.

prim = 1, ultim = 3 ⇒ i = 1, j = 3, k = 2
1) 3 2 4
2) 2 3 4 i = 1, j = 2, k = 2
3) 2 3 4 i = 2, j = 2, k = 2

Toate cele de mai sus pot fi încadrate în al proiectului. Evaluare


planul de lecţie
procesului de învă‑are va rezulta din supravegherea activită‑ii de
dificultă‑ilor în asimilarea cunoştin‑elor şi rezolvarea acestor di
insistă mai mult pe puncteleproblematice, cu atât rezultatul evaluării va fi ma
Se poate arăta că pentru acest algoritm complexitatea O(n log medie
n). est
În cazul cel mai defavorabil, şi acest algoritm este totuş O(n2i)de
. complexi
Un alt mod de implementare este cel bazat peetmetoda
divide impera. Utilizând
metoda divide et impera, vom împăr‑i şirul în două subşiruri cărora le vom aplica
acelaşi algoritm de divizare până când subşirurile ob‑inute vor avea
vorfiordonate)Solu‑ . iilepar‑ialefiindmemorateînacelaşişir,opera‑ia
a solu‑iilor par‑iale este deja efectuată.

4. 5 3. Sortarea cu grămezi ( heapsort)


Acest algoritm este prezentat şi într‑
proiect uncare va fi discutat ulteri
de lecţie
Trebuie amintit faptul că, deşi informa‑ia de intrare poate fi con‑inut
sau o listă (utilizându‑se pointeri), ea trebuie văzută ca alcă
arbore binar.tuind un
Considerăm că vectorul
V de mai jos are 12 componente:

40 5 1 15 –20 20 30 40 50 60 01 15
1 2 3 4 5 6 7 8 9 01 11 12
NO,IUNI DE BA=Ă 147

Arboreleasociatvacon‑inevaloarea(4corespunză
0 toare
Vîn
) nodul
pozi‑ieidin
1
rădăcină.Avândvaloareavîntr‑unnod,valoarecorespunzătoare kdin pozi‑
V,cei iei
(maxim 2) succesori imedia‑i ai nodului vor con‑ine valorile situate
2k pe
(fiul stâng), respectiv
2k + 1 (fiul drept) din
V.

Proiect de tehnologie didactică


Data:
Clasa: a XI‑a
Profesor:
Disciplina: Informatică aplicată
Tipul lecţiei: Predare‑învă‑are
Competenţe‑cheie: Formarea deprinderii de a ordona un şir utilizând
heapsort
Competenţe de natură operaţională
La sfârşitul lec‑iei, elevii vor fi capabili:
• Să definească un
heap („grămadă”, „ansamblu”).
• Să creeze unheap.
• Să aplice algoritmul
heapsort.
• Să scrie programul pentru algoritmul
heapsort.

Strategii didactice:Conversa‑ia,explica‑ia,metodaanaliticămunca
, independent
Mijloace de învăţământ: Manuale, culegeri de probleme
Metode: Activitate frontală, individuală
Resurse:
– pedagogice:Metodica predării informaticii, alte cursuri de informatică, ghidu
pentru profesori;
– oficiale 
– programa şcolară;
148 DIDACTICA PREDĂRII INFORMATICII

– temporale 
– 50 de minute;
– psihologice  – cunoştin‑e dobândite de elevi până la această dată;
– colectiv eterogen (interesat de obiect);
– clasa împăr‑ită pe grupe.

Un heap este o multimul‑ ime ( mul‑ ime în care anumite componente


repeta) . Multimul‑ imea poate fi reprezentată ca un arbore binar ( în
spuse anterior) . În aceste condi‑ ii, un
max‑heap este un arbore binar comple
( exceptând, eventual, lipsa ultime frunze/
unei nod pendant) în care valoarea ‑ mem
ratăînoricenodalsă uestemaimaresauegalăcuvalorilememorateîn
ai acestuia. Similar,min‑heap este un arbore binar complet în care valoare ‑
rată în orice nod al să u este mai mică sau egală cu valorile memorate în n
ai acestuia. Deoarece, conform proprietă max‑heap,‑ ii
elementul
de maxim trebuie
să se afle în ră dă cina
heap‑ ului, deci pe prima pozi‑ ie din vector, el poate fi p
pe pozi‑ ia sa corectă , interschimbându‑ l cu elementul n . Noul element
din pozi‑ ia
din ră dă cina
heap‑ ului poate să nu respecte proprietatea max‑heap, darde
subar ‑
borii ră dă cinii ră mân
heap‑ uri. Prin urmare, trebuierestaurat heap‑ ul, apelând o
func‑ ie de combinare a elementelor1din ş i n pozi‑
– 1 . Elementul
iile de pe pozi‑ ia
n fiind deja la locul lui, practic nu mai este nevoie să fie inclus ( formal) în
heap.
Procedeul se repetă până când toate elementele vectorului sun
lor corecte.

Codul
C este:

#include <stdio.h>
#include <alloc.h>
#include <conio.h>
void schimba(int *a, int *b)
{
int aux = *a;
*a = *b;
*b = aux;
}
void urca(int *v, int i)
{
if (i > 0)
{
int j = (i – 1) / 2;
if (v[i] > v[j])
{
schimba(&v[i], &v[j]);
urca(v, j);
}
NO,IUNI DE BA=Ă 149

void coboara(int *v, int j, int i)


{
int k = 2 * (j + 1) – 1;
if (k < i)
{
/* v[k] va fi fiul stang al lui v[j], iar v[k + 1] fiul
drept. */
if (v[j] < v[k])
{
if (k + 1 == i)
schimba(&v[j], &v[k]);
else
if (v[k] > v[k + 1])
{
schimba(&v[j], &v[k]);
coboara(v, k, i);
}
else
{
schimba(&v[j], &v[k + 1]);
coboara(v, k + 1, i);
}
}
else
if (v[j] < v[k + 1] && k < i – 1)
{
schimba(&v[j], &v[k + 1]);
coboara(v, k + 1, i);
}
}
}
void afiseaza_lista(int *v, int n)
{
int i;
printf(“Lista sortata crescator este : \n”);
for (i = 0; i < n; i++)
printf(“%d “, v[i]);
}
void main()
{
/* urmeaza citirea datelor; n este numarul de elemente;
v este vectorul cu n elemente ce urmeaza a fi sortat */
int n;
printf(“Dati numarul de elemente: ”);
scanf(“%d”, &n);
int *v = (int *) malloc(n * sizeof(int));
int i;
150 DIDACTICA PREDĂRII INFORMATICII

if (v == NULL)
{
printf(“\n Alocare esuata.\n”);
exit(1);
}
for (i = 0; i < n; i++)
{
printf(“Tastati valoarea pentru v[%d]=”, i + 1);
scanf(“%d”, &v[i]);
}
/* vom forma in continuare un ansamblu cu proprietatea de
maxim; v[i] are fiul stang v[2*(i + 1)  – 1], iar fiul drept
v[2*(i + 1)].
Ideea este ca elementul v[i] va urca (eventual) pana la
radacina. Se observa usor ca proprietatea de maxim a ansamblului
se pastreaza. Urcarea se va face de la varfurile pendante catre
radacina, deci se scade o unitate si se injumatateste indexul
(conform codificarii). */
for (i = 1; i < n; i++)
urca(v, i);
/* Acum vom aplica o proprietate a max‑ansamblurilor, anume
aceea ca radacina are eticheta cea mai mare. Deci vom interverti
v[0] (adica radacina) cu v[i] (elementul curent) si vom crea
imediat un ansamblu cu proprietatea de maxim pentru primele
i  – 1 elemente. Pentru aceasta, va trebui sa coboram noua
radacina la locul ei (adica pe locul v[i]). */
for (i = n – 1; i > 0; i‑‑)
{
schimba(&v[0], &v[i]);
coboara(v, 0, i);
}
afiseaza_lista(v, n);
getch();
...}

4.5 Metode de elaborare (proiectare) a algoritmilor

Elaborareaunui(nou)algoritmpentrurezolvareaunei(clasede)probl
mult timp o formă de manifestare a inteligen‑ei, o exprimare a capacită‑i
şianalizăa
, bagajuluidecunoştin‑eşiexperien‑ale
ă celuicareîlelabora,p
în eviden‑ă caracterul de creativitate, de artă chiar al acestei
standar
­dizării reprezentării algoritmilor i s‑a alăturat dorin‑‑ a de sta
borăriialgoritmilor.Cutoatesucceseleob‑inuteînacestsens,acti
NO,IUNI DE BA=Ă 1 51

a algoritmilor beneficiază încă de o doză substan‑ială de libertate de


experien‑eişicreativită‑ii.Primelemetodedeelaborareaalgoritmilo
mai lungi sau mai scurte priză de
la mase, dar o analiză atentă a eficien‑ei‑ (comple
xită‑ii) algoritmilor elabora‑i a etalat avantaje şi neajunsuri, c
ierarhizare a acestor metode. În cele ce urmează, vom prezenta succi
utilizate metode de elaborare a algoritmilor. Pentru alte [D1 ], detal
[DM ], [DCTPCN ], [Hor], [HS ], [CP].

4.5 1 Metoda divide et impera


Metoda „împarte şi stăpâneşte” a fost sugerată de ideea firească de rezo
probleme complexe prin divizarea acesteia în două sau mai multe sub
acelaşi tip cu cea ini‑ială, mai simple, prin rezolvarea cărora (folosind s
ob‑inute) va rezulta solu‑ia problemei ini‑ iale.
divizare poate
Această
fi aplicată
‑ suc
cesiv noilor subprobleme, până la nivelul de detaliu la care ‑ ob‑iner
problemelor este facilă. În mod natural, totul se finalizează cu recons
însus”asolu‑iilorpar‑iale. Metoda
divide et imperaadmiteoimplementarerecursi
Etapele necesare pentru implementarea ei pot fi descrise astfe
1 . Divide: împarte problema în una sau mai multe probleme similare, prob
dimensiuni mai mici.
2. Impera (stăpâneşte): rezolvă subprobleme recursiv; dacă dimensiunea
‑ s
blemelor este mică, se rezolvă iterativ.
3. Combină: combină solu‑iile subproblemelor pentru a ob‑ine solu‑ia pr
ini‑iale.

Complexitatea algoritmului este dată de suma complexită‑ilor e


mai sus.

Observaţie
Nu orice problemă poate fi rezolvată (eficient sau simplu) cu această te

Problemă.
Să considerămn ≥ 1 elemente a1, a2,... an şi un subşir al acestuia
a p,
ap + 1,... aq, cu 1 < p < q < n, asupra căruia avem de efectuat o prelucr
oarecare. Presupunem că această problemă poate fi rezolvatădivide folosind me
et impera.
Soluţie.Metoda divide et imperaderezolvareaacesteiproblemepresupune ‑
‑irea şirului determinat de capetele acestuia Divide), (p,(func‑
q), în
iadouă
subşiruri (p, m) şi (m + 1, q), p ≤ m < q sau (p, m – 1) şi (m, q),
152 DIDACTICA PREDĂRII INFORMATICII

p < m ≤ q,asupracărorasăsepoatăefectuamaiuşorprelucrarea.Prinprel
celordouăsubşirurisevorob‑inerezultatele
βşi γcare,
, combinate(func‑iaCombina),
vorconducelasolu‑ia,notată
aa
, problemei
cu ini‑iale.Împăr‑ireaînsubşiruripoa
continua până la gradul de detaliu care permite ob‑inerea imediat

crării unui subşir.
Reluândexempluldelasortareaprininterclasareşidivide
avândînved
et impera, putem rescrie codul astfel:

public void DiveEtImpera(ArrayList<int> x, int left, int


right)
{
ArrayList<int> leftArray = new ArrayList<int>();
ArrayList<int> rightArray = new ArrayList<int>();
if (left<right)
{
int middle = (left + right) / 2; // Divide
DivideEtImpera(x, left, middle); // Impera
DivideEtImpera(x, middle + 1, right); // Impera
Combina(x, left, middle, middle + 1, right); // Combina
// (left, middle): index iniţial şi final pentru primul
subtablou
// (middle + 1, right): index iniţial şi final pentru al
doilea subtablou.
}
}

Observaţie
În codul preluat de la sortarea prin interclasare s-au modifica
metodelor, pentru a pune în eviden‑ă etapele descrise în vadrul
divide et met
impera.

Încelemaifrecventecazuri,Divide
func‑iile
şi Combina suntcompusedintr‑un
numărredusdeinstruc‑iuni,nemotivându‑sedescriereai ş apelullors
în cadrul func‑DivideEtImpera.
iei

Exemplu
Să se testeze apartenen‑a unui element la un şir ordonat crescă
‑ to
va‑ia de la sortare prin inser‑ie directă. Nu vom prezenta codul‑ pent
blemă, care este foarte bine tratată în majoritatea lucrărilor de s
NO,IUNI DE BA=Ă 153

4.5 2 Metoda backtracking


Backtracking‑ul constituie una dintre metodele cel mai des folosite
solu‑ieioptimelaoproblemăatuncicândmul‑imea solu‑
posibile este
iilor
cunoscută
saupoatefigenerată.Overificare„necontrolată”printr‑oparcurger
oarecare a mul‑imii solu‑iilor posibile este costisitoare ca timp
decomplexitatealunuiastfeldealgoritmesteexponen‑ial.Seimpun
generării (şi verificarea) tuturor solu‑iilor posibile.
Solu‑ia se construieşte pas cu pas (în mod incremental). La fiecare pas
uncandidatlasolu‑ieşi,dacăacestasatisfacerestric‑iileprobleme ‑
torul pas, în caz contrar se caută alt candidat. Dacă nu există un asemen
se revine la pasul anterior, unde se caută alt candidat pentru ‑ sol
nuă până când se găseşte (sau) nu o solu‑ie.
Algoritmul backtracking enumeră o mul‑ime de candida‑i par‑iali care, ‑ în prin
piu, ar putea fi completa‑i în diverse moduri pentru a ob‑ine toate so
la problema dată.
Fiecare candidat are la dispozi‑ie o mul‑ime de resurse, o mul‑ ‑ ime de v
bile,dincarelaunmomentdatpoateutilizaunadintreacestea, ‑ înf
‑iile problemei.
Înainte de prezentarea teoretică a acestei metode consideră ‑ mu
tor, referitor la problema colorării hăr‑ilor.

Enunţul problemei
Se consideră dată o hartă ce con‑ n ‑ări,
ineT = {T1, T2, T3,… Tn} şi o
mul‑ime de culori C = {C1, C2, C3, C4} . Să se coloreze fiecare ‑ară cu una
dintre culorile date, cu condi‑ia ca două ‑ări vecine (cu frontieră comun
colorate cu aceeaşi culoare.
Discuţie
Solu‑iile posibile se regăsesc în S mul‑
= Cimea
x C x C x... x C , i arS
are ncomponente.Unvectorsolu‑iepoatearată {C1, astfel:
C3, C4,… C2} ,unde
componenta de rang k semnifică ‑ara
Tk şi are valoarea Ci, adică ‑araTk este colo ‑
rată în culoareaCi. Înainte de a descrie algoritmul este necesar să speci
că putem reprezenta această hartă ca un graf orientat. T1, aleasă
Primaîn‑ară
mod ,
arbitrar, se învecinează cu ‑ări din mul‑ {T2,imea
T3,... Tn}. T2 se învecinează
cu‑ăridinmul‑imea {T3, T4,... Tn}‑,ara Tkseînvecineazăcu‑ăridinmul‑imea
{T(k + 1),... Tn}.

Observaţii
Fiecare ‑ară are la dispozi‑ie mul‑imea de culori (resurse)
{C1, C2, C3, C4}.
Înaintedeaalocaoresursăpentruoanumită‑ară,sevaverificadacăexis
disponibile, adică ‑ara respectivă mai are culori cu care să se deseneze
154 DIDACTICA PREDĂRII INFORMATICII

Folosind acest exemplu, putem descrie algoritmul astfel:


1 . Înprimulpas,‑ara T1alegeprimaculoaredisponibilă C1.Înprimul, pas,‑ara
T1
are disponibile toate cele patru culori. Vectorul x = {C1,...} solu‑. ie devin
2 . Sevaeliminaaceastăculoaredela‑ărilecucareseînvecinează.Resur
colorarea ‑ărilor vecine scad; vor exista mai pu‑ine culori.
3 . Se caută candida‑i pentru elementul următor al vectorului solu‑i
pentru ‑ara T2. Presupunem că ‑ările T2 şi T4 sunt vecine T1cu. În acest caz,
‑ărileT2 şi T4 vor avea la dispozi‑ie culorile {C2, C3, C4}. În pasul următor,
‑araT2 va verifica dacă are culori pe care să le poată folosi şi, în caz afir
va alege prima culoare pe care o are la dispozi‑ C2, şi va
ie, proceda
adică la
eliminarea acestei culori din ‑ările vecine T1 nu va (dinelimina
‑ara această
culoare),alcărorindiceînvectoruldereprezentareal‑ărilor 2. este
Dacă T2 nu are culori pe care să le poată folosi, ne întoarcem T1, verifi
la ‑ ‑ara
căm dacă putem alege alte culori fa‑ă de cea curentă şi vom repune ‑ culoar
minată în ‑ările vecine.
4 . Ac‑iunile pentru un pas generic, k, sunt:
notat
a) Dacă nu există candida‑i posibili (mul‑imea resurselor este ‑ vidă), ne
cem la pasul anterior, k – 1, cu condi‑ia ca acesta să existe.
b) Dacă există candida‑i posibili, selectăm drept candidat posibil p
disponibilă pentru Tk şi eliminăm acea culoare din ‑ările vecine care ‑ se r
sesc în {T(k + 1), T(k + 2),... Tn} , apoi trecem la pasul (k + 1).
Reîntoarcerealapasulanteriorşiselectareaalteivaloria
– repunerea vechii valori în resursele ‑ărilor vecine ce urme
‑ară.
– severificădacăexistăresurse(culori)disponibile;încazafirmat
la b), în caz contrar se revine la pasul anterior şi la eliminar
selectate din resursele acestor ‑ări.

Problemă
Se consideră
n ≥ 2 mul‑imi nevide şi finite
A1, A2,... An şi m1, m2,... mn
cardinalele acestor mul‑imi. Consideră f: mAo
1
func‑
× A2ie
×... An → R. O
solu‑ie a problemei este n‑upluun
de formax = (x1, x2,... xn) ∈ A1 × A2
×... An careoptimizează (conform unor criterii specificate) f. func‑ia

Soluţie
Mul‑imea finită A = A1 × A2 ×... An se numeşte spa‑iul soluţiilor posibile ale
problemei. Condiţia de optim pe care trebuie să o îndeplinească o solu‑‑ ie este
mată printr‑un set de rela‑ii între componentele x, rela‑ii vectorului
exprimate prin
formafunc‑iei fO
. solu‑ieposibilăcare, optimizeazăfunc‑ fadică
, iasatisface condi­
ţiile interne ale problemei, se numeş te
soluţie‑rezultat sau, mai simplu,soluţie a pro-
blemei. Construirea unei solu‑ii constă în determinarea componentel x.
Construirea primei solu‑ii începe întotdeauna cu construirea p
NO,IUNI DE BA=Ă 15

vectorului
x. La un moment dat se va alege un element dintr‑ – pe
o mul‑
care ime 
convenim să o numim mulţimea curentă  – şi, presupunând că elementele fiecăre
mul‑imiAi (1 ≤ i ≤ n) sunt ordonate, elementul care se adaugă xvala vect
fi numit
elementul curent. Următorul algoritm (prezentat în limbaj natural
metodabacktracking la nivel conceptual:

Pasul1. Considerăm prima mulţime, A1, ca fiind mulţimea curentă.


Pasul2. Trecem la următorul element din mulţimea curentă
(când o mulţime devine mulţime curentă pentru prima dată sau
prin trecerea de la o mulţime anterioară ei, acesta va fi
primul element din acea mulţime).
Pasul3. Verificăm dacă un asemenea element există (adică nu
s‑au epuizat elementele mulţimii curente).
a. Dacă nu există un asemenea element, atunci mulţimea curen‑
tă devine mulţimea anterioară celei curente; când o asemenea
mulţime nu există, algoritmul se opreşte (nu se mai pot ob‑
ţine soluţii);
b. Dacă există, atunci verificăm dacă elementul curent din
mulţimea curentă, împreună cu componentele vectorului x deter­
minate anterior, pot conduce la o soluţie (această verificare
stabileşte dacă sunt îndeplinite condiţiile de continuare a
construirii soluţiei optime):
i. Dacă „Da” (condiţiile de continuare sunt îndeplinite),
următoarea mulţime devine mulţime curentă, şi se continuă cu
Pasul2;
ii. altfel se continuă cu Pasul3.

Etapele în detaliu ale acestui algoritm pot fi următoarele:

B1. Definesc mulţimile Ai, i = 1, 2,... n. Fiecare mulţime


are mi elemente, i = 1, 2,... n, iar modul de memorare a
acestor mulţimi îl alegem ca fiind coloanele matricei A[m.n]
(coloana i din această matrice reprezintă mulţimea Ai, iar
m este cel mai mare număr dintre m1, m2,... mn).
B2. Completez cu informaţiile necesare lipsă matricea A.
B3. Memorez numărul maxim de elemente pentru fiecare mulţi‑
me Ai, i = 1, 2,... n în vectorul nr_elemente (de exemplu,
nr_elemente[2] va conţine valoarea lui m2).
B4. Definesc vectorul soluţie x[n] (n reprezintă aici numă‑
rul maxim de elemente pentru x).
B5. Completez elementele lui x cu o valoare care nu este în
Ai (am notat în cazul de faţă cu nimic această valoare – vezi
şi semnificaţia lui null sau nil din limbajele de programare).
156 DIDACTICA PREDĂRII INFORMATICII

B6. Definesc vectorul indecşilor, notat index (de exemplu,


index[1] va păstra indexul elementului selectat din mulţimea
A1 şi care se găseşte în vectorul soluţie), pentru fiecare
mulţime şi îl iniţializez cu  –1 (o valoare care nu poate
reprezenta un index corect, deci nimic în acest caz nu poa‑
te reprezenta elementul – 1).
B7. Începem procesul de construcţie a soluţiei (variabila i
păstrează indexul mulţimii curente şi ia valori de la 1 la n):
B7.1. i = 1; // luăm prima mulţime, A1, adică A[.,1]
index[i] = 1; // punctează la primul element din A[index[i],i]
x[i] = A[index[i],i]; //punem primul element în soluţie
B7.2. Câttimp (mai am mulţimi de selectat) execută
{
// atât timp cât mai există elemente în A[.,i]
Câttimp (index[i] <= nr_elemente[i]) execută
{
Dacă (valid(...)) atunci // dacă elementul este corect
// putem trece la următoarea
// mulţime
Dacă (i==n) atunci // suntem la ultima mulţime!
afişare_soluţie();
altfel
{
i++; // trecem la următoarea mulţime
index[i] = 1; // în anumite cazuri se poate
// şi index[i]++
}
x[i] = A[index[i],i]; // punem elementul în
// soluţie
}
// Bucla while s‑a terminat; deci mulţimea A[.,i]
// nu mai are elemente care să participe la formarea
// soluţiei. Trebuie să ne întoarcem.
// Înainte de a schimba valoarea lui i vom iniţializa
// indexul de căutare în această mulţime cu –1.
// Aceasta înseamnă că o nouă căutare în
// mulţime se va face din nou de la primul element,
// şi vom pune nimic în soluţie
index[i] = –1;
x[i] = nimic;
i—; // întoarcerea la mulţimea anterioară
index[i]++; // măresc indexul de căutare în mulţimea
// curentă
Dacă (index[i] <= nr_elemente[i]) // verific din nou dacă
// indexul este valid
x[i] = A[index[i],i];
} câttimp (i != 0);
NO,IUNI DE BA=Ă 157

Observaţie
Omodificareminorăini‑
( ializarea
x[i]lui
)aacestuicodconducelaeliminarea
‑ se
ven‑ei:

if (index[i] <= nr_elemente[i]) // verific din nou dacă


// indexul este valid
x[i] = A[index[i],i].

Cazuri particulare
Toate mul‑imile Ai, i = 1, 2,... n au acelaşi număr de elemente care sun
înordinecrescătoareşisuntnumere {1,naturale:
2, 3,... n}.Sepleacăini‑ial
cuvectorulsolu‑ ie
x = {0,0,... 0}.Pentrucomponenta x[i],trecereala‑ urmă
torulelementînseamnă x[i]++iar, laelementulanterior x[i]––Testul
. deexisten‑ă
a elementelor pentru x[i] este 1 E x[i] E n (similar se poate proceda şi în
cazulcoduluipentruproblemelepermutărilor,aranjamenteloretc
func‑ia valid()trebuiedetaliatăi ş estedependentădeenun‑ulproblemei
căîntre condiţiile internede
( optim)i ş condiţiile de continuareexistăostrânsălegătură,
sincronizarea acestora având ca efect o importantă reducere a num
O sinteză a metodei backtracking scoate în eviden‑ă patru etape principale
– etapa în care unei componente a vectorului solu‑ie i se atribu
mul‑imeacorespunzătoareacesteia,urmatădetrecerealamul‑imea
următoare;
– etapa în care atribuirea unei valori pentru o componentă a vect
soldează cu un eşec, situa‑ie care se încearcă a fi depăşită prin trecerea

torul element din mul‑imea (curentă) corespunzătoare componentei
– etapa în care elementele mul‑imii curente au fost epuizate, situ
alegere anterioară nepotrivită, caz în care se impune o revenire ‑ la
rioară, revenire care poate încheia – fără gănefericit 
sirea unei solu‑– ii 
întregul
proces de căutare a solu‑iilor;
– etapareveniriiînprocesuldecăutareauneinoisolu‑iidupăob‑inere
etapă care se realizează prin trecerea la elementul următor din ul

Algoritmulprezentat mai susconducelaob‑inereaunei solu‑ii(da


o solu‑ie). De fiecare dată, pornind de la ultima solu‑ie ob‑inută, pot fi de
următoarele eventuale solu‑ii optime.
Procedura pseudocod de mai jos realizează acest lucru pornind de
celen mul‑imi sunt cunoscute.
Vom nota cuaik alk‑lea element din mul‑Aimeai
şi vom conveni că valoarea
variabilei
k este proprie fiecărei valori i a, adică
variabilei
există câte o variabilă
k
pentru fiecare valoare a i,variabilei
notată tot
k, în
culoc deki.
158 DIDACTICA PREDĂRII INFORMATICII

Procedura backtracking

i:= 1
k:= 0 {k = 0 are semnificatia k1 = 0}
Repeta
Repeta
k:= k + 1
Daca (k > mk) atunci
k = 0 {k = 0 are semnificatia ki = 0}
i = i – 1 {se realizeaza „intoarcerea”}
altfel
xi = aik
Daca (x1, x2,... xi conduce la optim) atunci
i = i + 1 se verifica conditia de continuare
Sfdaca
Sfdaca
Panacand (i > n sau i = 0)
Daca (i > n) atunci
„afisare solutie”
i = n
Sfdaca
Panacand (i = 0)
Sfarsit

Problemă. Să se genereze toate permutările unei mul‑ n elemente.


imi având
Să considerăm mul‑imeaA = {1, 2,... n }, n > 0 . Să se determine toate
n‑ uplele de elemente distincte A. din

Soluţie
Această problemă reprezintă un caz particular al problemei genera
anterior,cazîncaretoate nmul‑imicele
suntegalecumul‑Aimea
.Seaplicămetoda
backtracking, considerând func‑ia de optim exprimată prin condi‑ia:
elementele
vectorului soluţie să fie distincte. Pentru cititorul interesat, codul poat
în [MAM ].

4.5 3 Metoda greedy


Spre deosebire de metodabacktracking, metodagreedy permite determinareaunei
singure soluţii care corespunde unuicriteriu
anumitde optim, în cazul problemelor
în care solu‑ia se construieşte ca submul‑ime a unei mul‑imi date. ‑ Ordi
plexitate al unui astfel de algoritm este redus considerabil pri
NO,IUNI DE BA=Ă 159

ob‑inerea solu‑iei printr‑o singură parcurgere a mul‑imii din care se


solu‑iaoptimă,cutoatecăînpractică,înaintedeaplicareametodei,sefa
ale acestei mul‑imi care măresc ordinul de complexitate.

Problemă
Se dau o mul‑ime
A de cardinaln (n ≥ 0) şi o func‑ief: P(A) → R. Să se
determine o submul‑ B ∈ime
P(A) de cardinal
k, B = {b1, b2,... bk}, (1 ≤ k
≤ n), astfel încât
k‑uplul (b1, b2,... bk) să optimizeze func‑iaf.

Soluţie
Familia păr‑ilor mul‑imii finite
A, notată
P(A), se numeşte spaţiul soluţiilorpro‑
blemei. Condiţia de optimpecaretrebuiesăoîndeplineascăosolu‑ieesteexp
printr‑un set de rela‑ii între anumite elemente A, rela‑ii ale
exprimate
mul‑imii prin
func‑ia f. O solu‑ie care poate conduce la ob‑inerea unei solu‑ii optime s
soluţie posibilă. Pot exista mai multe solu‑ii care satisfac condi‑iile de o
doreşte ob‑inerea măcar a uneia dintre ele.
Construirea unei solu‑ii optime constă în determinarea unei su
posibile care îmbunătă‑esc progresiv valoarea f, conducând
func‑ieicătre optim.
Solu‑iile posibile au proprietatea că orice submul‑ ime aeste
soluţii posibile unei o
soluţie posibilă.Prinurmare,şimul‑imeavidăpoateficonsiderată o
soluţie posibilă.

Descrierea metodei:
1 . Considerăm submul‑imeaB, mul‑imea vidă.
2 . Se alege un element
a dinA, neales la un pas anterior.
3 . Verificăm dacă submul‑imeaB U {a} conduce la o solu‑ie posibilă.
4 . Încazafirmativ,adăugămelementul alamul‑imea B.Secontinuăcu2pânăcând
nici un element al mul‑ A nu
imii
mai poate fi adăugatB sau
la adăugarea lui nu
mai poate îmbunătă‑i valoarea func‑f. iei

Algoritmul prezentat mai sus conduce la ob‑inerea unei solu‑ii (m


există întotdeauna) pornind de la mul‑imea vidă şi căutând în fiecare ‑ pas
tă‑im solu‑ia deja ob‑inută. Această tehnică de ob‑inere a solu‑iei,‑ care a d
mirea,oarecumironicăa , metodei ( „lacom”)conduce
greedy = , încelemaifrecvente
cazuri la îndepărtarea involuntară de optim, cunoscut fiind faptul
prin lăcomia pierde optimalitatea) că optimul local nu atrage optimul global.
Acest aspect al metodei greedy a condus la disocierea algoritmilor elab
ajutorul ei în:
– algoritmi cu atingerea optimului global;
– algoritmi ale căror solu‑ii converg către optimul global (evident
acestuiaîntoatesitua‑iile)Această
. dinurmăcategoriedealgoritmige
mulţumitoare în majoritatea cazurilor, dar şi solu‑
foarte ii
proaste în alte cazuri.
160 DIDACTICA PREDĂRII INFORMATICII

Disocierea în cele două categorii se realizează prin modalitatea


‑ d
mentelor din mul‑Aimea
. De aceea, se foloseşte frecvent o prelucrare (reord
prealabilă a elementelor A mul‑
care imii
să modifice ordinea alegerii elemen
submul‑imii
B.

procedura greedy
k:= 0 // k este numărul de elemente din B
B:= Ø
repeta
alege a din A
daca (B U {a} este solutie posibila) atunci
k:= k + 1
B:= B U {a}
sfdaca
pana cand (nu se mai pot alege elemente din A)
sfarsit

Exemplulcareurmeazăscoateîneviden‑ăceledouăaspecteale‑ metode
rea optimului sau numai apropierea de acesta.

Exemplu. Func‑ia maxim


Sedauosubmul‑imeA aluiRcu
, n elemente,iş ofunc‑ie
f deformaf(x1, x2,... xk)
= c1x1 + c2x2 +... ckxk (ci ∈ R, 0 ≤ k ≤ n). Să se găsească o submul‑ime
B ⊆ A de cardinal
k pentru care func‑f ia
iavaloare maximă.

Rezolvare
Această problemă constituie un exemplu ilustrativ complet, pent
prin aplicarea metodei greedy, se ob‑ine valoarea optimă a func‑ f. Algoritmul
iei
necesităopregătireprealabilăAaîn mul‑
vederea
imii aplicăriiproceduriideal
succesivă a elementelor submul‑ B: imii
a) Se va ordona crescător mul‑ A; imea
b) Pornind deB:=la ∅, vom selecta elementele A astfel:
din
– cât timp printre coeficien‑
ci ai func‑ ii
iei
f există numere negative (cărora nu
lis‑aasociatunelement A, cavaloare
din pentru
xicorespunzător)execută, m:
celui mai mic coeficient neasociat unui A îielement
ataşăm celdin mai mic
număr dinA încă neselectat;
– pentru ceilal‑i coeficien‑i (pozitivi) f cărora
ai func‑
nuiei
li s‑a asociat un
elementAdin (ca valoare pentru xi) se alege, pentru cel mai mare coeficien
neasociat unui element A, cel maidin mare număr din A încă neselectat.

Vom ilustra algoritmul cu un exemplu numeric.


NO,IUNI DE BA=Ă 1 61

Exemplu
Fiemul‑imeadenumereA = {–8, –7, –5, –1, 2, 3, 3, 5, 7, 8} (deja
ordonată)şifunc‑fia
deformaf(x1, x2, x3, x4, x5, x6, x7) = 3x1 + 6x2 –
x3 – 9x4 – 9x5 + 3x6 + 8x7. Solu‑ia problemei va fi un vector
x = (b1, b2,
b3, b4, b5, b6, b7) ale cărui componente sunt elemente A. Succesiunea
din
alegerii valorilor componentelor x pune
vectorului
în eviden‑ă tehnica
greedy:
– corespunzătorceluimaimicelementnegativdintrefcoeficien‑ , alegem iifu
primul element A, deci
din b4 = –8;
– corespunzător celui mai mic element negativ dintrefcoeficien‑ pentru ii f
care nu s‑a ales încă o valoare pentru elementul x, alegemvectorului
următorul
elementAdin , decib5 = –7;
– continuăm alegerea elementelor x până când
luituturor coeficien‑ilor nega
func‑ieif li s‑a asociat componenta corespunzătoare x. Ob‑inem
în vectorul
x =
(b1, b2, –5, –8, –7, b6, b7);
– corespunzătorceluimaimareelementpozitivdintre f, coeficien‑
alegem iifu
ultimul element A, deci
din
b7 = 8;
– corespunzător celui mai mare element pozitiv dintre f coeficien‑
pentru ii
care nu s‑a ales încă o valoare pentru elementul x, alegemvectorului
elementul
anterior celui ales la pasul precedent,
b2 = 7; deci
– continuăm alegerea elementelor x până când
lui tuturor coeficien‑ilor f func
li s‑a asociat componenta corespunzătoare x. în vectorul

Ob‑inem în final
x = (5, 7, –5, –8, –7, 3, 8). Valoarea maximă a func

‑iei este
f(5, 7, –5, –8, –7, 3, 8) = 270.

4.5 Metoda programării dinamice

Metoda programării dinamice permite determinarea unei solu‑ii pen


dată în urma unui şir de decizii şi prelucrări ce se condi‑ionează reciproc, r
o dinamică continuă a procesului de căutare a solu‑iei. Ordinul de compl
unui asemenea algoritm este condi‑ionat de modul de organizare a da
rezultatelor intermediare şi de modalitatea de regăsire a rezul
ob‑inute anterior momentului unei noi prelucrări a acestora.

Problemă
No‑iunea de algoritm, aşa cum a fost prezentată în această lucrare, pre
entită‑idistincteexisten‑aunuisetdedatedeintrareşiauneimet
succesivă a acestora, în vederea ob‑inerii unui set coerent de ‑ date
tat al tuturor prelucrărilor. Abordarea celor trei elemente ca
162 DIDACTICA PREDĂRII INFORMATICII

existen‑a unor intercondi‑ionări între acestea. Ca metodă de elabor


pentru rezolvarea unor clase de probleme, programarea dinamică
‑ pres
carea acestor corela‑ii, privind problema ini‑ială ca un sistem de min
condi‑ionează reciproc.

Soluţie
Pentru o problemă datăS, fie 0
starea sistemului format din datele de
de lucru (intermediare), precum şi din corela‑iile existente între ac
d1 de transformare a datelor orientată în direc‑ ia ob‑
soluţii inerii
optime pentru unei
problemă produce o
prelucrare a stăriiS0, determinând transformarea ei într‑
stare, S1. Suntem în acest moment puşi în fa‑a uneia sau mai multor probleme ‑
lare cu cea ini‑ială şi care, printr‑ o nouă
decizie (comună) de prelucrare, conduc la
o nouă stare. Schimbarea stării sistemului va continua până la ob‑in
finale din care se deduce o solu‑ie optimă a problemei ini‑iale.
În general, fiecare nouă decizie de transformare a stării sistemu
deciziileluateanterior(acesteaaugeneratstareacurentăasis
determinată, ca în cazul metodei greedy, de exemplu.
Fied1, d2,... dn ‑ 1, dn o secven‑ă de decizii optime care determină ‑ tr
rea succesivă a sistemului din starea S0 în starea
ini‑ialăfinală
Sn, prin intermediul
stărilor S1, S2,... Sn ‑ 1.
O modalitate naturală de abordare a problemei constă în luare
decizii optime de prelucraredîn 1
, ordinea
d2,... di ‑ 1, pornind de la starea
ini‑ială S0. Decizia următoare, di, depinde de şirul de decizii optime deja d 1, luat
d2,... di ‑ 1. Spunem în acest caz că se aplică metoda spre
înapoi (sfârşitul‑ şiru
lui de decizii).
Dacă se poate stabili stareaSn sistemului
din care s‑ar deduce solu‑ia optimă a
problemei, este de dorit să se determine dn, precum
o decizie
şi o stare Sn ‑ 1 din
caresăseajungăînstarea Sn înurmaaplicăriideciziei dnIntuitiv
. spus,sedetermin
inversa unei decizii şi starea sistemului anterioară luării acestei decizi
de decizii optime di + 1, di + 2,... dn care duc sistemul din Si starea
în starea
finală Sn. O nouă decizie di care să ducă sistemul dinSstarea i ‑ 1
în starea Si va
depinde de şirul de decizii di + 1, di + 2,... dn. Spunem în acest caz că se aplică
metoda spre înainte (începutul şirului de decizii).
A treia modalitate de abordare sugerează determinareaSi unei stăr
şi a două decizii optime di şi di + 1, având două subşiruri optime de decizii:

– di + 2, di + 3,... dn, care duc sistemul dinSstarea i + 1


în starea finală
Sn
prin intermediulSstă rilor
i + 1
, Si + 2,... Sn ‑ 1;
– d1, d2,... di ‑ 1, şir de decizii optime care determină trecerea siste
starea ini‑ S0ială
în starea Si ‑ 1 prin intermediul S stă
1
, rilor
S2,... Sn ‑ 2.
Spunem în acest caz că se aplică metoda mixtă ( explozivă).
NO,IUNI DE BA=Ă 163

Cele trei modalită‑i de abordareprincipiul


au la bază
optimalităţii. Dacă d 1,
d2,... dn este un şir optim de decizii ce determină trecerea sistemu
ini‑ială
S0 în starea finală
Sn, atunci sunt adevărate următoarele afirma‑ii:

– di + 1, di + 2,... dn este un şir optim de decizii care determină ‑ trece


temului din starea
Si în starea finală
Sn, ∀ i, 0 ≤ i ≤ n – 1;
– d1, d2,... di este un şir optim de decizii care determină trecerea s
din starea ini‑ S0 în
ială
starea
Si, ∀ i, 1 ≤ i ≤ n;
– di + 1, di + 2,... dn şi d1, d2,... di sunt şiruri optime de decizii ca
determină trecerea sistemului Si îndin
starea
starea
finală
Sn şi, respectiv, din
starea ini‑ S0ială
în stareaSi, ∀ i, 1 ≤ i ≤ n.

Principiuloptimalită‑iisugereazăstabilireaunorrela‑iiderecu
rezolvarea unei probleme prin metoda programării dinamice presupun
unor caracteristici ale problemei care o fac rezolvabilă cu ajutor
– problema se poate descompune în subprobleme de acelaşi tip cu acea
– subproblemelenusuntdistincte,ciseintercondi‑ioneazărecipr
aplica tehnica
divide et impera, mult mai eficientă din punctul de vedere
‑ al
sumului de memorie);
– necesitateasatisfaceriiprincipiuluioptimalită‑ii,careimpli
recuren‑ă prin care se exprimă intercondi‑ionarea subproblemelor.

În cele ce urmează vom prezenta un exemplu de abordare a unor proble


metoda programării dinamice. Sunt punctate caracteristicile impo
chiar dacă problema aleasă poate fi considerată necaracteristică.

Problemă
Să se determine termenul de rang k din şirul lui Fibonacci, pentru un număr
naturalk dat.
Intrare: k, de la tastatură.
Ieşire: pe ecran, termenul de rang k din şirul lui Fibonacci este
v.

Soluţie (metodă)
În şirul lui Fibonacci, primii doi termeni
a0 = 1sunt
şi a1 = 1. Rela‑ia de
recuren‑ akă = ak – 1 + ak – 2, ∀ k > 2 arată că un termen se ob‑ine ca
suma ultimilor doi termeni anteriori lui.
Vomfolosimetoda înapoiplecânddelastarea u ini‑
= 1ială, v = 1 primii
( doi
termeni),carereprezintăi ş stareadincaresededucesolu‑k ia=problemei
1.
Decizia de trecere la o nouă stare determină următoarele prelucrăr
– aplicarea rela‑iei de recuren‑ă (calculul
s = u +sumeiv), care respectă prin‑
cipiul optimalită‑ii;
– ob‑inerea noii stări prin atribuirea
u = v valorilor
şi v = s.
164 DIDACTICA PREDĂRII INFORMATICII

Se ob‑ine starea
u = 1, v = 2.
Aceasta este starea nou‑ob‑inută (succesoare).

Sunt respectate caracteristicile problemelor rezolvabile p


dinamice:
– solu‑ia unei probleme este ob‑inută din solu‑ia problemei rezolva
determină termenulkde din
rang
termenii dek – rang 1 şi k – 2);
– estesatisfăcutprincipiulooptimalită ‑ii(
soluţie optimă pentru problema anterioară
conduce la soluţia optimă a problemei curente).

4.6 Analiza complexită‑ii, corectitudinii şi terminăr


algoritmilor/programelor

Algoritmiicorespunzătorirezolvăriiuneiproblemepotdiferi,chiard
aceeaşimetodădeproiectare,decătreaceeaşipersoană,darladatediferit
numaivorbimdefolosireaunormetodediversesaudeimplicareamaimul
Existen‑aunorreperegeneralvalabile,aunorunităi ‑ demăsurăstandard,c
fi folosite pentru compararea performan‑
calită‑ii
elor algoritmilor, reprezint
necesitate.Dupăo(scurtă)introducereconceptuală[Cro ]),vomîncepe
( prinaexem‑
plificaanaliza
complexită‑ii(timp/spa‑iu)aalgoritmilorcarerezolvăanumitep
acest
( lucrufiindtratat,lanivelpractic,într‑adevărincomplet,i ş însubca
Men‑ionăm de la început că spa‑iul de memorie real utilizat de un prog
implementează un algoritm este format şi dintr‑o parte constantă, in
datele de intrare (în care se află memorat, de exemplu, codul executa
mărime/dimensiune este de obicei ignorată. De asemenea, într‑o analiz
timpulnecesarintroduceriivalorilordeintrareşiextrageriire
(de obicei) ignorat. Am văzut deja că un algoritm (imperativ) reprezintă o s
finitădepaşi(instruc‑iuni)caredescriuopera‑iipreciseasupraunori
ini‑iale (de intrare) sau intermediare (de lucru, temporare), în vedere
informa‑ii (rezultate) finale (de ieşire). Paşii se execută (adică opera‑iile p
efectueazăînmodconcret)înordineascrieriilorînsecven‑ă.Unalgoritm
o func‑ie sau rezolvă o problemă. Intuitiv, datele de intrare reprezint
domeniul de defini‑ie al func‑iei de calculat (sau informa‑iile ini‑ial
care îşi are originea problema pe care vrem să o rezolvăm), iar datele de ie
elemente din codomeniul func‑iei (respectiv, solu‑iile problemei). Un
modulideal,se termină pentru toateintrărileadmise,prinurmaree
unultimpas,acăruiexecu‑iemarcheazădeobiceişiob‑inerearezultatel
Din motive tehnice, vom lua uneori în considerare şi algoritmi care n
pentru toate intrările, pe care‑ i vom numi
semialgoritmi.
NO,IUNI DE BA=Ă 165

Astfel,oproblemă algoritmică Ppoatefidefinităcafiindofunc‑ief: totală


A → B.
În acest caz, A constituie mul‑ informa‑
imea iilor ini‑iale ale problemei (intrări
posibile), iar
B  – mul‑imeainforma‑iilor finale (ieşirilor/rezultatelor/răspun
Dacă Bareexactdouăelemente (DA, NU)problema
, senumeşte problemă de decizie.
Elementul a apar‑inând domeniului func‑iei se mai numeşte a problemei
şi instan‑ă
(prin abuz de nota‑ie, vom scrie a ∈ şif/a ∈ P). Un algoritm (secven‑ial) care
rezolvă problema f va porni cu o codificare a oricărei ainstan‑
∈ f şi vae calcula
ocodificarearezultatului f(a).Unalgoritm(pseudocod,programîntr‑unlimbajd
programare etc.) va fi privit în această subsec‑iune în sensul paradigm
Presupunem că fiecărei instan‑ a ∈ fei se poate asocia un număr natural ga(f),
numit dimensiunea problemei, pentru a. Dimensiunea
instan‑poate a fi gândită, de
exemplu, ca lungimea (în număr de simboluri) a unei codificări (să zicem, bina
pentru instan‑a considerată. Degasemenea, a
(f) poate reprezenta uneori ‑ o dime
siune structurală a informa‑ aiei
, în ideea
ini‑iale
că lungimea codificării va‑ fi măr
ginită(superior)deunpolinomavândcaargument ga(f)Lungimea/
. pe dimensiunea
unui obiect o se mai notează cu |o|. Resursele de calcul asociate execu‑iei
algoritm sunt legate spaţiul de
dememorie utilizat în decursultimpul execu‑iei şi
necesar finalizării acesteia. Ne vom ocupa mai pe larg de resursa „ti
„spa‑iu”setrateazăcutotulsimilar(semai [J, pot
], [K1 consulta
], [K2 ], [L ], [MY ]).
Estebinesăsubliniemînsăfaptulcăacesteresursesuntputerniccor
de obicei, dacă o problemă are un timp de execu‑ie convenabil, spa‑iul nece
mare, şi reciproc.
Fie astfel o problemă P şi un algoritm K ce rezolvă P (în onoarea lui Muhammad
ibn Musa al‑Khwarizmi, secolele VIII‑IX, considerat părintele algoritmicii m
Vom nota cu TK(p) timpul necesar K pentru
lui a calcula/rezolva instan‑ p ∈ P. a
TK(p) va fi de fapt numărul opera‑iilor elementare K înefectuate
decursul execu de

‑iei complete, pentru găsirea P(p). Presupunem
lui şi că resursa timp este studi
independent de sistemul de calcul sau limbajul în care se‑ face imp
ritmului. Aceasta înseamnă că execu‑ia unei instruc‑iuni nu depinde în n
operanzii implica‑i sau de timpul efectiv folosit pentru memora
Comportarea (în sens temporal, nu uităcel
în cazul m) mai nefavorabil a lui K pe o
intrare de dimensiune n este

TK(n) = sup{TK(p) | p ∈ P şi gp(P) = n}.

Analizând algoritmii într‑ o asemenea manieră , există avantajul


de faptul că timpul de lucru este mă rginit superior
T K(n)) , pentrudefiecare
n.
În practică este posibil TKînsă
(n) să
cafie determinat numai de anumite inst
speciale, care apar foarte rar. De aceea, o alternativă ar fipro să apelă
‑ m la
babilită‑ilor
[CCŞ ],( [K ]), şi anume la studiul comportării în medie a unui algoritm.
Aceasta impune următoarele:
a) Precizarea unei distribu‑ii de probabilitate pe
p mul‑
∈ Pimea
. instan
16 DIDACTICA PREDĂRII INFORMATICII

b) Determinarea medieiTpentru
K
(p), privită ca o variabilă aleatoare:

TK,med(n) = media({TK(p) | p ∈ P şi gp(P) = n}).

Calcululmedieidemaisussereducedeobiceiladeterminareava
(finite), câteodată existând totuşi dificultă‑i mari de evaluare. Pr
complicatănuesteînsăaceasta,ciefectuareaîntr‑unmodrealistaet
notată cu a). Din acest motiv, vom insista doar asupra determină TK(n). Şi rii l
acest lucru este uneori foarte dificil, fără a lua în calcul considerar
implementare. Suntem nevoi‑i astfel să căutăm margini superioare (un
inferioare)pentru TK(n),caresuntmaiaccesibile,şivomstudiacompor- aşa‑numita
tare asimptotică a acestuia sau ordinul său de creştere. Vom adopta anumit
uzuale pentru clasa func‑iilor (totale)
N laN (pe scurt:
de la[N → N]). Mai exact,
pentru fiecare f ∈ [N → N], numită în acest context şi func‑ie de complexita
punem:

O(f) = {g | (g: N → N)($ c ∈ R, c > 0)($ n0 ∈ N)(g(n) ≤ c × f(n),


pentru fiecare
n ≥ n0)}.
Ω(f) = {g | (g: N → N)($ c ∈ R, c > 0)($ n0 ∈ N)(g(n) ≥ c ×
f(n), pentru fiecare
n ≥ n0)}.
Θ(f) = {g | (g: N → N)(g ∈ O(f) I Ω(f)}.

În loc deg ∈ O(f) (Ω(f), Θ(f)), se poate scrie g şi= O(f) (respectiv
Ω(f), Θ(f)). În sfârşit, comportarea asimptotică pentru
TK(n) definită mai sus se
va numicomplexitatea timp a algoritmului K.
Revenind,dacă Pesteoproblemăalgoritmicăatunci , omarginesuperioar
complexitatea ei („de O) se
tip”
poate stabili în practică prin proiectarea
unuialgoritmcaresăorezolve.Deexemplu,vomspune Parecomplexitatea
că ( timp)
O(f(n)) dacă există un algoritm K care rezolvă
P şi K are complexitatea TK(n) =
O(f(n)).
Analog,P are complexitatea (
timp) Ω(f(n)) dacă orice algoritm K care rezolvă
P are complexitateaTK(n) = Ω(f(n)). Mai mult, vom spune că un algoritm K
pentrurezolvareaproblemei P esteoptimal(relativlaPtimp) arecomplexitatea
dacă
Ω(TK(n)). Dar a dovedi că un algoritm dat este optimal pentru o proble
sarcină foarte dificilă, existând pu‑ine rezultate generale şi realizăr
sens. De aceea ne limităm de obicei la considerarea marginilor ‑ superi
rioare, dar mai rar), adică ne vom raporta la. clasa
O(f)
Vom face în continuare câteva precizări legate de nedeterminism, c
de complexitate ale problemelor algoritmice, calculabilitate şi d
probleme/algoritmi şi tratabilitatea algoritmilor.
Unalgoritm K avândproprietatea
TK(n) =că O(f(n)),undef esteunpolinom
(degradoarecare)se , vanumipolinomial (vaavea polinomială)Variante
complexitate .
NO,IUNI DE BA=Ă 167

( depinzând de aspectulf): func‑ iei


complexitate logaritmică, liniară (e vorba de
polinoamedegradexponen‑ 1), ialăetc.Exceptândproblemelecarenuadmit
algoritmicevezi ( încontinuare)s‑ , arpăreacăpentruarezolvaoproblemăeste
să‑i ataşăm un algoritm corespunzător. Nu este chiar aşa, deoarece compl
poate creşte atât de rapid (cu dimensiunea intrării) încât timpul
unei instan‑e de dimensiune mare poate fi prohibitiv pentru ‑ om (ind
citatea de calcul a unui computer). Forma f contează
func‑iei
în mod esen‑ial, deşi
am putea argumenta 10că
n
este
„ mai mic decâtn10.000 în destule cazuri”. Da, dar
acestlucruseîntâmplăpentruvalori nşipentru
miciale unlui
numărfinitdenumere
naturale
n. De aceea se justifică împăr‑irea clasei problemelor algoritmic
în rezolvabile (există măcar un algoritm care o rezolvă, în sensul ‑ preciza
zolvabile, ci şi a clasei problemelor rezolvabile în probleme tractable) şi trata
netratabile ( . Vom adopta şi:
intractable)

Paradigmă. O problemă pentru care nu se cunosc algoritmi polinomiali


‑ (d
nişti!) se consideră a fi netratabilă.
Considerăm util să prezentăm chiar acum câteva exemple didactic
aproape în totalitate,
[Cro ]) pentru
din a justifica paradigma anterioară şi fap
analiză competentă a complexită‑ii nu este uşor de realizat.

Exemplul 1. Să presupunem pentru simplitate că orice pas (opera‑ie elem


‑6
aloricăruialgoritmimplementat secunde,
necesită
adică
0 1 O(1) = 10‑6.Înaceste
condi‑ii, un algoritm cu func‑ia de complexitate f(n) =datăn vade
lucra 0, 2
secunde pentru n = 20 şi 0, 4 secunde pentru n = 40. Un algoritm cu func‑ia
decomplexitatedată f(n)de= n5valucrasecunde 2,3 pentru n = 20iş minute
7,1
pentru n = 40. Un algoritm cu func‑ia de complexitate dată
f(n) = de 2n va lucra
1,0 secunde pentru n = 20 şi 12,7 zile pentru n = 40. Un algoritm cu func‑ia de
complexitatedată f(n)de = nnvalucra×3 10 0 1 secolepentru n = 20şi.. câtoare,
pentru n = 40?!

Exemplul 2. Fie P problema găsirii (calculării) am, unde


luia ∈ N, a ≥ 2, este
dat. Deci P este func‑ia (notată la fel) având atât domeniul, cât şi codom
cuN şidatăprin P(m) = am. Conform celor spuse anterior (ne reamintim de c
careabinarăainforma‑iei)dimensiunea , problemeicare
( depindemde, fiecar
dar şi dea în acest moment) va gmfi
(P) = log2a + log2a (  ×  este func‑ia
„parte întreagă superioară R la
”, de
N). Ca
la o observa‑ie, deoarecea este fixat,
pentru m suficient de mare valoarea log2a practic nu mai contează şi dimensiune
poate fi aproximată n la= log2m. Deoarece folosim func‑ia amintită, am pute
puneaproximativ 2n =şi 2log m = m(vomprocedaşiînviitorînacestmod).Chiar
2

fără vreo demonstra‑ie formală, admitem că cel mai simplu (în toate sens
triviali ş determinist,algoritm A1)care

( l
‑ notă
rezolvă
m problemaeste:
168 DIDACTICA PREDĂRII INFORMATICII

citire m;
alam:= 1;
i:= 1;
Cattimp (i ≤ m) executa
alam:= alam * a;
i:= i + 1
Sfcattimp

Numărul de opera‑ii executate de algoritm pentru m este, conform


instan‑obser
a‑
va‑iei anterioare,
2n, adică O(m) = O(2n). Prin urmare, „cel mai simplu algoritm”
al nostru este exponen‑ial. Intuitiv, algoritmii determinişti sat
după execu‑ia oricărui pas, pasul care urmează este unic determinat (de
execu‑iei precedente). Nedeterminismul (defini‑ia se ob‑ine, desigur, ‑ ne
‑ia precedentă) pare o proprietate lipsită de temei, mai ales din punct
practicii (cine îşi doreşte un calculator despre carece să nu
opera‑
poată iefi sigu
execută la un moment dat?!). Dar valoarea teoretică a acestui concept ‑
mabilă (vezi mai jos influen‑a asupra claselor de complexitate). În p
nedeterministe chiar apar în practică ( să ne gândim doar la execu
concurentă, a mai multor programe/procese secven‑iale, realizate ‑ pe u
culator, dar pe procesoare diferite, având viteze diferite de efe
elementare).
Să considerăm acum un algoritm recursiv (echivalent cu cel anteri
calculării aceleiaşi func‑ii), bazat pe următoarea proprietate (tot t
exponen‑iale cu bazaa:

1, dacă a =0;
f(a) am = (a 2) m div2 , dacă m este număr impar;
a✴am-1 , dacă m este număr impar

Algoritmul A2, rezultat prin derecursivarea proprietă‑ii anterio

citire m;
alam := 1;
Cattimp (m > 0) executa
Daca (odd(m)) atunci
alam:= alam × a;
m:= m - 1
altfel
a:= a × a;
m:= mdiv2
Sfdaca
Sfcattimp
NO,IUNI DE BA=Ă 169

Să notăm şi faptul că (nici) acum nu ne interesează limbajul concret de de


aunuialgoritmsaudemonstrareaformalăafaptuluicăacestaseterm
din punctul de vedere al specifica‑iilor. Presupunem, de asemenea, c
ieşirile sunt gestionate separat. După cum am precizat, ne ocupăm de cazu
nefavorabili ş găsimTcăA2(m)numă( rulopera‑iilorelementareefectuate A2pentru de
rezolvareainstan‑ mproblema
, ei pentruaceastăinstan‑având ă dimensiuneas
convenită deja n =de log2m ) este de ordinul 2 × n. Aceasta pentru că, dacă m
chiar coincide 2n (altfel
cu spus,
m – 1 = 2n – 1 = 1 + 21 + 22+... + 2n‑1,
conformdezvoltăriiuneidiferen‑ an – bn),numă e ruldeîmpăr‑iriexecutateînbucla
Cattimp va fi de aproape n, iar numărul de opera‑ii va O(2fi × n), deci cam
2 × n (nu uităm nici de ini‑ializarea alam, care
lui reprezintă şi ea o opera‑ie, deşi
nesemnificativăceea ), cereprezintă
TA2(n)Prin. urmare,problemanoastră Pvaavea
complexitatea 2 × n = TA2(n) = g(n), iarg ∈ O(f(n)), undef(n) = n.
Aceasta înseamnă că pentru rezolvarea P am găsitlui
un algoritm de complexitat
liniară (!), ceea ce este evident o imposibilitate. Analiza este prin u
Unde este greşeala? Ea provine din faptul că am considerat că opera‑iile
se fac între numere de lungime (binară) fixă. Dar ordinul de mărime al valo
variabilelor implicate alam şi a) va( creşte odată cu creşterea valorii m (nu uită lui
m
că utilizarea calculatorului şi a conceptelor de fa‑ă sunt necesare ‑ d
rilormari).Astfelcă,înrealitate,număruldeopera‑iielementarenece
unui număr întreg având o reprezentare binară de lungime p (adică folosind
minimă
p bi‑i) cu altul de lungime q (folosind algoritmul uzual de înmul‑ire binar
O(p × (p + q)) . În algoritmul anteriorvorfi necesare opera‑ii ‑ (maiexa
‑iri) pentru aflarea succesivă a a2valorilor
= a × a , a4 = a2 × a2,... a4n =
a2n × a2n, precum şi pentru a calcula a3 = a × a2, a7 = a3 × a4, a15 = a7 ×
a8 etc. Dacă vom considera drept opera‑ie elementară înmul‑irea a dou
(binare) de lungime t (= log2a), atunci în precedentul prim şir de înmul‑ir
efectueazăîntâioînmul‑iretde ( ×tiptceea
,) ceiatimpO(1)apoi
; oînmul‑irede (
tip 2t × 2t,) care necesită 4 × O(1) opera‑ii, apoi o înmul‑(2 iren – 1
× t) ×
(2n – 1 × t) necesitând 22×(n ‑1) × O(1) opera‑ii ş.a.m.d. Avem, prin urmare, un
numărtotal de )opera‑ii(elementare)pentruprimasecven‑ă.Procedă
O(2 2×n
‑ ms
lar şi cu a doua secven‑ă de mai sus, deducând la final că şiA2 algoritmul
are (tot)
complexitate timp exponen‑ială.
Pentru a putea grupa formal problemele algoritmice (rezolvabil
complexitate,estenevoiedeodefini‑ieformalăano‑iuniidealgoritm(s
Aceasta poate fi introdusă cu ajutorul unor concepte precum ‑ (nu put
supunându‑le a fi cunoscute cât de cât de către cititor) recursive
: mul‑imi şi fun
calculabile
( prin algoritmi) i ş recursiv enumerabile semicalculabil ( [semi ]algo ‑
ritmi)maş ; iniTüring;RandomAccessMachinesvezi ( [MY ])etc.Totfărăaaprofunda,
să spunem că într‑ un asemenea cadru se poate defini formal ş i ( ne) deter
În general, orice obiect determinist este şi nedeterminist, nu şi re
astfel preciza formal ş i ce înseamnă calcul, accesibilitate, nedet
(de tip „există”) sau demonic (de tip „orice”), terminare/oprire, accepta
0 71 DIDACTICA PREDĂRII INFORMATICII

post‑condi‑ii, invarian‑i, specifica‑ii, corectitudine etc. Se poate, de


legăturadintreacesteconceptesaulegăturadintreeleşicalculat
în particular, no‑iunea de maşină Türing, putem vorbi despre (similar cu ce
definit anterior în mod informal): bandă de lucru, intrare, ieşire (ace
lungime/dimensiune), configura‑ie, pas de calcul, calcul cu succes, limba
algoritmataşat(func‑iecalculată),complexitatetimp x(cuvânt
pentrupeste
ointra
un alfabet
∑), complexitate timp pentru o maşină Türing etc. Din nou, se‑ poate co
sulta < ]>.Similarcudezvoltărileanterioare,vomnotaaceastă
[MY ‑ ulti
xitateTcuMT
ş i ea va fi o func‑ ie
T MT
: N → N, dată prin:

TMT(n) = supx∈∑*, |x| = n{k | k este lungimea unui calcul de


oprire al lui MT pe intrarea x}

şi aceasta dacă maşina este deterministă, respectiv

TMT(n) = supx∈L(MT), |x| = n (min{k | k este lungimea unui calcul


de acceptare al lui MT pe intrarea x}), dacă maşina este nedeterministă.

Mai precis, dacă


∑ este un
alfabet (mul‑ime finită şi nevidă) şi MT este o maşină
Türing oarecare, deterministă sau nu (având ca intră∑ri ), cuvinte
limbajul pest
acceptat de MT este:

L(MT) = {x | x ∈ ∑* astfel încât există un calcul de acceptare


al lui MT pentru intrarea x}.

Calculele de acceptare sunt calcule de oprire care satisfac (e


condi‑ie specifică. Dacă h este o func‑ie∑pe
*, spunem că h este calculabilă de
maşinaTüringdeterministăMTdacăpentrufiecare x ∈ ∑ intrare
*calculul(maşina)
seopreşteavândieş h(x)irea
.Încazulnedeterminist(careestedetipangel
vorbi de calculabilitatea func‑iilor TMT par‑ iale.
∈ O(f) şi fDacă
este un polinom
notatp, peste N (ceea ce, reamintim, se mai scrie
TMT(n) = O(p(n))), se spune că
func‑ia h calculată de MT este polinomial calculabilă (în cazul problemel ‑
ziecuvintelecalculabil/rezolvabilpotfiînlocuite ).Oricum,peste
dedecidabil
fiecare
alfabet∑dat , putem defini două clase importante de limbaje:

P = {L ⊆ ∑*| există o MT deterministă şi un polinom p peste


N astfel încât L = L(MT) şi TMT(n) ≤ p(n), pentru fiecare n}

şi

NP = {L ⊆ ∑*| există o MT nedeterministă şi un polinom p peste


N astfel încât L = L(MT) şi TMT(n) ≤ p(n), pentru fiecare n}.
NO,IUNI DE BA=Ă 1 71

O maşină Türing deterministă este şi nedeterministă, prin defini‑ ‑ ie. În p


ni‑iatimpuluidelucru, TMT(n)al , uneimaşinideterministe,estemairestric
în cazul unei maşini nedeterministe, dePunde ⊆ NPrezultă
. Încă nu se cunoaşte
dacă incluziunea precedentă este strictă, problema fiind una deschis
covârşitoareasuprateorieigenerale [ ]). Ceea
acomplexită
ceputem ‑iiremarca
( este
faptul că orice intrare x pentru o problemă algoritmică, pentru un algoritm, p
omaşinăTüringetc.poatefipresupusă(dacănu,cazulesteneinteresantdi
de vedere al prelucrărilor electronice!) ca fiind codificată ca un cuv
unui ∑*; sau chiar lui N, cele două mul‑imi având acelaşi număr de elemente da
∑estefinit)Atunci,. oproblemădedecizie
Ppoatefiprivităîntrebare cao curăspuns
binar, de exemplu P(x) = 0 sauP(x) = 1. Cum atât P, cât şiNP au fost definite
dreptclase de fiecăreiasemeneaprobleme(pânălaurmă,oricăreiproble
limbaje,
algoritmice, deoarece din punctul de vedere al resurselor folosi
cu exactitateP(x) ieşirea
, ci doar dacă ea există) i se poate ataşa limbajul

L = {x |x∈ ∑*, P(x) = 1}.

Func‑iacaracteristică
[MY ])aacestui
( limbajvafidatăchiarP,iarrezolvarea
de
lui Pvafiacelaşilucrucuatestaapartenen‑xa la
unui
limbajul
elementL(problema
membership pentru mul‑imea L). Dacă L ∈ P, acest lucru va însemna că există un
algoritm (privit ca o maşină Türing deterministă; neesen‑ial, maşina Türin
acceptată drept un model universal pentru orice calculator) poli
ce priveşte timpul necesar, care P. Dacă
rezolvă
L ∈ NP, algorimul polinomial care
existăestenedeterminist,ceeaceesteechivalentcuaspunecă„put
polinomial înproblema
|x| P” dacă P(x) = 1, dar dacă cumvaP(x) = 0, atunci
algoritmul poate să nu se termine (altfelPspus, descrie,
problema
în cazul general,
o func‑ie par‑ială şi avem de‑a face cu un semialgoritm). Continuând, dacă sun
douăproblemededecizie P1: I1 → {0, 1} şi P2: I2 → {0, 1}, vom spune că
P1 se reduce polinomial P2 (notatla P1 < P2), dacă există o func‑ie polinomial ‑ cal
culabilăj: I1 → I2 (nu uităm că atât I1, câtIşi2 pot fi codificate N, sau înîntr‑un
acelaş∑i*), astfel încât să avem: P1(x) = P2(j(x)), pentru fiecare x ∈ I 1.
O  problemădedecizie PesteNP‑completă dacă P ∈ NPi ş pentrufiecare P’ ∈ NP
avemP < P’. Clasa problemelor NP‑complete este nevidă.

Teoremă (S.A. Cook).ProblemaSAT,asatisfiabilităii


‑ formulelorbooleene
[Mas3 ]), (
este
NP‑completă.

Importan‑a claseiNP este evidentă: dacă o problemă


P ∈ NP şi dacă pentru ea
găsimi)
ş( unalgoritmpolinomialdeterminist)
( caresăorezolveadică
( P ∈ avem
P,) i
ş
atuncioricealtăproblemă P’dinNPsevaputearezolva(şi)întimppolinomial(pri
transformarea polinomială – conform  defini‑iei 
– a oricărei instan‑eP’ a lui
într‑o
instan‑ă a luiP, care poate fi rezolvată polinomial). Ceea ce ar P însemna
= NP. că
172 DIDACTICA PREDĂRII INFORMATICII

Continuăm cu alte câteva exemple (în majoritate tot didactice


descrierea algoritmilor acelaşi limbaj pseudocod).

• Problemă. Să se calculeze suma primelor


n numere naturale.

Soluţie. Primul algoritm


Alg1 propus se bazează pe ideea de a construi o func
care să calculeze succesiv 0,sumele
0 + 1, 0 + 1 + 2..., func‑ie care va
returna în final valoarea 1 + 2sumei
+ 3 + ... + n.

Functia suma(n)
s:= 0;
i:= 1;
Cattimp (i ≤ n) executa
s:= s + i;
i:= i + 1
Sfcattimp
suma:= s;
SfFunctia

Func‑ia numită
suma va ocupa un spa‑iu de memorie fix pentru parametru,
‑ v
abilele locale, pentru adresa de revenire şi, evident, pentru cod.
variabil suplimentar, deci
SAlg(n) = O(1).
Un al doilea algoritm
(Alg2) pe care‑l propunem presupune construirea
func‑ii
recursivecarecalculeazăsumamen‑ionatăfolosindu‑
, sederela‑ia
s(i) = s(i ‑ 1) + i, pornind ini‑ial cu = 0:
s(0)

Functia suma(n)
Daca (n = 0) atunci
suma:= 0;
altfel
suma:= suma(n – 1) + n;
Sfdaca
SfFunctia

Pentru fiecare apel al func‑iei precedente vor fi ocupa‑i 4 octe‑i: u


memorarea parametruluin, unul pentru valoarea func‑iei şi 2 octe‑i pentru adr
revenire. Senfac apeluri recursive, deci spa‑iul de memorie variabil
5 × n es
octe‑i. Algoritmul
Alg2 foloseşte mai mult spa‑iu efectiv (real) de memorie
Alg1. Vom avea, de fapt, SAlg(n) = O(n).
Următorul exemplu prezintă un algoritm a cărui complexitate timp n
decât de volumul datelor de intrare, şi nu de alte caracteristici ‑
pitolul 4. 3)

• Problemă.Săse ordonezecrescătorelementele
aavând
vectorului
ncomponente.
NO,IUNI DE BA=Ă 173

Soluţie (sortarea prin selec‑ie, cu alegerea minimului; vezi şi).subcapi


Algoritmul, notat (local) Alg, se
cubazează pe o selec‑ie (repetată) a celui mai mic
element dintr‑un subvector (subşir) al vectorului (şirului) dat. ‑ Codu
pitolul 4.2
Laoitera‑ieabucleimari(folosind i),se
variabila
determinăminimulsubşirului
ai+1,... an şi elementul minim este plasat i (elementele
pe pozi‑ia de
1 la
la
i –
1 fiind deja plasate pe pozi‑iile lor definitive). Pentru a calcula min
dekelementesuntnecesare k – 1opera‑iielementare(sepresupuneprimulel
din şir ca fiind cel minim, apoi sek –fac
1 compara‑ii şi eventual atribuiri pâ
epuizareaelementelorirului) ş În
. total,încazulde maisus,
(n – 1) se fac 2)
+ (n –
+... 2 + 1 = n × (n – 1)/2 compara‑ii, deci ordinul de complexitate
este O(n2). Să subliniem faptul că timpul de execu‑ie, în sensul situa‑iei ce
defavorabile, nu depinde de ordinea ini‑ială a elementelor vectoru

Înurmătorulexempluvomanalizacomplexitateatimpîncazulcelmaid
Deşin‑amdezvoltatcompletparteateoreticănecesarăpentruaanali
în medie, o vom prezenta (pe scurt) şi pe aceasta.

• Problemă. Este practic aceeaşi cu problema precedentă: să se ‑ ordonez


cător elementele unui vector.

Soluţie(sortareaprininser‑iedirectă,vezişisubcapitolul 4.3)Algoritmu
(Alg)
propusvaordona,înfiecaremoment,unsubşirob‑inutdincelanterior(d
prin adăugarea unui nou element. El porneşte de la subşirul cu un sing
(care este deja ordonat) şi, odată cu adăugarea unui nou element pe u
pozi‑ie din şir, acesta este promovat până când noul subşir devine ia
Descrierea în pseudocod este:

i:= 2;
Cattimp (i ≤ n) executa
j:= i;
Cattimp (a[j – 1] > a[j] ˄ j > 1) executa
k := a[j – 1];
a[j – 1]:= a[j];
a[j]:= k;
j:= j – 1;
Sfcattimp
Sfcattimp

Analizămcomplexitateatimpaalgoritmului ndimensiunea
, înfunc‑iede presupusă
avectoruluia ceurmeazăafisortat.Lafiecareitera‑ieabucleiprincipale
i ),
elementele
a[1], a[2],... a[i – 1]suntdejaordonateşitrebuie‑ săinter
băm elementele de forma
a[j] cu cele de forma
a[j – 1] (ini‑ial avem
j = i ),
174 DIDACTICA PREDĂRII INFORMATICII

până când noul şir va deveni ordonat. În cazul cel mai defavorabil, câ
element adăugat la şir este mai mic decât cele adăugate anterior, a[i] e
adăugatvafideplasatpânăpeprimapozi‑ie,iarciclulinterior i – 1sevaexe
ori în cadrul fiecărei execu‑ii a ciclului exterior. Considerând ast
elementarăcomparareaelementului a[j – 1]cuelementul a[j] şiinterschimbarea
acestor elemente (atâta timp
a[j – 1] cât
> a[j] ), vom avea în cazul cel mai
defavorabil executate 1 + 2 +... (n – 1) = n × (n – 1)/2 opera‑ii elemen ‑
tare, deci complexitatea algoritmului O(n2). este
Pentru analiza comportării în medie, mai întâi vom considera că oric
a elementelor şirului are aceeaşi probabilitate de apari‑ie (adică or
esteegalprobabilă).Atunci,probabilitatea ai,nou‑ ca
adăvaloarea
ugatălaş irul a 1,
a 2,... a i – 1 , să fie plasată în final pe o pozi‑ ie oarecare k , din a1, a2,...
ai (1 ≤ k ≤ i), este aceeaşi, adică 1/i. Calculăm apoi numărul mediu de opera ‑
‑ii elementare (interschimbări de elemente) pentru ai să ajungă
ca elementul
pe
pozi‑ia k (ce va fi egal cu numărul de schimbări ce se efectuează înmul‑‑ it cu pro
bilitatea ca aceste schimbări să aibă loc) şi numărul mediu total ‑ de oper
tare pentru i fixat.
un Ob‑inem imediat că şi complexitatea algoritmului, în m
este tot O(n2).
Încheindpemomentcuexemplificărilelegatedestudiulcomplexităii, ‑ s
că foarte important în practică este şi studiul coerent al terminăr
programelor(nudoarverificarea a posteriori aacestora prinutilizarea ­selordiverdate
de test şi teste experimentale). Ideea este că trebuie – dacă se să ne
poate,
asigurăm 
tot prin demonstra‑ii – căformale 
programele concepute se termină pentru or
instan‑ă admisibilă a datelor şi că ele execută ceea ce vrem, înainte de a fi
( [Me ])Presupunând
. astfelcăinforma‑iiledeintrareadmisibilesuntc
oanumităcondi‑ie,exprimatăprintr‑unpredicatPsau ( precondiţie)
ocondi‑ ră
, ie
mâne
săarătămcăprogramulseterminăpentruoriceasemeneainstan‑ăşică,înaces
informa‑iile de ieşire satisfac unQalt ( postcondiţie)
predicat . Nu este foarte dificil
de tratat astfel programele care nu aceste
con‑inconstruc‑
bucle, ii sintactic
singurele generatoare de informa‑iisau necontrolabile
de execu‑ii infinite . Pentru a
stăpâni ciclurile, sepredicatele
folosesc invariante/invarianţii. Un predicat invariant
R asociat uneieste bucleadevărat înainte de prima execu‑ie a acesteia şi s
plus condi‑ia că, dacă este adevărat înainte de o execu‑ie a corpului bucl
fi adevărat şi după terminarea acelei execu‑ii. Un invariant pentru bu
din algoritmul de mai sus al sortării prin selec‑ie poate fi exprimat
condi‑ia/predicatul informal: Şirul
a1,... ai este ordonat crescător. Pentru
detalii, vezi [R] sau
şi [W2 ].

• Problemă. Să se găsescă elementul minimal (primul întâlnit, de la st


dreapta,dacăsuntmaimulte)alunuişirdatdenumerenaturaleşisăsed
terminarea şi corectitudinea algoritmului folosit.
Soluţie. Algoritmul de mai jos (des amintit în lucrarea de fa‑ă), notat (l
prin
Alg, este adaptat scopului de moment şi este suficient de simplu
NO,IUNI DE BA=Ă 175

mai prezenta o descriere suplimentară. Intrarea (k ∈ este


N, k secven‑
> 1) a
a1, a2,... akIeş
. ireavafimemoratăînvariabila
mincare
, vacon‑ineaceavaloare
ai care este cea mai mică din secven‑a anterioară
(i ∈ {1, 2,… k} fiind cel mai
mic cu proprietatea amintită). Descrierea
Alg în pseudocod:
lui

min:= a1;
i:= 2;
Cattimp (i ≤ k) executa
Daca (min > ai) atunci
min: = ai
Sfdaca
i: = i + 1
Sfcattimp

Precondiţia ( P): Secven‑a de intrare (să o notăm, generic,a) cu are cel pu‑in
două elemente şi acestea sunt numere naturale.
Postcondiţia( Q):Variabila min con‑ine(un)celmaimicnumărdintreelemente
secven‑ei de intrare.
Invariantul ( R), ataşat unicei bucle prezente în program: pentru i ∈ {1,fiecare
2,… k}, existăj ∈ {1, 2,… i}, astfel încât variabila min con‑ine cel mai mic
element al subsecven‑ a1, a2,... ei ai. Această condi‑ie poate fi scrisă pe scurt c
(∀i)(R(i)), undeR(i): există j ∈ {1, 2,… i}, astfel încât variabila min con ‑
‑ine cel mai mic element al subsecven‑ ei ai.
a1, a2,...
Să arătăm mai întâi că Alg se terminăÎn . acest caz, lucrurile sunt sim
deoarece programul con‑ine o singură buclă şi aceasta are un număr finit
execu‑ii ale corpului său, cunoscut aprioric k – 1). În
(anume
privin‑a corectitudi ‑
nii,trebuiesăarătămcă,dacăplecămcuosecven‑ădeintrarecaresatisface ‑ p
di‑ia Pşiacesteiaîiaplicămalgoritmul Algatunci
, lafinalulexecu‑iei(amdemonst
deja căAlg se termină) este satisfăcută postcondi‑ Q. Vom arăta ia
întâiRcă este un
invariant al unicei bucle. Mai exact, se vede direct, pentru începu
prima execu‑ie a corpului buclei, R este adevărat pentru i = 1, adică min con‑ine
cel mai mic element (în sensul ordiniiNstandard ) al subsecven‑ pe ei formate doar
dina1. Altfel spus, înainte de prima execu‑ie a corpului buclei, este
R(1) . ade
Să presupunem acum căR este satisfăcut înaintei – de ceaa execu‑
de‑a ie a cor ‑
pului buclei, i ≥ 2 (pentru o anumită valoare j ∈ {1, 2,… i}) şi să arătăm că R
este adevărat şi după această execu‑ie (pentru o anumită valoare
j’ ∈ {1, 2,… i,
i + 1}).Cualtecuvinte,arătămcă,dacăînaintedecea de‑
i – a execu‑
a ieacorpului
buclei este adevă rată
R(i) , după această execu‑ie va fi adevăR(i  rată
+ 1) (deci..
înaintedecea(i + 1) de‑a execu‑ie!i Ş .) aceasta,indiferentdevaloareacurentă i. alu
Această ultimă afirma‑ie este în mod evident adevăR(i) ratăadevă
, deoarece
rată
implică faptul că con‑ineaj, adică o cea mai mică valoare din subsecven‑
min a 1, a
a2,... ai. În cea de‑ai – a execu‑ie a corpului buclei, se compară min cu noua
valoareposibilăa,adică i+1
.Opera‑iaefectuatădealgoritm(înurmaacesteiexe
176 DIDACTICA PREDĂRII INFORMATICII

va face, într‑adevăr,min ca să con‑ină o cea mai mică valoare a subsecven‑ a1, ei


a2,... ai, ai+1, adică pe aj. Astfel, după execu‑ie va fi adevărată R(i + 1). În
concluzie, după terminarea execu‑iei buclei (adică după cea
(k – 1) execu‑
de‑aie a
corpului săR(k)
u), va fi adevărată şi deci min va con‑ine (o) cea mai mică valoare
prezentă în secven‑ a1, aa2,... ak.
Desigur că, pentru algoritmi mai complica‑i, care con‑in cicluri cu u
necunoscut (aprioric) de paşi, s‑ar putea să fie nevoie să se utilizeze anu
tehnice (cum ar fi salvarea variabilelor de intrare în anumite ‑ var
porare) şi considerarea unor predicate invariante mai puternice ‑ (d
‑iicaresăimplice Qnu
, săcoincidăcuacesta)De . asemenea,demonstra‑iaanter
(privind păstrarea adevărului unui invariant pe parcursul execu‑ie
mimează practic o demonstra‑ie prin induc‑ie matematică N), s‑ar putea (însă trebu ‑
iască să fie înlocuită cu o demonstra‑ie prin induc‑ie structurală (înt
definită
constructiv)Sunt . astfelnecesarecunoştin‑emaiprofundedelo
de algebră şi probabilită‑i. Din lipsă de spa‑iu, indicăm doar câteva‑ referin
grafice:[An], [CS], [L ], [Mas3 ], [Po], neinsistând pe partea teoretică, i ş aşa de
decomplexăi,ş poate,inaccesibilăelevilorînmoddirectfă( răexplica‑iisuplim
Cunoaşterea unei teorii generale a structurilor de date ar fi to
şi anumite lucruri mai detaliate legate de compilatoare, program
sistemedeoperare,mediidistribuite,sistememultimediaetc.Dinno
lacâtevareferin‑ebibliografice: [Bac2], [Bare ], [Hoa], [Hor], [HS ], [J, ], [Me ], [Sa].
Capitolul 5

Structuri de date: liste, stive, co

În acest capitol vom prezenta câteva exemple (sperăm) semnificativ


de date clasice şi de algoritmi standard care operează asupra acest

5.1 Liste
Listaeste o
multimulţime dinamică,adicăocolec‑ie/mul‑imecuunnumărvariabilde
elemente,caresepotrepeta.Elementele sunt
Îngeneral,
tip. deacelaş elementele
i unei
listesunttipuriabstractespecifice,altfelspus,tipuridedatea
par‑ialsautotalunmodel.Elementeleuneinoduri. liste
Dacăse între
numesc nodurile
uneilisteexistăorela‑iedesuccesiune,atunci lista
simplu senumeş
Înacest
înlănţuită. te
cazexistăinforma‑iadeatrecedelaunnodlaaltulsuccesor) ( dar
, nupute
nodul precedent unui nod dat. Dacă între nodurile unei liste există p
determinaatâtsuccesorulunuinod,câtşiprecedentulacestuia,a
dublu înlănţuită.Înlegăturăculistele,seauînvedereuneleopera‑iideintere
a) Crearea unei liste.
b) Accesul la un nod oarecare al listei.
c) Adăugarea unui nod la o listă.
c) Inserarea unui nod într‑o listă.
d) Ştergerea unui nod dintr‑o listă.
e) Ştergerea unei liste.

O listă simplu înlăn‑uită poate fi reprezentată grafic astfel:

Figura 5.1 Reprezentarea grafică a unei liste simplu înlănţuite


178 DIDACTICA PREDĂRII INFORMATICII

Observaţii
1. head şi tail sunt variabile declarate în cadrul codului în care s
adresa primului, respectiv al ultimului next este
nod al„pointer
listei. la tipul
nodului”, face parte din defini‑ia nodului şi con‑ine adresa următor
listă sau valoarea NULL.
2. Din figura 5.1 observăm că un nod al listei con‑ine, alături de informa‑ia u
şi adresa următorului nod din listă (dacă există).
3. În cazul unei liste dublu înlăn‑uite, un nod al listei con‑ine în pl
nodului precedent din listă.

5.1 Liste liniare simplu înlănţuite


Întrenodurileuneilistesimpluînlăn‑uiteestedefinită succesor,maiorela‑ien
exact fiecare nod con‑ine un pointer a cărui valoare reprezintă ‑ adres
tordinlistă,cucondi‑iacaacestasănufieultimulnodallistei.Înac
din listă nu poate determina nodul precedent. În mod asemănător se
rela‑iaprecedent,
de în care fiecare nod al listei con‑ine un pointer a căru
reprezintă adresa nodului precedent. În func‑ie de rela‑ia definită ‑ , pu
rile unei liste plecând de la primul nod al listei către ultimul n
succesor,
sauplecânddelaultimulnodcătreprimul nod,Listele
precedent. rela‑ia pentrucare
nodurile sale satisfac şi rela‑ia succesor şi rela‑ia liste precedent
dublu se n
înlănţuite.Înceleceurmeazănevomlimitanumailalistelesimpluînlăn‑ui
care nodurile satisfac rela‑
succesor. O asemenea
ia listă se caracterizează prin fap
că există întotdeauna un nod şi numai unul care nu are nod urmă
succesor, fiu)tor
, (
adicănodulfinalallistei,precumşiunnodunic,carenuesteurmătorul
nici unui alt nod, adică nodul de început al listei. Aceste noduri for
capetele
listei simplu înlăn‑uite. Pentru a gestiona nodurile unei liste si
utiliza doi pointeri spre cele două capete ale listei. Notăm pointer
nu este următorul (succesorul) nici unui alt nod al listei (adică prim
cuhead şicu tail,pointerulsprenodulcarenuaresuccesorînlistă,adi
nod al listei. Aceşti pointeri vor fi utiliza‑i în toate exemplele pe ca
vedere în prelucrarea listelor simplu înlăn‑uite. Ei pot fi defini‑ ‑ i fie
bale, fie ca parametri pentru func‑iile de prelucrare a listei, fie ca
unui obiect. Tipul unui nod într‑o listă simplu înlăn‑uită se poate defi
declara‑ie de forma (C/C++):

typedef struct _tagNod {


//Declaraţii. Informaţii utile continute de nod.
struct _tagNod *next;
} MPI_Nod;
STRUCTURI DE DATE: LISTE, STIVE, COZI 179

Pointerul
next va con‑ine adresa următorului nod al listei, adică define
succesor pentru nodurile listei.

Observaţie
Tipul unui nod pentru o
listă dublu înlănţuită se poate defini astfel:

typedef struct _tagNod {


//Declaraţii. Informaţii utile continute de nod.
struct _tagNod *previous;
struct _tagNod *next;
} MPI_Nod;

Pointerul
previous va con‑ine adresa nodului precedent din listă. Primul
listă va avea
previous = null, iar ultimul nod din listă va avea
next = null.

Pointerii
head şi tail se declară în afara oricărei func‑ii (de obicei înai
definirii func‑ iei a programului principal, deci variabile globale) pr
main()

MPI_Nod *head, *tail;

Pentru C# putem defini un nod şi clasa ce implementează lista astfel

public class Node


{
public Object Data {get; set;} // Object clasa de bază în
Framework Class Library - FCL
public Node next;
}

public class LinkedList


{
private Node head; // iniţializat în constructor
private Node tail; // iniţializat în constructor
// Metode
}

Observaţii
1. În defini‑ia din C#, head şi tail sunt declara‑ i ca . Avem acces la
private
listă numai prin instan‑LinkedList
a tipului. În mod asemănător putem proceda
şi pentru C++.
180 DIDACTICA PREDĂRII INFORMATICII

2. Putem defini două proprietă ‑i Only în LinkedList pentru a returna


Read
valoarea luişi tail astfel:
head

public Node Head { get { return head;}}


public Node Tail { get { return tail;}}

3. FCL din .NET con‑ine implementări pentru aceste structuri de date.

În C++, folosind clase, putem defini un nod şi clasa ce implementează l


simplu înlăn‑uită astfel:

class Node
{
public: int Key; // Data memorată în nod
Node* next;
public:
Node(int key);
~Node(void);
};

#include “Node.h”
class Lsi
{
Node *head;
Node *tail;
public:
int Add(Node* node);
int Insert(int key, Node* newNode);
// result: 0 = nod negasit; 1 = nod gasit
Node* FindPreviousForKey(int key, int &result);
Node* FindCurrentForKey(int key);
int Delete(Node* node);
int Delete(int key);
int DeleteAll();
void PrintList();
int Count; // Număr noduri în listă
public:
Lsi(void);
~Lsi(void);
};

Pentru clasa
Lsi definită mai sus am definit câteva metode doar
‑ pentr
ficare.
STRUCTURI DE DATE: LISTE, STIVE, COZI 1 81

Pe tot parcursul acestui capitol ne vom mărgini să descriem‑ ordine


lordincadrulunoropera‑ii,ordinecetrebuierespectatăatuncicân
structuri de date. Men‑ionăm de la început că nu urmărim o optimizare a co
o în‑elegere corectă a opera‑iilor ce trebuie efectuate şi claritate
asemenea, acest capitol nu constituie o tratare completă a struc
doar o sinteză a modelului lor de gestionare.

5.1 . Crearea unei liste simplu înlăn‑uite


Pentru claritate, crearea unei liste ar trebui tratată după cum ur
LS1. Lista este vidă şi trebuie creat primul nod al listei.
LS2. Lista nu este vidă şi se adaugă un nou nod la sfârşitul listei.

Observaţii
1. Am eviden‑iat mai sus opera‑iile de adăugare şi inserare a unui nod
Trebuie să men‑ionăm că prima opera‑ie va adăuga un nod la sfârşitul list
a doua opera‑ie va insera un nod înaintea altui nod. În concluzie
inserare a unui nod presupune inserarea unui nod la începutul list
2. Dacă am defini că opera‑ia de inserare va insera un nod după un alt nod, a
nu putem insera un nod la începutul listei şi opera‑ia de adăugare n
sensul.
3. Adoptăm observa‑ia 1. în materialul ce urmează.

Gestionarealisteisimpluînlăn‑uiteovomfacecuajutoruladouăv
head şi tail, definite mai sus.
Pentru LS1, ordinea opera‑iilor este următoarea: se ini‑ializează
head poi
şi tail cu valoareaNULL, deoarece la început lista este vidă.

head = NULL;
tail = NULL;

LS1.1 Se rezervă o zonă de memorie în memoria heap pentru nodul curent.


LS1.2 Se încarcă nodul curent cu informa‑iile utile.
LS1.3 Se atribuie pointerilor head şi tail adresa din memoria
heap a nodu

lui curent. Pointeriihead şi tail au aceeaşi valoare când lista este vidă (va
NULL) sau are un singur nod.
LS1.4 Se atribuie valoarea NULL pointerului
next din nodul curent creat.
182 DIDACTICA PREDĂRII INFORMATICII

Codul ar putea arăta astfel:

...
// LS1.0.
head = NULL;
tail = NULL;
// LS1.1.
pTemp = (MPI_Nod*)malloc(sizeof(MPI_Nod));
if (pTemp == NULL)
{
printf (“Memorie insuficienta la crearea unui nod al
listei\n”);
exit(1);
}
// LS1.2.
// Acţiuni specifice de iniţializare a datelor-membru
// din nodul listei
// LS1.3.
head = pTemp;
tail = pTemp;
// LS1.4.
tail->next = NULL;

Figura 5.2 Reprezentare grafică a listei

Pentru LS2, ordinea opera‑iilor este următoarea:


LS2.1 Se rezervă o zonă de memorie în memoria heap pentru nodul curent.
LS2.2 Se „încarcă” nodul curent cu informa‑iile suplimentare.
LS2.3Seatribuiepointerului tail ‑> next adresadinmemoria heapanodului
creat.
LS2.4 Se atribuie pointerului tail adresa din memoria heap a nodului creat.
LS2.5 Se atribuie valoarea NULL pointerului
tail ‑> next.
STUC
R TURI DE DATE: LISTE, STIVE, COZI 183

Codul ar putea fi următorul:

// LS2.1.
pTemp = (MPI_Nod*)malloc(sizeof(MPI_Nod));
if (pTemp == NULL) {
printf (“Memorie insuficienta la crearea unui nod al
listei\n”);
exit(1);
}
// LS2.2.
// Operaţii specifice de iniţializare a nodului
// LS2.3. Se face legătura dintre ultimul nod
// al listei cu noul nod creat
tail->next = pTemp;
// LS2.4. Noul nod creat va deveni ultimul nod al listei
tail = pTemp;
//LS2.5. Acum tail punctează spre noul nod creat
// care nu are succesori
tail->next = NULL;

Observaţie
LS2.3 şi LS2.4 trebuie să se execute în această ordine.

Figura 5.3 Operaţia de adăugare a unui nod la o listă existentă

5.1 2. Accesul la un nod al listei simplu înlăn‑uite


Pentru a găsi un anumit nod al listei, va trebui să definim
criterii de anumite
identi-
ficare pentru acesta (de exemplu, numărul de ordine al nodului, nodul ca
oanumităinforma‑ieetc.)Consideră
. mutilsăarătămmoduldeiterare,depar
a unei liste simplu înlăn‑uite. Algoritmul în sine este foarte simplu
primulnodşicuajutoruldatei‑ membru
next (aceastatrebuiesăfiediferită ‑ deva
rea null) din cadrul nodului ob‑inem acces la următorul nod din listă.
Parcurgerea totală a listei pentru a afişa şi/sau a efectua anumite
realizată cu ajutorul următorului cod:
184 DIDACTICA PREDĂRII INFORMATICII

...
MPI_Nod *pTemp;
pTemp = head;
while (pTemp != NULL)
{
// Afişare. Calcule. Adresa nodului curent este în pTemp.
// Trec la următorul nod al listei
pTemp = pTemp‑>next;
}
...

Observaţie
Variabilelehead şi tail nu se vor modifica în afara opera‑iilor de adă
‑ ugare, in
rare şi ştergere a unui nod sau ştergere a unei liste. În exemplul ‑ de mai
rea variabilei
head este preluată în variabila locală
pTemp .

Presupunem că informa‑iile utile din nod con‑in o dată‑membru


key care numită
este de tip întreg.
Dacădefinimdrept criteriu de căutare,deidentificareaunuinodd
valoare a datei‑membru
key, atunci determinarea nodului respectiv ‑ se v
curgând lista de la început şi comparând valoarea
key din
datei‑
fiecare
membru
nod
parcurs cu valoarea memorată într‑o variabilă locală (în general ‑ prelu
tură sau rezultată în urma unor calcule anterioare sau este un par
uneifunc‑ii).PresupunemcăvaloareaestepăstratăînvariabilatempKey. tempor
Codul poate arăta astfel (în cadrul unei func‑ii):

...
MPI_Nod *pTemp;
// int tempKey;
// este dat ca parametru formal al metodei
...
pTemp = head;
while (pTemp != NULL)
{
if (pTemp‑>key == tempKey)
return pTemp; // în pTemp avem adresa nodului căutat
pTemp = pTemp‑>next;
}
return NULL; //nu există un asemenea nod
...
STRUCTURI DE DATE: LISTE, STIVE, COZI 185

5.1 3. Inserarea unui nod într


-o listă simplu înlăn‑uită
Inserarea unui nod într‑o listă simplu înlăn‑uită se poate face în diver
1 . Înaintea primului nod.
2 . Înaintea unui nod precizat printr‑o cheie.
3 . După un nod precizat printr‑o cheie.

Observaţie
Inserareaunuinoddupăunnodprecizat -ocheie
printr
(punctul3demaisus)poate
coincide cu opera‑ia de adăugare a unui nod în cazul în care nodul deter
acea cheie este ultimul al listei.

5.1 3.1 Inserarea unui nod


-o listă
într simplu înlăn‑uită
înaintea primului nod
Presupunem că lista nu este vidă. Dacă lista este vidă, vezi LS1 descris la
Adresaprimuluinodallisteisepăstrează headîn
Opera‑
. variabila
iilecaretrebuie
efectuate, precum şi ordinea acestora sunt descrise în continuare
1. Alocare de memorie pentru noul nod, adresa se ob‑ine, de exemplu, în v
pTemp. D acăopera‑ias‑adesfăşuratcusucces,secontinuă
2altfel
, cuserenun‑ă
la inserare.
2. Pointerul
pTemp‑>next va păstra adresa următorului nod, care este ‑ de f
tul prim nod al listei, deci valoarea
head. lui
pTemp‑>next= head;
3. Pointerul
head va primi ca valoare adresa noului nod creat:
head = pTemp;

Observaţie
Dacă se inversează etapele (2) cu (3), atunci
am pierdut lista. Pointerul
tailva
punctaspreultimulelementallistei, head vapuncta
pointerulsprenoulnodcreat
iarhead->next va puncta tot spre noul nod creat. O încercare de a parc
în acest moment va duce la intrarea programului -o buclă infinită
într.

Figura 5.4 Reprezentare grafică (prin 2 şi 3 am marcat operaţiile descrise mai sus)
Notă: head. în variabila
a) nod nou  – devine nodul de început al listei, adresa păstrată
b) nod head  – devine primul nod dehead
după , un nod normal al listei.
186 DIDACTICA PREDĂRII INFORMATICII

5.1 3.2 Inserarea unui nod-o listă


într simplu înlăn‑uită, înaintea unui
nod precizat printr
-o cheie
Presupunem că valoarea cheii memorate în nod estekey în data‑
. Să repre‑
membru
zentăm grafic ce ar trebui să facem în această situa‑ie. Prin nod curent
noduldinlistăcaresatisface condi‑
key == ia ( keyestedata‑membrudin
tempKey
nod, iar tempKey o variabilă locală). Deoarece parcurgerea listei simplu î
se face numai înainte, va trebui să avem tot timpul adresa nodului an
am determinat nodul înaintea căruia trebuie inserat noul nod, o
transformă în inserare nod după nod. Adresa nodului anterior‑ o vom păst
bila numită pNodAnterior, iar adresa nodului ce satisface condi‑ia o vom păs
variabila pNodCurent. O situa‑ie specială apare atunci când primul nod a
satisface condi‑ia de căutare. În acest caz suntem în situa‑ia descris
anterior  – „inserarea unui nod într‑o listă simplu înlăn‑uită înaintea pri
şi deci vom apela la metoda deja descrisă. În celelalte cazuri (presupu
nodul înaintea căruia să facem inserarea) avem nevoie de adresele nod
în pNodAnterior şi pNodCurent. Dacă păstrăm adresa noului nod în variabila
pTemp, în acest caz nu există opera‑ii critice (ne referim la ordinea de e
acestora) . Actualiză m
pNodAnterior‑>next cu pTemp ş i pTemp‑>next cu
pNodCurent.

Figura 5. Reprezentare grafică

Codul ar putea fi următorul (inserăm acest cod în cadrul unei


‑ func‑ii
nează 0 în caz de succes sau
1 în caz contrar):
STUC
R TURI DE DATE: LISTE, STIVE, COZI 187

...
MPI_Nod *pTemp, *pNodCurent, *pNodAnterior;
int m_key;
...
// Determinare nod. Acest cod poate fi plasat într-o funcţie
// ce va returna pNodAnterior şi pNodCurent
// Prototipul funcţiei poate fi
// int Find(MPI_Nod* pNodAnterior, MPI_Nod* pNodCurent)
pTemp = head;
pNodAnterior = head;
pNodCurent = NULL;
while (pTemp != NULL)
{
// Caut nodul ce satisface condiţia...
if (pTemp‑>key == m_key)
{
pNodCurent = pTemp;
break;
}
pNodAnterior = pTemp;
pTemp = pTemp‑>next;
}
// Sfârşit determinare nod

if (pNodCurent == NULL)
{
printf(“Nu exista cheia %d Lista nemodificata...”,
m_key);
return 1;
}
if (pNodCurent == head)
{
// Nodul se inserează la începutul listei.
// Se va apela funcţia care tratează acest caz.
return 0;
}
else
{
// Alocăm memorie pentru noul nod
pTemp = (MPI_Nod*)malloc(sizeof(MPI_Nod));
if (pTemp == NULL)
{
printf(“Nu pot aloca memorie pentru noul nod\n”;
return 1; // Se returnează un cod de eroare
}

// Iniţializări pentru nodul creat


pNodAnterior‑>next = pTemp;
pTemp‑>next = pNodCurent;
return 0; // Operaţie încheiată cu succes
}
18 DIDACTICA PREDĂRII INFORMATICII

5.1 3. Inserarea unui nod


-o listă
într simplu înlăn‑uită, după un nod
precizat printr
-o cheie
La fel ca mai sus, prin
nod curent în‑elegem nodul din listă care satisface co
key == m_key.
Cazul special ce se întâlneşte aici este acela când nodul ce sat
ultimul nod al listei. În acest caz, problema se transformă în „adăugare
o listă simplu înlăn‑uită”, care este tratată în subcapitolul 5.1 , cazul LS2.
În celelalte cazuri, această problemă se transformă conform situa‑‑ ie
pitolul 5.1 3.2, având în vedere următoarele observa‑ii: memorăm în variabi
pNodAnterior adresa nodului ce satisface condi‑ia de căutare şi în
pNodCurent
adresaurmătoruluinoddinlistă ,adică = pNodAnterior‑>next.În
pNodCurent
continuare apelăm la metoda descrisă în subcapitolul 5.1 3.2

5.1 4. Ştergerea unui nod dintr


-o listă simplu înlăn‑uită
Ştergereasepoaterealizaînmaimultemoduri,avândînvedereurmăto
S1. Ştergerea primului nod al unei liste simplu înlăn‑uite.
S2. Ştergerea unui nod precizat printr‑o cheie.
S3. Ştergerea ultimului nod al unei liste simplu înlăn‑uite.

Observaţii
Am eviden‑iat separat ştergerea primului, respectiv a ultimului
pentru simplul motiv că aceste opera‑ii conduc la modificarea val
head, respectiv
tail. Ştergerea unei liste simplu înlăn‑uite conduce de as
la modificarea valorii variabilelor
head şi tail.

Vom analiza fiecare situa‑ie în parte, punând în eviden‑ă opera‑iile


efectuate, precum şi ordinea lor. Opera‑ia comună tuturor cazurilor
‑ lu
rare este cea a eliberării memoriei alocate. Pentru fiecare func‑ie (o
C+de
+ alocaredememoriedinmemoria heapexistădefinităşifunc‑ia(operatorul
corespunzător de eliberare a memoriei ocupate.

Observaţie
În .NET, eliberarea memoriei alocate
heap este
în realizată deGarbage
către
Collector.

5.1 4.1 Ştergerea primului nod al unei liste simplu înlăn‑uite


Ştergereaprimuluinodpresupunereactualizarea valorii
head cuvaloarea
pointer
pointerului
head‑>next. Ordinea opera‑iilor este următoarea:
1 . Dacă valoarea pointerului
head esteNULL, atunci lista este vidă şi nu avem ce
şterge (opera‑ie terminată).
STRUCTURI DE DATE: LISTE, STIVE, COZI 189

2 . Dacă head=tail şi sunt diferite de


NULL ,atuncilistaareunsingurnodşivo
elibera memoria ocupată de acel nod, după care vom atribuiNULLpentru
valorea
pointerii
head i
ş tail opera‑
( ieterminată –încaz
 ) contrar,setrecela.)3(
3 . Memorăm adresa de început a listei într‑o variabilă temporară
pTemp . ,
4 . Atribuim pointerului
head valoarea pointerului
head‑>next.
5 . Eliberăm zona de memorie a cărei adresă sepTemp
află în.

Se observă că, dacă se execută direct


4), se pierde
( adresa zonei de memorie ce
trebuie eliberată.
În C/C++, operatorul folosit pentru eliberarea zonei de memorie d
operatorul folosit pentru alocarea acesteia. new (alocare
Pentrumemorie
operatoru
în heap), eliberarea memoriei se face folosind operatorul
delete , iar pentru‑ ope
ratorulmalloc de alocare de memorie heap înse foloseşte operatorul
free.

5.1 4.2 Ştergerea unui nod precizat printr


-o cheie
Ştergerea unui nod precizat printr‑o cheie (nodul nu este primul şi n
listă) presupune refacerea legăturilor dintre nodul precedent şi s
şters, precum şi eliberarea zonei de memorie alocate. Presupunem că l
următoarele variabile de memorie:
– pNodAnterior  – con‑ine adresa nodului precedent celui ce trebuie şt
– pNodCurent – con‑ine adresa nodului ce trebuie şters.
– pNodUrmator  – con‑ine adresa nodului succesor celui ce trebuie şte
ob‑ine astfel:

pNodUrmator = pNodCurent‑>next;

Cu aceste nota‑ii, ordinea opera‑iilor este următoarea:


1 . Se actualizează valoarea pointerului
pNodAnterior‑>next cu valoarea pointe

rului
pNodUrmator.
2 . Se eliberează zona de memorie dată de
pNodCurent .

Determinarea nodului curent se va face cu ajutorul unui cod a


descris la
căutarea unui nod folosind o cheie.

Observaţie
DacănodulcetrebuieştersesteprimulpNodCurent
nodallistei ( )atunci
= head ,
se aplică solu‑ia indicată în paragraful anterior.

5.1 4.3 Ştergerea ultimului nod al unei liste simplu înlăn‑uite


Această opera‑ie presupune următoarele ac‑iuni:
190 DIDACTICA PREDĂRII INFORMATICII

1 . Dacă lista este vidă, atunci nu avem ce şterge, opera‑ia fiind termina
2 . Determinarea penultimului nod al listei, a cărui adresă o vom păstr
pTemp.
3 . Eliberarea zonei de memorie a cărei adresă se.află în
tail
4 . Actualizarea valorii pointerului
tail cu valoarea variabilei
pTemp.
5 . Setarea pe a pointerului
NULL tail‑>next.

Observaţie
Aplicarea efectivă necesită de fiecare dată parcurgerea listei în t
pentru liste mari presupune un timp mai îndelungat.

Etapeledemaisusnutrateazăcazulcândlistaareexactunsingur
situa‑ie, înainte de
2) ar
etapa
trebui
( verificat dacă
head=tail şi sunt
diferite de
NULL.Încazafirmativ,seexecutăetapeledescriselaştergereaprimulu
De asemenea, trebuie verificat mereu dacă lista nu este vidă.

Observaţii
În cazul în care folosim
POO pentru crearea unei liste simplu înlăn‑uite, d
proprietateCount încadrulclasei,proprietatecevacon‑inenumărulnodu
cadrullistei.Proprietatea
Count vafiactualizatăîncadrulopera‑iilordeadău
inserareşistergeredenoduri.Cuajutorulacesteiproprietă‑idet
estevidă ,
Count=0 are
, unsingurnod, Count=1sau
, maimultenoduri,
Count>1.

Determinarea penultimului nod al listei se face prin testar


data‑membru
next anoduluicuvaloareavariabilei
tail.Secven‑adecodpoatefi:

...
pTemp = head;
MPI_Nod *pNod; // Va păstra adresa penultimului nod din lis‑
tă.
pNod = null; // Iniţializare
while(pTemp != null)
{
if (pTemp->next == tail)
{
pNod = pTemp;
break;
}
pTemp = pTemp->next;
}
...
STRUCTURI DE DATE: LISTE, STIVE, COZI 1 91

Observaţie
Amputearenun‑aladeclarareavariabilei pNod.Laieşirea
locale
dinbucla
while,
variabilapTemp va con‑ine adresa penultimului nod al listei. În acest
ce determină penultimul nod al listei ar putea avea următorul cod

MPI_Nod* PenultimNod()
{
// Presupunem că head şi tail sunt variabile globale
// pentru a putea fi accesate în cadrul funcţiei
MPI_Nod *pTemp;
pTemp = head;
if (head == tail) // Lista este vidă sau conţine
// un singur nod.
return null; // Nu există un penultim nod.
while (pTemp != null)
{
if (pTemp‑>next == tail)
break;
pTemp = pTemp‑>next;
}
return pTemp;
}

5.1 4. Ştergerea unei liste simplu înlăn‑uite


Ştergerea unei liste simplu înlăn‑uite se poate face prin aplicarea
de ştergere a primului nod din listă. Se repetă acest procedeu până câ
pointerului
headdevineNULL. Înfinal,
headşi tailtrebuiesăaibăvaloarea
null.

5.1 2 Liste circulare simplu înlănţuite


Lista liniară simplu înlăn‑uită pentru care valoarea tail ‑>pointerului
next este
egală cu valoarea pointerului head (ultimul nod al listei punctează spre primu
al listei) se numeş listăte
circulară simplu înlănţuită.
Din defini‑ia listei circulare simplu înlăn‑uite se constată că toa
cumva echivalente: fiecare nod are un succesor şi în acelaşi timp est
altui nod. Într‑o astfel de listăcapete. nu mai Gestiunea
există nodurilorlistei ‑ c
lare simplu înlăn‑uite se realizează cu variabile ce punctează spre un
ajutorul unei
nod oarecare al listei. Pentru cele ce urmează vom nota această variabilă head, cu
definită astfel:

MPI_Nod *head;
192 DIDACTICA PREDĂRII INFORMATICII

Opera‑iile posibile asupra acestui tip de listă sunt:


1 . Adaugă nod.
2 . Şterge nod.
3 . Şterge listă.
4 . Determinare nod.

5.1 2 . Crearea unei liste circulare simplu înlăn‑uite


Crearea listei circulare simplu înlăn‑uite se face asemănător cazu
înlăn‑uite. Pentru început, variabila
head va avea valoareaNULL. Nodurile care se
voradăugavorfiplasatedupănodulacăruiadresăseaflăhead memorată
Variabila
. în
head va men‑ine mereu adresa ultimului nod adăugat în listă. Etapele c
circulare înlăn‑uite sunt:
1. Alocarea zonei de memorie pentru nodul care se va crea, adresa
pTemp ; est
2. Noul nod va fi plasat după nodul gestionat
head. În aceste
de condi‑ii vom avea
atribuirile:

pTemp‑>next= head‑>next;
head‑>next = pTemp.

Un cod (par‑ial) poate arăta astfel:

// Alocare în memoria heap a noului nod


pTemp = (MPI_Nod*)malloc(sizeof(MPI_Nod));
if (pTemp == NULL)
{ printf(“Memorie insuficienta. Alocare esuata...”);
}
else
{
if (head == NULL) // Lista vidă
{
head = pTemp;
head->next = pTemp;
// iniţializări informaţii nod
...
}
else
{
// Inserare după nodul identificat de head
pTemp‑>next = head‑>next;
head‑>next= pTemp;
}
}
STRUCTURI DE DATE: LISTE, STIVE, COZI 193

Codul prezentat mai sus ia în considerare cele două aspecte disc


uneilistesimpluînlăn‑uite:listaestevidăşisecreeazăprimulnodsa
cel pu‑in un nod şi se adaugă noul nod la sfârşitul listei. Codul nu sur
opera‑iile de completare a informa‑iilor suplimentare pentru nodu

5.1 2 . Inserarea unui nod într


-o listă circulară simplu înlăn‑uită
Inserarea unui nod într‑o listă circulară poate fi făcută după nodul id
variabila
head sau după un nod identificatcheie printr‑
. În cadrul
o acestor ‑ opera
‑ii de inserare trebuie avut în vedere faptul că ordinea efectuări
critică. În caz contrar, se poate produce o distrugereheap a listei,
alocată memori
este pierdută de către program, au loc încercări de a accesa zone‑ de memor
jate etc. Inserarea unui nod după un alt nod precizat, a că rui adr
pNodCurent, de exemplu, se face ca mai sus (rolul variabilei
head este jucat de
pNodCurent). În cazul inserării unui nod înaintea altui nod precizat pr
înprocesuldeidentificareanoduluiînainteacăruiasefaceinsera
să memorăm şi adresa nodului anterior. Dacă am determinat această ‑ adres
lui anterior), problema se transformăinserareîntr‑ o după un nod cunoscut.
de nod
Presupunem că am ob‑inut adresa nodului după care vom insera, adresă păs
variabila
pNod. Codul de inserare este:

// Alocare în memoria heap a noului nod


pTemp = (MPI_Nod*)malloc(sizeof(MPI_Nod));
if (pTemp == NULL)
{ printf(“Memorie insuficienta. Alocare esuata...”);
}
else
{
// Inserare după nodul identificat de head
// Actualizare informaţii nod
pTemp‑>next = pNod‑>next;
pNod‑>next= pTemp;
}
}

5.1 2 3. Ştergerea unui nod dintr


-o listă circulară simplu înlăn‑uită
Această problemă coincide cu problema ştergerii unui nod care are suc
succesorul altui nod dintr‑o listă simplu înlăn‑uită.

5.1 2 4. Parcurgerea unei liste circulare simplu înlăn‑uite


Algoritmul de parcurgere a listei este asemănător celui de la lis
înlăn‑uite, trecerea de la un nod la altul realizându‑se folosind re
194 DIDACTICA PREDĂRII INFORMATICII

există între noduri. Ultimul nod ce trebuie afişat îndeplineşte condi


denextesteegalăcuadresanoduluideundeamînceputparcurgerealiste
că în variabila
head avem adresa unui nod al listei, atunci codul este ur

...
MPI_Nod *pTemp = head;
// Ar trebui verificat că lista are noduri.
// if (head == NULL) return;
do
{
// Afişare informaţii nod. Calcule.
pTemp = pTemp->next;
} while (pTemp != head);
...

5.1 3 . Liste liniare dublu înlănţuite


Listele liniare simplu înlăn‑uite, precum şi cele circulare discuta
marele dezavantaj că rela‑ia dintre noduri este ori de preceden‑ă, or
Cu alte cuvinte, parcurgerea acestor liste se face într‑o singură di
putându‑seidentificacelmultunvecin Lista al unui
dublu nod. sedefineşte
înlănţuită
înacelaşimodcaolistăsimpluînlăn‑uită,cuobserva‑iacăîntrenoduriexis
desuccesorşidepreceden‑ăşiastfelputemparcurge(itera)listadenod
direc‑ii.
Tipul unui nod pentru o listă dublu înlăn‑uită se poate defini astfe

typedef struct _tagNod {


//Declaraţii. Informaţii utile conţinute de nod.
struct _tagNod *previous;
struct _tagNod *next;
} MPI_Nod;

Pointerul
previousvacon‑ineadresanoduluiprecedentdinlistăPrimu .
listă va avea
previous = null, iar ultimul nod din listă va avea
next = null.
Pentru a gestiona o listă liniară dublu înlăn‑uită, vom utiliza
head şi varia
tail ca la listele simplu înlăn‑uite. Aceste variabile
punctează spre nodurile de
început şi de sfârşit ale listei, noduri ce se caracterizează prin următ
• Primul nod al listei nu are precedent (
head‑>previous = null );
• Ultimul nod al listei nu are succesor=( NULL).
tail‑>next
STRUCTURI DE DATE: LISTE, STIVE, COZI 195

Figura 5.6 Listă liniară dublu înlănţuită

Notă: Săge‑ile spre dreapta indică rela‑ia de succesor, iar cele spre stânga rela‑ia d

În legătură cu listele dublu înlăn‑uite se pot defini aceleaşi oper


listelor simplu înlăn‑uite:
1 . Creare listă dublu înlăn‑uită.
2 . Acces la un nod al listei.
3 . Adăugare nod (la sfârşitul listei).
4 . Inserare nod într‑o listă dublu– înainte
înlăn‑uită
sau  după un nod precizat.
5 . Ştergere nod din listă.
6 . Ştergere listă.

5.1 3 . Crearea unei liste dublu înlăn‑uite


În momentul creării unei liste dublu înlăn‑uite distingem două situa
a) Lista este vidă şi se adaugă primul nod la listă.
b) Lista con‑ine noduri,
adăugarea făcându‑se
după ultimul nod (la sfârşitul listei).

Pentrucazula)ordinea
, opera‑iiloresteurmătoarease( reiauopera‑i
simpluînlăn‑uiteşisemodificăpentruafifunc‑ionalepentrulisteledu

LD1. Seini‑ializeazăpointerii
head şi tail cuvaloarea
NULL,deoarecelaînceput
lista este vidă.
head = NULL;
tail = NULL;
LD2. Se rezervă o zonă de memorie în memoria
heap pentru nodul curent.
LD3. Se încarcă nodul curent cu informa‑iile suplimentare.
LD4. Se atribuie pointerilor
head şi tail adresa din memoria
heap a nodului
curent.Pointerii
head şi tailauaceeaşivaloareşidacălistaeste ‑ vidă(va
rea NULL) sau are un singur nod.
LD5. Se atribuie valoarea
NULL pointerului
head‑>next.
LD6. Se atribuie valoarea
NULL pointerului
head‑>previous.
196 DIDACTICA PREDĂRII INFORMATICII

Codul ar putea arăta astfel:

...
// LD1.
head = NULL;
tail = NULL;
// LD2.
pTemp = (MPI_Nod*)malloc(sizeof(MPI_Nod));
if (pTemp == NULL)
{
printf (“Memorie insuficienta la crearea nodului...\n”);
exit(1);
}
// LD3.
// Acţiuni specifice de iniţializare a datelor membru
// din nodul listei.
// LD4.
head = pTemp;
tail = pTemp;
// LD5.
head->next = NULL;
head->previous = NULL;

Cazulb)presupuneadăugareanoduluilasfârşitullistei.Opera‑ ‑ iil
toare cu cele de la liste simplu înlăn‑uite, singura diferen‑ă fiind ace
actualizăm pointerul
previous al nodului creat cu valoarea
taildată
. de

Ordinea opera‑iilor este următoarea:


LDA1. Serezervăozonădememorieînmemoria heappentrunodulcurent,
pTemp.
LDA2. Se încarcă nodul curent cu informa‑iile suplimentare.
LDA3 . Seatribuiepointerului
tail‑>next adresadinmemoria
heapanoduluicreat.
LDA4. Se atribuie pointerului
pTemp‑>previous valoareatail
lui.
LDA5. Se atribuie pointerului
tail adresa din memoria
heap a nodului creat,
tail=pTemp.
LDA6. Se atribuie valoarea
NULL pointerului
tail‑>next.

Ordinea opera‑iilor care urmează este strictă:


1. tail‑>next ia valoarea lui;
pTemp
2. pTemp‑>previous din nodul alocat ia valoarea variabilei
tail.
3. Noulnoddevineultimulnod allistei,
tail seschimbăcorespunzătail=pTemp
tor, .
4. pTemp‑>next din ultimul nod adăugat iaNULL
valoarea
.
STRUCTURI DE DATE: LISTE, STIVE, COZI 197

5.1 3 2. Accesul la un nod al unei liste dublu înlăn‑uite


Deoareceavemdefinitedouărela‑iideordine,listapoatefiparcursăîn
de la început spre sfârşit (se va folosi nextpointerul
) sau de la sfârşit spre început
(se va folosi pointerul
previous). Metoda a fost descrisă la liste simplu înlăn‑u
Nu o mai reluăm aici.

5.1 3 . Inserarea unui nod într


-o listă dublu înlăn‑uită
Distingem următoarele situa‑ii:
a) Inserare la începutul listei.
b) Inserare după sau înaintea unui nod precizat, nod care nu este capăt
c) Inserare la sfârşitul listei.

Observaţie
Inserarea la sfârşitul listei, adică opera‑ia (c) de mai sus, coincide cu
adăugare a unui nod la sfârşitul listei, opera‑ie deja descrisă.

Inserarea la începutul listei


Situa‑iaestefoarteasemănătoarecuceaîntâlnitălalistesimpluîn
care se execută în plus sunt cele referitoare la stabilirea‑ corect
tru pointerul ce implementează rela‑iaprevious
de preceden‑
. ă,
Reluăm ceea ce am descris pentru listele simplu înlăn‑uite.
Adresa primului nod al listei ( dacă nu este vidă ) se pă strează în
pInceputLista . Opera‑iile care trebuie efectuate, precum şi ordinea
descrise în continuare:
1 . Alocăm memorie pentru noul nod; adresa se
– deob‑
exemplu 
ine  – în pTemp.
2 . Pointerul
pTemp‑>nextvapăstraadresaurmătoruluinod,careestedefap
prim nod al listei, deci valoarea
head: lui

pTemp‑>next= head;

3 . Pointerul
head‑>previous va păstra adresa noului nod creat,
pTemp .
4 . Pointerul
head va primi ca valoare adresa noului nod: creat,
pTemp

head = pTemp;

5 . Pointerul
head‑>previous va primi valoarea
NULL (este noul nod de început
al listei).

Invităm cititorul să scrie singur codul complet pentru această fun


198 DIDACTICA PREDĂRII INFORMATICII

Inserarea după sau înaintea unui nod precizat, nod care nu este
listei
Vom descrie numai opera‑ia de inserare a unui nod înaintea unui n
Presupunem că dispunem de următoarele informa‑ii:
• adresa nodului precedent (
pNodAnterior );
• adresa nodului succesor (
pNodUrmator );
• adresa noului nod ce va fi inserat între cele două noduri.

Înacestcaz,codulpentrudeterminareacelordouăadreseestema
cădinnodulcaresatisfacecondi‑iacerutăputemob‑ineadresanodulu
ajutorul pointerului
previous). Adresele nodului anterior şi nodului următ
ob‑inprintr‑oprocedurăasemănătoarecuceadescrisălalistesimpluînlăn
de a face inserarea, situa‑ia legăturilor (valorile
next şi previous
pointerilor
) din
cele două noduri sunt:

pNodAnterior‑>next = pNodUrmator; // succesor


pNodUrmator‑>previous = pNodAnterior; // precedent

Ordinea opera‑iilor pentru inserare este:


1 . Alocarea memoriei pentru noul nod; adresa se păstrează
pTemp (presupunem
în
că ac‑iunea de alocare s‑a desfăşurat cu succes).
2 . Stabilirea preceden‑ei pentru noul nod:
pTemp‑>previous = pNodAnterior;
3 . Stabilirea nodului succesor pentru noul nod:
pTemp‑>next = pNodSuccesor;
4 . Stabilirea nodului succesor pentru nodul anterior:
pNodAnterior‑>next = pTemp;
5 . Stabilirea nodului precedent pentru nodul succesor:
pNodUrmator‑>previous = pTemp;

Observaţie
Acestcodpoate fi optimizat,variantadefa‑ăfiindpreferatădoar ‑ dinm
tice. Inserarea după un nod precizat se tratează exact ca în cazul ante
dispunem de adresele nodului anterior şi nodului succesor. Difer
moduldedeterminareacelordouăadrese.Maiîntâiseob‑ineadresanodu
i
ş apoi, cu ajutorul pointerului
next din nodul anterior, ob‑inem adresa nod
următor.
STRUCTURI DE DATE: LISTE, STIVE, COZI 19

5.1 3 4. Ştergerea unui nod dintr


-o listă dublu înlăn‑uită
Dupămoduldeamplasareanoduluicaretrebuieşters,distingemurmăto
1 . Ştergerea primului nod al listei.
2 . Ştergerea ultimului nod al listei.
3 . Ştergerea unui nod care nu este capăt al listei.

Ştergerea primului nod al listei


Înaintedeaefectuaştergereaacestuinodtrebuiesăneasigurămcăamp
nodului următor. Primul nod al listei este dat de valoarea
head. pointer
În acest caz, opera‑ia de ştergere poate fi descrisă astfel:
1 . Dacă lista este vidă, opera‑ia este terminată.
2 . Memorăm adresa nodului următor:
pTemp = head‑>next;
3 . Eliberăm memoria punctată de
head.
4 . Actualizăm valoarea lui
head cupTemp (nodul următor devine primul nod);
5 . Noul nod de început al listei nu are preceden‑i:
head‑>previous = NULL;

Observaţii
1. Ce se întâmplă dacă lista are exact un singur element? Func‑ionea
etapele de mai sus? Analizând această situa‑ie, constatăm ‑ că valoa
lui pInceputLista va fi NULL în etapa 4), ( pentru că valoarea pointerulu
pTemp este NULL.
2. Valoareapointerului pSfarsitListaestecorectă?Deoarecelistadevinev
valoarea acestui pointer ar NULLtrebui
. Conform să fie
opera‑iilor de mai sus,
aşa ceva nu se întâmplă. Mai mult, 5) vom
în ( ob‑ine o eroare, deoarece ‑ încer
căm să accesăm o zonă de memorie interzisă (adresa 0x00000000).
3. Ce trebuie făcut? Modifică 2) astfel:
m(
Dacă pInceputLista‑>pElementUrmator = NULL, atunci eliberăm zona
de memorie a cărei adresă este memorată head, după
în care setăm peNULL
pointerii ce men‑in informa‑ia despre capetele head şi tail)
listei
. Opera‑
( ia
se consideră terminată şi nu se mai execută celelalte etape.

Ştergerea ultimului nod al unei liste dublu înlăn‑uite


Dacălistaareunsingurnod,opera‑iacoincidecuceaatergerii
ş primuluin
Decivompresupunecălistaarecelpu‑indouănoduri.Înacestcaz,ordineaop
poate fi:
1. Memorăm adresa nodului precedent în
pNodPrecedent .
pNodPrecedent = tail‑>previous;
20 DIDACTICA PREDĂRII INFORMATICII

2. Eliberăm zona de memorie „punctată ” de


tail.
3. Reactualizămvaloareapointerului
tail cuvaloareapointerului
pNodPrecedent.
4. Ultimul nod al listei nu are succesor:
tail‑>next = NULL.

Ştergerea unui nod neterminal al listei


Datorită faptului că nodul nu este terminal (lista are cel pu‑in trei
necesare ştergerii acestui nod, memorat în, sunt:
pTemp variabila
1 . Memorarea adresei nodului precedent în :
pNodPrecedent
pNodPrecedent = pTemp‑>previous;

2 . Memorarea adresei nodului urmă tor în :


pNodUrmator
pNodUrmator = pTemp‑>next;

3 . Eliberarea zonei de memorie a cărei adresă


pTempeste
. în
4 . Refacere legături:
• Legătura cu nodul precedent:
pNodUrmator‑>previous = pNodPrecedent;

• Legătura cu nodul următor:


pNodPrecedent‑>next = pNodUrmator;

5.1 3 5. Ştergerea unei liste dublu înlăn‑uite


Pentru a şterge o listă dublu înlăn‑uită, se poate aplica în mod iterati
ştergere a primului nod (ultimului nod) al listei până când lista dev
simplucarerealizeazăacelaşilucru(numairefacelegăturiledupăşterge
poate fi:

...
MPI_NodLD *pTemp1, *pTemp;
pTemp = head;
while (pTemp != NULL)
{
pTemp1 = pTemp‑>next;
delete pTemp; // eliberare memorie ocupată
pTemp = pTemp1;
}
...
STRUCTURI DE DATE: LISTE, STIVE, COZI 1 02

Exerciţiu
Rescrie‑i codul de mai sus fără a folosi variabila temporară
pTemp1 .

Observaţie
Din punct de vedere metodic, profesorul trebuie să îndrume elevul în
acesta să facă o distinc‑ie clară între
definiţia formală a unei structuri de date,
reprezentarea sa grafică (vizuală) şi diversele tipuri de implementare.

5.2 Stive

O stivă este o listă simplu înlăn‑uită gestionată conform principiului


Last In LIF
First Out), adică ultimul nod pus în stivă este primul nod scos din stivă.
Opera‑iile cele mai importante care se definesc asupra unei stiv
1 . Adaugă element în stivă
push( );
2 . Scoate un element din pop stivă
); (
3 . Şterge stiva ( ).
clear

Primele două opera‑ii afectează


vârful stivei.
Pentruaimplementaostivăprintr‑olistăsimpluînlăn‑uităva , trebuis
baza şi vârful stivei cu capetele listei simplu înlăn‑uite. Distingem d
ST1. Nodulsprecarepuncteazăvariabila
head estebazastivei,iarnodulsprec
punctează variabila
tail este vârful stivei;
ST2. Nodul spre care punctează variabila
head este vârful stivei, iar nodul
care punctează variabila
tail este baza stivei.

Cazul ST1. Func‑iile


push şi pop se identifică cu opera‑iile de adăugare a u
nod la sfârşitul listei simplu înlăn‑uite, respectiv cu ştergerea ul
liste simplu înlăn‑uite. Dacă revenim la opera‑ia de ştergere a ultimul
liste simplu înlăn‑uite, atunci constată pop este
m că func‑
ineficientă
ia în acest ca
deoarece nu avem acces direct la penultimul nod al listei simplu î
Cazul ST2. Func‑iile
push şi pop se identifică cu opera‑iile de adăugare a u
nod la începutul listei simplu înlăn‑uite, respectiv de ştergere a pr
liste simplu înlăn‑uite. După cum am observat, aceste opera‑ii efectuat
listeiserealizeazăfărăafinecesarăparcurgerealisteisimpluînlăn‑uit
dacăseimplementeazăostivăfolosindlistesimpluînlăn‑uite,estedepr
ST2. În ambele situa‑ii, func‑ ia   – şterge stiva 
clear – se implementează la fel ca în
cazul ştergerii unei liste simplu înlăn‑uite.
20 DIDACTICA PREDĂRII INFORMATICII

Observaţii
Ostivăcareareunnumărmaximcunoscutdeelementepoatefiimplemen
un vector. De exemplu, o stivă de întregi se defineşte astfel:

int stiva[100],

caz în care func‑iile


push, pop şi clear au o cu totul altă implementare. În ace
caz, numărul maxim de elemente ale stivei va fi0 1(de la 0 la 9 ). Va exista un
indice, nIndiceStiva, prin care vom gestiona vârful stivei. În general, p
unuielementpestivăvaînsemnasăseverificedacănusedepăşeştevaloare
a indiceluiîn (9  acest caz), care este incrementarea valorii indicelu
actualizarea elementului stivei. Eliminarea unui element ‑ din s
luareavaloriicurentedatedeindicelestivei,urmatădedecrement
În cazul func‑iei
pop se va verifica faptul că indicele nu trebuie să devină n
Opera‑ia de ştergere a stivei este echivalentă cu setarea pe 0 a indi

5.3 Cozi

O listă simplu înlăn‑uită gestionată după principiul FIFO ( Out), adică


First In First
primul nod introdus în listă este şi primul nod care va fi scos din lis
coadă.Celedouăcapetealelisteisimpluînlăn‑uitecareimplementeaz
şicapetelecozii.Opera‑iilecaresedefinescasuprauneicozisuntacel
CO1. Adaugă element în coadă.
CO2. Scoate element din coadă.
CO3. Şterge coada.

Implementareaacestorfunc‑iiesteaceeaşicuimplementareafunc‑i
a unui nod la sfârşitul unei liste simplu înlăn‑uite, respectiv de şt
de la începutul aceleiaşi liste.

Observaţie
Implementarea unei cozi folosind un tablou unidimensional (stati
acest caz ineficientă. De exemplu, la fiecare extragere a unui element
elementele tabloului trebuie rearanjate (mutate spre stânga
STRUCTURI DE DATE: LISTE, STIVE, COZI 203

5.4 Baze de date

Bazele de date sunt tratate în manualele pentru liceu urmând ‑ a


lizăriiunuimediudedezvoltarespecificunuianumittipdebazededa
Visual Fox. Acest mediu de dezvoltare permite atât crearea bazei
realizarea de aplica‑ii ce folosesc acele baze utilizând un limbaj
noastră este să prezentăm posibilită‑ile de dezvoltare a unor aplica
bazededate,folosindplatforma.NETFrameworkşilimbajulC#.Exemplelepe
le furnizăm au în vedere serverul de baze de date SQL Server Express ‑ Edit
voltat de Microsoft. În liceu există cursuri op‑ionale ce tratează ‑ lim
forma .NET Framework. Nu vom insista asupra utilizării limbajului de d
bazeidedate,DDL( Data Definition Language)şi, niciasupraDML( Data Manipulation
Language). Vom supune aten‑iei cititorului acea partea din .NET Framewor
NET, ce permite să lucrăm cu baze de date. ADO.NET include furnizori de date
pentru conectarea la o bază de date, executarea de comenzi şi regăsirea

Observaţie
Componente principale pentru .NET:
• CLR – Common Language Runtime;
• BCL/FCL – Base Class Library/ Framework Class Library.
.NET acceptă mai multe limbaje de programare (F# – Fortran, VB.NET – Visual
Basic pentru .NET etc.), dintre care cel mai cunoscut şi folosit este C#.

„The Common Language Runtime  ( CLR) , the virtual machine component


of  Microsoft’s 
.NET framework, manages the execution of .NET programs.‑ A pro
cessknownjust-
as  in-timecompilation 
convertscompiledcodeintomachine ‑ ins
tions which the computer’s then CPU  executes.
  The CLR provides additional
services including 
memory management, type   safety,
exception
  handling, garbage
collection, security thread
and  management. All programs written for th
framework, regardless programming
of  language, are executed by the CLR. All
versions of the .NET framework include CLR” (https:/ en.wikipedia.org/w
Common_Language_Runtime).

5.4 1 Furnizori ADO.NET


Fiecare dezvoltator de servere de baze de date trebuie să impleme
clase pentru a permite accesul la baza de date folosind .NET Framewor
assemblies,cecon‑ineasemeneaimplementări,formeazăceeacesenumeştefurn
ADO.NET.PentruSQLServer,claselesuntprefixatecuSQL,pentruMySQLserver
204 DIDACTICA PREDĂRII INFORMATICII

claselesuntprefixatecuMySQL,iarpentruFirebirdDatabase,clasele
cu Fb etc.
Exemplele ce urmează au la bază următoarele două tabele ce se creează în
de date numită Blogs.

CREATE TABLE [dbo].[Posts] (


[PostId] int IDENTITY(1,1) NOT NULL,
[Title] nvarchar(max) NOT NULL
);
GO
CREATE TABLE [dbo].[Comments] (
[CommentId] int IDENTITY(1,1) NOT NULL,
[CommentText] nvarchar(max) NOT NULL,
[PostPostId] int NOT NULL
);
GO
‑‑ Creare cheie primară [PostId] în tabela ‘Posts’
ALTER TABLE [dbo].[Posts]
ADD CONSTRAINT [PK_Posts]
PRIMARY KEY CLUSTERED ([PostId] ASC);
GO
‑‑ Creare cheie primară [CommentId] în tabela ‘Comments’
ALTER TABLE [dbo].[Comments]
ADD CONSTRAINT [PK_Comments]
PRIMARY KEY CLUSTERED ([CommentId] ASC);
GO

‑‑ Creare cheie străină [PostPostId] în tabela ‘Comments’


ALTER TABLE [dbo].[Comments]
ADD CONSTRAINT [FK_PostComment]
FOREIGN KEY ([PostPostId])
REFERENCES [dbo].[Posts]
([PostId])
ON DELETE NO ACTION ON UPDATE NO ACTION;
GO

Observaţii
Cheile primare, de tip int
IDENTITY(1,1) , din cele două tabele sunt create
serverul bazei de date şi, ca atare, nu vom furniza valori pentru aces
opera‑iilor de adăugare de înregistrări.
Între cele două tabele există rela‑ia de „unuone-to-many)
la mai multe”
, iar unei
(
înregistrări din tabela Posts îi corespund zero sau mai multe înregi
Comments.
STRUCTURI DE DATE: LISTE, STIVE, COZI 205

5.4 2 Conectarea la baza de date


Conectarealabazadedateserealizeazăprininstan‑iereaclaseiSql
zândînconstructorulclaseistring‑ulpentruconexiuneurmat
Open() . deapel
string connectionString = @”Data Source=.\SQLEXPRESS; Initial
Catalogue=Blogs; Integrated Security=SSPI”;
SqlConnection connection = new SqlConnection(connectionString);
connection.Open();

În codul de mai sus se specifică drept server bază de date SQL Express, b
date are numele Blogs, iar autentificarea folosită este cea dată de
Open()realizeazăconexiuneacubazadedate,ceeaceînseamnăcăputemfolositab
procedurilecatalogate,
view‑urileetc.cesuntdefiniteînbazadedate.Închider‑
xiuniilabazadedateserealizeazăprin metoda
Close() peobiectul
connection:

connection.Close();

5.4 3 Execuţia comenzilor


Comenzilerealizateasuprabazeidedatepotfipentruinserareadă ( ugare)INSE
(
actualizareUPDATE)
( tergere
ş, DELETE)
( regă
, sireSELECT)
( înregistrăriîn/dintabele.
Pentru execu‑ia acestor opera‑ii va trebui să folosim un obiect de tip
SqlCommand,
pecarevomapelametodeleExecuteNonQuery()sauExecuteReader()încazul
regăsirii de informa‑ii din baza de date. Vom exemplifica fiecare opera‑ie

5.4 3 1. Adăugarea înregistrărilor


Pentru a adăuga înregistrări în tabele se foloseş
SQL,te comanda
INSERT INTO.
Metoda pentru adăugarea de înregistrări în tabela Posts poate avea

public void InsertIntoPosts(string connectionString, string


title)
{
string query = “Insert Into dbo.Posts (Title) Values(@Title)”;
using (SqlConnection connection = new SqlConnection(connection
String))
using(SqlCommand cmd = new SqlCommand(query, connection))
{
cmd.Parameters.Add(“@Title”, SqlDbType.NVarChar, 4000).
Value = title;
connection.Open();
cmd.ExecuteNonQuery();
connection.Close();
}
}
206 DIDACTICA PREDĂRII INFORMATICII

AdăugareadeînregistrăriîntabelaCommentspresupuneexisten‑aun
întabelaPosts(rela‑iadeunu‑la‑mai‑multe)Metoda
. pentruadăugareau
înregistrări este furnizată în continuare.

public void InsertIntoComments(string connectionString, int


postId, string commentText)
{
string query = “Insert Into Comments(CommentText, PostPostID) “ +
“Values(@CommentText, @PostId)”;
using (SqlConnection connection = new
SqlConnection(connectionString))
using(SqlCommand cmd = new SqlCommand(query, connection))
{
cmd.Parameters.Add(“@CommentText”, SqlDbType.NVarChar,
4000).Value = commentText;
cmd.Parameters.Add(“@PostId”, SqlDbType.int).Value = postId;
connection.Open();
cmd.ExecuteNonQuery();
connection.Close();
}
}

Observaţie
Codul de mai sus face presupunerea că există în tabela Posts înregis
PostId egal cu cel furnizat în parametrul metodei.

5.4 3 2. Actualizarea înregistrărilor


Actualizarea/ştergerea înregistrărilor dintr‑o tabelă presupun def
mul‑imea înregistrărilor din tabela respectivă, filtru specificat
WHERE a
comenzilor
SQL UPDATE sauDELETE. Vom crea o metodă ce are ca scop modifica

rea valorii coloanei
CommentText din tabela Comments pentru o cheie speci
CommentId.

public void UpdateComments(string connectionString, int


commentId, string newText)
{
string query = “Update Comments set CommentText = @p1
Where commentId = @p2)”;
using (SqlConnection connection = new SqlConnection
(connectionString))
using (SqlCommand cmd = new SqlCommand(query, connection))
STUC
R TURI DE DATE: LISTE, STIVE, COZI 7 02

{
cmd.Parameters.Add(“@p1”, SqlDbType.NVarChar, 4000).Value
= newText;
cmd.Parameters.Add(“@p2”, SqlDbType.int).Value = commentId;
connection.Open();
cmd.ExecuteNonQuery();
connection.Close();
}
}

Observaţii
Metoda UpdateComments de mai sus diferă de metodele InsertIn
InsertIntoComments numai prin con‑ului
string- inutul
query. Cele trei metode‑ pre
zintă o parte comună de cod ce se execută după ce un obiect de tipa
SqlCommand
fost creat(Open(), ExecuteNonQuery() şi Close()).

5.4 Regăsirea informaţiilor


Regăsireainforma‑iilordinbazadedatepresupuneexecu‑iauneicomenz
SELECT.Scenariulpecareîlavemînvedereesteaceladearegăsitoateî
din Comments ce ‑in de o anumită înregistrare din Posts, înregistrare
baza cheii primare. Metoda este descrisă în continuare.

public void PostComments(string connectionString, int postId)


{
string query = “SELECT p.PostId, p.Title, c.CommentText” +
“From Posts as p, Comments as c “ +
“WHERE p.PostId = @p1”;
using (SqlConnection connection = new
SqlConnection(connectionString))
using (SqlCommand cmd = new SqlCommand(query, connection))
{
cmd.Parameters.Add(“@p1”, SqlDbType.Int).Value = postId;
connection.Open();
SqlDatareader reader = cmd.ExecuteReader();
bool firstPost = false;
while(reader.Read())
{
if (!firstPost)
{
Console.WriteLine(“PostId = {0}, Title = {1}”,
reder.GetInt(0), reader.GetString(1));
firstPost = true;
}
208 DIDACTICA PREDĂRII INFORMATICII

Console.WriteLine(“\tCommentText = {0}”, reader.


GetString(2));
}
}
connection.Close();
}

Metoda de mai sus afişează rezultatul pe ecran. În cadrul metodelo


ainforma‑iilorfolosimunobiect detip ,cereprezintăuncursorce
SqlDataReader
poatefiparcursnumaiînainte.
SqlDataReader expuneomul‑imedemetodedetip
Get.. pentru a extrage valorile din obiectul. Pentru aceste metode
SqlDataReader
Get.. am folosit prototipul în care specificăm drept parametru indexu
înregistrarea con‑inută în cursor. Prima coloană are indexul zero.
Capitolul 6

Teoria grafurilor şi a arborilor

6.1 Grafuri şi arbori


Înteoriagrafurilorsedefinescno‑iuni,sedemonstreazăproprietă ‑ ‑i,s
lită‑i de memorare şi algoritmi specifici pentru prelucrarea inform
reprezentatecuajutoruluneimul‑imidenoduriconectateprintr
sau arce. Înliceu se studiază grafurile neorientate şi grafurile orientate.
Vomamintiacumcâtevano‑iunifundamentaledinteoriagrafurilo
se mai pot consulta [CLR ], [CŞ ], [IP ], [K1 ], [L ], [MM ], [W2 ].
Un graf neorientat este o pereche ordonată de mul‑imi, notată
G =(X, U), unde
X = {x | x ∈ X},estemul‑imeanodurilor sau vârfurilor, U iar
= {[x, y]| x,
y ∈ X}, mul‑imea muchiilor (perechi neordonate [x,dey]noduri,
= [y, x]) .
Un graf orientat este o pereche ordonată de mul‑imi, G =notată
(X, U), unde
X = {x | x ∈ X} este mul‑imea nodurilor sauvârfurilor, U iar
= {(x, y) |
x, y ∈ X}, mul‑imea arcelor (perechi ordonate de(x, noduri,
y) ≠ (y, x)) .
Un nod/vârf poate fi reprezentat în plan printr‑un punct (cerc etc
numerotat, o muchie, printr‑un segment de dreaptă, iar un arc poate fi rep
în plan printr‑o săgeată direc‑ionată.

Definiţii:
– adiacenţă = proprietatea a două noduri de a fi unite prin muchie/ a
[x, y] ∈ U sau (x, y) ∈ U, spunem că nodurile
x şi y sunt adiacente;
– incidenţă = proprietatea unei muchii sau a unui arc de a uni două nodu
[x, y] ∈ U, spunem că muchia este incidentă cu nodurile
x şi y (analog pen

tru arcul(x, y)).

Într‑un graf neorientat:


– gradul nodului x, notat cu
d(x) = numărul de muchii incidente cuxnodul
;
– nod izolat = nod cu gradul 0; d(x) = 0;
– nod terminal = nod cu gradul 1; d(x) = 1;
– lanţ = succesiune de noduri cu proprietatea că oricare două noduri c
din lan‑ sunt adiacente;
012 DIDACTICA PREDĂRII INFORMATICII

– lanţ compus = lan‑ în care muchiile se pot repeta;


– lanţ simplu = lan‑ în care fiecare muchie apare o singură dată, dar noduril
pot repeta;
– lanţ elementar = lan‑ în care nodurile sunt distincte;
– ciclu = lan‑ în care primul nod coincide cu ultimul nod;
– ciclu elementar = ciclu în care nodurile sunt distincte, cu excep‑ia pri
ultimului nod.

Într‑un graf orientat:


– gradul intern al nodului x, notat cu d–(x) = numărul de arce care au extremi

tatea finală în nodul x;
– gradul extern al nodului x, notat cu d+(x) = numărul de arce care au extremi ‑
tatea ini‑ială înxnodul ;
– nod izolat =nodcugradeleinternşiexternegale cu=0; d+(x) = 0;
d–(x)
– drum = succesiune de noduri cu proprietatea că oricare două noduri c
sunt adiacente (arcele păstrează aceeaşi orientare);
– drum simplu = drum în care nodurile se pot repeta, dar arcele care îl
sunt distincte;
– drum elementar = drum în care nodurile sunt distincte;
– circuit = drum în care primul nod coincide cu ultimul nod;
– drum elementar = drum în care nodurile sunt distincte, cu excep‑ia prim
ultimului nod;
– lungimea unui lanţ/ciclu/drum/circuit =număruldemuchii/arcedincareesteformat.

Definiţii:
– graf parţial = graf care se ob‑ine din graful ini‑ial prin eliminarea unor
arce, nu şi a nodurilor;
– subgraf = graf care se ob‑ine din graful ini‑ial prin eliminarea unor no
tuturormuchiilor/arcelorincidentecuacestea(nupotfielimin
decât cele incidente cu nodurile eliminate).

Proprietăţi:
– Numărul grafurilor neorientate
n noduricu
este ;
– Numărul grafurilor orientate
n noduri
cueste ;
m
– Numărul grafurilor par‑iale ale unui
n noduri
graf cu
şm
imuchii/arce este. 2

Tipuri particulare de grafuri orientate:


– graf plin = graf orientat în ∀ care
x, y, x ≠ y, există ambele arce (x, y) şi
(y, x); numărul de arce într‑un graf orientat n(nplin este
– 1) ;
– graf complet = graf în care∀ x, y, x ≠ y, există cel pu‑in un arc (x, y) sau
(y, x); graful complet orientat nu este unic; numărul de arce înt
orientat complet este n(ncel pu‑in şi n(n – 1);
– 1)/2
TEORIA GRAFURILOR ŞI A ARBORILOR 1 12

– graf tare conex = graf orientat în care,


∀ x, y, x ≠ y, există drum de la
x lay
şi există drum de la y lax (între
x şi y există drum dus‑întors);
– componentă tare conexă = un subgraf tare conex şi maximal în raport cu aceas
proprietate.

Observaţii
1. Un nod izolat constituie o componentă tare conexă.
2. Numărulminimnecesardearce -unîntr
graforientatGcunvârfuri,astfelîn
G să fie tare conex este
n, dacă G nu con‑ine ini‑ial nici un arc. În acest caz, se
construieşte uşor un circuit elementar care trece prin toate v
nou ales având extremitatea ini‑ială egală cu extremitatea ‑ final
dent ales (nu contează cu care vârf începem).
3. Să ne punem aceeaşi problemă ca la punctul anterior, renun‑ând ‑ la id
itului elementar. Mai exact, fiind dat un graf n vârfuri,
orientat numă
G cu rul
minim necesar de arce astfel încât G să fie tare conex, oricum ar fi
arcele,este (n – 1) (n – 2) + n.Astfel,încelmairăucaz,construimmai
întâi un subgraf plin în graful dat, folosind n – 1 vârfuri, ceea ce îns
avem nevoie de cel(n mult
– 1) (n – 2) arce. Apoi rămânem cu acest
subgrafplinşicuunvârf(presupus)izolat.Maiavemnevoie n –de
1 celmult
arce (care să aibă ca extremitate ini‑ială vârful izolat şi ca extremit
rând, cele n – 1 vârfuri deja selectate pentru subgraful plin), plu
care să aibă ca extremitate finală nodul izolat.

Tipuri particulare de grafuri neorientate:


– graf regulat = graf în care toate nodurile au grade egale;
– graf complet = graf în care oricare două noduri distincte sunt‑ adiacen
rul de muchii într‑un graf complet C2n = este
n(n – 1)/2;
– graf aciclic = graf în care nu există nici un ciclu;
– graf conex = graf în care, oricare ar fi două noduri distincte, există cel p
lan‑ care le uneşte;
– componentă conexă = un subgraf conex şi maximal în raport cu această
‑ propr
etate (nu există lan‑ între un nod din subgraf şi un nod care nu ‑ apar‑i
fului).

Observaţii
Un nod izolat constituie o componentă conexă.
Numărul minim de muchii necesar pentru ca un graf neorientat cu n vâ
conex este n-1 (graful este arbore).
Numărul minim de muchii necesar pentru ca un graf neorientat cu n vâ
conex, oricum ar fi dispuse muchiile, este
(n-1)(n-2)+1 .
21 2 DIDACTICA PREDĂRII INFORMATICII

Un arbore esteungrafconexfărăcircuite.În1matematicianul
857, britanicA
Cayleyafolositpentruprimadatătermenul„arbore”înteoriagrafur
laoanalogiecuîn‑elesulsăudindomeniulbotanicii.Arboriiaufosts
de numeroşi matematicieni şi fizicieni, precum Cayley, pe care l‑au ‑ inter
‑iile lor în chimia organică, sau fizicianul german G.R. Kirchhoff, care a st
această categorie pornind de la studiul re‑elelor electrice.

Teorema de caracterizare a arborilor. Următoarele afirma‑ii sunt echivalen


1. A este arboren vârfuri;
cu
2. A este conexn –
cu 1 muchii;
3. A este aciclic cu1 muchii;
n –
4. A este conex minimal (dacă se elimină o muchie, se distruge conexitate
5. A este aciclic maximal (dacă se adaugă o muchie, se formează un ciclu).

Proprietate: Oricare ar fi două noduri distincte în arbore, există


‑ un lan‑ e
tar unic care le uneşte.
Înpracticăsuntmultesitua‑iicândseimpuneierarhizareainfor
prelucrate, cum ar fi descrierea arborelui genealogic, a organigrame‑
deri sau organizarea meciurilor dintr‑un campionat sportiv. ‑ Struc
rescente sunt modele abstracte utilizate pentru memorarea şi pr
de informa‑ii. Aceste structuri se vor numi tot arbori.
Altfel spus, prin arbore cu ră dă cină , în‑ elegem, în primul rând o m
finită de noduri/ vârfuri care, dacă nu este vidă , neste elemente,
formată di
A = {x1, x2,... xn}, n > 0, satisfăcând proprietă‑ile:
– există un nod ş i numai unul care serădăcina numeş te
arborelui, notat ‑ ( să spu
nem) X;
– celelalte noduri se grupează în Ak submul‑imi disjuncteA,ale lui
A1, A2,...
careformeazălarândullorcâteunarborecurădăcina, J1, respectiv
J2, ... Jk;
aceşti arbori se numesc
subarbori ai rădăcinii.

Într‑un arbore există noduri cărora nu le mai corespund subarbori


nod se numeşte
nod terminal saunod frunză.
Deasemenea,într -unarborecurădăcinăexistă(desigur)şiarce/muchii,elefiin
însă doar „între rădăcini” (adică, de
x la
lay1, y2, . , yk, iaryj-urile pot juca, la
rândul lor, rolul x). unui
În reprezentarea ierarhizată a informa‑iilordescrisă cu ajutoru ‑
cină, nodurile sunt dispuse pe niveluri, rădăcina având nivelul 0.
Fiex un nod situat pe nivelul
n. Definim:
– descendent al nodului x =oricenodcareseaflăpeundrumelementarceple
dinx, altul decât cel care uneştexră; dăcina de
– fiu/descendent direct al nodului x =descendentalnodului
x,adiacentxcu
,aflat
pe niveluln + 1;
TEORIA GRAFURILOR ŞI A ARBORILOR 31 2

– ascendent al nodului x = nod care se află pe drumul elementar care‑ uneşte r


cina de nodul x;
– părinte/tată/ascendent direct al nodului x = ascendent al nodului
x, aflat pe
nivelul n – 1; nodul rădăcină este singurul nod din arbore care nu are
– adâncimea/înălţimea arborelui = lungimea maximă a unui drum elementar care
uneşte rădăcina cu o frunză (numărul maxim de niveluri);
– arbore degenerat = arbore în care orice nod care nu este terminal are
fiu;
– arbore ordonat = arbore în care, pentru orice x, subarborii
nod xlui
sunt ordo

na‑i, în sensul valorilor asociate rădăcinilor.

În această viziune, arborii sunt structuri de date recursive ce po


memorieînmod ascendent(memorândpărintelefiecăruinod) sau (memo ‑
descendent
rândlistadefiiaifiecăruinod)Implementarea
. acestora
staticăsaudinamică.
poatefi
Pentru arborii cu rădăcină, cea mai eficientă modalitate de memorare
pe reprezentarea ascendentă, în care se re‑ine pentru fiecare nod a
direct (părintele/tatăl său).

6.2 Arbori binari

O categorie foarte importantă de arbori cu rădăcină o constituie


arborii binari. Un
arbore binar este un arbore cu rădăcină, în care to‑i descenden‑ii rădăcin
în două submul‑imi disjuncte, ce formează câte un arbore binar între c
distinc‑ieclară :
subarborele stângşi subarborele drept.Arborelebinaresteordona
deoarece,înfiecarenod,subarborelestângseconsiderăcăprecedăsuba
Aşadar,oricenodalunuiarborebinararecelmultdoifii(descenden‑id
fiul stâng şi fiul drept.
Clase speciale de arbori binari:
• Arbore binar plin  – arek niveluri numerotate
0 lak –
de la
1 şi pe fiecare nivel
x are2x noduri. Numărul total de noduri dintr‑un arbore n binar
= 2k plin
= 20 + 21 +... 2k – 1.

Observaţie
Orice lan‑ elementar de la rădăcină la un nod din arbore va avea lungim
multk = [log2n].

• Arbore binar strict  – orice nod care nu este frunză are exact doi fii.
• Arbore binar complet  – se ob‑ine dintr‑un arbore binar plin prin elimin
ordine, a unor frunze de pe ultimul nivel, de la dreapta spre stân
41 2 DIDACTICA PREDĂRII INFORMATICII

• Arbore binar echilibrat –arborebinarîncare,pentruoricenod,număruldeno


din subarborele său stâng diferă de numărul de noduri din subarbor
prin cel mult o unitate.
• Arbore binar degenerat  – arbore binar în care fiecare nod, cu excep‑ia frun
are exact un fiu (stâng sau drept). Un arbore degenerat
n vârfuri va cuavea
n  niveluri.
• Un arbore binar de căutare (ABC) este un arbore binar care are asociat fi
nod o informa‑ie‑cheie, iar nodurile sunt dispuse astfel încât ‑ ch
căruisubarboresăfiemaimaredecâtcheiafiuluisăustângşimaimicăd
a fiului său drept. Cheile sunt valori distincte dintr‑o mul‑ime fi
Tabelul 6.1 Structura de date ce implementează reprezentarea ascendentă a unui arbore binar

Implementare statică Implementare dinamică


typedef struct{ typedef struct Arbore{
//declaratii //declaraţii
int tata; struct Arbore* pTata;
int fiu; int fiu;
//fiu = -1, dacă e fiu stâng } ArboreBinar;
} Nod; //fiu = 1, dacă e fiu drept ArboreBinar* pRadacina;
Nod ArbBin[NMax];
//NMax = numărul maxim de noduri
int Radacina;

Reprezentarea ascendentă poate fi folosită în reprezentarea efic


de mul‑imi disjuncte sau în optimizarea opera‑iilor cu mul‑imi/inter
apartenen‑ă etc.).
Reprezentarea statică a unui arbore binar complet utilizează n com ‑ un v
ponente n=numă
( ruldenoduridinarbore)Consideră
. mcănoduriledepeknivelul
sunt
numerotate de la stânga la dreapta 2k, 2kcu+ valorile
1, 2k + 2,… 2k + 1 – 1.
Astfel,pentruorice xfiul
, nodstângva fi dacă
2*x , 2*x ≤ nfiul
, dreptva2*x
fi + 1,
dacă x*2 + 1 ≤ n, iar părintele său va fi , dacă x F 2.
[x/2]
Aceastăreprezentareesteeficientădinpunctuldevederealspa‑i
ocupat şi se utilizează în implemetarea
heap‑urilor.

Tabelul 6.2 Structura de date ce implementează reprezentarea descendentă a unui arbore binar

Implementare statică Implementare dinamică


typedef struct{ typedef struct Arbore{
// informaţii asociate nodului //informaţii asociate nodului
int FiuStang, FiuDrept; struct Arbore* pStang;
} Nod; struct Arbore* pDrept;
Nod ArbBin[NMax]; } ArboreBinar;
//NMax = numărul maxim de noduri ArboreBinar* pRadacina;
int Radacina;
TEORIA GRAFURILOR ŞI A ARBORILOR 51 2

Practic, în cazul alocării dinamice, tipul de date este acelaşi cu ce


liniare dublu înlăn‑uite (o zonă de informa‑ii utile şi o zonă de legătură form
doi pointeri). Pentru a fi mai intuitivă declararea listei, am‑ schimba
rilor şi al variabilelor folosite.
Situa‑iamen‑ionatăesteunexempluedificatorpentrufaptulcăost
trebuie văzută nu numai ca o colec‑ie de informa‑ii organizate într‑un a
(simplă,compusă, array, structetc.), ci şi împreunăcumul‑imeadeopera‑iiadmise
a se efectua asupra ei: asupra arborelui, opera‑iile admise sunt dif
asupra listelor înlăn‑uite, stivei, cozii etc.
În continuare vom insista asupra opera‑iilor cel mai des utiliz
arborilorbinari,iarînexempleleşisecven‑eledecodcareurmează ‑ vomfo
mentarea dinamică a acestor structuri în C++:
1 . Inserarea unui nod frunză.
2 . Accesul la un nod al unui arbore binar.
3 . Parcurgerea unui arbore binar.
4 . Ştergerea unui arbore binar.

Opera‑iiledeinserareşiacceslaunnodpresupun,lafelcalaliste
criteriu de poziţionare saude identificare a unui anumit nod în cadrul arborel
Gestiunea nodurilor unui arbore binarajutorul se realizează cu ce
unei variabile
punctează spre rădăcina (sub)arborelui. Notăm această variabilă cu
pRadacina ,
definită astfel:
ArboreBinar* pRadacina.

Aceastăvariabilăarecavaloareadresadeînceputazoneidememori
alocată rădăcina arborelui. Dacă arborele este vid,
pRadacina are valoarea
NULL.

6.2 1 Inserarea unui nod frunză într-un arbore binar


alocat dinamic
Etapele ce trebuie parcurse pentru a realiza această opera‑ie sunt
1 . Se alocă o zonă de memorie pentru nodul care urmează să se insereze în ar
Notăm cu pTemp pointerul care are ca valoare adresa ob‑inută în urma
alocare de memorie. Dacă alocarea se face cu succes, se continuă‑ cu eta
toare. În caz contrar, inserarea nu poate fi efectuată. Opera‑ia de
termină cu afişarea unui mesaj de eroare.
2 . Se atribuie valori câmpurilor ce descriu acest nod. Dacă asignările
succes, se trece la etapa următoare.
3 . Deoarece noul nod va fi o frunză, se atribuie valoarea
NULL pointerilor
pStang
şi pDrept pentru noulpTemp
nod :

pTemp–>pStang = pTemp–>pDrept = NULL;


61 2 DIDACTICA PREDĂRII INFORMATICII

4 . Unde se inserează noul nod?pRadacina


Dacă este
NULL (arborele fiind vid),
atunci acest nod va fi primul nod al arborelui şi facem atribuirea

pRadacina = pTemp;

şiprocesulsetermină.Încazcontrar,sedeterminăpozi‑iaîncaretrebu
noua frunză (dacă va fi fiu stâng sau drept al părintelui său) conform cr
de identificare men‑ionat mai sus. Presupunem că adresa tatălui no
determinatăşimemoratăînvariabila pointer
pNodTata .Încazulîncareopera‑ia
deinserarenupoatefiefectuată,eliberămzonadememorieacăreiadr
în pTemp şi procesul se termină.
5 . Dacă inserarea se realizează în nodul stâng, atunci se face atribu
noduluipNodTata cu noul nod):

pNodTata‑>pStang = pTemp;

6 . Dacă inserarea are loc în nodul drept, atunci se face atribuirea (le
pNodTata cu noul nod):

pNodTata‑>pDrept = pTemp;

Etapa a patra este cea mai importantă din cadrul acestui proce
identificare a nodului după care se face inserarea este specific pen
parte.Informa‑iilecarecontribuielaidentificareanoduluisuntc
inserare se doreşte şi cele existente deja în nodurile alocate. Tr
acest caz se va începe cu cercetarea nodului‑rădăcină şi că opera‑iile ‑ care
ează sunt aceleaşi pentru fiecare nod. Acest criteriu de identifica ‑
mentat ca o func‑ie recursivă cu cel pu‑in doi parametri. Un parametru
adresanoduluisupus – parametru
testării  de intrare,iarcelălaltparametruvacon‑in
adresa nodului după care se face– inserarea 
parametru de ieşire. Prototipul func‑iei
ar putea fi:

int identificare(ArboreBinar* pNodCurent, ArboreBinar* &pNodTata);

cu următoarele conven‑ii pentru valoarea


int returnată
de tip:
a) număr strict negativ: se face inserarea în nodul stâng;
b) număr strict pozitiv: se face inserarea în nodul drept;
c) valoarea zero: inserarea nu poate fi efectuată.

Implementarea func‑iei de inserare în C/C++ poate fi:


TEORIA GRAFURILOR ŞI A ARBORILOR 71 2

int identificare(ArboreBinar* pNodCurent, ArboreBinar* &pNodTata);


/*functia returneaza 0 daca nodul cautat nu a fost gasit in
arbore, o valoare nenula daca a fost identificat: -1 daca
este fiu stang al parintelui sau si 1 daca este fiu drept*/

void inserare(ArboreBinar* &pRadacina, int x){


//x este valoarea de inserat
ArboreBinar* pTemp;
ArboreBinar* pTata;
pTemp = new ArboreBinar;
if (pTemp == NULL) {
cout << “alocare imposibila”;
delete pTemp;
return;
}
pTemp->val = x;
pTemp->pStanga = pTemp->pDreapta = NULL;
if (pRadacina == NULL) {
pRadacina = pTemp; return;
}
int ok = identificare(pRadacina, pTata);
if (!ok){
cout << “Eroare la inserare.”;
delete pTemp;
return;
}
if (ok < 0) pTata->pStanga = pTemp;
else pTata->pDreapta = pTemp;
}

6.2 Parcurgerea unui arbore binar


Sunt cunoscute trei metode (recursive) clasice de parcurgere a unu
– în preordine;
– în inordine;
– în postordine.

Parcurgereaunuiarbore binarînseamnăaccesullarădăcinaarborelu
în preordine
şi apoi parcurgerea celor doi subarbori, întâi a celui stâng şi apoi
Subarborii, fiind la rândul lor arbori binari, se parcurg în acelaşi mo
unui arbore binar
în inordine înseamnă parcurgerea mai întâi a subarborelui
apoi accesul la rădăcină şi, în continuare, parcurgerea subarborelui dr
subarbori se parcurg în acelaşi mod. Parcurgerea unui arbore binar
în postordine
înseamnă parcurgerea mai întâi a subarborelui stâng, apoi a subarbo
81 2 DIDACTICA PREDĂRII INFORMATICII

final, accesul la rădăcina arborelui. Cei doi subarbori se parcurg în


Pentru fiecare dintre cele trei metode construim
Preordine, Inordine
func‑iile
şi Postordine, care au următorul prototip:

void Preordine(ArboreBinar* pNod);


void Inordine(ArboreBinar* pNod);
void Postordine(ArboreBinar* pNod);

Pentru descrierea recursivă a acestora vom folosi şi func‑ia:

void prelucrare_Radacina(ArboreBinar* pNod);

prin care vom descrie anumite opera‑ii specifice de prelucrare ‑ a info


ate rădăcinii subarborilor stâng şi drept. Algoritmul pentru parcur
este descris în continuare. Dacă pointerul spreNULL
rădăcină
, se execută
nu este
etapele:
a) seapeleazăfunc‑prelucrareRadacina
ia cuvaloareaparametrului
pointer spre
rădăcină;
b) fiul stâng devine noua rădăcină şi se apelează func‑ia, cu valoarea
Preordine
parametrului
pointer spre noua rădăcină (astfel se parcurge în preordine ‑ su
borele stâng);
c) fiul drept devine noua rădăcină şi se apelează func‑ia, cu valoarea
Preordine
parametrului
pointer spre noua rădăcină.

void Preordine(ArboreBinar* pNod){


if (pNod != NULL) {
prelucrareRadacina(pNod);
Preordine(pNod‑>pStang); /* parcurge subarborele stâng
în preordine*/
Preordine(pNod‑>pDrept); /* parcurge subarborele drept
în preordine*/
}
}

Codurile C/C++ pentru func‑iile


Inordine şi Postordine se construiesc în
mod similar, repozi‑ionând apelul func‑iei
prelucrareRadacina conform tipului
de parcurgere.
Propunem utilizarea metodelor de parcurgere pentru:
– verificarea egalită‑ii a doi arbori binari;
– copierea unui arbore binar;
– determinarea înăl‑imii unui arbore binar/numărul maxim de niveluri
– determinarea nodurilor frunză;
TEORIA GRAFURILOR ŞI A ARBORILOR 91 2

– determinarea nodurilor de pe un nivel dat;


– determinarea tuturor descenden‑ilor unui nod dat;
– verificarea dacă arborele este echilibrat/strict/complet.

6.2 3 Crearea arborilor binari plecând de la parcurgerile


în preordine şi inordine
Considerăm cunoscute parcurgerile în preordine şi inordine ale arb
imaginea alăturată:

1 2 4 7 3 5 6 (preordine)
2 7 4 1 5 3 6 (inordine)

Deducem că 1 este rădăcina din preordine, iar din inordine, deducem


nodurile din stânga 1 vor fi
luiîn subarborele2stâng,
7 4, iar cele din dreapta,
5 3 6, vorfiînsubarboreledreptalrădăcinii.Parcurgemînacelaşimods
dinceledouăparcurgerialesubarborilorşideducemrădăcinileşisubarb
Astfel, 2 este rădăcina subarborelui stâng
1, iar7 al
4 sunt
lui în subarborele lu
2. Cum 7 4 sunt la dreapta 2 în inordine,
lui deducem că sunt în subarborele d
al lui2 ş.a.m.d.
Secven‑ele ob‑inute prin parcurgerea în preordine şi inordine sun
secven‑ a de cod C+ + de mai jos sub forma a doi vectori: inord[NMax] ,
preord[NMax].

int preord[NMax], inord[NMax], n;


void Creare(ArboreBinar* &pRadacina,int xRadacina,int xStanga,
int xDreapta){
pRadacina = new ArboreBinar;
if (pRadacina == NULL) {
fout << „alocare imposibila”;
delete pRadacina;
return;
}
pRadacina->val = preord[xRadacina];
int i = xStanga;
while (inord[i] != preord[xRadacina])
i++;
20 DIDACTICA PREDĂRII INFORMATICII

if (i == xStanga) pRadacina->pStang = NULL;


else creare(pRadacina->pStang, xRadacina + 1, xStanga, i - 1);
if (i == xDreapta) pRadacina->pDrept = NULL;
else
creare(pRadacina->pDrept, xRadacina + i - xStanga + 1,
i + 1, xDreapta);
}

void Preordine(ArboreBinar* pNod){


if (pNod != NULL) {
fout << pNod->val<<" ";
Preordine(pNod->pStang); // parcurge subarborele stâng
Preordine(pNod->pDrept); // parcurge subarborele drept
}
}

Vom demonstra acum că arborele creat din parcurgerile în preordin


este unic folosind metoda induc‑iei matematice după numărul de nodu
Fien numărul de noduri şi
inord[NMax] , preord[NMax] vectorii care‑ memo
rează secven‑ele ob‑inute prin parcurgerea în inordine, respectiv pre
P(1): Arborele are un singur nod şi acela este rădăcina.
P(n): Orice arbore cuk noduri,
k ≤ n, construit pe baza parcurgerilor
‑ în p
ordine‑inordine este unic.
P(n + 1): Demonstrăm că un arbore cu n + 1 noduri construit pe‑ baza par
curgerilor în preordine‑inordine este unic, plecândP(n) de la
este
presupun
adevărată.
În arborele n cu
+ 1 noduri, din parcurgerea în preordine deducem că pr
nodesterădăcina.Identificându‑lînsecven‑aîninordine,deducemcănod
lastângaluiformeazăsecven‑aîninordineasubarboreluistâng,iar
secven‑a în inordine a subarborelui drept corespunzător. Deci ‑ rădăcina
nată în mod unic, iar cei doi subarbori, fiecarencu noduri,
cel mult
sunt unici,
conform P(n).

6.2 4 Accesul la un nod al unui arbore binar


Accesul la un nod al unui arbore binar presupune existen‑a unui‑ crit
mită căutarea nodului respectiv, lucru pe careetapa
l‑am4.discutat
Identificarea
la
nodului se realizează prin intermediul unui mecanism bazat pe una d
tipurideparcurgeri(preordine,inordine,postordine)Dacă . nodulnuexi
se va returna un cod de eroare.
TEORIA GRAFURILOR ŞI A ARBORILOR 12

6.2 5 Ştergerea unui arbore binar


Pentru a şterge un arbore binar sunt necesare parcurgerea lui şi şt
nod. Arborele va fi parcurs în postordine (rădăcina arborelui trebuie şt
Codul pentru această func‑ie este:

void StergArbore(ArboreBinar* pNod){


if (pNod != NULL) {
StergArbore(pNod->pStang);
StergArbore(pNod->pDrept);
delete pNod;
}
}

Observaţie
Nus‑aupuscondi‑iiasupravaloriipointerilorînaintedeaelibera
de aceştia.

lvompe
Considerămutilsăcontinuămcuunproiectdidactic, maiinclude
carenu‑
în anexe.

Proiect de tehnologie didactică

Şcoala:
Disciplina: Informatică
Clasa: a XI‑a
Profilul: Matematică‑informatică, intensiv informatică
Data:
Profesor:
Unitatea de învăţare: Structuri de date arborescente
Tema lecţiei: Opera‑ii cu arbori binari de căutare
Tipul lecţiei: Aplica‑ii practice de laborator
Durata: 2 h 50 min.
Competenţe generale:
(CG1)Identificareadatelorcareintervinîntr‑oproblemăşiaplicare
fundamentali de prelucrare a acestora.
(CG2) Elaborarea algoritmilor de rezolvare a problemelor.
(CG3) Implementarea algoritmilor într‑un limbaj de programare.
222 DIDACTICA PRED RII INFORMATICII

Competenţe specifice:
(CS1)Descriereaopera‑iilorspecificestructurilorarborescente
subprograme care să implementeze aceste opera‑ii.
(CS2) Analizarea în mod comparativ a avantajelor utilizării diferit
structurare a datelor necesare pentru rezolvarea unei problem
(CS3) Aplicarea în mod creativ a algoritmilor fundamentali în rezol
probleme concrete.
Competenţe derivate
La sfâşitul activită‑ii didactice, elevii vor fi capabili să reali
activită‑i:
(CD1)Analizareaproblemeipropuseşiidentificareastructurilord
pentru o reprezentare eficientă.
(CD2Implementarea
) corectăaopera‑iilorcuarboribinaridecăutare:i
crearea, căutarea, parcurgerea, ştergerea unui nod.
(CD3) Utilizarea corectă a func‑iilor pentru rezolvarea problemei pr
(CD4) Testarea, depanarea şi corectarea propriei aplica‑ii, dacă este n
Competenţe psihopedagogice
C1. Cognitive
La sfârşitul lec‑iei, elevii vor fi capabili:
(C1.1) să analizeze o problemă, să descrie etapele de rezolvare.
(C1.2) să identifice etapele de proiectare a aplica‑iilor propuse.
(C1.3) să scrie func‑ii C++ pentru rezolvarea cerin‑elor propriu‑zise.
(C1.4) să aprecieze corectitudinea implementării, rulând aplica‑ia pe
date de test.
C2. Competen‑e afective:
(C2.1) să se autoevalueze corect.
(C2.2) să dovedească curiozitate şi interes pentru no‑iunile utilizat
C3. Competen‑e atitudinale/comportamentale:
(C3.1să
) conştientizezeimportan‑aalegeriiunorstructuridedatead
rezolvarea problemei propuse.
(C3.2)săargumentezeeficien‑astructuriloralesedinpunctul ‑ deved
miei de memorie.
C4. Competen‑e ac‑ionale
(C4.1) să identifice structura de date de tip arbore binar de căutare
(C4.2) să descrie opera‑iile specifice necesare în algoritmul de rezolv
(C4.3) să implementeze corect func‑ii C++ pentru opera‑iile propuse.
(C4.4) să testeze, să depaneze şi să corecteze eventualele erori din‑ propr
ca‑ie.
TEORIA GRAFURILOR ŞI A ARBORILOR 223

Strategii didactice
a) Principii didactice:
– principiul legării teoriei de practică;
– principiul sistematizării şi continuită‑ii cunoştin‑elor;
– principiul accesibilită‑ii;
– principiul individualizării şi diferen‑ierii învă‑ării.
b) Metode şi procedee didactice:
– problematizarea (P), algoritmizarea (A), conversa‑ia frontală şi individ
explica‑ia (E), munca independentă (M).
c) Forme de organizare: lucrul individual.
d) Forme de dirijare a învă‑ării:
– independentă;
– dirijată de către profesor prin mijloacele de învă‑are.
e) Metode de evaluare:
– evaluare continuă pe parcursul lec‑iei;
– apreciere verbală;
– evaluare practică.
f) Resurse materiale:
– calculatoare cu mediul de programare instalat;
– fişe de aplica‑ii;
– material bibliografic:
[CLR ], [L ], [CŞ ], [IP ], [MM ].
24
Structura lecţiei pe secvenţe de instruire
CD Min. Etpele lecţiei – activitate elev-profesor MD
3’ Moment organizatoric.
Profesorul: verifică frecven‑a elevilor, verifică existen‑a resurselor materiale.
Elevii: se pregătesc pentru– deschid
oră  calculatoarele, intră în mediul de programare.
3’ Captarea aten‑iei.
Profesorul: anun‑ă tema lec‑iei, distribuie fişele de lucru, explică modul de desfăşurare a orei.
Fişele con‑in un număr de sarcini obligatorii, iar pentru elevii cu performan‑e mai bune se prevăd câ
suplimentare. Vezi fişa.
Elevii: răspund solicitărilor profesorului, cer lămuriri.
Desfăşurarea lec‑iei
Profesorul solicită elevilor: citirea atentă a cerin‑elor, propunerea unor structuri de date car
‑ P, Cv
CD1, 85’ varea eficientă a acestora, argumentarea alegerii.
C1.1, Elevii:analizeazăproblema,identificătipurilededatei ş argumenteazăoportunitatea
o
- reprezentăriid
C2.2 structură de arbore binar de căutare.
Profesorul va pune întrebări, stimulând prin conversa‑ie participarea activă a elevilor la oră. Î
– Ce structură de date permite păstrarea datelor ordonate şi regăsirea lor eficientă Cv ca timp?
DIDACTICA PREDĂRII INFORMATICII

– Cum putem implementa o structură de arbore binar de căutare adecvată problemei?


– Care dintre alocările statică sau dinamică este potrivită pentru problema dată?
– Ce metode de parcurgere a arborilor binari cunoaşte‑i? Prin ce diferă?
– Care dintre cele trei metode de parcurgere a arborelui va produce lista ordonată a cheilor î
căutare?
– Cum se va insera un nod în această structură?
– Care este timpul mediu necesar regăsirii unei chei date în acest arbore? Dar cel maxim?
– Cum se realizează ştergerea unui nod?
C1.2, Răspunsurile aşteptate de la elevi:
C3.1, – Un arbore binar de căutare (ABC) este un arbore binar care asociază fiecărui nod o informa‑
‑ ie-cheie;
C3.2, rile sunt dispuse astfel încât cheia rădăcinii să fie mai mare decât cheia fiului stâng şi mai mi
C4.1, fiului drept. Cheile sunt valori -o distincte
mul‑ime finită
dintr
şi ordonată.
C4.2 – Parcurgerile arborilor binari pot fi în preordine, inordine, postordine şi diferă în func‑ie de mom
este prelucrată cheia din rădăcină în raport cu cheile fiilor.
– Parcurgerea în inordine ar produce lista ordonată a cheilor în ABC.
– InserareaunuinodnouînABCsevafacecafrunzădupăceafostcăutatăpozi‑iaacestuiaconformdefini‑ieiABC.
C3.1, 85’ – Timpul maxim necesar regăsirii unei chei în ABC este egal cu înăl‑imea arborelui.
C3.2 – Ştergerea unui nod din ABC presupune identificarea nodului şi tratarea diferită E a cazului în c
frunză, are doar un fiu sau are doi fii.

Pot veni elevi la tablă care să exemplifice func‑ionalitatea algoritmului pe date concrete, re
descriere grafică a opera‑iilor, pentru o mai bună în‑elegere.
Profesorul monitorizează activitatea individuală a elevilor, le acordă permanent suport. Dacă au
greşeli repetate la mai mul‑i elevi, se întrerupe lec‑ia pentru o discu‑ie cu toată clasa şi lămurire
Profesorul încurajează elevii cu performan‑e superioare să rezolve cerin‑ele suplimentare,
‑ de ex
marea arborelui binar de că-un utare
arbore
într
binar de căutare echilibrat.
Elevii implementează individual, testează şi depanează propriile aplica‑ii.
Profesorul monitorizează activitatea elevilor, ghidând aplicarea no‑iunilor predate şi acor
este solicitat.
CD2, Evaluarea M,A
CD3, – pe parcurs, prin aprobare şi dezaprobare verbală în urma răspunsurilor date de elevi la întrebăr
CD4 observării sistematice a muncii independente;
TEORIA GRAFURILOR ŞI A ARBORILOR

– la finalul orei, cu note argumentate de rezultatele aplica‑iei realizate.


C2.1 5’ Aprecierea activită‑ii
Profesorul face aprecieri privind performan‑ele elevilor, face recomandări de recuperare celor
să rezolve sarcinile obligatorii şi îi notează pe cei care au fost activi.
Profesorul poate cere elevilor să se autoevalueze.
4’ Tema pentru acasă
Profesorul propune tema pentru acasă, iar elevii notează în caiete.
Tema pentru acasă ar putea fi o aplica‑ie asemănătoare în care se creează o agendă de contacte, cu nume, n
de telefon, adresă de e-mail. Opera‑ii posibile asupra agendei:
– adăugarea unui contact;
– crearea agendei;
– modificarea datelor de contact;
– căutarea unui contact;
25

– afişarea listei de contacte.


226 DIDACTICA PREDĂRII INFORMATICII

Clasa:
Tema lecţiei:

Arbori binari de căutare 


– aplica‑ii practice de laborator

Fişă de lucru

Concepe‑i o aplica‑ie în C++ care să realizeze opera‑ii pe o listă de produ


căreiconfigura‑iesemodificăprinopera‑iidetipul:adăugareprodus,căuta
modificarestocprodus,tergere
ş produs,afişareproduse,determinareva
Dinfişierultext
date.inseciteşteolistădeprodusecuinforma‑iidatesubf
Cod Pret Stoc, unde:
• Cod este un număr natural nenul de 8 cifre, reprezentând codul
‑ unic
dus din listă;
• Pret este un număr real pozitiv care reprezintă valoarea unei unit
• Stoc este un număr natural care reprezintă cantitatea din ‑ produs
ponibilă.

Alege‑i un tip de date adecvat, ştiind că se modifică dinamic configura


Scrie‑i func‑ii utilizator pentru:
1 . Adăugarea unui element nou în listă, dacă nu există codul deja; dacă pr
există, stocul se va suplimenta cu o nouă cantitate.
2 . Căutarea unui produs după cod şi afişarea informa‑iilor acestuia.
3 . Determinarea numărului de produse din listă la un moment dat.
4 . Calcularea valorii totale a stocului la un moment dat.
5 . Afişarea listei în ordinea crescătoare a codurilor.
6 . Afişareaunuimeniucaresăpermităselectareaşiefectuarearepeta
din lista de mai sus.
7 . Ştergerea din listă a produselor cu stoc 0.
8 . Afişarea listei în ordine crescătoare a valorii totale a stoculu

dus.

Notă: Subpunctele 7 şi 8 sunt suplimentare.

Variantă de implementare

#include <fstream>
#include <iostream>
#define NMax 1000
using namespace std;
ifstream fin(„abc.in”);
ofstream fout(„abc.out”);
TEORIA GRAFURILOR ŞI A ARBORILOR 27

///Produs ‑ descrierea unui produs prin cele 3 campuri: Cod,


Pret, Stoc
typedef struct {
int Cod, Pret, Stoc;
} Produs;
///ABC = Arbore Binar de Cautare
typedef struct Nod{
Produs prod;
struct Nod* pStang;
struct Nod* pDrept;
} ABC;
ABC* pRadacina;
int n;

void Inserare(ABC* &pRadacina, Produs P)


{
ABC* pTemp = new ABC;
if (pTemp == NULL) {
fout << „alocare imposibila”;
delete pTemp;
return;
}
pTemp‑>prod = P;
pTemp‑>pStang = pTemp‑>pDrept = NULL;
if (pRadacina == NULL) {
pRadacina = pTemp;
return;
}
ABC *r=pRadacina;
while (1)
{
if (r‑>prod.Cod == pTemp‑>prod.Cod)
{ r‑>prod.Stoc += P.Stoc; return; }
if (r‑>prod.Cod > pTemp‑>prod.Cod)
if (r‑>pStang) r = r‑>pStang;
else { r‑>pStang = pTemp; return;}
else if (r‑>pDrept) r = r‑>pDrept;
else { r‑>pDrept = pTemp; return;}
}
}

void Creare(ABC* &pRadacina)


{
Produs P;
pRadacina = 0;
while (fin >> P.Cod >> P.Pret >> P.Stoc)
Inserare(pRadacina, P);
}
28 DIDACTICA PREDĂRII INFORMATICII

void Inordine(ABC* pNod)


{
if (pNod != NULL)
{
Inordine(pNod‑>pStang);
/* parcurge subarborele stâng în
inordine*/
cout << pNod‑>prod.Cod << ‚ ‚ << pNod‑>prod.Pret << ‚ ‚
<< pNod‑>prod.Stoc << ‚\n’;
Inordine(pNod‑>pDrept);
/* parcurge subarborele drept în
inordine*/
}
}

ABC* CautaNod(ABC* pRadacina, int x)


{
ABC *r=pRadacina;
while (r)
{
if (r‑>prod.Cod == x) return r;
if (r‑>prod.Cod > x) r = r‑>pStang;
else r = r‑>pDrept;
}
return NULL;
}

int NumarProduse(ABC* pNod)


{
if (pNod == NULL) return 0;
else return 1 + NumarProduse(pNod‑>pStang) +
NumarProduse(pNod‑>pDrept);
}

int ValoareStoc(ABC* pNod)


{
if (pNod == NULL) return 0;
else return pNod‑>prod.Pret * pNod‑>prod.Stoc +
NumarProduse(pNod‑>pStang) + NumarProduse(pNod‑>pDrept);
}

void StergeNodStoc0(ABC* &pRadacina, ABC *pNod, ABC *pTata)


{
if(pNod != NULL)
{
StergeNodStoc0(pRadacina, pNod‑>pStang, pNod);
StergeNodStoc0(pRadacina, pNod‑>pDrept, pNod);
if (pNod‑>prod.Stoc == 0)
TEORIA GRAFURILOR ŞI A ARBORILOR 29

{
if(pNod‑>pDrept != NULL && pNod‑>pStang != NULL)
// nodul de sters pNod are ambii fii
{
/* inlocuiesc informatia din radacina cu cea din
/* cel mai din dreapta nod al subarborelui stang
/// care are cheia cea mai mare mai mica decat rada‑
cina*/
ABC *p = pNod‑>pStang;
pTata = pNod;
while (p‑>pDrept != NULL)
{
pTata = p;
p = p‑>pDrept;
}
pNod‑>prod = p‑>prod;
pNod = p; /*nodul de sters devine p; p are cel mult
2 fii*/
}
if(pNod‑>pDrept == NULL) // are cel mult fiu stang
{ if (pTata == NULL) pRadacina = pNod‑>pStang;
else if (pTata‑>pDrept == pNod)
pTata‑>pDrept = pNod‑>pStang;
else pTata‑>pStang = pNod‑>pStang;
}
else
if(pNod‑>pStang == NULL) // are cel mult fiu drept
{ if (pTata == NULL) pRadacina = pNod‑>pDrept;
else if (pTata‑>pDrept == pNod)
pTata‑>pDrept = pNod‑>pDrept;
else pTata‑>pStang = pNod‑>pDrept;
}
delete pNod;
}
}
}

void StergArbore(ABC* pNod)


{
if (pNod != NULL) {
StergArbore(pNod‑>pStang);
StergArbore(pNod‑>pDrept);
delete pNod;
}
}
230 DIDACTICA PREDĂRII INFORMATICII

void afisareMeniu()
{
cout<<”\t1. Adauga produs\n”;
cout<<”\t2. Cauta produs\n”;
cout<<”\t3. Afiseaza lista de produse\n”;
cout<<”\t4. Valoare stoc\n”;
cout<<”\t5. Numar de produse din lista\n”;
cout<<”\t6. Stergere produse cu stoc 0\n”;
cout<<”\t7. Iesire\n”;
}
int main()
{
int optiune, cod;
Produs P;
ABC* pNod;
Creare(pRadacina);
while(1)
{
afisareMeniu();
cin>>optiune;
switch (optiune)
{
case 1: cout << „dati produsul de adaugat (cod, pret,
cantitate): „; cin >> P.Cod >> P.Pret >> P.Stoc;
Inserare(pRadacina, P);
break;
case 2: cout << “dati codul produsului cautat: “;
cin >> cod;
pNod = CautaNod(pRadacina, cod);
if (pNod == NULL) cout << “Produsul nu este in lista”;
else cout << pNod‑>prod.Cod << ‘ ‘ << pNod‑>prod.
Pret << ‘ ‘ << pNod‑>prod.Stoc<<’\n’;
break;
case 3: Inordine(pRadacina); cout<<”\n\n”;
break;
case 4: cout << “Valoarea totala a stocului = “ <<
ValoareStoc(pRadacina)<<”\n\n”;
break;
case 5: cout << “Numarul de produse din lista = “ <<
NumarProduse(pRadacina)<<”\n\n”; break;
case 6: StergeNodStoc0(pRadacina, pRadacina, NULL);
break;
case 7: StergArbore(pRadacina); return 0;
default: cout << “Optiune incorecta!”;
}
}
StergArbore(pRadacina);
return 0;}
TEORIA GRAFURILOR ŞI A ARBORILOR 1 32

Vom avea alte câteva exemple de proiecte de lec‑ie şi în Anexa 1, nu ne


legate de structurile arborescente. Datorită importan‑ei acest
(poate) o tratare mai extinsă şi mai profundă. Putem să considerăm un lucru
totuşi faptul că au fost discutate
-un capitolîntr
separat de celelalte struct
Concluzii

Datorită trecerii a doisprezece ani de la momentul publicării, c


domeniulcomunica‑iilorşitehnologieiinforma‑ieiînseamnăenorm,edi‑i
avolumuluiatrebuitsăfierescrisăaproapeînîntregime,chiarstruc
trebuind să fie schimbată.
Gestionarea unor eviden‑e simple, procesarea imaginilor, realiza
(comunicare) online, urmărirea şi reglarea unor procese industriale, s
activită‑i simple de tipul conducerii unui automobil, dirijării dec
de(pe)unaeroportsauchiarcompletarobotizareaunorprocesecompl
astăzi lucruri uzuale. Trebuie să avem însă în vedere şi partea economică ‑ . De
plu, crearea şi utilizarea unui laborator pentru simularea conduc
mult mai pu‑in costisitoare decât pregătirea pilo‑ilor pe un avion
pentruanumaivorbidespreutilitateaexisten‑eiunuirobot ‑ coresp
ven‑iile microchirurgicale.
În acest sens, abordarea învă‑ământului de informatică într‑ exhaustiv,
un mod
având în vedere toate disciplinele pe care acesta s‑ar presupun
con‑ină(şi ar putea fi introduse ‑o programă
într analitică de liceu sau facultat
chiarînprocesuldeeduca‑iepermanentănu ), nisepareoideepreafericit
şi restric‑iile au devenit absolut necesare din moment ce ne‑am si
spunem câteva cuvinte despre societatea informa‑ ‑ieîn România
ională şi e‑ de
educa
astăzi, chiar din introducere. Lumea în care trăim este practic‑ depend
tate,amputeaspune)decomputereşidispozitive mobile
wireless decomunicare.
sau
Acest lucru a influen‑at într‑un mod esen‑ial con‑inutul învă‑ământul
de transmitere şi receptare a cunoştin‑elor, organizarea şi administ
învă‑ământ în ansamblu.
Conceptele clasice ale didacticii predă şi rii
metodicii
oricărei discipline (şi în
special ale celor tehnice, ale informaticii în particular) s‑au îmbo
cristali­zat în noi forme. Discutăm astfel, în primele trei capitole, despre
curriculum,
instruire, evaluare, despre principii didactice şi didactica formării de competenţe,
precum şi despre metode, tehnici şi procedee didactice pentru învă‑ământul preuni ‑
versitar, la nivel conceptual (în primul rând) şi punând evident acc
informatică. Capitolele 4, 5 şi 6 sunt destinate tratării aspectelor ‑ ap
dării‑învă‑ării în cazul no‑iunilor fundamentale ale informaticii, în con
paradigme de programare, tehnici de programare şi modalităţi de proiectare a algoritmilor,
234 DIDACTICA PREDĂRII INFORMATICII

algoritmi clasici, analiza complexităţii, corectitudinii şi terminării algoritmilor şi


programelor, structuri (liste, stive, cozi) ş i baze de date, teoria grafurilor i ş în
( particu ‑
lar)a arborilor.
Anexa 1 reuneşte câteva proiecte de tehnologie didactică suplimentare, necesare
pentruoîn‑elegeremaiprofundăasemnifica‑ieipracticeafolosirii ‑ con
dico‑didacticespecificeînpedagogiaînvă‑ării.Separat,înAnexa2am , grupat
subiecte date în ultimii ani la bacalaureat, la deolimpiadele
profil, la admi ‑ şcolar
terea la Facultatea de Informatică (Universitatea „Alexandru Io
precum şi la unele concursuri de promovare pentru profesorii ‑ din înv
universitar. În Anexa 3, deoarece accesul rapid la anumite informa‑ii
determinant pentru îndeplinirea rapidă a unor sarcini şi solicită ‑ r
roase site‑uri şi portaluri de Internet la care nu se face referire
lucrare, dar au o mare importan‑ă şi adresabilitate.
Bibliografia doar pare vastă, lucrările nefiind, într‑adevăr, citate
parcurs.Suntemînsăconvinşicăîntextaufosttranspusemăcaruneleide
din fiecare. Mai mult, pentru că domeniul tratat este atât de ‑ larg, i
mic, trebuie să ne cerem scuze tuturor celor care n‑au fost deloc ‑ cita
bu‑ia lor ar fi putut fi etichetată drept fundamentală.
Autoriişi‑aupropusastfelsăsubliniezeexisten‑auneilegăturicoer
între informatica trecutului, cea a prezentuluiîntre şi cea aînvă
viitorului,
‑ământ şi
societate, între transmi‑ători şi receptori, între computere . şi umani
Avem speran‑a că demersul nostru va fi considerat benefic şi că am aco
zonă de interes maxim în ceea ce priveşte pregătirea profesorilor de in
învă‑ământulpreuniversitar.Dareposibilcaonouăedi‑ierevăzutăşiadăug
necesară mult mai repede decât s‑ar putea crede.
ANEXE
Anexa 1

Proiecte de tehnologie didacti

Această anexă este rezervată prezentării câtorva proiecte de lec‑ie, prin


ilustrareaunordomeniişiaproblematiciidespecialitateimportantelan
deprogramare,recursivitate,metodedeproiectareaalgoritmilor,analizaalgo
grafurilor, metode de sortare, lucrul cu diverse structuri şi baze de date. D
practicîn ( afaraimplementăriiunorrezolvări/algoritmipentruproblemedetip
inten‑ionatsăprezentămi ş câtevaaplica‑iidelaboratorcein ‑ detehnologia
‑ infor
nica‑iilorsaudeînvăarea ‑ preliminarăaunorlimbajenoi,posibilderivatedincel
a fi cunoscute (cum ar fi C#). Revenind la didactică, am avut de ales între lec‑ii d
învăare,
‑ derecapitularei ş aprofundaredecunoştin‑e,deevaluareetc.încercând
, s
folosirea mai multor metode, tehnici şi procedee didactice (punctând compe
Acesteproiectedetehnologiedidacticăpotfifolositecamodelînvederea ‑ re
iecte.Deasemenea,potfiîmbunătă‑iteşi/saumodificateconformspecificuluicla
Men‑ionăm că în capitolele 4, 6 (mai ales) şi 5 sunt redate rezolvările unor problem
sub forma unor asemenea proiecte didactice. Unii algoritmi sunt prezenta
am dat explicit detalii asupra acestui limbaj), considerând că cititorii

Proiect de tehnologie didactică


Limbajul C/C++: Funcţii în C/C++

Disciplina: –
Clasa: –
Data: –
Profesor: –
Unitatea de învăţare: Func‑ii în C/C++
Detalieri de conţinut:Prototipuluneifunc‑iicarenureturneazăvalorişinuarep
respectiv care are parametri şi returnează valori
Tipul lecţiei: Predare de noi cunoştin‑e
Se are în vedere realizarea deprinderilor de a lucra eficient, modulari

zând descompunerea unei probleme date în subprobleme a căror rezolvare es
La sfârşitul lec‑iei, elevii vor fi capabili:
– să declare o func‑ie;
– să recunoască componentele principale ale unei func‑ii (numele ei, valoa
argumente) sau, altfel spus, prototipul unei func‑ii;
– sădescriemoduldefolosireaargumenteloruneifunc‑ii(prinvaloare,pr
– să deprindă folosirea valorilor returnate de către o func‑ie.
238 ANEXE

Metode şi procedee didactice:Conversa‑iafrontalăi ş individualăexplica‑


, ia,expunerea
Mijloace didactice: Manuale, culegeri de probleme. Material bibliografic supli
D. Hrinciuc Logofătu,C++. Probleme rezolvate şi algoritmi, Editura Polirom, Iaşi, 1;20
L.Negrescu, Limbajul C,EdituraComputerLibrisAgora, Napoca,
Cluj-B.
197; Stroustroup,
The C++ Programming Language, ed. a II-a, AT&T Bell Telephone Laboratories,1. 9

Momentele lecţiei:Presupunemcăorganizareaclaseidureazăs 06 i
ş verificămi
ş altelucru
legatedemediu.Importantăesteînsăenun‑areascopuluilec‑iei.Astfel,aiciput
cadrul lec‑iei care urmează vor fi expuse următoarele probleme legate de func‑ii
declarareafunc‑iilor;definirealor;utilizareaargumentelorfunc‑ieişiava
• Reactualizarea cunoştin‑elor dobândite anterior.
• Sepotpuneîntrebări,cumarfi:Ceînseamnă #include <string.h> ? Care este rolul
directivei
#include? Unde şi de ce am folosit‑o? Ce informa‑ii poate con‑ine un fişie
antet (în mod uzual are
extensia .h)?

Func‑iile care vor fi prezentate pot fi identificate pornind de la nece


într
-un program C/C++ apelăm la func‑ii pentru a realiza anumite prelucră -un modri într
repetat şi mai simplificat. De exemplu, afişarea unui text stdoutpe ) seecran
poate ( face
apelând func‑ ia (...), citirea unui caracter de la
printf tastatură
stdin ) se face apelând
(
func‑iascanf () etc. Definirea unei func‑ii constituie modalitatea de a specific
trebuieexecutatăoanumităopera‑ie.Ofunc‑ienupoatefiapelatăatâttimpcâtn
Declararea funcţieirealizeazăurmătoarelelucruri:atribuieunnumefunc‑iei;fixea
valoriireturnatedecătrefunc‑iedacă ( existăfixează
;) număruli ş tipulargumentelor)
( para
func‑iei, parametri care vor fi furniza‑i în momentul apelului acestei func‑ii
definirea func‑iei, aceştia se numesc
parametri formali (argumente formale). De exemplu,

void StergeEcran(int, int, int, int);


int AfiseazaFereastra (int , dword);
char* ObtineNumeFereastra (int IdentificatorFereastra);

Încadruldeclarăriifunc‑ieiputemfolosinumepentruargumente.Acestlucruîidău
posibilitatea să în‑eleagă semnifica‑ia parametrului respectiv şi valorile
folosite.Compilatorulnuiaînconsiderareacestenume,cinumaitipulparamet
Definirea funcţiei. O definire de func‑ie înseamnă o declarare de func‑ie în ‑care est
zentat şi corpul func‑iei (codul). Orice func‑ie folosită
-un program
într
trebuie să fie definită
undeva în cadrul programului, dar numai o singură dată. De exemplu:

extern double precizie ();


double precizie ()
{
double epsilon = 1.0;
while (1.0 + epsilon > 1.0 )
epsilon = epsilon / 2.0; // epsilon /= 2.0;
return 2.0 * epsilon;
}
extern int maxim (int, int);
int maxim (int n1, int n2)
return n1 < n2 ? n2: n1;
}
ANEXE 239

Putem observa că definirea func‑iilor cu parametri care nu sunt folosi‑ ‑ in


dabilă. Trebuie totuşi ştiut că există func‑ii care au parametri ce nu sunt ut
rezultând din planificările efectuate înainte pentru dezvoltarea viit
Transmiterea valorii argumentelor ( parameter passing)În
. momentulapeluluiuneifunc‑ii,
fiecare argument formal este ini‑ializat cu argumentul actual corespunzăt
fac verificări asupra tipurilor de parametri şi toate tipurile de convers ‑
nite de utilizator sunt realizate. Există o regulă specială pentru transm
facilitate pentru transmiterea argumentelor fără verificare şi o facilit
argumentelor implicite. De exemplu:

void f (int valoare, int& referinta)


{ valoare++;
referinta++;
}

Cândfunc‑fia esteapelată ,
valoare++ incrementează o copie localăaprimuluiargument
actual, în timp ce
referinta++ incrementează al doilea argument formal. Trebuie s
diferen‑a. Un apel al acestei func‑ii este dat în cele ce urmează.

void main()
{
int _valoare = 10;
int _referinta = 100;

printf (“\nInainte de apel functie f\n _valoare = %d \n _referinta
= %d”,_valoare, _referinta);
f (_valoare, &_referinta);
printf (“\nDupa apel functie f \n _valoare = %d \n _referinta =
%d”,_valoare, _referinta);
}

Rezultatulexecu‑ieieste:înaintede fvom
apelul
aveafunc‑ iei = 10şi _refe‑
_valoare
rinta = 100,iardupăapelulfunc‑fiei
vomgăsi _valoare = 10şi _referinta = 101.
Primul argument este prin dat
valoare, iar al doilea
prin referinţă. Deci primul parametru
pentru f se comportă ca o variabilă locală. Deşi nu este indicată transmiterea parame
prin referin‑ă, acest lucru este absolut necesar atunci când mari prin
se transfe
argumenteleuneifunc‑ii.Pentruaindicafaptulcăobiecteletransmiseprin
modificate de către func‑ie, argumentul trebuie const. Dedeclarat
asemenea, declarând un
argumentdetippointer cafiind
const înseamnă
, căobiectulpunctatdeacestpointernu
fi schimbat de func‑ie.
Obţinerea valorii de retur. O func‑ie care nu este declarată ca având void trebuie
tipul să
returneze o valoare. Valoarea returnată este specificată return. Într
de instruc‑
-o func‑ iune
‑ie pot exista mai multe instruc‑ return. De
iuni
exemplu:

int f () { }

va genera o eroare la compilare, căci nu există o instruc‑


return care
iune
să returneze o
valoare (deint
tip), în timp ce
240 ANEXE

void g () { }

va fi considerată corectă, netrebuind să returneze nimic.

Observaţie
O instruc‑iune
return ini‑ializează o variabilă de tipul returnat. Tipul valorii r
o func‑ie trebuie să corespundă cu tipul func‑iei – în caz contrar, se vor efectua
standard şi cele definite de utilizator asupra acestei valori.

Important
Lafiecareapelalfunc‑ieiserealizeazăocopieaargumentelorsaleşiavari
automatic.Memoriautilizatăpentruaceastaesterefolositădupăcefunc‑iaîşiterm
Din această cauză este interzisă returnarea unui pointer . la o variabilă loca
Fixarea cunoştinţelor: Prin întrebări simple, clasa poate fi condusă spre a‑ sesiza mo
tele principale ale lec‑iei referitoare la func‑ii în C/C++: declarare, definir
argumentelor, folosirea practică a func‑iilor, ob‑inerea corespunzătore a val
Activitatea (suplimentară a) profesorului: se va insista asupra faptului că ceea ce po
con‑ineunfişierantetnuesteocerin‑ăalimbajuluideprogramare,ci‑ maidegr
‑ie pentru a separa anumite declara‑ii (de tip, de func‑ii etc.) de codul-sursă pro
Activitatea elevilor: ei trebuie să furnizeze la momentul oportun răspunsuri core
ar fi cele men‑ionate mai sus şi cele descrise în continuare. Mecanismul defi
decompilare #includesereferălafacilitateadegestionareafişirelorcecon‑in
de a uni fragmente de program -o singură
într unitate (fişier) pentru compilare. Direc
#include, a cărei sintaxă este

#include “de_inclus” sau #include <de_inclus>

înlocuieşte linia de program unde apare cu con‑inutul fiş. ierului


de_inclus

Tema pentru acasă: Realiza‑i func‑ii care să satisfacă următoarele cerin‑e (nu simul
• Returnează elementul minim dintre cele trei argumente de acelaşi tip a
• Ini‑ializează elementele unei structuri (argumentul va fi transmis pri
const), nu are valoare de retur.

Observaţie
Această lec‑ie va trebui să fie completată cu o lec‑ie de laborator.

Proiect de tehnologie didactică


Liste simplu înlănţuite, alocate dinamic

Disciplina: –
Clasa: –
Profesor: –
Data: –
Unitatea de învăţare: Structuri de date de tip listă simplu înlăn‑uită, alocată di
ANEXE 1 42

Detalieri de conţinut: Abordarea lec‑iei presupune cunoaşterea de către elevi a


dinamice a variabilelor, alocarea şi eliberarea efectivă a zonelor de memor
cutipulpointerşitipulreferin‑ă,deosebireadintrevariabileledetippo
Tipul lecţiei: Mixtă (verificare şi comunicare de cunoştin‑e)
Competenţe acţionale
La sfârşitul acestei lec‑ii, elevii vor fi capabili:
– să poată defini o structură de date de tip listă simplu înlăn‑uită;
– săcunoascăşisăfoloseascăînaplica‑iiprincipaleleopera‑iicaresepotefectu
(elementele) unei liste simplu înlăn‑uite;
– să identifice situa‑iile în care este recomandabilă utilizarea acestei
– să folosească în mod optim în aplica‑ii liste simplu înlăn‑uite.

Metode şi procedee didactice: Conversa‑ia frontală şi individuală, explica‑ia, met


analitică, munca independentă, învă‑area prin descoperire, problematizarea e
Mijloace didactice:Manualul,culegerideprobleme, tabla, calculatorul, retro
iectorul
Momentele lecţiei:
• Momentul organizatoric: maximum două minute, obiectivul urmărit fiind, ‑ des
rea unei atmosfere specifice bunei desfăşurări a activită‑ii didactice car
• Verificarea temei pentru acasă şi a cunoştin‑elor dobândite anterior: c
(aici se poate cumva detalia activitatea concretă a profesorului şi ceea
elevi).
• Captareaaten‑iei,prezentareatitluluişiaobiectivelorlec‑ieinoi:ma
Activitatea profesorului poate fi detaliată sub forma:
a) Se prezintăsituaţie-problemă
o prin care se urmăreşte scoaterea în eviden‑
‑ ă a imp
tan‑ei utilizării unei structuri de date tip listă simplu înlăn‑uită, in
avantajelor pe care le prezintă această structură în condi‑iile impus
b) Se subliniază gama largă de probleme (gestionarea documentelor şi repr
vizualizăriloracestoraîncadruluneiaplica‑iiconcrete,precum ‑ şiaspa
rie liber şi/sau alocat explicit etc.) care vor putea fi solu‑ionate ‑ eleg
tura de date tip listă.

Prezentarea noilor conţinuturi: Durata estimată poate fi de 12 minute. Profesorul poa


prezenta succesiv:
• Definirea nodului – a se revedea capitolul 5.
• Operaţiile care se pot face cu nodurile unei liste simplu înlăde
adăugarea n‑uite:
noduri
la sfârşitul unei liste (se scoate în eviden‑ă cazul când lista este vid
există alte noduri înmodificarea
listă); unui nod identificat prin informa‑ia de no
scoate în eviden‑ă cazul când nodul de modificat nu a fost găsit sau şter- lista e
gerea unui nod identificat prin informa‑ia de nod (se scoate în eviden‑ă cazul
şters este primul sau ultimul din listă şi cazul când acesta nu a fost găs
vidă); inserarea unui nod în listă, înainte sau după un nod reper (se va scoate în e
cazulcândinserareasevarealizaînainteaprimuluinodsaudupăultimu
nodul reper nu a fost găsit sau lista este vidă
parcurgerea (afiş); area con‑inutului) unei
liste simplu înlăn‑uite (se va scoate în eviden‑ă cazul când lista este vid
• Modul de recunoaştere a anumitor instanţe care uşurează implementarea (păstrarea ‑ sfâ
şitului listei pentru a facilita adăugirile, re‑inerea nodului „urmă ‑ ” pen
rile şi inserările înaintea unui nod specificat etc.).
24 ANEXE

Observaţie
Prezentarea opera‑iilor cu nodurile unei liste simplu înlăn‑uite va fi îns
desene sugestive. Se pot introduce şi aici lucruri concrete privind acti
(alte) metode şi procedee didactice.

Asigurarea conexiunii inverse (feedback): Durata estimată este de 4 minute. Profesor


poate solicita elevilor prezentarea unor situa‑ii-problemă similare cu ce
şi pentru rezolvarea cărora se poate folosi o listă simplu înlăn‑uită. Se ‑ va cere
mentezeexempleledate.Eleviivoridentificaasemeneaproblemeşivorpropu
sevafolosistructuradedateînvă‑ată,prezentându-seavantajeleuneias
Prezentarea temei pentru acasă: Durata estimată este de două minute. Din nou, pute
prezentatotulsubformaactivitateprofesor/activitateelev.Astfel,act
presupune realizarea unei implementări nerecursive a func‑iei lui Ackerma
simplu înlăn‑uită (problema a fost rezolvată folosind alocarea statică a vari
implementării). Activitatea elevului ar putea fi descrisă în felul următor: n
propusă spre rezolvare şi de implementare ale profesorului şi cere‑ eventu
indicaţiile
riri suplimentare.

Proiect de tehnologie didactică


Tipul record

Disciplina: –
Clasa: –
Data: –
Profesor: –
Unitatea de învăţare: Tipuri structurate. Tipul înregistrare (Record)
Detalieri de conţinut:Identificareaunornoitipuridedate;proiectareaaplic
rezolvarea unor probleme utilizând instrumente specifice de prelucrar
Tipul lecţiei: Comunicare de noi cunoştin‑e
Timpul acordat: 50 de minute
Obiectiv fundamental: Însuşirea cunoştin‑elor cu privire la crearea propriului
şi a func‑iilor necesare să lucreze cu acesta
Competenţe acţionale:
• Dezvoltarea capacită‑ii de gândire independentă şi a capacită‑ii de comuni
limbajul de programare studiat.
• Gruparea datelor de tipuri diferite în structuri cu organizare omogen
• Stăpânireamodalită‑ilordeacceslacomponenteleuneiînregistrărişiefe
opera‑ii cu acestea.

Competenţe specifice cu efecte asupra personalită‑ii:


• Afective: cultivarea satisfac‑iei de a răspunde corect la problemele ut
• Psihomotorii: viteză şi precizie în exprimarea orală prin utilizarea
‑ limbaj
litate.

Metode şi procedee didactice: Conversa‑ia, explica‑ia, argumentarea unor enun‑


‑ uri
blematizarea, demonstra‑ia, rezolvarea prin algoritmizare.
ANEXE 243

Mijloace didactice: Manualul, tabla, creta, video(retro)proiectorul.


Tipuri de activitate: Frontală, pentru realizarea feedbackului; individuală, pentru ca
elevii să poată fi permanent supraveghea‑i şi îndruma‑i de către profesor în vede
erorilor de exprimare sau de gândire şi a bunei în‑elegeri a noilor cunoştin‑e
Material bibliografic suplimentar:T.Sorin, Informatică pentru clasa a IX-a,EdituraL&S
Infomat, Bucureşti, 1;20 Violeta Hamciuc, Caiet de laborator pentru clasa a IX-a. Teorie
şi aplicaţii,EdituraDaciaEduca‑ional,Cluj-Napoca,1;Mihaela 20 Morar,CorinaMocanu,
Garofi‑a Di‑u, Turbo Pascal. Exerciţii şi probleme, Liceul de Informatică, Suceava, 19 .
Momentele lecţiei:
• Organizare (un minut): se trec în catalog elevii absen‑i, se stabileşte linişt
atmosfera adecvată activită‑ii didactice.

Activitatea profesorului (45 de minute): se actualizează no‑iunile studiate în


‑ lec‑iil
rioare, comunicându-se elevilor enun‑ul unei probleme. De exemplu:
Laexamenuldecapacitate -auînscris
s nelevi.Pentrufiecareelevînscristrebuiem
următoarele informa‑ii:
– numele elevului;
– nota la examenul de matematică;
– nota la examenul de română;
– media la examen;
– mesajul „Admis” sau „Respins”.

Seceresăseafişezelistaeleviloradmişilaexamen.Unelevesteconsiderat
media examenului de capacitate este mai mare sau egală cu cinci.
Profesorul poartă un dialog cu clasa despre modul de rezolvare a proble
despre modalitatea în care vor fi memorate datele. Elevii vor propune (prob
informa‑iilor în cinci vectori, câte unul pentru fiecare tip de informa‑ie. U
tablă pentru a construi un exemplu n = pentru
5 elevi. Profesorul va accentua faptul
pentru a afla datele3,elevului
trebuie selectate elemente din cinci
a[3] , b[3]
vectori:
,
c[3], d[3], e[3], deci opera‑iile de prelucrare a datelor memorate în acest mo
dificil
de realizat. Le comunică elevilor că în limbajul Pascal există tipul înregistr
permite lucrul cu date de tipuri diferite. Profesorul scrie pe tablă tit
înregistrare(Record)”şiprezintăelevilordefini‑iatipului:tipulînregistr
tip de date structurat, care poate con‑ine un număr fix sau variabil de compo
tip sau de tipuri diferite. Componentele unei înregistră câmpurisau ri sunt
articole. Înnumite
func‑iedenumăruldearticole,tipulînregistrarese clasifică
înregistrare fixăastfel:
– con‑ine
un număr fix de componente de tipuri diferite;
înregistrare cu variante – con‑ine un număr
variabil de componente de acelaşi tip sau de tipuri diferite.
În continuare, profesorul va scrie pe tablă modul general de definire a t
va explica elevilor particularită‑ile care apar la definire:

Type nume_tip = RECORD


camp11,camp12,..., camp1i: tip1;
camp21,camp22,..., camp2j: tip2;
....................................................
campn1,campn2,..., campnz: tipn;
END;
24 ANEXE

Împreună cu elevii, profesorul va defini


elev, care
tipulva con‑ine datele din problem
propusă spre rezolvare la începutul oreinşielevi
va grupa
într
-uncei
tablou unidimensional
cu elemente de tip înregistrare.

Type elev = RECORD


nume: string[20];
notam: 1..10;
notar: 1..10;
media:real;
obs: string[10];
END;
Vector = array[1..30] of elev;
Var a: vector;
n: byte;

Activitatea elevilor (în aceeaşi perioadă de timp): Elevii vor fi aten‑i la întrebă
‑ rile pr
sorului şi vor formula răspunsuri la acestea; vor fi antrena‑i în scrierea l
tabloului unidimensional.
Putem reveni şi spune că activitatea profesorului poate continua cu prezent
permise datelor de tip înregistrare.
Modalitatea de acces la componentele unui Record:
– folosind caracterul punct:
nume_variabilă.nume_câmp ;
– folosind instruc‑ iunea
WITH :

with nume_variabila do
begin
prelucrare campuri inregistrare
end;

– atribuirea: opera‑ie permisă între două variabile definite de tip înregis


dacă au acelaşi tip.

Încontinuare,profesorulvaprezentarezolvareaproblemeipropuse ‑ exem
tânddefiecaredatănoilecunoştin‑e,cumarficitireadatelordeintrare(nu
completareaprinprogramacâmpurilor mediaşi obssauafişarearezultatului.Revenind,pu
spune că este de dorit ca elevii să participe activ la oră, răspunzând la între
deprofesor,sănotezeîncaieteceeacenuştiuşisăfieaten‑ilaexplica‑iileprofes
vorfiantrena‑işiînscriereacoduluiprogramului,profesorulpurtândunpe
clasa.
Realizare feedback(douăminute)Profesorul
: confirmă,apreciazărăspunsurilecorect
dacă este cazul, intervine cu explica‑ii suplimentare, în timp ce elevii re
explica‑iile suplimentare şi fac anumite comentarii.
Ultimele trei proiecte de tehnologie didactică ataşate sunt standar ‑
form ultimelor cerin‑e educa‑ionale. Sugerăm cititorului să aducă şi proiectel
prezentat anterior la această formă.
ANEXE 245

Proiect de tehnologie didactică

Şcoala:
Disciplina: Informatică
Clasa: a X‑a
Profilul: Matematică‑informatică, intensiv informatică
Data: –
Profesor: –
Unitatea de învăţare: Tehnici de implementare a algoritmilor: subprograme.
Tema lecţiei:Subprogrameutilizator:defini‑ie,apel,mecanismdetransferapara

Tipul lecţiei: Predare‑învă‑are (transmitere de noi cunoştin‑e)


Durata: 50 de minute
Competenţe generale:
(CG2) Identificarea datelor care intervin într‑o problemă şi a rela‑iilor di
(CG3) Elaborarea algoritmilor de rezolvare a problemelor.
(CG4) Aplicarea algoritmilor fundamentali în prelucrarea datelor.
(CG5) Implementarea algoritmilor într‑un limbaj de programare.
Competenţe specifice:
(CS2.1) Utilizarea corectă a subprogramelor predefinite şi a celor definite d
(CS2.2) Construirea unor subprograme pentru rezolvarea subproblemelor u
(CS3.2) Recunoaşterea situa‑iilor în care este necesară utilizarea unor sub
(CS3.3) Analiza problemei în scopul identificării subproblemelor acesteia.
(CS5.1) Elaborarea unui algoritm de rezolvare a unor probleme din aria cur
specializării.
Competenţe derivate:
La sfâşitul activită‑ii didactice elevii vor fi capabili:
CD1
( Să) analizezeproblemapropusăi ş săidentificesubproblemeleîncarepoatefidescompu
(CD2) Să definească subprograme utilizator corespunzătoare algoritmilor de
fiecărei subprobleme.
(CD3) Să justifice alegerea modului de transfer al parametrilor.
(CD4) Să apeleze adecvat subprogramele realizate în vederea rezolvării prob
(CD5) Să implementeze secven‑e de cod C++ pentru rezolvarea cerin‑elor problem
propuse.

C1. Competenţe cognitive


La sfârşitul lec‑iei, elevii vor fi capabili:
C1
( să: ) 1 . analizezefiecareproblemăiş săidentificesubproblemeleîncarepoatefidescompus
C1
( să :)2. conceapăalgoritmulderezolvarepentrufiecaresubproblemăaaplica‑ieipr
(C1.3): să identifice tipurile de parametri adecva‑i şi modalitatea lor de tra

C2. Competenţe afective


La sfârşitul lec‑iei, elevii vor fi capabili:
(C2.să
1): conştientizezenecesitateamodularizăriisolu‑ieiprinfolosireasub
(C2.2): să dovedească curiozitate şi interes pentru no‑iunile prezentate.

C3. Competenţe atitudinale/comportamentale


La sfârşitul lec‑iei, elevii vor fi capabili:
246 ANEXE

(C3.1): să explice importan‑a dezvoltării modulare a aplica‑iilor complexe, cu aj


subprogramelor;
(C3.2): să argumenteze alegerea modului de transfer al parametrilor.

C4. Competenţe acţionale


La sfârşitul lec‑iei, elevii vor fi capabili:
(C4.1): să utilizeze corect în aplica‑ii no‑iunile teoretice însuşite;
(C4.2): să implementeze corect în C++ subprogramele discutate.

Strategii didactice
Principii didactice:
– principiul înşuşirii conştiente şi active a cunoştin‑elor;
– principiul accesibilită‑ii;
– principiul legării teoriei de practică.

Metodeşiprocedeedidactice:problematizarea(P),algoritmizarea‑ (A),conver
tică (Cv), explica‑ia (E), demonstra‑ie (D).
Forme de organizare: lucrul frontal.
Forme de dirijare a învă‑ării:
– independentă;
– dirijată de profesor prin mijloacele de învă‑are.

Metode de evaluare:
– evaluare continuă pe parcursul lec‑iei;
– apreciere verbală.

Resurse materiale:
– culegeri auxiliare;
– tablă;
– proiector.

Referin‑e bibliografice:
[CŞ ], [K1 ], [CLR ].
Structura lec‑iei pe secven‑e de instruire
MD (metode
CS/CD Min. Etapele lecţiei – activitatea elev‑profesor
didactice)
2’ Moment organizatoric
Profesorul: verifică frecven‑a elevilor, verifică existen‑a resurselor materiale
Elevii: se pregătesc pentru oră – deschid caietele
3’ Captarea atenţiei
Profesorul: anun‑ă tema lec‑iei, competen‑ele pe care urmăreşte să le formeze şi explică modul
‑ de desfă
şurare a orei.
Elevii: răspund solicitărilor profesorului, cer lămuriri.
Desfăşurarea lecţiei

40’ Dirijarea învăţării


Profesorul le propune elevilor spre analiză şi rezolvare o problemă care să îi ajute să ‑ conştientizeze neces
ANEXE

tatea descompunerii acesteia în subprobleme şi importan‑a rezolvării modulare.


Problema: Date două numere naturale, nenule, a şi b ( 0 < a, b < 105), să se decidă dacă sunt nume- P
re prime gemene saunumere prietene.
Defini‑ie:
1. a şi b suntprime gemene dacă şi numai dacă sunt consecutive impare şi prime5, (exemplu:
7, 17,
19 etc.);
2. a şi b suntprietene dacă şi numai dacă b = 1 + (suma divizorilor proprii ai lui
a) şi a = 1 + (suma divizorilor proprii ai lui b) (exemplu: 220, 284).

Elevii: analizează problema, identifică secven‑ele de opera‑ii care se repetă pentru date diferite: tes
CD1 primalitate şi suma divizorilor unui număr şi conştientizează avantajul de a le rezolva modular.

C1.1 Profesorulvapuneîntrebări,stimulândprinconversa‑ieparticipareaactivăaelevilorlaorăÎntrebă . rip


• Ce prelucrări se repetă în algoritmul de rezolvare?
• Prin ce date diferă fiecare prelucrare care se repetă?
247

• Ar fi util să definim o singură dată o prelucrare, de exemplu testul de primalitate, apoi să o solicităm
se execute de oricâte ori am avea nevoie?
CD2 • Ce avantaje ar aduce această modularizare?
248
Răspunsurile aşteptate ale elevilor:
C2.1 • Se repetă testul de primalitate şi suma divizorilor unui număr, algoritmi care trebuie
Cv aplica‑i o
b.
a şi apoi lui
• Implementareauneisinguresecven‑edecodpentrufiecarealgoritmşiutilizareaacesteialace
cele două date a şi b este evidentă
• Alte avantaje ale unei astfel de modularizări ar fi claritatea, reutilizarea ‑ codului pentru
se, simplificarea codului sursă, uşurin‑a rezolvării unor subprobleme mai simple.

Comunicarea de noi cunoştinţe


Profesorul scrie pe tablă titlul lec‑iei noi apoi introduce no‑iunea de func‑ie în C++, explicând
E modul
declarare, de definire şi de apelare.

Declararea unei funcţii


Într‑un program C++, func‑iile se declară înainte de a fi apelate, înainte
main. de func‑ia

Definiţia unei funcţii.


ANEXE

tip_rezultat nume_functie(lista_ parametri_formali)


//antet
{ declarari date locale //corpul funcţiei
......
instructiuni }

unde:
– tip_rezultat – specifică tipul de date pe care îl returnează func‑ia şi poate fi: întreg
int, (de exemplu:
long, long long), real (de exemplu:float, double), char, pointer (adresă de memorie), void
(vid);
– lista_de_parametri formali – este o listă separată prin virgule, care con‑ine nume de parametri
‑ şi tipuri
le lor, declara‑i individual.
Ofunc‑iepoatesănuaibăparametriformali,cazîncarelistalorestevidă(parantezeleE suntnecesare,c
dacă nu există parametri). Această listă de parametri formali este interfa‑a func‑iei cu toate module
o vor utiliza (apela).
Dacărezultatulfunc‑ieiNUestevoid,eatrebuiesăcon‑inăinstruc‑ return iuni detip prin
expresie;
care se va returna o valoare de tipul precizat. D
Exemplu.
int test(int i,int k,float j) /*antet corect de func‑ie*/
int test(int i,k; float j) /*antet greşit – lista incorectă de parametri formali*/
ATEN,IE!
NU se poate defini o func‑ie în interiorul altei func‑ii!
NU se poate defini o func‑ie într‑o altă func‑ie, deci toate func‑iile au aceeaşi sferă de influen‑ă.

Apelul unei funcţii

nume_functie(lista_parametrilor_actuali)

lista_parametrilor_actuali este formată din variabile, constante sau expresii E, Cvcompatibile c


formali, adică fiecărui parametru formal i se asociază o variabilă, o constantă sau o expresie compatibi
ca tip. Dacă lista de parametri este vidă, apelul se face specificând numele func‑iei urmat de paran
rotunde.
Pentru în‑elegerea conceptelor de defini‑ie şi de apel ale unei func‑ii, precum şi a no‑iunilor de param
actuali şi formali, profesorul poate sugerera o analogie între personajele unei piese de teatr
formali) şi actorii care vor lua locul personajelor la punerea în scenă a piesei (parametrii actual
CD3 Regula fundamentală: Parametrii actuali trebuie să corespundă ca număr, ordine ‑ şi tip cu cei formali (an
tetul func‑iei este un element de interfa‑ă între subprogram şi programul apelant).
Tipuri de parametri şi modalităţi de transfer
a) Parametri de intrare – transmişi prin valoare. La declarare se precizează doar tipul (simplu sau pointer)
şi numele. La apel, se copiază automat valoarea parametrului actual pe STACK (zona de memorie cu
carelucreazăfunc‑iile);oricemodificarearsuportaaceastăvaloareînfunc‑ie,sevadistrugedoarco
nu originalul. La revenirea din apelul func‑iei, valoarea ini‑ială a parametrului este nemodifica
b) Parametri de ieşire – transmişi prin referinţă. La declarare se precizează tipul (simplu sau pointer) şi
numele precedat de simbolul &. Vectorii şi matricele sunt implicit transmişi prin referin‑ă, nu au ne
de &. La apel se salvează automat adresa de memorie (referin‑a) parametrului actual pe STACK, astfel
249

încâtoricemodificarearsuportaacestparametruînfunc‑ie,vafiafectatautomatoriginalul.La
din apelul func‑iei, valoarea ini‑ială a parametrului este modificată definitiv.
250
CD4 Exemplu:
C1.2 Func‑ie care interschimbă valorile a două variabile transmise ca parametri, valorile modificate a
C3.2 fiind furnizate tot
a şi b.prin

void schimba(int &a,int &b) void schimba(int a,int b)


{ int aux=a; { int aux=a;
a=b; a=b;
b=aux; b=aux; D
} }
… …
int a=5, b=2; int a=5, b=2;
schimba(a,b); schimba(a,b);
cout<<a<<’ ‘<<b; cout<<a<<’ ‘<<b;
/* 2 5 */ /* 5 2 */

Elevii notează în caiete, cer lămuriri, răspund întrebărilor profesorului.


Elevi diferi‑i vor scrie la tablă secven‑e de cod C++ care implementează algoritmii discuta‑
‑ i pentru rezo
varea subproblemelor problemei propuse.
ANEXE

CD5 Asigurarea transferului de cunoştinţe A, M


C3.1 Clasei i se cere să urmărească, să corecteze sau să îmbunătă‑ească variantele scrise.
C4.1 bool prim(int n)
{ if (n<2) return false;
for (int d=2; d*d<=n; ++d)
if(n%d==0) return false;
return true;
}
C4.2 int sum_div(int n)
{ int s=0, d=1;
for (d=1; d*d<n; d++)
if (n%d==0) s=s+d+n/d;
if (n%d==0) s=s+d;
return s;
}
...
int a, b;
cin>>a>>b;
if (a%2 && b%2 && prim(a) && prim(b))
cout<<”prime gemene”;
else if (sum_div(a)==b && sum_div(b)==a)
cout<<”prietene”;
else cout<<”nu”;

Profesorul încurajează conversa‑ia, dezvoltarea limbajului de specialitate prin integrarea noi


acordăfeedbackrăspunsurilorelevilor,intervenindcuexplica‑iisuplimentareacoloundeobservă
sau erori de logică ori de exprimare.

Evaluarea
Are loc pe parcurs, prin observarea sistematică a reac‑iilor elevilor şi a muncii ‑ lor independente, p
ANEXE

bare, dezaprobare verbală în urma răspunsurilor date de elevi la întrebări.


3’ Asigurarea retenţiei
Profesorul pune câteva întrebări din lec‑ia nouă: Cv
• Ce este o func‑ie?
• Enumera‑i trei avantaje ale utilizării func‑iilor.
• Care este diferen‑a dintre parametrii formali şi actuali?
• Care este diferen‑a dintre parametrii transmişi prin valoare şi cei transmişi prin referin‑ă?
2’ Tema pentru acasă
Profesorul propune tema pentru acasă, 1‑3 probleme şi/sau0 exerci‑
5‑1 ii de tip grilă din manual,
‑ asemănă
toare cu ce s‑a discutat în clasă, iar elevii notează în caiete.
1 52
25 ANEXE

Proiect de tehnologie didactică

Şcoala: –
Disciplina: Informatică
Clasa: a IX‑a
Profilul: Matematică‑informatică, intensiv informatică
Data: –
Profesor: –
Unitatea de învăţare: Elaborarea algoritmilor de rezolvare a problemelor
‑ şi imp
rea lor într‑un limbaj de programare
Tema lecţiei: Structura repetitivă condi‑ionată anterior

Tipul lecţiei: Lec‑ie de fixare şi formare de deprinderi şi priceperi


Durata:0 de 1 minute
Competenţe generale:
(CG1) Identificarea datelor care intervin într‑o problemă.
(CG3) Elaborarea algoritmilor de rezolvare a problemelor.
(CG4) Aplicarea algoritmilor fundamentali de prelucrare a datelor.
(CG5) Implementarea algoritmilor într‑un limbaj de programare.
Competenţe specifice:
(CS3.1)Analizareaenun‑uluiuneiproblemeşistabilireapaşilorderezolvarea
(CS3.2) Reprezentarea algoritmilor în pseudocod.
(CS3.3) Respectarea principiilor programării structurate în procesul ‑ de el
ritmilor.
(CS5.1) Elaborarea unui algoritm de rezolvare a unor probleme din aria cur
specializării.
(CS5.2) Alegerea unui algoritm eficient de rezolvare a unei probleme.
Competenţe derivate:
La sfâşitul activită‑ii didactice, elevii vor fi capabili să:
(CD1Identifice
) necesitateautilizăriistructuriirepetitivecondi‑iona
fundamental pentru descompunere în factori primi.
(CD2) Reprezinte în pseudocod algoritmul propus folosind structura
cat timp… exe‑
cuta.
(CD3) Să argumenteze eficien‑a algoritmului propus.
(CD4) Să recunoască forme de aplicare a algoritmilor fundamentali discuta‑i
probleme.
C1. Competenţe cognitive
La sfârşitul lec‑iei, elevii vor fi capabili:
(C1.1): să analizeze o problemă, să descrie etapele algoritmului de rezolvare;
(C1.2): să identifice tipul structurii repetitive adecvate;
(C1.3):săscrieînpseudocodalgoritmieficien‑ipentrurezolvareacerin‑elorpr
C2. Competenţe afective
(C2.1): să agumenteze corect alegerea structurilor de control şi eficien‑a a
propus;
(C2.2): să se autoevalueze corect;
(C2.3): să dovedească curiozitate şi interes pentru no‑iunile utilizate.
ANEXE 253

C3. Competenţe psihomotorii


(C3.să
1): utilizezecorectînproblemelepropusealgoritmulfundamentaldedes
în factori primi.
C4. Competenţe acţionale
(C4.1): să identifice structura de control
cat timp… executa;
(C4.2): să descrie modul de utilizare a algoritmului fundamental în rezolvare
propuse;
(C4.3): să scrie în pseudocod algoritmul corect.
Stategii didactice
Principii didactice:
– principiul legării teoriei de practică;
– principiul sistematizării şi continuită‑ii cunoştin‑elor;
– principiul accesibilită‑ii;
– principiul individualizării şi diferen‑ierii învă‑ării.

Metode şi procedee didactice: problematizarea (P), algoritmizarea‑ (A), conver


tală şi individuală (Cv), explica‑ia (E), munca independentă(M), demonstra‑ia (D).
Forme de organizare: lucrul individual şi pe grupe de 2‑3 elevi
Forme de dirijare a învă‑ării:
– independentă;
– dirijată de profesor prin mijloacele de învă‑are.

Metode de evaluare:
– evaluare continuă pe parcursul lec‑iei;
– apreciere verbală;
– evaluare practică.

Resurse materiale:
– fişe de aplica‑ii;
– material bibliografic: culegere de probleme, manual pentru
[CŞ ], [K1 clasa
], a IX‑a,
[CLR ], [L ].

Structura lec‑iei pe secven‑e de instruire


254
CD Min. Etapele lecţiei – activitatea elev‑profesor MD
2’ Moment organizatoric
Profesorul: verifică frecven‑a elevilor, verifică existen‑a resurselor materiale.
Elevii: se pregătesc pentru oră.
4’ Captarea atenţiei
Profesorul: anun‑ă tema lec‑iei, competen‑ele de format şi distribuie fişele de lucru, apoi explică
‑ modul de desfăş
rare a orei.
Fişelecon‑inunnumărdesarciniobligatorii,iarpentrueleviicuperforman‑emaibuneseprevădcâteva
men­tare. Vezi fişa.
Elevii: răspund solicitărilor profesorului, cer lămuriri.
Desfăşurarea lecţiei
Actualizarea cunoştinţelor dobândite în lecţiile anterioare
5’ Profesorul solicită elevilor să descrie modul de func‑ionare a structurii repetitive
cat timp…condi‑
Cv ionate an
executa,apoisăexplicecumseaplicăaceastaîncazulalgoritmuluifundamentaldedescompunereînfact
punând accent pe modalită‑ile de eficientizare a timpului de execu‑ie.
ANEXE

CD2, Elevii: răspund solicitărilor profesorului. Dacă răspunsurile aşteptate nu apar în scurt timp, profesorul
care să răspundă.
C4.2
60’ Dirijarea învăţării
Profesorul solicită elevilor să citească cerin‑ele de pe fişa de lucru. Sunt discutate la tablă câteva
P, Cv
pentru o mai bună în‑elegere a enun‑ului, eviden‑iindu‑se posibilită‑ile de optimizare. Profesorul
‑ pune î
mulând prin conversa‑ie participarea activă a elevilor la oră. Întrebări posibile:
n?
• Care este cel mai mic număr care are aceiaşi factori primi în descompunere ca şi
• Cum putem adapta algoritmul elementar de descompunere în factori primi pentru a determina ace
• Cum putem adapta algoritmul elementar de descompunere în factori primi pentru n este a verifica dacă n
liber de pătrate (nu con‑ine în descompunerea în factori primi niciun factor prim la putere pară)?
• Cum putem calcula numărul de divizori ai unui număr natural
n, folosindnenul
descompunerea în factori primi?
Esteunalgoritmmaieficientdecâtparcurgereadivizorilorpropriiposibilii ş numă
airarea
lui
n?  celorcaresunt
• Cumcalculămnumăruldecifreîn
0 cares‑arterminaprodusulunornumerenaturalecitite?0 perândpânălaciti
• Putem aplica acelaşi algoritm pentru determinarea numărului den!, cifre
0 0 de
< nla<sfârş
109?itul lui
Dacă da, este eficient?
Asigurarea transferului E
CD2. Răspunsurile aşteptate ale elevilor:
– algoritmulelementardedescompunereînfactoriprimi(cuparcurgereaoptimizatăadivizorilorpr
la );

d←2
C3.1 cat timp d*d≤n executa
p←0
C4.1 cat timp n%d=0 executa
n←[n/d]
p←p+1
sfarsit cat timp
daca p>0 atunci A
prelucreaza(d,p)
sfarsit daca
d←d+1
sfarsit cat timp
ANEXE

M
daca n>1 atunci
prelucreaza(n,1)
sfarsit daca

– cel mai mic număr natural care are aceeaşi factori primi în descompunere n se ob‑ine făcând
ca şiprodusul‑ facto
C1.1
rilor primi distinc‑ n, ob‑
i aiinu‑
luii în urma descompunerii în factori primi a acestuia;
– pentru verificarea unui număr liber prelucrare(d,
de pătrate, p) se va înlocui cu verificarea dacă , p%2=0
C4.2
caz în care răspunsul este NU;
E, Cv
– pentru numărul divizorilor n se poate
lui aplica formula lui Euler bazată pe descompunerea în factori primi:
CD1. p1 p2 pk
dacăn=d 1 *d 2 *d k ,unde d1, d2,…dk suntfactoriiprimidindescompunerea n,iarp1, p2,…
lui pk
sunt puterile acestora, numărul divizorilor (p1+1)∙(p2+1)∙…∙(pk+1).
lui n este Acest algoritm are ‑ com
plexitatea T(n)
timp= O( ), întimpcealgoritmulcareparcurgedivizoriiproprii posibilipânăla
[n/2]
CD3.
are complexitatea T(n) = O(n).
– pentru determinarea numărului de cifre 0 de la sfârşitul produsului numerelor naturale ‑ citit
C2.1
25

sară calcularea puterii 2 şi a puterii


lui lui
5 în numerele date, apoi afişarea minimului acestor‑ două puteri, deoa
20’ rece un 0 de la sfârşitul produsului înseamnă o2*5. înmul‑ire cu
256
CD4. – pentru determinarea numărului de cifre 0 den! lanu
sfârş
se va
itul
aplica
luiacelaşi algoritm deoarece
‑ D se obser
vă că în n! este relevantă doar puterea
5, care se
lui
calculează cu formula , unde5k este cea
mai mare putere a 5, mai
luimică sau egală cu n. E

C2.2 Asigurarea intensificării retenţiei


Vorvenilatablăelevidinfiecareechipă,caresăexemplificefunc‑ionalitateafiecăruialgoritmpropusped
C1.3 pentru o mai bună în‑elegere a enun‑urilor. Apoi, un alt elev din aceeaşi echipă va rezolva ‑la tablă şi va expli
ritmul propus, după care va argumenta eficien‑a acestuia.
5’ Elevii notează în caiete algoritmii prezenta‑i, exemplele numerice şi argumentele pentru eficien‑a ac
Profesorul monitorizează activitatea individuală a elevilor, le acordă permanent suport. ‑ Dacă au fost id
şeli repetate la mai mul‑i elevi, se întrerupe lec‑ia pentru o discu‑ie cu toată clasa şi lămurirea necla
C1.3 Profesorul încurajează elevii cu performan‑e superioare să rezolve cerin‑ele suplimentare, insistând a
timp a algoritmilor şi asupra cazurilor particulare.

Evaluarea
– pe parcurs, prin aprobare, dezaprobare verbală în urma răspunsurilor date de elevi la ‑ întrebări sau î
vării sistemative a munii independente;
– la începutul orei, profesorul negociază cu clasa câteva criterii de evaluare a algoritmilor prop
ANEXE

problemelor din fişa de lucru (corectitudinea algoritmului propus, eficien‑a, tratarea cazurilor
de redactare a algoritmului în pseudocod);
– fiecare echipă va prezenta la tablă una dintre problemele rezolvate, astfel încât‑ în final să fie prez
blemele propuse pe fişa de lucru;
C2.2 – evaluare reciprocă (sunt încurajate echipele care au rezolvat aceeaşi problemă cu‑ cea prezentată l
ze solu‑ia propusă de colegii lor);
– la finalul orei, cu note argumentate de rezultatele aplica‑iei realizate.
5’ Aprecierea activităţii
Profesorul face aprecieri privind performan‑ele elevilor, recomandări de recuperare celor care nu a
sarcinile obligatorii şi îi notează pe cei care au fost activi.
Profesorul poate cere elevilor să se autoevalueze.
4’ Tema pentru acasă
Profesorul propune tema pentru acasă, iar elevii notează în caiete.
Tema pentru acasă ar putea fi una sau două probleme asemănătoare cu cele de pe fişa de lucru şi, pentru cei ca
de performan‑e superioare, probleme date la olimpiade şi concursuri de informatică care utilizează a
fundamental sau al‑i algoritmi studia‑i.
ANEXE 257

Clasa:
Tema lecţiei: Structura repetitivă condi‑ionată anterior.

Fişă de lucru

Fien un număr natural nenul,


0 < n < 108. Se cere:
1 . Să se determine cel mai mic număr natural care are aceiaşi factori primi în de
ca şi n.
2 . Să se verifice dacă
n este liber de pătrate (în descompunerea sa în factori pri
factor nu apare la putere pară). Se va afişa răspunsul corespunză
DA/NU. tor
3 . Să se determine numărul de divizori n, folosind
ai lui parcurgerea divizorilor propr
4 . Să se determine numărul de divizori n, folosind
ai lui formula lui Euler.
5 . Să se determine numărul cifrelor
0 de la
de sfârşitul produsului numerelor natu
până la citirea numă0.rului
6 . Să se determine numărul de0cifre
de la sfârşitul n!. lui

Temă
Fien un număr natural nenul, 0 < n < 108. Se cere:
1 . Să se determine cel mai mare factor prim care apare în descompunerea n la o puterelui
nu există, în caz contrar.
impară, dacă există sau să se afişeze mesajul
2 . Săsedeterminecelmaimicnumărnaturalcucaretrebuie n astfelînmul‑
încâtitprodusul
ob‑inutsăfiepătratperfect.Săseafişezedescompunereaînfactoriprimiaace
câte o pereche ded forma
p (divizor exponent) pe o linie.
3 . (* ) Se citeşte x, număr natural,1 < x < 105. Să se verifice dacăx! se dividen.cu

Proiect de tehnologie didactică

Şcoala: –
Disciplina: Informatică
Clasa: a XI‑a
Profilul: Matematică‑informatică, intensiv informatică
Data: –
Profesor: –
Unitatea de învăţare: Grafuri neorientate şi arbori cu rădăcină
Tema lecţiei: Grafuri hamiltoniene, euleriene şi arbori cu rădăcină

Tipul lecţiei: Lec‑ie de recapitulare‑evaluare


Durata: 50 de minute
Competenţe generale:
(CG1) Identificarea datelor care intervin într‑o problemă şi aplicarea
‑ algo
mentali de prelucrare a acestora.
(CG2) Elaborarea algoritmilor de rezolvare a problemelor.
(CG3) Implementarea algoritmilor într‑un limbaj de programare.

Competenţe specifice:
(CS1.1)Transpunereauneiproblemedinlimbajnaturalînlimbajdegrafuri,fol
terminologia specifică.
(CS1.2) Analizarea unei probleme în scopul identificării datelor necesare
modalită‑ilor adecvate de structurare a datelor care intervin într‑o pr
258 ANEXE

CS1
( Descrierea
)3. unoralgoritmisimplideverificareaunorproprietăi ‑ specific
(CS1.4) Descrierea algoritmilor fundamentali de prelucrare a grafurilor şi
acestora într‑un limbaj de programare.
(CS1.8)Aplicareaînmodcreativaalgoritmilorfundamentaliînrezolvareaun
concrete.
Competenţe derivate:
La sfârşitul activită‑ii didactice, elevii vor fi capabili:
(CD1) Să recunoască grafurile hamiltoniene şi euleriene pe baza defini‑iilor şi a
necesare şi suficiente (la grafuri euleriene).
(CD2) Să construiască arborele par‑ial corespunzător parcurgerilor . BF şi DF
(CD3) Să reprezinte un arbore cu rădăcină în formă asecendentă şi descendentă.
(CD4Să ) recunoascăformedeaplicarealealgoritmilorfundamentalidiscuta‑
diverse.
C1. Competenţe cognitive
La sfârşitul lec‑iei, elevii vor fi capabili:
(C1.1): să analizeze o problemă, să descrie etapele algoritmului de rezolvare;
(C1.2): să identifice tipul grafurilor din enun‑;
(C1.3): să scrie în secven‑e de cod pentru parcurgerea DF, BF a unui graf dat.
C2. Competenţe afective
(C2.1): să argumenteze alegerile făcute în subiectele grilă date la test;
(C2.2): să se autoevalueze corect;
(C2.3): să dovedească curiozitate şi interes pentru no‑iunile utilizate.
C3. Competenţe psihomotorii
(C3.1): să utilizeze corect no‑iunile fundamentale de la grafuri neorientat
problemele propuse
C4. Competenţe acţionale
(C4.1): să afişeze muchiile selectate în arbore conform parcurgerii DF sau BF;
(C4.2): să se încadreze în timpul de lucru alocat testului;
(C4.3): să scrie în C++ func‑ii corecte care implementează cerin‑ele.
Stategii didactice
Principii didactice
– principiul legării teoriei de practică;
– principiul sistematizării şi continuită‑ii cunoştin‑elor;
– principiul accesibilită‑ii;
– principiul individualizării şi diferen‑ierii învă‑ării.

Metode şi procedee didactice: problematizarea (P), conversa‑ia frontală şi


(Cv), explica‑ia (E), munca independentă(M).
Forme de organizare: subiectul scris al testului individual
Forme de dirijare a învă‑ării:
– independentă;
– dirijată de profesor prin mijloacele de învă‑are.

Metode de evaluare: evaluare continuă prin test docimologic.


Resurse materiale:
– subiectele scrise pentru test;
– culegeri, manual.

Referin‑e bibliografice:
[CŞ ], [MM ], [IP ], [K2 ].
ANEXE 259

Structura lec‑iei pe secven‑e de instruire

CD Min. Etapele lecţiei – activitate elev‑profesor MD


2’ Moment organizatoric
Profesorul: verifică frecven‑a elevilor, verifică existen‑a resurselo
materiale.
Elevii: se pregătesc pentru oră.
3’ Captarea atenţiei
Profesorul: anun‑ă tema lec‑iei, competen‑ele de format, apoi explică
modul de desfăşurare a orei.
Elevii: răspund solicitărilor profesorului, cer lămuriri.
Desfăşurarea lecţiei
CD1 Actualizarea cunoştinţelor dobândite în lecţiile anterioare
’0 1 Profesorul solicită elevilor:
CD2 – să definească no‑iunile de graf hamiltonian, graf eulerian, arbor
cu rădăcină, în termeni de teoria grafurilor; Cv
C1.2 – sădescriemecanismuldeparcurgereDFşiBFpentrudeterminarea
C1.3 arborelui par‑ial;
– să descrie modalită‑ile de reprezentare descendentă E şi ascende
CD3 unui arbore cu rădăcină.

C3.1 Dirijarea învăţării


CD4 Eleviirăspundlaîntrebărileprofesorului,daupescurt ‑ exemplenu
rice la tablă, care să ilustreze no‑iunile recapitulate.

Evaluarea
30’ Profesorul aplică testul, conceput pe cel pu‑in două numere, în mod
C3.1 echilibrat, aten‑ionează asupra baremului, a timpului M de lucru
C4.1 cerin‑eideautoevaluare.Acordă lamuriri elevilordacă a fost sol
C4.2 Întimpulîncaresupravegheazăeleviicaredautest,profesorulleu
C4.3 reşte comportamentul, monitorizându‑i totodată‑ în abordarea s
telor.
3’ E
Asigurarea feedbackului
La sfârşitul testului, după strângerea lucrărilor, profesorul p
succintrăspunsurilecorecte,pentrucaeleviisă‑şi‑ poatăapreciao
tiv propria presta‑ie.
2’ Tema pentru acasă
Profesorul propune tema pentru acasă, elevii notează în caiete.
Temapentruacasăarputeafiunasaudouăproblemeasemănătoarecu
cele de pe fişa de lucru şi, pentru cei capabili de performan‑
‑ e superi
oare, probleme date la olimpiade şi concursuri de informatică ca
utilizează acest algoritm fundamental sau al‑i algoritmi studi
260 ANEXE

Nume şi prenume
Data
Clasa

Grafuri – lucrare de verificare a cunoştinţelor


Nr. 1

1 . Scrie‑i declarările de date‑ corespunză


toarei ş defini‑iacompletăauneifunc‑ii
arb_DF care primeşte ca parametru
un nodx al unui graf conexncu vâr‑
furi, dat prin matricea de adiacen‑ă şi
afişeazămuchiilearboreluipar‑ ‑ ialob‑i
nutprintraversareaDFSagrafuluidat.
2 . Fie graful neorientat:
a)Adăuga‑iunnumărminimdemuchii
astfel încât graful să fie eulerian.
Scrie‑i lista muchiilor adăugate.
b) Care este numărul maxim de muchii de eliminat din graful ini‑ial astfel în
rămână conex?
c) Pe graful ini‑ial, pune‑i în eviden‑ă un subgraf hamiltonian
5 vârfuri.cu
Dacă există,
scrie‑i nodurile care formează subgraful, altfel justifica‑i de ce nu est
3 .
a) Desena‑i arborele şi scrie‑i vectorul de „ta‑i” corespunzător arborelui
8 noduri, numerotate 1 la
de8,ladat prin lista alăturată a descenden‑ilor
(fiilor)?
b) Care este înal‑imea arborelui?
c) Care sunt frunzele arborelui?
4 . Determina‑i numărul maxim de muchii din care poate fi format un graf euleria
vârfuri.
5 . Scrie‑ideclarărilededatecorespunzătoareşidefini‑iacompletă auneifunc
hamilto‑
nian care primeşte ca parametrii
x, un şir de noduri, şi prinlg
şi lungimea acestuia şi
returnează1 dacă şirul reprezintă un ciclu hamiltonian al unui n vârfuri,
graf conex cu
dat prin matricea de adiacen‑0 altfel.ă şi

Barem
1. ,5 puncte.
2. 0,75 * 3 = 2, 5 puncte.
3. 0,75 * 3 = 2, 5 puncte.
4. 1 punct.
5. 2 puncte.

Se acordă un punct din oficiu.


Timp de lucru: 30 min.
La acest test cred că iau nota: . .
ANEXE 1 62

Rezolvare şi barem detaliat

1 . 0,25 p. – declarare date; 0,25 p. – verificare adiacen‑ă; 0,25 p. – verificare nod nevizi‑
tat; 0,25 p. – afişare muchie; 0,25 p. – marcare nod vizitat; 0,25 p. – utilizare parcur ‑
gere DF.

int a[NMax+1][Max+1], n, uz[NMax];


/* variabile globale: n = număr noduri, a = matricea de adi‑
acenţă;
uz[i]=1, dacă nodul i a fost parcurs în DF şi 0, altfel */

void arb_DF(int x)
{
uz[x]=1;
for (int i=1; i<=n; i++)
if (a[x][i]==1 && uz[i]==0)
{
cout<<x<<’ ‘<<i<<’\n’;
DF(i);
}
}

2 .
a) [2,5], [8,4].
b) Din cele 10 muchii elimin
3 muchii. Vom ob‑ine un graf par‑ial
conex minimal care
va fi arbore şi va avea
8 – 1 = 7 muchii.
c) Subgrafulhamiltonian 5vârfuri
cu poatefiindusdemul‑ {1, imea
2, 3, 4, 7}.
d) Desena‑i arborele şi scrie‑i vectorul de „ta‑i” corespunzător arborelui
8 noduri, numerotate 1 la
de8,la
dat prin lista alăturată a descenden‑ilor
(fiilor)?
3.
a) Tata = (3, 6, 0, 1, 8, 1, 1, 3).
= 3.
b) Înal‑imea arborelui
c) Frunzele arborelui:
2, 4, 5, 7.

4 . Numărul maxim de muchii din care poate fi format un


graf eulerian 20cu
de vârfuri se ob‑ine pentru graful
regulat cu
20 de vârfuri, fiecare având 18gradul
şi este
egal cu (18 * 20) / 2 = 180.
Grafulcomplet 20cu
devârfurinuesteeuleriandeoarece
toate vârfurile19, aucare gradul
este impar.
5 . 0,25 p. – declarare date; 0,25 p. – verificare lungime; 0,25 p. – verificare egalitate nod
ini‑ial şi final în ciclul hamiltonian; 0,25 p. – verificare adiacen‑ă; 0,25 p. – verificare
noduri distincte; 0,25 p. – marcare nod; 0,25 p. – antet corect; 0,25 p. – returnare
rezultat corect.
262 ANEXE

int a[NMax+1][Max+1], n, uz[NMax];


/* variabile globale: n = număr noduri, a = matricea de adi‑
acenţă;
uz[i]=1, dacă nodul i face parte din ciclul hamiltonian şi
0, altfel */

int hamiltonian(int x[], int lg)


{
if (lg!=n || x[1]!=x[lg]) return 0;
for (int i=1; i<lg; i++)
{ if (a[x[i]][x[i+1]]==0) return 0; //nu sunt adiacente
if (uz[x[i]]==1) return 0; //nodurile nu sunt distincte
uz[x[i]]=1;
}
return 1; }
Anexa 2

Subiecte date la concursuri de spec

În această anexă furnizăm (ca modele) câteva seturi de subiecte date în decu
aniladiverseconcursurialeelevilorşiprofesorilor.Acoloundeafostpos
înso‑ite de baremele corespunzătoare de rezolvare, nu însă şi de rezolvările în
doarindicămmodalitateaîncares‑aconstruitunbarem,i ş nubaremulînsine.Grupar
asubiectelorafostfăcutăînfunc‑iedescopulşifinalitateaconcursurilor,du
A. Probleme date la bacalaureat şi olimpiade.
B. Probleme date la admiterea la Facultatea de Informatică, Universitat
Cuza”, Iaşi.
C. Subiectedatelaconcursuriledeob‑inereadefinitivatuluişi/saugrad
pentru profesorii din învă‑ământul preuniversitar (jude‑ele arondate
şi Inspectoratului Şcolar Jude‑ean Iaşi).

A. Probleme date la bacalaureat şi olimpiade


Examenul de bacalaureat naţional 2015
Proba E. d)
Informatică
Limbajul C/C++
Varianta 9

Filiera teoretică, profilul real, specializările: matematică‑informatică şi matematică‑infor-


matică intensiv informatică
Filiera vocaţională, profilul militar, specializarea matematică‑informatică

• Toate subiectele sunt obligatorii. Se acordă0 puncte


1 din oficiu.
• Timpul de lucru efectiv este de 3 ore.
• În rezolvările cerute, identificatorii utiliza‑i trebuie să respecte pr
în lipsa unor precizări explicite, nota‑iile trebuie să corespundă cu semnif
acestora (eventual în formă prescurtată).
• În programele cerute, datele de intrare se consideră corecte, validar
necesară.
264 ANEX

SUBIECTUL I (30 de puncte)

Pentru itemul 1, scrie‑i pe foaia de examen litera corespunzătoare răspunsulu


1. Variabilaîntreagăxmemoreazăunnumărnaturalcucelpu‑inpatrucifrenenul
Expresia C/C++ a cărei valoare este egală cu cifra sutelor acestui număr este
(4 p.)
a) x/0 ; 1 b) x%0 ; 1 c) (x/0; )%1 d) (x/0 )%1

2 . Se consideră algoritmul de mai jos, reprezentat în pseudocod.


citeşte n,k
(numere naturale, k>1)
pm ← 0
i ← 1
┌cât timp i≤n execută
│ x ← i
│ p ← 0
│┌cât timp x%k=0 execută
││ x ← [x/k]
││ p ← p+1
│└■
│┌dacă p>pm atunci
││ pm ← p
│└■
│ i ← i+1
└■
scrie pm

S‑anotatcua%brestulîmpăr‑iriinumăruluinaturalalanumărulnatural [c] ne
partea întreagă a numărului real c.
a) Scrie‑i valoarea afişată dacă se citesc, în această ordine, numerele
(6 p.) 7 şi 2.
b) Dacă pentru variabila k se citeşte numărul 5, scrie‑i cea mai mică şi cea mai m
valoarecarepotficititepentru astfel
variabila
încât,înnurmaexecutăriialgoritm
pentru fiecare dintre acestea, valoarea afişată să fie 3. (4 p.)
c) Scrie‑i în pseudocod un algoritm echivalent cu cel dat, înlocuindcât prima
timp...execută cu o structură repetitivă de tip
pentru...execut ă. (6 p.)
d) Scrie‑i programul C/C++ corespunzător algoritmului dat. (10 p.)

SUBIECTUL II (30 de puncte)

Pentru fiecare dintre itemii 1 şi 2 scrie‑i pe foaia de examen litera corespunză


‑ t
lui corect.
1. Variabila c, declarată astfel,

struct carte
{ char titlu[21];
float pret;
} c;
ANEXE 265

memorează titlul şi pre‑ul unei căr‑i. Expresia C/C++ a cărei valoare reprezintă pr
căr‑ii respective majorateste:
cu 50%

a) c.pret*3/2; b) pret.c*3/2; c) c(pret)*3/2; d) pret


[c]*3/2.

2 . Un arbore cu 37 de noduri, numerotate de la 1 la 37, are ca rădăcină nodul numerotat


1, iar tatăl fiecărui nod [2, 37 i (iÎ]) este numerotat cu partea întreagă a rădăcinii
a lui( i[#i]). Numărul de frunze ale arborelui este: ( 4 p.)

a) 36; b)1; 3 c)1; 2 d) 6.

Scrie‑i pe foaia de examen răspunsul pentru fiecare dintre cerin‑ele următ

3 . Ungrafneorientatcu8noduri,numerotatedela1la[18,are ,2 ],muchiile
[1,6 ], [4,  6 ],
[3, 6 ], [6,5 ], [5,3 ], [3,4 ], [7,8 ], [8,2 ].Enumera‑i trei noduri care nu apar‑in nici un
ciclu în acest graf. (6 p.)

4 . Fiind date două şiruri de caractere a şi b, îl numim pe a prefix al lui b dacă a est
cubsaudacăbsepoateob‑inedinaprinalipirealadreaptaaunornoicaract
a şi b pot memora câte un şir cu cel mult 20 de caractere. Ştiind că variabila b
ini‑ializată cu un şir format dintr‑un număr par de caractere, scrie‑i‑ o secven
‑iuni în urma executării căreia variabila a să memoreze un prefix al lui b a cărui
să fie jumătate din lungimea lui b.

Exemplu: dacă b memorează şirul aurari, atunci a memorează şirul


aur. (6 p.)

5 . Scrie‑i un program C/C++ care citeşte de la tastatură un număr[2natural


, 20 ]), n (nÎ
apoi n numere naturale din[0intervalul
,04 1 ], reprezentând, de la stânga la dreapt
această ordine, valorile elementelor aflate pe prima linie a unui tabl
n linii şi n coloane. Programul construieşte în memorie tabloul, ini‑ ‑ ializâ
mente, astfel încât fiecare linie să se ob‑ină prin permutarea circulară a e
anterioare, de la stânga spre dreapta, cu o pozi‑ie, ca în exemplul de mai jo
Programul afişează pe ecran tabloul ob‑inut, fiecare linie a tabloului pe
ecranului, elementele de pe aceeaşi linie fiind separate prin câte un s

Exemplu: dacă se citesc numerele n = 4, apoi 1, 3, 2 se ob‑ine tabloul: (10 p.)

1 1 3 2
2 1 1 3
3 2 1 1
1 3 2 1
266 ANEXE

SUBIECTUL III (30 de puncte)

Pentru itemul 1, scrie‑i pe foaia de examen litera corespunzătoare răspunsulu


1 . Utilizând metoda backtracking, se generează toate numerele naturale din i
[10 , 9 ] care au suma cifrelor egală cu 5. Primele cinci solu‑ii ob‑inute sunt, în
ordine,3,04 1211 , 13 40. Utilizând acelaşi algoritm, se generează toate numerele
naturale din intervalul [10 , 9 ] care au suma cifrelor egală cu 6. Al treilea număr
generat este: (4 p.)

a)0 5; 1 b)023; 1 c)1; 03 1 d)1. 04 1

Scrie‑i pe foaia de examen răspunsul pentru fiecare dintre cerin‑ele următ

2. SubprogramulFestedefinitalăturat.Scrie‑
‑ void
iceseF(char
afişeac)
ză în urma apelului de mai jos. { if(c>=’a’)
F( ’d’) ; (6 p.) { cout<<c;
printf(“%c”,c);
F(c‑1);
}
}

3 . Şirul lui Fibonacci (1, 2, 3 5, 8 13,…)2 se defineşte astfel:


f1 = 1, f2 = 1 şi fi = fi ‑ 1 + fi ‑ 2 pentru orice număr natural i, i F 3.
Subprogramul Fibo are un singur parametru, n, prin care primeşte un număr
(nÎ[1,  30 ])Subprogramul
. returneazăaln‑leatermenimparalşiruluiluiFibona
defini‑ia completă a subprogramului.

Exemplu: dacă n = 6, subprogramul returnează numărul1. 2 (10 p.)

4 . Fişierul bac.txt con‑ine un şir de cel mult un milion de numere naturale din i
[0,  02 1 ], separate prin câte un spa‑iu. Se cere să se determine toate perec
formate din termeni ai şirului aflat în fiş – x Fier,
2), astfel
x şi y (y  încât să nu existe
niciuntermenalşiruluicaresăapar‑inăintervalului(x,y).Numereledinfieca
sunt afişate pe câte o linie a ecranului, în ordine strict crescătoare
spa‑iu,iardacănuexistănicioastfeldepereche,seafişeazăpenu ecran mesajul
exista .
Pentru determinarea numerelor cerute utiliza‑i un algoritm eficient
al timpului de executare.

Exemplu: dacă fişierul con‑ine numerele


5 9 012 8 11 31 5 14 6 7 04 1 0 5 94 7
atunci pe ecran se afişează, nu neapărat în această ordine, perechile
05
15 40
1 945

a) Descrie‑i în limbaj natural algoritmul utilizat, justificând (4 p.) eficien


b) Scrie‑i programul C/C++ corespunzător algoritmului descris. (6 p.)
ANEXE 267

Examenul de bacalaureat naţional 2015


Proba E. d)
Informatică
Barem de evaluare şi de notare
(comun pentru limbajele C/C++ şi Pascal)
Varianta 9

Filiera teoretică, profilul real, specializările: matematică‑informatică, matematică‑infor-


matică intensiv informatică
Filiera vocaţională, profilul militar, specializarea matematică‑informatică

• Se punctează oricare alte modalită‑i de rezolvare corectă a cerin‑elor.


• Nu se acordă punctaje intermediare, altele decât cele precizate explic
acordă frac‑iuni de punct.
• Se acordă0 puncte
1 din oficiu. Nota finală se calculează prin împăr‑irea punctaju
acordat pentru lucrare la0. 1
• Utilizarea unui tip de date care depăşeşte domeniul de valori precizat ‑ în e
tată dacă acest lucru nu afectează corectitudinea în func‑ionarea program
• Se vor lua în considerare atât implementările concepute pentru compi
cât şi cele pentru compilatoare pe 32 de bi‑i.

SUBIECTUL I (30 de puncte)

1. d 4 p.
2. a) Răspuns corect: 2 6 p.
b) Răspuns corect: 125, 624 4 p. Se acordă câte 2 p. pentru fiecare
‑ valoa
re conform cerin‑ei.
c) Pentru algoritm pseudocod corect 6 p. (*) Se acordă numai 2 p. dacă algorit‑
– echivalen‑aprelucrăriirealizate,5 p. mul are o structură repetitivă de t
conform cerin‑ei (*) indicat, principial corectă, dar nu e
– corectitudinea globală ‑ a1 p.algorit
echivalent cu cel dat. Se va‑ puncta o
1
mului ceformăcorectădestructurărepetit
conform cerin‑ei.
d) Pentru program corect 10 p. (*Se ) acordănumaip.
2 dacădoaruna
– declararea tuturor variabilelor
1 p. dintre instruc‑iuni este corectă.
– citire corectă 1 p.
– afişare corectă 1 p.
– instruc‑iune de decizie corectă
2 p.
– instruc‑iunirepetitive3 p.corecte)*(
– atribuiri corecte 1 p.
– corectitudine globală‑ a 1 p. progra
1
mului
268 ANEXE

SUBIECTUL II (30 de puncte)

1. a 4 p.
2. b 4 p.
3. Pentru ră spuns corect 6 p. Se acordă câte 2 p. pentru fiecare nod
enumeratconformcerin‑ei(oricaredin
nodurile 1, 2 7, 8).
4. Pentru rezolvare corectă 6 p. Se acordă câte 2 p. pentru fiecare aspect
al cerin‑ei (ob‑inerea unui prefix
‑ al şiru
lui, lungimea prefixului, memorarea în
variabila indicată).
5. Pentru program corect 10 p. (*) Se acordă câte 2 p. pentru fiecare
– declararea variabilei de tip 1 p. tablou
aspectalcerin‑ei(plasarea ‑ conformc
– citirea elementelor aflate 1 p. pe prima
rin‑ ei a primului element al unei li
linie 6 p. plasarea conform cerin‑ei a celorla
– memorareavalorilorelementelor 1 p. con­
elemente ale unei linii, ob‑‑ inerea t
form cerin‑ei (*) 1 p. ror elementelor tabloului).
– afişarea unui tablou bidimensional
– declarareai ş citireavariabilelorsimple,
1
corectitudineglobalăaprogramului

SUBIECTUL III (30 de puncte)

1. b 4 p.
2. Ră spuns corect: dcba 6 p. Se acordă numai 3p. pentru răspuns
par‑ial corect, care include secven
dcb, sau pentru şirul abcd.
3. Pentru subprogram corect 10 p. (*) Se acordă câte 1p. pentru fiecare
– antetul subprogram (*) 2 p. aspect al antetului structură( , de
– determinareanumăruluicerut 6 p. rarea
(* ) parametrului)conformcerin‑ei.
– instruc‑ iunea/ instruc‑ iunile1 p. (*Se
) acordă decâte2p.pentrufiecare
retur
­nare a rezultatului aspect al cerin‑ei (termenul şirul
– declararea tuturor variabilelor
‑ 1 p. termenul lo impar, numărul de–ordine 
cale, corectitudinea globală a sub­ inclusiv cazul în care n < 3).
1
programului
4. a) Pentru ră spuns corect 4 p. (*) Se acordă punctajul chiar dacă
– coeren‑a explicării metodei2 p.(*) metoda aleasă nu este eficientă.
– justificarea unor elemente‑ 2 p. de efi
cien‑ă
b) Pentru program corect 6 p. (*) Se acordă punctajul chiar dacă
– opera‑iicufişiere:declarare,
‑ 1 p. presolu‑ia propusă nu prezintă elemente
gătire în vederea citirii, citire de eficien‑
din ă.
fişier
ANEXE 269

– determinarea perechilor3 p.cerute


(*Se
) acordă (*, câte1p.pentrufiecare
*) condi‑ieimpusăperechilor –xx,y(y 
– afişareadatelorconformcerin‑
1 p. Fei 2, interval
şi (x, y ) care să nu con ‑
tratarea cazului
nu exista ‑inăniciuntermenalşirului,perechi
– utilizarea unui algoritm distincte).
1 p. eficient
(* ) (* Se
) acordăpunctajulnumaipen ‑
truunalgoritmliniar(decomplexit
O(n)).
Osolu‑ieposibilăutilizeazăunvecto
de apari‑ii ( în care i
este
v 1 dacă
valoarea i apare în şir sau 0 altfel
actualizatpemăsuracitiriidatel
fişier.Vectoruldeapari‑iiesteparcu
o singură dată după completarea sa,
memorându‑se la fiecare pas ultim
doi indici i ş i j (i<j)cuproprieta ‑
tea că valorile i
şi v j
vsunt nenule şi
j   – i F 2, care reprezintă fiecare
dintre perechile cerute.
1. Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate

Examenul de bacalaureat naţional 2015


Proba E. d)
Informatică
Limbajul C/C++
Varianta 5

Filiera teoretică, profilul real, specializările: matematică‑informatică, matematică‑infor-


matică intensiv informatică
Filiera vocaţională, profilul militar, specializarea matematică‑informatică

• Toate subiectele sunt obligatorii. Se acordă0 puncte


1 din oficiu.
• Timpul de lucru efectiv este de 3 ore.
• În rezolvările cerute, identificatorii utiliza‑i trebuie să respecte pr
în lipsa unor precizări explicite, nota‑iile trebuie să corespundă cu semnif
acestora (eventual în formă prescurtată).
• În programele cerute, datele de intrare se consideră corecte, validar
necesară.

SUBIECTUL I (30 de puncte)

Pentru itemul 1, scrie‑i pe foaia de examen litera corespunzătoare răspunsu


1 . Expresia C/C++ alăturată are valoarea:
(4 p.) 4+5%7*2
a) 4 ; b) 8; c) 9; d) 14.
0 72 ANEXE

2. Se consideră algoritmul ală turat, reprezentat citeşte m, n în


(numere natura‑
pseudocod. le, m ≤ n)
S‑a notat cu a%b restul împăr‑irii numărului ‑ nr← 0
natu
ral a la numărul natural nenul [c] partea
b şi cu ┌pentru x←m, n execută
│ y ←0
întreagă a numărului real c.
│ z ←x
a) Scrie‑ i valoarea afiş ată dacă se citesc, în
│┌repetă
aceastăordine,numerele9 7şi0 5. 1 (6 p.) ││ y←y*10+z%10
b) Dacăpentrumseciteştenumărul1,5scri 432 ‑ ││ z←[z/10]
e‑icelmaimarenumărcarepoateficitit │└pânăcând
pentru z = 0
nastfelîncât,înurmaexecutăriialgoritmului, │┌dacă x = y atunci
valoarea afişată să fie 0. (4 p.) ││ nr←nr + 1
│└■
c) Scrie‑i în pseudocod un algoritm, echivalent
└■
cu cel dat, înlocuind structura
pentru...
scrie nr
execută cu o structură de tip
cât timp...
execută . (6 p.)
d) Scrie‑iprogramulC/C+corespunză
+ tor‑ algo
ritmului dat. (10 p.)

SUBIECTUL II (30 de puncte)

Pentru fiecare dintre itemii 1 şi 2 scrie‑i pe foaia de examen litera corespunză


‑ t
lui corect.

1. În declarările alăturate, variabilele A şi B memorează


‑ struct punct
coordona
tele câte unui punct în sistemul de coordonate ‑ { xOy.
int x,y; i ex
Indica‑
presia care are valoarea 1 dacă şi numai dacă cele două }A,B;
puncte
coincid.
(4 p.)

a. A[x]==B[x] && A[y]==B[y] b. A.x==B.x && A.y==B.y


c. x[A]==x[B] && y[A]==y[B] d. x.A==x.B && y.A==y.B

Un
.2 graforientatcuvârfuri,
5 numerotatedelala 1 este
,5 repre­
zentat alăturat. Numărul maxim de arce care se pot elimina,
astfel încât graful par‑ial ob‑inut să fie tare
(4 p.) conex este:

a) 2; b) 3; c) 4; d) 5.
ANEXE 1 72

Scrie‑i pe foaia de examen răspunsul pentru fiecare dintre cerin‑ele următ


3 . Un arbore cu 8 noduri, numerotate de la 1 la 8, este reprezentat prin vecto
(4, 0, 3 6, 3 2, 7). Scrie‑i un lan‑ elementar care are o extremitate în rădăcina arbo‑
relui şi cealaltă extremitate în una dintre frunzele acestuia.
(6 p.)
4 . Variabilele i şi j sunt de tip întreg, iar variabila a memorează un tablou b
5 linii şi 5 coloane, numerotate de la 1 la 5, având ini‑ial toate elementele n
‑ 10101
Fără a utiliza alte variabile decât cele men‑ionate, scrie‑ i secven‑a de ins
‑iuni de mai jos, înlocuind punctele de suspensie astfel ‑ 01010
încât, în urma exe
tării secven‑ei ob‑inute, variabila atabloul alăturat. 10101
să memoreze
01010
10101
for(i=1;i<=5;i++)
for(j=1;j<=5;j++) (6 p.)

5. Se consideră un text cu cel mult0 1 de caractere, în care cuvintele sunt for


din litere mari şi mici ale alfabetului englez şi sunt separate prin cât
reprezintă numele unei institu‑ii sau al unei organiza‑ii. Scrie‑i un progra
citeşte de la tastatură un text de tipul precizat şi construieşte în memo
ecran un şir de caractere ce reprezintă acronimul corespunzător numelui c
este format din primul caracter al fiecărui cuvânt al numelui care înce

Exemplu: Dacă şirul citit este


Universitatea de Arte Plastice BUCURESTI
se va ob‑ine şirul
UAPB (10 p.)

SUBIECTUL III (30 de puncte)

Pentru itemul 1, scrie‑i pe foaia de examen litera corespunzătoare răspunsulu


1. Utilizând metodabacktracking, se generează toate şiragurile formate din câte 5 p
distincte din mul‑ imea
{opal, rubin, safir, smarald,}. Două
topazşiraguri sunt distincte
dacă pietrele sunt dispuse în altă ordine. Primele patru solu‑ii ob‑inut
ordine: (opal, rubin, safir, smarald, topaz), (opal, rubin, safir, topaz, smarald), (o
rubin, smarald, safir, topaz) şi (opal, rubin, smarald, topaz, safir). Indica‑i solu‑
trebuie eliminată din enumerarea următoare, astfel încât cele rămase s
generării lor, pe pozi‑ii consecutive: (smarald, safir, opal, topaz, rubin) (smara
topaz, opal, rubin) (smarald, safir, topaz, rubin, opal) (smarald, topaz, opal, r
safir). (4 p.)
a) (smarald, safir, opal, topaz, rubin)
b) (smarald, safir, topaz, opal, rubin)
c) (smarald, safir, topaz, rubin, opal) d) (smarald, topaz, opal, rubin, safir)
27 ANEXE

Scrie‑i pe foaia de examen răspunsul pentru fiecare dintre cerin‑ele următ

void F (long a, int b)


2. Subprogramul F este definit
alăturat.Scrie‑icese { if(a*b!=0)
‑ afiş ea
ză în urma apelului de mai if(a%2==0)
{ cout<<a%10; | printf(”%d”,a%10);
jos.
F(a/10,b‑1);
F(154678,3); (6 p.) }
else
{ F(a/10,b+1);
cout<<a%10; | printf(”%d”,a%10);
}
}

3 . Subprogramul DivImpar are doi parametri, a şi b, prin care primeşte două numere ‑ na
5
rale din intervalul [1,0 1 ]. Subprogramul returnează cel mai mare divizor comun imp
al numerelor a şi b.
Scrie‑i defini‑ia completă a subprogramului.
Exemplu: dacă a = 30 şi b = 60, subprogramul returnează valoarea 15. (10p.)
4 . Fişierul date.in con‑ine un şir de cel mult un milion de numere naturale din i
9
[00, 1 ], separate prin câte un spa‑iu. Şirul are cel pu‑in doi termeni pari şi ce
termeni impari. Se cere să se afişeze pe ecran DAmesajul
dacă şirul aflat în fişier are un
subşir ordonat crescător, format din to‑i termenii pari ai săi, şi un subş ‑ ir ord
cător, format din to‑i termenii impari ai săi. Dacă nu există două astfel de su
programul afişează pe ecran mesajul NU. Pentru verificarea proprietă‑ii cerute uti
algoritm eficient din punctul de vedere al timpului de executare şi al m

Exemplu: dacă fişieruldate.in con‑ine numerele

7 2 5 2 4 3 8
se afişează pe ecran mesajul
DA
iar dacă fişierul con‑ine numerele
5 2 7 2 4 3 8
se afişează pe ecran mesajul
NU

a) Descrie‑i în limbaj natural algoritmul utilizat, justificând(4p.) eficien


b) Scrie‑i programul C/C++ corespunzător algoritmului
descris. (6p.)
ANEXE 273

Examenul de bacalaureat naţional 2015


Proba E. d)
Informatică
Barem de evaluare şi de notare
(comun pentru limbajele C/C++ şi Pascal)
Varianta 5

Filiera teoretică, profilul real, specializările: matematică‑informatică, matematică‑infor-


matică intensiv informatică
Filiera vocaţională, profilul militar, specializarea matematică‑informatică

• Se punctează oricare alte modalită‑i de rezolvare corectă a cerin‑elor.


• Nu se acordă punctaje intermediare, altele decât cele precizate explic
acordă frac‑iuni de punct.
• Se acordă0 puncte
1 din oficiu. Nota finală se calculează prin împăr‑irea punctaju
acordat pentru lucrare la0. 1
• Utilizarea unui tip de date care depăşeşte domeniul de valori precizat ‑ în e
tată dacă acest lucru nu afectează corectitudinea în func‑ionarea program
• Se vor lua în considerare atât implementările concepute pentru compi
cât şi cele pentru compilatoare pe 32 de bi‑i.

SUBIECTUL I (30 de puncte)

1. d 4 p.
2. a) Ră spuns corect: 2 6 p.
b) Ră spuns corect: 543 4 p.
c) Pentru algoritm pseudocod corect 6 p. (*) Se acordă numai 2 p. dacă algo ‑
– echivalen‑aprelucrăriirealizate,
‑ 5 p. ritmulcon are o structură repetitiv ‑
form cerin‑ei (*) formcerin‑ei,principialcorectă,dar
1
– corectitudineaglobalăaalgoritmului
1 p. nu este echivalent cu cel dat. Se v
puncta orice formă corectă de ‑ struc
turărepetitivăconformcerin‑ei.

d) Pentru program corect 10 p. (*) Se acordă numai 2 p. dacă doar


– declarare variabile 1 p. una dintre instruc‑iuni este cor
– citire date 1 p.
– afişare date 1 p.
– instruc‑iune de decizie corectă2 p.
– instruc‑iuni repetitive corecte 3 p. (*)
– atribuiri corecte 1 p.
1
– corectitudine globală a programului
1 p.
274 ANEXE

SUBIECTUL II (30 de puncte)

1. b 4 p.
2. c 4 p.
3. Pentru rezolvare corectă 6 p. Se acordă câte 2 p. pentru fiecare
proprietatealan‑ului(extremitat

‑ialăextremitate
, finalălan‑
, ‑ elemen
tar) conform cerin‑ei.
4. Pentru rezolvare corectă 6 p. (*) Se acordă numai 2 p. dacă doar
– acces corect la un element al1 p.tabloului una dintre proprietă ‑ ile tablo
– atribuireavalorilorindicate (alternan‑a valorilor binare în ca
5 p. elementelor
tabloului (*) unei linii/coloane, toate elemen
suport) este conform cerin‑ei.
5. Pentru program corect 10 p. (*Se ) acordăcâtep.1 pentrufiecare
– declararea corectă a unei variabile1 p. aspect
careal cerin‑ei (identificarea

să memoreze un şir de caractere meilitereaunuicuvânt,identific
– citirea şirului 1 p. unei majuscule, ob‑inerea unui şir
– accesul la un caracter al şirului 1 p. construit cu prima literă a uno
– construirea şirului conform cerin‑ 5 p. cuvinte,
ei (*) caracteresuport ‑ pentru
– afişarea datelor 1 p. nim, construirea în memorie).
– declararea variabilelor simple,‑ 1 p. corecti
1
tudinea globală a programului

SUBIECTUL III (30 de puncte)

1. a 4 p.
2. Ră spuns corect: 157864 6 p. Se acordă numai 3 p. pentru răspuns
par‑ialcorect,careincludesecven‑a864.
3. Pentru subprogram corect 10 p. (*) Se acordă câte 1 p. pentru fiecare
– antetul subprogramului2 p.(*) aspect al antetului (structură, dec
– determinarea numărului6 p. cerut parametrideintrare)conformcerin‑ei
(* ) (* ) Se acordă câte 2 p. pentru fiecare
– instruc‑ iunea de returnare 1 p. proprietate
a a numărului cerut (div
rezul­
tatului comun, impar, maxim).
– declararea tuturor variabilelor1 p.
locale, corectitudine globală a
1
subprogramului
4. a) Pentru ră spuns corect 4 p. Se (*) acordăpunctajulchiardacămetoda
– coeren‑aexplicăriimetodei 2 p. (*) aleasă nu este eficientă.
2x1 p.
– explicarea unor elemente de
eficien‑ă
b) Pentru program corect 6 p. Se
(*) acordăpunctajulchiardacăsolu‑ia
– opera‑ii cu fişiere: declarare,
1 p. propusă nu prezintă elemente‑ de efici
pregătire în vederea citirii,
‑ en‑ă.
ci
tire din fişier
ANEXE 275

– verificareaproprietă‑iiindicate
3 p. (* ) Se acordă numai 2 p. dacă s‑a veri ‑
pentru subşiruri (*, *) ficatproprietateacerutădoarpentr
– afişareamesajuluiconform ‑ 1 p. ce dintre subşiruri sau dacă algoritmul e
rin‑ei principial corect, dar nu conduce
– utilizarea unui algoritm ‑ rezultatul cerut pentru orice set
1 p. efici
ent (* ) de intrare.
(* ) Se acordă punctajul numai pentru
unalgoritmliniar(decomplexitateO(n)),
care utilizează eficient memoria.
O solu‑ie posibilă parcurge cel mult o
dată fiş ierul, memorând atât valoa
ultimuluitermenpar,precumşipeceaa
ultimuluitermenimparşicomparându‑l
dupăcaz,cuvaloareatermenuluicuren
1. Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate

Olimpiada naţională de informatică pentru gimnaziu


Clasa a V‑a

Se consideră două numerele naturale K şi S şi un şir de N numere1 , a naturale


2
,. a N . a
O secven‑ă de lungime K este un subşir format din K elemente aflate pe pozi‑ii con
înşir:a i,a i+1 ,. a i+k‑1 .Parcurgândşiruldelastângaladreapta,începândcuprimu
se elimină prima secven‑ă de lungime K, cu suma elementelor strict mai mare dec
S. În urma ştergerii şirul va avea – K elemente:
N  a1 , a 2,. a N‑K . Opera‑ia de ştergere‑ con
tinuă după aceleaşi reguli până când nu mai există secven‑e care pot fi eliminat

Cerinţe
Să se scrie un program care, citind numerele N, K, S şi cele N elemente din şir, rezo
cerin‑ele:
1. Determină numărul secven‑elor care se vor elimina respectând condi‑ia di
2. Considerând că în şirul citit nu sunt posibile eliminări de secven‑e confo
enun‑, programul determină numărul de elemente
i
din şir cua proprietatea următoare
ştergerea luii
conduce
a la ob‑inerea unui şir în care se mai poate elimina‑ cel pu
ven‑ă de K elemente cu sumă strict mai mare ca S.

Date de intrare
secv.incon‑inepeprimalinieunnumărnaturalP;numărulPpoat
Fişieruldeintrare
aveadoarvaloarea1sauvaloarea2.Adoualiniecon‑ine,înaceastăordine,separ
un spa‑iu, numerele N, K şi S. A treia linie con‑ine, în ordine, elementele şirului, de
prin câte un spa‑iu.

Date de ieşire
Dacă valoarea lui P este 1, se va rezolva numai cerin‑a 1. În acest caz, fişierul de
secv.outvacon‑inepeprimalinieunnumărnaturalreprezentândnumărulsecven‑elo
Dacă valoarea lui P este 2, se va rezolva numai cerin‑a 2. În acest caz, fişierul de
secv.outvacon‑inepeprimalinieunnumărnaturalreprezentândnumărulele
276 ANEXE

şir care au proprietatea că ştergerea fiecăruia în parte ar genera un şir în ca


elimina cel pu‑in o secven‑ă de K elemente cu sumă strict mai mare ca S.

Restricţii şi precizări
0 < N ≤ 1 000 000 şi K ≤ N
0 < S ≤ 1 000 000 000
0 ≤ a1, a2,...aN ≤ 1 000

Pentru rezolvarea corectă a primei cerin‑e se acordă 40 de puncte, iar pentr


corectă a celei de a doua cerin‑e se acordă 60 de puncte.

Exemplu

1 3 Prima secven‑ă de sumă strict mai mare decât 7 începe d


14 3 7 pe pozi‑ia 4 şi este formată din elementele 3 1 4; după
12131452141823 eliminarea ei, şirul devine: 1 2 1 5 2 1 4 1 8 2 3.
A doua secven‑ă ce va fi ştearsă începe de pe pozi‑ia 2 şi
este formată din 2 1 5; după eliminarea ei şirul devine:
12141823
A treia secven‑ă ce va fi ştearsă începe de pe pozi‑ia 4 şi
este formată din elementele 4 1 8; după eliminarea ei,
şirul devine: 1 2 1 2 3 şi nu mai con‑ine nici o secven‑ă
de 3 elemente alăturate de sumă mai mare decât 7
2 2 Două elemente au această proprietate. Dacă elimină ‑ m el
9 7 18 mentul al treilea, de valoare 2, se poate ob‑ine şirul
3 213 3 1 3 3 1, care con‑ine o secven‑ă de 7 elemente de sumă
strictmaimareca18,începândcuelementuldepepozi
1. Dacă eliminăm elementul al patrulea, de valoare 1, se
poate ob‑ine şirul 3 2 3 3 1, care con‑ine o secven‑ă
de 7 elemente de sumă strict mai mare ca 18, începând cu
elementul de pe pozi‑ia 1.

Timp maxim de executare/test: 0,5 secunde


Memorie totală: 16 MB
Dimensiunea maximă a sursei: 5KB

Descrierea soluţiei
Autor: prof. Dana Lica, Centrul Jude‑ean de Excelen‑ă Prahova

FieşiruldenumereA.PentruP=1,solu‑ieO(N).Vomconstruisolu‑iaiterândprinl
de elemente. La fiecare pas vom men‑ine o listă de valori încă neeliminate, la ca
lafinalelementulcurentdinitera‑ie.Dacăprinadăugareaacestuielement,u
ale listei au suma strict mai mare ca S, atunci ştergem ultimele K elemente şi
parcurgerea. Ştergerea se va realiza prin decrementarea cu K elemente a lun
VerificareasumeiultimelorKelementesepoaterealizaeficientfolosi
par‑iale ale listei men‑ionate anterior. Astfel, se va construi vectorul B
ANEX 27

pe pozi‑ia i re‑ine suma primelor i elemente citite. În felul acesta, suma din
y se ob‑ine ca B
[y ]  – B [x  – 1 ].

Pentru P = 2, solu‑ie O(N). Pentru fiecare pozi‑ie X, vom determina dacă ştergerea e
generează o subsecven‑ă de lungime K de sumă strict mai mare ca S. Acest lucru‑ est
valent cu verificarea existen‑ei unei pozi‑ii Y astfel încât:
(1) ( ∑A[i]Y + Ki = Y ) − A[X] > S şi
( 2 ) Y E X E Y + K

Cu alte cuvinte, analizăm secven‑e de lungime K + 1 care con‑in pozi‑ia X şi verific


dacă secven‑a rămasă în urma eliminării lui X are suma strict mai mare ca S. Pentr
fixat, suma dintre paranteze poate fi calculată folosind un vector de sum
O(1)  – cu O(N) precalcularea. Se observă că pentru a verifica dacă există un Y‑ cu propri
tea men‑ionată, este suficient şi necesar să verificăm suma maximală– con‑ dintre para
di‑ionată de Y E X E Y + K. Astfel, vom itera cu X de la 1 la N şi suntem interesa‑i la
fiecare pas de suma maximală de K + 1 elemente consecutive ce con‑ine pozi‑ia X. Pent
determinaacestlucru,vom max dequeue
folosiun încarelafiecarepasXinserămsecven‑a
care începe pe pozi‑ia X şi o eliminăm pe cea care se termină pe pozi‑ – 1. La fiecare
ia X 
pas se adună pozi‑ia la solu‑ii dacă suma maximă deque
dinrespectă condi‑ia 1.

Olimpiada naţională de informatică


Clasa a IX‑a

Fie un şir de numere naturale1 , a


nenule
2
,. a nşia
un număr natural k.

Cerinţă
Să se determine un grup de k numere din şir care au proprietatea că cel mai ma
comun al lor este maxim. Dacă există mai multe astfel de grupuri, se cere acel gr
care suma elementelor este maximă.

Date de intrare
Fişierul
cmmdc.in con‑ine pe prima linie numerele naturale n şi k separate pr
Pe linia a doua se găsesc numerele1 naturale
, a 2,. a n, separate
a prin câte un spa‑iu.

Date de ieşire
Fişierul cmmdc.out con‑ine pe prima linie un număr natural reprezentând cel
divizor comun a exact k numere din şir, maxim posibil. Pe linia a doua, separate pr
spa‑iu şiordonate descrescător, se află cele k numere din şir care dau cel mai mare diviz
comun maxim.

Restricţii şi precizări
• 1 ≤ n ≤ 1 000 000
• 2 ≤ k ≤ 100 000
• k ≤ n
• 1 ≤ ai ≤ 1 000 000, i = 1..n
• Valorile din şir se pot repeta.
278 ANEXE

Exemplu

cmmdc.in cmmdc.out Explicaţie


63 3 Cel mai mare divizor comun care se poate ob‑in
6 9 0 8 15 3 15 9 6 dintr‑un grup de 3 numere este 3, iar cele 3 numere
care dau suma maximă, ordonate descrescător, sun
15, 9 şi 6.

Limită de timp: 1 secundă în Windows şi 1 secundă în Linux


Memorie totală disponibilă: 64 MB
Dimensiunea maximă a sursei: 15 KB

Descrierea soluţiei
Autori:prof.StelianCiurea,Liceul„DomnulTudor”,Drobeta‑TurnuSev
prof. Dan Pracsiu, Liceul „Ştefan Procopiu”, Vaslui

Se construieşte un vector de[i]frecven‑


= de câte
e (vori apare i în şirul de numere dat).
Se face ra‑ionamentul următor: dacă k numere au cmmdc egal cu x, atunci ele sunt fi
cu x, fie sunt multipli ai numărului x.
→ 2 şi pentru0 1 fiecare
Astfel se parcurge cu o variabilă x descrescător intervalul
valoare a lui x se determină dacă există cel pu‑in k numere egale cu x sau multipl
x,cuunalgoritmasemănătorcuCiurulluiEratostene.Aceastădeterminaresef
multiplii lui x descrescător, astfel prima submul‑ime determinată este sol
mare multiplu al lui x care teoretic poate să apară printre cele n numere se
func‑ie de valoarea maximă din şirul a (notată max(a) şi care oricum nu depăşeşte0 1).

Complexitate
O(n) pentru construc‑ia vectorului v. O([max(
max(a)
a)*log
]) pentru determinarea
‑ rezult
tului (unde max(a) e maximul din şirul a).
Expresia de mai sus este aproximarea pentru:

Rezolvări alternative se pot face prin generare de submul‑imi:


– una dintre surse generează o submul‑ime de k elemente, îi calculează cmmdc şi
dacă are cmmdc maxim – 25 puncte;
– cealaltă e optimizată în sensul că se calculează cmmdc după fiecare element
submul‑ime şi, dacă acesta e mai mic decât maximul de până atunci, se trece la
altui element 
– 40 puncte.

În ambele surse alternative se sortează elementele descrescător.


ANEXE 279

Olimpiada judeţeană de informatică


Clasa a X‑a

Se consideră o mul‑ime S care con‑ine N şiruri de caractere formate din lite


alfabetului englezesc.
Un şir de caractere se numeş te în raport cu celelalte şiruri ale mul‑imii da
interesant
există un alt şir în mul‑ime care să‑l con‑ină ca subşir. De exemplu, dacă mul‑imea S con‑ine
şirurile abc, bde şi abcdef, atunci singurul şir este
interesant abcdef, deoarece abc şi
bde nu îl con‑in ca subşir. Mai mult,
abc şi bde sunt subşiruri abcdef,
în deci nu sunt
interesante.

Cerinţe
Fiind dată o mul‑ime S formată din N şiruri de caractere, se cere:
1. Săsedeterminecelmailungşir.Dacăsuntmaimulteşiruriavândaceeaşilungime
se cere cel mai mic din punct de vedere lexicografic.
2 . Să se determine toateinteresante
şirurile din mul‑imea S.

Date de intrare
interesant.in con‑ine pe prima linie două numere naturale pi
Fişierul de intrare ş N,
despăr‑ite prin spa‑iu. Pentru toate testele de intrare, numărul p poate av
sau valoarea 2. Pe următoarele N linii, se găsesc şirurile de caractere, câte un

Date de ieşire
Dacă valoarea lui p este 1, se va rezolva numai cerin‑a 1.
În acest caz, în fişierul deinteresant.out
ieşire se va scrie cel mai lung şir dintre
cele citite. Dacă există mai multe şiruri de aceeaşi lungime, se va scrie cel mai mi
de vedere lexicografic.
Dacă valoarea lui p este 2, se va rezolva numai cerin‑a 2.
În acest caz, fişierul deinteresant.out
ieşire va con‑ine pe prima linie o valoare K
ce reprezintă numărul deinteresante,
şiruri iar pe următoarele K linii, şirurile
interesante în
ordinea în care apar în fişierul de intrare.

Restricţii şi precizări
– 2 ≤ N ≤ 200;
– lungimea unui şir va fi cuprinsă între 1 şi 50 ;
– un subşir al şirului de caractere 0
C1 C2… C kCse defineşte ca fiind o succesiune
‑ de car
tere i1
Ci2 C i3… C ik, unde0 ≤ i1 < i2 < i3 < … < ik ≤ k;
– fişierul de intrarenu conţine şiruri identice.
– pentrurezolvareacorectăaprimeicerin‑eseacordă2de 0 puncte,iarpentruc
se acordă 80 de puncte.
280 ANEXE

Exemple

interesant.in interesant.out Explicaţie


15 abcacaad p =1
abcacaaz Fişierul de intrare con‑ine 5 şiruri.
ad a b c a c a a d este şirul de lungime maximă.
abcacaad Şirul a b c a c a a z are aceeaşi lungime, dar
acd este mai mare din punct de vedere ‑ lexicog
zyt fic.

Aten‑ie! Pentru acest test se rezolvă d


cerin‑a 1.

interesant.in interesant.out Explicaţie


25 2 p =2
abcacaad abcacaad a d, a c d sunt subşiruri ale lui a b c a c a a
ad zayyt d, iar z y t este subşir al lui z a y y t.
zayyt
acd Aten‑ie! Pentru acest test se rezolvă d
zyt cerin‑a 2.

Timp maxim de execu‑ie/test: 1,5 secunde


Memorie totală disponibilă: 8 MB.
Dimensiunea maximă a sursei0 KB 1

Descrierea soluţiei
Autor: Nicu Vlad‑Lauren‑iu, Liceul Teoretic „Mihail Kogălniceanu”, Va

Solu‑ia propusă analizează şirurile pe parcursul citirii din fişier.


Cerin‑a: 1‑20 puncte.
Rezolvareaesteclasicădetermină
: mlungimeamaximăaunuişir,iarpentrulun
se alege şirul cel mai mic lexicografic.
Cerin‑a: 2‑80 puncte.
Rezolvarea cerin‑ei presupune:
– verificarea unui şir dacă este subşir al altui şir;
– utilizarea unei stive care re‑ine şirurile „distincte”.

În func‑ie de tipul de verificare ales, căutare secven‑ială (subşir, caracter)


‑ ,c
nătoare interclasării (parcurgerea paralelă a şirurilor), căutare binară, frecv
precum şi de modul de implementare utilizat, se ob‑in punctaje par‑iale dife
ANEX 1 82

B. Probleme date la admiterea la Facultatea de In


Universitatea „Alexandru Ioan Cuza”, Iaşi
(matematică şi informatică)

Universitatea „Alexandru Ioan Cuza” din IaşAdmitere 


i – studii de licen‑ă
Facultatea de Informatică Sesiunea iulie15 20

Test la informatică
Limbajul C/C++

Se acordă0 puncte
1 din oficiu. Timpul efectiv de lucru este de 3 ore.

SUBIECTUL I (30 de puncte)

Pentru itemul 1, scrie‑i pe foaia de examen litera corespunzătoare răspunsulu


1. Numerele reale x, y, z şi t satisfac inegalită‑ile x < y şi z < t. Preciza‑i care dintre
expresiileC/C++demaijosesteechivalentăcufaptulcăintervalele [x,y ]i
ş [z,t] închise
[x, y ] ∩( [z, t] ≠ ∅) .
au intersec‑ia nevidă (4 p.)
a. !((z > y) || (t < x)) b. (x <= z) || (y >= t)
c. !((x < z) && (t < y)) d. !((x > t) || (y > z))

2 . Seconsiderăalgoritmulalăturat, descris
citeşte n în(număr natural)
pseudocod. x ← n % 0; 1 m ← 1; s ←1
a) Scrie‑ivaloareaafişatădealgoritm dacă n > 9 execută
cât timp
numărul n citit este1.352 (6 p.) ┌ n ← [n / 10]; y ← n % 10
│ dacă (y‑x)*m < 0 atunci
b) Care este cel mai mic număr natural
formatdinpatrucifredistincte │ ┌care ă m > 0 atunci m ← -1
dacpoate
ficititînvarabilanastfel │ └ altfel
‑ încâtalgorit s ← 0
mul să afişeze valoarea 1? (6 p.) │ x ← y
└ scrie s
c) Scrie‑i o secven‑ă de instruc‑iuni care
să folosească doar opera‑ii de adunare
şi scădere şi care să fie echivalentă cu
instruc‑iunea ← [nn
0/ 1 ]. (4 p.)
d) Scrie‑iprogramulC/C+corespunză
+ ‑
tor algoritmului alăturat. (10 p.)

SUBIECTUL II (30 de puncte)

Pentru fiecare dintre itemii 1 şi 2 scrie‑i pe foaia de examen litera corespunză


‑ t
lui corect.
1. Care este numărul maxim de noduri de grad 3 într‑un graf neorientat
(4p.) cu 5 nodu
a) 2; b) 3; c) 4; d) 5.
28 ANEX

2 . Fieungrafneorientatcumul‑imea{1nodurilor
2, 1 . 5 0 }.Douănoduriişijsuntunite
printr‑omuchiedacăşinumaidacămax(i,j)=2*min(i,j)saumax(i,j)=2*min(i,j)+1.
Care este numărul de muchii ale acestui graf? (6 p.)
a)15; 20 b)16; 20 c)14; 20 d)14x2(20 15)/20

Scrie‑i pe foaia de examen răspunsul pentru fiecare dintre cerin‑ele următ


3 . Considerăm codificarea binară a caracterelor, în care fiecărui simbol ‑ îi rev
rea pe 8 bi‑i a codului său ASCII. De exemplu, caracterului ’A’, având codul ASCII 65,
îi va corespunde reprezentarea binară10. Scrie‑ 0 i un program C/C++ care să‑ con
‑ină următoarele func‑ii:
a) Func‑iaconvert_char primeştecaargumentuncaracterşiconstruieşteunt
8 elemente 0 sau 1, reprezentând codificarea binară a caracterului (2 p.) primi
b) Func‑iaconvert_string primeşte ca argument un şir de caractere s şi constr
o matrice cu n linii şi 8 coloane (unde n este lungimea şirului s), linia i a
reprezentând codificarea binară a caracterului de pe pozi‑ (2ia
p.)i din şir.
c) Func‑iasubmatrix_size primeşte ca argument o matrice m formată doar din e
menteiş 0 precum
(1 i
ş dimensiunilesale)i ş determinădimensiuneaceleimatrici
maimarisub­
pătratice a lui m con‑inând elemente având toate aceeaşi(5valoare p.) (fie
( Observaţie: func‑ iile pot avea ş i alte argumente fa‑ ă de cele specificate
Programul va citi de la tastatură un şir de caractere s şi va afişa rezultat
func‑iasubmatrix_size aplicată pe matricea construită de
convert_string aplicată
şirului s.
(1 p.)
Exemplu:Pentruşiruldecaractere
s=”IDEEA”,programulvaafişa3,matriceacorespun

zătoare fiind:

4 .
Fie mul‑imea S = {1, 2. n }, unde n≥ 4 este un număr natural multiplu de 4.
Scrie‑i un program C/C++ care:
a) Citeş te de la tastatură ≥ 4 , precum
numă rulş inun numă r natural p≤( 1 p ≤ n/ 2 ) .
În cazul în care condi‑iile impuse nu sunt îndeplinite, va fi afişat mes
„date
invalide” . (2 p.)
b) Parti‑ ionează mul‑ imea dată S în două submul‑ imi disjuncte∪AB,ş i B ( S = A
A ∩ B = ∅), astfel încât suma elementelor din A să fie egală cu suma eleme
din B. (3 p.)
c) Elimină elementul p din mul‑imea S şi creează o nouă parti‑ie A’, B’ (eventual, ‑ mo
ficând parti‑ia creată la punctul b), astfel ∪ B’, A’
\ {p} = A’ încât S ∩ B’ = ∅ şi
suma elementelor din A’ este egală cu suma elementelor din B’. În cazul î
lucru nu este posibil, va fi afişat mesajul
„partiţie inexistentă” . (5 p.)
Exemplu:Pentrun=S,8 = {18,7 6 5,4 3 2, },parti‑iaini‑ialăeste {18,6 3 A= },
B = {2, 4, 5, 7 }. Dacă p = 1 sau p = 3, va afişa „partiţie inexistentă” . Dacă
p  = 2, parti‑ia modificată este A’ {3, 6 8 = }, B’ = {1, 4 5, 7 }. Dacă p = 4, parti‑ia
modificată este{2A’, 6 8 = }, B’ = {1, 3 5, 7 }.
ANEXE 283

SUBIECTUL III (30 de puncte)

Pentru itemul 1, scrie‑i pe foaia de examen litera corespunzătoare răspunsulu


. 1 Într‑ournăseaflăbile
4 deculoarealbăi
ş bile 3 deculoareneagrăSe
. extragbilelep
şi se re‑ine secven‑a de 7 culori ob‑inută. Câte astfel de secven‑e (4distincte
p.)
a)0; 1 2 b) 35; c) 0;7 d) 840

Scrie‑i pe foaia de examen răspunsul pentru fiecare dintre cerin‑ele următ


2 . Pentru func‑iile F1 şi F2 definite mai jos, ce valoare va returna apelul
(6 p.) F1(34)?
int F2(int x); int F2(int x) {
int F1(int x) { if (x < 10) { return 3 * x;
if (x < 7) { return 3 + x; } }
else { return 2 + F2(x ‑ 2); } else { return 2 * F1(x / 2); }
} }

3. Un puzzle Minesweeper este o matrice de n linii şi m coloane care con‑ine ‑ la fiec


‑ienumărul(0reprezentândunlocliber) –1(reprezentând
sau  ominăPozi‑
). iileadiacente
pozi‑iei (i, j) sunt:
{(i – 1, j – 1), (i – 1, j), (i – 1, j + 1),
(i, j – 1), (i, j + 1), (i + 1, j – 1), (i + 1, j), (i + 1,
j + 1)} ∩ n{0,... n ‑ 1}× {0,... m ‑ 1}.
Opozi‑iei, ( j)dinmatriceestepericuloasădacăcelpu‑inopozi‑iedincele ‑ maxim8po
‑iiadiacente con‑ine o mină. Fie (l, c) o pozi‑ie în matrice.
Zona sigură este compusă din
toatepozi‑iileaccesibiledinl, ( c)urmândundrumformatdinpozi‑iinepericulo
Zona activăcon‑inetoatepozi‑iilezoneisigureşipozi‑iileadiacentezoneisig
rezultat are aceleaşi dimensiuni cu puzzle‑ul şi este definită astfel:
• Dacă (l, c) con‑ine o mină, matricea rezultat va fi chiar puzzle‑ul ini‑ial.
• Dacă (l, c) nu con‑ine o mină, dar este periculoasă, matricea rezultat – 2 peste
con‑ine 
tot, cu excep‑ia pozi‑iei (l, c) , care con‑ine numărul de mine vecine.
• Altfel, matricea rezultat con‑ine pe(i, fiecare
j) din zona
pozi‑activă
ie numărul de mine
adiacente pozi‑iei–(i,2 în j)celelalte
şi  pozi‑ii.

a) Scrie‑i matricea rezultat pentru exemplul (IV). (5 p.)


b) Scrie‑i în limbajul C/C++ o func‑ie care, primind la intrare un puzzle, calcul
matrice (de aceleaşi dimensiuni cu puzzle‑ul) care con‑ine 0 pe pozi‑iile nepe
şi 1 pe pozi‑iile periculoase. (5 p.)
c) Scrie‑i în limbajul C/C++ o func‑ie care:
–primeştecaargumentomatricereprezentândpuzzle‑ulMinesweeperşipo
– construieşte matricea rezultat după cum este descris(10 mai sus.
p.)
284 ANEXE

Universitatea „Alexandru Ioan Cuza”


din
Admitere 
Iaşi – studii de licen‑ă
Facultatea de Informatică Sesiunea iulie15 20

Test la informatică
Limbajul Pascal

Se acordă0 puncte
1 din oficiu. Timpul efectiv de lucru este de 3 ore.

SUBIECTUL I (30 de puncte)

Pentru itemul 1, scrie‑i pe foaia de examen litera corespunzătoare răspunsulu


1. Numerele reale x, y, z şi t satisfac inegalită‑ile x < y şi z < t. Preciza‑i care dintre
expresiile Pascal de mai jos este echivalentă cu faptul [x, ycă intervalele
] şi [z, t] în
[x, y ] ∩( [z, t] ≠ ∅).
au intersec‑ia nevidă (4 p.)
a) not ((z > y) or (t < x)) b) (x <= z) or (y >= t)
c) not ((x < z) and (t < y)) d) not ((x > t) or (y > z))

2. Seconsiderăalgoritmulalăturat, descris
citesţe n în(număr natural)
pseudocod. x ← n % 10; m ← 1; s ← 1
cât timp n > 9 execută
a) Scrie‑ivaloareaafişatădealgoritmdacă
┌n ← [n / 10]; y ← n % 10
numărul n citit este1.352 (6 p.)
│dacă (y‑x)*m < 0 atunci
b. Care este cel mai mic număr natural │┌dacă m > 0 atunci m ← 1
formatdinpatrucifredistincte carepoate
│└altfel s ← 0
ficititînvarabilanastfel ‑ încât
└x ← yalgorit
mul să afişeze valoarea 1? (6 p.) scrie s
c) Scrie‑i o secven‑ă de instruc‑iuni care
să folosească doar opera‑ii de adunare
şi scădere şi care să fie echivalentă cu
instruc‑iunea ← [n10 / n ]. (4 p.)
d) Scrie‑iprogramulPascalcorespunzător
algoritmuluialăturat. (10 p.)

SUBIECTUL II (30 de puncte)

Pentru fiecare dintre itemii 1 şi 2 scrie‑i pe foaia de examen litera corespunză ‑ t


lui corect.
1. Careestenumărulmaximdenoduridegrad3într‑ungrafneorientat (4 p.) cu5nodur
a) 2; b) 3; c) 4; d) 5.
2. Fie un graf neorientat cu mul‑imea{1nodurilor
, 2.15 0 }. Două noduri i şi j sunt unite
printr‑omuchiedacăşinumaidacămax(i,j)=2*min(i,j)saumax(i,j)=2*min(i,j)  +   1.
Care este numărul de muchii ale acestui graf? (6 p.)
a)15;20 b)16;20 c)14;20 d)14x2(20 15)/20
ANEXE 285

Scrie‑i pe foaia de examen răspunsul pentru fiecare dintre cerin‑ele următ


. 3 Considerămcodificareabinarăacaracterelor,încarefiecăruisimbolîirevin
pe 8 bi‑i a codului său ASCII. De exemplu, caracterului ’A’, având codul ASCII 65, îi va
corespunde reprezentarea binară 10. 0 Scrie‑i un program Pascal care să con‑in
următoarele subprograme (func‑ii sau proceduri, la alegere):
a) Subprogramul
convert_char primeşte ca argument un caracter şi construie
tabloucuelemente
8 sau
0 reprezentând
,1 codificareabinarăacaracterului
(2 p.) pri
b) Subprogramul
convert_string primeşte ca argument un şir de caractere‑ s şi co
struieşte o matrice cu n linii şi 8 coloane (unde n este lungimea şirului
matricii reprezentând codificarea binară a caracterului (2 de
p.) pe pozi‑i
c) Subprogramul
submatrix_size primeşte ca argument o matrice m formată doar di
elemente0şi1(precumşidimensiunilesale)şideterminădimensiuneacelei
submatrici pă tratice a lui m con‑ inând elemente având toate ace
fie 1). (5 p.)
( Observaţie: subprogramele pot avea şi alte argumente fa‑ă de cele specificate
Programul va citi de la tastatură un şir de caractere s şi va afişa rezultat
subprogramul submatrix_size aplicatpematriceaconstruită de
convert_string aplicată
şirului s.
(1 p.)
Exemplu: Pentru şirul de caractere
s=”IDEEA”, programul va afişa 3, matricea corespunză

toare fiind:

4 . Fie mul‑imea S = {1, 2. n }, unde n F 4 este un număr natural multiplu de 4. Scrie‑i


un program Pascal care:
a) Citeşte de la tastatură numărul n F 4, precum şi un număr natural p (1 E p E n/2).
Încazulîncarecondi‑iileimpusenusuntîndeplinite,”date vafiafiş atmesaju
inva‑
lide” . (2 p.)
b) Parti‑ioneazămul‑imeadatăSîndouăsubmul‑imidisjuncte∪
Aşi A (S=A∩B
B,B
= ∅astfel
) încâtsumaelementelordinAsăfieegalăcusumaelementelor
(3 p.) dinB.
c) Elimină elementul p din mul‑imea S şi creează o nouă parti‑ie A’, B’ (eventual,
‑ mo
ficând parti‑ia creată la punctul b) astfel ∪ B’, A’S ∩ B’ = ∅ şi
\ {p} = A’ încât
suma elementelor din A’ este egală cu suma elementelor din B’. În cazul î
lucru nu este posibil, va fi afişat mesajul
„partiţie inexistentă” . (5 p.)

Exemplu: Pentru n = 8, S = {1, 2 3, 4 5, 6 7, 8 }, parti‑ia ini‑ială este {1, 3 6, 8 A = },


B = {2 , 4 , 5 , 7 }. Dacă p = 1 sau p = 3 , va afiş a „partiţie inexistentă” . Dacă
p  =   2, parti‑ia modificată este{3, A’ 6, 8 = }, B’ = {1, 4, 5, 7 }. Dacă p = 4, parti‑ia
modificată este{2A’, 6 8 = }, B’ = {1, 3 5, 7 }.
286 ANEXE

SUBIECTUL III (30 de puncte)

Pentru itemul 1, scrie‑i pe foaia de examen litera corespunzătoare răspunsulu


1. Într‑o urnă se află 4 bile de culoare albă şi 3 bile de culoare neagră. Se extrag bil
rândi ş sere‑inesecven‑adeculori
7 ob‑inutăCâte. astfeldesecven‑edistincte
(4 p.) su
a)0; 1 2 b) 35; c) 0;7 d.) 840

Scrie‑i pe foaia de examen răspunsul pentru fiecare dintre cerin‑ele următ


2 . Pentru func‑iile F1 şi F2 definite mai jos, ce valoare va returna apelul
(6 p.) F1(34)?

function f2(x : integer) : integer; function f2(x : integer) : integer;


forward; begin
function f1(x : integer) : integer; if (x < 10) then f2 := 3 * x
begin else f2 := 2 * f1(x div 2);
if (x < 7) then f1 := 3 + x end;
else f1 := 2 + f2(x ‑ 2);
end;

3. Un puzzle Minesweeper este o matrice de n linii şi m coloane care con‑ine ‑ la fie


‑ienumărul(0reprezentândunlocliber) –(1reprezentând
sau  omină)Pozi‑ . iileadiacente
pozi‑iei (i, j) sunt: {(i  – ,1 j  – ,)1 i
(   – ,1 j), i
(   – ,1 j + ,)1 i,
( j  – ,)1 i,
( j + ,)1 i
( + ,1
j–  ,)1i
( +,1j),i
( + ,1 j + )1 } ∩ n{1. n }× {1. m }.
O pozi‑ie (i, j) din matrice este periculoasă dacă cel pu‑in o pozi‑ie din cele maxim 8
pozi‑iiadiacentecon‑ineomină.Fie(l,c)opozi‑ie în matrice. Zona sigurăeste compusă
din toate pozi‑iile accesibile din (l, c) urmând un drum format din pozi‑ii n
adiacente.
Zona activă con‑inetoatepozi‑iilezoneisigureşipozi‑iileadiacentezoneisi
rezultat are aceleaşi dimensiuni cu puzzle‑ul şi este definită astfel:
• Dacă (l, c) con‑ine o mină, matricea rezultat va fi chiar puzzle‑ul ini‑ial.
• Dacă(l,c)nucon‑ineomină,darestepericuloasă,matricearezultat –2peste
con‑ine 
tot, cu excep‑ia pozi‑iei (l, c), care con‑ine numărul de mine vecine.
• Altfel, matricea rezultat con‑ine pe fiecare pozi‑ie (i, j) din zona activ
mine adiacente pozi‑iei– 2 (i, înj)celelalte
şi  pozi‑ii.

a) Scrie‑i matricea rezultat pentru exemplul (IV). (5 p.)


ANEXE 287

b) Scrie‑iînlimbajulPascalunsubprogram (func‑ie sau procedură, la alegere) ca


la intrare un puzzle, calculează o matrice (de aceleaşi dimensiuni‑ cu puzzle
‑ine 0 pe pozi‑iile nepericuloase şi 1 pe pozi‑iile periculoase. (5 p.)
c) Scrie‑i în limbajul Pascal un subprogram (func‑ie sau procedură, la alegere) ca
– primeşte ca argument o matrice reprezentând puzzle‑ul Minesweeper şi po
– construieşte matricea rezultat după cum este descris mai (10 sus.
p.)

Universitatea „Alexandru Ioan Cuza” dinAdmitere 


Iaşi – studii de licen‑ă
Facultatea de Informatică Sesiunea iulie15 20

Proba scrisă la informatică


Barem de evaluare şi notare comun pentru limbajele C/C++ şi Pascal

• Se punctează oricare alte modalită‑i de rezolvare corectă a cerin‑elor.


• Nu se acordă punctaje intermediare, altele decât cele precizate explic
acordă frac‑iuni de punct.
• Se acordă0 puncte
1 din oficiu. Nota finală se calculează prin împăr‑irea punctaju
acordat pentru lucrare la0. 1
• În cazul în care răspunsul final la o întrebare care nu necesită justifica
dar există justificări par‑ial corecte, punctajul se calculează conform ba

SUBIECTUL I (30 de puncte)

1. a 4 p.
2. a) Valoarea returnată este 0 6 p.
1. descrierea calculului 4 p.
. 2 ob‑inerea rezultatului corect 2 p.
b) Cel mai mic număr natural conform cu cerinţa este 6 p.
1230. 2 p.
. 1 identificareaă‑ii propriet
demunte 2 p.
2. utilizarea a patru cifre distincte 2 p.
3. ob‑inerea valorii 1230
c) Pentru algoritm corect 4 p.
. 1 folosirea unei structuri câtrepetitive
timp sau 2 p.
repetă 2 p.
2. scrierea corect ă a secven‑ei
d) Pentru program corect 10 p.
. 1 structuraă acorect programului 2 p.
2. citirea corect
ă a parametrului n 1 p.
3. instruc ‑iune repetitivă corectă 3 p.
4. instruc ‑iuni de decizie corecte 3 p.
. 5 afişareacorectăavalorii s 1 p.
28 ANEXE

SUBIECTUL II (30 de puncte)

1. c 4 p.
2. Răspuns corect c 6 p.
1. stabilirea proprietă‑ii de arbore 2 p.
2. un arbore cu n noduri–are
1 muchii
n  2 p.
3. ob‑inerea valorii14 20 2 p.
3. Pentru soluţie corectă 10 p.
1. citirea datelor de intrare 1 p.
2. alocarea memoriei 1 p.
3. lucrul cu şiruri de caractere 1 p.
convert_char
4. structura corectă 1 p.
convert_string
5. structura corectă 1 p.
6. func‑ia(secven‑adecod)caredeterminăcea
3 p. mai
mare submatrice având col‑ul stânga sus la o
anumită pozi‑ie a matricii
7. parcurgerea pozi‑iilor matricii date
1 p.
submatrix_size
8. structura corectă 1 p.
4. Pentru soluţie corectă 10 p.
1. citirea datelor de intrare 1 p.
2. validarea datelor de intrare 1 p.
3. observa‑ia că există un număr par de perechi
1 p. de
forma (k, (n + 1) – k)
4. crearea corectă a parti‑iei ini‑iale,2 p.mul‑imea A
având elemente impare pe primele n/4 pozi‑ii,
iar B elemente pare pe primele n/4 pozi‑ii
5. observa‑ia că dacă p este număr impar,
\ {pS} 1 p.
nu poate fi parti‑ionată
∈ B,p suma(B)
6. observa‑ia că dacă p este par, 1 p.
scade cu p/2
7. observa‑ia că dacă p/2 este impar, p/∈2 A, 1 p.
parti‑iamodificatăeste \ {A’
p/2 =A},B’ =  B
∪ {p/2 }
8. observa‑ia că dacă p/2 este par, 1 + p/2 ∈ A, 1 p.
A’ = A \ {1 + p/2 } \ {1 } ∪ {2}, B’ = B ∪
{1  +   p/2 } ∪ {1 } \ {2}
9. crearea corectă a parti‑iilor A’,B’ 1 p.
ANEXE 289

SUBIECTUL III (30 de puncte)

1. b 4 p.
Răspuns corect: 74 6 p.
2. 1. observarea faptului că func‑iile F1 şi F2 sunt
1 p.
mutual recursive
2. calculul recursiv (lista tuturor
‑ 3 p.
apelurilor re
cursive)
3. ob‑inerea rezultatului corect 2 p.
3. a) Pentru răspuns corect  – 2 0 1 0 5 p.
0 01 111 0 1 ‑2 5 p.
b) Pentru soluţie corectă 5 p.
1. parcurgerea tuturor‑ iilor
pozi
matricii 1 p.
2. parcurgerea tuturor vecinilor ‑ ia pentru
2 p. pozi
curentă
3. determinarea corectă aă faptului
pozi‑ ia cu‑ c 2 p.
rentă este periculoasă sau nu
c) Pentru soluţie corectă 10 p.
1. identificarea ş i tratarea corectă a cazului ‑ 2 p. par
ticular în care (l, c)‑ ine cono mină 2 p.
2. identificarea ş i tratarea corectă a cazului ‑ par
ticular în care (l, c) nu ‑ ine
conminăş i este
periculoasă 3 p.
3. găsirea zonei sigure printr‑un algoritm de tip
flood‑fill ( bfs, dfs sau ad‑hoc) 1 p.
4. identificarea ‑ iilor
poziadiacente zonei 1 p. sigure
5. calcululnumăruluidevecini ‑ incare
minecon
pentrufiecare ‑ ie
pozi
dinzonaactivăsigură
( +  
pozi‑ ii adiacente zonei sigure) 1 p.
6. determinarea rezultatului corect pentru cazul
general
290 ANEX

Universitatea „Alexandru Ioan Cuza” din Iaş


Admitere 
i – studii de licen‑ă
Facultatea de Informatică Sesiunea iulie14 20

Test la informatică
Limbajul C/C++

Se acordă0 puncte
1 din oficiu. Timpul efectiv de lucru este de 3 ore.

SUBIECTUL I (30 de puncte)

Pentru itemul 1, scrie‑i pe foaia de examen litera corespunzătoare răspunsulu


1. Preciza‑icaredintreexpresiileC/C+de ∈ [–  4,  –  cu
+ maijosesteechivalentă 1 ] rela‑ia
∪ [2,4 ]. (4p.)
a) !( a < – 4 || a > – 1) & (a >= 2 || a <= 4)
b) !(a >= – 4 & a <= – 1 & a >= 2 & a <= 4)
c) (a >= – 4 || a <= – 1) & (a >= 2 || a <= 4)
d) !(a < – 4 || a > – 1) || !(a < 2 || a > 4)

2. Seconsiderăalgoritmulalăturat, citeşte
descrisn
în pseudocod. ( numă r natural nenul)
a) Scrie‑i valoarea afişată de algoritm x ← 1
dacănumărulncititeste 1. 9
(6 p.) y ←2
cât timp x ≠ 0 şi y*y <= n execută
b) Care sunt cea mai mică, respectiv
┌x ← n % y
ceamaimarevaloarepecareopoate
└y ← y + 1
luanînintervalul
[103 , ]astfelîncât scrie y‑1
algoritmulsăafişezevaloarea (6 p.)1 1
c) Înlocui‑iinstruc‑← iunea
ny% cu x
o secven‑ă echivalentă de instruc‑ ‑ i
uni care foloseşte doar adună ‑ ri/scă
deri repetate. (4 p.)
d) Scrie‑iprogramulC/C+corespun
+ ­
zătoralgoritmuluială(10 turat.
p.)

SUBIECTUL II (30 de puncte)

Pentru fiecare dintre itemii 1 şi 2 scrie‑i pe foaia de examen litera corespunză ‑ t


lui corect.
. 1 Fieunarborebinarcunoduri. 51 Numărulnodurilorcucelpu‑inunfiueste(4 cel
p.)mult:
a) 14; b) 8; c) 7; d) 1.
2. Seconsiderăungrafneorientatcuvârfuri 8 numerotatedelala 1 ş8iurmătoar
{17 , }, {18 , }, {34 , }, {35 , }, {36 , }, {37 , }, {47 , }, {56 , }, {58 , }, {67 , }, {68 , }, {78 , }.
Care este numărul minum de culori cu care pot fi colorate vârfurile graf
oricare două vârfuri adiacente să aibă culori diferite? (6 p.)
a) 2; b) 3; c.) 4; d) 8.
ANEXE 1 92

Scrie‑i pe foaia de examen răspunsul pentru fiecare dintre cerin‑ele următoa


3. O matrice are proprietatea ParImpar dacă fiecare dintre liniile sale este format
din numere întregi pare, fie doar din numere întregi impare. Scrie‑ i u
C++ care:
a) Citeşte de la tastatură un număF r natural 2 şi o matrice n pătratică A de dimensiune
n × n, calculează matricea produs B = A × A şi verifică dacă B are proprietate
ParImpar, conform defini‑iei de mai sus. (6 p.)
b) Justifica‑i faptul că, dacă matricea A are proprietatea ParImpar, atunci şi matricea B
are proprietatea ParImpar. (4 p.)
4. Scrie‑i un program C/C++ care:
a) Citeştedelatastaturăunnumăr≥natural i
ş 2 unvector n ww1
. ., n
denumereîntregi.(2 p.)
b) Construieşte o permutare .1 w’ na vectorului
w’ ini‑ ,1 . wialn,w’
astfel încât oricare
două elemente aflate pe pozi‑ ii consecutive în permutare ’i D w’ sunt
i+ l
, difer
∀ i = 1. n  – 1. Dacă nu există o astfel de permutare, atunci algoritmul nu va
există . (8 p.)
Exemple:
• pentru vectorul 1, 1, 2 , 2 3, permutarea ar putea fi 3, 2 1, 3 2, 1 2, 1;
• dacă vectorul este 1, 1, 2 atunci permutarea nu poate fi creată.

SUBIECTUL III (30 de puncte)

Pentru itemul 1, scrie‑i pe foaia de examen litera corespunzătoare răspunsulu


1. La un concurs participă 4 elevi, iar concursul se desfăşoară în două săli: sala A şi s
B. Fiecare sală are capacitatea de maxim 3 locuri. În câte moduri pot fi împăr‑i‑i
sălile A şi B? (ordinea elevilor în cadrul unei săli nu contează) (4 p.)
a) 8; b) 14; c) 16; d) 18.

Scrie‑i pe foaia de examen răspunsul pentru fiecare dintre cerin‑ele următ

2 . Pentrufunc‑iaCdefinităalăint C(int n, int k) {


turat,
if (k == 0 || n == k) return 1;
ce valoare va returna apelul
C(5,   3)? (6 p.) return C(n ‑ 1, k ‑ 1) + C(n ‑ 1, k);
}

3 . O grilă SUDOKU este o matrice×9 9 care respectă următoarele proprietă‑i:


1 . fiecareelementalmatriciiesteunnumărnaturalîntre1şi9;
2 . fiecare linie con‑ine toate numerele naturale de la 1 la 9;
3 . fiecare coloană con‑ine toate numerele naturale de la 1 la 9;
4 . fiecare dintre cele 9 submatrici de×dimensiune
3, eviden‑ 3
‑iate prin linii îngroşate în exemplul alăturat, con‑ine toate
numerele de la 1 la 9.
29 ANEXE

UnpuzzleSUDOKUesteomatrice×9 completată
9 par‑ialcunumerenaturaledelala
1 .9
MaijosesteunexempludepuzzleSUDOKU.Osolu‑ieaunuiastfeldepuzzleesteo
SUDOKU care coincide cu puzzle‑ul pe pozi‑iile precompletate.

a) Găsi‑i o solu‑ie pentru puzzle‑ul SUDOKU de mai sus. (4 p.)


b) Descrie‑iînlimbajnaturalunalgoritmpentrurezolvareaunui puzzleSUDOKU
(6 p.)
c) Scrie‑i în limbajul C/C++ o func‑ie care:
• primeştecaargumentomatricereprezentândpuzzle‑ulSUDOKU(celulel ‑
pletate ale puzzle‑ului sunt reprezentate în matrice de cifra 0);
• returnează o matrice reprezentând solu‑ia puzzle‑ului. Dacă problema

‑ie, matricea returnată va con‑ine pe toate liniile şi coloanele
(10 p.) doa

Universitatea „Alexandru Ioan Cuza”


dinAdmitere
Iaşi ‑ studii de licen‑ă
Facultatea de Informatică Sesiunea iulie14 20

Test la INFORMATICA
Limbajul Pascal

Se acordă0 puncte
1 din oficiu. Timpul efectiv de lucru este de 3 ore.

SUBIECTUL I (30 de puncte)

Pentru itemul 1, scrie‑i pe foaia de examen litera corespunzătoare răspunsulu


∈ [–4, –1
1. Preciza‑i care dintre expresiile Pascal de mai jos este echivalentă ] ∪ cu rela
[2, 4 ]
. (4 p.)
a. not((a < –4) or (a > –1) and (a >= 2) or (a <= 4)
b. not((a >= –4) and (a <= –1) and (a >= 2) and (a <= 4)
c. ( a >= –4) or (a <= –1) and ( a >= 2) or (a <= 4)
d. not((a < –4) or (a > –1) or not((a < 2) or (a > 4)

2 . Se consideră algoritmul alăturat, descris


‑ citesţe în n
pse
udocod. ( numă r natural nenul)
a) Scrie‑ivaloareaafişatădealgoritm x ←
‑ dacănumă1
rul n citit este1. 9 (6 p.) y ← 2
cât timp x ≠ 0 şi y*y <= n
b) Care sunt cea mai mică, respectiv cea mai
execută
mare valoare pe care o poate lua‑ n în interva
┌x ← n mod y
lul[1, 30 ] astfel încât algoritmul să afişeze
└y ← y + 1
valoarea ?11 (6 p.)
scrie y‑1
ANEXE 293

c) Înlocui‑i instruc‑←iunea
n modxy cu o sec‑
ven‑echivalentă
ă deinstruc‑iunicarefoloseşte
doaradunări/scăderirepetate. (4 p.)
d) Scrie‑i programul Pascal corespunză ‑ tor algo
ritmului ală turat. (10 p.)

SUBIECTUL II (30 de puncte)

Pentru fiecare dintre itemii 1 şi 2, scrie‑i pe foaia de examen litera corespunz



sului corect.
1. Fie un arbore binar cu 15 noduri. Numărul nodurilor cu cel pu‑in un fiu este cel
(4 p.)
a) 14; b) 8; c) 7; d) 1.
2 . Seconsiderăungrafneorientatcuvârfuri 8 numerotatedelala 1 ş8iurmătoar
{17 , }, {18 , }, {34 , }, {35 , }, {36 , }, {37 , }, {47 , }, {56 , }, {58 , }, {67 , }, {68 , }, {78 , }.
Care este numărul minim de culori cu care pot fi colorate vârfurile graf
oricare două vârfuri adiacente să aibă culori diferite? (6 p.)
a) 2; b) 3; c) 4; d) 8.

Scrie‑i pe foaia de examen răspunsul pentru fiecare dintre cerin‑ele următ


3. O matrice are proprietatea
ParImpar dacă fiecare dintre liniile sale este format
din numere întregi pare, fie doar din numere întregi impare. Scrie‑i un pro
care:
a) Citeşte de la tastatură un numă≥r2 şinatural
o matrice npătratică A de dimensiune
n × n, calculează matricea produs B × A= Aşi verifică dacă B are proprietatea
ParImpar, conform defini‑iei de mai sus. (6 p.)
b) Justifica‑i faptul că, dacă matricea A are proprietatea
ParImpar, atunci şi matricea B
are proprietatea
ParImpar. (4 p.)
4. Scrie‑i un program Pascal care:
a) Citeşte de la tastatură un număFr natural n w’1... wn de numere
2 şi un vector
întregi.
(2 p.)

b) Construieşte o permutare 1
. w ’na vectorului
w ’
ini‑
1
,. wialnwastfel încât oricare
’ ’
două elemente aflate pe pozi‑ii consecutive în permutare i
+ w sunt
i+l
, ∀ diferit
i = 1. n  – 1. Dacă nu există o astfel de permutare, atunci algoritmul nu va afi
există . (8 p.)
Exemple:
• pentru vectorul 1, 1, 2 , 2 3, permutarea ar putea fi 3, 2 1, 3 2, 1 2, 1;
• dacă vectorul este 1, 1, 2 atunci permutarea nu poate fi creată.
294

SUBIECTUL III (30 de puncte)

Pentru itemul 1, scrie‑i pe foaia de examen litera corespunzătoare răspunsulu


1. La un concurs participă 4 elevi, iar concursul se desfăşoară în două săli: sala A şi s
B. Fiecare sală are capacitatea de maxim 3 locuri. În câte moduri pot fi împăr‑i‑i
sălile A şi B? (ordinea elevilor în cadrul unei săli nu contează) (4 p.)
a) 8; b) 14; c) 16; d) 18.

Scrie‑i pe foaia de examen răspunsul pentru fiecare dintre cerin‑ele următ

2. Pentru func‑ ia C definită tu­ function


ală­ C(n,k:integer):integer;
rat,   c e va l o a re va re t u r begin
na apelul
C(5, 3)? (6 p.) if (k = 0) or (n = k) then
C := 1
else
C := C(n‑1,k‑1)+C(n‑1,k);
end;

3 . O grilă SUDOKU este o matrice 9 × 9 care respectă următoarele proprietă‑i:


. 1 fiecareelementalmatriciiesteunnumărnaturalîntrei ş 1 ;9
2 . fiecare linie con‑ine toate numerele naturale de la 1 la 9;
. 3 fiecarecoloanăcon‑inetoatenumerelenaturaledelala 1 ;9
4 . fiecare dintre cele 9 submatrici de dimensiune
‑ 3 × 3, evi
den‑iate prin linii îngroşate în exemplul alăturat, con‑ine
toate numerele de la 1 la 9.

Un puzzle SUDOKU este o matrice 9 × 9 completată par‑ial cu numere naturale de l


la 9. Mai jos este un exemplu de puzzle SUDOKU. O solu‑ie a unui astfel de puzzle est
grilă SUDOKU care coincide cu puzzle‑ul pe pozi‑iile precompletate.

a) Găsi‑i o solu‑ie pentru puzzle‑ul SUDOKU de mai sus. (4 p.)


b) Descrie‑iînlimbajnaturalunalgoritmpentrurezolvareaunui (6 p.) puzzleSU
c) Scrie‑i în limbajul Pascal o func‑ie care:
• primeştecaargumentomatricereprezentândpuzzle‑ulSUDOKU(celulel ‑
pletate ale puzzle‑ului sunt reprezentate în matrice de cifra 0);
• returnează o matrice reprezentând solu‑ia puzzle‑ului. Dacă problema

‑ie, matricea returnată va con‑ine pe toate liniile şi coloanele
(10 p.) doa
ANEXE 295

Universitatea „Alexandru Ioan Cuza” din Iaş


Admitere 
i – studii de licen‑ă
Facultatea de Informatică Sesiunea iulie14 20

Proba scrisă la informatică


Barem de evaluare şi notare comun pentru limbajele C/C++ şi Pascal

• Se punctează oricare alte modalită‑i de rezolvare corectă a cerin‑elor.


• Se acordă0 puncte
1 din oficiu. Nota finală se calculează prin împăr‑irea la
‑ 0a
1 punct
lui total acordat pentru lucrare.
• În cazul în care răspunsul final la o întrebare care nu necesită justifica
dar există justificări par‑ial corecte, punctajul se calculează conform ba

SUBIECTUL I (30 de puncte)

1. d 4 p.
2. a) Valoarea returnată este 7 6 p.
1. descrierea calculului 4 p.
2. ob‑inerea rezultatului corect 2 p.
b) Cea mai mică valoare a lui n este1 2 3 p.
Cea mai mare valoarena este
lui
253 3 p.
c) Pentru algoritm corect 4 p.
1. folosirea unei structuri repetitive cât timp sau 2 p.
repetă 2 p.
2. scrierea corectă a algoritmului
d) Pentru program corect 10 p.
1. structura corectă a programului 3 p.
2. citirea corectă a parametrului n 1 p.
3. instruc‑iunea repetitivă corectă 5 p.
4. afişarea expresiei y – 1 1 p.

SUBIECTUL II (30 de puncte)

1. a) 4 p.
2. b) 6 p.
3. a) Pentru soluţie corectă 6 p.
1. citirea datelor de intrare 1 p.
2. calculul matricii produs B 2 p.
3. verificarea proprietăţii ParImpar 3 p.
4. b) Pentru răspuns corect 4 p.
a) Pentru soluţie corectă 2 p.
b) Pentru soluţie corectă 8 p.
. 1 creareacorectăapermutării înîn
care
cazul
există 5 p.
. 2 descrierea cazului în care nu există solu‑ 3 p. ie
296 ANEXE

SUBIECTUL III (30 de puncte)

1. b 4 p.
Răspuns corect:0 1 6 p.
2. .1observareafaptuluicăfunc‑iaCesterecursivă
1 p.
2. calculul lui C(5, 3) 3 p.
3. ob‑inerea rezultatului corect 2 p.
3. a) Pentru răspuns corect 4 p.

b) Pentru soluţie corectă 6 p.


. 1 descrierea structurii de date 2 p.
. 2 descrierea structurii unui algoritm 3 p. de tip
backtracking 1 p.
. 3 testarea validită‑ii unei configura‑ii par‑iale
c) Pentru funcţie corectă 10 p.
1 structura func‑iei (argumente, tip returnat)
1 p.
. 2 validarea unei grile par‑iale 2 p.
. 3 implementarea unui algoritm valid5 p.
4. returnarea solu‑iei 1 p.
. 5 determinarea inexisten‑ei solu‑iei1 p.

C. Subiecte date la concursurile de ob‑inere


a definitivatului şi/sau gradului II în informat
pentru profesorii din învă‑ământul preunivers
(din jude‑ele arondate centrului universitar şi
Şcolar Jude‑ean Iaşi).
Începem cu observa‑ia că, până în anul12, 0 subiectele se împăr‑eau în două mari‑ cate
gorii:subiecte de specialitate şi subiecte de didactică/metodică. Acestea se alegeau (şi se
aleg şi astăzi) dintr‑o listă pusă în prealabil la dispozi‑ia profesorilor, pe sit
deresort(http:/ www.edu.ro).Otezăaveaastfel,înmoduzual,douăsubiecte,câteun
fiecare categorie. De obicei, subiectul de metodică era cotat mai mult (două tr
Pentrusubiecteledespecialitate(informatică)implementarea , secere
dintre limbajele C sau Pascal, la alegere.
ANEXE 297

Exemple:
• Proiecta‑i clasele necesare pentru lucrul cu cercuri, fiecare cerc fii
pozi‑ia centrului şi lungimea razei. Se vor implementa următoarele metode
a) Ini‑ializarea unui cerc.
b) Calculul ariei unui cerc.
c) Calculul lungimii unui cerc.
d) Mutarea unui cerc dat într‑o nouă pozi‑ie.
• Proiecta‑i structurile de date necesare lucrului cu polinoame. Implem
a) Citirea unui polinom.
b) Afişarea unui polinom.
c) Adunarea a două polinoame.
d) Înmul‑irea a două polinoame.
• Reprezentarea grafurilor neorientate cu ajutorul matricilor. Ope
implementat:
a) Ini‑ializarea unui graf.
b) Ob‑inerea grafului complementar unui graf dat.
c) Calculul gradului unui nod dintr‑un graf dat.
d) Calculul lungimii drumului minim dintre două noduri ale unui graf dat.
• Genera‑i toate permutările unei liste date.

Baremul pentru un asemenea subiect era cotat cu un număr fix de puncte


sau0 ), 1 un număr constant de puncte fiind dat din oficiu (de obicei 1, respectiv0). 1 Da
un subiect avea subsubiecte (să zicem 4), unul dintre acestea (cel considerat
cotat cu mai multe puncte, celelalte fiind cotate cu un număr egal de pun
respectiv 30, 20, 20, 20).
Subiecteledemetodicăerauaxate pe ideea
elaborării unui proiect didacticpentru o lec‑ie
dată. Punctajul (separat de cel anterior) era acordat în principal în func‑i
elementelor de metodică abordate de candidat, anumite greşeli de‑ natură c
fică sau de implementare fiind ignorate. Elementele de metodică avute în ve
analizate sau punctate erau obiectivele
următoarele:lec‑iei,metoda/metodele de predare
propuseafiutilizatepentrulec‑ iarespectivă
materialele didactice,, instrumentele de evaluare
considerate a fi utile pentru lec‑ ia respectivă
modul propus pentru , desfăşurarea lec‑iei. Iată
şi câteva exemple:
• Elabora‑iunproiectdidacticpentruolec‑iecusubiectul greedy”.Exemple.
„Metoda
Tipul
lec‑iei este la alegere.
• Elabora‑i un proiect didactic pentru o lec‑ie cu subiectul „Metoda
.
divide et impera”
Exemple. Tipul lec‑iei este la alegere.
• Elabora‑iunproiectdidacticpentruolec‑iecusubiectul„Metodedesor
este la alegere.
• Elabora‑iunproiectdidacticpentruolec‑Backtracking”. iecusubiectul Tipullec‑„ ieieste
la alegere.

După12, 0subiectele au fost doar de informatică şi, probabil, această modalitat



tarenuvafischimbatăpreacurând.Subiectelesuntînglobateîncadrulune
298 ANEXE

două ore), trebuind să fie tratate corect atât din punct de vedere ştiin‑if
într‑unul din limbajele C, C++ sau Pascal), cât şi din punct de vedere metodic. Mo
de construire a
baremului complet rămâne, în mare, cea descrisă mai sus, inclusiv puncte
acordate din oficiu, elementele de metodică care contează şi ponderea ‑ metod
‑inutul legat de specialitate. Dintre subiectele care s‑au dat în ultimi
amintim:
• Să se proiecteze o lec‑ ie care are ca scop predareaalgoritmi
conceptelor
iterativi şi de
recursivi. Ca exemplificare practică, se va considera calculul elementelor
)
n nF0
ş
definit prin:
x0 = 0, x1 = 2, xn = xn‑1 · 3 + xn‑2 · 2 + 4.

Se vor trata, ştiin‑ific şi metodic, punctele:


a) Implementareauneifunc‑iicareprimeştecaparametruunindicenşicalcu
iterativ elementul
n
. x
b) Implementareauneifunc‑iicareprimeştecaparametruunindicenşicalcu
recursiv elementul
n
. x
• Să se proiecteze o lec‑ie care are ca scop predareaintegrare
conceptului
numerică.de
Ca
exemplificare practică, se va considera calculul
integralei definite a func‑iei:

x3 + 4 · x2 + 6 · x – 5, , x ≥ 0
f(x) =
x4 + 3 · x · sin(x) + 9 , x < 0

Se vor trata, ştiin‑ific şi metodic, punctele:


a) Implementarea unei func‑ii care primeşte doi aşi bparametri
, numere reale, şi calcu

∫ba f(x)dx prin metoda dreptunghiurilor.
lează valoarea
b) Implementarea unei func‑ii care primeşte doi parametri a şi b, numere
‑ rea
∫ba f(x)dx prin
lează valoarea metoda trapezelor.
• Să se proiecteze o lec‑ie care are ca scop predarea no‑iunii
conectivitate într‑
de un graf.
Ca exemplificare practică, se vor considera
determinarea componentelor conexe ale unui
graf. Se vor trata, ştiin‑ific şi metodic, punctele:
a) Definirea structurii de date utilizate pentru reprezentarea în pr
b) Implementarea unei func‑ii care primeşte ca parametri un graf (repreze
structurădedatedetipuldefinitmaisus)şiunvârfalacestuiaşiretu
conexă a grafului care con‑ine vârful respectiv.
• Să se proiecteze o lec‑ie care are ca scop predarea
listelor înlănţuite ca structuri de date
alocate dinamic. Ca exemplificare practică, se vor considera
inserarea şi eliminarea unui
elementdintr‑listă
o simplu înlănţuită,alecăreielementesuntnumereîntregi.Sevort
ştiin‑ific şi metodic, punctele:
a) Implementarea unei func‑ii care primeşte ca parametri o listă simplu î
indice
nşiovaloareîntreagă
vşiinsereazăînlistăunnouelement,pe n,având
pozi‑ia
valoarea v.
b) Implementarea unei func‑ii care primeşte ca parametri o listă simplu î
valoare întreagă v şi elimină din listă toate elementele având valoar
ANEXE 29

• Săseproiectezeolec‑iecarearecascoppredareatehnicii divide de programare


et impera.
Ca exemplificare practică, se va considera sortarea crescătoare a elementelor dintr‑un
tablou de numere întregi. Se va trata, ştiin‑ific şi metodic, punctul:
a) Implementarea unei func‑ii care primeşte ca parametri un tablou de num
număruldeelementealeacestuiaşiordoneazăcrescătorelementeleta
desigur, tehnica divide et impera).
• Să se proiecteze o lec‑ie care are ca scop predarea conceptelor de bază ale
programării
orientate pe obiecte. Ca exemplificare practică, se va consideradefinirea unei clase des ‑
tinată reprezentării numerelor complexe. Se va trata, ştiin‑ific şi metodic, p
a) Implementareaurmătoarelor metode:constructor,adunarecuunnumărcomplex,adunare
cuunnumărreal,înmul‑irecuunnumărcomplex,înmul‑irecuunnumărreal.

Observaţie
La examenele de titularizare, bibliografia a fost aproximativ aceeaşi cu cea
de grad şi definitivat, cu subiecte axate mai pu‑in pe didactică/metodică şi ma
îndemânările practice legate de informatică. Cum întreaga bibliografie fixa
de resort datează aproximativ din anul 20 (!), credem că ea trebuie urgent actual
factorii în drept.
Anexa 3

Adrese web utile

I. Căr‑i, culegeri în format electronic, oferite online în mod gratuit:


• Cătălin Frâncu, Psihologia concursurilor de informatică – http:/ www.infobits.ro/psiho ‑
logia‑concursurilor/.
• Carmen Popescu, Vlad Tudor, Competenţe digitale  – http:/ www.infobits.ro/tic‑compe ‑
tente‑digitale‑volumul‑1/: http:/ www.infobits.ro/tic‑competente‑digitale‑v
• Tudor Sorin, Vlad Tudor, Bazele programării în Java  – http:/ www.infobits.ro/java/.
• Alina Boca, Doru Popescu Anastasiu, Vlad Tudor, MişuTIC. Ionescu,
Clasa a VIII‑a  –
http:/ www.infobits.ro/tic‑informatica‑manual‑clasa‑a‑VIII‑a/.

II. Platforme online de pregătire pentru performan‑ă:


• http:/ campion.edu.ro/arhiva.
• http:/ infoarena.ro.
• http:/ pbinfo.ro.
• http:/ varena.ro.

III. Platforme de pregătire/evaluare pentru examene de bacalaureat, atest


facultate:
• Academia Oracle: http:/ academy.oracle.com.
• Bacalaureat la informatică: http:/ www.infobits.ro/bacalaureat‑la‑informa
• Laborator virtual de informatică: http:/ lab.infobits.ro/.
• Competen‑e digitale: http:/ competentedigitale.ro/.
• AdvancedeLearning,portalulSEISistem
( Educa‑ionalInformatizat)http:
: porta
/

IV. Resurse online pentru elevi şi profesori (inclusiv tehnici inovatoa


predare de noi cursuri).
• Comunitatea online a cadrelor didactice: http:/ didactic.ro.
• http:/ www.w3schools.ro.
• http:/ scratch.infobits.ro/scratch‑curriculum‑la‑decizia‑scolii.php.
• http:/ olimpiada.info.
• http:/ infoeducatia.ro.
• http:/ www.manuale‑de‑informatica.ro/.
• http:/ www.ciee.org/.
• http:/ www.rafonline.org/.
302

V. Legătura cu MENCŞ (nu mai listăm şi paginile institutelor de învă‑ământ supe


liceelor importante sau inspectoratelor şcolare, acestea fiind uşor de găs
• Site‑ul oficial: http:/ www.edu.ro.
• Subiectedateladiverseconcursuri(grad,definitivatetc.)http: : / www.edu
articles/* , unde * poate fi c862, c876, c879 etc.
• http:/ titularizare.edu.ro.

VI. Legătura cu MCSI:


• Site‑ul oficial: http:/ www.mcsi.ro.
• Portalul na‑ional pentru societatea informa‑ională în România (e‑Români
romania.gov.ro.

VII. Alte site‑uri utile:


• Internet Society: http:/ www.internetsociety.org/.
• ISPS Studien, Berichte: http:/ www.isps.ch/.
• Agen‑iadeAdministrareaRe‑eleiNa‑ionaledeInformaticăpentruEduca‑ieşiC
http:/ www.roedu.net/.
• Link Academy blog: http:/ www.link‑academy.com/blog/ <L1>.
• Software pentru prezentări (Q & A): htpps:/ prezi.com/ <L3>.
Bibliografie

[AHU ] V. Aho, J.E. Hopcroft, J.D. Ullman, Data Structures and Algorithms, Addison-Wesley,
Reading, 1983.
[An] M. Anastasiei, Metodica predării matematicii, curs litografiat, Editura Universită‑ii „
Cuza”, Iaşi, 1985.
[At] A. Atanasiu, „Algoritmi. Reprezentare şi clasificare”, Gazeta de Informatică, nr. 1-2,/ 9
1- 3 / 9 2 .
[Ba] D. Badea, „Didactica la coala ş competen‑elor – dominante i ş exemplificări ale sce
didactic”,Revista în de Pedagogie,anulLIX,nr.,4Bucureşti,. 11 02
[Bac1]J.Backus, Can Programming Be Liberated from the von Neumann Style? A Functional Style
and Its Algebra of Programming, CACM, 1978.
[Bac2] J. Backus, The History of FORTRAN I, II and III, ACM Sigplan Notices, 1978.
[Bare ] H.P. Barendregt, The Lambda Calculus: Its Sintax and Semantics, North Holland, 1985.
[Barr ] D. Barron, Comparative Programming Languages, American Elsevier, 1968.
[Bî] C.Bîrzea,„Definireai ş clasificareacompeten‑ elor”,
Revista în
de Pedagogienr.Bucureş
,)3( 85 ti,
. 10 02
[Bl ]M.Blum, A Machine-independent Theory of the Complexity of Recursive Functions,JACM,.6791
[BJ] C. Bohm, G. Jacopini, Flow Diagrams, Turing Machines and Languages with Only Two
Formation Rules, CACM, 196 .
[CMS ] A. Catană, M. Săcuiu, O. Stănăşilă, Metodica predării analizei matematice, Editura
Didactică şi Pedagogică, Bucureşti, 1983.
[CS] C. Cazacu, V. Slabu, Logică matematică, Editura „Ştefan Lupaşcu”, Iaşi, 19 .
[CCŞ ] G. Ciucu, V. Craiu, A. Ştefănescu, Statistică matematică şi cercetări operaţionale, Editura
Didactică şi Pedagogică, Bucureşti, 1974.
[CŞ ]E.Cerchez,M.Şerban, Programarea în limbajul C/C++ pentru liceu,EdituraPolirom,Iaşi,
20 5 (Vol. 1, 2), Iaşi, 20 6 (Vol. 3).
[CTT ] E. Ciurea, S. Tăbârcă, T. Tăbârcă, Algoritmi. Metode de elaborare, Editura Universită‑ii
„Transilvania”, Braşov, 19 7.
[CLR ] T.H. Cormen, C.E. Leiserson, R.L. Rivest, Introducere în algoritmi, Editura Computer
Libris Agora, Bucureşti, 20 .
[Cri ] S. Cristea, Fundamentele pedagogice ale reformei învăţământului, Editura Didactică şi
Pedagogică RA, Bucureşti, 19 4.
[Cro ]C.Croitoru, Tehnici de bază în optimizarea combinatorie,EdituraUniversită‑ii„Al.I.Cuza”,
Iaşi, 19 2.
[D1 ]P.J.Denning(ed.)„A , DebateonTeachingComputerScience”, Communications of the ACM,
vol. 32, nr. 12, 198 .
304 BI LIOGRAF E

[D2 ] P.J. Denning (ed.), „Educating a New Engineer”, Communications of the ACM, vol. 35,
nr.  12, 19 2.
[DM ] P.J. Denning, R.M. Metcalfe, Beyond Calculation. The Next Fifty Years of Computation,
Springer Verlag, 19 7.
[DCTPCN ] A. Dima, V. Ca‑arschi, C. Tănase, I. Porof, S. Ca‑arschi, M.I. Ni‑u, Educaţie tehno-
logică (proiectări didactice, clasele IX-X), Editura Performantica, Iaşi, 20 3.
[DC ]W.S.Dorn,D.D.McCracken, Metode numerice cu programe în FORTRAN,EdituraTehnică,
Bucureşti, 1976.
[Fr] F. Frumos, Didactica: Fundamente şi dezvoltări cognitive, Iaşi: Editura Polirom, 2008.
[Hoa] C.A.R. Hoare, Communicating Sequential Processes, Prentice Hall, 1985.
[Hor] E. Horowitz, Fundamentals of Programming Languages, Computer Science Press, 1984.
[HS ] E. Horowitz, S. Sahni, Fundamentals of Data Structures of Computer Algorithms, Computer
Science Press, 1978.
[IP ] C. Ivaşc, M. Prună, Bazele informaticii (grafuri şi elemente de combinatorică). Proiect de
manual pentru clasa a X-a, profil informatică, Editura Petrion, Bucureşti, 19 5.
[J, ] T. Jucan, F.L. ,iplea, Reţele Petri. Teorie şi practică, Editura Academiei Române, Bucureşti,
19 .
[K ]O.Kallenberg,Foundations of Modern Probability,SpringerSeriesinStatistics,SpringerVer
Berlin, 20
[K1 ]D.E.Knuth, Tratat de programarea calculatoarelor. Algoritmi fundamentali,EdituraTehnică,
Bucureşti, 1974.
[K2 ] D.E. Knuth, Tratat de programarea calculatoarelor. Sortare şi căutare, Editura Tehnică,
Bucureşti, 1976.
[LG ]L.Livovschi,H.Georgescu, Sinteza şi analiza algoritmilor,EdituraTehnicăBucureş , ti,1986.
[L ]D. Lucanu, Bazele proiectării programelor şi algoritmilor, Editura Universită‑ii „Al.I. Cuza”,
Iaşi, 19 6.
[MY ]M.Machtey,P.Young, An Introduction to the General Theory of Algorithms,Elsevier,North
Holland, 1978.
[Mas1 ]C.Masalagiu,Introducere în programarea logică,EdituraUniversită‑ii„Al.I.Cuza”,Iaşi,
19 6.
[Mas2 ]C.Masalagiu,Distance Learning and Its Methodical/Pedagogical and Social Implications,
TR -HH -04Restructuring
9, ofthe(re)TrainingofSchoolTeachersinComputerScience,S_
68-9 , Editura
111 Computer Libris Agora, Bucureşti, 19 .
[Mas3 ] C. Masalagiu,Fundamentele logice ale informaticii, Editura Universită‑ii „Al.I. Cuza”,
Iaşi, 20 4.
[MA ] C. Masalagiu, I. Asiminoaei, Didactica predării informaticii, Editura Polirom, Iaşi, 20 4.
[MAM ]C.Masalagiu,I.Asiminoaei,I.Maxim, Metodica predării informaticii,EdituraMatrixRom,
Bucureşti,1.20
[MM ] E. Mateescu, I. Maxim, Arbori, Editura „,ara Fagilor”, Suceava, 19 6.
[Max1 ] I. Maxim, Un punct de vedere asupra metodicii predării informaticii, lucrare metodico-
ştiin‑ifică pentru ob‑inerea gradului didactic I, Editura Universită‑ii din Buc
19 7.
[Max2 ] I. Maxim, O încercare de generalizare a algoritmilor de sortare, Analele Universită‑ii
„Ştefan cel Mare”, Suceava, anul VI, nr. 12, 19 .
[MC ] O. Mândru‑, L. Catană, Suport de curs, Program de formare - Proiectarea curriculum-ului
centrat pe competenţe,AcreditatprinO.M.E.C.T.S.Nr.Universitatea
12, .06 43 / Craiova.
[MCBA ] O.Mândru‑L., CatanăD., Badea,A.Ardelean, Didactica formării de competenţe,„Vasile
Goldiş” University Press, Arad,12. 0
[Me ] K. Mellhorn,Data Stuctures and Algorithms, Springer Verlag, 1984.
[MS ] B.M.E. Moret, H.D. Shapiro, Algorithms from P to NP, Design and Efficiency, Bejamin
Cummings, Redwood, 19 0.
BI LIOGRAF E 305

[Po] G. Polya,Descoperirea în matematică, Editura Didactică şi Pedagogică, Bucureşti,1. 97


[Pr] V.R. Pratt, Semantical Considerations on Flyd-Hoare Logic, Proceedings of the thIEEE
17
Symposium on Foundations of Computer Science, 1976.
[R] J.R. Rogers, Theory of Recursive Functions and Effective Computability, McGraw-Hill, New
York, 1967.
[RV ] I.Rus,D.Varna, Metodica predării matematicii,EdituraDidacticăşiPedagogică,Bucureşti,
1983.
[Sa] J. Sammet, Programming Languages: History and Fundamentals, Prentice Hall, 196 .
[St ] M. Stoica, Sinteze de pedagogie şi psihologie, Editura Universitaria, Craiova, 19 2.
[, ] F.L. ,iplea, Introducere în teoria mulţimilor, Editura Universită‑ii „Al.I. Cuza”, Iaşi, 19 8.
[WO ] P.C. Wankat, F.S. Oreowicz, Teaching Engineering, McGraw-Hill, New York, 19 3.
[W1 ] N. Wirth, The Programming Language Pascal, Acta Informatica,1. 97
[W2 ] N. Wirth, Algorithms + Data Structures = Programmes, Prentice Hall, 1976.
[*1 ] *„Computing
, asaDiscipline,FinalReportoftheACMTaskForceontheCoreofComput
Science”,înP.J.Denning,D.E.Comer,D.Gries,M.C.Mulder,A.Tucker,A.J.Turner,P.R.
Young (eds.), Communications of the ACM, vol. 32, nr. 1, 98 .
[*2] * , Dicţionarul explicativ al limbii române (DEX), Editura Academiei Române, Bucureşti,
1975.
[*3] * , Documentaţii (Pascal, C/C++ etc.).
[*4 ] * , Ghid metodologic (Tehnologia informaţiei şi a comunicaţiilor în procesul didactic.
Învăţământ primar), Curriculum Na‑ional, MECT, CNC,1.20
[*5 ] * , Ghid metodologic (Tehnologia informaţiei şi a comunicaţiilor în procesul didactic.
Gimnaziu şi liceu), Curriculum Na‑ional, MECT, CNC, 20 .
[*6] * , Networks for People and Their Communities. First Annual Report in the European
Commission from the Information Society, 19 6.
[*7 ] * , Ordinul MEN nr. 3188 din 10.05.1999 privind programa şcolară pentru disciplina
informatică.
[*8 ] *, Ordinul MEN nr. 3207 din 03.02.1999 privind aplicarea noilor Planuri-cadru de învăţământ
pentru învăţământul primar, gimnazial şi liceal, începând cu anul şcolar 1999-2000.
[*9 ] * , Ordinul MEN nr. 3879 din 26.05.1999 privind funcţionarea claselor de matematică-
informatică cu studiul intensiv al informaticii.
0 [*1 ] *, PCWEBOPAEDIA, Sandy Bay, 19 6.
COLLEGIUM
Metodică

au apărut:

Mihaela Neagu, Georgeta Beraru – matematice în grădiniţă


Activităţi
Teresa Siek-Piskozub – şi activităţi distractive în învăţarea limbilor străine
Jocuri
Aurel DascăluEducaţia
– plastică în ciclul primar
Ileana Dăscălescu, Ana Alexandru, Sonia Hudac – în sprijinul desfăşurării activităţilor de
Îndrumar
cunoaştere a mediului înconjurător la grupa pregătitoare în grădiniţă
Elena Simionică, Fănica Bogdan –
Gramatica... prin joc
Elena Simionică, Veronica Anton – învăţătorului
Caietul
Vasile Ghica – de consiliere şi orientare şcolară
Ghid
Elena Simionică, Florica Caraiman –
Matematica... prin joc
Constantin Parfene Metodica – predării limbii şi literaturii române
Doina Bâclea, Margareta Constantinescu Chimie.(coord.
Planuri) – de lecţie (clasele VII-XII)
Elena Ilie –
Limba română. Evaluare formativă. Ghid metodologic. Clasele I-IV
Veronica Păduraru (coord.), Geta Fotea, Mariana Şenu, Maria Curcan, Angela Popa –
Activităţi
matematice în învăţământul preşcolar. Sinteze
Valerian Dragu (coord.), Doina-Eugenia Steva, Carmen Filoti, Corneliu Horaicu, Doru Vlasov
Geografie – Geologie. Ghid metodologic
Liliana Stan (coord.), Doina-Eugenia Steva, Valerian Dragu, Doru Valentin Vlasov
Elemente de –
didactica geografiei
Adrian Adăscăli‑ei –
Instruire asistată de calculator. Didactică informatică
Mihaela Neagu, Mioara Mocanu –
Metodica predării matematicii în ciclul primar
Oana Iucu –Didactica ştiinţelor juridice şi administrative
Emanuela Ilie –
Didactica literaturii române. Fundamente teoretico‑aplicative
Constantin Petrovici Didactica –activităţilor matematice în grădiniţă
Constantin Petrovici Didactica –matematicii pentru învăţământul primar
Emanuela Ilie –
Didactica limbii şi literaturii române
Adriana Vizental –
Metodica predării limbii engleze. Strategies of teaching and testing English as a
foreign language (edi‑ia a IV‑a)
Cristian Masalagiu, Ioan Asiminoaei, Mirela ,ibu
Didactica –
predării informaticii (edi‑ia a II‑a)
www.polirom.ro
Redactor:InesSimionescu
Coperta:CarmenParii
Tehnoredactor:IrinaLăcătuşu
Bundetipar:iulie16.Apă 20 rut:16 20
EdituraPolirom,B‑dulCarolInr.4•P.O.BOX26
056,Iaş
7 i,Tel.&Fax:1.0 4 (023) 1.11; 4   ;(023)
1.740(difuzare)
23) ;E‑mail:office @polirom.ro
Bucureşti,SplaiulUniriinr.6,bl.B3A,sc.1,et.1,
sector1,O.403 P.53
Tel.13.897;E‑) :(02 mail:office.bucuresti @polirom.ro

Tiparul executat la S.C. LUMINA TIPO s.r.l.


str. Luigi Galvani nr. 20 bis, sect. 2, Bucureşti
Tel./Fax:.32 60, 11 12. 9 27, E‑mail:office @luminatipo.com

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