Top Banner

Click here to load reader

127571728 Metodica Predarii Informaticii

Dec 26, 2015

ReportDownload

Documents

metodica predarii informaticii

Capitolul 1

11

Capitolul 1.

Noiuni de baz

Capitolul este destinat n principal prezentrii unor elemente introductive, absolut necesare pentru pstrarea caracterului de sine stttor al lucrrii, n Liceu anumite noiuni deosebit de importante fiind predate destul de diferit.

1. Noiuni de baz n Informatic

ncepem cu o scurt trecere n revist a ctorva concepte care vor fi utilizate intensiv n carte n special ca suport teoretic pentru exemplele alese. Pentru detalii se mai pot consulta , , , , , , , .

1.1. Predarea unor noiuni fundamentale

Temele i domeniile abordate n tratarea disciplinelor de Informatic sunt desigur stabilite prin obiectivele cadru i de referin specifice. Dar, aa cum nu putem aborda nici un domeniu al matematicii (de exemplu), fr cunoaterea unor noiuni fundamentale (cum ar fi cele privind teoria mulimilor, teoria numerelor etc.), nici n Informatic nu ne putem dispensa de conceptul de algoritm. Prin algoritm (imperativ) se nelege ansamblul de transformri (metode) ce se aplic asupra unui set de date de intrare i care determin obinerea ntr-un timp finit i dup o succesiune precis de pai, a unui set de date de ieire (, , ). Aceasta nu este o definiie, ci o descriere a unui concept de baz. Spre deosebire de matematica clasic (n care noiunile de baz, nedefinite ci doar descrise, sunt relativ simple: mulime, punct, plan etc.), noiunile informatice similare sunt mult mai complicate (n afar de algoritm, mai amintim: baz de date, program concurent, site, cip, etc.). Un accent deosebit trebuie pus pe caracteristicile algoritmilor: generalitatea (universalitatea), determinismul i finitudinea, eficacitatea (, ). S precizm totui c introducerea oricrei noiuni (chiar nefundamentale), ar trebui s urmeze urmtoarele etape:

Etapa de elaborare i motivaie (iniial). Fundamentat i eficient integrat ntr-un sistem, o noiune cere noi domenii de aplicare. Prin urmare atrage dup sine (motiveaz) introducerea unor noi noiuni sau furnizarea unor noi rezultate, pn cnd aria de extindere se ngusteaz.

Etapa de formare a noiunii. Ilustrat prin exemple, argumentat teoretic i, de dorit, demonstrat matematic, o noiune se constituie ca un util i puternic mijloc de producie pentru domeniul pentru care a fost elaborat. Rmne doar s-l exploatm adecvat. Didactic, acest aspect cuprinde argumentarea tiinific a noiunii introduse i reliefarea unor noi, posibile domenii de aplicabilitate.

Etapa de consolidare, prin operare cu noiunea. O noiune poate fi considerat asimilat dac ea devine i instrument de dobndire a unor cunotine i dac elevii pot opera cu aceast noiune n situaii noi.

De exemplu, n privina reprezentrii algoritmilor, optm pentru folosirea pseudocodului sau a altor tipuri de diagrame. Nici un efort metodic nu este prea mare pentru a avea o reuit deplin n nelegerea i abordarea noiunilor de algoritm i de reprezentare a acesteia. Noiunile ulterior introduse vor apare n mod firesc, cptnd caracteristicile unor nlnuiri cauzale. De aceea este necesar ca n mintea elevilor s existe o ordonare a noiunilor, o corelare fireasc a lor, o motivaie, pentru c numai peste cunotine bine asimilate se pot aterne n mod eficient cunotine noi. Pentru a-l cita pe Domnul profesor I. Maxim, elevul trebuie s neleag c ordinea n care se predau noiunile nu este ntmpltoare i c el trebuie s fac un efort de asimilare, care va fi rspltit prin reuite viitoare. Unele teme de predare pot fi organizate n spiral (ceea ce presupune o rentoarcere la acelai coninut, dar pe un nivel superior). Acest mod de planificare corespunde sistemului concentric propriu-zis (concentric calitativ) i sistemului concentric cantitativ (concentric liniar). Sistemul concentric calitativ desemneaz modul de organizare a cunotinelor n programele de nvmnt, manuale i lecii, n aa fel nct noiunile (cunotinele) se nsuesc prin reluri, restructurri, reinterpretri, pn la formarea lor complet. Sistemul concentric cantitativ este modul de organizare a cunotinelor n programele colare, manuale i lecii (inclusiv pe INTERNET), constnd n reluarea adugit i detaliat a materiei parcurse anterior, reluare reclamat nu att de dificultatea nelegerii noiunilor, ct mai ales de nevoia lrgirii cunotinelor n succesiunea claselor i treptelor colare. Trebuie astfel fcut diferena dintre noiunea de variabil, aa cum este ea cunoscut din matematica clasic i cea de variabil n sensul limbajelor de programare imperative (D. Barron, ), noiune care poate fi reprezentat ca (de unde poate rezulta i interpretarea corect a asignrii) (?????de reparat):

Nume

AtributeReferinIntuitiv vorbind, pentru a parcurge drumul de la realitatea de modelat la implementarea pe calculator, trebuie nelese, cel puin la nivelul descriptiv, i alte noiuni, cum ar fi cele de problem, complexitate, corectitudine/verificare, etc. O problem este un concept caracterizat prin enun, mulime de informaii de intrare (instane ale problemei), mulime de informaii de ieire (rspunsuri ale problemei). Ca urmare, rezolvarea unei probleme nseamn c pentru fiecare instan trebuie s se furnizeze (ntr-un timp finit) un anumit rspuns. Dac acest rspuns este doar de tipul DA sau NU, atunci avem de-a face cu o problem de decizie. Soluia adoptat pentru aceast a treia cale de descriere a unei mulimi are avantajul de a avea i o caracteristic de natur (semi)algoritmic. Acceptm astfel paradigma imperativ propus de D. Knuth (), Algoritm = Date + Operaii. Mai exact, un algoritm (imperativ) reprezint o secven finit de pai (instruciuni), care descriu operaii precise asupra unor informaii (date) iniiale (de intrare) sau intermediare (de lucru, temporare), n vederea obinerii unor informaii (rezultate) finale (de ieire). Paii se execut (operaiile se efectueaz n mod concret) n ordinea scrierii lor n secven. Un algoritm calculeaz o funcie sau rezolv o problem. Intuitiv, datele de intrare reprezint elemente din domeniul de definiie al funciei de calculat (sau informaiile iniiale din realitatea n care i are originea problema pe care vrem s o rezolvm), iar datele de ieire sunt elemente din codomeniul funciei (respectiv, soluiile problemei). Un algoritm se termin pentru toate intrrile admise, prin urmare exist ntotdeauna un ultim pas, a crui execuie marcheaz de obicei i obinerea rezultatelor de ieire. Din motive tehnice, vom lua uneori n considerare i algoritmi care nu se termin pentru toate intrrile, pe care-i vom numi semialgoritmi (proceduri). Un (semi)algoritm poate fi descris sub mai multe forme, printre care se numr i pseudocodul (limbaj intermediar ntre limbajul natural i un limbaj de programare comercial). Prin urmare, algoritmul Alg rezolv problema P, dac avnd la intrare orice instan a problemei, acesta se termin avnd ca rezultat un element din mulimea de rspuns. Exist i probleme semirezolvabile. Diferena fa de problemele rezolvabile este aceea c algoritmul care le rezolv poate s nu se termine pentru fiecare instan. Exist de asemenea i probleme nerezolvabile (nedecidabile), cu alte cuvinte probleme pentru care nu exist algoritmi care s le rezolve. n limbajul curent a intrat i termenul de problem netratabil, pentru a desemna o problem rezolvabil, dar ntr-un timp practic inaccesibil (exponenial sau mai mare). Astfel, dou dintre msurile (teoretice, globale) de complexitate des ntrebuinate sunt complexitatea timp i complexitatea spaiu. Ideea este aceea c un (orice) pas elementar (instruciune) al (a) unui algoritm se execut ntr-o unitate de timp (pentru spaiu, fiecare dat elementar se memoreaz ntr-un registru sau locaie de memorie, acesta/aceasta ocupnd o unitate de spaiu), criteriul numindu-se al costurilor uniforme. Exist i criteriul costurilor logaritmice, n care orice informaie de lungime i, se prelucreaz (respectiv, se memoreaz) n numrul de uniti de timp (uniti de spaiu) egal cu (log(i)( + 1 (dac i = 0, se convine s lum log(i) = 0; (n( noteaz partea ntreag inferioar a numrului n). Intuitiv, timpul luat de execuia unui algoritm Alg este dat de numrul de instruciuni (pai/operaii elementare) efectuate (s-l notm cu tAlg), iar spaiul (notat cu sAlg) este dat de numrul de locaii (elementare) de memorie (intern, a calculatorului) ocupate n cursul execuiei. Sigur c totul se raporteaz la lungimea nF a fiecrei intrri F ( IN i ne intereseaz de fapt sup{tAlg(F) | F ( IN i nF = n ( N}, margine superioar pe care o vom nota cu tAlg(n) (respectiv sAlg(n)). Aceast abordare (n care se caut cazul cel mai nefavorabil), ne permite s fim siguri c pentru fiecare intrare de lungime n, timpul de execuie al lui Alg nu va depi tAlg(n). Cum determinarea acelui supremum este de multe ori destul de dificil, ne vom mulumi s studiem aa-numita comportare asimptotic (sau ordinul de cretere) a (al) lui tAlg(n), adic ne vor interesa doar anumite margini ale sale, cum ar fi marginea sa superioar. Formal, pentru fiecare f : N ( N, notm O(f) = {g | g : N ( N, exist c ( R, c ( 0 i exist k ( N, astfel nct pentru fiecare n ( k avem g(n) ( cf(n)} i vom spune c fiecare g ( O(f), este de ordinul lui f, ceea ce se mai noteaz i cu g = O(f). Astfel, exist probleme care au complexitatea (timp, asimptotic) O(2n), sau, pe scurt, complexitate exponenial, deoarece exist (mcar) un algoritm Alg care rezolv problema i pentru care tAlg(n) = O(2n). Similar, vom vorbi de algoritmi polinomiali (tAlg(n) = O(p(n)), unde p(n) desemneaz un polinom n n, de orice grad), sau de algoritmi liniari (p(n) de mai sus este un polinom de gradul I). Pentru detalii pot fi consultate , , , , , (vom reveni i noi prin cteva exemple n ultima seciune a acestui capitol). Dup cum am mai precizat, pentru c noiunea de algoritm este dat printr-o descriere i nu prin utilizarea genului proxim i a diferenei specifice (n sensul logicii aristotelice clasice, ca subdisciplin a Filozofiei), avem mai nti nevoie de metode de reprezentare a algoritmilor. O prim form de reprezentare este desigur limbajul natural. O alt form de reprezentare a algoritmilor este limbajul pse