Documente Academic
Documente Profesional
Documente Cultură
Generaia actual este una pe care o putem numi generaia nativilor digitali, format din
tineri cu un sim nnscut al tehnologiei. De la mnuitul tabletelor, la browsing sau la jocuri,
tinerilor le este mult mai uor s interacioneze i s se adapteze la progresul tehnologic
deoarece, pentru ei, totul pare c vine natural, cel puin n comparaie cu generaiile noastre,
care ne-am nceput periplul n lumea calculatoarelor cu Win95 sau Pascal sub MS-dos.
Dar faptul c aceste generaii sunt mai nzestrate tehnologic dect eram noi nu este
motivul principal pentru care ar trebui s ncurajm copiii s se aventureze, nc de la o vrst
fraged, n lumea programrii.
S-i nvm pe copii programare nu se rezum la exersarea elementelor de baz ale
folosirii calculatorului sau la pregtirea lor pentru un job n IT.
Uniunea European estimeaz c, pn la sfritul anului 2020, peste 90% dintre locurile
de munc vor avea ca cerin obligatorie abiliti de folosire a computerului, iar Statele Unite
estimeaz o cretere cu 22% a cererii pentru joburi n IT pentru aceeai perioad. Totodat, n
Romnia, domeniul IT&C reprezint 10% din PIB, iar ara noastr este n topul preferinelor
firmelor strine pentru servicii de outsource n acest domeniu.
nvnd s vorbeasc n cod, copiii i vor dezvolta gndirea logic care, n schimb,
i va susine n dezvoltarea abilitilor de rezolvare a problemelor. Fr a minimaliza eforturile
educatorilor dedicai care se strduiesc s dezvolte gndirea logic n contextul materiilor pe
care le predau, am constatat c aceast aptitudine este de multe ori neglijat de sistemul
educaional din Romnia.
nvarea programrii n cazul tinerilor nu are i nu ar trebui s aib ca scop final
pregtirea acestora pentru o carier n acest domeniu. Gndirea logic i capacitatea de a rezolva
probleme, odat dezvoltate, vor fi utilizate i n viaa de zi cu zi, pentru c, la baz, folosim
acelai tip de gndire dac scriem o bucat de cod sau ne preparm o cafea.
Bineneles, gndirea logic astfel dobndit le poate facilita copiilor i tinerilor
orientarea ctre o carier n programare, dar aceasta este o decizie care ar trebui luat de ei, n
mod individual, n condiiile n care pasiunea pentru acest domeniu este evident.
Programarea i dezvoltarea gndirii logice
Reducnd programarea la esen, o caracterizare precis ar fi c aceasta este gndirea
logic pus n practic. Orice bucat de cod pe care o scriem este un proces logic n sine: avem
un scop final (concluzie), iar ca s ndeplinim acest scop final alturm o serie de premise.
De exemplu, un program simplu de tip Hello World (primul program fcut inclusiv de
mine la prima deschidere a unui compilator) are ca scop final apariia pe ecran a textului Hello
World. Pentru asta, n majoritatea limbajelor de programare, avem nevoie doar de o premis,
i anume s scriem o instruciune care afieaz textul pe ecran. Dac vreau s tiu cum s
formulez acea instruciune, trebuie s m uit n documentaia limbajului de programare.
Extrapolnd, dac vreau s mi fac o cafea, m gndesc c cel mai rapid i eficient este
s o fac cu ajutorul expresorului. Pentru asta, trebuie s folosesc funciile aparatului. Dac vreau
s aflu cum se folosete aceast funcie, trebuie s m uit n manualul espresorului.
n spiritul aceleiai idei, putem vorbi i despre capacitatea de a rezolva problemele,
dezvoltat concomitent cu gndirea logic. Dac programul meu de tip Hello World nu afiseaz
pe ecran ceea ce i-am spus s afieze, eu, ca programator, voi urma o serie de pai pentru a
depana programul: voi reanaliza aciunile pe care le-am fcut i voi cuta s vd dac am
folosit instruciunile n mod corect sau dac exist vreo eroare.
Dac dup un minut de cnd am pus expresorul n funciune nu se prepar cafeaua, voi
aplica fix aceiai pai: voi verifica dac am apsat butoanele corecte, dac expresorul a afiat
vreo eroare sau dac este bgat n priz.
Deschooling sau despre un alt mod de a nva
n timp ce lucrm exerciii de programare, le putem oferi copiilor i o alt perspectiv
asupra fenomenului de educare nvare. Implicarea ntr-o astfel de activitate poate rezulta i
ntr-o schimbare de ordin social.
Mai specific, s prezentm copiilor o experien de nvare diferit de cea cu care sunt
obinuii, zi de zi, la coal. Putem face asta ajutndu-i s nvee programare printr-un concept
care se numete deschooling un context n care ne concentrm doar pe nvare. Acest lucru
implic renunarea la monologul pe care l presupune o lecie normal (predarea) i crend un
dialog n care s ne concentrm, pe lng ce vrem s nvm i pe cum, de ce s nvm acele
lucruri i la ce le putem folosi n viitor.
Schimbnd felul n care tinerii privesc procesul de nvare i concentrndu-ne pe partea
practic a fiecrui lucru nou pe care l prezentm, i ajutm pe cei mici s neleag mai bine
rolul colii i al materiilor zilnice, lrgindu-le astfel orizontul pentru a-i descoperi pasiunile i
de ce nu, pentru a se pregti mai bine n meseria pe care i-o aleg n viitor.
Robot Turtles, o poveste de succes
Pentru a avea rezultate, nvarea programrii are cteva elemente cheie. n primul rnd,
copiii trebuie s tie s scrie. Apoi, pentru ndeplinirea anumitor sarcini, au nevoie de un nivel
minim de cunoatere a conceptelor matematice, att de algebr, ct i de geometrie. Pornind de
la aceste elemente, am putea spune c o vrst potrivit ar fi cea de opt ani.
Chiar dac, practic, nu i putem nva programare de la vrste mai mici de opt ani, putem
pregti terenul, prin joac, ncepnd cu vrsta de patru ani.
n 2013, Dan Shapiro, un programator angajat la Google, a lansat o campanie de Kick
Starter pentru un board game al crui scop este s i nvee pe precolari conceptele de baz ale
programrii. n doar cteva sptmni, Dan a reuit s strng 631 230 de dolari, dup ce i
propusese o sum iniial de 25 000 de dolari.
Jocul, numit Robot Turtles, este structurat ca orice joc de acest tip, doar c, pentru a
ajunge la final i pentru a ctiga, copiii trebuie s pun cap la cap o serie de instruciuni logice,
scrise pe cri de joc pe care le trag dintr-un pachet. Prin alturarea instruciunilor, copiii creeaz
i execut linii de cod, dar se i ntlnesc cu probleme pe care trebuie s le depaneze, ajustnd
instruciunile. Cu ajutorul acestui joc, copiii nva cum s mpart rezolvarea unei probleme n
pai mici, cum s rezolve o problem pornind de la scop i ajungnd la o soluie i cum s
vizualizeze mai multe soluii pentru o problem. n acelai timp, cei mici i exerseaz rbdarea
i perseverena.
Este greu s-i imaginezi o slujb care s nu presupun cunostiine de operare sau
programare a calculatoarelor.
n cazul n care suntei ngrijorat de faptul c:
a) elevii de coal primar nu au capacitatea de a coda ,
b) nu exist loc n curriculum , i
c) nu posezi abiliti, cunostiine de programare
atunci urmtoarele site-uri i aplicaii pot ajuta pe oricine s creeze aplicaii, jocuri interactive,
teste, animatii , etc.
Cel mai mare avantaj este faptul c multe dintre aceste instrumente sunt gratuite , sau
aproape gratuite, i nu necesit experien n programare.
Limbaje de programare potrivite pentru copii
n ultimii ani au fost dezvoltate mai multe metode i limbaje de programare dedicate
tinerilor, dar asta nu nseamn c ei nu pot nva i folosi tehnologii mai avansate. Dei unele
dintre aceste metode nu au fost dezvoltate n mod special pentru predarea limbajelor de
programare, ele pot fi folosite cu mult succes atunci cnd dorim s-i nvm pe tineri s
programeze n diverse limbaje adecvate nivelului lor de cunotine.
GameStar Mechanic
GameStar Mechanic nva copii , cu vrstele ntre 7-14 s proiecteze propriile lor jocuri
video. Elevii vor fi ncntai de posibilitatea de a nva n ritmul lor n timp ce-i creeaz
propriul joc. Site-ul integreaz gndirea critic i sarcinile de rezolvare a problemelor.
Scratch
Dintre limbajele dedicate copiilor, Scratch, creat i lansat n 2006 de MIT Media Lab,
este cel mai cunoscut. n prezent, Scratch este folosit ca unealt educaional n mai multe
domenii, printre care matematic, desen sau muzic, dar menirea sa principal a fost de ajutor
pentru a-i nva pe copii programarea. Printr-o interfa vizual, tinerii pot s-i scrie propriile
programe sau jocuri, crend i interconectnd mici dreptunghiuri care reprezint instruciuni n
cod;
Tynker
Cu toate c Tynker este relativ nou, a ajuns rapid una dintre aplicaiile favorite de codare.
Interfata arata similar cu Scratch. Dar, n timp ce Scratch a fost proiectat pentru a programa,
Tynker a fost construit pentru a preda programare. Aplicaia ofer planuri de lecie de iniiere,
instrumente de management al clasei, i o caset on-line de prezentare a programelor create de
elev. Lecii sunt n ritm propriu i simplu pentru ca elevii s le poat urma i fr asisten.
Move the Turtle
Mutai broasca este un mod de a nva prin joc procedurile de programare. Fiecare nou
nivel crete n dificultate i nva elevii o nou comand care direcioneaz broasca pentru a
ajunge la o stea, pentru a scoate un sunet, a trage o linie, etc. Un utilitar "compose" permite
elevilor s mute broasca estoas n ce mod doresc ei.
Hopscotch
otron arata foarte mult ca Scratch i Tynker i utilizeaz controale similare pentru a
trage blocuri ntr-un spaiu de lucru, dar se execut numai pe iPad. Controalele i caracterele nu
sunt la fel de extinse ca Scratch i Tynker , dar Hopscotch este un instrument foarte bun pentru
a ajuta elevii fr experien de codificare n a nva bazele programrii, gndire logic i de
rezolvare a problemelor .
Daisy the Dinosaur
De la creatorii Hopscotch, Daisy se adreseaza celor mai tineri programatori. Interfaa
este similar cu Hopscotch, dar mult simplificat. Exist doar un dinozaur care se mut i
utilizeaz numai funcii de baz, dar pentru elevii mai mici, acesta este o excelent introducere
n programare.
Cargo-Bot
Cargo-bot este un alt joc care permite elevilor dobndirea abilitilor de codificare. La
fiecare nivel, obiectivul jocului este de a muta cutii colorate dintr-un loc n altul, prin
programarea unei macarale cu gheare pentru a se deplasa la stnga sau la dreapta sau pentru a
ridica i cobor cutiile. Jocul a fost de fapt programat pe un iPad, utiliznd o aplicaie de codare
touch-bazate pe numit Codea, care se bazeaz pe limbajul de programare Lua. Jocul
permite elevilor din ciclul primar s nvee gndirea logic necesar pentru a face n cele din
urm programare.
Python
Ieind din sfera limbajelor de programare dedicate celor mici, cel mai potrivit pentru
copii, ca sintax, pare a fi Python, pentru c este ndeajuns de uor de deprins nct acetia s
nu-i piard interesul pn reuesc s obin primul rezultat. Dup primele concepte nvate n
Python, copiii pot trece uor la programarea de jocuri cu PyGame;
Javascript
Un alt limbaj pe care l putem considera potrivit este Javascript, dar aici este nevoie de
puin ajutor, deoarece setup-ul este mai complicat, iar copiii i pot pierde interesul pn s
ajung s scrie prima linie de cod. Aa c, n ajutor sare un site creat pentru a le uura copiilor
procesul de nvare: Khan Academy.
La fel ca Scratch, Khan Academy nu este 100% dedicat programrii, dar are o
component dedicat informaticii ca ansamblu cu un mediu de programare integrat (un loc n
care copiii scriu codul, l ruleaz i l depaneaz, fr a se folosi de nicio alt unelt). Cu ajutorul
acestui mediu integrat, copiii pot scrie i cod Javascript, dar pot i desena i anima diverse forme
geometrice cu ajutorul unui set de comenzi care folosesc, n spate, processing.js.
Rspunsul la fiecare linie de cod scris, fie c este corect, fie c produce o eroare, este
afiat n timp real n partea dreapt, lng editor. Singurul setup pe care copiii trebuie s l fac
este s i creeze cont pe site, s apese pe butonul New Program i s nceap s programeze.
Documentaia i editorul sunt disponibile n mai multe limbi, inclusiv romn;
HTML i CSS
Lsnd la o parte limbajele de programare, una dintre tehnologiile potrivite pentru copii
este HTML-ul, bineneles nsoit de CSS. Ca i n cazul Javascript-ului, descris mai sus, setupul iniial poate prea complicat pentru un tnr care ncepe s nvee. ns, tot la fel ca n cazul
Javascript, exist mai multe unelte care s i ajute pe copii s ajung s scrie cod i s vad
rezultatele ct mai repede.
Dintre acestea, de menionat este Code Academy, care, la fel ca n cazul Khan Academy,
ofer un mediu integrat n care copiii pot scrie cod HTML i CSS i s primeasc feedback
vizual imediat. De menionat, n cazul Code Academy, este c, spre deosebire de celelalte siteuri sau unelte, este dedicat n ntregime programrii, oferind acelai tip de editor i pentru
Javascript, Python, PHP i Ruby.
Tehnici recomandate
n contextul nvrii programrii de ctre tineri, se recomand utilizarea ctorva tehnici
pe ct de simple, pe att de eficiente:
Metafora
Este prima tehnic i probabil una dintre cele mai relevante, pentru c permite oricrui
programator s explice conceptele copiilor folosind asocieri cu lucruri care acestora le sunt deja
foarte familiare.
De exemplu, o variabil poate fi asociat cu o tampil a unui cuvnt: s spunem c
avem un text n care un cuvnt se repet de foarte multe ori. n loc s scrii acel cuvnt de foarte
multe ori de mn, te poi folosi de tampil. Aa scrii textul mult mai repede i te asiguri i c
acel cuvnt are aceeai form peste tot.
Totui, acea tampil este una magic i, dac vrei s schimbi cuvntul din text cu un
sinonim al lui, o poi face modificnd cuvntul de pe tampil, iar apoi, schimbarea se va vedea
automat i n interiorul textului, n fiecare loc n care ai aplicat tampila.
Similar, n cazul HTML i CSS, putem asocia codul HTML cu un omule pe care l
desenm chiar noi, iar tag-urile HEAD i BODY reprezint capul, respectiv corpul omuleului.
Similar, codul CSS reprezint hainele pe care i le dm;
Gratificarea instant
Toi copiii, mai ales cei nceptori n ale programrii, au nevoie s vad imediat
rezultatul fiecrei linii de cod pe care o scriu. Din acest motiv, site-urile precum Khan Academy
sau Code Academy sunt foarte potrivite. Pentru nceptori, chiar i aciunile de save n editor,
schimbarea ferestrei ctre browser i refresh-ul paginii pot fi obositoare i i pot face s i piard
interesul;
Dialogul
Un loc important ar trebui s aib i dialogul cu fiecare copil n parte, pentru a-i afla
interesele. Programarea are avantajul c se aplic ntr-o multitudine de domenii, de la ajutor n
rezolvarea temelor la matematic, la jocuri, maini sau la roboi. Am observat c fiecare copil
are o motivaie i un scop diferite n programele scrise: fetele sunt mai vizual-creative i prefer
recompensele vizuale, n timp ce bieii sunt mai technic-creativi.
Dac, de exemplu, fiecare primete ca task s deseneze ceva n cod, fetele vor alege un
obiect i se vor concentra s l deseneze ct mai exact posibil, n timp ce bieii vor desena acel
obiect ct de repede pot, l vor aduce la o form brut i apoi vor cuta cum s treac la un pas
urmtor prin aciuni simple, cum ar fi adugarea unui text sau animarea obiectului.
Cteva motive i o chemare pentru programatori
Puine, cred, sunt bucuriile care se pot compara cu aceea pe care o simi cnd vezi c,
ntr-un fel sau altul, ai contribuit la orientarea sau formarea unui tnr. Activitatea de nvare a
copiilor nu se rezum niciun moment la un transfer unilateral de informaii i totul poate fi privit,
de fapt, un proces de nvare reciproc.
Cnd vine vorba de aspecte tehnice, copiilor le este mai greu s verbalizeze problemele
pe care le ntmpin, dar, n acelai timp le este greu i s neleag o explicaie tehnic.
Capacitatea de a explica lucruri tehnice, dar fr a folosi limbaj tehnic sau capacitatea de a
explica ceva n funcie de nivelul la care se afl copilul cu care vorbeti este o aptitudine
folositoare att n viaa personal, ct i n cea profesional.
n viaa personal, ne va ajuta n comunicarea cu propriii (viitori) copii, iar n viaa
profesional, ne poate ajuta cu avansarea n carier.
S poi asculta, rezolva probleme i explica clar diferite sarcini, concepte sau decizii sunt
unele dintre deprinderile foarte importante, poate cele mai importante, pentru un programator
senior sau lider de echip.
Sper ca aceste descrieri v-au deschis apetitul i c vei ncorpora codificare n programa
colar. Chiar i n cazul n care un elev nu intenioneaz s urmeze programarea ca o cariera,
i va permite s-i dezvolte abiliti de problematizare, va dezvolta creativitatea i va spori
gndirea logic.
Toi copiii/elevii notri merit ansa de a deveni creatori n loc de consumatori de
programe de calculator.
Ideea este c, dac dorii s introducei n educaia copiilor programarea, exist mai
multe moduri diferite de a face acest lucru. Dac vrei s mergi pe acest drum, Google este
prietenul tu. Este uimitor ct de mult lucruri gseti acolo.