avantajele inițierii timpurii În programare

Upload: ira-radu

Post on 07-Jul-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/18/2019 Avantajele Inițierii Timpurii În Programare

    1/7

    AVANTAJELE INIȚIERII TIMPURII ÎN PROGRAMARE 

    Generația actuală este una pe care o putem numi generația nativilor digitali, formată dintineri cu un simț înnăscut al tehnologiei. De la mânuitul tabletelor, la browsing  sau la jocuri,

    tinerilor le este mult mai ușor să interacționeze și să se adapteze la progresul tehnologicdeoarece, pentru ei, totul pare că vine natural, cel puțin în comparație cu generațiile noastre,care ne-am început periplul în lumea calculatoarelor cu Win95 sau Pascal sub MS-dos.

    Dar faptul că aceste generații sunt mai înzestrate tehnologic decât eram noi nu estemotivul principal pentru care ar trebui să încurajăm copiii să se aventureze, încă de la o vârstăfragedă, în lumea programării. 

    Să-i învățăm pe copii programare nu se rezumă la exersarea elementelor de bază alefolosirii calculatorului sau la pregătirea lor pentru un job în IT.

    Uniunea Europeană estimează că, până la sfârșitul anului 2020, peste 90% dintre locurilede muncă vor avea ca cerință obligatorie abilități de folosire a computerului, iar Statele Uniteestimează o creștere cu 22% a cererii pentru joburi în IT pentru aceeași perioadă. Totodată, înRomânia, domeniul IT&C reprezintă 10% din PIB, iar țara noastră este în topul preferințelorfirmelor străine pentru servicii de outsource în acest domeniu.

    Învățând să „vorbească” în cod, copiii își vor dezvolta gândirea logică care, în schimb,îi va susține în dezvoltarea abilităților de rezolvare a problemelor. Fără a minimaliza eforturileeducatorilor dedicați care se străduiesc să dezvolte gândirea logică în contextul materiilor pecare le predau, am constatat că această aptitudine este de multe ori neglijată de sistemuleducațional din România. 

    Învățarea programării în cazul tinerilor nu are și nu ar trebui să aibă ca scop final pregătirea acestora pentru o carieră în acest domeniu. Gândirea logică și capacitatea de a rezolva probleme, odată dezvoltate, vor fi utilizate și în viața de zi cu zi, pentru că, la bază, folosimacelași tip de gândire dacă scriem o bucată de cod sau ne preparăm o cafea.

    Bineînțeles, gândirea logică astfel dobândită le poate facilita copiilor și tinerilororientarea către o carieră în programare, dar aceasta este o decizie care ar trebui luată de ei, înmod individual, în condițiile în care pasiunea pentru acest domeniu este evidentă.

    Programarea și dezvoltarea gândirii logice 

    Reducând programarea la esență, o caracterizare precisă ar fi că aceasta este gândirealogică pusă în practică. Orice bucată de cod pe care o scriem este un proces logic în sine: avemun scop final (concluzie), iar ca să îndeplinim acest scop final alăturăm o serie de premise.  

    De exemplu, un program simplu de tip Hello World (primul program făcut inclusiv demine la prima deschidere a unui compilator) are ca scop final apariţia pe ecran a textului „HelloWorld”. Pentru asta, în majoritatea limbajelor de programare, avem nevoie doar de o premisă,

  • 8/18/2019 Avantajele Inițierii Timpurii În Programare

    2/7

    și anume să scriem o instrucțiune care afişează  textul pe ecran. Dacă vreau să știu cum săformulez acea instrucțiune, trebuie să mă uit în documentația limbajului de programare. 

    Extrapolând, dacă vreau să îmi fac o cafea, mă gândesc că cel mai rapid și eficient estesă o fac cu ajutorul expresorului. Pentru asta, trebuie să folosesc funcțiile aparatului. Dacă vreausă aflu cum se folosește această funcție, trebuie să mă uit în manualul espresorului.

    În spiritul aceleiași idei, putem vorbi și despre capacitatea de a rezolva problemele,dezvoltată concomitent cu gândirea logică. Dacă programul meu de tip Hello World nu afisează  pe ecran ceea ce i-am spus să afişeze, eu, ca programator, voi urma o serie de pași pentru a“depana” programul: voi reanaliza acțiunile pe care le-am făcut și voi căuta să văd dacă amfolosit instrucțiunile în mod corect sau dacă există vreo eroare. 

    Dacă după un minut de când am pus expresorul în funcţiune nu se prepară cafeaua , voiaplica fix aceiași pași: voi verifica dacă am apăsat butoanele corecte, dacă expresorul a afișatvreo eroare sau dacă este băgat în priză. 

    Deschooling  sau despre un alt mod de a învăța În timp ce lucrăm exerciții de programare, le putem oferi copiilor și o altă perspectivă

    asupra fenomenului de educare –  învățare. Implicarea într -o astfel de activitate poate rezulta șiîntr-o schimbare de ordin social.

    Mai specific, să prezentăm copiilor o experiență de învățare diferită de cea cu care suntobișnuiți, zi de zi, la școală. Putem face asta ajutându-i să învețe programare printr -un conceptcare se numește deschooling –  un context în care ne concentrăm doar pe învățare. Acest lucruimplică renunțarea la monologul pe care îl presupune o lecție normală (predarea) și creând undialog în care să ne concentrăm, pe lângă ce vrem să învățăm și pe cum, de ce să învățăm acele

    lucruri și la ce le putem folosi în viitor.Schimbând felul în care tinerii privesc procesul de învățare și concentrându-ne pe partea

     practică a fiecărui lucru nou pe care îl prezentăm, îi ajutăm pe cei mici să înțeleagă mai binerolul școlii și al materiilor zilnice, lărgindu-le astfel orizontul pentru a-și descoperi pasiunile șide ce nu, pentru a se pregăti mai bine în meseria pe care și -o aleg în viitor.

    Robot Turtles, o poveste de succes

    Pentru a avea rezultate, învățarea programării are câteva elemente cheie. În primul rând,copiii trebuie să știe să scrie. Apoi, pentru îndeplinirea anumitor sarcini, au nevoie de un nivelminim de cunoaștere a conceptelor matematice, atât de algebră, cât și de geometrie. Pornind de

    la aceste elemente, am putea spune că o vârstă potrivită ar fi cea de opt ani. 

    Chiar dacă, practic, nu îi putem învăța programare de la vârste mai mici de opt ani, putem pregăti terenul, prin joacă, începând cu vârsta de patru ani. 

    În 2013, Dan Shapiro, un programator angajat la Google, a lansat o campanie de KickStarter   pentru un board game al cărui scop este să îi învețe pe preșcolari conceptele de bază ale

  • 8/18/2019 Avantajele Inițierii Timpurii În Programare

    3/7

     programării. În doar câteva săptămâni, Dan a reușit să strângă 631 230 de dolari, după ce își propusese o sumă inițială de 25 000 de dolari. 

    Jocul, numit Robot Turtles, este structurat ca orice joc de acest tip, doar că, pentru aajunge la final și pentru a câștiga, copiii trebuie să pună cap la cap o serie de instrucțiuni logice,scrise pe cărți de joc pe care le trag dintr -un pachet. Prin alăturarea instrucțiunilor, copiii creeazăși execută linii de cod, dar se și întâlnesc cu probleme pe care trebuie să le „depaneze”, ajustândinstrucțiunile. Cu ajutorul acestui joc, copiii învață cum să împartă rezolvarea unei probleme în pași mici, cum să rezolve o problemă pornind de la scop și ajungând la o soluție și cum săvizualizeze mai multe soluții pentru o problemă. În același timp, cei mici își exersează răbdareași perseverența. 

    Este greu să-ţi imaginezi o slujbă care să nu presupună cunostiinţe de operare sau programare a calculatoarelor.

    În cazul în care sunteți îngrijorat de faptul că:

    a) 

    elevii de școală primară nu au capacitatea de a coda ,  b)  nu există loc în curriculum , șic)  nu posezi abilităţi, cunostiinţe de programare

    atunci următoarele site-uri și aplicații pot ajuta pe oricine să creeze aplicaţii, jocuri interactive,teste, animatii , etc.

    Cel mai mare avantaj este faptul că multe dintre aceste instrumente sunt gratuite , sauaproape 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 dedicatetinerilor, dar asta nu înseamnă că ei nu pot învăța și folosi tehnologii mai avansate. Deși uneledintre aceste metode nu au fost dezvoltate în mod special pentru predarea limbajelor de programare, ele pot fi folosite cu mult succes atunci când dorim să-i învățăm pe tineri să programeze în diverse limbaje adecvate nivelului lor de cunoștințe. 

    GameStar Mechanic

    GameStar Mechanic învață copii , cu vârstele între 7-14 să proiecteze propriile lor jocurivideo. Elevii vor fi încântaţi de posibilitatea de a învăţa în ritmul lor în timp ce-şi creează propriul joc. Site-ul integrează gândirea 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ă educațională în mai multedomenii, printre care matematică, desen sau muzică, dar menirea sa principală a fost de ajutor pentru a-i învăța pe copii programarea. Printr -o interfață vizuală, tinerii pot să-și scrie propriile

  • 8/18/2019 Avantajele Inițierii Timpurii În Programare

    4/7

     programe sau jocuri, creând și interconectând mici dreptunghiuri care reprezintă instrucțiuni încod;

    Tynker

    Cu toate că Tynker este relativ nou, a ajuns rapid una dintre aplicaţiile 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. Aplicația oferă planuri de lecție de inițiere,instrumente de management al clasei, și o casetă on-line de prezentare a programelor create deelev. Lecții sunt în ritm propriu și simplu pentru ca elevii să le poată urma şi fără asistență. 

    Move the Turtle

    Mutați broasca este un mod de a învăța prin joc procedurile de programare. Fiecare nounivel crește în dificultate și învață elevii o nouă comandă care direcționează broasca pentru aajunge la o stea, pentru a scoate un sunet, a trage o linie, etc. Un utilitar "compose" permiteelevilor să mute broasca ţestoasă în ce mod doresc ei.

    Hopscotch

    “Șotron” arata foarte mult ca Scratch și Tynker și utilizează controale similare pentru atrage blocuri într-un spațiu de lucru, dar se execută numai pe iPad. Controalele și caracterele nusunt la fel de extinse ca Scratch și Tynker , dar Hopscotch este un instrument foarte bun pentrua ajuta elevii fără experiență de codificare în a învăța bazele programării, gândire logică și derezolvare a problemelor .

    Daisy the Dinosaur

    De la creatorii Hopscotch, Daisy se adreseaza celor mai tineri “ programatori”. Interfața

    este similară cu Hopscotch, dar mult simplificată. Există doar un dinozaur care se mută ș iutilizează numai funcţii 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 dobândirea abilităților de codificare. Lafiecare 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 stânga sau la dreapta sau pentru aridica şi coborâ cutiile. Jocul a fost de fapt programat pe un iPad, utilizând o aplicație de codaretouch- bazate pe numită “Codea”, care se bazează pe limbajul de programare „Lua”. Jocul permite elevilor din ciclul

     primar să înv

    eţe gân

    direa logică necesară pentru a face în cele dinurmă programare.

    Python 

    Ieșind din sfera limbajelor de programare dedicate celor mici, cel mai potrivit pentrucopii, ca sintaxă, pare a fi Python, pentru că este îndeajuns de ușor de deprins încât aceștia sănu-și piardă interesul până reușesc să obțină primul rezultat. După primele concepte învățate înPython, copiii pot trece ușor la programarea de jocuri cu PyGame; 

  • 8/18/2019 Avantajele Inițierii Timpurii În Programare

    5/7

    Javascript 

    Un alt limbaj pe care îl putem considera potrivit este Javascript, dar aici este nevoie de puțin ajutor, deoarece  setup-ul este mai complicat, iar copiii își pot pierde interesul până săajungă să scrie prima linie de cod. Așa că, în ajutor sare un site creat pentru a le ușura copiilor procesul de învățare: Khan Academy.

    La fel ca Scratch, Khan Academy nu este 100% dedicat programării, dar are ocomponentă dedicată informaticii ca ansamblu cu un mediu de programare integrat (un loc încare copiii scriu codul, îl rulează și îl depanează, fără a se folosi de nicio altă uneltă). Cu ajutorulacestui mediu integrat, copiii pot scrie și cod Javascript, dar pot și desena și anima diverse formegeometrice cu ajutorul unui set de comenzi care folosesc, în spate, processing.js.

    Răspunsul la fiecare linie de cod scrisă, fie că este corectă, fie că produce o eroare, esteafișat în timp real în partea dreaptă, lângă 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.Documentația și editorul sunt disponibile în mai multe limbi, inclusiv română; 

    HTML și CSS 

    Lăsând la o parte limbajele de programare, una dintre tehnologiile potrivite pentru copiieste HTML-ul, bineînțeles însoțit de CSS. Ca și în cazul Javascript-ului, descris mai sus, setup-ul inițial poate părea complicat pentru un tânăr care începe să învețe. Însă, tot la fel ca în cazulJavascript, există mai multe unelte care să îi ajute pe copii să ajungă să scrie cod și să vadărezultatele cât mai repede.

    Dintre acestea, de menționat 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 menționat, în cazul Code Academy, este  că, spre deosebire de celelalte site-uri sau unelte, este dedicat în întregime programării, oferind același tip de editor și pentruJavascript, Python, PHP și Ruby. 

    Tehnici recomandate

    În contextul învățării programării de către tineri, se recomandă utilizarea câtorva tehnici pe cât de simple, pe atât de eficiente:

    Metafora 

    Este prima tehnică și probabil una dintre cele mai relevante, pentru că permite oricărui programator să explice conceptele copiilor folosind asocieri cu lucruri care acestora le sunt dejafoarte familiare.

    De exemplu, o variabilă poate fi asociată cu o ștampilă a unui cuvânt: să spunem căavem un text în care un cuvânt se repetă de foarte multe ori. În loc să scrii acel cuvânt de foarte

  • 8/18/2019 Avantajele Inițierii Timpurii În Programare

    6/7

    multe ori de mână, te poți folosi de ștampilă. Așa scrii textul mult mai repede și te asiguri și căacel cuvânt are aceeași formă peste tot.

    Totuși, acea ștampilă este una magică și, dacă vrei să schimbi cuvântul din text cu unsinonim al lui, o poți face modificând cuvântul de pe ștampilă, iar apoi, schimbarea se va vedeaautomat ș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 îldesenăm chiar noi, iar tag-urile HEAD și BODY reprezintă capul, respectiv corpul omulețului.Similar, codul CSS reprezintă hainele pe care i le dăm; 

    Gratificarea instantă 

    Toți copiii, mai ales cei începători în ale programării, au nevoie să vadă imediatrezultatul fiecărei linii de cod pe care o scriu. Din acest motiv, site-urile precum Khan Academysau Code Academy sunt foarte potrivite. Pentru începători, chiar și acțiunile de save în editor,schimbarea ferestrei către 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 aflainteresele. Programarea are avantajul că se aplică într -o multitudine de domenii, de la ajutor înrezolvarea temelor la matematică, la jocuri, mașini sau la roboți. Am observat că fiecare copilare o motivație și un scop diferite în programele scrise: fetele sunt mai vizual-creative și preferărecompensele vizuale, în timp ce băieții sunt mai technic-creativi.

    Dacă, de exemplu, fiecare primește ca task  să deseneze ceva în cod, fetele vor alege unobiect și se vor concentra să îl deseneze cât mai exact posibil, în timp ce băieții vor desena acel

    obiect cât de repede pot, îl vor aduce la o formă brută și apoi vor căuta cum să treacă la un pasurmător prin acțiuni simple, cum ar fi adăugarea unui text sau animarea obiectului.

    Câteva motive și o chemare pentru programatori 

    Puține, cred, sunt bucuriile care se pot compara cu aceea pe care o simți când vezi că,într-un fel sau altul, ai contribuit la orientarea sau formarea unui tânăr. Activitatea de învăţare acopiilor nu se rezumă niciun moment la un transfer unilateral de informații și totul poate fi privit,de fapt, un proces de învățare reciprocă. 

    Când vine vorba de aspecte tehnice, copiilor le este mai greu să verbalizeze problemele  

     pe care le întâmpină, dar, în același timp le este greu și să înțeleagă o explicație tehnică.Capacitatea de a explica lucruri tehnice, dar fără a folosi limbaj tehnic sau capacitatea de aexplica ceva în funcție de nivelul la care se află copilul cu care   vorbești este o aptitudinefolositoare atât în viața personală, cât și în cea profesională. 

    În viața personală, ne va ajuta în comunicarea cu propriii (viitori) copii, iar în viața profesională, ne poate ajuta cu avansarea în carieră. 

  • 8/18/2019 Avantajele Inițierii Timpurii În Programare

    7/7

    Să poți asculta, rezolva probleme și explica clar diferite sarcini, concepte sau decizii suntunele dintre deprinderile foarte importante, poate cele mai importante, pentru un programatorsenior sau lider de echipă. 

    Sper ca aceste descrieri v-au deschis apetitul și că veți încorpora codificare în programașcolară. Chiar și în cazul în care un elev nu intenționează să urmeze programarea ca o cariera,îi va permite să-şi  dezvolte abilități de pr oblematizare, va dezvolta creativitatea și va sporigândirea logică.

    Toți copiii/elevii noștri merită șansa de a deveni creatori în loc de consumatori   de programe de calculator.

    Ideea este că, dacă doriți să introduceţi în educaţia  copiilor programarea, există maimulte moduri diferite de a face acest lucru. Dacă vrei să mergi pe acest dr um, Google este prietenul tău. Este uimitor cât de mult lucruri găseşti acolo.

    THE ADVANTAGES OF EARLY INITIATION IN PROGRAMMING

    The current generation is one that we can call the generation of digital natives, made upof young people with an innate sense of technology. From wielder tablets to browsing or games,young people find it much easier to interact and adapt to technological progress because, forthem, everything seems to come naturally.

    But the fact that these generations are technologically equipped than we were not themain reason for which we should encourage children to venture, from an early age, in the worldof programming.

    In recent years several methods have been developed and programming languages foryoung people, but that does not mean they cannot learn and use more advanced technologies.Although some of these methods have been developed specifically for teaching programminglanguages , they can be used with great success when we want to teach young people to programin different languages appropriate to their level of knowledge.