De ce să introducem în școli gândirea computațională?

Ei da, astăzi schimbăm puțin subiectul și vorbim despre abilitățile de gândire. Gândirea computațională este una din abilitățile ce vor fi cerute din ce în ce mai mult în Secolul XXI.

De ce? Ei bine, ne-am obișnuit de mult să vedem în jur și să folosim tot felul de obiecte și instrumente care fac lucrurile mai ușoare pentru noi – telefoane inteligente, televizoare inteligente, aspiratoare și mașini de spălat automate, automobile deștepte, frigidere, case de marcat sau de bilete, bancomate și multe alte automate, ca să nu mai vorbim de uneltele-mașini care lucrează (aproape) singure în fabrici și uzine, pilotul automat al avioanelor sau navelor sau al diverselor utilaje care lucrează pe câmpuri sau pe străzile orașelor și, evident, computerele, instrumentele tip Alexa și multe-multe alte instrumente și gadget-uri. Evident, în fiecare zi aproape apar și altele, iar limita progresului bazat pe automatizarea proceselor și independenței de lucru a mașinilor care vor înlocui munca brută sau plicticoasă, lăsând omului libertatea de a crea și de a face lucrurile pe îndelete – stă doar în capacitatea noastră de a imagina, de a crea și de a programa aceste mașini și ”inteligențe” artificiale.

Iar această limită va fi determinată doar de numărul celor care, la sfârșitul ciclului de educație, vor fi capabili să gândească computațional pentru ca, indiferent în ce domeniu vor lucra (inclusiv în educație!), să înțeleagă ce anume poate fi transferat unor instrumente non-umane care să ne ajute să rezolvăm problemele și cum anume se pot programa aceste instrumente, lucrând alături de programatorii profesioniști pentru a crea noi programe sau pentru a le îmbunătăți pe cele existente. Asta înseamnă că acest tip de gândire ar trebui dezvoltat în școli, încă de la cele mai fragede vârste și, așa cum am aflat de curând pe parcursul cursului EU Code Week Icebreaker (organizat pe platforma European Schoolnet Academy* în perioada 11 Mai – 16 Iunie), putem învăța în primul rând noi, părinții și profesorii și apoi îi putem învăța pe copii/ elevi acest tip de gândire, chiar și fără să lucrăm neapărat pe un computer sau cu programe sofisticate.

* https://www.europeanschoolnetacademy.eu/

Computational-thinking-6Autorul fotografiei – YouX Ventures

Dacă veți citi cu atenție explicațiile din ghidul de mai jos, veți înțelege și faptul că abilitatea gândirii computaționale este utilă pentru toți cei care lucrează la rezolvarea unor probleme complexe, la stabilirea unor sisteme – de lucru, sociale, de servicii etc., ca și pentru toți cei care lucrează la îmbunătățirea unor procese mai complexe, la nivelul unei comunități sau al întregii societăți.

Computational-thinking-4
Elementele unui program de reducere a risipei alimentare – foto Hugo Rocha

Dar, ce este gândirea computațională?

Iată cum o definește un mini-ghid publicat de BBC online (este un ghid creat pentru tineri).

Computerele pot fi utilizate pentru a ne ajuta să rezolvăm probleme Cu toate acestea, înainte de a aborda o problemă, trebuie în primul rând înțeleasă cu claritate problema în sine ca și modalitățile prin care ea poate fi rezolvată.

Gândirea computațională este cea care ne permite să facem asta.

Gândirea computațională este cea care ne permite să luăm o problemă complexă, să înțelegem care este acea problemă și să dezvoltăm soluții posibile. Apoi putem prezenta aceste soluții într-un mod în care un computer, un om sau ambii o pot înțelege.

Cei patru piloni ai gândirii computaționale

Există patru tehnici cheie (piloni) ai gândirii computaționale:

  • descompunerea desfacerea/ descompunerea unei probleme complexe sau a unui sistem/ proces în părți mai mici, care pot fi mai bine controlate

  • recunoașterea de tipare/ modele repetabile – să cauți similarități între și în interiorul problemelor/ proceselor/ sistemelor

  • abstracțiasă te concentrezi doar asupra informației importante/ esențiale, ignorând detaliile irelevante

  • crearea de algoritmi – să dezvolți o soluție de rezolvarea pas cu pas a problemei, sau reguli pe care să le urmezi pentru a rezolva problema/ pentru a asigura funcționarea eficientă a unui proces / sistem.

Fiecare pilon este la fel de important ca și ceilalți. Ei sunt ca picioarele unei mese – dacă lipsește unul din picioare, probabil că masa se va răsturna. Aplicarea corectă a tuturor celor patru tehnici va fi de ajutor pentru programarea unui computer (dar nu numai!, n.n.)

Computational-thinking-1

Foto Bonneval Sebastien

Gândirea computațională în practică

O problemă complexă este una pe care, la prima vedere, nu știm cum s-o rezolvăm cu ușurință.

Gândirea computațională implică ideea de a lua această problemă complexă și să o spargem/ desfacem într-o serie de probleme mai mici, pe care le putem controla/ rezolva (descompunerea). Ne putem uita la fiecare dintre aceste probleme mai mici, individual, gândindu-ne cum au fost rezolvate anterior probleme similare (recunoașterea de tipare) și să ne concentrăm numai pe detaliile importante, ignorând informațiile irelevante (abstracția). Apoi pot fi concepuți pași simpli sau reguli pentru a rezolva problema complexă în cel mai bun mod (crearea de algoritmi).

În fine, acești pași simpli sau reguli sunt utilizați pentru a programa un computer sau o mașinărie care să ne ajute să rezolvăm acea problemă complexă în cel mai bun mod.

Programul rezultat – este o secvență de instrucțiuni pentru computer.

Computational-thinking-3

Foto YouX Ventures

Gândirea computațională

Gândirea computațională nu este programare. Nu înseamnă nici măcar că gândești ca un computer, deoarece computerele nu gândesc și nu pot gândi cum o fac oamenii.

Programareaeste procesul scrierii în limbaj binar a unui set de instrucțiuni care fac parte dintr-un soft pentru computere.

Mai simplu spus, programarea spune unui computer sau mașini ce să facă și cum să facă. Gândirea computațională îți permite să extragi exact ce vei spune computerului să facă, să creezi setul de instrucțiuni, pas cu pas.

De exemplu, dacă ai stabilit că te vei întâlni cu un prieten într-un loc în care nu ai mai fost niciodată, probabil că îți vei planifica dinainte drumul pe care vei păși atunci când pleci de acasă. Te vei gândi la toate rutele posibile (poate vei cerceta unele surse de informație) și te vei gândi ce rută este cea mai bună – asta poate fi ruta cea mai scurtă, cea mai rapidă sau una care trece pe lângă magazinul favorit de unde să cumperi pe drum ceva. Apoi vei urma pas cu pas instrucțiunile pe care ți le-ai stabilit pentru a ajunge acolo, la ora stabilită. În acest caz, partea de planificare este similară cu gândirea computațională, iar urmărirea instrucțiunilor este similară cu programarea.

Să fii capabil să transformi o problemă complexă în una pe care o poți înțelege cu ușurință este o abilitate extrem de utilă. De fapt, este o abilitate pe care tu o ai deja și pe care o utilizezi zi de zi – mai rămâne doar să o conștientizezi și să o dezvolți pentru a putea rezolva probleme cu adevărat complexe.

Computational-thinking-5

Foto Icons8 Team

De exemplu, ar putea fi vorba să decizi ce să faci împreună cu grupu tău de prieteni sau cu familia. Dacă vă plac lucruri diferite, va fi nevoie să decideți:

  • ce ați putea face

  • unde ați putea merge

  • cine ce vrea să facă

  • ce ați mai făcut înainte și a fost un succes

  • câți bani aveți și cât ar costa oricare din opțiuni

  • cum va fi vremea

  • cât de mult timp aveți

Din aceste informații, tu și prietenii tăi/ familia ta veți putea decide mai ușor unde să mergeți și ce să faceți – pentru a vă asigura că majoritatea participanților vor fi fericiți. Dacă vreți, ați putea chiar folosi un computer care să vă ajute să culegeți și să analizați datele pentru a elabora cea mai bună soluție a problemei, atât pentru prezent cât și pentru situația în care problema va apărea din nou, în viitor.

Computational-thinking-2

Foto Michel Vrba

Un alt exemplu ar putea să apară atunci când jucați un joc pe computer (ghidul a fost conceput de BBC pentru tineri, n.n.). În funcție de joc, pentru a completă un nivel va trebui să știi:

  • ce elemente/ lucruri trebuie să aduni, cum le poți colecta și cât timp ai la dispoziție ca să le aduni

  • unde este ieșirea și care este cea mai bună rută pe care să o apuci pentru a ajunge acolo în cel mai scurt timp posibil

  • ce fel de dușmani există pe drum și care le sunt punctele slabe

Din aceste detalii poți construi o strategie pentru completarea nivelului în cel mai eficient mod.

Dacă ar fi vorba să-ți creezi propriul joc de computer, acestea sunt exact tipurile de întrebări la care ar trebui să te gândești înainte de a fi capabil să-ți programezi jocul.

(Exact la fel se programează și o lecție-aventură în natură pentru copii, cum ar fi un concurs de colectare de fotografii ale unor specii de flori, insecte, păsări pentru lecțiile de științele naturii, de exemplu, n.n.)

Amândouă exemplele de mai sus sunt cazuri în care gândirea computațională a fost utilizată pentru a rezolva o problemă complexă:

  • fiecare problemă complexă a fost desfăcută în câțiva pași și decizii mai mici (ex. unde să mergem, cum să completăm un nivel – descompunerea)

  • au fost luate în considerare doar detaliile relevante (ex vremea, locul de ieșire – abstracția)

  • a fost utilizată cunoașterea anterioară a unor probleme similare (recunoașterea de tipare).. pentru a crea un plan de acțiune pas cu pas (algoritmi)

GLOSAR

  1. Abstracția

    Procesul separării și filtrării/ eliminării ideilor și detaliilor specifice care nu sunt necesare, pentru a ne putea concentra pe acelea care sunt necesare

  2. Algoritm

    O secvență de instrucțiuni logice pentru a îndeplini o sarcină. În programare, algoritmii sunt necesari pentru a concepe un program de computer.

  3. Descompunerea

    Desfacerea unui sistem, proces, problemă în părți mai mici, care sunt mai ușor de înțeles, programat și menținut.

  4. Recunoașterea de tipare

    Găsirea de similarități și tipare pentru a rezolva probleme complexe mai eficient.

  5. Program

    Secvența de instrucțiuni pentru un computer.

  6. Programare

    Proces de scriere a unui soft de computer.

Sursa Ghidului: https://www.bbc.co.uk/bitesize/guides/zp92mp3/revision/1

Computational-Siglă cu baloaneSigla Săptămânii Programării EU

P.S. Pentru cei interesați să afle mai mult despre cum își pot ajuta copiii sau elevii să învețe bazele gândirii computaționale – distrându-se alături de ei în acest proces – vă invit să vă înscrieți la cursul pomenit mai sus, care este deschis până la jumătate lunii Iunie și e complet gratuit –

https://www.europeanschoolnetacademy.eu/courses/course-v1:CodeWeek+Icebreaker+2020/

Vă asigurăm că veți găsi acolo foarte multe idei și resurse – traduse în 29 de limbi, inclusiv româna. Ne vedem la curs? Sau poate vom colabora la organizarea unui eveniment în cadrul cursului, ce ziceți? 🙂

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.