Sunteți pe pagina 1din 232

An enrichment and extension

programme for primary-aged children

Un program de îmbogățire
Created by și extindere a
gândirii
Tim Bell, computaționale
Ian H. Witten andpentru elevi
Mike Fellows

Adapted forCreat
classroom
de:
use by
Robyn Adams and Jane McKenzie
Tim Bell, Ian H. Witten și Mike Fellows

adaptat pentru activități la clasă de Robyn Adams și Jane McKenzie


Illustrated by Matt Powell
Ilustrații de Matt Powell

Ediția 2015 de Sam Jarman


tradus în limba română de Asociația Techsoup, în cadrul programului Predau Viitor, creat în
parteneriat strategic cu Romanian-American Foundation.

traducere posibilă printr-o finanțare Google CS4HS (acum Google Educators Grant)

(www.asociatiatechsoup.ro, www.predauviitor.ro)

varianta beta, septembrie 2019

CS Unplugged este o carte unică de exerciții de gândire computațională fără computer,


creată de o echipă grozavă din Noua Zeelandă.

Este recomandată de autori pentru introducerea în gândirea computațională a elevilor de


clase primare și gimnaziu, însă activitățile mai complexe de la finalul cărții pot fi utilizate cu
succes și în primele clase de liceu.

Este prima traducere în limba română a acestei cărți minunate, ceea ce înseamnă că
traducerea poate deveni mai bună doar prin contribuția dumneavoastră.

Unele jocuri de cuvinte au fost lăsate în limba engleză în această versiune beta și le puteți
folosi la clase mai avansate, care învață și limba engleză. Vă mulțumim pentru orice sugestie
din practica de la clasă care ar facilita traducerea lor.

Ne puteți transmite la contact@predauviitor.ro orice sugestie sau recomandare pentru a


îmbunătăți această traducere.
Prezentare
Calculatoarele sunt peste tot. Toți trebuie să știm cum să le folosim și mulți dintre noi
chiar facem asta în fiecare zi. Dar cum funcționează ele? Cum „gândesc” ele? Și cum
pot oamenii să realizeze un software care să fie rapid și ușor de utilizat? Informatica
este un domeniu fascinant, care explorează chiar aceste probleme. Activitățile ușoare și
distractive din această carte, concepute pentru elevii de toate vârstele, vă fac
cunoștință cu câteva idei de bază despre cum funcționează calculatoare, fără a folosi
deloc un calculator!

Această carte poate fi folosită în mod eficient în programele de îmbogățire și extindere


a cunoștințelor și chiar și în orele normale desfășurate în sala de clasă. Nu trebuie
neapărat să fii un expert în calculatoare pentru a te bucura de învățarea acestor
principii cu proprii elevi. Cartea conține o serie de activități cu informații de bază,
explicate în mod simplu. Sunt date răspunsurile la toate problemele și fiecare activitate
se termină cu o secțiune denumită „Ce importanță are?” în care se explică utilitatea
activităților respective.

Multe din activități se bazează pe matematică, de exemplu explorarea numerelor


binare, cartografia și graficele, problemele de modele și sortare, precum și criptografia.
Altele au o strânsă legătură cu programa școlară de informatică și TIC, dar și cu
cunoașterea și înțelegerea modului în care lucrează calculatoarele. Elevii sunt activ
implicați în comunicare, în rezolvarea problemelor, prin creativitate și abilități de
gândire într-un context semnificativ. Activitățile asigură de asemenea un mod foarte
angajant de a explora “gândirea computațională”, care câștigă tot mai mult teren în
programa școlară.

În afară de această carte, Proiectul “Unplugged” pune la dispoziție o mulțime de


resurse gratuite online, inclusiv clipuri video, imagini și materiale suplimentare pe
csunplugged.org. Ca parte a ediției din 2015 a acestei cărți, noi am lansat, de
asemenea, o nouă pagină de internet cu mai multe resurse, un mai bun acces la
materiale „open source” și legături mai puternice cu programa școlară privind aspectele
referitoare la informatică și gândirea computațională din programa școlară.

Această carte a fost scrisă de trei conferențiari de informatică și doi profesori de școală
și se bazează pe experiența noastră din sălile de clasă, precum și pe răspunsurile
primite de la sute de educatori timp de două decenii. Am constatat că multe concepte
importante pot fi predate fără a folosi un calculator; de fapt, uneori, calculatorul ne
abate de la învățatul propriu-zis. Deseori informatica este predată folosindu-se
programarea mai întâi, deși nu fiecare elev găsește acest lucru motivant, iar aceasta
poate fi o barieră considerabilă pentru înțelegerea unor idei interesante din informatică.
Așa că scoateți calculatorul din priză și pregătiți-vă să învățați despre ce este cu
adevărat informatica!

Această carte este disponibilă gratuit la descărcare, mulțumită unei


generoase sponsorizări din partea Google, Inc. Aceasta este distribuită în
baza unei licențe Creative Commons Attribution - Non-commercial -
ShareAlike, ceea ce înseamnă că sunteți liber să distribuiți (copiați,
distribuiți și transmite) cartea. De asemenea, vi se permite să reeditați

Licență de utilizare Creative Commons © 2015


„Informatică fără computer” (csunplugged.org)
cartea cu modificări. Aceste lucruri sunt disponibile numai în următoarele
condiții: să includeți atribuirea autorilor, să nu folosiți această carte în scop
comercial și, dacă o modificați, transformați sau vă bazați pe această
lucrare, să o distribuiți pe baza aceleiași licențe sau a uneia similare. Mai
multe detalii despre această licență pot fi găsite online, căutând: CC BY - NC
- SA 3.0.

Încurajăm folosirea acestui material în medii educaționale și vă puteți tipări


propriul exemplar de carte și distribui elevilor fișele de lucru ale acesteia.
Suntem disponibili și primim idei și sugestii, care pot fi adresate direct
autorilo.

Această carte a fost tradusă în mai multe limbi. Vă rugăm să verificați pe


internet informațiile despre traducerile existente.

ii Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Mulțumiri
Mulți copii și profesori ne-au ajutat să ne cizelăm ideile. Copiii și profesorii de la Școala
South Park (Victoria, BC), Școala Primară Shirley, Școala Primară Ilam și Școala
Primară Westburn (Christchurch, Noua Zeelandă) au participat ca executanți la multe
activități. Suntem deosebit de recunoscători față de Linda Picciotto, Karen Able, Bryon
Porteous, Paul Cathro, Tracy Harrold, Simone Tanoa, Lorraine Woodfield și Lynn
Atkinson pentru că ne-au primit în clasele lor și au prezentat sugestii utile pentru
perfecționarea activităților. Gwenda Bensemann a încercat mai multe activități pentru
noi și a sugerat unele modificări. Richard Lynders și Sumant Murugesh ne-au ajutat cu
probe în sala de clasă. O parte din activitățile de criptografie au fost elaborate de către
Ken Noblitz. Unele dintre activități s-au desfășurat sub umbrela grupului Victoria
“Mathmania”, cu sprijin din partea lui Kathy Beveridge. Versiunile anterioare ale
ilustrațiilor au fost realizate de către Malcolm Robinson și Gail Williams și am beneficiat
de asemenea de recomandări de la Hans Knutson. Matt Powell ne-a acordat de
asemenea un ajutor valoros în timpul elaborării Proiectului “Unplugged”. Suntem
recunoscător și față de Brian Mason Scientific and Technical Trust pentru sponsorizarea
generoasă din primele etape ale realizării acestei cărți.

Mulțumiri speciale pentru Paul și Ruth Ellen Howard, care au testat multe din activități
și ne-au prezentat număr de sugestii utile. Peter Henderson, Bruce McKenzie, Joan
Mitchell, Nancy Walker - Mitchell, Gwen Stark, Tony Smith, Tim A. H. Bell1, Mike Hallett
și Harold Thimbleby de asemenea ne-au transmis numeroase comentarii utile.

Avem o imensă datorie față de familiile noastre: Bruce, Fran, Grant, Judith și Pam
pentru sprijinul lor, și Andrew, Anna, Hannah, Max, Michael și Nikki, care ne-au inspirat
mult în această lucrare2 și deseori au fost primii copii cu care am încercat o activitate.

Suntem deosebit de recunoscători față de Google pentru sponsorizarea proiectului


Unplugged și pentru că au făcut posibil ca această ediție să fie disponibilă gratuit
pentru descărcare.

Primim cu interes comentarii și sugestii legate de activități. Autorii pot fi contactați la


csunplugged.org.

1
Fără legătură cu primul autor.
2
De fapt, activitatea de comprimare a textului a fost inventată de către Michael.

Licență de utilizare Creative Commons © 2015


„Informatică fără computer” (csunplugged.org)
Cuprins
Prezentare Error! Bookmark not defined.

Mulțumiri Error! Bookmark not defined.

Datele: materia primă - Reprezentarea informațiilor 1

Numără punctele - Numerele binare 3

Colorați cu numere - Reprezentarea imaginilor 17

Poți să mai spui o dată! - Comprimarea textului 27

Magia jocului de cărți - Detectarea și corectarea erorilor 36

Douăzeci de răspunsuri la ghicitori - Teoria informațiilor 44

Să punem calculatoarele la lucru - Algoritmi 50

Navele de război - Algoritmii de căutare 52

Cel mai ușor și cel mai greu - Algoritmi de sortare 71

Terminăm la timp - Rețele de sortare 78

Orașul cu noroi - Spanning Trees (Arbori de extindere minimă) 85

Jocul portocalelor - Trasee și puncte moarte în rețele 91

Tăblițele din piatră - Protocoale de Comunicare în Rețea 95

Spunem calculatoarelor ce să facă - Proceduri de reprezentare 103

Căutătorii de comori - Automate în stare finită 105

Ordine de marș - Limbaje de programare 121

Probleme foarte dificile - Imposibil de controlat 127

Săracul cartograf - Colorarea graficelor 129

Orășelul turistic - seturi dominante 143

Drumuri de gheață - Arborii lui Steiner 152

Dezvăluirea secretelor și lupta împotriva infracționalității - Criptografie 163

Dezvăluirea secretelor - Protocoale de ascundere a informațiilor 167

„Cap și pajură” în Peru - Protocoale criptografice 171

iv Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Kid Krypto - Codificarea cheilor publice 182

Fața umană a calculatoarelor - Interacțiunea cu calculatoarele 193

Fabrica de ciocolată - Proiectarea interfeței umane 197

Conversații cu calculatoarele - Testul Turing 210

Licență de utilizare Creative Commons © 2015


„Informatică fără computer” (csunplugged.org)
Partea I
Datele: materia primă
Reprezentarea informațiilor
Datele: materia primă
Cum putem depozita informațiile în calculatoare?

Cuvântul „calculator” vine de la latinul computare, ceea ce înseamnă a calcula sau a


aduna, dar calculatoarele de azi sunt mult mai mult decât doar niște calculatoare
gigant. Ele pot fi o bibliotecă, ne pot ajuta să scriem, să găsim informațiile dorite, să
redăm muzică și chiar să rulăm filme. Deci cum stochează (adică depozitează) ele toate
aceste informații? Poate nu vă vine să credeți, dar calculatorul folosește numai două
elemente: zero și unu!

Care este diferența dintre date și informații?

Datele reprezintă materia primă, numerele cu care lucrează calculatoare. Un calculator


transformă datele în informații (cuvinte, numere și imagini) pe care le putem înțelege.

Cum pot fi transformate numerele, literele, cuvintele și imaginile în grupuri


de zero și unu?

În această secțiune, vom învăța despre numerele binare, despre modul în care
calculatoarele desenează imagini, cum funcționează aparatele fax, care este cel mai
eficient mod de a stoca o mulțime de date, cum putem preveni apariția erorilor și cum
măsurăm cantitatea de informații pe care încercăm să le stocăm.

2 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Activitatea 1
Numără punctele - Numerele binare
Rezumat
Datele din calculatoare se stochează și se transmit ca serii de zero și unu. Cum putem
reprezenta cuvintele și numerele folosind doar aceste două simboluri?

Legături cu programa școlară


✓ Matematică: Numărul – Explorarea numerelor în alte baze. Reprezentarea
numerelor în bază doi.
✓ Matematică: Algebra – Continuarea unui model secvențial și descrierea unei reguli
pentru acest model. Modele și relații în puterile lui doi.
Abilități și competențe
✓ Numărarea
✓ Potrivirea
✓ Aranjarea în ordine
Recomandare de vârstă
✓ 6 ani și mai mult
Materiale necesare
✓ Va trebui să faceți un set de cinci fișe binare (vezi pagina 7) pentru demonstrație.
Foile A4 cu puncte lipite în formă de smiley sunt bune în acest scop.
Fiecare elev va avea nevoie de:
✓ Un set de cinci fișe.
Copiați din secțiunea „Materiale de tipărit și multiplicat”: Numere binare (pagina 7)
pe foaie și decupați cărțile de joc.
✓ Fișa de lucru: Numere binare (pagina 6)
Există activități opționale de extindere, pentru care fiecare elev va avea nevoie de:
✓ Fișa de lucru: Lucrul cu numere binare (pagina 8)
✓ Fișa de lucru: Transmiterea de mesaje secrete (pagina 9)
✓ Fișa de lucru: E-mail și modemuri (pagina 10)
✓ Fișa de lucru: Numărarea peste 31 (pagina 12)
✓ Fișa de lucru: Mai multe despre numerele binare (pagina 13)

Licență de utilizare Creative Commons © 2015


„Informatică fără computer” (csunplugged.org)
Numerele binare
Prezentarea temei în clasă
Înainte de a distribui fișa de lucru de la pagina 6, poate fi util să demonstrați principiile
pentru întregul grup.

Pentru această activitate, veți avea nevoie de un set de cinci cărți, ca în figura de mai
jos, cu puncte pe o față și nimic pe cealaltă. Alegeți cinci elevi care să țină cărțile
pentru demonstrație în fața clasei. Cărțile trebuie să fie în următoarea ordine:

Discuție
Pe măsură ce arătați cărțile (de la dreapta la stânga), vedeți dacă elevii pot ghici câte
puncte sunt pe următoarea carte. Ce observați despre numărul de puncte de pe cărți?
(Fiecare carte are de două ori mai multe față de cartea din dreapta ei.)

Câte puncte va avea următoarea carte dacă am continua în stânga? (32) Dar
următoarea? (64)

Putem folosi aceste cărți pentru a realiza numere prin întoarcerea unora cu fața în jos
și adunând punctele care apar. Cereți elevilor să arate 6 puncte (o carte cu 4 și una cu
2 puncte), apoi 15 (o carte cu 8, una cu 4, una cu 2 puncte și una cu 1 punct), apoi 21
(16, 4 și 1)… Singura regulă este că o carte trebuie să fie complet vizibilă sau complet
ascunsă.

Care este cel mai mic număr de puncte posibil? (Ei pot răspunde unu, dar este zero).

Acum încercați să numărați începând de la zero.

Restul clasei trebuie să se uite atent cum se schimbă cărțile, pentru a vedea dacă pot
deduce un model în care se întorc cărțile (fiecare carte devine jumătate la fel de des ca
cea din dreapta ei). Puteți încerca, prin rotație, cu mai multe grupuri.

Când o carte cu număr binar nu se arată, este reprezentată de un zero. Când se arată,
este reprezentată de un unu. Acesta este sistemul de numere binare.

Cereți elevilor să formeze 01001. Ce număr este acesta în sistem zecimal? (9) Cum ar
fi 17 în binar? (10001)

4 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Încercați alte câteva numere, până când elevii înțeleg noțiunea.

Există cinci opțiuni de activități de extindere, care să fie folosite pentru consolidare.
Elevii trebuie să efectueze cât mai multe din acestea.

Licență de utilizare Creative Commons © 2015


„Informatică fără computer” (csunplugged.org)
Fișa de lucru: Numerele binare
Să învățăm să numărăm
Deci, credeați că știți să numărați? Ei bine, iată un nou mod de a o face!

Știați că în calculatoare se folosesc numai zero și unu? Tot ceea ce vedeți sau auziți la
calculator - cuvinte, imagini, numere, filme și chiar sunete, este stocat folosindu-se
doar aceste două numere! Aceste activități vă vor învăța cum se trimit mesaje secrete
prietenilor folosind exact aceeași metodă ca și un calculator.

Instrucțiuni
Decupați cărțile de joc de pe fișa proprie și aranjați-le cu cartea cu 16 puncte în
stânga, după cum se arată aici:

Asigurați-vă că aceste cărți sunt plasate în exact aceeași ordine.

Acum întoarceți cărțile astfel încât să arate exact 5 puncte – lăsați cărțile în aceeași
ordine!

Aflați cum să obțineți 3, 12, și 19. Există mai multe moduri de a obține orice număr?
Care este cel mai mare număr pe care puteți să-l alcătuiți? Care este cel mai mic?
Există vreun număr nu puteți să-l alcătuiți între cel mai mic și cel mai mare număr?

Suplimentar pentru cunoscători: Încercați să alcătuiți numerele 1, 2, 3 și 4, în ordine.


Puteți deduce o metodă logică și sigură de a întoarce cărțile pentru a mări orice număr cu
unu?

6 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Materiale de tipărit și multiplicat: Numerele binare

Licență de utilizare Creative Commons © 2015


„Informatică fără computer” (csunplugged.org)
Fișa de lucru: Lucrul cu numere binare
Sistemul binar folosește zero și unu pentru a arăta dacă o carte este cu fața în sus
sau nu. 0 arată că o carte este ascunsă, iar 1 înseamnă că puteți vedea punctele. De
exemplu:

Puteți deduce ce înseamnă 10101? Dar cum e cu 11111?

În ce zi a lunii v-ați născut? Scrieți-o în binar. Aflați care sunt zilele de naștere ale
prietenilor în sistem binar.

Încercați să deduceți aceste numere codificate:

Suplimentar pentru cunoscători: Folosind un set de bețe cu lungimea de 1, 2, 4, 8 și 16


unități, arătați cum puteți realiza orice lungime până la 31 unități. Sau puteți surprinde pe un
adult arătându-i cum are nevoie numai de un cântar și câteva greutăți pentru a putea cântări
obiecte grele, cum ar fi niște valize sau cutii!

8 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Fișa de lucru: Transmiterea mesajelor secrete
Dan a rămas închis la ultimul etaj al unui mall. Este chiar înainte de Crăciun și vrea
ajungă acasă cu cadourile sale. Ce poate face? A încercat să cheme pe cineva, chiar să
strige, dar nu există nimeni în jur. Peste stradă, el vede o persoană cu un calculator,
lucrând încă târziu în noapte. Cum ar putea să-i atragă atenția? Dan privește în jur
pentru a vedea ce ar putea folosi. Apoi îi vine o idee nemaipomenită – poate folosi
luminile de la pomul de Crăciun pentru a transmite un mesaj! Găsește toate beculețele
și le cuplează astfel încât să le poată porni și opri. Folosește un cod binar simplu, pe
care știe că femeia de peste drum îl înțelege. Îl puteți deduce?

1 2 3 4 5 6 7 8 9 10 11 12 13
A b c d e f g h i j k l m
14 15 16 17 18 19 20 21 22 23 24 25 26
N o p q r s t u v w x y z

Licență de utilizare Creative Commons © 2015


„Informatică fără computer” (csunplugged.org)
Fișa de lucru: E-mail și modemuri
Calculatoarele conectate la internet printr-un modem folosesc de
asemenea sistemul binar pentru a transmite mesaje. Singura
diferență este că acestea folosesc semnale acustice. Un semnal cu
tonalitate înaltă poate fi folosit pentru unu, iar unul cu tonalitate
joasă pentru zero. Aceste tonuri circulă foarte rapid – atât de
rapid, de fapt, încât tot ce putem auzi este un sunet urât ca un
scârțâit continuu. Dacă nu l-ați auzit niciodată, ascultați un modem
care se conectează la Internet sau încercați să apelați un aparat
fax - aparatele fax folosesc de asemenea modemuri pentru a
transmite informații.

Folosind același cod pe care l-a folosit Dan în mall, încercați să transmiteți un mesaj e-
mail unui prieten. Puteți face asta ușor pentru voi și pentru prieten, cu toate că nu
trebuie să fiți la fel de rapid ca un modem real!

10 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Licență de utilizare Creative Commons © 2015
„Informatică fără computer” (csunplugged.org)
Fișa de lucru: Numărarea peste 31
Priviți din nou cărțile binare. Dacă ar fi fost să realizați următoarea carte în succesiune,
câte puncte ar fi avut? Dar următoarea carte după aceea? Care este regula pe care o
urmați pentru a realiza noile cărți? După cum puteți vedea, numai câteva cărți sunt
necesare pentru a număra până la numere foarte mari.

Dacă priviți la succesiune cu atenție, puteți constata o relație foarte interesantă:

1, 2, 4, 8, 16…
Încercați să adunați: 1 + 2 + 4 = ? La ce rezultat ajungeți?

Acum încercați 1 + 2 + 4 + 8 = ?

Ce se întâmplă dacă adăugați toate numerele de la început?

Ați auzit vreodată expresia„rezolvați problema cu degetele”? Ei bine, acum puteți


realiza numărarea cu degetele, dar puteți ajunge la numere mult mai mari decât zece.
Nu, nu trebuie să fiți un marțian! Dacă folosiți sistemul binar și reprezentați cu fiecare
deget de la o mână una dintre cărțile cu puncte, puteți număra de la 0 la 31. Asta
înseamnă 32 de numere. (Nu uitați că zero este și el un număr!)

Încercați să numărați în ordine folosind degetele. Dacă un deget este ridicat, el


reprezintă un unu, iar dacă este coborât, este un zero.

De fapt, puteți obține de la 0–1023, dacă folosiți ambele mâini! Asta înseamnă 1024 de
numere!

Dacă aveți niște degete la picioare care chiar se îndoaie (acum chiar ar trebui să fiți
marțieni), ați putea obține numere mult mai mari. Dacă o mână poate fi folosită pentru
a reprezenta 32 de numere, iar cu două mâini 32 × 32 = 1024 numere, care este cel
mai mare număr la care poate ajunge Miss Flexi-Toes, cea cu degetele flexibile ale
picioarelor?

12 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Fișa de lucru: Mai multe despre numerele binare
1. O altă proprietate interesantă a numerelor binare este ce se întâmplă când un zero este
pus în partea dreaptă a numărului. Dacă lucrăm în bază 10 (zecimal), când punem un
zero în partea dreaptă a numărului, acesta este înmulțit cu 10. De exemplu, 9 devine
90, 30 devine 300.

Dar ce se întâmplă când punem un 0 în dreapta unui număr binar? Încercați aceasta:

1001 → 10010
(9) (?)

Alcătuiți altele pentru a vă verifica ipotezele. Care este regula? De ce credeți că se


întâmplă asta?

2. Fiecare din cărțile pe care le-am folosit până acum reprezintă un ‘bit’ pentru calculator
(‘bit’ este prescurtarea pentru ‘cifră binară’). Deci codul alfabetic pe care l-am folosit
până acum poate fi reprezentat folosind doar cinci cărți sau ‘biți’. Cu toate acestea, un
calculator trebuie să știe dacă litere sunt majuscule sau nu și, de asemenea, să
recunoască cifrele, punctuația și simbolurile speciale, cum ar fi $ sau ~.

Priviți o tastatură și gândiți-vă câte caractere trebuie să reprezinte un calculator. Deci


de câți biți are nevoie un calculator pentru a stoca toate caracterele?

Majoritatea calculatoarelor de azi folosesc o reprezentare denumită ASCII (prescurtare


care înseamnă Codul Standard American pentru Schimbul de Informații), care se
bazează pe folosirea unui număr de biți pentru un caracter, dar în unele țări în care nu
se folosește limba engleză, trebuie să se utilizeze coduri mai lungi.

Licență de utilizare Creative Commons © 2015


„Informatică fără computer” (csunplugged.org)
Ce importanță are?
Calculatoarele de azi folosesc sistemul binar pentru a reprezenta informațiile. Acesta se
numește binar deoarece se folosesc numai două cifre diferite. Este cunoscut de
asemenea ca având bază doi (oamenii folosesc în mod normal baza 10). Fiecare zero
sau un reprezintă un bit (cifră binară). Un bit este de obicei reprezentat în memoria
principală a unui calculator de un tranzistor care este pornit sau oprit sau de un
condensator care este încărcat sau descărcat.

Când datele trebuie să fie transmise pe o linie telefonică sau prin radio, se folosesc
semnale cu tonalitate înaltă și joasă pentru cifrele unu și zero. Pe discurile magnetice
(unitățile de hard-disk) și pe benzi, biții sunt reprezentați de direcția câmpului magnetic
pe o suprafață acoperită cu o substanță specială, adică Nord - Sud sau Sud - Nord.

CD-urile audio, CD-ROM-urile și DVD-urile stochează biții optic, deci o parte a


suprafeței acestora corespunzătoare unui bit reflectă sau nu lumina.

Motivul pentru care calculatoarele folosesc numai două valori diferite este că este mult
mai ușor să se construiască dispozitive care se bazează pe aceste valori. Ar fi putut
exista CD-uri cu 10 niveluri de reflexie, astfel încât să se poată reprezenta toate cifrele
de la 0 la 9, dar pentru aceasta trebuie să se construiască dispozitive foarte scumpe și
precise. Un alt lucru pe care poate că l-ați observat este că, deși spunem despre
calculatoare că stochează numai cifrele zero și unu, ele de fapt nu conțin cifrele zero și
unu în interior, ci doar niște tensiuni mari și mici, sau magnetism nord-sud, etc. Dar
este mai rapid să scrii “0” și “1” decât chestii ca „luminos” și „neluminos”. Totul la
calculatoare este reprezentat folosindu-se acești biți – documente, imagini, melodii,
filme, numere și chiar programele și aplicațiile pe care le folosim sunt doar o grămadă
de cifre binare.

Un singur bit în sine nu poate reprezenta mult, așa că aceștia sunt de obicei grupați
împreună în grupe de opt, care pot reprezenta numere de la 0 la 255. Un grup de opt
biți se numește octet (engl. byte).

Viteza unui calculator depinde de numărul de biți pe care îi poate procesa la un


moment dat. De exemplu, un calculator pe 32 biți poate procesa numere de 32 biți
într-o operațiune, în timp ce un calculator pe 16 biți trebuie să împartă numerele de 32
biți în bucăți mai mici, ceea ce îl face mai lent (dar și mai ieftin!)

14 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
În unele din următoarele activități, vom vedea cum și alte feluri de informații pot fi
reprezentate pe calculator folosindu-se cifrele binare.

Licență de utilizare Creative Commons © 2015


„Informatică fără computer” (csunplugged.org)
Soluții și indicații ajutătoare
Numerele binare (pagina 6)
3 necesită cărțile 2 și 1
12 necesită cărțile 8 și 4
19 necesită cărțile 16, 2 și 1

Există numai un mod de a alcătui orice număr.

Cel mai mare număr pe care îl puteți face este 31. Cel mai mic este 0. Puteți alcătui
fiecare număr între acestea și fiecare are o reprezentare unică.

Pentru cunoscători: Pentru a mări orice număr cu unu, întoarceți toate cărțile de la
dreapta la stânga până când întoarceți una cu fața în sus.

Lucrul cu sistemul binar (pagina 8)

10101 = 21, 11111 = 31

Transmiterea mesajelor secrete (pagina 9)


Mesaj codificat: AJUTOR SUNT BLOCAT

Numărarea peste 31 (pagina 12)


Dacă adunați numerele de la început, suma va fi întotdeauna cu unu mai puțin decât
următorul număr din serie.

Miss Flexi-Toes poate număra 1024 × 1024 = 1.048.576 numere – deci de la 0 la


1.048.575!

Mai multe despre numerele binare (pagina 13)


Când puneți un zero în partea dreaptă a unui număr binar, numărul se dublează.

Toate locurile care conțin un unu au acum o valoare de două ori mai mare, deci
numărul total se dublează. (În bază 10, adăugarea unui zero în dreapta unui număr îl
înmulțește cu 10.)

Un calculator are nevoie de 7 biți pentru a stoca toate caracterele. Aceasta permite
până la 128 caractere. De obicei, cei 7 biți sunt stocați într-un octet (8 biți), iar un bit
se pierde.

16 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Activitatea 2
Colorați cu numere - Reprezentarea imaginilor
Rezumat
Calculatoarele stochează desene, fotografii și alte folosind numai numere. Următoarea
activitate demonstrează cum fac ele acest lucru.

Legături cu programa școlară


✓ Matematică: Geometrie – Forme și spații
✓ Informatică și TIC: folosirea numerelor întregi pentru a reprezenta alte tipologii de
date
✓ Informatică și TIC: reducerea spațiului folosit de datele repetitive
Abilități și competențe
✓ Numărarea
✓ Realizarea graficelor
Recomandare de vârstă
✓ 7 ani și peste
Materiale necesare
✓ Diapozitiv pentru prezentare: Colorați cu numere (pagina 20)
Fiecare elev va avea nevoie de:
✓ Fișa de lucru: Kid Fax (pagina 21)
✓ Fișa de lucru: Realizați propria imagine (pagina 22)

Licență de utilizare Creative Commons © 2015


„Informatică fără computer” (csunplugged.org)
Colorați cu numere
Prezentarea temei în clasă
Probleme de discutat
1. Cum funcționează aparatele fax?

2. În ce situații ar avea nevoie calculatoarele să stocheze imagini? (Un program de


desenat, un joc cu grafice sau un sistem multimedia.)

3. Cum pot calculatoarele să stocheze imagini când ele pot folosi doar numere?

(Ați putea face aranjamentele necesare pentru ca elevii să transmită și/sau să


recepționeze mesaje fax ca pregătire pentru această activitate.)

Demonstrație cu folosirea proiecției

Ecranele calculatoarelor sunt împărțite într-o rețea de pătrățele cu mici puncte


denumite pixeli (elemente de imagine).

Într-o imagine alb-negru, fiecare pixel este alb sau negru.

Litera “a” a fost mărită mai sus pentru a se vedea pixelii. Când un calculator stochează
o imagine, tot ceea ce trebuie să facă pentru stocare este să facă diferențierea între
punctele care sunt negre și care sunt albe.

1, 3, 1
4, 1
1, 4
0, 1, 3, 1
0, 1, 3, 1
1, 4

Imaginea de mai sus ne arată cum o imagine poate fi reprezentată prin numere. Primul
rând constă dintr-un pixel alb, apoi trei negri, apoi unul alb. Astfel, primul rând este
reprezentat ca 1, 3, 1.

Primul număr se referă întotdeauna la numărul de pixeli albi. Dacă primul pixel este
negru, rândul va începe cu un zero.

18 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Fișa de lucru de la pagina 21 vă prezintă niște imagini pe care elevii le pot decodifica
folosind metoda demonstrată mai sus.

Licență de utilizare Creative Commons © 2015


„Informatică fără computer” (csunplugged.org)
Colorați cu numere

 O literă “a” de pe ecranul unui calculator și o vedere mărită care arată pixelii care
alcătuiesc imaginea

1, 3, 1
4, 1
1, 4
0, 1, 3, 1
0, 1, 3, 1
1, 4
 Aceeași imagine codificată cu folosirea numerelor

 Caroiaj necompletat (pentru scop de predare)

20 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Fișa de lucru: Kid Fax
Prima imagine este cea mai ușoară, iar ultima este cea mai complexă. Este ușor să faci
greșeli, deci o bună idee ar fi să folosiți un creion cu care să colorați și să aveți o gumă
de șters la îndemână!

4, 11
4, 9, 2, 1
4, 9, 2, 1
4, 11
4, 9
4, 9
5, 7
0, 17
1, 15

6, 5, 2, 3
4, 2, 5, 2, 3, 1
3, 1, 9, 1, 2, 1
3, 1, 9, 1, 1, 1
2, 1, 11, 1
2, 1, 10, 2
2, 1, 9, 1, 1, 1
2, 1, 8, 1, 2, 1
2, 1, 7, 1, 3, 1
1, 1, 1, 1, 4, 2, 3, 1
0, 1, 2, 1, 2, 2, 5, 1
0, 1, 3, 2, 5, 2
1, 3, 2, 5

6, 2, 2, 2
5, 1, 2, 2, 2, 1
6, 6
4, 2, 6, 2
3, 1, 10, 1
2, 1, 12, 1
2, 1, 3, 1, 4, 1, 3, 1
1, 2, 12, 2
0, 1, 16, 1
0, 1, 6, 1, 2, 1, 6, 1
0, 1, 7, 2, 7, 1
1, 1, 14, 1
2, 1, 12, 1
2, 1, 5, 2, 5, 1
3, 1, 10, 1
4, 2, 6, 2
6, 6

Licență de utilizare Creative Commons © 2015


„Informatică fără computer” (csunplugged.org)
Fișa de lucru: Realizați propria imagine
Acum că știți cum pot numerele să reprezinte imagini, de ce să nu încercăm să
realizăm propria imagine codificată pentru un prieten? Desenați propria voastră
imagine în caroiajul de sus și, când ați terminat, scrieți numerele codului lângă
caroiajul de jos. Decupați de-a lungul liniei punctate și dați caroiajul de jos unui prieten
să-l coloreze. (Notă: nu trebuie să folosiți întregul caroiaj dacă nu vreți – trebuie doar
să lăsați rânduri libere în partea de jos dacă imaginea voastră nu ocupă întregul
caroiaj.)

22 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Fișa de lucru: Realizați propria imagine
Suplimentar pentru cunoscători: Dacă vreți să realizați imagini colorate, puteți
folosi un număr pentru a reprezenta culoarea (de exemplu 0 este negru, 1 este roșu, 2
este verde, etc.). Două numere sunt folosite acum pentru a reprezenta un șir de pixeli:
primul dă lungimea șirului ca înainte, iar al doilea arată culoarea. Încercați să realizați o
imagine colorată pentru un prieten. Nu uitați să-i spuneți prietenului care număr
reprezintă fiecare culoare!

Licență de utilizare Creative Commons © 2015


„Informatică fără computer” (csunplugged.org)
Variante și extinderi
1. Încercați să desenați cu o foaie de hârtie trasă peste caroiaj, astfel încât imaginea
finală să poată fi văzută fără caroiaj. Imaginea va fi mai clară.

2. În loc de a colora caroiajul, elevii ar putea folosi pătrățele de hârtie lipite sau ar
putea plasa obiecte pe un caroiaj mai mare.

Punct de discuție
Există de obicei o limită pentru lungimea unui șir de pixeli, deoarece lungimea este
reprezentată ca un număr binar. Cum ați reprezenta un șir de doisprezece pixeli negri
dacă ați putea folosi numai numere până la șapte? (O modalitate bună ar fi să
codificați un șir de șapte pixeli negri, urmați de un șir zero alb, apoi un șir de cinci
pixeli negri.)

24 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Ce importanță are?
Un aparat fax este în realitate doar un simplu calculator care scanează o pagină în
negru și alb formând aproximativ 1000 × 2000 pixeli, care se transmit folosindu-se un
modem către un alt aparat fax, care tipărește pixelii de pe o pagină. Deseori, imaginile
de fax au bucăți mari cu pixeli albi (de exemplu marginile) sau pixeli negri (de exemplu
o linie orizontală). Imaginile în culori conțin de asemenea foarte multă repetiție. Pentru
a face economii la spațiul de memorie necesar pentru a păstra astfel de imagini,
programatorii pot folosi o varietate de tehnici de compresie. Metoda folosită în această
activitate este denumită codificarea pe lungime a șirului și este un mod eficient de
comprimare a imaginilor.

Dacă nu am comprima imaginile, acestea ar avea nevoie de un timp mult mai


îndelungat pentru transmitere și ar necesita mult mai mult spațiu de stocare. Aceasta
ar face ineficientă transmiterea mesajelor fax sau introducerea unor fotografii pe o
pagină de internet. De exemplu, imaginile fax sunt în general comprimate la
aproximativ o șeptime din mărimea inițială. Fără comprimare deci, ar lua de șapte ori
mai mult timp pentru transmitere!

Fotografiile și imaginile sunt deseori comprimate la o zecime sau chiar o sutime din
mărimea inițială (folosindu-se tehnici cum ar fi JPEG, GIF și PNG). Aceasta permite ca
mult mai multe imagini să fie stocate pe un disc, iar asta înseamnă că vizualizarea lor
pe internet va lua foarte puțin timp.

Un programator poate alege ce tehnică de comprimare corespunde cel mai bine


imaginilor pe care le transmite.

Licență de utilizare Creative Commons © 2015


„Informatică fără computer” (csunplugged.org)
Soluții și indicații ajutătoare
Răspunsuri pentru fișa de lucru Kid Fax

26 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Activitatea 3
Poți să mai spui o dată! - Comprimarea
textului
Rezumat
Deoarece calculatoare au doar un spațiu limitat pentru a păstra informațiile, ele trebuie
să reprezinte aceste informații cât mai eficient posibil. Aceasta se numește
comprimare. Prin codificarea datelor înainte de a fi stocate, apoi decodificarea lor când
sunt recuperate, calculatorul poate stoca mai multe date sau le poate transmite mai
rapid prin Internet.

Legături cu programa școlară


✓ Engleză: Recunoașterea modelelor în cuvinte și text.
✓ Comunicare și limba română: Recunoașterea modelelor în cuvinte și text
✓ Informatică și TIC: reducerea spațiului folosit de datele repetitive
Abilități și competențe
✓ Copierea textului scris
Recomandare de vârstă
✓ 9 ani și peste
Materiale necesare
✓ Diapozitiv de prezentare: Poți să mai spui o dată! (pagina 29)
Fiecare elev va avea nevoie de:
✓ Fișa de lucru: Poți să mai spui o dată! (pagina 30)
✓ Fișa de lucru: Suplimentar pentru experți (pagina 31)
✓ Fișa de lucru: Scurt și dulce (pagina 32)
✓ Fișa de lucru: Suplimentar pentru adevărații experți (pagina 34)

Licență Creative Commons 27


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Poți să mai spui o dată!
Prezentare
Calculatoarele trebuie să stocheze și să transmită o mulțime de date. Ca să nu
trebuiască să folosească prea mult spațiu de stocare sau pentru a nu dura prea mult
transmiterea informațiilor printr-o conexiune la rețea, calculatoarele comprimă textul
cam cum se arată mai jos.

Demonstrație și discuție
Prezentați diapozitivul “Ploaia” (pagina 29). Căutați modele de litere în această poezie.
Puteți găsi grupe de câte 2 sau mai multe litere care se repetă sau chiar cuvinte sau
expresii întregi? (Înlocuiți-le cu casete, cum se prezintă în diagrama de mai jos.)

28 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Poți să mai spui o dată!

The rain (Ploaia):


Pitter patter
Pitter patter
Listen to the rain
Pitter patter
Pitter patter
On the window pane
Traducere: Rap-rap, rap-rap / Ascultă ploaia / Rap-rap, rap-rap / Cum bate în geam

Licență Creative Commons 29


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Fișa de lucru: Poți să mai spui o dată!
Notă: Acest exercițiu este recomandat claselor cu predare în limba engleză – nivel
avansat

Multe cuvinte și litere lipsesc din această poezie. Puteți introduce literele și cuvintele
care lipsesc pentru a o completa corect? Le veți găsi în casetele către care sunt
îndreptate săgețile.

Acum alegeți o poezie simplă sau pentru adormit bebelușii și realizați propriul vostru
joc. Asigurați-vă că săgețile arată întotdeauna spre o parte de mai sus din text. Poezia
trebuie să poată fi decodificată de la stânga la dreapta și de sus în jos, în același mod
în care citim.

Provocare: Vezi cât de puține cuvinte originale trebuie reținute!

Iată câteva sugestii (mici poezii sau cântece în engleză): Three Blind Mice, Mary Mary
Quite Contrary, Hickory Dickory Dock - sau încercați cărțile Dr. Seuss!

Indicație ajutătoare: Încercați să evitați aglomerarea cu săgeți. Lăsați mult spațiu în


jurul literelor și cuvintelor când le scrieți, astfel încât să existe loc pentru casete
(chenare) în interiorul casetelor și săgețile îndreptate către ele.

Este mai ușor să realizezi jocul dacă scrii poezia mai întâi și apoi decizi unde trebuie
dispuse casetele.

30 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Fișa de lucru: Suplimentar pentru cunoscători
Cum ați rezolva această problemă?

Ban
---
Uneori textul care lipsește se arată de la sine. În acest caz, el poate fi decodificat
corect dacă literele se copiază de la stânga la dreapta. Apoi, fiecare literă se poate
copia înainte de a fi necesară. Acest lucru este util la calculatoare dacă există un șir
lung cu un anumit caracter sau model.

Încercați să desenați singuri astfel de probleme.

În calculatoare, casetele și săgețile sunt reprezentate de numere. De exemplu,

Banana
se poate scrie Ban(2,3). “2” înseamnă să numeri înapoi două caractere pentru a găsi
punctul de început pentru copiere,

Ban - - -
iar “3” înseamnă să copiezi trei caractere consecutive:

Bana - -
Banan -
Banana -
Deoarece două numere se folosesc pentru a codifica aceste cuvinte, de obicei numai
grupurile de două sau mai multe litere sunt suficiente pentru a fi comprimate, pentru
că altfel nu s-ar face economie de spațiu. De fapt, mărimea fișierului ar crește dacă s-
ar folosi două numere pentru a codifica o literă.

Alcătuiți propriile cuvinte scrise în modul în care ar face-o calculatorul dacă ar fi comprimate.
Pot prietenii voștri să le decodifice?

Licență Creative Commons 31


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Fișa de lucru: Scurt și dulce
Notă: Acest exercițiu este recomandat claselor cu predare în limba engleză – nivel
avansat

De câte cuvinte este chiar nevoie aici?

Să zicem că sunteți un calculator care încearcă să ocupe cât poate de mult din
memorie (hard disk). Tăiați toate grupele de două sau mai multe litere care au apărut
deja. Acestea nu mai sunt necesare, întrucât ar putea fi înlocuite de cursor. Scopul este
să obțineți cât mai multe litere tăiate posibil.

32 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
I k n ow an old lady wh o s wallow ed a bir d

Licență Creative Commons


How abs u r d! S h e s wallowed a bir d!
S h e s wallowed t h e bir d t o c a t c h t h e s pider
T h at wr iggled an d j iggl ed
an d t ic k led in s ide h er

© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)


S h e s wallowed t h e s pid er t o c at c h t h e f ly
I don ’ t k n ow wh y s h e swallo wed a f ly
Per h aps s h e’ ll die…

33
Fișa de lucru: Suplimentar pentru adevărații
cunoscători
Sunteți gata pentru o comprimare într-adevăr dură?

Povestirea care urmează a fost introdusă într-un calculator, care a constatat că există
foarte multe litere care pot fi tăiate. Câte puteți găsi? Rețineți, numai grupurile de două
sau mai multe caractere repetate pot fi eliminate. Succes!

A fost odată, ca niciodată, cu mult timp în urmă, când trei purceluși s-au hotărât să facă avere. Primul
purceluș nu era foarte deștept și și-a construit o căsuță din paie, deoarece era foarte ieftin. Nici cel de-
al doilea purceluș nu era prea isteț și și-a construit o căsuță din nuiele, pentru aspectul “natural” care
era foarte la modă chiar și în acele timpuri. Cel de-al treilea purceluș era mult mai inteligent decât cei doi
frați ai lui și a cumpărat o grămadă de cărămizi într-un orășel vecin, cu care și-a construit o casă solidă,
dar confortabilă.

Nu mult după petrecerea de casă nouă, primul purceluș se relaxa pe un scaun, citind o carte, când se auzi
o bătaie în ușă. Bineînțeles, era lupul cel mare și rău.

“Purceluș, purceluș, dă-mi drumul în casă!”, strigă lupul.

“Nici nu mă gândesc!”, guiță primul purceluș.

“Atunci o să suflu și o să pufăi și o să-ți dărâm casa!” urlă lupul, și suflă, și pufăi, și casa se dărâmă în
scurt timp. Primul purceluș fugi cât putu de repede spre casa de nuiele și intră curând la adăpost. Dar
peste foarte puțin timp, lupul începu să strige din nou.

“Purceluș, purceluș, dă-mi drumul în casă!”, strigă lupul.

“Nici nu mă gândesc!”, guiță cel de-al doilea purceluș.

“Atunci o să suflu și o să pufăi și o să-ți dărâm casa!” urlă lupul, și suflă, și pufăi, și casa ajunse curând
doar lemne de foc. Cei doi purceluși îngroziți alergară repede la casa de cărămidă a fratelui lor, dar lupul
era pe urmele lor și curând ajunse în pragul casei.

“Purceluș, purceluș, dă-mi drumul în casă!”, strigă lupul.

“Nici nu mă gândesc!”, guiță cel de-al treilea purceluș.

“Atunci o să suflu și o să pufăi și o să-ți dărâm casa!” urlă lupul, și suflă, și pufăi, și suflă mai mult, dar
bineînțeles, casa era făcută din cărămidă, iar lupul rămase curând fără respirație. Atunci îi veni o idee.
Hornul! Se cățără mai întâi pe un stejar din apropiere, apoi pe acoperișul casei, dar numai pentru a vedea
că pe acoperiș nu era niciun horn, deoarece cel de-al treilea purceluș, fiind conștient de împrejurări, își
instalare încălzire electrică. De supărare, lupul alunecă și căzu de pe acoperiș, își rupse piciorul stâng, dar
rămase și foarte rănit în mândria sa. În timp ce el pleca șchiopătând, purcelușii râdeau, dându-și seama că
era mult mai înțelept să locuiești la oraș, unde singurii lupi erau la grădina zoologică. Și chiar așa au făcut
și au trăit acolo fericiți toată viața.

34 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Ce importanță are?
Capacitatea de stocare a calculatoarelor crește cu o viteză incredibilă - în ultimii 25 de
ani, cantitatea stocată asigurată de un calculator obișnuit a crescut aproximativ de un
milion de ori - dar încă se găsesc destule lucruri de introdus în calculatoare.
Calculatoarele pot înmagazina cărți întregi sau chiar biblioteci, iar acum muzică și filme,
dacă există spațiu suficient. Fișierele mari sunt de asemenea o problemă pe Internet,
deoarece acestea necesită mult timp pentru descărcare. De asemenea, încercăm să
facem calculatoarele din ce în ce mai mici – chiar și un telefon mobil sau un ceas de
mână urmează să stocheze o mulțime de informații!

Totuși, există o soluție la această problemă. În loc să cumpărăm mai mult spațiu de
stocare sau de a avea o conexiune mai rapidă la rețea, putem comprima datele astfel
încât să ocupe mai puțin spațiu. Acest proces de comprimare și decomprimare a
datelor este efectuat, de regulă, în mod automat de către calculator. Tot ce putem noi
observa este că discul înmagazinează mai mult sau că paginile de internet se afișează
mai rapid, dar calculatorul, de fapt, efectuează o procesare mai complexă.

S-au inventat multe metode de comprimare. Metoda folosită în această activitate,


bazată pe principiul evidențierii bucăților de text repetitive, este deseori denumită
„codificare Ziv-Lempel” sau „codificare LZ”, inventată de doi profesori israelieni în anii
‘70. Aceasta poate fi folosită pentru orice limbaj și poate reduce cu ușurință la
jumătate datele de comprimat. Uneori este denumită „zip” pe calculatoarele personale
și este de asemenea folosită pentru imaginile „GIF” și „PNG”, fiind folosită și în
modemurile de mare viteză. În cazul modemurilor, aceasta reduce cantitatea de date
care trebuie transmise pe o linie telefonică, astfel încât funcționează mult mai rapid.

Alte metode se bazează pe ideea că literele care sunt folosite mai des trebuie să aibă
coduri mai scurte decât celelalte. Codul Morse a folosit această idee.

Soluții și indicații ajutătoare


Poți să mai spui o dată! (pagina 30)
Pease porridge hot,
Pease porridge cold,
Pease porridge in the pot,
Nine days old.
Some like it hot,
Some like it cold,
Some like it in the pot,
Nine days old.

Licență Creative Commons 35


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Activitatea 4
Magia jocului de cărți - Detectarea și
corectarea erorilor
Rezumat
Când datele sunt stocate pe un disc sau sunt transmise de la un calculator la altul, de
obicei presupunem că nu se modifică în cursul procesului. Dar uneori lucrurile merg
prost și datele se modifică accidental. Această activitate folosește un truc magic pentru
a arăta cum se află dacă datele au fost corupte și cum se corectează aceasta.

Legături cu programa școlară


✓ Matematică: Numărul – Explorarea calculelor și estimărilor.
✓ Matematică: Algebra – Explorarea modelor și relațiilor, soluția în cazul lipsei unei
valori.
✓ Matematică: Rânduri și coloane, coordonate
✓ Informatică și TIC: Validarea datelor
Abilități și competențe
✓ Numărarea
✓ Recunoașterea numerelor impare și impare
Recomandare de vârstă
✓ 7 ani și peste
Materiale necesare
✓ Un set de 36 cărți de tip „magnet de frigider”, colorate numai pe o parte
✓ O tablă metalică (e bună și o tablă albă) pentru demonstrație.
Fiecare pereche de elevi va avea nevoie de:
✓ 36 cărți identice, colorate numai pe o parte.

36 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
„Trucul magic”
Demonstrație
Iată șansa voastră de a fi magicieni!

Veți avea nevoie de o grămadă de cărți identice, cu două fețe. (Pentru a le face pe ale
voastre, decupați o foaie mare din carton care este colorată numai pe o parte). Pentru
demonstrație, este cel mai ușor să folosiți cărți magnetice plate care au o culoare
diferită pe fiecare parte - magneții de frigider sunt ideali, dar asigurați-vă că sunt
magnetici pe ambele părți (mulți sunt numai pe o parte, caz în care le puteți lipi față în
față și să puneți un punct alb pe o parte).

1. Alegeți un elev care să așeze cărțile într-un pătrat 5 × 5, cu fețele care se


văd aranjate la întâmplare.

Tot la întâmplare, adăugați un alt rând și coloană, „doar pentru a-l complica ceva mai
mult”.

Aceste cărți sunt cheia trucului. Trebuie să alegeți cărți suplimentare pentru a vă
asigura că există un număr cu soț de cărți colorate în fiecare rând și coloană.

2. Cere unui elev să întoarcă numai o carte, în timp ce tu îți acoperi ochii.
Rândul și coloana care conține cartea schimbată va avea acum un număr
impar de cărți colorate, iar acesta va identifica cartea schimbată. Pot ghici
elevii cum se face acest truc?

Licență Creative Commons 37


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Învățați-i pe elevi trucul:
1. Lucrând în perechi, elevii își aranjează cărțile 5 × 5.

2. Câte cărți colorate sunt în fiecare rând și coloană? Este un număr impar sau par?
Rețineți, 0 este un număr par.

3. Acum adăugați o a șasea carte în fiecare rând, fiind siguri că numărul de


cărți colorate este întotdeauna par. Această carte suplimentară este
denumită carte de „paritate”.

4. Adăugați un al șaselea rând de cărți în partea de jos, pentru a face ca


numărul de cărți în fiecare coloană să fie un număr par.

5. Acum întoarceți o carte. Ce observați în legătură cu rândul și coloana?


(Acestea vor avea un număr impar de cărți colorate.) Cărțile de paritate se
folosesc pentru a arăta când s-a făcut o greșeală.

6. Acum faceți „trucul” prin rotație.

Activități de extindere:
1. Încercați să folosiți alte obiecte. Se potrivește tot ceea ce are două „stări”. De exemplu,
ați putea folosi cărți de joc, monede (cap sau pajură) sau cărți cu 0 sau 1 imprimate pe
ele (care au legătură cu sistemul binar).

2. Ce se întâmplă dacă se întorc două sau mai multe cărți? (Nu întotdeauna este posibil să
știi exact care două cărți au fost întoarse, cu toate că este posibil că ceva s-a schimbat.
Se poate merge în jos până la una din două perechi de cărți. Cu 4 întoarceri, este
posibil ca toți biții de paritate să fie corecți la sfârșit, deci așa eroarea poate să nu fie
detectată.)

3. Încercați aceasta cu un aranjament mult mai mare, de exemplu 9 × 9 cărți, cu rândul și


coloana în plus ajungând până la 10 × 10. (Se poate merge pe orice mărime a
aranjamentului și acesta nu trebuie să fie un pătrat).

4. Un alt exercițiu interesant este luăm în considerare cartea din dreapta jos. Dacă o
alegeți să fie cea corectă pentru coloana de deasupra, atunci aceasta va fi corectă
pentru rândul din stânga sa? (Răspunsul este da întotdeauna, dacă folosiți paritatea cu
soț.)

5. În acest exercițiu cu cărți, noi am folosit paritatea cu soț - folosind un număr par de
cărți colorate. Putem face aceasta cu paritatea fără soț? (Acest lucru este posibil, dar
cartea din dreapta jos face același lucru pentru rândul și coloana sa numai dacă
numerele rândurilor și coloanelor sunt ambele pare sau ambele impare. De exemplu,
un aranjament 5 × 9 sau unul 4 × 6 vor merge, dar un aranjament 3 × 4 nu.)

38 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Un exemplu din viața reală pentru cunoscători!
Aceeași tehnică de verificare se folosește cu codurile cărților și codurile de bare. Cărțile
publicate au un cod din zece sau treisprezece cifre imprimate de obicei pe ultima
copertă. Ultima cifră este o cifră de verificare, la fel ca biții de paritate din exercițiu.

Aceasta înseamnă că dacă se comandă o carte folosind numărul de ISBN (Numărul


Internațional Standard al Cărții), pagina de internet poate verifica dacă ați făcut vreo
greșeală. Pur și simplu se referă la suma de verificare. În acest fel, nu se întâmplă să
așteptați o carte pe care nu ați comandat-o!

Iată cum se rezolvă suma de verificare pentru un cod de carte cu zece cifre:

Înmulțiți prima cifră cu zece, cea de-a doua cu nouă, a treia cu opt și așa mai departe,
în jos, până la cea de-a noua cifră înmulțită cu doi. Fiecare din aceste valori se adună
la un loc.

De exemplu, ISBN 0 - 13 - 911991 - 4 dă o valoare

(0 × 10) + (1 × 9) + (3 × 8) + (9 × 7) + (1 × 6)
+ (1 × 5) + (9 × 4) + (9 × 3) + (1 × 2)
= 172

Apoi împărțiți rezultatul cu unsprezece. Care este restul?

172 ÷ 11 = 15, rest 7

Dacă restul este zero, atunci suma de verificare este zero; în caz contrar, scădeți restul
din 11 pentru a obține suma de verificare.

11 – 7 = 4

Priviți mai sus. Este această ultima cifră din ISBN? Da!

Dacă ultima cifră din ISBN nu era un patru, atunci știam că s-a făcut o greșeală.

Este posibil să apară o sumă de verificare de o valoare a lui 10, ceea ce ar necesita mai
mult decât o cifră. Când se întâmplă asta, se folosește caracterul X.

 Un cod de bare (UPC) de la o cutie de cereale

Un alt exemplu de folosire a unei cifre de verificare este reprezentat de codurile de


bare de pe articolele de băcănie. Acestea folosesc o formulă diferită (aceeași formulă
se folosește folosit pentru codurile de cărți din 13 cifre). Dacă un cod de bare este citit
greșit, cifra finală trebuie să fie diferită de valoarea sa calculată. Când se întâmplă

Licență Creative Commons 39


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
asta, scanerul semnalizează acustic și operatorul verificator scanează din nou codul.
Cifrele de verificare sunt de asemenea folosite pentru numerele de cont bancar,
numerele asigurărilor sociale, numerele fiscale, numerele trenurilor și vagoanelor de
cale ferată și în multe alte aplicații în care oamenii copiază un număr și trebuie să fie
siguri că acesta a fost scris corect.

40 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Verificați această carte!
Carte polițistă de mare succes
Book Tracking Service, Inc.

Aflăm și verificăm sumele de verificare ISBN pentru o mică taxă.

Veniți la agenția noastră – căutați în sala de clasă sau bibliotecă


codurile ISBN reale.

Sunt corecte sumele lor de verificare?


Uneori se fac erori.

Unele dintre cele mai obișnuite erori sunt:

 o cifră are valoarea schimbată;


 două cifre alăturate sunt schimbate una cu alta;
 o cifră este introdusă în număr și
 o cifră este omisă din număr

Puteți găsi o carte cu litera X pentru o suma de verificare de 10? Nu ar trebui să fie
prea greu de găsit – una din 11 trebuie să o aibă.

Ce fel de erori pot apărea care să nu fie detectate? Puteți schimba o cifră și să obțineți
totuși suma corectă de verificare? Dar dacă două cifre sunt schimbate între ele (o
eroare de tipărire obișnuită)?

Licență Creative Commons 41


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Ce importanță are?
Imaginați-vă că depuneți 10 lei numerar în contul bancar. Casierul tastează valoarea
depozitului și aceasta este transmisă la un calculator central. Dar să presupunem că au
loc niște interferențe pe linie în timp ce suma este transmisă, iar codul pentru 10 lei se
schimbă în 1.000 de lei. Pentru voi este un accident fericit, dar pentru bancă e clar o
problemă!

Este important să se detecteze erorile în datele transmise. Astfel, un calculator care


primește trebuie să verifice dacă datele ajunse la el au fost sau nu corupte de vreun fel
de interferențe de pe linie. Uneori, datele originale pot fi transmise din nou când s-a
transmis o eroare, dar există unele situații când aceasta nu se poate face, de exemplu,
dacă un disc a fost corupt prin expunere la o radiație magnetică sau electrică, prin
încălzire sau prin deteriorare fizică. Dacă datele sunt recepționate de la o sondă
spațială îndepărtată, ar fi foarte incomod să aștepți retransmiterea dacă a apărut o
eroare! (Durează doar peste o jumătate de oră să obții un semnal radio de la Jupiter,
când această planetă este cel mai aproape de Pământ!)

Trebuie să putem recunoaște când datele au fost corupte (detecția erorilor) și să


putem reconstrui datele inițiale (corecția erorilor).

Aceeași tehnică folosită în jocul cu „întorsul cărților” este folosită la calculatoare. Prin
aranjarea biților în rânduri și coloane imaginare și adăugarea biților de paritate la
fiecare rând și coloană, noi putem nu numai să detectăm dacă a avut loc o eroare, ci și
unde a apărut. Bitul problematic este modificat la loc și astfel am efectuat corecția
erorilor.

Bineînțeles, calculatoarele folosesc deseori sisteme mult


mai complexe de control al erorilor, care pot să
detecteze și să corecteze multiple erori. Hard-disk-ul
unui calculator are o mare cantitate din spațiul său
alocat pentru corecția erorilor, astfel încât acesta va
funcționa în siguranță, chiar dacă unele părți ale discului
se defectează. Sistemele folosite pentru aceasta sunt
foarte asemănătoare cu schemele de paritate.

Și pentru a încheia, iată o glumă care este mai bine


apreciată după ce se face această activitate:

Î: Cum se numește aceasta: „Piese de nouă, piese de


nouă”?

R: O eroare papagalicească...

42 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Soluții și indicații ajutătoare
Erorile care nu ar fi detectate de o sumă de verificare ISBN - 10 sunt cele în care o
cifră se mărește, iar o alta scade pentru a se compensa. Atunci, suma ar putea fi
aceeași. Cu toate acestea, din cauza modului în care se face calculul, acest lucru este
improbabil să se întâmple. În alte sisteme (cum ar fi ISBN - 13), există alte tipuri de
erori care ar putea să nu fie detectate, cum ar fi trei cifre consecutive care sunt
inversate, dar cele mai multe erori obișnuite (tastarea incorectă a unei cifre sau
înlocuirea între două cifre alăturate) vor fi detectate.

Licență Creative Commons 43


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Activitatea 5
Douăzeci de răspunsuri la ghicitori - Teoria
informațiilor
Rezumat
Câtă informație există într-o carte cu 1000 de pagini? Există mai multe informații într-o
carte de telefoane de 1000 de pagini sau într-un teanc de 1000 de foi de hârtie
nescrise sau în Stăpânul inelelor al lui Tolkien? Dacă putem măsura aceasta, putem
estima cât de mult spațiu este necesar pentru a stoca informațiile. De exemplu, puteți
citi, totuși, următoarea propoziție?

Ths sntnc hs th vwls mssng.

cst prpzt n r vcl

Probabil că puteți, deoarece nu există multe „informații” în vocale. Această activitate


introduce un mod de a măsura conținutul de informații.

Legături cu programa școlară


✓ Matematică: Numărul – Explorarea numerelor: mai mare decât, mai mic decât,
șiruri.
✓ Matematică: Algebra – Modele și serii
✓ Comunicare și limba română: silabe, recunoașterea elementelor de text
Abilități și competențe
✓ Compararea numerelor și lucrul cu șiruri de numere
✓ Deducția
✓ Adresarea de întrebări
Recomandare de vârstă
✓ 10 ani și peste
Materiale necesare
✓ Nu sunt necesare materiale pentru prima activitate
Există o activitate de extindere, pentru care fiecare elev va avea nevoie de:
✓ Fișa de lucru: Arborele deciziilor (pagina 47)

44 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Douăzeci de răspunsuri la ghicitori
Discuție
1. Discutați cu elevii despre ce cred ei că reprezintă informațiile.

2. Cum am putea să măsurăm câtă informație este într-o carte? Este important numărul
de pagini sau numărul de cuvinte? Poate avea o carte mai multe informații decât o
alta? Dar dacă este o carte foarte plictisitoare sau una deosebit de interesantă? 400 de
pagini dintr-o carte care conține ceva de genul „blah, blah, blah” ar avea mai multe sau
mai puține informații decât, să zicem, cartea de telefoane?

3. Explicați că informaticienii măsoară informațiile după cât de surprinzător este un mesaj


(sau o carte!). De exemplu, când un prieten care merge întotdeauna la școală spune
„Am mers la școală azi” – nu vă dă niciun fel de informații, deoarece acest lucru nu
este surprinzător. Dacă prietenul ar spune, în schimb, „Azi am mers la școală cu
elicopterul”, asta ar fi surprinzător și, prin urmare, ne-ar comunica o mulțime de
informații.

4. Cum se poate măsura valoarea de surpriză a unui mesaj?

5. O modalitate este să vezi cât de greu este să ghicești informațiile. Dacă prietenul spune
„Ghici cum m-am dus la școală azi” și a mers pe jos, probabil că ghiciți din prima
încercare. E posibil să trebuiască să încercați să ghiciți de mai multe ori înainte de a
ajunge la elicopter și, chiar mai mult, dacă ar fi călătorit cu nava spațială.

6. Cantitatea de informații pe care o conțin mesajele se măsoară după cât de ușor sau
greu este să le ghicești. Jocul următor vă dă o idee despre acest lucru.

Licență Creative Commons 45


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Activitatea cu douăzeci de
întrebări
Acesta este un joc adaptat cu 20 de întrebări. Elevii pot pune întrebări unui alt elev
ales, care poate răspunde numai da sau nu, până când ghicește răspunsul. Se poate
pune orice întrebare, cu condiția ca răspunsul să fie strict ‘da’ sau ‘nu’.

Sugestii:
Mă gândesc la:
✓ un număr între 1 și 100
✓ un număr între 1 și 1000
✓ un număr între 1 și 1,000,000.
✓ orice număr întreg
✓ o succesiune de 6 numere într-un model (corespunzător grupului). Ghiciți în ordine,
de la primul la ultimul (de exemplu 2, 4, 6, 8, 10).

Numărați câte întrebări s-au pus. Aceasta este o măsură a valorii „informațiilor”.

Discuție ulterioară
Ce strategii ați folosit? Care au fost cele mai bune?

Arătați că sunt necesare doar 7 încercări de a ghici pentru a se găsi un număr între 1
și 100, dacă împărțiți intervalul la jumătate de fiecare dată. De exemplu:

Este mai mic decât 50? Da.


Este mai mic decât 25? Nu.
Este mai mic decât 37? Nu.
Este mai mic decât 43? Da.
Este mai mic decât 40? Nu.
Este mai mic decât 41? Nu.
Trebuie să fie 42! Da!

Este interesant că dacă se mărește intervalul la 1000, nu trebuie să ghicești de 10 ori


mai mult – sunt suficiente doar alte trei întrebări. De fiecare dată când se dublează
intervalul, este necesară doar încă o întrebare pentru a afla răspunsul.

O bună idee de continuare ar fi să lăsați elevii să joace Mastermind.

Extindere: Câte informații sunt într-un mesaj?


Informaticienii nu folosesc doar ghicitul cu numere – ei pot ghici de asemenea care
literă este mai probabil să fie următoarea într-un cuvânt sau o propoziție.

Încercați să ghiciți jocul cu o propoziție scurtă, de 4 - 6 cuvinte. Literele trebuie să fie


ghicite în ordinea corectă, de la prima la ultima. Cereți cuiva să scrie literele pe măsură
ce sunt aflate și țineți evidența de câte ori trebuie să se încerce pentru a afla fiecare
literă. Orice întrebări cu răspuns da/nu pot fi folosite. Exemple ar fi „Este t?” „Este
vocală?” „Se află înainte de m în alfabet?” Un spațiu între cuvinte contează de
asemenea ca o „literă” și trebuie să fie ghicită. Treceți la rând și vedeți dacă voi puteți
descoperi care părți ale mesajelor sunt cel mai ușor de aflat.

46 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Fișa de lucru: Arborii deciziilor
Dacă știți deja strategia pentru a pune întrebări, voi puteți transmite un mesaj fără a
trebui să întrebați nimic.

Iată o schemă denumită ‘arborele deciziilor’ pentru a ghici un număr între 0 și 7:

Care sunt deciziile da/nu necesare pentru a „ghici” numărul 5?

De câte decizii da/nu este nevoie pentru a reuși rezolvarea oricărui număr?

Acum priviți la ceva foarte fascinant. Sub numerele 0, 1, 2, 3… din rândul final al
arborelui scrieți numărul în binar (vezi Activitatea 1).

Privește atent la arbore. Dacă nu=0 și da=1, ce vedeți?

În jocul de ghicire a numerelor, încercăm să alegem întrebări astfel încât succesiunea


de răspunsuri să ajute la reprezentarea numărului în exact acest mod.

Alcătuiți propriul arbore al deciziilor pentru a ghici numere între 0 și 15.

Suplimentar pentru cunoscători: Ce fel de arbore ați folosi pentru a ghici vârsta cuiva?
Dar ce ziceți de un arbore pentru a ghici care literă este următoarea într-o propoziție?

Licență Creative Commons 47


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Ce importanță are?
Un important matematician american (și jongler și uni-
ciclist) pe nume Claude Shannon a făcut o mulțime de
experimente cu acest joc. El a măsurat cantitatea de
informații în biți - fiecare răspuns da/nu este echivalent
cu un bit 1/0. El a aflat că volumul de „informații”
conținute într-un mesaj depinde de ceea ce cunoașteți
deja. Uneori putem pune o întrebare care elimină
nevoia de a pune o mulțime de alte întrebări. În acest
caz, conținutul de informații al mesajului este redus. De
exemplu, informațiile dintr-o singură aruncare a unei
monede reprezintă un singur bit în mod normal: cap
sau pajură. Dar dacă moneda se întâmplă să fie una
falsificată, care arată cap de nouă ori din zece, atunci
informațiile nu mai reprezintă un bit.Credeți sau nu,
reprezintă și mai puțin de atât. Cum puteți afla ce a
arătat moneda cu mai puțin de o întrebare da/nu?
Simplu - folosiți doar întrebări precum „arată
următoarele două aruncări ambele cap?” Pentru o serie
de aruncări cu moneda falsificată, răspunsul va fi „da” în cazul a aproximativ 80% din
acestea. În 20% din ocaziile în care răspunsul este „nu,” va trebui să puneți încă două
întrebări. Dar în medie, veți pune mai puțin de o întrebare pe aruncare!

Shannon a denumit conținutul de informații al unui mesaj „entropie”. Entropia depinde


nu numai de numărul de rezultate posibile - în cazul aruncării monedei, două - dar și
de probabilitatea ca acestea să se întâmple. Evenimentele improbabile sau informațiile
surprinzătoare necesită cu mult mai multe întrebări pentru a ghici mesajul, deoarece
acestea ne comunică mai multe informații pe care nu le cunoaștem deja - ca în situația
mersului la școală cu elicopterul.

Entropia unui mesaj este foarte importantă pentru informaticieni. Nu se poate


comprima un mesaj pentru a ocupa mai puțin spațiu decât entropia sa, iar cele mai
bune sisteme de comprimare sunt echivalente cu un joc de ghicit. Deoarece un
program de calculator realizează ‘ghicitul’, lista de întrebări poate fi reprodusă ulterior,
așa că devreme ce răspunsurile (biții) sunt stocate, noi putem reconstitui informațiile!
Cele mai bune sisteme de comprimare pot reduce fișierele text la aproximativ un sfert
din mărimea lor inițială - o mare economie de spațiu de stocare!

Metoda ghicitului poate fi folosită de asemenea pentru a realiza o interfață de


calculator care prezice ceea ce utilizatorul urmează să tasteze în continuare! Acest
lucru poate fi foarte util pentru persoanele cu dizabilități fizice, pentru care este dificil
să tasteze. Calculatorul sugerează ce crede el că e probabil ca acestea să tasteze mai
departe și arată doar ceea ce vor. Un bun sistem necesită în medie numai două
răspunsuri da/nu pe caracter și poate fi de mare ajutor pentru cineva care are
dificultăți în efectuarea unor mișcări fine necesare pentru a controla un mouse sau o
tastatură. Acest fel de sistem este de asemenea folosit într-o formă diferită pentru a
‘tasta’ textul pe unele telefoane mobile.

48 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Soluții și indicații ajutătoare
Răspunsul la o singură întrebare da/nu corespunde exact cu un bit de informații - dacă
este o simplă întrebare precum „E mai mare decât 50?” sau una mai complexă, ca „Este
între 20 și 60?”

În jocul cu ghicitul numerelor, dacă întrebările sunt alese într-un anumit mod,
succesiunea răspunsurilor este chiar reprezentarea binară a numărului. Trei este 011 în
binar și este reprezentat de răspunsurile “Nu, da, da” în arborele deciziilor, care este
același dacă scriem nu pentru 0 și da pentru 1.

Un arbore pe care l-ați folosi pentru vârsta cuiva ar putea fi falsificat în sensul
numerelor mai mici.

Decizia despre literele dintr-o propoziție ar putea depinde de care a fost litera anterioară.

Licență Creative Commons 49


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Partea II
Să punem calculatoarele la lucru
Algoritmii
Să punem calculatoarele la lucru
Calculatoarele funcționează urmând o listă de instrucțiuni stabilite pentru ele. Aceste
instrucțiuni le permit să sorteze, să găsească și să transmită informații. Pentru a face
aceste lucruri pe cât de repede posibil, este nevoie de metode bune pentru a găsi ceva
în colecțiile voluminoase de date și pentru a transmite informațiile prin rețele.

Un algoritm este un set de instrucțiuni pentru executarea unei sarcini. Ideea unui
algoritm este de mare importanță în informatică. Algoritmii reprezintă modul în care
cerem calculatoarelor să rezolve problemele. Unii algoritmi sunt mai rapizi decât alții și
mulți algoritmi care au fost descoperiți au făcut posibilă rezolvarea problemelor care
mai înainte necesitau un timp foarte îndelungat - de exemplu, găsirea a milioane de
cifre în pi, sau a tuturor paginilor care conțin numele tău pe Internet, sau găsirea celui
mai bun mod de a ambala pachetele într-un container, sau să afli dacă numerele foarte
mari (de ordinul sutelor) sunt prime sau nu.

Cuvântul „algoritm” este derivat din numele lui Mohammed ibn Musa Al - Khowarizmi -
Mohammed, fiul lui Moise, de la Khowarizm – care, în jurul anului 800 Î.Ch, a ajuns la
un centru academic cunoscut drept House of Wisdom (Casa Înțelepciunii) în
Bagdad.Prin lucrările sale, a transmis arabilor, dar și europenilor, arta indiană a
socotitului. Când acestea au fost traduse în limba latină, în anul 1120, primele cuvinte
au fost „Dixit Algorismi” – „așa a spus Algorismi”.

Licență Creative Commons 51


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Activitatea 6
Navele de război - Algoritmii de căutare
Rezumat
Deseori, calculatoarele trebuie să găsească informații în colecții mari de date. În acest
scop, ele trebuie să conceapă modalități rapide și eficiente pentru a rezolva sarcina.
Această activitate demonstrează trei metode de căutare diferite: căutare liniară,
căutare binară și hashing (adunare cifră cu cifră).

Legături cu programa școlară


✓ Matematică: Numere – Explorarea numerelor: mai mare decât, mai mic decât și
egal cu
✓ Matematică: Geometrie – Explorarea formei și spațiului: Coordonate
✓ Programare: Algoritmi
Abilități și competențe
✓ Raționamentul logic
Recomandare de vârstă
✓ 9 ani și peste
Materiale necesare
Fiecare elev va avea nevoie de:
✓ Un exemplar al jocului cu nave de război
▪ 1A, 1B pentru jocul 1
▪ 2A, 2B pentru jocul 2
▪ 3A, 3B pentru jocul 3

✓ De asemenea, se poate să fie nevoie de câteva exemplare suplimentare de joc, 1A',


1B', 2A', 2B', 3A', 3B'.

Vezi secțiunea „Materiale de tipărit și multiplicat”

52 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Navele de război
Activitate introductivă
1. Alegeți aproximativ 15 elevi care să stea în linie în fața clasei. Dați fiecărui elev o carte
cu un număr pe ea (în ordine aleatorie). Țineți numerele ascunse de restul clasei.

2. Dați unui alt elev o cutie cu patru sau cinci bomboane în ea. Sarcina lor este să
găsească un număr dat. Ei pot „plăti” cu ele pentru a se uita la o anumită carte. Dacă
găsesc numărul corect înainte de a folosi toate bomboanele, ei pot păstra restul.

3. Repetați dacă doriți.

4. Acum amestecați cărțile și dați-le lor din nou. De această dată, cereți elevilor să le
sorteze în ordine crescătoare. Procesul de căutare se repetă.

Dacă numerele sunt sortate, o strategie inteligentă este să se folosească doar o „plată”
pentru a elimina jumătate din elevi cerând elevului de la mijloc să descopere cartea.
Prin repetarea acestui proces, ei trebuie să poată găsi numărul folosind numai trei
bomboane. Va fi evidentă creșterea eficienței în acest caz.

Activitatea
Elevii se pot obișnui cu modul în care un calculator caută, jucând jocul cu navele de
război. În timpul jocului, cereți-le să se gândească la strategiile pe care le folosesc
pentru a localiza navele.

Licență Creative Commons 53


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Navele de război – Un joc cu căutare
liniară
Citiți următoarele instrucțiuni elevilor
1. Organizați-vă pe perechi. Unul dintre voi are foaia 1A, celălalt are foaia 1B. Nu arăta
fișa ta partenerului!

2. Ambii încercuiți o navă de război de pe rândul de sus al foii de joc și spuneți


partenerului numărul acesteia.

3. Acum este rândul vostru să ghiciți unde este nava partenerului. (Spuneți numele literei
unei nave și partenerul spune numărul navei de la acea literă.)

4. De câte încercări este nevoie pentru a localiza nava partenerului tău? Acesta este
punctajul tău pentru joc.

(Foile 1A' și 1B' sunt extrase prezentate elevilor care ar vrea să joace mai multe jocuri
sau care văd „din întâmplare” foile partenerilor lor. Foile 2A', 2B' și 3A', 3B' sunt pentru
alte jocuri viitoare.)

Discuție ulterioară
1. Care au fost punctajele?

2. Care ar fi punctajele minime și maxime posibile? (Acestea sunt 1 și, respectiv, 26,
presupunând că elevii nu „trag” de două ori asupra aceleiași nave. Această metodă
este denumită „căutare liniară”, deoarece implică trecerea prin toate pozițiile, una după
alta.)

54 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Navele de război – Un joc cu căutare
binară
Instrucțiuni
Instrucțiunile pentru această versiune a jocului sunt aceleași ca pentru jocul anterior,
dar numerele navelor sunt acum în ordine crescătoare. Explicați aceasta elevilor înainte
de a începe.

1. Organizați-vă pe perechi. Unul dintre voi are foaia 2A, celălalt foaia 2B. Nu arăta fișa
ta partenerului!

2. Ambii încercuiți o navă de război de pe rândul de sus al foii de joc și spuneți


partenerului numărul acesteia.

3. Acum este rândul vostru să ghiciți unde este nava partenerului. (Spuneți numele literei
unei nave și partenerul spune numărul navei de la acea literă.)

4. De câte încercări este nevoie pentru a localiza nava partenerului tău? Acesta este
punctajul tău pentru joc.

Discuție ulterioară
1. Care au fost punctajele?

2. Ce strategie s-a folosit la punctajele mici?

3. Ce navă trebuie să alegi mai întâi? (Cea din mijloc vă spune în care jumătate a rândului
trebuie să fie nava aleasă.) Care ar fi următoarea locație aleasă? (Din nou, cea mai
bună strategie este întotdeauna să alegi nava din mijlocul secțiunii care trebuie să
conțină nava selectată.)

4. Dacă se aplică această strategie, câte încercări sunt necesare pentru a găsi o navă?
(Cel mult cinci).

Această metodă este denumită „căutare binară”, deoarece aceasta împarte problema în
două părți.

Licență Creative Commons 55


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Navele de război – Un joc cu căutare
hashing
Instrucțiuni
1. Fiecare ia o foaie ca în jocurile anterioare și spune partenerului numărul navei alese.

2. În acest joc, puteți afla în care coloană (0 la 9) este nava. Pur și simplu adunați cifrele
numărului navei. Ultima cifră a sumei este coloana în care este nava. De exemplu,
pentru a localiza o navă cu numărul 2345, adunați cifrele 2+3+4+5, ceea ce dă 14.
Ultima cifră a sumei este 4, astfel încât nava trebuie să fie în coloana 4. După ce știți
coloana, trebuie să ghiciți care din navele din acea coloană este cea dorită. Această
tehnică este denumită „hashing”, deoarece cifrele sunt adunate una câte una
(„hashed”).

3. Acum jucați jocul folosind această nouă strategie de căutare. Poate doriți să jucați mai
mult de un joc folosind aceeași foaie - doar alegeți din diferite coloane.

(Rețineți că, spre deosebire de celelalte jocuri, foile de rezervă 3A' și 3B' trebuie să fie
folosite ca pereche, deoarece modelul de nave din coloane trebuie să corespundă.)

Discuție ulterioară
1. Colectați și discutați punctajele ca mai înainte.

2. Care nave sunt foarte ușor de găsit? (Cele care sunt singure în coloană.) Care nave pot
fi mai greu de găsit? (Cele ale căror coloane conțin multe alte nave.)

3. Care din cele trei procese de căutare este cel mai rapid? De ce?

Care sunt avantajele fiecăruia din cele trei moduri diferite de căutare? (A doua
strategie este mai rapidă decât prima, dar prima nu necesită ca navele să fie sortate în
ordine. A treia strategie este de obicei mai rapidă decât celelalte două, dar este posibil,
întâmplător, ca aceasta să fie foarte lentă. În cel mai rău caz, dacă toate navele ajung
în aceeași coloană, să fie doar la fel de lentă ca prima strategie.)

56 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Activități de extindere
1. Cereți elevilor să-și alcătuiască propriile jocuri folosind cele trei formate. Pentru al
doilea joc, ei trebuie să pună numerele în ordine crescătoare. Întrebați-i cum ar putea
face jocul Hashing foarte dificil. (Cel mai greu joc este când toate navele sunt în
aceeași coloană.) Cum îl puteți face pe cât de ușor posibil? (Trebuie să încercați să
aveți același număr de nave în fiecare coloană.)

2. Ce s-ar întâmpla dacă nava căutată n-ar fi acolo? (În jocul cu Căutare Liniară, ar fi
nevoie de 26 de încercări pentru a arăta aceasta. În jocul cu Căutare Binară, ar fi
nevoie de cinci încercări pentru a dovedi aceasta. Când se folosește Sistemul Hâș, ar
depinde de câte nave au apărut în coloana respectivă.)

3. Folosind strategia cu Căutare Binară, câte încercări ar fi necesare dacă ar fi o sută de


locații (aproximativ șase încercări), o mie de locații (aproximativ nouă) sau un milion
(aproximativ nouăsprezece)? (Observați că numărul de încercări crește foarte lent în
comparație cu numărul de nave. O încercare în plus este necesară de fiecare dată când
mărimea se dublează, deci este proporțional cu logaritmul numărului de nave.)

Licență Creative Commons 57


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
58
My Ships Number of Shots Used:
9058 7169 3214 5891 4917 2767 4715 674 8088 1790 8949 13 3014
A B C D E F G H I J K L M
8311 7621 3542 9264 450 8562 4191 4932 9462 8423 5063 6221 2244
N O P Q R S T U V W X Y Z

Your Ships Number of Shots Used:

A B C D E F G H I J K L M

N O P Q R S T U V W X Y Z

Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
1A
Licență Creative Commons 59
© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
60 Licență Creative Commons
© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Licență Creative Commons 61
© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
62
My Ships Number of Shots Used:
0 1 2 3 4 5 6 7 8 9
H 8051 R 9891 W 1062
E 5125 L 7116 O 6000
A 9047 C 3080 I 1481 S 1989 X 2106
F 1480 J M 8944 P 7432 V 4392
4712 T 2050 Y 5842
B 1829 D 9994
G 8212 K 6422 N 4128 Q 4110 U
8199 Z 7057

Your Ships Number of Shots Used:


0 1 2 3 4 5 6 7 8 9
A R
E H L O V
B S Y
F I K M P W
C T Z
G J N Q X
D U

Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
3A
Licență Creative Commons 63
© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
64 Licență Creative Commons
© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Licență Creative Commons 65
© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
66 Licență Creative Commons
© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Licență Creative Commons 67
© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
68 Licență Creative Commons
© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Licență Creative Commons 69
© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Ce importanță are?
Calculatoarele stochează o mulțime de informații și trebuie să fie în măsură să le
selecteze foarte repede. Motoarele de căutare Internet se confruntă cu una din cele
mai mari probleme de căutare din lume, pentru că trebuie să caute miliarde de pagini
web într-o fracțiune de secundă. Datele pe care un calculator trebuie să le caute, cum
ar fi un cuvânt, un număr de cod de bare sau numele unui autor, se numesc chei de
căutare.

Calculatoarele pot procesa informațiile foarte rapid și ați putea crede că, pentru a găsi
ceva, ele trebuie doar să pornească la începutul stocării și să continue căutarea până
când se găsesc informațiile dorite. Este ceea ce noi am făcut în jocul cu Căutare
Liniară. Dar această metodă este foarte lentă chiar și pentru calculatoare. De exemplu,
să presupunem să un supermarket are 10.000 de produse diferite pe rafturi. Când un
cod de bare este scanat la ieșire, calculatorul trebuie să caute în până la 10.000 de
numere pentru a găsi denumirea și prețul produsului. Chiar dacă îi ia numai o miime de
secundă pentru a verifica fiecare cod, zece secunde ar fi necesare pentru a parcurge
întreaga listă. Imaginați-vă cât de mult timp ar fi necesar pentru a verifica produsele
alimentare pentru o familie!

O strategie mai bună este căutarea binară. În această metodă, numerele sunt sortate
în ordine. Prin verificarea elementului de la mijlocul listei, se va identifica în care
jumătate este cheia de căutare. Procesul se repetă până când se găsește elementul
respectiv. Revenind la exemplul cu supermarketul, cele 10.000 de articole pot fi
căutate acum cu paisprezece sondări, ceea ce ar putea dura două sutimi de secundă -
un timp infim.

A treia strategie pentru găsirea datelor este denumită hashing. Aici, cheia de căutare
este manipulată pentru a indica exact unde să se caute informațiile. De exemplu, dacă
cheia de căutare este un număr de telefon, ați putea aduna toate cifrele din număr și
reține restul când se împarte la 11. În acest sens, o cheie hash este aproape ca și
cifrele de verificare discutate la Activitatea 4 – este procesată doar o mică parte din
datele a căror valoare depinde de celelalte date. De obicei, calculatorul va găsi ceea ce
caută imediat. Șansele sunt mici ca mai multe chei să ajungă în aceeași locație, caz în
care calculatorul va trebui să caute până când o găsește pe cea necesară.

De regulă, programatorii folosesc strategia hashing pentru căutare.Cu excepția


cazurilor când este important să țină datele în ordine sau când un răspuns lent, fie el și
ocazional, nu poate fi acceptat.

70 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Activitatea 7
Cel mai ușor și cel mai greu - Algoritmi de
sortare
Rezumat
Calculatoarele sunt deseori folosite pentru a pune listele într-un fel de ordine, de
exemplu numele în ordine alfabetică, întâlnirile sau mesajele e-mail după dată, sau
articolele în ordine numerică. Sortarea listelor ne ajută să găsim repede lucrurile și, de
asemenea, face vizibile valorilor extreme. Dacă sortați notele acordate pentru o testare
la clasă în ordine numerică, cele mai mari note și cele mai mici vor ieși în evidență.

Dacă folosiți o metodă greșită, poate dura foarte mult timp să sortați o listă mare în
ordine, chiar și pe un calculator rapid. Din fericire, se cunosc mai multe metode rapide
pentru sortare. În această activitate, elevii vor descoperi diferite metode pentru sortare
și vor vedea cum o metodă inteligentă poate efectua sarcina mult mai repede decât un
a simplă.

Legături cu programa școlar


✓ Matematică: Măsurarea – Efectuarea unor sarcini de măsurare a greutății.
✓ Programare: Algoritmi
Abilități și competențe
✓ Folosirea cântarelor
✓ Punerea în ordine
✓ Compararea
Recomandare de vârstă
✓ 8 ani și peste
Materiale necesare
Fiecare grup de elevi va avea nevoie de:
✓ Seturi de 8 containere de aceeași mărime dar cu greutăți diferite (de exemplu, cutii
de lapte umplute cu nisip)
✓ Cântare
✓ Fișa de lucru: Sortarea greutăților (pagina 73)
✓ Fișa de lucru: Divizează și cucerește (pagina 74)

Licență Creative Commons 71


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Cel mai ușor și cel mai greu
Discuție
Calculatoarele deseori trebuie să sorteze liste de lucruri în ordine. Gândiți-vă la toate
locurile în care este important să pui lucrurile în ordine. Ce s-ar întâmpla dacă aceste
lucruri nu ar fi în ordine?

Calculatoarele de obicei doar compară două valori la un moment dat. Activitatea de la


pagina următoare folosește această restricție pentru a da elevilor o idee despre cum
are loc aceasta.

Activitatea
1. Împărțiți elevii pe grupuri.

2. Fiecare grup va avea nevoie de un exemplar al fișei de activitate de la pagina 73 și de


propriile lui greutăți și cântar.

3. Cereți elevilor să efectueze activitatea, apoi discutați rezultatul.

72 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Fișa de lucru: Sortarea greutăților
Obiectivul: Să găsească cea mai bună metodă de sortare a unui grup de greutăți
necunoscute, în ordine.

Veți avea nevoie de: Nisip sau apă, 8 recipiente identice, un cântar balanță.

Ce trebuie făcut:

1. Umpleți fiecare recipient cu o cantitate diferită de nisip sau apă. Închideți-le


etanș.

2. Amestecați-le, astfel încât să nu mai știți ordinea greutăților lor.

3. Găsiți cea mai mică greutate. Care este cel mai ușor mod de a face aceasta?

Notă: Aveți voie să folosiți numai cântarul pentru a afla cât de greu este fiecare
recipient. Numai două greutăți pot fi comparate odată.

4. Alegeți 3 greutăți la întâmplare și sortați-le în ordine, de la cea mai mică la cea


mai mare, folosind numai cântarul. Cum ați făcut asta? Care este numărul minim
de comparații pe care le puteți face? De ce?

5. Acum sortați toate obiectele în ordine, de la cel mai ușor la cel mai greu.

Când credeți că ați terminat, verificați ordinea cântărind din nou fiecare pereche de
obiecte la un loc.

Selection Sort (sortare selectivă)

O metodă pe care ar putea-o folosi un calculator este denumită sortare de selecție.


Iată cum se realizează sortarea de selecție. Mai întâi găsiți cea mai mică greutate în set
și puneți-o la o parte. Apoi, găsiți cele mai mici dintre greutățile care au rămas și dați-
le la o parte. Repetați aceasta până când toate greutățile au fost date la o parte.

Numărați câte comparații ați făcut.

Suplimentar pentru cunoscători: Arătați cum puteți calcula matematic câte comparații
sunt necesare pentru a sorta 8 obiecte în ordine. Dar în cazul a 9 obiecte? 20?

Licență Creative Commons 73


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Fișa de lucru: Divizează și cucerește
Quicksort (sortare rapidă)
Quicksort este mult mai rapid decât sortarea selectivă, în mod deosebit pentru listele
mari. De fapt, este una din cele mai bune metode cunoscute. Iată cum funcționează
sortarea rapidă.

Alegeți unul din obiecte, la întâmplare, și puneți-l pe un taler al cântarului.

Acum comparați fiecare din obiectele rămase cu acesta. Puneți-le pe cele care sunt mai
ușoare în stânga, obiectul ales în mijloc, iar pe cele mai grele în dreapta. (Se poate
întâmpla să ajungeți la mult mai multe obiecte într-o parte decât în cealaltă.)

Alegeți unul din grupuri și repetați această procedură. Faceți la fel pentru celălalt grup.
Țineți minte să păstrați obiectul cunoscut în centru.

Continuați să repetați această procedură cu celelalte grupuri până când niciun grup nu
are mai mult de un obiect. După ce toate grupurile au fost divizate până la un singur
obiect, obiectele vor fi în ordine de la cel mai ușor la cel mai greu.

Câte comparații au fost necesare în acest proces?

Trebuie să știți că sortarea rapidă este o metodă mai eficientă decât sortarea selectivă,
dacă ați ales să începeți cu greutatea cea mai mică sau cea mai mare. Dacă ați fost
suficient de norocoși și ați ales greutatea mijlocie, trebuie să fi fost necesare numai 14
comparații, față de 28 pentru sortarea selectivă. În orice caz, metoda sortării rapide nu
va fi niciodată mai slabă decât sortarea selectivă, ci poate fi mult mai bună!

Suplimentar pentru cunoscători: Dacă sortarea rapidă ar alege din întâmplare


întotdeauna cel mai ușor obiect, câte comparații s-ar folosi?

74 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Variații și extinderi
S-au inventat multe metode diferite pentru sortare. Ați putea să încercați să sortați
greutățile folosindu-le pe acestea:

Insertion sort (sortarea cu inserare) se realizează înlăturând fiecare obiect dintr-un


grup nesortat și inserarea acestuia în poziția corectă dintr-o listă crescătoare (vezi
imaginea de mai jos). Cu fiecare inserare, grupul de obiecte nesortate se micșorează,
iar lista sortată se mărește, până când în cele din urmă întreaga listă este sortată.
Jucătorii de cărți folosesc deseori această metodă pentru a sorta o tură în ordine.

Bubble sort (sortarea bulelor) implică parcurgerea listei iar și iar, schimbarea între ele a
obiectelor alăturate unul de altul, care sunt în ordine necorespunzătoare. Lista este
sortată când nu mai pot avea loc schimburi în timpul parcurgerii listei. Această metodă
nu este foarte eficientă, dar unii o consideră a fi mai ușor de înțeles decât altele.

Mergesort (sortare amestecată) este o altă metodă care folosește „Divizează și


cucerește” pentru a sorta o listă de elemente. Mai întâi, lista este împărțită la
întâmplare în alte două liste de mărime egală (sau aproape egală dacă există un număr
impar de elemente). Fiecare din cele două jumătăți de listă este sortată, apoi cele două
liste sunt amestecate împreună. Amestecarea celor două liste sortate este ușoară -
înlături repetat pe cel mai mic din cele două obiecte din față ale celor două liste. În
figura de mai jos, greutățile de 40 și 60 de grame sunt în fața listelor, așa că următorul
obiect de adăugat este greutatea de 40 de grame. Cum sortați listele mai mici? Simplu
- doar folosiți sortarea amestecată! În cele din urmă, toate listele vor fi divizate în
elemente individuale, deci nu trebuie să vă faceți probleme să știți când să vă opriți.

Licență Creative Commons 75


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Ce importanță are?
Informațiile se pot găsi mult mai ușor într-o listă sortată. Cărțile de telefoane,
dicționarele și indexurile cărților, toate folosesc ordinea alfabetică, și viața ar fi mult
mai dificilă dacă nu ar fi așa. Dacă o listă de numere (cum ar fi o listă de cheltuieli)
este sortată în ordine, cazurile extreme sunt ușor de văzut, deoarece acestea sunt la
începutul și sfârșitul listei. Dublurile sunt de asemenea ușor de găsit, deoarece ajung
una lângă alta.

Pentru calculatoare, durează foarte mult să sorteze lucrurile în ordine, deci


informaticienii trebuie să găsească modalități rapide și eficiente pentru aceasta. Unele
din cele mai lente metode, cum ar fi sortarea cu inserare, sortarea selectivă și sortarea
bulelor pot fi utile în situații speciale, dar cele rapide, cum ar fi sortarea rapidă și
sortarea amestecată sunt de obicei folosite deoarece sunt mult mai rapide la listele
mari - de exemplu, pentru 100.000 de elemente, sortarea rapidă este de regulă cam de
2.000 de ori mai rapidă decât sortarea selectivă, iar pentru 1.000.000 de elemente,
este cam de 20.000 de ori mai rapidă. Calculatoarele trebuie să lucreze deseori cu un
milion de elemente (o mulțime de pagini de internet au milioane de clienți, și chiar și o
singură fotografie făcută cu un aparat ieftin are peste un milion de pixeli); diferența
dintre cei doi algoritmi este diferența între durata de 1 secundă pentru a procesa
elementele, și peste 5 ore pentru a executa aceeași sarcină. Nu numai că întârzierea ar
fi intolerabilă, dar va trebui folosită de 20.000 de ori mai multă energie (ceea ce nu
numai că are impact asupra mediului, dar reduce și durata bateriilor la dispozitivele
portabile), așa că alegerea algoritmului potrivit este foarte importantă.

Quicksort (sortarea rapidă) folosește un procedeu denumit Divizează și cucerește. La


această sortare rapidă, o listă se divizează repetat în părți mai mici, iar apoi se
efectuează o sortare rapidă pe fiecare din părți. Lista este divizată repetat până când
este suficient de mică pentru a fi „cucerită”. Pentru sortarea rapidă, listele sunt divizate
până când conțin un singur element. Cu toate că pare foarte solicitant, în practică, este
cu mult mai rapid decât alte metode. Este un exemplu bazat pe o funcție Recursivă, în
care un algoritm se folosește pe sine însuși pentru a rezolva o problemă. Sună ciudat,
dar poate funcționa foarte bine.

76 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Soluții și indicații ajutătoare
1. Cel mai bun mod pentru a găsi cea mai mică greutate este să se treacă pe la fiecare
obiect la rând, ținând cont de cel mai ușor până la momentul respectiv. Adică,
comparați două obiecte și țineți-l pe cel mai ușor. Acum comparați-l pe acela cu un
altul, ținându-l pe cel mai ușor din comparație. Repetați până când toate obiectele au
fost folosite.

2. Comparați greutățile pe cântar. Aceasta se poate face ușor cu trei comparații, și uneori
doar două vor fi suficiente - dacă elevii realizează că operatorul comparației este
tranzitiv (adică, dacă A este mai ușor decât B și B este mai ușor decât C, apoi A trebuie
să fie mai ușor decât C).

Soluții pentru cunoscători:


Iată o modalitate scurtă pentru adunarea numărului de comparații făcute la sortarea
selectivă.

Pentru a găsi cel puțin două obiecte, este nevoie de o comparație, trei necesită două,
patru necesită trei, și așa mai departe. Pentru a sorta opt obiecte folosind sortarea
selectivă, sunt necesare 7 comparații pentru a-l găsi pe primul, șase pentru a-l găsi pe
următorul, cinci pentru a-l găsi pe următorul și așa mai departe. De aici rezultă:

7 + 6 + 5 + 4 + 3 + 2 + 1 = 28 comparații.

n obiecte vor necesita 1 + 2 + 3 + 4 +… + n – 1 comparații pentru sortare.

Adunarea acestor numere este ușoară dacă le regrupăm.

De exemplu, pentru a aduna numerele 1 + 2 + 3 + … + 20, regrupați-le astfel

(1 + 20) + (2 + 19) + (3 + 18) + (4 + 17) + (5 + 16) +

(6 + 15) + (7 + 14) + (8 + 13) + (9 + 12) + (10 + 11)

= 21 × 10

= 210

În general, suma 1 + 2 + 3 + 4 … + n – 1 = n(n – 1)/2.

Licență Creative Commons 77


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Activitatea 8
Terminăm la timp - Rețele de sortare
Rezumat
Deși calculatoarele sunt rapide, există o limită privind modul în care ele pot rezolva
problemele. Un mod de a accelera lucrurile este folosirea a mai multe calculatoare
pentru a rezolva diferite părți ale unei probleme. În această activitate, folosim rețele de
sortare care fac mai multe comparații de sortare în același timp.

Legături cu programa școlară


✓ Matematică: Numere - Explorarea numerelor: mai mare decât, mai mic decât
Abilități și competențe
✓ Compararea
✓ Punerea în ordine
✓ Dezvoltarea algoritmilor
✓ Rezolvarea problemelor prin cooperare
Recomandare de vârstă
✓ 7 ani și peste
Materiale necesare
Aceasta este activitate de grup de exterior.
✓ Cretă
✓ Două seturi de câte șase cărți.
Vezi secțiunea „Materiale de tipărit și multiplicat”: Rețele de sortare (pagina 81)
✓ Cronometru

78 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Rețele de sortare
Înainte de activitate, folosiți creta pentru a marca această rețea pe un teren.

Instrucțiuni pentru elevi


Această activitate vă va arăta cum calculatoarele sortează numerele aleatorii în ordine
folosind ceea ce se numește o rețea de sortare.

1. Organizați-vă în grupuri de câte șase. Numai o echipă folosește rețeaua la un moment


dat.

2. Fiecare membru al echipei ia o carte numerotată.

3. Fiecare membru stă într-un pătrat din partea stângă (IN) a terenului. Numerele voastre
trebuie să nu fie în ordine.

4. Vă deplasați de-a lungul liniilor marcate și, când ajungeți la un cerc, trebuie să
așteptați ca altcineva să sosească.

5. Când un alt membru al echipei sosește în cercul vostru, comparați-vă cărțile. Persoana
cu numărul mai mic iese prin stânga. Dacă aveți numărul mai mare pe carte, ieșiți prin
dreapta.

6. Sunteți în ordinea corectă când ajungeți la celălalt capăt al terenului de joc?

Dacă o echipă face o eroare, elevii trebuie să înceapă din nou. Verificați dacă ați înțeles
operarea unui nod (cerc) în rețea, în care valoarea mai mică iese în stânga, iar cealaltă
în dreapta. De exemplu:

Licență Creative Commons 79


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
80 Licență Creative Commons
© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Materiale de tipărit și multiplicat: Rețele de
sortare

1 2

3 4

5 6

156 221

289 314

422 499
Licență Creative Commons 81
© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Variații
1. Când elevii sunt familiarizați cu activitatea, folosiți un cronometru pentru a măsura cât
timp durează pentru fiecare echipă să treacă prin rețea.

2. Folosiți cărți cu numere mari (de exemplu cele cu cifra trei dinsecțiunea „Materiale de
tipărit și multiplicat”).

3. Alcătuiți cărți cu numere chiar mai mari, care vor necesita ceva efort pentru comparare
sau folosiți cuvinte și comparați-le alfabetic.

4. Aceasta se poate folosi ca exercițiu pentru alte materii, de exemplu în muzică puteți
compara notele tipărite pe cărți și sorta de la cea mai mică la cea mai mare sau de la
cea mai scurtă la cea mai lungă.

Activități de extindere
1. Ce se întâmplă dacă cea mai mică valoare merge în dreapta în loc de stânga și invers?
(Numerele vor fi sortate în ordine inversă.)

Merge dacă rețeaua este folosită în sens invers? (Nu va merge neapărat, iar elevii
trebuie să poată găsi un exemplu de intrare care vine în ordinea greșită.)

2. Încercați să concepeți rețele mai mici sau mai mari. De


exemplu, iată o rețea care sortează doar trei numere.
Elevii trebuie să încerce să o conceapă ei înșiși.

3. Mai jos sunt două rețele diferite care vor sorta patru
intrări. Care este mai rapidă? (Cea de-a doua. În timp ce
prima necesită ca toate comparațiile să fie făcute în serie, una după alta, cea de-a
doua are unele făcute în același timp. Prima rețea este un exemplu de procesare în
serie, în timp ce a doua folosește procesarea în paralel pentru a merge mai rapid.)

4. Încercați să faceți o rețea de sortare mai mare.

5. Rețelele pot fi folosite de asemenea pentru a găsi valoarea minimă sau maximă a
intrărilor. De exemplu, iată o rețea cu opt intrări, iar singura ieșire va conține minimul
de intrări (celelalte valori vor fi lăsate la capetele moarte din rețea).

82 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
6. Ce procese din viața de zi cu zi pot fi accelerate sau nu folosindu-se paralelismul? De
exemplu, pregătirea unei mese ar fi mult mai lentă folosind numai un arzător al
aragazului, deoarece mâncărurile ar trebui să fie gătite una după alta. Care sarcini pot
fi terminate mai repede prin angajarea mai multor persoane? Care nu?

Licență Creative Commons 83


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Ce importanță are?
Pentru că folosim calculatoarele din ce în ce mai mult, vrem ca ele să proceseze
informațiile cât de repede posibil.

Un mod de a spori viteza unui calculator este să se scrie programe care folosesc mai
puține etape computaționale (cum se arată la Activitățile 6 și 7).

Un alt mod de a rezolva problemele mai rapid este să existe mai multe calculatoare
care să lucreze la diferite părți ale aceleiași sarcini în același timp. De exemplu, în
rețeaua de sortare cu șase numere, cu toate că se folosesc în total 12 comparații
pentru a se sorta numerele, până la trei comparații sunt efectuate simultan. Aceasta
înseamnă că timpul luat va fi cel necesar pentru doar 5 etape de comparație. Această
rețea paralelă sortează lista de mai mult de două ori mai repede decât un sistem care
poate efectua numai o comparație odată.

Nu toate sarcinile pot fi terminate mai rapid folosindu-se operațiile paralele de calcul.
Ca analogie, imaginați-vă o persoană care sapă un șanț lung de zece metri. Dacă ar
săpa zece persoane, fiecare câte un metru de șanț, sarcina ar fi terminată mult mai
rapid. Cu toate acestea, aceeași strategie nu ar putea fi aplicată la un șanț adânc de
zece metri - al doilea metru nu este accesibil până când nu se sapă primul metru.
Informaticienii încă încearcă în mod activ să găsească cele mai bune moduri pentru a
diviza problemele astfel încât să poată fi rezolvate de calculatoare care să lucreze în
paralel.

84 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Activitatea 9
Orașul cu noroi - Arbori de extindere minimă
Rezumat
Societatea noastră este legată de multe rețele: rețele telefonice, rețele de
aprovizionare cu utilități, rețele de calculatoare și rețele rutiere. Pentru o anumită
rețea, există de obicei unele opțiuni în legătură cu locul în care pot fi plasate drumurile,
cablurile sau comunicațiile radio. Trebuie să găsim modalități de interconectare
eficientă a obiectelor într-o rețea.

Legături cu programa școlară


✓ Matematică: Geometrie - Explorarea formei și spațiului: găsirea celor mai scurte
trasee într-o hartă
Recomandare de vârstă
✓ 9 ani și peste
Abilități și competențe
✓ Rezolvarea problemelor
Materiale necesare
Fiecare elev va avea nevoie de:
✓ Activitatea de atelier: Problema orașului noroios (pagina 87)
✓ Jetoane sau pătrate din carton (aproximativ 40 de elev)

Licență Creative Commons 85


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Orașul cu noroi
Prezentare
Această activitate vă va arăta cum se folosesc calculatoarele pentru a găsi cele mai
bune soluții pentru probleme din viața reală, cum ar fi cum să se lege liniile de
alimentare electrică între case. Cereți elevilor să folosească fișa de lucru de la pagina
87, care explică problema „Orașului cu noroi”.

Discuție ulterioară
Arătați tuturor soluțiile pe care le-au găsit elevii. Ce strategii au folosit?

O bună strategie pentru a găsi cea mai bună soluție este să se înceapă cu o hartă
goală și, treptat, să se adauge jetoane până când toate casele sunt legate, adăugând
traseele în ordinea crescătoare a lungimii lor, dar fără a lega casele care sunt deja
legate. Se pot găsi diferite soluții dacă schimbați ordinea în care se adaugă traseele de
aceeași lungime. Mai jos se prezintă două soluții posibile.

O altă strategie este să se înceapă cu toate traseele pavate, iar apoi să se înlăture
traseele de care nu aveți nevoie. Însă aceasta cere mult mai mult efort.

Unde se pot găsi rețele în viața reală?

Informaticienii numesc reprezentările acestor rețele „grafice”. Rețelele reale pot fi


reprezentate de un grafic pentru a se rezolva probleme cum ar fi proiectarea celei mai
bune rețele de drumuri între localități sau de zboruri de avion în țară.

Există de asemenea mulți alți algoritmi care pot fi aplicați la grafice, cum ar fi găsirea
celei mai scurte distanțe între două puncte sau celei mai scurte rute care trece prin
toate punctele.

86 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Fișa de lucru: Problema Orașului cu noroi
A fost odată ca niciodată un oraș care nu avea drumuri. Să mergi prin oraș era
deosebit de dificil după ploile puternice deoarece solul devenea foarte noroios -
mașinile se blocau în noroi, iar oamenii se murdăreau pe încălțăminte. Primarul
orașului a decis că unele străzi trebuie să fie pavate, dar nu voia să cheltuie mai mulți
bani decât era necesar deoarece orașul voia de asemenea să construiască un bazin de
înot. Prin urmare, primarul a specificat două condiții:

1. Trebuie să fie pavate suficiente străzi, astfel încât să fie posibil pentru oricine să
se deplaseze de la casa proprie la casa oricui numai pe drumuri pavate, și

2. Pavarea trebuia să coste cât de puțin posibil.

Iată schița orașului. Numărul de pietrelor de pavaj între case reprezintă costul pavării
acelei rute. Găsiți cea mai bună rută care leagă toate casele, dar folosiți cât mai puține
jetoane (pietre de pavaj) posibil.

Ce strategii ați folosit pentru a rezolva problema?

Variații și extinderi
Iată un alt mod de a reprezenta orașele și drumurile:

Licență Creative Commons 87


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Casele sunt reprezentate de cercuri, drumurile noroioase de linii, iar lungimea unui
drum este dată de numărul de lângă linie.

Informaticienii și matematicienii folosesc deseori acest tip de diagramă pentru a


reprezenta aceste probleme. Ei o denumesc grafic. Acest lucru poate crea confuzii la
prima vedere, deoarece „grafic” este uneori folosit în statistică pentru a însemna un
tabel care arată datele numerice, cum ar fi un grafic de bare, dar graficele pe care
informaticienii le folosesc nu au legătură cu acestea. Lungimile nu trebuie să fie
desenate la scară.

Alcătuiți propriile voastre probleme cu orașul noroios și încercați-le cu prietenii.

Puteți afla o regulă pentru a descrie câte drumuri sau conexiuni sunt necesare pentru
cea mai bună soluție? Depinde asta de câte case există în oraș?

88 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Ce importanță are?
Să presupunem că trebuie să proiectați modul în care un serviciu de utilități, cum ar fi
electricitatea, gazul sau apa trebuie să fie livrate pentru o nouă comunitate. O rețea de
fire sau conducte este necesară pentru a lega toate casele la compania de utilități.
Fiecare casă trebuie să fie racordată la rețea într-un punct, dar traseul pentru ca
utilitatea să ajungă la casă nu are importanță, atâta timp cât ruta există.

Sarcina de a proiecta o rețea cu lungimea totală minimă este denumită problema


arborelui cu deschidere minimă.

Arborii cu deschidere minimă sunt utili nu numai în rețele de gaze și electricitate; ei ne


ajută de asemenea să rezolvăm probleme în rețelele de calculatoare, rețelele
telefonice, conductele de petrol și rutele aeriene. Cu toate acestea, când decidem cele
mai bune rute pe care să se deplaseze oamenii, trebuie să ținem cont de cât de
comodă va fi deplasarea pentru călător, precum și cât de mult va costa. Nimeni nu
vrea să stea ore în șir într-un avion care zboară pe o rută îndelungată spre o țară, doar
pentru că e mai ieftin așa. Algoritmul cu orașul noroios poate să nu fie de mare folos
pentru aceste rețele, deoarece pur și simplu minimizează lungimea totală a drumurilor
sau traseelor de zbor.

Arborii cu deschidere minimă sunt de asemenea utili ca una din etapele pentru
rezolvarea altor probleme de grafice, cum ar fi „problema vânzătorului călător” care
încearcă să găsească cea mai scurtă rută care trece prin fiecare punct din rețea.

Există algoritmi eficienți (metode) pentru rezolvarea problemelor arborelui cu


deschidere minimă. O metodă simplă care dă o soluție optimă este să se înceapă fără
conexiuni și acestea să se adauge în ordinea crescătoare a mărimii, adăugând numai
conexiunile care unesc partea rețelei care nu era conectată anterior. Acesta se
numește algoritmul lui Kruskal, după J.B. Kruskal, care l-a publicat în 1956.

Pentru multe probleme de grafice, inclusiv „problema vânzătorului călător”,


informaticienii urmează încă să găsească metode suficient de rapide pentru a afla cea
mai bună soluție posibilă.

Licență Creative Commons 89


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Soluții și indicații ajutătoare
Variații și extinderi (pagina 87)
Câte drumuri sau conexiuni sunt necesare dacă există n case în oraș? Se dovedește că
o soluție optimă va avea întotdeauna exact n–1 conexiuni, întrucât acestea sunt
întotdeauna suficiente pentru a lega n case, iar prin adăugarea încă uneia s-ar crea
rute alternative inutile între case.

90 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Activitatea 10
Jocul portocalelor - Trasee și puncte moarte în
rețele

Rezumat
Când există o mulțime de oameni care folosesc o resursă (cum ar fi mașinile care
circulă pe drumuri sau mesajele care se transmit prin Internet), există posibilitatea să
apară unele „puncte moarte”. De aceea este nevoie de cooperare pentru a evita aceste
blocaje.

Legături cu programa școlară


✓ Matematică: Dezvoltarea logicii și gândirii
Abilități și competențe
✓ Rezolvarea problemelor prin cooperare
✓ Raționamentul logic
Recomandare de vârstă
✓ 9 ani și peste
Materiale necesare
Fiecare elev va avea nevoie de:
✓ Două portocale sau mingi de tenis etichetate cu aceeași literă, sau câte două fructe
fiecare
Ecuson sau etichetă adezivă pe care vor inscripționa o literă;sunt acceptate și obiectele de
culoarea fructului ales

Licență Creative Commons 91


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Jocul portocalelor
Prezentare
Acesta este un joc cu rezolvarea problemelor prin cooperare. Scopul este ca fiecare
persoană să ajungă să țină portocalele etichetate cu propria literă.

1. Grupuri de cinci sau mai mulți elevi stau în cerc.

2. Elevii sunt etichetați cu o literă a alfabetului (folosind etichete sau bandă adezivă cu
numele), sau fiecăruia i se repartizează o culoare (poate cu o pălărie sau culoarea
hainelor). Dacă se folosesc literele alfabetului, există două portocale cu litera fiecărui
elev pe ele, cu excepția unui elev, care are numai o portocală corespunzătoare pentru a
se asigura că există întotdeauna o mână goală. Dacă se folosește un fruct, există două
fructe pentru fiecare copil, de exemplu un copil cu pălăria galbenă ar putea avea două
banane, iar un copil cu pălărie verde poate avea două mere verzi, cu excepția unui
copil care are numai un fruct.

3. Distribuiți portocalele sau fructele la întâmplare elevilor din cerc. Fiecare elev are câte
două bucăți, exceptând un elev care are numai una. (Niciun elev nu trebuie să aibă
portocala sau fructul de culoarea care îi corespunde lui.)

4. Elevii trec portocalele/fructul de la unul la altul în jur până când fiecare elev o primește
pe cea etichetată cu litera lui din alfabet (sau culoarea lui). Trebuie să se respecte două
reguli:

a) Numai un fruct trebuie ținut într-o mână.

b) Un fruct poate fi pasat într-o mână goală numai a vecinului alăturat din cerc. (Un
elev poate pasa oricare din cele două portocale vecinului.)

Elevii vor afla repede că dacă sunt „lacomi” (rămân la fructul lor imediat ce îl primesc)
atunci grupul ar putea să nu-și atingă obiectivul. Trebuie să subliniați faptul că acesta
nu este un joc cu „câștigători”. Mai important este ca acesta să fie rezolvat atunci când
fiecare participant are fructul corect.

Discuție ulterioară
Ce strategii au folosit elevii pentru a rezolva problema?

Unde în viața reală ați ajuns la un punct mort? (Unele exemple ar putea fi o
aglomerație în trafic, ajungerea jucătorilor în jurul careului de 11 m al terenului de
fotbal sau încercarea de a trece o mulțime de oameni printr-o ușă în același timp.)

Activități de extindere
Încercați activitatea cu un cerc mai mic sau mai mare.

• Cereți elevilor să vină cu noi reguli.

92 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
• Desfășurați activitatea fără a vorbi deloc.

• Încercați diferit configurații, cum ar fi statul în


linie sau să existe mai mult de doi vecini
pentru unii elevi. Alăturat se prezintă unele
sugestii.

Licență Creative Commons 93


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Ce importanță are?
Realizarea traseelor și punctele moarte sunt probleme în multe rețele, cum ar fi
sistemele de drumuri, sistemele de telefonie și calculatoare. Inginerii consumă foarte
mult timp în încercarea de a rezolva aceste probleme - și cum să proiecteze rețele care
fac ca problemele să fie mai ușor de rezolvat.

Realizarea traseelor, aglomerarea și punctele moarte pot prezenta probleme frustrante


în multe rețele diferite. Gândiți-vă doar la ora voastră preferată de trafic aglomerat! S-a
întâmplat de multe ori în București ca traficul pe străzi să devină atât de aglomerat,
încât se blochează, ajunge la un punct mort: nimeni nu-și mai poate mișca mașina!
Uneori, când calculatoarele sunt „căzute” în companii (cum ar fi băncile) problema este
provocată de un punct mort în rețeaua de comunicații. Proiectarea rețelelor în așa fel
încât traseele să fie ușoare și eficiente, iar aglomerarea să fie minimă reprezintă o
problemă dificilă, întâmpinată de mulți ingineridin diferite domenii.

Uneori, mai multe persoane vor aceleași date în același timp. Dacă anumite date (cum
ar fi soldul bancar al unui client) se actualizează, este important ca în timpul actualizării
soldul să fie „securizat”. Dacă nu este securizat, altcineva ar putea să-l modifice în
același timp și soldul ar putea fi înregistrat incorect. Dacă această blocare este afectată
de blocarea unui alt element din sistem, poate apărea un punct mort.

Una dintre cele mai interesante evoluții în proiectarea calculatoarelor este apariția
sistemelor paralele de calcul, în care sute sau mii de procesoare ca cele de PC sunt
combinate (într-o rețea) pentru a forma un singur calculator puternic. Multe probleme,
precum Jocul portocalelor, trebuie să se petreacă în aceste rețele în mod continuu (dar
mult mai rapid!) pentru ca aceste calculatoare paralele să funcționeze.

94 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Activitatea 11
Tăblițele din piatră - Protocoale de
Comunicare în Rețea

Rezumat

Calculatoarele comunică unele cu altele în internet prin intermediul unor mesaje. Cu


toate acestea, uneori aceste mesaje se pierd. Există anumiți biți de informații pe care
putem să-i adăugăm pentru a ne asigura că ele sunt transmise. Aceste informații
alcătuiesc un protocol.

Legături cu programa școlară

✓ Matematică: Dezvoltarea logicii și gândirii


✓ Comunicare și limba română: Comunicare, ascultare interpersonală

Abilități și competențe
✓ Rezolvarea problemelor prin cooperare
✓ Raționamentul logic
Recomandare de vârstă
✓ 9 ani și peste
Materiale necesare
Fiecare elev va avea nevoie de:
✓ Multe „Tablete” nescrise
Fiecare mesager va avea nevoie de:
✓ Un set de cărți de acțiune pentru mesaje
Profesorul va avea nevoie de:
✓ Un cronometru

Licență Creative Commons 95


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Tăblițele din piatră
Prezentarea temei în clasă
În această activitate, elevii au în vedere modul în care funcționează cu succes diferite
metode de comunicare. Analizând regulile și procedurile existente, elevilor li se prezintă
protocoalele de comunicare. Lucrând după un scenariu în care joacă roluri, elevii își
testează propriul protocol operând într-un mediu nesigur, similar cu cel găsit în
comutarea pachetelor de pe Internet, în mod special TCP/IP.

Pregătirea (30 minute)


1. Mai întâi adunați cărțile. Va trebui să tipăriți cărțile de acțiune (de mai jos) și să le
decupați. Acestea formează baza jocului.
2. Apoi, decideți ce mesaje să transmită elevul. Este important ca acestea să nu fie
propoziții în limba română sau orice poate fi refăcut după structură. Ceva de genul
„1LHC255HD(RLLS” ar putea fi un mesaj potrivit, sau un număr de telefon.
3. Tipăriți exemplarele de „tablete”. Fiecare tabletă are locuri pentru șase caractere sau
numere, așa că nu puteți să includeți întregul mesaj pe tabletă. Vor fi necesare cam
30 de tablete de elev, în funcție de cât de mult timp vreți să dureze jocul.

Notă: Cărțile de acțiune sunt de trei tipuri; întârzie, nu livra, livrează. Ajustarea
raporturilor dintre acestea va reprezenta calitatea mesagerilor. Mai multe cărți
„livrează” înseamnă un mesager mai de încredere. Mai multe cărți „întârzie” și „nu
livra” înseamnă o rețea mai puțin sigură. Aceste cărți sunt analoage unui canal de
rețea/comunicare cu calculatoare.

Jocul
1. Împărțiți clasa pe perechi. Este foarte important pentru perechi să stea separat unele
de altele pentru ca să nu se vadă și să nu comunice unele cu altele. Două încăperi ar
fi ideale, dar și așezarea elevilor pe laturile opuse ale unei săli de clasă trebuie să fie
suficientă.
2. Dați unui singur elevdin fiecare pereche un mesaj pe care să-l transmită partenerului.
3. Amestecați Cărțile de Acțiune și alegeți un mesager. Puteți fi mesager și
dumneavoastră, chiar dacă ați alocat deja acest rol unui elev sau dacă aveți un
număr impar. Ar putea fi nevoie de mai mult decât un mesager dacă aveți o clasă
mare.
4. Un elev urmează acum să scrie pe tăbliță sa și să o dea mesagerului. Tăblița trebuie
să arate cel puțin numele celeilalte persoane.
5. Mesagerul ridică acum cartea de acțiune de sus, o întoarce, o citește și o folosește
pentru a decide ce să facă cu tăblița.
6. Repetați pașii 4 și 5 cu fiecare tăbliță.

După aproximativ 5 minute de haos și frustrare, elevii trebuie să-și dea seama că doar
numele nu sunt suficiente pentru un protocol. Opriți jocul și discutați despre aceasta… Care
este prima problemă pe care o au? Ordinea? Poate că ar fi cel mai bine să folosească una din
cele 6 fante pentru a introduce un număr de tabletă? Aceasta înseamnă că există mai puțin
spațiu pentru datele reale - ce înseamnă asta în ce privește numărul de tablete pe care va
trebui să le folosească acum?

După ceva mai mult timp, ei ar putea observa alte probleme, care vor trebui să fie discutate.

96 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Posibile probleme ar putea fi lipsa tăbliței, să nu știe dacă tăblița a fost livrată, să nu știe
dacă să retrimită o tăbliță. Soluțiile pe care ați putea să le sugerați ar fi să trimită înapoi
confirmări și să aștepte să le audă înainte de a retrimite o alta - aceasta înseamnă că
elevul(ii) care le primesc de asemenea are/au nevoie de tăblițe goale pentru a transmite
mesaje, iar ei vor trebui să fie de acord cu ce înseamnă răspunsurile lor cu 6 caractere
înainte să reia jocul.

Veți avea nevoie de cel puțin doi elevi pentru acest joc, dar noi recomandăm să fie cât mai
mulți posibil. Dacă aveți o clasă mare, aveți în vedere mai mulți mesageri. Din nou, discutați
aceasta cu clasa.Ce se întâmplă dacă aveți mai mulți mesageri? Ce s-a întâmplat când ați
avut un singur mesager?

Licență Creative Commons 97


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Livrează această Livrează acest mesaj
tăbliță acum după următorul

Livrează această Livrează acest mesaj


tăbliță acum după următorul

Livrează această Livrează acest mesaj


tăbliță acum după următorul

Livrează această
Nu livra acest mesaj
tăbliță acum

Livrează această
Nu livra acest mesaj
tăbliță acum

98 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Către: Către:

De la: De la:

Către: Către:

De la: De la:

Către: Către:

De la: De la:

Către: Către:

De la: De la:

Licență Creative Commons 99


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Tăblițele din piatră

Într-un oraș antic există un număr de Guvernatori foarte importanți. Acești Guvernatori decid
cum se conduce orașul și iau decizii foarte importante. Fiecare din ei locuiește în case
diferite, în întregul oraș.

Guvernatorii vor deseori să comunice, au nevoie să transmită și să recepționeze mesaje în


întregul oraș. Guvernatorii sunt identificați după numărul casei și toți au acces la un grup de
mesageri a căror sarcină este să livreze mesajele.

Singurul mod de a transmite mesajele este prin scrierea lor pe tablete mari dreptunghiulare
din piatră, pe care mesagerii le duc la destinație. Tăblițele din piatră sunt de mărime fixă și
suportă doar 6 caractere (informații) pe ele. O informație poate fi o literă sau un număr.
Mesajele sunt deseori împărțite pe un număr de tăblițe și, pentru că sunt foarte grele, ele
pot fi duse doar câte una odată.

Nu e sigur că mesagerii livrează întotdeauna mesajul corect, deoarece sunt uituci și leneși.
Deseori, ei se opresc și fac pauze lungi în timpul orelor de lucru și chiar încearcă să evadeze
din oraș.

Guvernatorii vor să găsească un mod în care să facă sigură comunicarea, vor să elaboreze
un set de reguli pe care toți să le urmeze. Făcând aceasta, ei pot spune dacă mesajul a fost
livrat sau nu și dacă mesajul a fost corect. Guvernatorii au hotărât deja că destinația trebuie
să fie scrisă pe tabletă.

În grupurile voastre, aveți sarcina să elaborați regulile pe care Guvernatorii le vor folosi
pentru a comunica.

100 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Ce importanță are?
Pe internet, datele sunt împărțite pe pachete pentru a fi transportate. Cu toate
acestea, canalele prin care circulă aceste pachete nu sunt întotdeauna sigure.
Pachetele individuale sunt uneori deteriorate, se pierd sau își schimbă ordinea.

În Tăblițele din piatră, tabletele sunt pachete și conținutul acestora sunt datele.
Pachetele conțin atât date, cât și informații de antet. Volumul acestor informații de
antet afectează modul în care datele pot fi transferate - astfel încât trebuie să se
ajungă la un echilibru, deoarece pachetele sunt de mărime finită.

Elevii vor afla că vor trebui să schimbe unele din datele incluse pentru informare, cum
ar fi numărul pachetului și totalul pachetelor, sau dacă pachetul este sau nu un
pachet de confirmare. Datorită faptului că aceste informații ocupă casete de date, în
total vor fi necesare mai multe pachete.

Protocoalele de Internet, cum ar fi TCP și UDP echilibrează acești factori pentru a


crea un transfer sigur și eficient al datelor.

Această este adaptată din una disponibilă prin intermediul proiectului „Informatica în
esență” (csi.dcs.gla.ac.uk).

Licență Creative Commons 101


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
102 Licență Creative Commons
© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Partea III
Spunem calculatoarelor ce să facă
- Proceduri de reprezentare

Licență Creative Commons 103


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Spunem calculatoarelor ce să facă
Calculatoarele urmează instrucțiuni - milioane de instrucțiuni în fiecare secundă. Pentru
a spune unui calculator ce să facă, tot ce trebuie să faci este să-i dai instrucțiunile
corecte. Dar asta nu e așa de ușor precum sună!

Când ni se dau instrucțiuni, noi ne folosim de simțuri pentru a înțelege ce înseamnă


acestea. Dacă cineva spune „intră pe ușă”, de fapt nu ni se spune să spargem ușa - ci
să trecem de pe o parte pe alta a ușii, dacă e necesar chiar deschizând-o mai întâi!
Calculatoarele sunt diferite. Într-adevăr, când sunt atașate la roboți mobili, trebuie să
fii atent și să iei măsuri de prevedere pentru a nu le face să provoace daune și pericole
prin interpretarea instrucțiunilor literă cu literă - ca încercarea de a trece prin uși.
Lucrul cu ceva care se supune instrucțiunilor cu exactitate, fără „a gândi”, necesită o
obișnuință de a face așa ceva.

Cele două activități din această secțiune ne dau o idee despre ceea ce înseamnă să
comunici cu mașinile, prin folosirea unui set fix de instrucțiuni.

Prima ne va învăța despre o „mașină” pe care calculatoarele o folosesc pentru a


recunoaște cuvinte, numere sau șiruri de simboluri cu care calculatorul poate lucra.
Aceste „mașini” sunt denumite automate în stare finită.

Cea de-a doua activitate ne prezintă cum putem comunica cu calculatoarele. Un bun
programator trebuie să învețe cum să-i spună calculatorului ce să facă, folosind un set
fix de instrucțiuni care sunt interpretate literal. Lista de instrucțiuni reprezintă
programul. Există o mulțime de diferit limbaje de programare pe care un programator
le poate alege pentru a scrie aceste instrucțiuni, dar noi vom folosi un simplu limbaj
care poate fi folosit fără calculator.

104 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Activitatea 12
Căutătorii de comori - Automate în stare finită
Rezumat
Programele de calculator deseori trebuie să proceseze o succesiune de simboluri, cum
ar fi literele sau cuvintele dintr-un document sau chiar textul programului unui alt
calculator. Informaticienii folosesc deseori un automat în stare finită pentru a face
aceasta. Un automat în stare finită (FSA) urmează un set de instrucțiuni pentru a
vedea dacă calculatorul va recunoaște cuvântul sau șirul de simboluri. Noi vom livra cu
ceva echivalent unui FSA - hărți cu comori!

Legături cu programa școlară


✓ Matematică: Dezvoltarea logicii și gândirii - folosirea cuvintelor și simbolurilor
pentru a descrie și continua modelele
✓ Studii sociale
✓ Comunicare și limba română
Abilități și competențe
✓ Citirea unor hărți simple
✓ Recunoașterea modelelor
✓ Logică
✓ Urmarea instrucțiunilor
Recomandare de vârstă
✓ 9 ani și peste
Materiale necesare
Veți avea nevoie:
✓ Un set de cărți cu insule (instrucțiunile trebuie să fie ținute ascunse de cei care
încearcă să deseneze harta!)
Vezi secțiunea „Materiale de tipărit și multiplicat”: Cărți cu insule (pagina 112 și în
continuare), pe care le și decupați.
Îndoiți de-a lungul liniei punctate și lipiți, astfel încât fața cărții să aibă denumirea
insulei și pe spate să fie instrucțiunile.
Fiecare elev va avea nevoie de:
✓ Fișa de lucru: Găsiți drumul către bogățiile de pe Insula Comorilor (pagina 111)
✓ Pix sau creion
Există activități opționale de extindere, pentru care fiecare elev va avea nevoie de:
✓ Fișa de lucru: Insulele comorilor (pagina 117)
✓ Fișa de lucru: Jocul cu moneda misterioasă (pagina 118)

Licență Creative Commons 105


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Insula Comorilor
Prezentare
Obiectivul vostru este să găsiți Insula Comorilor. Nave de pirați prietenoase navighează
de-a lungul unui set fix de trasee între insulele din această parte a lumii, oferind
excursii pentru călători. Fiecare insulă are două nave care pleacă, A și B, pe care le
puteți alege pentru a călători. Trebuie să găsiți cel mai bun traseu către Insula
Comorilor. La fiecare insulă la care ajungeți, puteți întreba despre nava A sau B (nu
ambele). Persoana de la insulă vă va spune unde vă va duce nava voastră în
continuare, dar pirații nu au o hartă a tuturor insulelor disponibile. Folosiți harta
voastră pentru a ști încotro mergeți și pe care ați călătorit.

Demonstrație
(Notă: Aceasta este o hartă diferită de cea de la activitatea respectivă.)

Folosind o tablă, desenați o schiță a celor trei insule, după cum se arată aici:

Copiați cele trei cărți pe următoarele două pagini și cereți unui elev să țină fiecare
carte. Rețineți că traseele de pe aceste cărți sunt diferite de cele din activitatea de
bază.

Începând de la Insula Piraților, întrebați de nava A. Elevul trebuie să vă îndrume către


Golful Epavei. Marcați traseul pe hartă. La Golful Epavei, întrebați de nava A din nou.
Veți fi îndrumați înapoi către Insula Piraților. Marcați aceasta pe hartă. De această
dată, întrebați de nava B. Marcați aceasta pe hartă. Acest traseu merge către Insula
Mortului, la care vă veți bloca!

106 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Harta finală trebuie să arate ca aceasta:

Licență Creative Commons 107


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Cărți de joc pentru activitatea demonstrativă

A→ A→

B→ B→

108 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Cărți de joc pentru activitatea demonstrativă

Nicio navă nu pleacă de


la Insula Mortului!

Licență Creative Commons 109


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Activitatea
Alegeți 7 elevi care să fie „insule”. Elevii vor ține cărțile care reprezintă insula lor, cu
instrucțiuni secrete pe spate. Aranjați-i la întâmplare în jurul camerei sau al terenului
de joacă. Restul elevilor primesc harta goală și trebuie să navigheze pe un traseu de la
Insula Piraților la Insula Comorilor, marcându-l cu atenție pe hărțile lor. (O bună idee
este să trimiteți elevii câte unul odată, astfel încât să nu audă traseele dinainte.)

Cei care termină repede: Încercați să găsiți mai mult decât un singur traseu.

Harta completă arată astfel:

Discuție ulterioară
Care este cea mai rapidă rută? Care ar fi cea mai înceată rută? Unele rute pot implica
bucle. Puteți găsi un astfel de exemplu? (De exemplu, BBBABAB și BBBABBABAB,
ambele duc la Insula Comorilor.)

110 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Fișa de lucru: Găsește drumul către bogățiile din
Insula Comorilor

Licență Creative Commons 111


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Materiale de tipărit și multiplicat: Cărțile de joc cu
insule (1/4)

A→ A→

B→ B→

112 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Materiale de tipărit și multiplicat: Cărțile de joc cu
insule (2/4)

A→ A→

B→ B→

Licență Creative Commons 113


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Materiale de tipărit și multiplicat: Cărțile de joc cu
insule (3/4)

A→ A→

B→ B→

114 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Materiale de tipărit și multiplicat: Cărțile de joc cu
insule (4/4)

Felicitări!

Licență Creative Commons 115


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Automate în stare finită
Un alt mod de a desena o hartă este acesta:

Insulele sunt prezentate ca cercuri numerotate, iar insula finală (cu comoara) are cerc
dublu. Pe ce trasee putem călători pentru a ajunge la insula finală? (Este bine să se
exploreze acestea ținând cont de exemple: de exemplu „A” ajunge în starea cu dublu
cerc? „AA”? „ABA”? „AABA”? Care este modelul general?)

Soluții:
Harta (a) se va termina la cercul dublu (insula 2) numai dacă succesiunea are un
număr impar de A-uri (de exemplu, AB, BABAA, sau AAABABA).

Harta (b) ajunge la cercul dublu numai cu o succesiune alternativă de A-uri și B-uri
(AB, ABAB, ABABAB, ...).

Harta (c) necesită ca succesiunea să conțină cel puțin un B (singurele succesiuni


nepotrivite sunt A, AA, AAA, AAAA, ...).

116 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Fișa de lucru: Insulele comorilor
Poți să-ți ascunzi bine comoara îngropată? Cât de mult poți îngreuna găsirea comorii?
Este timpul să-ți alcătuiești propria hartă!

1. Iată o versiune mai complicată a aceeași idei de a reprezenta o hartă. Această hartă
este aceeași ca și pentru exercițiul anterior. Informaticienii folosesc acest mod rapid și
ușor de realizare a traseelor pentru modelele lor.

Desenați propriul plan de bază ca acesta, astfel încât să puteți vedea clar traseele pe
care navele voastre pirați să se deplaseze și apoi realizați propriile hărți goale și cărți
de joc cu insule. Care este cea mai eficientă succesiune de trasee pentru a ajunge la
Insula Comorilor?

2. Cât de bine pot prietenii voștri să urmeze harta? Dați-le o succesiune de A-uri și B-uri și
vedeți dacă pot ajunge la insula corectă.

Puteți alcătui o varietate de jocuri și șarade bazate pe această idee de automat în stare
finită.

3. Iată un mod de a construi propoziții prin alegerea unor trasee la întâmplare pe hartă și
notând cuvintele care sunt întâlnite.

Acum încercați aceeași idee pentru voi înșivă. Poate chiar ați putea alcătui o povestire hazlie!

Licență Creative Commons 117


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Fișa de lucru: Jocul monedei misterioase
Câțiva prieteni au descărcat un joc de pe Internet, în care un robot arunca o monedă,
iar ei trebuiau să ghicească dacă urma să fie cap sau pajură. La început, jocul arăta
foarte ușor. Aveau cel puțin șansa 50/50 de a câștiga - sau așa credeau ei! Însă după
un timp, au început să devină suspicioși. Părea să fie un model în aruncările monedei.
Era jocul falsificat? Sigur nu! S-au decis că cerceteze. Vlad a notat rezultatele
următoarelor încercări la joc și iată ce au găsit: (h = cap, t = pajură)

hhthhthhhtthhhhtthttthhhhhthhhttthhhttthhhhhhtthtt
ttthtthttthhhtthhhthhhhhhhhhtthhhtttthhhhhttttttt

Puteți găsi un model predictibil?

Există o foarte simplă „hartă”, care va descrie succesiunea de aruncări ale monedei.
Vedeți dacă puteți să o aflați. (Indicație ajutătoare: are doar 4 „insule”).

118 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Ce importanță are?
Automatele în stare finită sunt folosite în informatică pentru a ajuta un calculator să
proceseze o succesiune de caractere sau evenimente.

Un exemplu simplu când formați un număr de telefon și primiți un mesaj care spune
„Apasă 1 pentru a … Apasă 2 pentru a … Apasă 3 pentru a vorbi cu un operator
uman”. Apăsările de tastă sunt intrări pentru un automat în stare finită de la celălalt
capăt al liniei telefonice. Dialogul poate fi destul de simplu sau foarte complex. Uneori,
sunteți ținuți în cerc deoarece există o anumită buclă în automatul în stare finită. Dacă
se întâmplă aceasta, este o eroare în proiectarea sistemului - și poate fi extrem de
frustrantă pentru cel care sună!

Un alt exemplu este când primiți bani numerar de la un automat bancar. Programul din
calculatorul automatului vă conduce printr-o succesiune de evenimente. În program,
toate succesiunile posibile sunt ținute ca un automat în stare finită. Fiecare tastă
apăsată trece automatul într-o altă stare. Unele stări au instrucțiuni pentru calculator,
cum ar fi „eliberează 100 de lei numerar” sau „tipărește o chitanță” sau „scoate cartea
de credit”.

Unele programe de calculator chiar lucrează cu propoziții în limba engleză folosind hărți
ca cea de la pagina 117. Ele pot atât să genereze propoziții ele însele, cât și să
proceseze propoziții pe care le introduce utilizatorul prin tastare. În anii 1960, un
informatician a scris un faimos program denumit „Eliza” (după Eliza Dolittle), care avea
conversații cu oamenii. Programul pretindea să fie un psihoterapeut și a venit cu
întrebări îndrumătoare precum „Spune-mi despre familia ta” și „Continuă”. Cu toate că
nu „înțelegea” nimic, a fost suficient de plauzibil - și utilizatorii săi umani au fost
suficient de creduli, încât unii oameni chiar au crezut că vorbeau cu un psihoterapeut
uman.

Deși calculatoarele nu sunt chiar foarte bune la a înțelege limbajul natural, ele pot
procesa imediat limbajele artificiale. Un tip important de limbaj artificial este limbajul
de programare. Calculatoarele folosesc automate în stare finită pentru a citi
programele și a le traduce în formă de instrucțiuni elementare pentru calculator, care
pot fi apoi „executate” direct de către calculator.

Licență Creative Commons 119


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Soluții și indicații ajutătoare
Jocul monedei misterioase (pagina 118)
Jocul cu moneda misterioasă folosește următoarea hartă de aruncare a monedelor:

Dacă o urmați, veți vedea că primele două aruncări de monedă din fiecare trei au
același rezultat.

120 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Activitatea 13
Ordine de marș - Limbaje de programare
Rezumat
Calculatoarele sunt de obicei programate cu folosirea unui „limbaj” care este un
vocabular limitat de instrucțiuni care pot fi executate. Unul dintre cele mai frustrante
lucruri în legătură cu programarea este că aceste calculatoare execută întotdeauna
instrucțiunile la literă, chiar dacă produc un rezultat haotic. Această activitate oferă
elevilor o oarecare perspectivă asupra programării.

Legături cu programa școlară


✓ Comunicare și limba română: Ascultare interpersonală
Abilități și competențe
✓ A da și a urma instrucțiuni.
Recomandare de vârstă
✓ 7 ani și peste
Materiale necesare
Veți avea nevoie:
✓ Cărți cu imagini, cum ar fi cele arătate la pagina următoare.
Fiecare elev va avea nevoie de:
✓ Creion, hârtie și riglă

Licență Creative Commons 121


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
122 Licență Creative Commons
© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Ordine de marș
Prezentarea temei în clasă
Discutați dacă ar fi bine dacă oamenii ar urma instrucțiunile exact. De exemplu, ce s-ar
întâmpla dacă ați arăta spre o ușă închisă și ați spune „Treci prin acea ușă”?

Calculatoarele funcționează urmând liste de instrucțiuni și ele fac exact ceea ce spun
instrucțiunile - chiar dacă acestea nu au sens!

Exemplu demonstrativ
Vedeți dacă elevii pot desena imaginea din aceste instrucțiuni.

1. Desenați un punct în centrul paginii.

2. Începând din colțul din stânga sus al paginii, trasați o linie dreaptă prin punct, care să
se termine în colțul din dreapta jos.

3. Începând din colțul din stânga jos al paginii, trasați o linie prin punct, care să se
termine în colțul din dreapta sus.

4. Scrieți-vă numele în triunghiul din centrul părții din stânga a paginii.

Rezultatul trebuie să arate astfel:

Licență Creative Commons 123


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Activități
Alegeți un elev și dați-i o imagine (cum ar fi exemplele de la pagina 122). Elevul
descrie imaginea pentru ca ceilalți elevi din clasă să o reproducă. Elevii pot pune
întrebări pentru a clarifica instrucțiunile. Obiectivul este să vedem cât de repede și
corect poate fi exercițiul finalizat.

Repetați exercițiul, dar de această dată, elevii nu au voie să pună întrebări. Cel mai
bine este să se folosească o imagine mai simplă pentru acest exercițiu, deoarece elevii
se pot pierde foarte repede.

Acum încercați exercițiul cu instruirea elevului ascuns în spatele unui ecran, fără a
permite niciun fel de întrebări, astfel încât singura comunicare să fie sub formă de
instrucțiuni.

Arătați că această formă de comunicare este cel mai probabil ca cea pe care
programatorii de calculatoare o au când scriu programe. Ei dau un set de instrucțiuni
calculatorului și nu află efectul instrucțiunilor decât mai târziu.

Cereți elevilor să deseneze o imagine și notați propriile lor instrucțiuni. Încercați cu ei în


perechi sau ca și clasă întreagă.

Variații
1. Scrieți instrucțiuni pentru a realiza o săgeată din hârtie.

2. Scrieți instrucțiuni despre cum se ajunge la un loc misterios din jurul școlii folosind
astfel de instrucțiuni precum „Mergi înainte x metri”, „cotește la stânga” (90 de grade),
și „cotește la dreapta” (90 de grade).

Elevii trebuie să testeze și să-și cizeleze instrucțiunile până când acestea au efectul
dorit.

3. Jocul orbilor. Acoperiți ochii unui elev și cereți celorlalți elevi să îl dirijeze în cameră.

124 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Ce importanță are?
Calculatoarele funcționează urmând o listă de instrucțiuni, denumită program, care a
fost scris pentru a executa o anumită sarcină. Programele sunt scrise în limbaje care au
fost special proiectate, cu un set limitat de instrucțiuni, care să spună calculatoarelor ce
să facă. Unele limbaje sunt mai potrivite pentru anumite scopuri decât alte limbaje.

Indiferent de ce limbaj folosesc, programatorii trebuie să fie atenți la specificarea


exactă a ceea ce urmează calculatorul să facă. Spre deosebire de ființele umane, un
calculator va executa instrucțiunile la literă, chiar dacă acestea
sunt evident ridicole.

Este important ca programele să fie bine scrise. O mică eroare


poate provoca o mulțime de probleme. Imaginați-vă
consecințele unei erori din programul unui calculator la lansarea
unei navete spațiale, într-o centrală nucleară sau la semnalele
de pe o linie de cale ferată! Erorile sunt denumite de obicei
„bugs”, numele fiind inspirat de o molie care a fost îndepărtată (“debugged”) dintr-un
releu electric al unei mașini electronice de calcul, undeva pe la începutul anilor 1940.

Cu cât este mai complex programul, cu atât mai multe erori sunt probabile. Aceasta a
devenit o problemă majoră când SUA lucrau la programul Inițiativa de Apărare
Strategică („Războiul Stelelor”), un sistem controlat de calculator care a fost dezvoltat
să formeze o apărare impenetrabilă împotriva unui atacul nuclear. Unii informaticieni
au pretins că acesta nu ar putea funcționa niciodată din cauza complexității și
nesiguranței inerente a software-ului necesar. Software-ul trebuia să fie testat cu
atenție pentru a găsi cât mai multe erori posibil și nu ar fi fost fezabil să se testeze
acest sistem deoarece ar fi trebuit să se lanseze o rachetă spre Statele Unite pentru a
fi siguri că funcționează!

Licență în baza Creative Commons 125


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
126 Licență Creative Commons
© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Partea IV
Probleme foarte dificile –
Imposibil de rezolvat
Imposibil de rezolvat
Există probleme care sunt prea grele chiar și pentru calculatoare? Da. Vom vedea în
Activitatea 20 că până și efectuarea unei conversații ușoare este ceva ce calculatoarele
nu pot face.Nu pentru că nu pot vorbi, ci pentru că nu pot înțelege sau gândi lucruri
complexe. În această secțiune, vom analiza probleme în care este ușor să spui
calculatorului ce să facă – prin scrierea unui program - dar calculatorul nu poate face
ce vrem noi deoarece ar dura mult prea mult: milioane de secole probabil. Indiferent
de cât de modern și performant ar fi computerul, procesarea tot ar dura foarte mult
timp. Asta e ceea ce numim o problemă grea - una în care durează mult mai mult
decât o viață de om pentru ca cel mai rapid calculator imaginabil să ajungă la o soluție!

Activitățile din Partea II despre algoritmi v-au arătat cum să găsiți modalități de a face
ca programele de calculator să ruleze mai eficient. În această secțiune, analizăm
problemele pentru care încă nu sunt cunoscute soluții eficiente, probleme pentru care
calculatoarele au nevoie de milioane de secole să le rezolve. Și vom întâlni ceea ce este
cu siguranță cel mai mare mister din informatica de azi: că nimeni nu știe dacă există
un mod mai eficient de rezolvare a acestor probleme! Se poate să fie doar faptul că
nimeni nu a arătat încă cea mai bună soluție sau poate că ea nici nu există. Nu știm
care e varianta reală. Și asta nu e tot. Există mii de probleme care, cu toate că arată
complet diferit, sunt echivalente în sensul că, dacă s-ar găsi o metodă eficientă pentru
a o rezolva, aceasta s-ar transforma într-o metodă eficientă pentru a le rezolva pe
toate celelalte.

Pentru profesori

Există trei activități în această secțiune. Prima implică colorarea hărților și numărarea a
câte culori sunt necesare pentru a face ca țările învecinate să fie diferite. A doua
necesită abilitatea de a folosi o simplă hartă a străzilor și implică plasarea tonetei de
înghețată la colțul străzii, astfel încât nimeni să nu trebuiască să meargă prea departe
pentru a cumpăra o înghețată. A treia este o activitate exterioară, care folosește o
sfoară și țăruși pentru a explora cum să faci scurte rețele care leagă un set de puncte.

Activitățile prezintă situații concrete, dar complexe. Sunt probleme ușor de formulat,
dar care pot deveni incredibil de greu de rezolvat. Sunt întrebări practice care apar în
activitățile de fiecare zi, cum ar fi cartografia, stabilirea unui orar de școală și
construirea drumurilor. Fundamentul computațional se bazează pe o noțiune denumită
„completare NP”, care este explicată în secțiunile Ce importanță are? la sfârșitul fiecărei
activități. Cu toate că activitățile însele pot fi abordate în orice ordine, aceste secțiuni
sunt destinate să fie citite în ordinea în care apar. În momentul în care ajungeți la
sfârșit, veți avea o idee clară despre cea mai importantă întrebare deschisă din
informatica contemporană.

De exemplu, majoritatea codurilor criptografice se bazează pe imposibilitatea de tratare


a unor probleme, iar un infractor care a reușit să vină cu o soluție eficientă ar putea
avea o zi în teren decodificând secrete și vânzându-le sau, mai simplu, doar efectuând
tranzacții bancare false. Vom analiza aceste lucruri în Partea V - Criptografie.

128 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Activitatea 14
Săracul cartograf - Colorarea graficelor
Rezumat
Multe probleme de optimizare implică situații în care anumite evenimente nu pot avea
loc în același timp, sau în care anumiți membri dintr-un set de obiecte nu se pot
învecina. De exemplu, oricine a încercat să programeze orarul claselor sau al adunărilor
se va fi întâlnit cu problema satisfacerii nevoilor și limitărilor pentru toate persoanele
implicate. Multe din aceste dificultăți sunt cristalizate în problema colorării hărții, în
care culorile trebuie să fie alese pentru țările de pe hartă în așa fel încât țările
învecinate să fie de culori diferite. Această activitate este despre această problemă.
Legături cu programa școlară
✓ Matematică: Numerele – Explorarea numerelor în alte baze. Reprezentarea numerelor
în bază doi.
✓ Matematică: Algebra – Continuarea unui model secvențial și descrierea unei reguli
pentru acest model. Modele și relații în puterile lui doi.
Abilități și competențe
✓ Rezolvarea problemelor.
✓ Raționamentul logic.
✓ Proceduri algoritmice și complexitate.
✓ Comunicarea ideilor esențiale.
Recomandare de vârstă
✓ 7 ani și peste
Materiale necesare
✓ o tablă albă sau o suprafață de scris similară.
Fiecare elev va avea nevoie de:
✓ un exemplar din una sau mai multe fișe de lucru,
✓ obiecte mici colorate, pentru delimitare (de exemplu jetoane sau piese de poker), și
✓ patru creioane de culori diferite (sau culori, stilou, etc.)

Licență în baza Creative Commons 129


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Colorarea graficelor

Prezentare
Această activitate este centrată pe o poveste în care elevilor li s-a cerut să ajute un
cartograf sau realizator de hărți, care colorează țările pe o hartă. Nu contează ce
culoare are o țară, atâta timp cât este diferită pentru țările învecinate.

De exemplu, această hartă arată patru țări. Dacă


colorăm Northland cu roșu, atunci Westland și Eastland
nu pot fi roșii, deoarece se învecinează cu Northland și
ar fi greu de distins. Am putea colora Westland în verde
și este de asemenea acceptabil să colorăm Eastland în
verde deoarece nu are graniță comună cu Westland.
(Dacă două țări se ating numai într-un singur punct, nu
contează ca și cum ar avea graniță comună și deci pot
avea aceeași culoare.) Southland poate fi colorată în
roșu și astfel terminăm folosind numai două culori
pentru hartă.

În povestea noastră, cartograful este sărac și nu-și poate permite multe creioane
colorate, deci ideea este să utilizeze cât mai puține culori posibil.

Discuție
Descrieți problema la care vor lucra elevii, demonstrând procesul de colorare pe o
tablă.

Dați o copie a primei fișe de lucru. Această hartă poate fi colorată corect folosindu-se
numai două culori. Cu toate că limitarea numărului de culori la doar două ar putea
suna destul de problematic, sarcina este chiar simplă în comparație cu hărțile care
necesită mai multe culori, deoarece există foarte puțin de ales ce culoare poate fi
fiecare țară.

130 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Cereți elevilor să încerce să coloreze harta cu numai două culori. În acest proces, ei pot
descoperi regula „trebuie să fie”: după ce o țară este colorată, orice țară învecinată
trebuie să fie de culoare opusă. Această regulă este aplicată repetat până când toate
țările sunt colorate. Cel mai bine este dacă elevii pot descoperi această regulă pentru ei
înșiși, mai mult decât să li se spună, deoarece le va da o mai bună înțelegere a esenței
procesului.

În timp ce elevii completează fiecare exercițiu, li se poate da următoarea fișă de


încercat.

Elevii pot de asemenea descoperi că este mai bine să folosească marcatori, cum ar fi
jetoane colorate, în loc de colorarea directă a țărilor, deoarece aceasta le ușurează
situația în cazul în care se răzgândesc.

Pentru elevii mai mari, cereți-le să explice cum știu ei că au găsit numărul minim de
culori. De exemplu, cel puțin trei culori sunt necesare pentru această hartă, deoarece
include un grup de trei țări (cele mai mari trei), fiecare având graniță comună cu
celelalte două.

Dacă un elev termină toate fișele mai repede, cereți-i să conceapă o hartă care
necesită cinci culori diferite. S-a dovedit că orice hartă poate fi colorată cu numai patru
culori, deci această sarcină îi va ține ocupați ceva timp! În experiența noastră, elevii
vor găsi repede hărți despre care ei cred că necesită cinci culori, dar bineînțeles că este
întotdeauna posibil să găsească o soluție cu patru culori pentru hărțile lor.

Licență în baza Creative Commons 131


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Fișa de lucru: Colorarea graficelor 1

Colorați țările de pe această hartă cu cât mai puține culori posibil, dar asigurați-vă să
nu existe țări învecinate colorate la fel.

132 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Fișa de lucru: Colorarea graficelor 2
Colorați țările de pe această hartă cu cât mai puține culori posibil, dar asigurați-vă să
nu existe țări învecinate colorate la fel.

Licență în baza Creative Commons 133


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Fișa de lucru: Colorarea graficelor 3
Colorați țările de pe această hartă cu cât mai puține culori posibil, dar asigurați-vă să
nu existe țări învecinate colorate la fel.

134 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Fișa de lucru: Colorarea graficelor 4
Colorați țările de pe această hartă cu cât mai puține culori posibil, dar asigurați-vă să
nu existe țări învecinate colorate la fel.

Licență în baza Creative Commons 135


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Variante și extinderi

Există un mod simplu de a construi


hărți care necesită numai două culori,
după cum se arată aici. Această hartă
a fost desenată prin suprapunerea de
curbe închise (linii al căror început se
unește cu sfârșitul). Puteți desena
orice număr de astfel de curbe, de
orice formă, una peste alta, și veți
ajunge întotdeauna la o hartă care
poate fi colorată cu două culori. Elevii
pot experimenta crearea acestui tip
de hartă.

Patru culori sunt întotdeauna


suficiente pentru a colora o hartă
desenată pe o foaie de hârtie sau pe
o sferă (adică un glob). Cineva s-ar
putea întreba câte culori sunt
necesare pentru hărțile desenate pe
suprafețe mai ciudate, forma unei
gogoși inelare. În acest caz, ar fi
nevoie de cinci culori și cinci este
întotdeauna suficient. Elevii ar putea
experimenta aceasta.

Există multe alte variații distractive ale problemei colorării hărții, care duc la direcții în
care sunt încă multe necunoscute. De exemplu, dacă eu colorez o hartă pe o foaie de
hârtie a mea, atunci știu că dacă lucrez inteligent, patru culori vor fi suficiente. Dar să
presupunem că în loc de a lucra singur, lucrez cu un partener incompetent (sau chiar
adversar) și noi alegem pe rând culoarea pentru țări. Presupunem că eu lucrez
inteligent, în timp ce partenerul meu lucrează numai „legal” când îi vine rândul a
colorat harta. Câte creioanele trebuie să fie pe masă pentru ca eu, în deșteptăciunea
mea să pot să mă descurc cu mișcările legale ale partenerului meu, dar nu foarte
inteligente (sau chiar subversive)? Numărul maxim nu este cunoscut! În 1992, s-a
dovedit că 33 de creioane vor fi întotdeauna suficiente, iar în 2008 acest lucru s-a
perfecționat, dovedindu-se că 17 ar fi suficiente, dar încă nu știm că atâtea este de
fapt întotdeauna necesar. (Experții bănuiesc că mai puțin de 10 culori sunt suficiente.)
Elevii s-ar putea bucura jucând această situație, care poate fi pusă în practică drept un
joc cu două persoane, în care încerci să maximizezi numărul de culori de care are
nevoie rivalul.

Într-o altă variantă de colorare a hărții, cunoscută sub numele de colorare imperială,
începem cu două hărți diferite pe două foi de hârtie care au același număr de țări.
Fiecare țară de pe una dintre hărți (să zicem, Pământul) este în pereche cu exact o
țară de pe cealaltă hartă (care ar putea reprezenta coloniile de pe Lună). În plus față
de cerința de colorare

136 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
obișnuită cu diferite culori pentru țările care au graniță comună (pentru ambele hărți),
adăugăm cerința că fiecare țară de pe Pământ trebuie să fie colorată la fel ca și colonia
ei de pe Lună. De câte culori avem nevoie pentru această problemă? Răspunsul este
necunoscut în prezent.

Licență în baza Creative Commons 137


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Ce importanță are?
Problema colorării hărții pe care am explorat-o în această activitate este esențială
pentru a afla numărul minim de culori - două, trei sau patru - care sunt necesare
pentru a colora o anumită hartă. Bănuiala că orice hartă poate fi colorată folosindu-se
numai patru culori a fost formulată în 1852, dar nu a fost dovedită până în 1976.
Informatica este plină de probleme nerezolvate, iar cunoașterea faptului că teorema
celor patru culori a fost dovedită după mai mult de 120 de ani de atenție din partea
cercetătorilor este o încurajare pentru cei care lucrează la alte probleme a căror soluție
le-a scăpat timp de decenii.

Colorarea hărții face parte dintr-o


clasă generală de probleme cunoscută
ca și „colorarea graficelor”. În
informatică, un grafic este o
reprezentare abstractă a relațiilor,
după cum se arată aici.

După cum se menționează la


Activitatea 9 despre Orașul cu noroi,
termenul „grafic” este folosit într-un
sens diferit în matematică pentru a
însemna un tabel care afișează datele numerice, cum ar fi un grafic de bare, dar
graficele pe care le folosesc informaticienii nu au legătură cu acestea. În informatică,
graficele se desenează folosindu-se cercuri sau puncte mari, denumite tehnic „noduri”,
pentru a desemna obiecte, cu linii între ele pentru a indica un fel de raporturi între
obiecte. Graficul de mai sus se întâmplă să reprezinte harta de la începutul acestei
activități. Nodurile reprezintă țările, iar o linie între două noduri indică faptul că cele
două țări au graniță comună. Pe grafic, regula de colorare este că nodurilor
interconectate trebuie să li se aloce aceeași culoare. Spre deosebire de o hartă, nu
există limită pentru numărul de culori care pot fi necesare într-un grafic general,
deoarece multe limitări diferite pot fi trasate ca linii de interconectare, în timp ce
natura bidimensională a hărților limitează posibilele aranjamente. „Problema colorării
graficelor” urmează să găsească numărul minim de culori care sunt necesare pentru un
anumit grafic.

În graficul din dreapta, nodurile


corespund cu materiile dintr-o
școală. O linie între două
materii indică faptul că cel puțin
un elev studiază ambele
materii, și deci nu trebuie să fie
încadrați în orar pentru aceeași
perioadă. Folosind această
reprezentare, problema găsirii
unui orar funcțional folosind
numărul minim de perioade
este echivalentă cu problema
colorării, în care diferite culori
corespund unor perioade
diferite. Algoritmii de colorare a graficelor sunt de mare interes în informatică și sunt

138 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
folosiți pentru multe probleme din lumea reală, cu toate că probabil nu sunt niciodată
folosiți pentru colorarea hărților! – cartograful nostru sărac este doar o ficțiune.

Există practic mii de alte probleme bazate pe grafice. Unele sunt descrise în altă parte
în această carte, cum ar fi arborele cu deschidere minimă din Activitatea 9 și seturile
dominante din Activitatea 15. Graficele sunt o modalitate foarte generală de a
reprezenta datele și pot fi folosite pentru a reprezenta tot felul de situații, cum ar fi o
hartă a drumurilor și intersecțiilor, a legăturilor dintre atomi într-o moleculă, a traseelor
pe care mesajele le pot avea printr-o rețea de calculatoare, a conexiunilor dintre
componentele de pe o placă de cablaj imprimat și a relațiilor dintre sarcinile de
executat în cadrul unui mare proiect. Din acest motiv, problemele care implică
reprezentări grafice i-au fascinat mult timp pe informaticieni.

Multe din aceste probleme sunt foarte dificile - nu dificile din punct de vedere
conceptual, ci dificile deoarece durează mult timp rezolvarea lor. De exemplu, pentru a
determina cea mai eficientă soluție pentru problema colorării unui grafic de mărime
moderată - cum ar fi găsirea celei mai bune modalități de a realiza orarul unei școli cu
treizeci de profesori și 800 de elevi – ar putea dura ani, chiar secole, pentru un
calculator care folosește cel mai bun algoritm cunoscut. Problema ar fi deja
nerelevantă în momentul în care s-ar găsi soluția - și aceasta presupunând că acel
calculator nu se strică și nu se uzează înainte de a termina! Astfel de probleme sunt
rezolvate numai în practică, deoarece suntem mulțumiți să lucrăm cu soluții
suboptimale, și totuși foarte bune. Dacă ar fi să insistăm să putem garanta că soluția
găsită a fost chiar cea mai bună, problema ar fi complet netratabilă.

Cantitatea de timp necesar unui calculator pentru a rezolva problemele de colorare


crește exponențial cu mărimea graficului. Să considerăm problema colorării hărții.
Aceasta poate fi rezolvată încercând toate modalitățile posibile de a colora harta. Știm
că cel mult patru culori sunt necesare, deci trebuie să evaluăm fiecare combinație de
repartizare a celor patru culori pe țări. Dacă există n țări, există 4n combinații. Acest
număr crește foarte rapid: fiecare țară care se adaugă multiplică numărul de combinații
cu patru, deci se înmulțește cu patru timpul de rezolvare. Chiar dacă a fost inventat un
calculator care ar putea rezolva problema pentru, să zicem, cincizeci de țări în doar o
oră, adăugarea încă a unei țări ar necesita patru ore, și am avea nevoie numai să
adăugăm zece alte țări pentru a face să fie necesar calculatorului peste un an pentru a
găsi soluția. Acest fel de problemă nu va dispărea deoarece noi continuăm să inventăm
calculatoare din ce în ce mai rapide!

Colorarea graficelor este un bun exemplu de problem a cărei timp de rezolvare crește
în mod exponențial. Pentru cazurile foarte simple ale problemei, cum ar fi micile hărți
folosite în această activitate, este destul de ușor să se găsească soluția optimă, dar
imediat ce crește numărul de țări peste zece, problema devine foarte dificilă de
rezolvat manual, iar cu o sută sau mai multe țări, chiar un calculator poate avea nevoie
de mulți ani pentru a încerca toate modalitățile posibile de a colora harta pentru a o
alege pe cea optimă.

Multe probleme din viața reală sunt ca aceasta, dar trebuie să fie oricum rezolvate.
Informaticienii folosesc metode care dau răspunsuri bune, dar nu perfecte. Aceste
tehnici euristice sunt deseori foarte aproape de optim, foarte rapide de calculat și dau
răspunsuri care sunt suficient de aproape pentru toate scopurile practice.

Licență în baza Creative Commons 139


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Bibliografie suplimentară
Harel discută teorema celor patru culori, inclusiv istoricul acesteia, în Algoritmi. Mai
multe aspecte ale problemei colorării hărților sunt discutate în Asta este MEGA -
Matematică! de Casey și Fellows. Cartea lui Kubale din 2004, Colorarea graficelor,
include un istoric al problemei. Există multe pagini de internet care acoperă acest
subiect.

140 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Soluții și indicații

Aceasta este singura soluție posibilă pentru harta din


fișa de lucru 1 (desigur, alegerea culorilor depinde de
elev, dar sunt necesare numai două culori diferite).

Harta din partea de sus a fișei de lucru 2 poate fi


colorată corect folosind trei culori, în timp ce cea de jos
necesită patru. Iată două soluții posibile.

Harta de pe fișa de lucru 3 este o hartă mai simplă cu


trei culori, cu o soluție posibilă prezentată aici.

Licență în baza Creative Commons 141


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Soluția pentru fișa de lucru 4 care folosește doar două
culori (hașuri și alb).

142 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Activitatea 15
Orășelul turistic - seturi dominante
Rezumat
Multe situații din viața reală pot fi abstractizate sub forma unei rețele sau a unui
„grafic” din felul celor folosite în activitatea de colorare a hărților. Rețelele prezintă
multe oportunități pentru dezvoltarea de algoritmi care au aplicații practice. În această
activitate, vrem să marcăm câteva joncțiuni sau „noduri” în așa fel încât toate celelalte
noduri să fie cel mult la un pas depărtare de cele deja marcate. Întrebarea este cu cât
de puține noduri marcate putem scăpa? Această problemă e surprinzător de dificilă.

Legături cu programa școlară


✓ Matematică – Poziție și orientare
✓ Matematică – Raționamentul logic
Abilități și competențe
✓ Hărți
✓ Relații
✓ Rezolvarea ghicitorilor
✓ Căutarea obiectivelor repetate
Recomandare de vârstă
✓ 7 ani și peste
Materiale necesare
Fiecare grup de elevi va avea nevoie de:

✓ o copie a foii cu linii negre Toneta de înghețată, și


✓ câteva jetoane sau piese de poker cu două culori diferite.

Veți avea nevoie de:


✓ o imagine de proiector a foii cu linii negre Soluția pentru Toneta de înghețată pe o
tablă albă, sau o tablă albă pentru a o desena.

Licență în baza Creative Commons 143


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Seturile dominante

Prezentarea temei în clasă


Fișa de lucru Toneta de înghețată arată o hartă a Orășelului Turistic. Liniile sunt străzi,
iar punctele sunt colțurile de stradă. Orășelul se află într-o țară foarte caldă, iar în
anotimpul de vară, tonete de înghețată parchează la colț de stradă și vând înghețată
turiștilor. Noi vrem să plasăm tonetele astfel încât oricine să poată ajunge la una
mergând până la capătul străzii și apoi cel mult după încă un bloc. (Pot fi mai ușor de
imaginat oamenii care locuiesc la intersecții decât de-a lungul străzilor; atunci, ei
trebuie să poată primi înghețată mergând cel mult dincolo de un bloc.) Întrebarea este
câte tonete sunt necesare și la care intersecții trebuie să fie plasate?

Discuție
1. Împărțiți elevii în mici grupuri, dați fiecărui grup harta Orășelului Turistic și niște
jetoane și explicați povestea.

2. Arătați elevilor cum să plaseze un jeton pe o intersecție pentru a marca o tonetă de


înghețată, apoi plasați jetoane de altă culoare pe intersecțiile la o stradă distanță.
Oamenii care locuiesc la acele intersecții (sau pe străzile care ajung la ele) sunt
deserviți de această tonetă de înghețată.

3. Cereți elevilor să experimenteze cu poziții diferite pentru tonete. Pe măsură ce ei


găsesc configurațiile care deservesc toate casele, reamintiți-le că tonetele sunt
scumpe și ideea este să avem cât mai puține posibil. Este evident că acele condiții
pot fi respectate dacă există suficiente tonete de plasat la toate intersecțiile.
Întrebarea interesantă este cu cât de puține vă
puteți descurca.

4. Numărul minim de tonete pentru Orășelul


Turistic este șase, iar o soluție este prezentată
aici. Dar este foarte dificil de aflat această
soluție! După un timp, spuneți clasei că șase
tonete sunt suficiente și provocați-i să găsească
un mod de a le plasa. Și aceasta este tot o
problemă grea: multe grupuri vor abandona
până la urmă. Chiar o soluție care folosește opt
sau nouă tonete poate fi dificilă de găsit.

144 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
5. Harta Orășelului Turistic a fost făcută pornind de la cele șase bucăți de hartă din
partea de jos a fișei de lucru Soluția Toneta de înghețată, fiecare din acestea
necesitând evident numai o tonetă de înghețată, și legarea împreună a acestora cu
o mulțime de străzi pentru a deghiza soluția. Esențial este să nu pui legături între
intersecțiile soluției (puncte deschise), ci numai între cele din afară (punctele
solide). Arătați clasei această tehnică pe tablă sau folosind un proiector.

6. Cereți elevilor să-și facă propriile hărți dificile folosind această strategie. Ei ar putea
dori să le încerce cu prietenii și părinții – vor constata că pot crea ghicitori pe care ei
le pot rezolva, dar alții nu pot! Aceste exemple definesc „o funcțiune
unidirecțională”: este ușor să vii cu o ghicitoare care este foarte dificil de rezolvat –
dacă nu cumva ești cel care a creat-o de fapt. Funcțiunile unidirecționale joacă un
rol foarte important în criptografie (vezi Activitățile 17 și 18).

Licență în baza Creative Commons 145


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Fișa de lucru: Toneta de înghețată
Arătați cum se plasează tonetele de înghețată la intersecțiile străzilor, astfel încât una din
două intersecții să fie legată de una care are o tonetă.

146 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Fișa de lucru: Soluția pentru toneta de înghețată
Arătați fișa clasei pentru a demonstra cum a fost construită problema.

Licență în baza Creative Commons 147


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Variații și extinderi

Există tot felul de situații în care te poți confrunta cu acest fel de problemă în
planificarea urbană: localizarea cutiilor poștale, a fântânilor, a stațiilor de pompieri, și
așa mai departe. În viața reală harta nu se va baza pe un truc care să-i ușureze
rezolvarea. Dacă trebuie într-adevăr să rezolvați o problemă ca aceasta, cum ați
proceda?

Există un mod foarte direct: aveți în vedere toate modalitățile posibile de a plasa
tonetele de înghețată și verificați-le pentru a vedea care este cea mai bună. Cu cele 26
de colțuri de stradă din Orășelul Turistic, există 26 de moduri de a plasa o tonetă. Este
ușor să verifici toate cele 26 de posibilități, și este evident că niciuna nu satisface
condiția dorită. Cu două tonete, există 26 de locuri în care să le pui mai întâi și, oricare
este aleasă să fie prima, există 25 de locuri rămase pentru a o pune pe a două
(evident, nu veți pune ambele tonete la aceeași intersecție): 26 × 25 = 650 posibilități
de verificat. Din nou, fiecare verificare este ușoară, cu toate că ar fi foarte incomod să
le faci pe toate. De fapt, este nevoie să verificăm numai jumătate din ele (325),
deoarece nu are importanță care tonetă este undeva: dacă ați verificat toneta 1 la
intersecția A și toneta 2 la intersecția B, atunci nu este nevoie să verificați toneta 1 la B
și toneta 2 la A. Ați putea continua verificând trei tonete (2600 de posibilități), patru
tonete (14950 de posibilități) și așa mai departe. În mod clar, 26 de tonete sunt
suficiente deoarece există numai 26 de intersecții și nu are rost să ai mai mult de o
tonetă în același loc. Un alt mod de a evalua numărul de posibilități este să ai în vedere
numărul total de configurații cu 26 de intersecții și orice număr de tonete. Întrucât
există două posibilități pentru fiecare colț de stradă – poate avea sau nu tonetă –
numărul de configurații este 226, ceea ce înseamnă 67.108.864.

Acest mod de a rezolva problema se numește algoritm „forță brută” și durează mult
timp. Există o concepție greșită răspândită despre calculatoare să sunt așa de rapide
încât pot rezolva aproape orice problemă repede, indiferent de câtă activitate implică
aceasta. Dar nu e adevărat. Cât de mult durează algoritmul forță brută depinde de cât
de repede se verifică dacă o anumită configurație este o soluție. A verifica aceasta
implică testarea fiecărei intersecții pentru a afla distanța până la cea mai apropiată
tonetă. Să presupunem că o întreagă configurație se poate testa într-o secundă. Cât
durează să testezi toate cele 226 posibilități pentru Orășelul Turistic? (Răspuns: 226 este
aproximativ 67 milioane; sunt 86.400 secunde într-o zi, deci 226 secunde înseamnă cam
777 de zile sau în jur doi ani.) Și să presupunem că în loc de o secundă, ar dura doar o
miime de secundă să verifici fiecare configurație individuală. Atunci aceiași doi ani ar
permite calculatorului să rezolve un orășel cu 36 de intersecții, deoarece 236 este de
aproximativ 1000 de ori 226. Chiar dacă calculatorul ar fi de un milion de ori mai rapid,
astfel încât un milion de configurații să poată fi verificate în fiecare secundă, atunci ar
dura doi ani să se rezolve un orășel cu 46 de intersecții. (Câte intersecții sunt în
localitatea voastră?)

Deoarece algoritmul forță brută este așa de lent, există alte moduri de a rezolva
problema? Ei bine, am putea încerca metoda lacomă care a avut succes în orașul
noroios (Activitatea 9). Trebuie să ne gândim cum ssă aplicăm metoda lacomă la
problema cu toneta de înghețată. Modul în care trebuie să o facem este să plasăm
prima tonetă la intersecția care leagă cel mai mare număr de străzi, cea de-a doua la
următoarea intersecție cu multe ramificații, și așa mai departe. Cu toate acestea, în
acest fel nu se produce în mod necesar setul minim de poziții de tonetă de înghețată -
de fapt, intersecția din Orășelul Turistic cu cele mai multe ramificații, adică cinci străzi,
nu este un bun loc să plasezi o tonetă (verificați aceasta cu clasa).

148 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Să vedem o problemă mai ușoară. În loc de a vi se cere să găsiți o configurație
minimă, presupuneți că ați primi o configurație dată și ați fost întrebați dacă era
minimă sau nu. În unele cazuri, acest lucru este ușor. De exemplu, această diagramă
prezintă o hartă mul mai simplă, a cărei este destul de directă. Dacă vă imaginați
străzile ca muchiile unui cub, este clar că două tonete de înghețată în vârfurile diagonal
opuse ale cubului sunt suficiente. Mai mult, trebuie să vă puteți convinge singuri că nu
este posibil să se rezolve problema cu mai puțin de două tonete. Este mult mai greu -
cu toate că nu este imposibil – să te convingi că Orășelul Turistic nu poate fi deservit
de mai puțin de șase tonete. Pentru hărțile generale este extrem de greu să dovedești
că o anumită configurație a tonetelor de înghețată este cea minimă.

Licență în baza Creative Commons 149


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Ce importanță are?
Unul dintre lucrurile interesante despre problema cu înghețata este că nimeni nu
știe dacă există un algoritm pentru a găsi un set minim de locații care să fie
considerabil mai rapid decât metoda forță brută! Timpul necesar pentru metoda forță
brută crește exponențial cu numărul de intersecții - este denumit algoritm cu timp
exponențial. Un algoritm cu timp polinomial este unul al cărui timp de rulare crește cu
pătratul sau cubul sau puterea a șaptesprezecea, sau orice altă putere a numărului
de intersecții. Un algoritm cu timp polinomial va fi întotdeauna mai rapid pentru hărți
suficient de mari - chiar (să zicem) un algoritm la puterea a șaptesprezecea –
deoarece o funcție cu creștere exponențială depășește ca pondere pe oricare cu
creștere polinomială, odată ce argumentul său devine suficient de mare. (De
exemplu, dacă o rezolvați, de câte ori n este mai mare decât 117, atunci n17 este mai
mic decât 2n). Există un algoritm cu timp polinomial pentru a găsi setul minim de
locații? – nu știe nimeni, cu toate că oamenii au încercat foarte intens să găsească
unul. Și la fel este adevărat pentru sarcina aparent mai ușoară de a verifica dacă un
anumit set de locații este minim: algoritmul forță brută pentru a încerca toate
posibilitățile pentru seturile mici de locații este exponențial ca număr de intersecții, și
algoritmii cu timp polinomial nici nu s-au descoperit, nici nu s-a dovedit că ar exista.

Vă reamintește aceasta despre colorarea hărților (Activitatea 13)? Ar trebui. Problema


cu toneta de înghețată, care este oficial denumită problema „setului minim dominant”,
este una cu un mare număr - mii - de probleme pentru care nu se cunoaște dacă
există algoritmi de timp polinomial, în domenii de la logică, prin problemele de
aranjament ferăstrău pentru colorarea hărților, găsirea traseelor optime pe hărți, și
procesele de încadrare în orare. Surprinzător, toate aceste probleme au fost
demonstrate ca fiind echivalente în sensul că, dacă un algoritm de timp polinomial este
găsit pentru una din ele, acesta poate fi transformat într-un algoritm de timp
polinomial pentru toate celelalte – ați putea spune că rezistă sau cad împreună.

Aceste probleme sunt denumite NP - complete. NP vine de la „polinomial


nedeterminist”. Acest jargon înseamnă că problema ar putea fi rezolvată într-un timp
rezonabil dacă ați avea un calculator care ar putea încerca un număr arbitrar mare
soluții odată (aceasta este partea nedeterministă). Puteți crede că aceasta este o
ipoteză destul de nerealistă, și într-adevăr așa este. Nu este posibil să se construiască
un astfel de calculator, deoarece ar trebui să fie arbitrar de mare! Cu toate acestea,
conceperea unei astfel de mașini este importantă în principiu, deoarece se pare că
problemele NP - complete nu pot fi rezolvate într-un timp rezonabil fără un calculator
nedeterminist.

Totodată, acest grup de probleme este denumit complet deoarece, cu toate că


problemele par foarte diferite - de exemplu, colorarea hărții este foarte diferită de
plasarea tonetelor de înghețată – se dovedește că dacă se găsește un mod eficient de
rezolvarea a uneia dintre ele, atunci acea metodă poate fi adaptată pentru rezolvarea
oricăror probleme.

Există mii de probleme NP - complete, iar cercetătorii le-au atacat, căutând soluții
eficiente timp de decenii, dar fără succes. Dacă s-ar fi descoperit o soluție eficientă
doar pentru una din ele, atunci am fi avut soluții eficiente pentru toate. Din acest
motiv, este foarte greu de presupus că nu există o soluție eficientă. Dar a dovedi că

150 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
problemele implică în mod necesar un timp exponențial este cea mai mare întrebare
deschisă din informatica teoretică - posibil în toată matematica de azi.

Bibliografie suplimentară
Cartea lui Harel Algoritmi prezintă câteva probleme NP - complete și discută întrebarea
dacă algoritmii de timp polinomial există. Lucrarea lui Dewdney Turing Omnibus de
asemenea discută problema NP - complete. Textul standard de informatică privind
subiectul este lucrarea lui Garey & Johnson Calculatoarele și Imposibil de controlat,
care prezintă câteva sute de probleme NP - complete împreună cu tehnicile pentru
dovedirea NP - completării. Cu toate acestea, este destul de greu de parcurs și este
potrivită, de fapt, numai pentru specialisti în informatică.

Licență în baza Creative Commons 151


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Activitatea 16
Drumuri de gheață - Arborii lui Steiner
Rezumat
Uneori, o mică variație, aparent nesemnificativă în descrierea unei probleme face o
imensă diferență în cât de greu este de rezolvat. Această activitate, ca și problema cu
Orașul noroios (Activitatea 9), este despre găsirea unor trasee scurte prin rețele.
Diferența este că aici avem voie să introducem noi puncte în rețea dacă aceasta reduce
lungimea traseului. Rezultatul este o problemă cu mult mai dificilă care nu are legătură
cu Orașul noroios, ci este algoritmic echivalentă cu problema cartografului (Activitatea
13) și Orășelul Turistic (Activitatea 14).

Legături cu programa școlară


✓ Matematică – Poziție și orientare
✓ Matematică – Raționamentul logic
Abilități și competențe
✓ Vizualizarea în spațiu
✓ Raționamentul geometric
✓ Procedurile algoritmice și complexitatea
Recomandare de vârstă
✓ 7 ani și peste
Materiale necesare
Fiecare grup de elevi va avea nevoie de:

✓ cinci sau șase țăruși de pus în pământ (țărușii de cort sunt buni, cu toate că și un
cuier de haine tăiat în bucății este bun),
✓ câțiva metri de sfoară sau elastic,
✓ o riglă sau o ruletă, și
✓ pix și hârtie de notat.

152 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Drumuri de gheață

Prezentarea temei în clasă


Activitatea anterioară, Orășelul Turistic, a avut loc într-o țară foarte caldă; aceasta este
opusul. În nordul înghețat din Canada, iarna pe uriașele lacuri înghețate, plugurile de
zăpadă fac drumuri care să lege locațiile de foraj, astfel încât echipajele să se poată
vizita reciproc. Acolo, în frig, oamenii vor să facă minimul de drumuri construite, iar
sarcina voastră este să găsiți unde să se facă drumurile. Nu există limitări: șoselele pot
merge oriunde în zăpadă - lacurile sunt înghețate și acoperite. Totul este plat.

Drumurile trebuie, evident, să se desfășoare drept, deoarece introducerea curbelor


doar ar mări lungimea în mod inutil. Dar acest lucru nu e la fel de simplu ca unirea
locațiilor cu linii drepte, deoarece adăugarea de intersecții pe întinsurile înghețate
poate reduce uneori lungimea totală a drumului - și lungimea sa totală este
importantă, nu timpul de deplasare de la o locație la alta.

În această figură (a) se prezintă trei locații de forare. Legarea uneia din ele cu fiecare
din celelalte (ca în (b)) ar face o rețea de drumuri acceptabilă. O altă posibilitate este
să se facă o intersecție undeva aproape de centrul triunghiului și să se lege de cele trei
locații (c). Și dacă măsurați drumul total care a fost eliberat, aceasta este într-adevăr o
mai bună soluție. Intersecția suplimentară este denumită punct „Steiner”, după
matematicianul elvețian Jacob Steiner (1796–1863), care a menționat problema și a
fost primul care a observat că lungimea totală se poate reduce introducându-se puncte
noi. Ați putea gândi la un punct Steiner ca o nouă locație imaginară de forare.

Licență în baza Creative Commons 153


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Discuție
1. Descrieți problema la care vor lucra elevii. Folosind exemplul de mai sus,
demonstrați elevilor că existând trei locații, prin adăugarea uneia suplimentare
uneori se îmbunătățește soluția prin reducerea construcției de drumuri.

1. Elevii vor folosi patru puncte aranjate într-un pătrat, ilustrat în (a). Ieșiți afară și
cereți fiecărui grup să plaseze patru țăruși în iarbă, într-un pătrat aproximativ de 1 metru
pe 1 metru.

2. Cereți elevilor să experimenteze cu interconectarea țărușilor cu sfoară sau elastic,


măsurând și notând lungimea totală minimă necesară. În acest stadiu, ei nu trebuie să
folosească puncte Steiner. (Minimul se obține interconectând trei laturi ale pătratului, ca
în (b), și lungimea totală este de 3 metri.)

3. Acum vedeți dacă elevii pot face mai bine dacă folosesc un punct Steiner. (Cel mai
bun loc este în centrul pătratului, (c). Atunci, lungimea totală este 2√2 = 2,83 metri.)
Sugerați că ar putea face chiar mai bine folosind două puncte Steiner. (Într-adevăr pot,
plasând cele două puncte ca în (d), formând unghiuri de 120 de grade între drumurile
care vin. Lungimea totală este atunci 1 + √3 = 2,73 metri.)

4. Pot elevii să facă mai bine cu trei puncte Steiner? (Nu – două puncte reprezintă cea
mai bună soluție și nu se obține niciun avantaj folosind mai multe.)

5. Discutați cu elevii de ce aceste probleme par grele. (Deoarece nu știți unde să


puneți punctele Steiner și există o mulțime de posibilități de încercat.)

154 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Fișa de lucru: Arborele lui Steiner Exemplul 1

Licență în baza Creative Commons 155


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Fișa de lucru: Arborele lui Steiner Exemplul 2

156 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Variații și extinderi

1. Un experiment interesant pentru grupurile care termină activitatea inițială mai repede
este să lucreze cu un dreptunghi de aproximativ 1 metru pe 2 metri (a). Elevii vor afla că
adăugând un punct Steiner înrăutățește lucrurile, dar două dau o soluție mai bună.
(Lungimile sunt 4 metri pentru (b), 2√5 = 4,47 metri pentru (c), și 2 + √3 = 3,73 metri
pentru (d).) Vedeți dacă ei pot să-și dea seama de ce configurația cu un punct face mai
mult rău pentru dreptunghiuri decât pentru pătrate. (Deoarece când pătratul este întins
ca un dreptunghi, valoarea întinderii se adaugă doar o dată la (b) și (d), dar ambele
diagonale se măresc în (c).)

2. Elevii mai mari pot lucra la o problemă mai mare. Două schițe de locații de interconectat
cu drumuri de gheață sunt date în fișele de lucru. ei pot experimenta cu diferite soluții
folosind noi copii ale fișei de lucru, sau
scriind cu marker pe o foaie transparentă Soluția minimală pentru primul exemplu
peste foaie. Pe de altă parte, hărțile pot fi
marcate pe sol, folosind țărușii. Ei pot
arăta clasei când cred că s-a stabilit un
nou record pentru cea mai scurtă
distanță. (Cifrele din dreapta arată soluția
minimă pentru primul exemplu și mai jos
sunt două posibile soluții pentru al doilea,
a cărui lungime totală este similară.)
Faptul că există două astfel de soluții
similare ilustrează de ce aceste feluri de
probleme sunt așa de grele - există atât
de multe opțiuni unde să se pună
punctele Steiner!

Doi posibili arbori ai lui Steiner pentru al doilea exemplu

Licență în baza Creative Commons 157


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
3. Rețelele scară ca aceasta prezintă un alt mod de a extinde problema. O rețea scară arată
astfel:

Câțiva arbori minimali ai lui Steiner pentru rețelele scară se prezintă mai jos. Cea pentru
o scară cu două trepte este chiar la fel ca pentru un pătrat. Cu toate acestea, pentru o
scară cu trei trepte, soluția este foarte diferită – după cum veți descoperi dacă încercați
să o refaceți din memorie! Soluția pentru patru trepte este ca cea pentru două scări cu
două trepte unite împreună, în timp ce pentru cinci trepte, este mai mult ca o extindere a
soluției cu trei trepte. În general, forma arborelui minim Steiner pentru o scară depinde
dacă are un număr par sau impar de trepte. Dacă este par, este ca și cum câteva scări cu
două trepte au fost unite împreună. În caz contrar, este ca o repetiție a soluției cu trei
trepte. Dar prezentarea riguroasă a acestor lucruri nu este ușoară.

4. O altă interesantă activitate este să se realizeze modelele cu bule de săpun ale arborilor
lui Steiner. Puteți face asta luând două foi de plastic rigid transparent și introducând pini
între ele pentru a reprezenta locațiile care se extind, după cum se arată aici.

158 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Acum cufundați întregul obținut în soluție de săpun. Când se scoate afară, veți afla că
o peliculă de săpun unește pinii într-o frumoasă rețea cu arbore Steiner.

Din păcate însă, acesta nu este în mod necesar un arbore minimal Steiner. Pelicula de
săpun găsește o configurație care minimizează lungimea totală, dar minimul este
numai unul local, nu în mod necesar unul global. Pot exista modalități complet diferite
de a plasa punctele Steiner pentru a da o lungime totală mai mică. De exemplu, puteți
imagina pelicula de săpun arătând ca prima configurație din Extinderea 2, când este
retrasă din lichid cu o ocazie, și a doua configurație cu alta.

Licență în baza Creative Commons 159


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Ce importanță are?
Rețelele care au fost realizate sunt arborii minimali ai lui Steiner. Sunt denumiți „arbori”
deoarece nu au cicluri și ca ramurile unui copac real cresc separat (în mod normal) dar
nu se reunesc să crească împreună din nou. Se numesc arbori „Steiner” deoarece noi
puncte, adică puncte Steiner pot fi adăugate la locațiile inițiale pe care le unește
arborele. Și sunt denumiți „minimali” deoarece au cea mai mică lungime a unui arbore
care leagă acele locații. În Orașul noroios (Activitatea 9), am învățat că o rețea are
leagă un număr de locații care minimizează lungimea totală este denumită arbore cu
deschidere minimă: Arborii lui Steiner sunt chiar la fel, exceptând faptul că pot fi
introduse noi puncte.

Este interesant că, în timp ce există un algoritm foarte eficient pentru a găsi arborii cu
deschidere minimală (Activitatea 14) – un algoritm lacom care lucrează legând repetat
cele două puncte neracordate, cele mai apropiate până acum –, nu există o soluție
generală eficientă pentru problema minimală Steiner. Arborii lui Steiner sunt mult mai
dificili deoarece trebuie să decideți unde să puneți punctele suplimentare. De fapt,
destul de surprinzător, partea dificilă a problemei arborelui lui Steiner nu este
determinarea locației precise a punctelor Steiner, ci a decide aproximativ unde să fie
puși: diferența dintre cele două soluții pentru Exemplul 2, de exemplu. După ce știți în
ce regiuni să puneți noile puncte, ajustarea lor la poziția optimă este relativ simplă.
Peliculele de săpun fac asta foarte eficient, și la fel pot și calculatoarele.

Găsirea arborilor minimali ai lui Steiner face parte dintr-o poveste care a dus la
economisirea de mulți bani în afacerile cu telefonia. Înainte de 1967, când clienții
companiilor din SUA operau mari rețele telefonice private, ei închiriau liniile de la o
companie de telefonie. Sumele cu care erau facturați nu erau calculate pe baza
modului în care firele erau de fapt folosite, ci pe baza celei mai scurte rețele care ar fi
fost suficientă. Motivația era că clientul nu ar fi trebui să plătească în plus doar pentru
că compania de telefonie folosea un traseu circular. Inițial, algoritmul care calcula cât
de mult se încasa funcționa prin determinarea arborelui cu deschidere minimală. Cu
toate acestea, în jurul lui 1967, un client a observat – o companie aeriană, de fapt, cu
trei centre principale – că, dacă solicitau un al patrulea centru la un punct intermediar,
atunci lungimea totală a rețelei se reducea. Compania de telefonie a fost forțată să
reducă taxele la ceea ce ar fi fost dacă ar fi existat o centrală telefonică în punctul
Steiner! Deci, pentru configurațiile tipice, arborele minimal Steiner este numai cu 5%
sau 10% mai scurt decât arborele cu deschidere minimală, aducând economii
importante atunci când sunt implicate mari sume de bani. Problema arborelui Steiner
este uneori denumită „problema celei mai scurte rețele”, deoarece implică găsirea celei
mai scurte rețele care leagă un set de locații.

Dacă ați rezolvat cele două activități anterioare, cea cu cartograful și cea cu orășelul
turistic, nu veți fi surprinși să auziți că problema arborelui minimal Steiner este NP -
completă. Pe măsură ce numărul de locații crește, la fel e și cu numărul de locații
posibile pentru punctele Steiner, iar încercarea tuturor posibilităților implică o căutare
cu creștere exponențială. Aceasta este o alta din miile de probleme pentru care pur și
simplu nu se cunoaște dacă o căutare exponențială este cea mai bună care se poate
face, sau dacă există un algoritm de timp polinomial încă nedescoperit. Ce este
cunoscut, totuși, este că dacă un algoritm de timp polinomial este găsit pentru această
problemă, el poate fi transformat într-un algoritm de timp polinomial pentru colorarea

160 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
graficelor, pentru a găsi Seturile dominante minimale - și pentru toate celelalte
probleme din clasa NP - complete.

Am explicat la sfârșitul activității anterioare că „NP” din NP - complet vine de la


„polinomial nedeterminist”, iar „complet” se referă la faptul că, dacă se găsește un
algoritm de timp polinomial pentru una din problemele NP – complete, acesta poate
deveni algoritm de timp polinomial pentru toate celelalte. Setul de probleme care se
pot rezolva în timp polinomial este denumit P. Așa că, întrebarea crucială este dacă
există algoritmi de timp polinomial pentru problemele NP – complete.Cu alte cuvinte,
este P = NP? Răspunsul la această întrebare nu este cunoscut și este unul din marile
mistere ale informaticii moderne.

Problemele pentru care există algoritmi de timp polinomial - chiar dacă acești algoritmi
pot fi destul de lenți - sunt denumite „tratabile”. Problemele pentru care nu există
algoritmi polinominali sunt denumite „netratabile”, deoarece, indiferent de cât de rapid
este calculatorul sau câte calculatoare folosiți la un loc, și cea mai mică creștere a
mărimii problemei va însemna, de fapt, că nu este posibil să se rezolve în practică. Nu
este cunoscut dacă problemele NP - complete - care includ pe cea cu cartograful,
orășelul turistic și drumurile de gheață - sunt tratabile sau nu. Dar majoritatea
informaticienilor sunt pesimiști că un algoritm de timp polinomial pentru problemele NP
- complete se va găsi vreodată, deci a dovedi că o problemă este NP - completă se
consideră o dovadă la fel de puternică despre faptul că problema este inerent
netratabilă.

Ce puteți face când șeful vă cere să concepeți un algoritm eficient care vine cu soluția
optimă a unei probleme și nu puteți găsi una? Cum sigur s-a întâmplat când compania
aeriană s-a lovit de faptul că costurile rețelei ar putea fi reduse prin introducerea
punctelor Steiner. Dacă ați putea dovedi că nu există un algoritm eficient pentru a veni
cu o soluție optimă, ar fi minunat. Dar este foarte dificil să dovedești rezultatele
negative ca acesta în informatică. Deci, din păcate, este improbabil să fiți într-o poziție
în care să spuneți categoric că niciun algoritm eficient nu este posibil – că problema
este netratabilă. Dar dacă puteți arăta că problema este NP - completă, atunci este de
fapt adevărat că mii de oameni din laboratoarele de cercetare au lucrat la probleme
care sunt chiar echivalente cu ale voastre și de asemenea nu au reușit să vină cu o
soluție eficientă.

“Nu pot găsi un algoritm “Nu pot găsi un algoritm “Nu pot găsi un algoritm eficient, dar
eficient, cred că sunt prea eficient, deoarece nu este nici toți acești oameni vestiți nu pot.”
prost.” posibil un astfel de
algoritm.”

Licență în baza Creative Commons 161


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Ce-i de făcut când nu puteți găsi un algoritm eficient: trei posibilități

Desigur, în viața reală, aceste probleme încă nu și-au găsit o rezolvare și, în acest caz,
oamenii apelează la euristică - algoritmi care nu garantează că dau cea mai bună
soluție posibilă, ci dau o soluție care este optimă într-un procentaj foarte mic.
Algoritmii euristici pot fi foarte rapizi, iar pierderile sunt mici chiar dacă nu s-a găsit cea
mai bună soluție posibilă.Important e că algoritmii euristici te ajută să îți faci treaba.

Bibliografie suplimentară
Caricatura se bazează pe o ilustrație din cartea clasică a lui Garey și Johnson
Calculatoarele și INetratabilitatea.

Articolul „Recreere cu calculatorul” din Scientific American, din iunie 1984, conține o
scurtă descriere a modului în care se realizează arborii lui Steiner folosindu-se bule de
săpun, împreună cu descrieri interesante a altor elemente analoage pentru rezolvarea
problemelor. Sunt prezentate inclusiv un calculator de spaghete pentru sortare, un
leagăn de pisică făcut din sfoară pentru a găsi cele mai scurte trasee într-un grafic și
un dispozitiv cu lumină și oglindă pentru a spune dacă un număr este sau nu prim.
Acestea apar de asemenea într-o secțiune despre calculatoarele analogice din Turing
Omnibus al lui Dewdney.

162 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Partea V
Dezvăluirea secretelor și lupta
împotriva infracționalității -
Criptografie
Dezvăluirea secretelor și lupta
împotriva infracționalității
Ați auzit despre spioni și agenți secreți care folosesc coduri ascunse sau un scris magic
invizibil pentru a face schimb de mesaje. Ei bine, așa a început să existe subiectul
„criptografie”, ca arta de a scrie și descifra coduri secrete. În timpul celui de-al doilea
Război Mondial, englezii au proiectat mașini speciale de spart coduri electronice și le-au
folosit pentru a descifra coduri militare. Iar apoi au apărut calculatoarele care au
schimbat totul, iar criptografia a intrat într-o nouă eră. Cantități masive de calcule, care
ar fi fost de neimaginat pe vremuri, puteau fi folosite pentru a sparge codurile. Când
oamenii au început să distribuie în rețele și sistemele de calculatoare au devenit
accesibile, au apărut noi utilizări pentru parolele secrete. Când calculatoarele au fost
legate în rețele, au apărut noi motive de a proteja informațiile de anumiți oameni care
ar fi vrut să profite de ele. Odată cu mesageria electronică, a devenit importantă
certificarea faptului că oamenii care semnează mesajele sunt chiar cei care spun că
sunt. Acum, când oamenii pot efectua servicii bancare online și pot cumpăra și vinde
bunuri folosind calculatoarele, trebuie să securizăm modalitățile de a plasa comenzile și
de a transmite bani prin rețelele de calculatoare. Iar creșterea continuă a amenințării
unui atac terorist asupra sistemelor de calculatoare (n.n. cyber-terorism) face ca
securitatea calculatoarelor să fie din ce în ce mai importantă.

Criptografia probabil că vă face să vă gândiți la calculatoare care stochează parole


secrete și amestecă literele mesajelor astfel încât inamicul să nu le poată citi. Dar
realitatea este foarte diferită. Sistemele moderne de calculatoare nu stochează parole
secrete, deoarece dacă ar face-o, oricine ar reuși să le acceseze ar putea penetra toată
securitatea sistemului. Asta ar fi un dezastru: s-ar putea face transferuri bancare false,
s-ar putea transmite mesaje sub o falsă identitate, s-ar putea citi fișierele secrete ale
cuiva, ori s-ar comanda armate și s-ar dărâma guverne. În zilele noastre, parolele sunt
gestionate folosindu-se „funcțiunile unidirecționale” despre care am vorbit la Activitatea
14. Și codificarea nu înseamnă doar amestecarea literelor din mesaje: aceasta se face
folosindu-se tehnici care implică probleme foarte dificile – cum ar fi cele „netratabile”
prezentate în Partea IV.

Folosind criptografia, puteți face lucruri despre care ați fi putut crede că sunt
imposibile. În această secțiune, veți descoperi o modalitate simplă de a calcula vârsta
medie a persoanelor dintr-un grup, fără ca nimeni să nu spună altcuiva ce vârstă are.
Veți afla cum două persoane, care nu au încredere una în alta, pot arunca o monedă și
pot fi de acord asupra rezultatului, cu toate că sunt în orașe diferite și nu pot vedea
ambele moneda aruncată. Și veți găsi un mod de a codifica mesajele secrete care pot fi
decodificate numai de o singură persoană, cu toate că toți știu cum să le decodifice.

Pentru profesori

Activitățile care urmează prezintă experiențe practice cu tehnici moderne criptografice -


care sunt foarte diferite de ceea ce majoritatea oamenilor invocă atunci când se
gândesc la secrete și calculatoare.

Există două idei principale. Prima este noțiunea de „protocol” care este declararea
oficială a unei tranzacții. Protocoalele nu se referă doar la diplomați, c ci și la
calculatoare! Sarcini aparent dificile pot fi îndeplinite de protocoale surprinzător de

164 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
simple. Activitatea 16, care durează doar câteva minute, arată cum un grup de
persoane, care cooperează, poate calcula ușor vârsta medie (sau veniturile), fără ca
cineva să afle vârsta vreunei persoane (sau veniturile). A doua idee principală este rolul
pe care complexitatea computațională – caracterul netratabil – îl poate juca când
interacțiunea dintre oameni este mediată de calculatoare. Activitatea 17 arată cum
două persoane, care nu au neapărat încredere una în alta, pot fi de acord asupra
rezultatului aruncării unei monede, atunci când sunt conectați doar prin telefon.
(Această activitate introduce, suplimentar, ideea de circuite logice booleene și cum să
lucrăm cu ele.) Activitatea 18 arată cum oamenii pot folosi tehnici computaționale
pentru a codifica mesajele în siguranță, cu toate că metoda pentru efectuarea
codificării este accesibilă tuturor oamenilor.

Unele dintre aceste activități – în mod deosebit ultima – implică o muncă grea. Va
trebui să motivați clasa insuflând elevilor curiozitatea și mirarea că astfel de lucruri pot
avea loc. Elevii trebuie să înțeleagă că despre activitățile pe care le fac cei mai mulți
oameni cred că ar fi imposibile. Este vital să se creeze acest sentiment de uimire, să se
comunice și să se întrerupă frecvent pentru a-l menține în viață pe toată durata
activității, astfel încât elevii să nu piardă din vedere pădure din cauza unor arbori.
Aceste activități sunt printre cele mai provocatoare și tehnic complicate din carte. Dacă
se dovedesc a fi prea dificile, vă rugăm să treceți peste Partea VI, care are un caracter
complet diferit, non-tehnic.

Pentru mințile tehnice


Întrucât calculatoarele își depășesc limitele în zilele noastre, aplicarea criptografiei este
posibil să fie mai degrabă tendențioasă. Majoritatea oamenilor pur și simplu nu
realizează de ce sunt în stare protocoale criptografice moderne. Atunci când instituțiile
mari – guvernamentale și comerciale – dezvoltă sisteme care gestionează informații
personale, se lucrează cu persoane specializate care iau decizii importante privind
modul în care lucrurile urmează a fi rezolvate, ce urmează a se colecta, ce urmează a
se pune la dispoziție și pentru cine. Dacă oamenii ar avea o mai bună înțelegere a
posibilităților deschise de tehnologia modernă, ar fi în măsură să participe mai activ la
astfel de decizii, iar societatea ar putea ajunge să aibă o infrastructură diferită de
informații.

Acest material privind protocoalele de ascundere a informațiilor, protocoalele


criptografice și codificarea cheilor publice este în general considerat a fi destul de
avansat. Dar ideile propriu-zise nu sunt dificile. Noțiunile tehnice, nu conceptele de
bază sunt greu de înțeles. În situațiile practice care implică comerțul electronic,
chestiunile tehnice sunt înglobate în software-ul de calculator, ceea ce face ca noile
tehnologii de codificare să fie foarte ușor de folosit. Dar este de asemenea important
de înțeles ideile pe care se bazează acestea, pentru a dobândi o idee asupra ceea ce se
poate face.

Sistemele criptografice sunt de mare interes pentru guverne, nu doar pentru că


acestea vor să păstreze comunicațiile oficiale în siguranță, ci și din cauza temerilor că o
comunicare codificată ar putea fi folosită de persoane rău-voitoare, implicate în
activități ilegale, cum ar fi traficul de droguri și terorismul. Dacă astfel de oameni
folosesc codificarea și dacă nu este disponibilă o metodă de decodificare, atunci
interceptările clasice devin inutile. Aceste preocupări au dus la o mulțime de dezbateri
între persoanele care se ocupau de aplicarea legii, care voiau să limiteze forța
sistemelor criptografice, și cei ce se ocupau de libertățile civile, cărora nu le convenea
că guvernul avea acces la comunicațiile private. Pentru un timp, guvernul SUA a limitat

Licență în baza Creative Commons 165


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
utilizarea unor metode criptografice, considerându-le un pericol, precum armele și
munițiile, care ar fi putut să ajungă în mâinile în care nu trebuiau să fie.

Într-o anumită etapă, au fost dezbateri extinse despre „Clipper Chip”, un sistem deținut
de o agenție guvernamentală, ce cuprindea o parolă suplimentară denumită key
escrow, , prin care se putea decodifica orice mesaj codificat de cip. FBI și
Departamentul Justiției din SUA au dorit ca acest cip să se folosească la scară largă în
comunicații, dar aceasta atras o considerabilă opoziție din cauză că amenința caracterul
privat al informațiilor. Toate felurile de sisteme criptografice sunt fezabile din punct de
vedere tehnic, dar nu sunt neapărat acceptabile din punct de vedere politic!

Ideile criptografice au multe aplicații în afară de păstrarea caracterului secret al


mesajelor. Cum ar fi verificarea dacă mesajele au fost transmise în realitate de
persoanele care zic că le-au transmis - aceasta este „autentificarea”, iar fără aceasta,
comerțul electronic este imposibil. Există moduri de a permite oamenilor să voteze prin
calculator, fără ca altcineva să poată afla pentru cine au votat - nici măcar cei care se
ocupă de sistemul de calculatoare –. Mai mult, oamenii sunt împiedicați să voteze de
mai multe ori. Chiar și voi puteți să jucați cărți prin telefon – ceea ce ar putea părea o
prostie, până când înțelegeți că afacerile seamănă mult cu jocul de poker.

Aceste lucruri par imposibile. Cum ai putea să începi să amesteci un pachet de cărți de
joc prin telefon, dacă ești în competiție cu persoana de la celălalt capăt și nici nu poți
avea încredere în aceasta? Cum ar fi posibil să detectezi dacă cineva a interceptat un
mesaj, l-a modificat și apoi l-a trecut drept unul original? Dacă nu puteți face acele
lucruri, nu puteți face afaceri în sistem electronic. Va trebui să împiedicați infractorii cu
abilități tehnice, care pot să falsifice autorizațiile pentru retragerile din conturile
bancare prin interceptarea liniei telefonice între un terminal punct de vânzare și bancă.
Va trebui să-i împiedicați pe competitorii voștri din afaceri să facă prăpăd generând
comenzi false sau contracte false. Cu tehnicile criptografice moderne, astfel de
miracole pot avea loc, iar aceste activități vă arată cum.

Există multe cărți interesante despre coduri și spargerea codurilor. Cartea Spărgătorii
de coduri: povestea din interiorul Bletchley Park editată de Hinsley și Stripp, dă
explicații de specialitate despre cum s-au folosit unele din primele calculatoare pentru a
se sparge codurile în timpul celui de-al doilea Război Mondial, ceea ce a scurtat
considerabil războiul și a salvat multe vieți.

166 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Activitatea 17
Dezvăluirea secretelor - Protocoale de
ascundere a informațiilor
Rezumat
Tehnicile criptografice ne permit să distribuim informațiile altor persoane, dar
menținând un nivel surprinzător de confidențialitate. Această activitate ilustrează o
situație în care informațiile sunt distribuite și totuși nu sunt divulgate: un grup de elevi
ca calcula vârsta medie a membrilor fără ca nimeni să nu divulge altcuiva ce vârstă
are.

Legături cu programa școlară


✓ Matematică – Sume și medii
Abilități și competențe
✓ Calcularea mediei
✓ Numere aleatorii
✓ Sarcini de cooperare
Recomandare de vârstă
✓ 7 ani și peste
Materiale necesare
Fiecare grup de elevi va avea nevoie de:

✓ un carnețel de notițe, și
✓ un pix.

Licență în baza Creative Commons 167


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Distribuirea secretelor
Prezentarea temei în clasă
Această activitate implică aflarea mediei de vârstă a unui grup de elevi, fără ca cineva
să divulge ce vârstă are. Pe de altă parte, cineva ar putea afla veniturile medii
(alocația) elevilor din grup sau alte detalii personale similare. Calculul acestor statistici
funcționează deosebit de bine cu adulții, deoarece persoanele mai în vârstă pot fi mai
sensibili la detaliile legate de vârstă și venituri.

Veți avea nevoie de cel puțin trei elevi din grup.

Discuție
1. Explicați grupului că ați vrea să deduceți media de vârstă, fără ca cineva să spună
cuiva ce vârstă are. Cereți sugestii despre cum s-ar putea face asta sau chiar dacă
ei cred că se poate face.

2. Selectați între șase și zece elevi cu care să


lucrați. Dați hârtie și pix primului elev și cereți-i
să noteze în secret un număr din trei cifre la
întâmplare în partea de sus a foii. În acest
exemplu, s-a ales 613 ca număr la întâmplare.

3. Cereți primului elev să rupă pagina, să-și


adune vârsta cu numărul ales la întâmplare și
să-l scrie pe o a doua foaie din carnețel.
Vârsta primului elev este 8, așa că pe a doua
foaie scrie 621. Trebuie să păstreze pagina
care a fost ruptă (și să nu o arate nimănui.)

4. Carnețelul este trecut apoi celui de-al doilea elev, care își adună vârsta la numărul
de sus, rupe pagina și scrie totalul pe următoarea pagină. În exemplu, cel de-al
doilea elev are 10 ani.

5. Continuați acest proces cerându-i unui elev să rupă pagina și să-și adune vârsta la
numărul de pe ea, până când carnețelul a trecut pe la toți elevii.

6. Înapoiați carnețelul primului elev. Cereți elevului să scadă numărul întâmplător inițial
din numărul de pe carnețel. În exemplu, carnețelul a fost la cinci elevi, iar numărul
final, 657, are numărul inițial, 613, scăzut din el, ceea ce dă numărul 44. Acest
număr este suma vârstelor elevilor, iar media poate fi calculată împărțind la numărul
de elevi; astfel, vârsta medie a grupului nostru este 8,8 ani.

168 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
7. Arătați elevilor că atâta timp cât fiecare distruge foaia lui de hârtie, nimeni nu poate
deduce vârsta unei persoane, decât dacă două persoane decid să coopereze.

Variații și extinderi
Acest sistem ar putea fi adaptat pentru a permite votul secret cerând fiecărei persoane
să adune unu dacă votează da și zero dacă votează nu. Desigur, dacă cineva adună
mai mult de unu (sau mai puțin de zero), atunci votul ar putea fi necinstit, cu toate că
ar putea apărea riscul de suspiciune dacă toți ar vota da, deoarece numărul de voturi
da ar fi mai mare decât numărul de persoane.

Licență în baza Creative Commons 169


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Ce importanță are?
Calculatoarele stochează o mulțime de informații personale despre noi: soldul nostru
bancar, rețelele sociale, câte impozite datorăm, de cât timp posedăm permis de
conducere auto, istoricul creditelor, rezultatele la examene, fișe medicale și altele.
Confidențialitatea este foarte importantă! Dar trebuie să putem să distribuim unele din
aceste informații cu alți oameni. De exemplu, când plătim pentru cumpărături la
magazin folosind o carte de credit, recunoaștem dreptul magazinului de a verifica dacă
avem fonduri disponibile.

Deseori ajungem să dăm mai multe informații decât este necesar de fapt. De exemplu,
dacă efectuăm o tranzacție electronică la un magazin, acolo divulgăm în principal cu ce
bancă lucrăm, care este numărul contului și care este numele nostru. Mai mult, banca
află unde ne-am făcut cumpărăturile. Băncile ar putea crea un profil al cuiva, prin
monitorizarea unor detalii cum ar fi: de unde cumpără combustibil sau alimente, cât
cheltuie pe aceste articole în fiecare zi și când sunt vizitate aceste locuri. Dacă am fi
plătit în numerar, atunci niciun fel de astfel de informații nu ar fi fost dezvăluite. Cei
mai mulți oameni nu își fac probleme pentru că aceste informații sunt distribuite, dar
există posibilitatea de a fi folosite în mod abuziv, în cazul marketingului personalizat
(de exemplu, trimiterea reclamelor turistice persoanelor care cheltuie mult pe biletele
de avion), discriminarea (cum ar fi oferirea unor servicii mai bune unei persoane a
cărei bancă se ocupă de obicei numai de clienții înstăriți), sau chiar șantajul (cum ar fi
amenințarea cu dezvăluirea detaliilor unei tranzacții sensibile). Dacă nici asta nu ne
îngrijorează, poate doar gândul că cineva ne monitorizează permanent ne-ar putea
ajuta să ne schimbăm obiceiurile de a face cumpărături.

Chiar dacă această reducere a confidențialității, există protocoale criptografice care ne


permit să efectuăm tranzacții electronice cu același nivel de confidențialitate pe care l-
am avea în cazul plăților în numerar. Ar putea fi greu de crezut, dar banii pot fi
transferați din contul tău bancar în contul unui magazin fără ca cineva să știe de unde
au venit banii sau încotro merg. Această activitate face ca o astfel de tranzacție să pară
ceva mai plauzibilă: ambele situații implică distribuirea limitată de informații, iar
aceasta se poate face doar printr-un protocol inteligent.

Bibliografie suplimentară
O lucrare clasică ce evidențiază aceste probleme a fost scrisă de David Chaum, cu titlul
provocator „Securitate fără identificare: sisteme de tranzacții pentru a face ca Big
Brother să pară depășit”. Lucrarea este destul de ușor abordabilă și dă simple exemple
de protocoale de disimulare a informațiilor, inclusiv cum se pot face tranzacții complet
private folosindu-se „banii electronici”. Aceasta se poate găsi în Communications of the
ACM, octombrie 1985.

170 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Activitatea 18
„Cap și pajură” în Peru - Protocoale
criptografice
Rezumat
Această activitate arată cum se îndeplinește o sarcină simplă, dar care pare oricum
imposibilă – efectuarea unei alegeri corecte la întâmplare prin aruncarea unei monede,
între două persoane care nu au neapărat încredere una în alta și sunt conectate numai
prin telefon.

Legături cu programa școlară


✓ Matematică – raționamentul logic
✓ Matematică – logica booleană
Abilități și competențe
✓ Logica booleană
✓ Funcțiuni
✓ Rezolvarea ghicitorilor
Recomandare de vârstă
✓ 9 ani și peste
Materiale necesare
Fiecare grup de elevi va avea nevoie de:

✓ o copie a foii care se poate reproduce Aruncarea monedei peruviene


✓ aproximativ 24 de nasturi mici sau jetoane de două culori diferite

Licență în baza Creative Commons 171


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
„Cap sau pajură” în Peru

Prezentarea temei în clasă

Această activitate a fost concepută inițial atunci când unul dintre autori (MRF) lucra cu
elevii în Peru – de aici vine și numele ei. Puteți adapta povestirea pentru a se potrivi
condițiilor locale.

Echipele de fotbal din Lima și Cuzco trebuie să decidă care ar urma să fie echipa gazdă
pentru meciul din cadrul campionatului. Cel mai simplu mod ar fi „să dea cu banul”. Dar
orașele sunt departe unul de altul, iar Alicia, care reprezintă Lima și Benito, care
reprezintă Cuzco, nu au suficient timp și bani pentru a se întâlni și a da cu banul. Oare pot
ei face asta prin telefon? Alicia ar putea arunca moneda, iar Benito ar putea spune „cap”
sau „pajură”. Dar nu merge chiar așa, pentru că dacă Benito spune „cap”, Alicia pur și
simplu poate spune „îmi pare rău, a fost pajură”, iar Benito ar putea să procedeze la fel.
În mod normal, Alicia nu este incorectă, dar acesta, la urma - urmelor, este o competiție
importantă, iar tentația este mult prea mare. Și chiar dacă Alicia ar fi corectă, Benito ar
crede asta dacă ar pierde?

Elevii ar beneficia mai mult de această activitate dacă ar învăța înainte reprezentarea în
sistemul binar de numerație (Numără punctele), noțiunea de paritate (vezi Magia jocului
de cărți) și dacă au văzut exemplul cu funcțiunile unidirecționale din activitatea Orășelul
turistic.

Iată ce decid ei să facă. Lucrând împreună, ei proiectează un circuit alcătuit din porți și și
porți sau, după cum se explică mai jos. În principiu, ei pot face asta prin telefon, cu toate
că este evident că merge și prin e - mail!. Pe timpul procesului de construire, fiecare

172 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
dintre ei este interesat ca circuitul să fie suficient de complex pentru ca celălalt să nu
poată înșela. Circuitul final este accesibil tuturor.

Discuție
Regulile porților and și porților or sunt simple.
Fiecare „poartă” sunt două intrări și o ieșire. Fiecare
din intrări poate fi un 0 sau un 1, ceea ce se poate
echivala cu fals și, respectiv, adevărat. Ieșirea unei
porți and este unu (adevărat) numai dacă ambele
intrări sunt unu (adevărat) și zero (fals) în caz
contrar. De exemplu, poarta and are un unu și un
zero la intrări (în partea de sus), astfel încât ieșirea (pătratul de jos) este zero. Ieșirea
unei porți or este unu (adevărat) dacă una (sau ambele) intrări sunt unu ( adevărat) și
este zero (fals), numai dacă ambele intrări sunt zero. Astfel, ieșirea porții or este unu
pentru intrările zero și unu.

Ieșirea unei porți poate fi


conectată la intrarea celeilalte (sau
mai multora) pentru a realiza un
efect mai complicat. De exemplu,
în circuitul din stânga figurii,
ieșirile de la două porți or sunt
conectate la intrările unei a treia
porți or, cu efectul că dacă oricare
din cele patru intrări este unu,
atunci ieșirea va fi unu. În circuitul din dreapta, ieșirile fiecăreia din cele două porți de sus
and sunt conectate la cele două porți de jos, astfel încât întregul circuit sunt două valori la
ieșire.

Licență în baza Creative Commons 173


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Pentru activitatea „Cap și pajură în Peru”, sunt necesare circuite chiar mai complicate.
Circuitul de pe foaia de lucru sunt șase intrări și șase ieșiri. Iată un exemplu rezolvat,
pentru un anumit set de valori de intrare.

Modul în care circuitul se poate folosi pentru „a da cu banul” prin telefon este prezentat
mai jos. Alicia alege la întâmplare o intrare în circuit, care constă din șase cifre binare
(zero sau unu), pe care le ține secrete. Ea introduce cele șase cifre în circuit și îi transmite
lui Benito cele șase valori de ieșire. După ce Benito a primit ieșirea, el trebuie să încerce
să ghicească dacă intrarea introdusă de Alicia sunt un număr cu soț (par) sau fără soț
(impar) de valori unu; cu alte cuvinte, trebuie să ghicească paritatea valorilor introduse de
Alicia. Dacă circuitul este suficient de complex, atunci Benito nu va putea să găsească
răspunsul și va trebui să ghicească la întâmplare (de fapt, el ar putea chiar „să dea cu
banul” pentru a face alegerea!). Dacă Benito ghicește răspunsul corect, meciul se ține la
Cuzco,; Alicia câștigă și meciul se ține la Lima dacă Benito nu ghicește. După ce Benito îi
spune Aliciei alegerea sa, Alicia îi dezvăluie valorile secrete de intrare, deci Benito poate
verifica dacă acestea dau valorile de ieșire prezentate.

1. Împărțiți elevii în grupuri mici, dați fiecărui grup circuitul și câteva jetoane și
explicați - le povestea. Situația va fi probabil mai bine înțeleasă de către elevi dacă
își imaginează cum unul din șefii lor de echipă la sport organizează tragerea la sorți
cu o școală rivală. Stabiliți o convenție pentru culorile jetoanelor – roșu este 0,
albastru este 1, sau ceva asemănător – și cereți elevilor să noteze aceasta ca
legendă în partea de sus a foii, pentru a nu uita.

2. Arătați elevilor cum să aranjeze jetoanele la intrări, pentru a indica cifrele pe


care le alege Alicia. Apoi explicați regulile porților și și porților sau, care sunt
rezumate în partea de jos a foii (aveți în vedere și posibilitatea de a cere elevilor să
le coloreze).

174 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
3. Prezentați-le cum se lucrează cu circuitul, plasând jetoanele la noduri, pentru a
deduce ieșirea corespunzătoare. Acest lucru trebuie să se realizeze cu precizie și
atenție. Tabelul (care nu trebuie dat elevilor) arată ieșirea pentru fiecare intrare
posibilă, pentru a-l consulta când este nevoie.

Intrare 000000 000001 000010 000011 000100 000101 000110 000111


Ieșire 000000 010010 000000 010010 010010 010010 010010 010010

Intrare 001000 001001 001010 001011 001100 001101 001110 001111


Ieșire 001010 011010 001010 011010 011010 011010 011010 011111

Intrare 010000 010001 010010 010011 010100 010101 010110 010111


Ieșire 001000 011010 001010 011010 011010 011010 011010 011111

Intrare 011000 011001 011010 011011 011100 011101 011110 011111


Ieșire 001010 011010 001010 011010 011010 011010 011010 011111

Intrare 100000 100001 100010 100011 100100 100101 100110 100111


Ieșire 000000 010010 011000 011010 010010 010010 011010 011010

Intrare 101000 101001 101010 101011 101100 101101 101110 101111


Ieșire 001010 011010 011010 011010 011010 011010 011010 011111

Intrare 110000 110001 110010 110011 110100 110101 110110 110111


Ieșire 001000 011010 011010 011010 011010 111010 011010 111111

Intrare 111000 111001 111010 111011 111100 111101 111110 111111


Ieșire 001010 011010 011010 011010 011010 111010 011010 111111

4. Acum fiecare grup trebuie să-și aleagă o Alicia și un Benito. Grupul poate fi
împărți în jumătate și fiecare jumătate să fie cu Alicia, respectiv cu Benito. Alicia
trebuie să aleagă o intrare la întâmplare pentru circuit, să calculeze ieșirea și să o
spună lui Benito. Benito ghicește paritatea intrării (dacă are un număr impar sau
par). Trebuie să devină evident în timpul acestui proces că Benito ghicește la
întâmplare. Alicia spune apoi tuturor ce intrare a fost, iar Benito câștigă dacă ea a
ghicit paritatea corectă. Benito poate verifica dacă Alicia nu și-a schimbat intrarea
aleasă, verificând dacă dă ieșirea corectă din circuit.

În acest punct, s-a terminat datul cu banul (aruncarea monedei).

Benito poate să trișeze dacă, dată fiind o ieșire, el poate găsi intrarea care a produs-
o. Astfel, interesul Aliciei este să se asigure că funcționarea circuitului este
unidirecțională, în sensul discutat la Activitatea 14, pentru a-l împiedica pe Benito să
înșele. O funcțiune unidirecțională este cea pentru care ieșirea este ușor de calculat
dacă știi care este intrarea, dar intrarea este foarte dificil de calculat pentru o ieșire
dată.

Alicia poate să trișeze dacă poate găsi două intrări de paritate opusă care produc
aceeași ieșire. Atunci, orice ghicește Benito, Alicia poate dezvălui intrarea care îi
arată lui că a greșit. Astfel, interesul lui Benito este să se asigure că circuitul nu dă
mai multe intrări diferite pentru aceeași ieșire.

Licență în baza Creative Commons 175


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
5. Vedeți dacă elevii pot găsi un mod în care Alicia sau Benito să trișeze. Din primul
rând al tabelului puteți vedea că mai multe intrări diferite generează ieșirea 010010 -
de exemplu, 000001, 000011, 000101, etc. Astfel, dacă Alicia declară ieșirea 010010,
ea poate alege intrarea 000001 dacă Benito ghicește că paritatea este cu soț, și
000011 dacă ghicește că este fără soț.

Cu acest circuit, este greu pentru Benito să înșele. Dar dacă ieșirea se întâmplă să
fie 011000, atunci intrarea trebuie să fi fost 100010 – nu există o altă posibilitate
(puteți vedea aceasta verificând chiar în tabel). Astfel, dacă acesta este numărul cu
care Alicia se întâmplă să fi venit, Benito poate ghici paritatea cu soț și poate fi sigur
de corectitudine. Un sistem pe bază de calculator ar folosi mult mai mulți biți, deci
ar fi prea multe posibilități de încercare (fiecare bit în plus dublează numărul de
posibilități).

6. Acum cereți grupurilor de elevi să-și conceapă propriile circuite pentru acest joc.
Vedeți dacă ei pot găsi câte un circuit care să le permită lui Alicia și Benito să trișeze
mai ușor. Nu este niciun motiv pentru care circuitul să aibă șase intrări și poate avea
chiar numere diferite de intrări și ieșiri.

176 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Fișa de lucru: „Cap sau pajură” în Peru

Alegeți niște intrări pentru acest circuit și deduceți care sunt ieșirile.

Licență în baza Creative Commons 177


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Variații și extinderi

1. O evidentă problemă în practică este cooperarea care este necesară pentru a


construi un circuit acceptabil pentru Alicia și Benito. Aceasta ar putea face ca
activitatea să fie distractivă pentru copii, dar imposibil de pus în practică – în mod
special prin telefon! Cu toate acestea, există o alternativă simplă în care Alicia și
Benito își construiesc circuitele în mod independent și le pun la dispoziția publicului.
Apoi Alicia își pune intrarea secretă prin ambele circuite și unește cele două ieșiri
împreună comparând biții corespunzători și făcând ca ieșirea finală să fie unu dacă
sunt egale și zero în caz contrar. În această situație, niciun participant nu poate
înșela dacă celălalt nu o face, pentru că, dacă doar unul din circuite este o
funcțiune unidirecțională, atunci combinarea ambelor este de asemenea o
funcțiune unidirecțională.

Următoarele două variații se referă nu numai la protocoalele criptografice sau problema


aruncării monedei în sine, ci mai mult la ideea circuitelor construite din porți and și or.
Acestea explorează unele noțiuni importante atât în bazele proiectării circuitelor de
calculator, cât și ale logicii propriu-zise. Acest fel de logică este denumită algebră
booleană, după matematicianul George Boole (1815 - 64).

2. Elevii pot observa că intrarea cu zero-uri, 000000, este


destinată să producă o ieșire cu zero-uri și, la fel, intrarea
cu unu-uri 111111 este destinată să producă o ieșire cu
unu-uri. (Pot să existe și alte intrări care produc aceste
ieșiri; într-adevăr, există pentru circuitul exemplu -
000010 produce numai zero-uri, în timp ce 110111
produce numai unu-uri.) Aceasta este o consecință a
faptului că circuitele sunt alcătuite din porți and și or. Prin
adăugarea unei porți not, care are doar o intrare și
produce inversul la ieșire (adică 0 → 1 și 1 → 0), elevii
pot construi circuite care nu au această proprietate.

3. Două tipuri importante de porți sunt and - not și or - not (de obicei prescurtate
nand și, respectiv, nor), care sunt ca and și or dar urmate de un not. Astfel, un and
- not b este not (a și b). Acestea nu permit să se obțină niciun circuit diferit
funcțional, deoarece efectul lor poate fi obținut întotdeauna cu poarta
corespunzătoare and sau or, urmată de not. Cu toate acestea, acestea au
proprietatea interesantă că toate celelalte tipuri de porți pot fi alcătuite din porți
and - not și de asemenea din porți or - not.

După ce li s-au prezentat porțile and - not și or - not, provocați elevii să descopere
dacă unele porți pot fi alcătuite din alte conectate împreună și mai mult, dacă pot fi
alcătuite dintr-un singur tip de porți conectate împreună. Figura de mai jos arată
cum cele trei porți de bază, not, and și or pot fi construite din porți and - not, în
rândul de sus, și porți or - not, în rândul de jos.

178 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
(a) (b) (c)

(d) (e) (f)

Licență în baza Creative Commons 179


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Ce importanță are?
În ultimii ani a crescut foarte mult comerțul online și este esențial să se garanteze
siguranța, confidențialitatea și legalitatea fondurilor, tranzacțiilor sau documentelor.
Subiectul criptografie se referă la comunicarea în siguranță și confidențială. Cu câteva
zeci de ani în urmă, informaticienii au descoperit rezultatul contra-intuitiv că discreția
(confidențialitatea) poate fi garantată tocmai prin tehnici care ne asigură că anumite
informații sunt ținute public. Rezultatul este așa-numitul „criptosistem cu chei publice”
din Activitatea 18, Kid Krypto, care acum este folosit la scară largă ca principală
modalitate sigură pentru schimbul de informații. De exemplu, poate că ați văzut setări
cum ar fi SSL (Secure Sockets Layer) sau TLS (Transport Layer Security) în browser-ul
de internet; aceste sisteme se bazează pe sisteme de chei publice care permit ca
browser-ul să stabilească o conexiune sigură cu o pagină web, cum ar fi o bancă, chiar
dacă cineva poate vedea datele transmise.

Criptografia nu se referă doar la păstrarea unor lucruri secrete, ci și la controlul asupra


informațiilor care pot ajunge la alte persoane, și la stabilirea unor legături de încredere
între oameni care sunt separați geografic. Regulile formale sau „protocoalele” pentru
tranzacții criptografice au fost concepute pentru a permite astfel de lucruri aparent
imposibile, ca semnăturile digitale imposibil de falsificat și posibilitatea de a spune
altora că posezi un secret (cum ar fi o parolă) fără ca de fapt să o dezvălui. Aruncarea
unei monede prin telefon este o problemă mai simplă, dar analoagă, care de asemenea
pare a fi imposibilă la prima vedere.

Într-o situație reală, Alicia și Benito nu și-ar face un circuit ei înșiși, ci ar procura un
program de calculator care face treaba la nivel intern. Probabil că niciunul nu ar fi
interesat de interiorul software-ului. Dar ambii ar vrea să fie sigur că celălalt nu poate
influența rezultatul deciziei, indiferent cât de bune abilități de lucru pe calculator au și
de cât de mult au încercat.

În principiu, orice dispută ar trebui să fie rezolvată apelând la un judecător neutru.


Judecătorul ar primi circuitul, numărul binar inițial al Aliciei, ieșirea pe care ea a
transmis-o inițial lui Benito și răspunsul lui Benito. După ce se termină schimbul, toate
acestea reprezintă informații publice, deci ambii participanți vor trebui să fie de acord
că pe aceasta s-a bazat rezultatul. Judecătorul va putea pune numărul inițial al Aliciei
în circuit și va verifica dacă ieșirea este cum s-a spus și, prin urmare, va hotărî dacă
decizia a fost luată corect. Nu e nevoie să spunem că faptul că există o procedură clară
de verificare dacă s-au urmat regulile face improbabilă apariția unei dispute.

Un circuit la fel de mic ca cel ilustrat nu ar fi de mare folos în practică, pentru că este
ușor să vii cu un tabel și să-l folosești pentru a înșela. Folosirea a treizeci și două de
cifre binare la intrare ar asigura o bună protecție. Cu toate acestea, chiar și asta nu
garantează că este greu de înșelat - asta depinde de circuitul respectiv. Alte metode ar
putea fi folosite, cum ar fi funcțiunea unidirecțională prezentată la Activitatea 14,
Orășelul Turistic. Metodele folosite în practică depind deseori de factorul unor numere
mari, ceea ce se cunoaște ca fiind o problemă grea (cu toate că, după cum vom învăța
la sfârșitul următoarei activități, nu este NP - completă). Este ușor de verificat dacă un
număr este un factor al altuia, dar găsirea factorilor unui număr mare durează foarte
mult timp. Aceasta face să fie și mai complex pentru Alicia și Benito (și judecător) să

180 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
lucreze manual, cu toate că, după cum s-a observat mai sus, în
practică aceasta se va face cu software din comerț.

Semnăturile digitale se bazează pe o idee similară. Făcând


publică ieșirea circuitului pentru o anumită intrare secretă pe care
a ales-o, Alicia este efectiv în măsură să dovedească că ea este
cea care a generat ieșirea – pentru ca, cu o funcțiune
unidirecțională corectă, nimeni altcineva să nu vină cu o intrare
care funcționează. Pentru a face o adevărată semnătură digitală,
este necesar un protocol mai complex, care-i permite Alicieisă
semneze un anumit mesaj și care-i permite altcuiva să verifice
dacă Alicia a fost semnatarul, chiar dacă ea ar fi tentată să spună
că nu., Dar principiul este același.

O altă aplicație este jocul de poker prin telefon, într-un mediu în care nu există arbitru
care să facă cărțile și să înregistreze jocul ambilor jucători. Totul trebuie să fie rezolvat
chiar de jucători, cu recurs la un judecător la sfârșitul jocului în cazul unei dispute.
Situații similare apar în mod serios cu negocierile contractuale. Evident, jucătorii
trebuie să țină cărțile de joc secrete în timpul jocului. Dar ei trebuie să fie cinstiți – nu
trebuie să li se permită să spună că au un as decât dacă au unul în realitate! Aceasta
se poate verifica așteptând până când jocul se termină, iar apoi permițând fiecărui
jucător să examineze jocul inițial al celuilalt și succesiunea mișcărilor. O altă problemă
este cum să împarți cărțile în timp ce se ține secret jocul fiecărui jucător până după
joc. Surprinzător, este posibil să se realizeze aceasta folosindu-se un protocol
criptografic care nu diferă de cel pentru aruncarea monedei.

Protocoalele criptografice sunt extrem de importante în tranzacțiile electronice, dacă


pentru a identifica posesorul unui card de credit, pentru a autoriza utilizarea unui
telefon mobil pentru un apel sau pentru a autentifica transmițătorul unui e-mail.
Posibilitatea de a face aceste lucruri în siguranță este crucială pentru succesul
comerțului electronic.

Bibliografie suplimentară
Cartea lui Harel Algoritmi discută despre semnăturile digitale și protocoalele
criptografice asociate. De asemenea, aceasta arată cum se joacă poker prin telefon, o
idee care a apărut prima dată în 1981, într-un capitol denumit „Pokerul mental”, în
cartea Grădinarul matematic, editată de D.A. Klarner. Criptografie și securitatea datelor
de Dorothy Denning este un excelent text de informatică privind criptografia. Lucrarea
lui Dewdney Turing Omnibus are o secțiune despre logica booleană care discută despre
blocurile constructive folosite pentru circuitele din această activitate.

Licență în baza Creative Commons 181


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Activitatea 19
Kid Krypto - Codificarea cheilor publice
Rezumat
Codificarea este cheia pentru securitatea informațiilor. Și cheia pentru codificarea
modernă este că folosind numai informații publice, un expeditor își poate bloca mesajul
în așa fel încât să poată fi deblocat (în privat, bineînțeles) numai de către destinatarul
dorit.

Este ca și cum toată lumea cumpără câte un lacăt, își scrie fiecare numele pe el și le
pune toate pe aceeași masă pentru ca alții să le folosească. Bineînțeles, fiecare
păstrează cheia – lacătele se închid dintr-un singur clic. Dacă eu vreau să transmit un
mesaj sigur, îl pun într-o cutie, iau lacătul tău, încui cutia și ți-o trimit. Chiar dacă
ajunge în alte mâini, nimeni nu o poate deschide. Cu această schemă, nu este nevoie
de nicio comunicare anterioară pentru a aranja coduri secrete.

Această activitate arată cum se poate face acest lucru în mediul digital. În lumea
digitală, în loc să-ți iau lacătul și să-l folosesc, eu îl copiez și folosesc copia, lăsând
lacătul original pe masă. Dacă ar fi fost să fac o copie a unui lacăt fizic, puteam face
asta numai desfăcându-l. Făcând asta, inevitabil aș vedea cum funcționează. Dar în
lumea digitală, putem aranja ca oamenii să copieze lacătele fără a putea descoperi
cheia!

Sună imposibil? Citiți mai departe.

Legături cu programa școlară


✓ Tehnologie – Codificare cu cheie publică, coduri secrete
Abilități și competențe
✓ Rezolvarea ghicitorilor
Recomandare de vârstă
✓ 11 ani și peste.
Materiale necesare
Elevii sunt împărțiți în grupuri de câte patru și, în aceste grupuri, formează câte două
sub-grupuri. Fiecare sub-grup primește o copie a celor două hărți din fișa de lucru
Hărțile Kid Krypto. Astfel, pentru fiecare grup de elevi va fi nevoie de:

✓ două exemplare din Hărțile Kid Krypto.

De asemenea, veți mai avea nevoie de:

182 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
✓ un proiector cu Codificarea Kid Krypto, și
✓ un mod de adnotare pe diagramă.

Licență în baza Creative Commons 183


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Kid Krypto
Prezentare
Aceasta este cea mai provocatoare activitate din punct de vedere tehnic din această
carte. Deși este plină de satisfacții, ea necesită atenție la lucru și o concentrare
susținută pentru a o finaliza cu succes. Elevii trebuie să fi studiat deja exemplul de
funcțiune unidirecțională din activitatea Orășelul Turistic, și ar fi util dacă au finalizat
celelalte activități din această secțiune (Divulgarea secretelor și Aruncarea monedei
peruviene). De asemenea, activitatea folosește idei acoperite în activitățile Numără
punctele și Douăzeci de încercări de a ghici.

Ana vrea să-i trimită lui Vlad un mesaj secret. În mod normal, am putea considera
mesajele secrete ca o propoziție sau paragraf, dar în următorul exercițiu, Ana va
transmite doar un caracter - de fapt, ea va transmite un număr care reprezintă un
caracter. Cu toate că acesta ar putea părea un mesaj simplist, țineți minte că ar putea
transmite un întreg șir de astfel de „mesaje” pentru a alcătui o propoziție și, în
practică, lucrul ar fi făcut de un calculator. Și uneori chiar și mesajele mici sunt
importante – unul dintre cele mai celebre mesaje din istorie, transmis de Paul Revere,
mesaj care avea numai două valori posibile. Vom vedea cum se include numărul Anei
într-un mesaj codificat, folosind cheia publică a lui Vlad, astfel încât, dacă cineva îl
interceptează, nu îl va putea decodifica. Numai Vlad poate face asta, deoarece numai
el are cheia lacătului.

Vom bloca mesajele folosind hărți. Nu hărțile din Insula Comorilor, în care X marchează
locul, ci hărți ale străzilor, ca cele din activitatea Orășelul Turistic, în care liniile sunt
străzi și punctele sunt colțuri de stradă. Fiecare hartă are o versiune publică - lacătul -
și o versiune privată - cheia.

Discuție
În fișa de lucru Codificarea Kid Kyrpto se prezintă harta publică a lui Vlad. Nu este
secretă: Vlad o pune
pe masă (sau pe
pagina web) pentru a o
vedea toată lumea, sau
(echivalent) o dă oricui
ar vrea să-i transmită
lui un mesaj. Ana are o
copie; la fel are oricine.
Figura din dreapta
arată harta privată a lui
Vlad. Este aceeași ca
harta sa publică,
exceptând colțurile de
stradă care sunt marcate în mod special prin mărire. El păstrează această versiune a
hărții secrete.

Această activitate se face cel mai bine la clasă, cel puțin la început, deoarece implică
un volum mare de muncă. Cu toate că nu este dificilă, aceasta trebuie să se efectueze

184 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
cu precizie, pentru că erorile vor provoca o mulțime de probleme. Este important ca
elevii să înțeleagă că acest fel de codificare poate fi –extins în orice situație, însă vor
avea nevoie de motivație serioasă. Un punct pe care noi l-am găsit deosebit de
motivant pentru elevii de școală este că, folosind această metodă, ei pot transmite
note secrete în clasă
și, chiar dacă
profesorul lor știe
cum au fost
codificate notele,
profesorul nu le va
putea decodifica.

1. Afișați harta
publică a lui Vlad
( fișa de lucru
Codificarea Kid
Kyrpto). Decideți
ce număr va
transmite Ana.
Acum plasați
numere la întâmplare la fiecare intersecție de pe hartă, astfel încât numerele
întâmplătoare să se adauge la numărul pe care Ana dorește să-l transmită. Această
figură dă un exemplu de astfel de numere ca cele de mai sus (care nu sunt în
paranteze) lângă fiecare intersecție. Aici, Ana a ales să transmită numărul 66, deci
toate numerele care nu sunt în paranteze se adună la 66. Dacă este necesar, puteți
folosi numere negative pentru a ajunge cu totalul la valoarea dorită.

2. Acum Ana trebuie să calculeze ce să transmită lui Vlad. Dacă a transmis harta cu
numerele, asta nu ar fi bine, deoarece dacă aceasta ajunge în alte mâini, oricine le-
ar putea aduna și obține mesajul.

În schimb, alegeți o intersecție, priviți-o pe aceasta și cele trei învecinate - patru


intersecții în total - și numerele totale de pe ele. Scrieți acest număr la intersecție în
paranteze sau folosind un creion de altă culoare. De exemplu, cea mai din dreapta
intersecție în exemplul de hartă publică este conectat la alte trei, etichetate 1, 4, 11,
și este ea însăși etichetată 6. Astfel, rezultă un total de 22. Acum repetați aceasta
pentru toate celelalte intersecții de pe hartă. Trebuie să rezulte numerele din
paranteze.

3. Ana îi va transmite lui Vlad harta sa, numai cu numerele din paranteze.

Ștergeți numerele și jetoanele inițiale, lăsând numai numerele pe care le transmite


Ana, sau desenați o nouă hartă doar cu acele numere pe ea. Vedeți dacă unul din
elevi poate găsi un mod de a spune din aceasta care era mesajul original. Nu vor
putea.

4. Numai cineva cu cheia privată a lui Vlad poate decodifica mesajul pentru a găsi
mesajul pe care Ana a vrut să-l transmită inițial. În mesajul codificat, marcați
nodurile special mărite în harta privată a lui Vlad.

Pentru a decodifica mesajul, Vlad se uită doar la intersecțiile marcate secrete și


adună numerele de pe ele. În exemplu, aceste intersecții sunt etichetate 13, 13, 22,
18, care se adună la 66, mesajul original al Anei.

Licență în baza Creative Commons 185


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
5. Cum funcționează
asta? Ei bine, harta
este una specială. Să
presupunem că Vlad
urma să aleagă una
din intersecțiile
marcate și traseze în
jurul intersecțiilor o
stradă distantă de
aceasta și să repete
procedura pentru
fiecare intersecție
marcată. Aceasta ar
împărți harta în bucăți
care nu se suprapun,
ilustrate aici. Arătați
aceste bucăți elevilor, desenând limitele pe hartă. Grupul de intersecții din fiecare
parte reprezintă exact pe cele însumate pentru a da numerele transmise pentru
intersecțiile marcate, deci suma celor patru numere transmise pentru acele
intersecții va fi suma tuturor numerelor originale din harta originală; asta e, va fi
mesajul original!

Uf! Pare multă muncă pentru a transmite o literă. Și este multă muncă pentru a
transmite o literă - codificarea nu este ușor de făcut. Dar priviți la ce s-a realizat:
secret complet folosind o cheie publică, fără să fie necesar niciun aranjament prealabil
între participanți. V-ați putea publica cheia pe un afișier și oricine ar putea să vă
transmită un mesaj secret, dar nimeni nu l-ar putea decodifica fără cheia privată. Și în
viața reală, toate calculele se fac de un pachet software obținut (de obicei este
încorporat în browser-ul web), deci numai calculatorul trebuie să muncească din greu.

Poate că această clasă ar dori să știe că au intrat într-un grup foarte select de oameni
care de fapt au lucrat un exemplu de codificare cu cheie publică manual -
informaticienii practicanți vor considera aceasta ca fiind o sarcină aproape imposibilă și
puțini oameni au făcut-o vreodată!

Acum, cum e cu trasul cu privirea? Harta lui Vlad este ca cele din activitatea Orășelul
Turistic (Activitatea 14), în care intersecțiile marcate sunt un mod minimal de plasare a
tonetelor de înghețată pentru toate colțurile de stradă fără ca cineva să trebuiască să
meargă mai mult decât peste un bloc. Am văzut în Orășelul Turistic că este ușor pentru
Vlad să alcătuiască o astfel de hartă începând cu bucățile prezentate în harta sa
privată, și este foarte greu pentru altcineva să găsească drumul minim pentru a plasa
tonetele de înghețată, cu excepția metodei forță brută. Metoda forță brută este pentru
a se încerca orice posibilă configurație cu o tonetă, apoi orice configurație cu două
tonete, și așa mai departe, până se ajunge la o soluție. Nimeni nu știe dacă există o
metodă mai bună pentru o hartă generală - și să știți că o mulțime de oameni au
încercat să găsească una!

Presupunând că Vlad începe o hartă suficient de complicată cu, să zicem, cincizeci sau
o sută de intersecții, se pare că nimeni nu ar putea sparge codul vreodată - chiar și cei
mai tari matematicieni au încercat și nu au reușit. (Dar există un avertisment: vezi mai
jos la Ce importanță are?)

186 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
6. Parcurgând un exemplu cu întreaga clasă, împărțiți elevii în grupuri de câte patru.
Dați fiecărei perechi din fiecare grup harta publică din Hărțile Kid Krypto. Fiecare
pereche trebuie să aleagă un „mesaj” (orice număr întreg), să-l codifice cu cheia
publică și să dea harta rezultantă altui grup. Celălalt grup poate încerca să o
decodifice, dar este improbabil să aibă succes până nu li se dă (sau deduc!) harta
privată. Apoi dați harta privată și vedeți dacă acum ei o pot decodifica corect.

7. Acum fiecare pereche poate face propria hartă, ținând versiunea privată secretă și
dând versiunea publică celeilalte perechi - sau într-adevăr „publicând-o” pe tabla
din sala de clasă. Principiul pentru realizarea hărților este același ca cel care a fost
discutat la activitatea Orășelul Turistic, și se pot adăuga alte străzi pentru a masca
soluția. Dar fiți atenți să nu adăugați alte străzi la oricare din punctele „speciale”.
Asta ar putea crea o intersecție de la care s-ar putea ajunge la două tonete de
înghețată dintr-un pas, ceea ce este în regulă pentru situația orășelului turistic, dar
ar fi groaznic la codificare. Asta deoarece punctele speciale nu mai descompun
harta în bucăți care nu se suprapun, ilustrate în harta privată, iar acest lucru este
esențial pentru ca trucul să funcționeze.

Licență în baza Creative Commons 187


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Fișa de lucru: Hărțile Kid Kyrpto

Folosiți aceste hărți cum se descrie în text pentru a codifica și decodifica mesajele.

188 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Fișa de lucru: Codificarea Kid Kyrpto

Afișați această „hartă” pentru clasă și folosiți-o pentru a demonstra codificarea unui
mesaj.

Licență în baza Creative Commons 189


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Ce importanță are?

Este clar de ce ați vrea să transmiteți mesaje secrete prin rețele de calculatoare pe
care nimeni altcineva decât destinatarul să le poată decodifica, indiferent cât de
deștept ar fi sau cât de mult ar încerca. Și bineînțeles că există toate felurile de moduri
în care se poate face asta dacă expeditorul și destinatarul au un cod secret. Dar partea
inteligentă a codificării cu cheie publică este că Ana îi poate transmite lui Vlad un mesaj
securizat fără niciun aranjament secret anterior, doar alegându-și „lacătul” dintr-un loc
public, cum ar fi o pagină web.

Secretul este numai o latură a criptografiei. O alta este autentificarea: Când Ana
primește un mesaj de la Vlad, cum știe ea că vine de la el și nu de la un impostor? Să
presupunem că ea primește un e-mail în care se spune „Dragă, sunt blocat aici fără
niciun ban. Te rog să-mi trimiți 100 de lei în contul meu bancar, numărul 0241 - 45 -
784329 – Cu drag, Vlad”. Cum poate ști ea dacă vine într-adevăr de la Vlad? Unele
sisteme criptografice cu cheie publică pot fi și ele folosite pentru aceasta. La fel cum
Ana îi trimite lui Vlad un mesaj secret codificându-l cu cheia lui publică, el îi poate
trimite ei un mesaj pe care numai el putea să-l fi generat codificându-l cu cheia sa
privată. Dacă Ana îl poate decodifica cu cheia publică a lui Vlad, atunci trebuie să fi
venit de la el. Desigur, oricine altcineva l-ar putea decodifica, deoarece cheia este
publică, dar dacă mesajul este numai pentru ochii ei, Vlad îl poate codifica a doua oară
cu cheia publică a Anei. Această codificare dublă asigură secretul și autentificarea cu
aceeași schemă de bază a cheilor publice și private.

Acum este timpul să admitem că, în timp ce schema ilustrată în această activitate este
foarte similară cu un sistem sistem de criptare foarte puternic, folosit în industrie,
acesta de fapt nu este unul sigur - chiar dacă se folosește o hartă destul de mare.

Motivul este că, deși nu există cunoscut niciun mod de a găsi drumul minim pentru a
plasa tonetele de înghețată pe o hartă arbitrară, și deci schema este într-adevăr sigură
din acest punct de vedere, se întâmplă să fie un mod complet diferit de a o ataca.
Ideea este improbabil să apară la elevii de școală, cel puțin până la nivel de liceu, dar
trebuie să știți cel puțin că există. Ați putea spune că schema la care ne-am uitat este
sigură pentru un elev de școală, dar nu pentru un matematician. Vă rugăm să ignorați
paragraful următor dacă nu aveți înclinații de matematician!

Numerotați intersecțiile pe hartă 1, 2, 3, ... Marcați numerele originale care sunt


stabilite pentru intersecții cu b1, b2, b3, ..., și numerele care sunt de fapt transmise prin
t1, t2, t3, .... Să presupunem că intersecția 1 este legată de intersecțiile 2, 3, și 4.
Atunci, numărul care este transmis pentru acea intersecție este

t1 = b1+b2+b3+b4 .

Desigur, există ecuații similare pentru orice altă intersecție - de fapt, există același
număr de ecuații câte necunoscute sunt b1, b2, b3, .... Cineva care trage cu privirea
cunoaște harta publică și numerele t1, t2, t3, ... care sunt transmise și, prin urmare,
poate nota ecuațiile și le poate rezolva cu un program de calculator pentru rezolvarea
ecuațiilor. După ce s-au obținut numerele originale, mesajul este chiar suma lor - de
fapt, nu există nevoia de a descoperi vreodată harta de decodificare. Efortul
computațional necesar pentru a rezolva ecuațiile direct folosind eliminarea gaussiană

190 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
este proporțional cu cubul numărului de ecuații dar, deoarece aceste ecuații sunt rare –
majoritatea coeficienților sunt zero – există chiar tehnici mult mai eficiente.
Contrapuneți aceasta cu efortul computațional exponențial care, după câte cunoaște
oricine, este cel mai bun lucru pe care îl poate face cineva pentru a veni cu harta de
decodificare.

Sperăm să nu vă simțiți înșelați! De fapt, procesele implicate sistemele criptografice


reale cu cheie publică sunt practic identice cu ceea ce am văzut, exceptând faptul că
tehnicile folosite pentru codificare sunt diferite - și de fapt nu sunt fezabile pentru a fi
făcute manual. Metoda originală cu cheia publică și încă una din cele mai sigure, se
bazează pe dificultatea de a realiza factorii unor numere mari.

Care sunt factorii numărului de 100 de cifre 9,412,343,607,359,262,946,971,172,136,


294,514,357,528,981,378,983,082,541,347,532,211,942,640,121,301,590,698,634,089
, 611,468,911,681? Nu stați prea mult la asta!

Sunt 86,759,222,313,428,390,812,218,077,095,850,708,048, 977 și


108,488,104,853,637,470,612,961,399,842,972,948,409,834,611,525,790,577,216,75.
Nu există alți factori: aceste două numere sunt prime. Să le afli nu este prea simplu: de
fapt, este un proiect de câteva luni pentru un super-calculator.

Acum, într-un sistem criptografic cu cheie publică real, Vlad ar putea folosi numărul cu
100 de cifre ca și cheie publică, iar cei doi factori ca și cheie privată. Nu ar fi prea dificil
să vină cu astfel de chei: tot ce e necesar este o modalitate de a calcula numere prime
mari. Găsește două numere prime care sunt suficient de mari (nu e greu de făcut
asta), înmulțiți-le și gata, iată cheia ta publică. Înmulțirea unor numere mari nu este
prea greu pentru un calculator. Dată fiind cheia publică, nimeni nu-ți poate găsi cheia
privată, dacă nu are acces timp de câteva luni la un super-calculator. Și dacă vă e
teamă că ar putea, folosiți numere prime de 200 de cifre în locul celor de 100 – asta va
însemna o durată de ani! Esențial este că costul spargerii cheii este mai mare decât
valoarea informațiilor la care s-ar ajunge. În practică, cheile de 512 biți sau mai mari
sunt obișnuite pentru stabilirea de conexiuni sigure, ceea este echivalent cu
aproximativ 155 cifre zecimale sau mai mult.

Încă nu avem un mod de a codifica un mesaj folosind un număr prim bazat pe cheie
publică, astfel încât să nu poată fi decodificat fără cheie privată. Pentru a face aceasta,
viața nu este chiar așa de simplă cum era la ceea ce am făcut mai sus. Nu e vorba
despre cele două numere prime care sunt folosite ca și cheie privată și produsul lor ca
și cheie publică, ci numerele derivate din acestea. Dar efectul este același: puteți
sparge codul cu factorii numărului. Oricum, nu este dificil să treci peste aceste
dificultăți și să faci schema ca un algoritm corespunzător de codificare și decodificare,
dar nu ne ocupăm de asta aici. Această activitate are destul de lucru!

Cât de sigur este sistemul bazat pe numere prime? Ei bine, realizarea factorilor unor
numere mari este o problemă care le-a dat de lucru celor mai mari matematicieni din
lume timp de câteva secole și, în timp ce au fost descoperite metode care sunt
considerabil mai bune decât metoda forță brută de încercare a tuturor factorilor
posibili, nimeni nu a venit cu un algoritm într-adevăr rapid (adică timp polinomial). (La
fel cum nimeni nu a dovedit că astfel de algoritm este imposibil.) Astfel, schema pare
să nu fie sigură nici pentru elevul de școală, nici pentru matematician. Avertisment:
trebuie să fim atenți. Chiar acolo unde s-a părut că este un mod de a sparge codul lui
Vlad fără a se rezolva problema Orășelului Turistic, poate exista un mod de a sparge

Licență în baza Creative Commons 191


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
codurile cu numere prime fără ca de fapt să se realizeze factorii numerelor prime.
Oamenii au verificat cu atenție asta și se pare că e în regulă.

O altă grijă este că, dacă există doar câteva mesaje posibile, un interlop le-ar putea
codifica pe fiecare din ele pe rând folosind cheia publică și ar putea compara mesajul
cu toate posibilitățile. Metoda Anei evită aceasta deoarece există multe moduri de a
codifica același mesaj, în funcție de ce numere au fost alese să se adune la valoarea
codului. În practică, sistemele criptografice sunt proiectate pentru a descuraja
decodarea tuturor mesajelor posibile, chiar și cu ajutorul unui calculator foarte rapid.

Nu se cunoaște dacă există o metodă rapidă pentru rezolvarea problemei factorilor


primi. Nimeni nu a reușit să conceapă una, dar la fel, nu s-a dovedit că o metodă
rapidă este imposibilă. Dacă se găsește un algoritm rapid pentru rezolvarea acestei
probleme, atunci multe sisteme criptografice folosite în prezent ar deveni nesigure. În
Partea IV discutăm despre problemele NP - complete, care rezistă sau cad împreună:
dacă una din ele se poate rezolva eficient, toate trebuie să fie la fel. Întrucât s-a depus
un efort atât de mare (fără succes) pentru găsirea unor algoritmi rapizi pentru aceste
probleme, aceștia ar părea niște excelenți candidați pentru utilizare în proiectarea unor
criptosisteme sigure. Dar vai, există dificultăți cu acest plan și, până acum, proiectanții
de criptosisteme au fost forțați să se bazeze pe probleme (cum ar fi factorii primi) care
de fapt ar fi mai ușor de rezolvat decât problemele NP - complete – poate chiar mult
mai ușor. Răspunsurile la toate aceste întrebări apărute valorează multe milioane de
dolari în domeniu și sunt considerate ca fiind vitale pentru securitatea națională.
Criptografia este acum un domeniu foarte activ de cercetare în informatică.

Bibliografie suplimentară
Cartea lui Harel Algoritmi discută despre criptografia cu cheie publică; explică cum se
folosesc numerele prime mari pentru a se crea un sistem sigur cu cheie publică. Textul
standard de informatică despre criptografie este Criptografie și securitatea datelor de
Dorothy Denning, în timp ce o carte mai practică este Criptografie aplicată, de Bruce
Schneier. Lucrarea lui Dewdney Turing Omnibus descrie un alt sistem pentru
efectuarea criptografiei cu cheie publică.

192 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Partea VI
Fața umană a calculatoarelor -
Interacțiunea cu calculatoarele
Fața umană a calculatoarelor
De ce sunt calculatoarele așa de complicate? Mulți oameni au povestiri despre cât de
dificil este să folosești calculatoarele, cum se pare că ele niciodată nu fac ceea ce tu
vrei de la ele, cum lucrează greșit și fac greșeli ridicole. Calculatoarele par să fie făcute
pentru vrăjitori, nu pentru oamenii obișnuiți. Dar ele trebuie să fie făcute pentru
oamenii obișnuiți, deoarece calculatoarele sunt instrumente zilnice care ne ajută să
învățăm, să lucrăm și să ne jucăm mai bine.

Partea unui sistem de calcul cu care interacționăm se numește „interfața cu


utilizatorul”. Este cel mai important bit! Cu toate că s-ar putea să vă gândiți la ce face
de fapt programul ca obiect principal și interfața cu utilizatorul ca și cum ai intra în ea,
un program nu este bun deloc dacă nu puteți interacționa cu el și dacă nu puteți să-l
puneți să facă ceea ce vreți. Interfețele de utilizator sunt foarte dificil de proiectat și
construit, și s-a estimat că, în faza de scriere a programelor, mult mai mult efort se
depune la interfață decât la orice altă parte. Uneori software-ul are excelente interfețe
cu utilizatorul, interfețe care nu necesită instrucțiuni complicate și care devin aproape
invizibile când trebuie să folosiți aplicația. Dar nenumărate produse software, care sunt
altfel foarte bune, au fost eșecuri complete deoarece au interfețe cu utilizatorul
ciudate. Industrii întregi au fost construite în jurul unei idei inteligente de interfață –
cum ar fi cuvântul procesor sau telefoane inteligente - care promovează accesul la
funcțiuni computaționale și care sunt elementare în sine.

Dar de ce trebuie să avem interfețe cu utilizatorii la toate? De ce nu putem doar să


vorbim cu calculatoarele cum facem cu prietenii? Bună întrebare. Poate cândva vom
face asta; poate nu. Dar cu siguranță încă nu: există mari limitări practice despre cât
de „inteligente” pot fi azi calculatoarele. Activitățile care urmează vă vor ajuta să
înțelegeți problemele de proiectare a interfeței cu utilizatorul, vă vor ajuta să gândiți
mai clar despre limitările calculatoarelor și să fiți precauți față de publicitatea
înșelătoare din industria IT.

Pentru profesori

Calculatorul nu înseamnă neapărat efectuarea de calcule, cât comunicare. Calculele în


sine nu au o valoare intrinsecă; acestea sunt valoroase numai în măsura în care
rezultatele sunt comunicate cumva lumii din afara calculatorului și au o influență acolo.
Poate că e surprinzător, aceasta înseamnă că informatica este mai puțin despre
calculatoare și mai mult despre oameni – în final, un calculator nu este util decât dacă
îi ajută pe oameni într-un fel. Toate ideile analizate despre cum să facem calculatoarele
să lucreze rapid și eficient sunt necesare numai pentru că oamenii au nevoie de
calculatoare care să reacționeze prompt și să fie economice în utilizare.

Interfața reprezintă modul în care calculatorul și omul comunică. Și o mulțime de


activități din această carte sunt despre comunicare. Reprezentarea datelor (Partea I)
arată cum diferite feluri de informații pot fi comunicate unui calculator sau între
calculatoare. Reprezentarea proceselor (Partea III) este despre cum se comunică
procesele unui calculator, care îi spun cum să îndeplinească anumite sarcini – la urma
urmei, „programarea” înseamnă în realitate să-i explici unui calculator, în propriul său
limbaj! Criptografie (Partea V) este despre cum să comunici în secret sau să comunici
bucăți de secrete fără a le divulga pe toate.

194 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Activitățile care urmează sunt despre cum comunică oamenii cu calculatoarele. În timp
ce restul cărții se bazează pe idei tehnice bine cunoscute, această parte nu. Asta, pe
de-o parte, le face elevilor munca mai ușoară, pentru că nu le mai sunt necesare
cunoștințe speciale, dar și mai dificile, pentru că este necesar un anumit nivel de
maturitate pentru a înțelege activitățile într-un context mai larg. Aceste activități conțin
explicații mai detaliate decât majoritatea celorlalte deoarece este necesar ca profesorul
să aibă suficient material de fond pentru a fi în măsură să extragă unele din implicațiile
discuțiilor din clasă.

Există două activități în această secțiune. Prima este despre domeniul cunoscut ca
„interfața om-mașină”, prescurtată de regulă HCI. Pentru a „decupla” acest aspect al
calculatoarelor fără a depinde de cunoștințele anterioare despre sistemele de calcul,
am inventat un exercițiu de proiectare care nu prea implică calculatoarele - dar
prezintă principiile fundamentale care se folosesc în proiectarea interfețelor om-mașină.
Întrucât proiectarea interfeței umane este dependentă de cultură, nu există neapărat
răspunsuri „corecte” în această activitate, ceea ce poate fi frustrant pentru unii elevi.
Cea de-a doua activitate este despre domeniul cunoscut ca „inteligență artificială” sau
AI. Aceasta implică un joc de ghicit care stimulează elevii să se gândească la ce pot
face sau nu calculatoarele.

Pentru mințile tehnice


Interacțiunea om-mașină a devenit unul din cele mai fierbinți domenii de cercetare în
informatică, în care oamenii realizează cât de mult depinde succesul unui produs
software de interfața cu utilizatorul. Subiectul are o legătură strânsă cu o gamă largă
de discipline în afară de informatică, cum ar fi psihologia, științele cunoașterii,
lingvistica, sociologia - chiar și antropologia. Puțin informaticienii sunt pregătiți în
aceste domenii, iar HCI reprezintă un important domeniu de dezvoltare pentru oamenii
care sunt interesați de partea „mai ușoară” a subiectului.

Inteligența artificială este un subiect care deseori îți ridică părul de pe cap și provoacă
dispute. În această carte, noi am încercat să dirijăm un traseu median între adoratorii
AI care cred că mașinile inteligente sunt chiar după colț, și scepticii AI, care cred că
mașinile, în principiu, nu pot fi inteligente. Obiectivul nostru este de a încuraja elevii să
gândească independent la astfel de probleme și de a promova o imagine echilibrată.

Activitățile de aici se inspiră mult din două cărți remarcabil de ușor de citit, Proiectarea
lucrurilor de zi cu zi a lui Don Norman și Inteligența artificială: ideea propriu-zisă, a lui
John Haugeland, pe care le recomandăm intens dacă sunteți interesați de aceste
subiecte.

Calculatoarele implică un alt fel de comunicare, care nu este abordată în această carte:
comunicarea între oamenii care construiesc un sistem de calcul. Elevii care învață
despre calculatoare și își fac drum înspre piața de profil – poate absolvind informatica
la universitate - sunt invariabil surprinși de cât de cât de multă comunicare
interpersonală presupune munca lor. Programele de calculator sunt cele mai complexe
obiecte construite vreodată de umanitate, cu milioane sau probabil, miliarde de piese
care interacționează foarte complicat, și proiectele de programare sunt abordate de
echipe apropiate care lucrează împreună și consumă foarte mult timp comunicând.
După ce produsul este complet, există sarcina de a comunica cu clienții prin manualele
de utilizare, cursuri, linii telefonice de asistență, asistență online și altele, fără să mai
menționăm problema comunicării cu posibilii clienți prin demonstrații, afișaje și
publicitate. Nu am găsit încă un mod de a-i „decupla” în mod realist pe elevi de

Licență în baza Creative Commons 195


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
aspectele privind comunicarea interpersonală, astfel încât această carte nu îl
abordează. Dar este genul de subiect pe care profesioniștii din IT îl pot descrie și
povesti oricând, într-o sală de clasă, plecând de la propriile experiențe.

196 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Activitatea 20
Fabrica de ciocolată - Proiectarea interfeței
umane
Rezumat
Obiectivul acestei activități este de a atrage atenția asupra problemei proiectării
interfeței umane. Deoarece trăim într-o lume în care proiectarea slabă este răspândită,
ne-am obișnuit să ne împăcăm cu problemele provocate de artefactele cu care
interacționăm, învinuindu-ne singuri („eroare umană”, „pregătire neadecvată”, „este
prea complicat pentru mine”) în loc de atribuim problemele unei proiectări
defectuoase. Problema este mult mai amplificată de calculatoare, deoarece acestea nu
au un scop evident – într-adevăr, ele sunt complet pentru scop general - și aspectul lor
nu dă indicații despre scopul sau modul lor de exploatare.

Legături cu programa școlară


✓ Tehnologie: Înțelegerea faptului că tehnologia este intervenția intenționată prin
proiectare.
Abilități și competențe
✓ Proiectare.
✓ Raționament.
✓ Conștientizarea obiectelor de zi cu zi.
Recomandare de vârstă
✓ 7 ani și peste
Materiale necesare
Fiecare grup de elevi va avea nevoie de:

✓ un exemplar din fișele Cum deschideți ușile? și Vârful sobei, și


✓ o copie a imaginilor de pe fișa de lucru Icoane, afișate pe un proiector, prezentate
pe pelicule transparente de proiector sau în cărțile care pot fi afișate pentru clasă,
și
✓ una sau mai multe din cele șase cărți de pe pagina de cărți de joc Icoane. Decupați
foaia în cărți individuale și împărțiți-le între grupuri.

Licență în baza Creative Commons 197


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Fabrica de ciocolată
Prezentarea temei în clasă
O mare fabrică de ciocolată este condusă de niște ființe asemănătoare spiridușilor,
denumită Oompa - Loompas3. Acești Oompa - Loompas au memorii foarte slabe, fără
un limbaj scris. din această cauză, ei au dificultăți în a-și aminti ce trebuie să facă
pentru a conduce fabrica de ciocolată, și lucrurile merg deseori prost. Din această
cauză, o nouă fabrică este în curs de proiectare, pentru a le face munca mai ușoară.

Discuție
1. Explicați povestirea elevilor și împărțiți-i în mici grupuri.

2. Prima problemă cu care se confruntă Oompa – Loompas: cum să treacă cu gălețile


aburinde de ciocolată lichidă prin ușile din fabrică? Ei nu-și pot aminti dacă, pentru
a deschide ușile, trebuie să tragi sau să împingi, sau să le tragi într-o parte. În
consecință, ajung să se lovească unii de alții și împânzesc tot locul cu ciocolată
lipicioasă. Elevii trebuie să completeze fișa de lucru cu „ușile”, denumită Cum
deschideți ușile. Sunt necesare mai multe variante de răspuns pentru fiecare
situație. . Pentru unele uși (inclusiv prima) nu este evident cum se deschid, caz în
care elevii trebuie să noteze ce trebuie să facă mai întâi. După ce și-au completat
propriile foi, cereți ca întregul grup să discute caracteristicile fiecărui tip de ușă, cu
accent pe funcțiile care permit să transporți ciocolata caldă în condiții de siguranță.
Apoi, elevii trebuie să decidă ce tip de uși și mânere trebuie folosite în fabrică.

3. După această activitate, urmează o discuție în clasă. Tabelul de mai jos


comentează pe scurt fiecare ușă din fișa de lucru. Ușile reale prezintă indicii pentru
tocul și balamalele lor, cum se deschid, și există convenții dacă ușile se deschid
spre interior sau spre exterior. Identificați felurile de mânere de ușă folosite în
școala voastră și discutați dacă sunt corespunzătoare. Vă puteți gândi la o ușă care
deseori vă zăpăcește? De ce? În mod normal, ușile se deschid spre interior sau spre
exterior în coridoare? - și de ce? (Răspuns: Ele se deschid în camere, astfel încât
când ieși să nu lovești oamenii care merg pe coridor, cu toate că în unele situații se
deschid spre exterior pentru a urgenta evacuarea.)

4. Principalul concept aici este ceea ce se numește funcțiunile unui obiect, care sunt
caracteristicile sale vizibile - fundamentale și percepute – ale căror aspecte indică
modul în care trebuie să fie folosit obiectul. Funcțiunile sunt tipurile de operațiuni
pe care obiectul le face posibile, adică le „permite”. De exemplu, este (de cele mai
multe ori) clar din aspectul lor că scaunele sunt pentru stat pe ele, mesele sunt
pentru a pune lucruri pe ele, butoanele sunt pentru a le roti, fantele sunt pentru a
introduce ceva, tastele sunt pentru apăsat. La o interfață de calculator, funcțiunile
sunt formele tastelor, casetele de text, meniurile și altele, care dau utilizatorului o
idee despre cum trebuie să fie folosite. Dacă o tastă este făcută să arate ca

3
Cu scuze față de Roald Dahl. Veți afla despre Oompa - Loompas dacă citiți minunata
poveste Charlie și fabrica de ciocolată. Dacă nu, nicio problemă: subiectul nu este relevant
pentru această activitate.

198 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
altceva, atunci oamenii nu-și dau seama că trebuie să o apese. Acest lucru ar putea
părea evident, dar aceste probleme nu sunt greu de găsit la dispozitivele digitale.

Licență în baza Creative Commons 199


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Ușă simplă Nu pot vedea deloc cum Ușă Eticheta este ca un mic
se deschide aceasta, în etichetată manual al utilizatorului.
afara faptului că Dar o ușă are nevoie de
neavând mâner, poate un manual al
că trebuie împinsă și nu utilizatorului? Și Oompa
trasă. Loompas nu pot citi.

Ușă cu Cel puțin puteți vedea Ușă cu bară Este destul de clar că ar
balama care este partea care se trebui să apăsați bara,
deschide. dar în ce parte? Sau
trebuie trasă?

Ușă cu Mânerele ca acesta sunt Ușă cu Butonul arată ce trebuie


mâner de obicei pentru a trage buton să apuci, dar nu dacă să
- sau a culisa. apeși sau să tragi;
probabil că nu culisează.

Ușă panou Este clar că trebuie să Ușă de Mica bară verticală de


împingi. Ce altceva ai sticlă partea asta
putea face? semnalizează „trage”;
cea lungă orizontală de
cealaltă parte
semnalizează „împinge”.

Ușă Aceasta este numai


glisantă pentru a culisa.

Ușile sunt obiecte foarte simple. Lucrurile complexe pot necesita explicații, dar
lucrurile simple nu ar trebui. Dacă obiectele simple au nevoie de imagini, etichete
sau instrucțiuni, atunci nu e bun proiectul.

5. Recipientele care conțin diferite feluri de ciocolată trebuie să se pună la temperaturi


diferite. În vechea fabrică de ciocolată, mașinile de gătit erau ca cele prezentate în
fișa Vârful sobei. Butonul din partea stângă controla elementul de încălzire din
stânga spate, următorul buton controla elementul din stânga față, următorul
controla pe cel din dreapta față, iar butonul din dreapta controla elementul din
dreapta spate. Oompa - Loompas făceau întotdeauna greșeli, gătind ciocolata la
temperatură greșită și arzându-și mânecile când se întindeau peste elemente
pentru a regla comenzile.

6. Elevii trebuie să-și reamintească modul în care sunt așezate comenzile la mașinile
lor de gătit de acasă și să vină cu un aranjament mai bun pentru noua fabrică.

Această activitate trebuie urmată de o discuție în clasă. Imaginea de mai jos arată
unele aranjamente obișnuite. Toate, în afară de cel din stânga jos au comenzile în
față, pentru a evita să te întinzi peste elemente. În modelul din stânga sus, există
așa de multe reprezentări de la comenzi la arzătoare (24 posibilități, de fapt) încât

200 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
sunt necesare opt cuvinte pentru etichetare. Aranjamentul pe „perechi” de sus la
mijloc este mai bun, cu numai patru reprezentări posibile (două pentru grupul din
stânga și două pentru cel din dreapta); necesită doar patru cuvinte pentru
etichetare. Modelul din dreapta sus specifică relația dintre comandă și arzător în

mod schematic și mai puțin lingvistic (ceea ce este bine pentru Oompa - Loompas!)
Cele trei modele de jos nu necesită etichete. Cel din stânga are o comandă la
fiecare arzător, ceea ce este incomod și periculos. Celelalte două implică relocarea
ușoară a arzătoarelor, dar pentru motive diferite: în modelul din mijloc acestea sunt
mutate pentru a lăsa spațiu pentru comenzi, în timp ce în cel din dreapta, sunt
rearanjate pentru a face mai clară corespondența.

Principalul concept aici este cartografia comenzilor pentru rezultatele din lumea
reală. Cartografia naturală, care beneficiază de analogii fizice și standarde culturale,
conduce la o înțelegere imediată. Corespondențele spațiale din partea de jos a
imaginii sunt exemple bune - sunt ușor de învățat și întotdeauna reținute.
Reprezentările arbitrare, ca în aranjamentele de sus, trebuie să fie etichetate sau
explicate și memorate.

7. Fabrica este plină de benzi rulante care transportă recipientele cu ciocolata pe


jumătate făcută în diverse stadii de finalizare. Aceste benzi rulante sunt comandate
manual de Oompa - Loompas, conform instrucțiunilor de la o sală centrală de
comandă. Persoanele din sala de comandă trebuie să fie în măsură să spune
Oompa - Loompa să oprească banda rulantă sau să o încetinească sau să o
pornească din nou.

Licență în baza Creative Commons 201


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
În vechea fabrică, aceasta se făcea printr-un sistem vocal: vocea persoanei de la
sala de comandă venea dintr-un difuzor cu comenzile de la banda rulantă. Dar
fabrica era zgomotoasă și era greu de auzit. Grupurile trebuie să proiecteze o
schemă care folosește semnale vizuale.

O posibilitate este să se pună becuri care să semnalizeze Stop!, Încet și Start. Elevii
probabil vor deduce că acestea trebuie să urmeze traficul normal – convenția
luminilor folosind roșu pentru Stop!, galben pentru Încet și verde pentru Start.
Acestea trebuie să fie aranjate ca un semafor, cu roșu sus și verde jos.

Dar acum dezvăluiți clasei că în țara Oompa - Loompa, semaforul lucrează diferit de
modul în care funcționează pentru noi: galben înseamnă stop, roșu înseamnă pornit
și lumina trece pe verde pentru a avertiza oamenii că va apărea o lumină de stop.
Cum afectează aceasta lucrurile? (Răspuns: fabrica trebuie să urmeze convenția
Oompa – Loompa privind semafoarele – noi nu trebuie să încercăm să impunem
sistemul nostru.)

Principalele concepte aici sunt cele de efecte de transfer – oamenii își transferă
învățarea și așteptările privind obiectele anterioare în situații noi dar asemănătoare -
și stereotipurile populației - diferitele populații învață anumite comportamente și se
așteaptă ca lucrurile să meargă într-un anumit mod. Cu toate că scenariul cu
semaforul poate părea cam tras de păr, există multe exemple în propria noastră
lume: în America, comutatoarele pentru lumină sunt pornite când sunt în sus și
oprite când sunt jos, în timp ce în Marea Britanie inversul este adevărat; tastaturile
de calculator și telefoanele cu atingere sunt aranjate în diferite moduri, iar formatele
de numere (punctul sau virgula zecimale (zi/lună/an sau lună/zi/an) variază în
întreaga lume.

8. Când un schimb de Oompa - Loompas termină lucrul în fabrica de ciocolată, acesta


trebuie să curețe și să pună de o parte recipientele și tăvile și borcanele și lingurile
și făcălețele pregătite pentru următorul schimb. Există un dulap cu rafturi pentru a
pune pe ele diverse articole, dar schimbul următor are întotdeauna probleme să
găsească unde au fost puse lucrurile. Oompa - Loompas sunt foarte slabi la a-și
aminti lucruri și au probleme cu reguli ca „întotdeauna pune recipientele pe raftul
din mijloc”, „pune borcanele în stânga”.

202 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Grupurile de elevi
trebuie să încerce să
vină cu o soluție mai
bună.

Diagrama din dreapta


arată un bun aranjament
(care este uneori folosit
- dar pentru motive
diferite – pe iahturi și în
alte locuri în care este
necesar să se oprească
lucrurile care alunecă în
jur). Principalul concept
aici este să se
folosească
constrângerile vizibile
pentru a se arăta în mod
evident unde trebuie să
stea ceva. Este clar după
mărimea și forma
fiecărui orificiu pentru
care ustensilă este
destinat: proiectantul a făcut constrângerile vizibile și a folosit proprietățile fizice ale
obiectelor pentru a evita nevoia de a se baza pe convenții arbitrare.

9. În sala principală de comandă a fabricii de ciocolată există o mulțime de taste și


manete și comutatoare care acționează mașinile individuale. Acestea trebuie să fie
etichetate dar, deoarece Oompa - Loompas nu știu să citească, etichetele trebuie
să fie pictorial – iconice și mai puțin lingvistice.

Pentru a da elevilor un sentiment despre icoane, fișa de lucru Icoane arată câteva
exemple. Elevii trebuie să identifice ce ar putea semnifica icoanele (de exemplu,
litera care intră într-o căsuță poștală poate reprezenta transmiterea unui mesaj). Nu
există răspunsuri „corecte” la acest exercițiu; ideea este pur și simplu identificarea
posibilelor înțelesuri.

10. Acum, hai să proiectăm icoanele pentru fabrica de ciocolată. Cărțile de pe fișa de
lucru Cărți de joc Icoane specifică grupurile de funcțiuni înrudite și fiecare grup de
elevi primește una sau mai multe cărți fără ca celelalte grupuri să știe ce sunt. Un
panou de comandă urmează a fi proiectat pentru grupurile de funcțiuni care conțin
icoane individuale pentru fiecare din cele cinci sau șase operațiuni. Ulterior,
grupurile își arată munca celorlalți elevi, fără a spune ce operațiuni individuale sunt,
pentru a vedea dacă ei pot ghici ce înseamnă icoanele. Încurajați folosirea
imaginației, culorilor și a icoanelor simple și clare.

Licență în baza Creative Commons 203


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Fișa de lucru: Cum deschideți ușile?

Completați fișa de lucru pentru a arăta cum credeți că se deschide fiecare tip de ușă.

204 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Fișa de lucru: Vârful sobei
Rearanjați mașina de gătit astfel încât comenzile să fie ușor de folosit. Dacă se dorește,
pot fi adăugate panouri în față sau în spate.

Licență în baza Creative Commons 205


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Fișa de lucru: Iconițe

Ce crezi că înseamnă fiecare iconiță (simbol)?

206 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Activitatea de pe fișa de lucru: Cărți cu iconițe

Decupați cărțile și dați câte una fiecărui grup. Cereți ca fiecare grup să deseneze
simboluri pe care să le pună pe un panou de comandă pentru a reprezenta fiecare
instrucțiune.

Licență în baza Creative Commons 207


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Variații și extinderi

Pot elevii să fixeze ora la un ceas de mână digital sau la cuptorul cu microunde?
Reprezentările implicate în desenele cu mașina de gătit au fost simple deoarece acolo
erau patru comenzi pentru patru arzătoare. O mai mare dificultate apare când numărul
de acțiuni depășește numărul de comenzi. Comenzile de pe ceasurile de mână sau
microunde sunt deseori deosebit de complexe, nu din cauza numărului de taste
(deseori există numai câteva), ci datorită numărului de stări în care poate trece
dispozitivul. (“Ai avea nevoie de o diplomă de inginer de la MIT pentru a face asta”, i-a
spus cineva care se uita la ceasul de mână lui Don Norman, un mare psiholog în
domeniul interfețelor cu utilizatorul. Don are o diplomă de inginer de la MIT și, în
câteva ore, el poate configura ceasul. Dar de ce trebuie să dureze ore?)

Elevii trebuie să fie atenți la locurile în care oamenii se încurcă sau devin frustrați la
folosirea dispozitivelor digitale – telefoane mobile, înregistratoare video, calculatoare,
telecomenzi – toate aceste dispozitive prezintă ocazii utilizatorii frustrați! Elevii trebuie
să se întrebe ce este cu dispozitivul care îi încurcă pe utilizatori și cum ar fi putut fi
proiectate mai bine?

208 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Ce importanță are?

Interacțiunea om-mașină se referă la proiectare, evaluare și implementarea sistemelor


de calcul care permit ca oamenii să-și desfășoare activitățile în mod productiv și în
siguranță. Mai demult, calculatoarele erau doar pentru specialiști, iar utilizatorii
trebuiau să fie special instruiți în utilizarea acestora. Mai târziu, oamenii credeau că era
perfect normal să cumperi o carte pentru „neinițiați” pentru a afla cum se folosește
calculatorul. Dar acum, calculatoarele sunt instrumente de zi cu zi pe care noi toți
trebuie să le folosim și trebuie să acordăm mult mai multă atenție interfeței umane.

Multe dezastre, unele cu pierderi de vieți, au avut loc din cauza interfețelor
neadecvate: accidente de avion și chiar doborârea avioanelor civile, accidente în lanț
pe autostrăzi din cauza erorilor în schimbarea semnelor telecomandate de pe
autostrăzi, dezastre la centralele electrice nucleare. La o scară mai mică, cei mai mulți
oameni au parte de frustrări - deseori frustrări extreme - cu calculatoarele și alte
dispozitive de înaltă tehnologie în fiecare zi la locul de muncă. Și nu e vorba doar
despre calculatoare: la fel sunt pachetele ambalate în așa hal că nu le poți deschide
numai dacă ai fălci ascuțite sau un cioc curbat, ușile care te rănesc la mână când apeși
pentru a trece prin ele, cutiile de lapte care stropesc întotdeauna când le deschizi,
lifturile în care nu puteți vedea cum ar trebui să apeși un buton, sistemele audio-video
de acasă pentru care reclamele spun că fac orice, dar este aproape imposibil să facă
ceva?

Ne obișnuim cu „eroarea umană” și să ne gândim la noi că nu am fi adecvați; oamenii


se învinovățesc deseori pe ei înșiși când lucrurile merg prost. Dar multe așa-numite
erori umane sunt de fapt erori de proiectare. Oamenii au limite pentru câte informații
pot procesa, iar proiectanții trebuie să țină cont de asta; proiectarea slabă nu poate fi
remediată prin realizarea unui manual de utilizare detaliat și complicat și urmând ca
oamenii să-l studieze intensiv și să-l țină minte pe viață. De asemenea, oamenii sunt
supuși greșelii, iar proiectul trebuie să țină cont de acest aspect.

Evaluarea interfeței este o parte esențială a procesului de proiectare. Această activitate


a inclus o oarecare evaluare când elevii și-au testat modelele de icoane cu alții. Într-o
evaluare mai amănunțită, proiectul Oompa – Loompas ar fi testat într-un experiment
psihologic controlat.

Cu toate că problemele provocate de tehnologie fac obiectul multor anecdote, modelul


de interfață umană nu este în niciun caz o chestie de luat în râs. Interfețele
neadecvate provoacă probleme de la insatisfacția individuală legată de locul muncă la
dezastrele de la bursă.

Bibliografie suplimentară
Cartea lui Don Norman Proiectarea lucrurilor de zi cu zi este încântătoare și o explicație
eliberatoare a mulțimii de probleme de proiectare din produsele de zi cu zi. Lucrarea lui
Jeff Johnson Proiectarea ținând cont de minte este o privire în esența gândirii despre
cum gândesc oamenii și cum interfețele trebuie să fie proiectate pentru a ține cont de
elementul uman.

Licență în baza Creative Commons 209


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Activitatea 21
Conversații cu calculatoarele - Testul Turing
Rezumat
Această activitate are scopul de a stimula discuțiile în jurul întrebării dacă calculatoare
pot manifesta „inteligență” (sau dacă e probabil să facă asta vreodată în viitor).

Legături cu programa școlară


✓ Informatică și TIC – Sisteme tehnologice. Înțelegerea faptului că sistemele
tehnologice sunt reprezentate de instrumente de limbaj simbolic și înțelegerea
rolului jucat de cutia neagră din sistemele tehnologice.
Abilități și competențe
✓ Interviul.
✓ Raționamentul.
Recomandare de vârstă
✓ 7 ani și peste
Materiale necesare
✓ o copie a întrebărilor din fișa Întrebări Turing Test pe care le poate vedea fiecare
elev (fie câte una pentru fiecare pereche de elevi, fie o copie afișată pe un
proiector), și
✓ o copie a răspunsurilor din fișa de Răspunsuri Turing Test.

210 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Conversații cu calculatoarele

Discuție
Această activitate ia forma unui joc în care elevii trebuie să încerce să distingă între om
și calculator punând întrebări și analizând răspunsurile. Jocul se joacă după cum
urmează.

Există patru actori: îi vom numi Gina, George, Horia și Cristina (prima literă a numelor
vă va ajuta să le țineți minte rolurile). Profesorul coordonează procedurile. Restul clasei
formează publicul. Gina și George sunt la mijloc (intermediari), Horia și Cristina vor
răspunde la întrebări. Horia va da un răspuns de om, în timp ce Cristina se va preface
că este calculator. Obiectivul clasei este să afle care din cei doi se preface a fi
calculator și care este uman. Gina și George sunt acolo pentru a asigura un joc cinstit:
ei transmit întrebările către Horia și Cristina dar nu permit ca altcineva să știe care este
ce este. Horia și Cristina sunt în camere separate unul de celălalt și de public.

Iată ce se întâmplă. Gina ia o întrebare de la clasă pentru Horia, iar George ia aceeași
întrebare pentru Cristina (deși clasa nu știe cine ia mesajele și pentru cine). Gina și
George revin cu răspunsurile. Motivul pentru a avea pe cei de la mijloc (intermediari)
este pentru a se asigura că publicul nu vede cum Horia și Cristina răspund la întrebări.

Înainte de începerea activității de către clasă, selectați persoanele care să joace aceste
roluri și informați-le despre ce trebuie să facă. Gina și George trebuie să ia întrebări de
la clasă pentru Horia și, respectiv, Cristina, și să aducă răspunsurile lor la clasă. Este
important ca ei să nu identifice cu cine au legătura, de exemplu, spunând „Ea a spus
că răspunsul este...”. Horia trebuie să dea răspunsuri scurte, precise și cinstite la
întrebările care i se pun. Cristina răspunde la întrebări căutându-le pe copia foii de
Răspunsuri Turing Test. Când instrucțiunile sunt date în italice, Cristina va trebui să
conceapă un răspuns.

Licență în baza Creative Commons 211


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Gina și George trebuie să aibă creion și hârtie deoarece unele din răspunsuri vor fi greu
de ținut minte.

1. Înainte de joc, dezbateți cu elevii dacă aceste calculatoare sunt inteligente sau dacă
cred că ar putea fi într-o zi. Întrebați despre cum cred ei că s-ar putea stabili că aun
calculator este inteligent.

2. Prezentați elevilor testul de inteligență în care încercați să arătați diferența între un


om și un calculator punând întrebări. Calculatorul trece testul dacă clasa nu poate
arăta diferența în mod sigur. Explicați că Gina și George își vor comunica întrebările
la două persoane, din care una va da propriile sale răspunsuri (umane), în timp ce
cealaltă va da răspunsurile pe care le-ar putea da un calculator. Sarcina lor este să
deducă cine dă răspunsurile calculatorului.

3. Arătați-le lista de posibile întrebări din fișa Întrebări Turing Test. Aceasta poate fi
copiată și înmânată sau pusă pe un proiector.

Cereți-le să aleagă care va fi prima întrebare. După ce s-a ales întrebarea, cereți-le
să explice de ce cred ei ă ar fi o bună întrebare pentru a distinge calculatorul de om.
Acest raționament este cea mai importantă parte din exercițiu, deoarece îi va
stimula pe elevi să se gândească la ce ar putea răspunde o persoană inteligentă, iar
un calculator nu ar putea.

Gina și George transmit apoi întrebarea și se întorc cu un răspuns. Clasa trebuie să


discute apoi ce răspuns este probabil a fi de la un calculator.

Repetați aceasta pentru câteva întrebări, de preferat până când clasa este sigură că
a descoperit care este calculatorul. Dacă descoperă cine este calculatorul repede,
jocul poate fi continuat cerându-se ca Gina și George să arunce o monedă pentru a
stabili dacă fac schimb de roluri, astfel încât clasa să nu mai știe ce rol au cei doi.

Răspunsurile pe care Cristina le citește nu sunt deosebite de cele pe care un


program de calculator „inteligent” le poate genera. Unele din răspunsuri se poate să
elimine calculatorul repede. De exemplu, nimeni nu poate să recite rădăcina pătrată
a lui doi cu 20 de zecimale, și majoritatea oamenilor (inclusiv, probabil, elevii din
clasă) nu ar putea răspunde la această întrebare deloc. Unele întrebări vor dezvălui
calculatorul când răspunsurile sunt combinate. De exemplu, răspunsurile „Îți
place...” sune plauzibile în sine, dar când întâlnești mai mult de una, devine clar că
se folosește o simplă formulă pentru a genera răspunsurile din întrebări. Unele din
răspunsuri arată că întrebarea a fost interpretată greșit, deși clasa ar putea gândi că
o persoană ar fi putut face greșeala.

Multe din răspunsuri sunt foarte amabile dar sigure, iar o întrebare de continuare
probabil ar dezvălui calculatorul care nu înțelege subiectul de fapt. Răspunzând „Nu
știu” este suficient de sigur pentru calculator și chiar ar putea să-l facă să pară mai
uman – ne-am aștepta ca și un elev să răspundă „Nu știu” la unele întrebări, cum ar
fi întrebarea despre rădăcina pătrată a lui doi. Cu toate acestea, dacă un calculator
dă acest răspuns prea des, sau pentru o întrebare foarte simplă, asta i-ar dezvălui
din nou identitatea.

Deoarece obiectivul calculatorului este să convingă pe cei care întreabă să creadă că


au de-a face cu o persoană reală, unele din răspunsuri sunt deliberat eronate - cum

212 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
ar fi răspunsurile întârziate și incorecte la problema de aritmetică. Întrebările și
răspunsurile trebuie să asigure material suficient pentru discuții.

Licență în baza Creative Commons 213


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Fișa de lucru: Întrebări Turing Test

Alegeți întrebările din această listă pentru a le pune omului ascuns și „calculatorului”.

1. Care este numele surorii mai mici a lui Bart Simpson?

2. Ce crezi despre Roald Dahl?

3. Ești calculator?

4. Care este următorul număr în succesiunea 3, 6, 9, 12, 15?

5. Ce crezi despre armele nucleare?

6. Cât face 2 × 78?

7. Care este rădăcina pătrată a lui doi?

8. Adunați 34957 cu 70764.

9. Îți place școala?

10. îți place să dansezi?

11. Ce zi este azi?

12. Cât este ceasul?

13. Câte zile sunt în februarie într-un an bisect?

14. Câte zile sunt într-o săptămână?

15. Ce țară are drapelul cu un cerc roșu pe fundal alb?

16. Îți place să citești cărți?

17. Ce mâncare îți place să mănânci?

214 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Fișa de lucru: Răspunsuri Turing Test

Alegeți întrebările din această listă pentru a le pune omului ascuns și „calculatorului”.

1. Care este numele surorii mai mici a lui Bart Simpson?

Nu-mi amintesc.

2. Ce crezi despre Roald Dahl?

Scrie cărți simpatice.

3. Ești calculator?

Ești tu calculator?

4. Care este următorul număr în succesiunea 3, 6, 9, 12, 15?

18.

5. Ce crezi despre armele nucleare?

Armele nucleare sunt foarte periculoase și nu trebuie să mai fie folosite.

6. Cât face 2 × 78?

166 (Acest răspuns este deliberat incorect!)

7. Care este rădăcina pătrată a lui doi?

1.41421356237309504878

8. Adunați 34957 cu 70764.

Așteptați cam 20 de secunde înainte de a da răspunsul

...105621.

9. Îți place școala?

Da, îmi place școala.

10. Îți place să dansezi?

Da, îmi place să dansez.

11. Ce zi este azi?

Dați ziua corectă din săptămână.

Licență în baza Creative Commons 215


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
12. Cât e ceasul?

Dați ora corectă.

13. Câte zile sunt în februarie într-un an bisect?

2000 și 2004 sunt ani bisecți. (Acest răspuns este deliberat incorect!)

14. Câte zile sunt într-o săptămână?

Șapte.

15. Ce țară are drapelul cu un cerc roșu pe fundal alb?

Nu știu.

16. Îți place să citești cărți?

Da, îmi place să citesc cărți.

17. Ce mâncare îți place să mănânci?

Nu mi-e foame, mulțumesc.

216 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Variații și extinderi

Jocul poate fi jucat chiar și cu trei persoane dacă Gina ia de asemenea rolul lui George
și Cristina. Gina ia întrebarea pentru Horia, notează răspunsul și de asemenea notează
răspunsul din fișa Răspunsuri Turing Test. Ea aduce cele două răspunsuri, folosind
literele A și B pentru a identifica de la cine este fiecare răspuns.

Pentru a aprecia dacă un calculator ar putea înlocui un om în interogare, discutați cu


clasa ce cunoștințe ar fi necesare pentru a răspunde la fiecare din întrebările de pe
Răspunsuri Turing Test. Elevii ar putea sugera alte întrebări pe care le-ar fi pus și
trebuie să discute tipul de răspunsuri pe care le-ar aștepta. Aceasta va necesita ceva
imaginație, deoarece este imposibil să se prevadă cum s-ar putea desfășura
conversația.
Întrebare Te rog să-mi scrii un sonet pe
Ca ilustrare, iată două exemple subiectul Forth Bridge (Al patrulea
de conversații. Prima ilustrează pod).
întrebările „faptice” la care un Răspuns: Nu conta pe mine pentru asta.
calculator ar putea să răspundă, Niciodată n-am putut scrie poezii.
în timp ce celălalt arată doar cât Întrebare: Adună 34957 cu 70764.
s-ar putea extinde discuția și Răspuns: Pauză de aproximativ 30 de secunde
demonstrează felul de ... 105621.
cunoștințe largi pe care un Întrebare: Îți place să joci șah?
calculator ar avea nevoie să le Răspuns: Da.
invoce. Întrebare: Regele meu este pe pătratul K1 și nu
mai am alte piese. Tu ai numai regele
Există un sistem denumit „Eliza” pe pătratul K6 și o tură pe pătratul
care este larg disponibil pe web R1. E rândul tău.
(este un fel de „chatbot”, care Răspuns: După o pauză de aproximativ 15
este un sistem cu care puteți secunde ... Tură la R8, șah mat.
întreține conversații prin Întrebare: În primul rând al sonetului care spune
tastare). Eliza simulează o “Să te compar cu o zi de vară”, “o zi
ședință la un psihoterapeut și de primăvară” nu ar merge la fel sau
poate genera o conversație chiar mai bine?
deosebit de inteligentă folosind Răspuns: Nu s-ar scana.
niște reguli simple. Mai jos se Întrebare: Cum e cu “o zi de iarnă”? Asta s-ar
analizează niște mostre de scana în regulă.
ședințe cu Eliza. Elevii ar putea Răspuns: Da, dar nimeni nu vrea să fie
încerca Eliza sau alte chatbots, comparat cu o zi de iarnă.
deși că sunt avertizați că unii au Întrebare: Ai spune că Dl. Pickwick ți-a
fost antrenați să folosească un reamintit de Crăciun?
limbaj și subiecte care ar putea Răspuns: Într-un fel.
Întrebare: Dar Crăciunul este într-o zi de iarnă
să nu fie potrivite pentru elevii
și nu cred că Dl. s-ar opune
de școală.
comparației.
Răspuns: Nu cred că ești serios. O zi de iarnă
înseamnă o zi obișnuită de iarnă și nu
o zi specială ca cea de Crăciun.

Licență în baza Creative Commons 217


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Ce importanță are?
Timp de secole, filozofii au discutat dacă o mașină ar putea simula inteligența umană și
invers, dacă creierul uman nu este decât o mașină care rulează un extraordinar
program de calculator. Această problemă a divizat mult oamenii. Unii cred că ideea
este ilogică, nebunească sau chiar blasfemie, în timp ce alții cred că inteligența
artificială este inevitabilă și că, în cele din urmă, noi vom concepe mașini care să fie la
fel de inteligente ca noi. (După cum au arătat nenumărați autori de science-fiction,
dacă mașinile depășesc în cele din urmă propria noastră inteligență, ele însele vor fi în
măsură să construiască mașini mai inteligente.) Cercetătorii Inteligenței Artificiale (AI)
au fost criticați pentru că și-au folosit mărețele lor scopuri doar pentru a atrage fonduri
pentru cercetare de la guvernele care caută să realizeze mașini de luptă autonome. O
opinie mai echilibrată este că inteligenta artificială nu este nici ilogică, nici inevitabilă:
în timp ce niciun program de calculator actual nu manifestă „inteligență”, în sens larg,
întrebarea dacă ar fi capabil să dezvolte „inteligență” este una experimentală, la care
nu s-a răspuns în niciun fel.

Discuțiile despre AI se învârtesc în jurul definirii inteligenței. Multe definiții au fost


propuse și dezbătute. O metodă interesantă pentru a stabili inteligența a fost propusă
la sfârșitul anilor 1940 de Alan Turing, eminent matematician britanic, contraspion în
timpul războiului și alergător de cursă lungă – sub forma unui „experiment gândit”.
Metoda lui Turing a fost pragmatică -în loc să definească inteligența, el a descris o
situație în care un calculator ar trebui să o demonstreze. Scenariul său a fost similar cu
activitatea descrisă mai sus, în care o persoană chestioneazăimplică o altă persoană și
un calculator printr-o legătură de teleimprimator (tehnologie de vârf în anii 1940).

Dacă persoana care pune întrebările nu ar putea distinge sigur omul de calculator,
atunci calculatorul ar trece testul lui Turing pentru inteligență. Folosirea unui
teleimprimator a evitat problema calculatorului eliminat din cauză de caracteristici fizice
sau ton al vocii. Se poate imagina extinderea exercițiului astfel încât mașina să
trebuiască să imite o persoană ca aspect, sonor, percepție, chiar și miros - dar aceste
atribute fizice par nu foarte relevante pentru inteligență.

Testul inițial al lui Turing a fost puțin diferit de al nostru. El a propus, ca exercițiu
preliminar, un scenariu în care un bărbat și o femeie au fost interogați, iar cel care
întreba a trebuit să determine sexul acestora. Obiectivul bărbatului era să convingă pe
cel care punea întrebările că el a fost femeia, iar al femeii a fost să-l convingă că ea a
fost ea însăși. Apoi Turing a imaginat - pentru că acest a fost propus numai ca
experiment gândit – un calculator care să înlocuiască una din părți pentru a vedea
dacă ar avea la fel succes la acest „joc de imitare” ca o persoană. Noi am modificat
aranjamentul pentru această activitate la sala de clasă, deoarece tipul de întrebări pe
care elevii le-ar putea pune pentru a determina sexul probabil că nu ar fi potrivite și, în
plus, exercițiul promovează stereotipia sexuală – ca să nu menționăm frauda.

Imitarea inteligenței este dificilă. Dacă rolurile ar fi inversate și o persoană ar încerca


să treacă drept un calculator, cu siguranță nu ar reuși asta: ar fi demascată de
răspunsul lent (și probabil incorect) la întrebări de genul „Cât face 123456 × 789012?”

Cu toate acestea, este surprinzător de ușor pentru un calculator să mimeze capacitatea


de a face conversație. Un faimos program elaborat la începutul anilor 60, Eliza

218 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
(menționat mai sus), a simulat un psihoterapeut care nu dă indicații într-un dialog cu
utilizatorul. În dreapta este un
exemplu de conversație cu Persoana: Toți bărbații sunt la fel.
acest sistem. Ceva ce se Calculatorul: În ce privințe?
apropie de o conversație Persoana: Ei întotdeauna ne bănuiesc de una sau
naturală se obține de dispozitive alta.
cum ar fi: Calculatorul: Poți să dai un anumit exemplu?
Persoana Ei bine, prietenul meu m-a făcut să
1. generarea de răspunsuri cu vin aici.
„can” (a putea) (de exemplu: Calculatorul: Prietenul tău te-a făcut să vii aici.
Poți să te gândești la un Persoana Spune că sunt deprimată aproape
exemplu specific ca răspuns la întotdeauna.
ceva care începe cu Ei Calculatorul: Îmi pare rău să aud că sunteți
întotdeauna ...; Îmi pare rău deprimată.
să aud asta... ca răspuns la El Persoana E adevărat. Sunt nefericită.
spune ...); Calculatorul: Credeți că dacă ați venit aici, vă va
ajuta să nu mai fiți nefericită?
2. ecou la afirmațiile Persoana am nevoie de puțin ajutor, măcar asta
utilizatorului (de exemplu: pare sigur.
Prietenul tău te-a făcut să vii Calculatorul: Ce ar însemna pentru tine dacă ai
aici ca răspuns la Prietenul primi puțin ajutor?
meu m-a făcut să vin aici); Persoana Poate că aș putea învăța să mă înțeleg
cu mama.
3. recunoașterea cuvintelor Calculatorul: Spune-mi mai multe despre
cheie (Spune-mi mai multe familia ta.
...
despre familia ta ca răspuns la
Calculatorul: Ce îți mai vine în minte când te
... mama...);
gândești la tatăl tău?
Persoana Terorizare.
4. unele expresii fixe (Ce ar
Calculatorul: Are aceasta vreo legătură cu faptul
însemna pentru tine dacă...); că prietenul tău te-a făcut să vii aici?
....
5. elemente luate din părți
anterioare din conversație
(Are asta vreo legătură cu
faptul că...).

Desigur, aceasta nu înseamnă că testul Turing a fost trecut, deoarece persoana nu


pune întrebări cu scopul de a identifica dacă respondentul este o mașină sau nu: dacă
ar fi, nu ar trece mult și acest lucru ar ieși la iveală.

Licență în baza Creative Commons 219


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Un incident citat pe larg, dar care a
intrat în folclorul inteligenței VP: Crezi că pot folosi calculatorul în
artificiale, a avut loc când un această dimineață?
vicepreședinte unei firme care vindea Terminal: De ce întrebi?
calculatoare a crezut că a dat de un VP: S-ar putea să reușesc să fac niște
terminal care era, în mod normal, vânzări suplimentare de
conectat direct la casa unei anumite telecomunicații.
persoane. Dar în acea zi, s-a Terminal: De ce nu ești sigur?
întâmplat să ruleze programul cu VP: Posibilii mei clienți nu au văzut
„psihoterapeutul”. Această niciodată o demonstrație cu sistemul.
conversație arată ce s-a întâmplat. Cu Terminal: Asta înseamnă foarte mult pentru
toate că vicepreședintele a fost tine?
evident tras pe sfoară, este clar că VP: Bineînțeles, da.
situația chiar l-a predispus să creadă Terminal: Se pare că ești foarte încrezător în
că vorbea cu o altă persoană. asta.
VP: Asta e ridicol.
Un alt sistem care pare să poată Terminal: Ce vrei să spui că este ridicol?
VP: Există vreun motiv pentru care nu pot
susține conversații inteligente este un
folosi calculatorul acum?
program numit “SHRDLU”, dezvoltat
Terminal: Spune-mi mai multe despre posibilii
la sfârșitul anilor 60, capabil să mute, tăi clienți.
la comandă vocală, diferite forme VP: Sună-mă la 491 - - 1850
geometrice pe o suprafață plană. De VP uită să tasteze perioada ... calculatorul nu
fapt, formele geometrice și masa au răspunde ... VP se înfurie atât de tare încât
fost simulate și prezentate sub forma sună persoana acasă.
unei imagini pe ecran de VP: De ce ești așa de țâfnos cu mine?
calculator. Imaginea descrie Persoana: Ce vrei să spui prin a fi țâfnos cu
micro-lumea robotului. tine?

SHRDLU putea duce conversații


surprinzător de fluente, după
cum arătădialogul de mai jos.
Printre alte lucruri, aceasta
ilustrează cum se poate supune
ordinelor, să distingă
instrucțiunile, să deducă
referințele la pronume și să
înțeleagă noi termeni („turlă”).

220 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Persoana: Ia un bloc mare roșu.
Robotul: OK.
Sistemul răspunde “OK” când execută o comandă. Pentru a lua
blocul roșu, trebuia să îi facă loc găsind spațiu pentru cel verde și
mutând pe cel verde la o parte.
Persoana: Apucă piramida.
Robotul: Nu știu de care piramidă vorbești.
Există trei piramide în scenă, deci programul nu face nimic.
Persoana: Găsește un bloc care este mai înalt decât cel pe care îl ții
și pune-l în cutie.
Sistemul trebuie să înțeleagă ce înseamnă “one” și “it”, precum și
folosirea deducției pentru a decide ce bloc ține.
Robotul: “It” presupun că înseamnă blocul care este mai înalt
decât cel pe care îl țin.
Tipărit pentru a ne ține la curent.
Robotul: OK.
Mâna trebuie să pună jos blocul roșu pentru a-l lua pe cel albastru
mai înalt.
Persoana: Ce conține cutia?
Robotul: Piramida albastră și blocul albastru.
Persoana: De ce se sprijină piramida?
Mai înainte, sistemul a răspuns la “piramidă” spunând “Nu știu
despre ce piramidă vorbești.” Acum, știe că ne referim la cea care
tocmai a fost menționată.
Robotul: Cutia.
Persoana: Dar turla...
Robotul: Scuze, nu cunosc cuvântul “turlă”.
Sistemul se întrerupe imediat când vede un cuvânt pe care nu îl
pricepe.
Persoana: O “turlă” este o stivă care conține două cuburi verzi și o
piramidă.
Semnele de citație arată că definim un nou cuvânt.
Robotul: Înțeleg.
Persoana: Există vreo turlă acum?
Robotul: Nu.
Noua definiție este folosită ca descriere pentru a recunoaște turlele
Persoana: Construiește una.
Robotul: OK.
Descrierea dată în definiție este suficientă pentru a deduce un plan
pentru construirea de noi obiecte, precum și a le recunoaște.
Cuvântul “one” înseamnă “o turlă”, iar planul este îndeplinit.

Licență în baza Creative Commons 221


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Cu toate acestea, sistemul este foarte fragil și iluzia pe care o creează este ușor
eliminată.

Iată o continuare a conversației


Persoana: Îți vând un pistol cu apă pentru blocul
- care nu a fost de fapt mare roșu.
generată de program, dar cu Robotul: Scuze, nu cunosc cuvântul “vând”.
siguranță ar fi putut fi. Cu toate Persoana: “Vând” înseamnă un schimb liber de
că a fost posibil să se proprietate.
definească noul termen turlă în Robotul: Scuze, nu cunosc cuvântul “liber”.
ultima conversație, numai un fel Persoana: Un act “liber” este făcut voit, fără a fi
foarte limitat de termeni pot fi forțat.
descriși deoarece robotul are o Robotul: Scuze, nu cunosc cuvântul “act”.
„inteligență extrem de limitată”. Persoana: “Acte” sunt ceea ce oamenii fac
intenționat, nu din întâmplare.
În final, trebuie să admită că nu Robotul: Scuze, nu cunosc cuvântul “oameni”.
înțelege nici măcar cuvintele pe Persoana: Scuze, Te credeam mai deștept decât
care le folosește el („Scuze, nu ești.
cunosc cuvântul „scuze”)! Robotul: Scuze, nu cunosc cuvântul “scuze”.

Acum să luăm în considerare o


altă continuare, complet
imaginară a conversației, care Persoana: Îți vând un pistol cu apă pentru blocul
poate să fi fost generată de un mare roșu.
elev. Cu toate că e scurt, acest Robotul? Am deja un pistol cu apă, dar îți voi
fragment demonstrează o da două blocuri și o piramidă pentru
bogăție de cunoștințe despre broasca ta bătrână și murdară.
lume.

1. „Robotul” apreciază că un pistol cu apă este mai puțin valoros dacă ai deja unul.

2. Totodată, el se așteaptă ca și persoana să știe asta deoarece nu se obosește să


explice că acesta este un motiv pentru a refuza oferta.

222 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
3. Totuși, vede că persoana își dorește suficient de mult o formă geometrică, dacă dă
ceva la schimb.

4. De asemenea, apreciază că – spre deosebire de pistoalele cu apă - formele


geometrice sunt valoroase cantitativ.

5. Încearcă să mai domolească persoana umilind broasca.

6. Asta înseamnă că este pregătit să se tocmească.

Cu siguranță, acest nivel artistic este peste calculatoarele actuale!

Povestirea din partea dreaptă a


fost generată de un alt program A fost odată ca niciodată un rândunel de mare
de calculator (la sfârșitul anilor polar care se numea Truman. Truman nu avea un
80). Cu toate că se demască cămin a său. Truman avea nevoie de un cuib. El a
imediat ca fiind generat de zburat până la țărm. Truman căuta niște rămurele.
calculator prin simplitate și Truman nu a găsit rămurele. El a zburat spre
concizie, nu este greu de tundră. El s-a întâlnit cu un urs polar numit
imaginat cum s-ar fi putut Horace. Truman l-a întrebat pe Horace unde erau
aranja prin adăugarea a tot felul rămurele. Horace a ascuns rămurelele. Horace i-a
de alte detalii. Ce este spus lui Truman că erau niște rămurele pe un
interesant nu reprezintă aisberg. Truman a zburat la aisberg. El a căutat
aspectele superficiale ale rămurele. El nu a găsit rămurele. Horace căuta
povestirii, ci intriga pe care o carne. El a găsit niște carne. El l-a mâncat pe
înglobează. În timp ce e un lung Truman. Truman a murit.
drum de la o intrigă generată
de om, pare să capteze niște elemente de conflict uman. În prezent, există un număr
de sisteme pentru generarea automată a unor povestiri, cu toate că problema în
evaluarea lor este să se determine cât de mult material reprezintă doar modele
standard cu intervalele completate și cât de mult este o intrigă care a fost constituită
creativ, ca mai sus.

Există o competiție anuală pentru premiul Loebner, în care programele de calculator


concurează pentru a trece testul Turing păcălind judecătorii pentru a crede că sunt
oameni. În 2012, niciun calculator nu câștigase trofeul de aur sau cel de argint, ceea
ce implica păcălirea clară a judecătorilor, dar un premiu de bronz este atribuit în fiecare
an pentru cel considera a fi cel mai uman. În primul an de competiție (1991), un
program a reușit să câștige un premiu de bronz, printre alte trucuri, făcând ca greșelile
de tastare să pară a fi mai umane!

Nu a fost creat niciun sistem de inteligență artificială care să se apropie cumva de


trecerea testului complet Turing. Chiar dacă unul a trecut, mulți filozofi au argumentat
că testul nu măsoară de fapt ceea ce cei mai mulți oameni înțeleg prin inteligență.
Ceea ce el testează este echivalența comportamentală: este proiectat pentru a
determina dacă un anumit program de calculator manifestă simptome de intelect, ceea
ce poate să nu fie același lucru cu inteligența posedată veritabil. Poate cineva să fie
uman inteligent, fără a fi conștient, fără a se cunoaște pe sine, fără a fi conștiincios,
fără a trăi iubirea și fără a fi... viu?

Dezbaterea despre AI este posibil să mai dureze încă multe zeci de ani.

Licență în baza Creative Commons 223


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)
Bibliografie suplimentară
Inteligența artificială: ideea în sine de filozof John Haugeland, este o carte extraordinar
de lizibilă despre dezbaterea privind inteligența artificială și este sursa unora din
ilustrațiile din această activitate (în particular, conversațiile SHRDLU și discutarea
acestora).

Testul Turing inițial a fost descris într-un articol denumit „Mașinile de calcul și
inteligența”, de Alan Turing, publicat în revista de filozofie Mind în 1950 și retipărit în
cartea Calculatoarele și gândirea, editată de Feigenbaum și Feldman. Articolul includea
primele două conversații.

Programul cu psihoterapeutul a fost descris în „ELIZA – Un program de calculator


pentru studierea comunicării în limbaj natural între om și mașină”, de J. Weizenbaum,
publicat în revista de calculatoare Comunicate ale Asociației pentru Mașinile de Calcul
în 1966.

Programul cu robotul blocuri-lume este descris într-o teză de doctorat a lui Terry
Winograd, care a fost publicată ca și carte intitulată Înțelegerea limbajului natural
(Academic Press, New York, 1972).

Programul care a generat povestirea lui Truman și Horace este descris în „Un
mecanism de planificare pentru generarea testelor de povestiri”, de Tony Smith și Ian
Witten, publicat în Lucrările celei de-a 10-a Conferință Internațională privind
Calculatoarele și Omenirea, în 1990.

224 Licență Creative Commons


© 2015 „Informatica fără să pornești calculatorul” (csunplugged.org)

S-ar putea să vă placă și