Documente Academic
Documente Profesional
Documente Cultură
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
traducere posibilă printr-o finanțare Google CS4HS (acum Google Educators Grant)
(www.asociatiatechsoup.ro, www.predauviitor.ro)
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.
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!
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.
1
Fără legătură cu primul autor.
2
De fapt, activitatea de comprimare a textului a fost inventată de către Michael.
Î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.
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).
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)
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.
Ș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:
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?
Î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.
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
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!
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 = ?
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?
Dar ce se întâmplă când punem un 0 în dreapta unui număr binar? Încercați aceasta:
1001 → 10010
(9) (?)
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 ~.
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.
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).
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.
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.
3. Cum pot calculatoarele să stocheze imagini când ele pot folosi doar numere?
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.
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
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
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.)
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.
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.)
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.
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!
Este mai ușor să realizezi jocul dacă scrii poezia mai întâi și apoi decizi unde trebuie
dispuse casetele.
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.
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?
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.
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.
“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.
“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.
“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.
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ă.
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.
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).
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?
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.
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ă.)
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.)
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.
(0 × 10) + (1 × 9) + (3 × 8) + (9 × 7) + (1 × 6)
+ (1 × 5) + (9 × 4) + (9 × 3) + (1 × 2)
= 172
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.
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ă)?
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.
R: O eroare papagalicească...
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?
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.
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:
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).
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?
Î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ă.
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”.
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.
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.
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.)
1. Organizați-vă pe perechi. Unul dintre voi are foaia 2A, celălalt foaia 2B. Nu arăta fișa
ta partenerului!
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?
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.
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.)
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ă.)
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
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ă.
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ă.
Activitatea
1. Împărțiți elevii pe grupuri.
Veți avea nevoie de: Nisip sau apă, 8 recipiente identice, un cântar balanță.
Ce trebuie făcut:
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ă.
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.
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?
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.
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ă!
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.
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).
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.
= 21 × 10
= 210
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.
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:
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ă.)
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.)
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).
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.
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.
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.
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
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.
Variații și extinderi
Iată un alt mod de a reprezenta orașele și drumurile:
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ș?
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.
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.
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:
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.
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.
Rezumat
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
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.
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?
Livrează această
Nu livra acest mesaj
tăbliță acum
Livrează această
Nu livra acest mesaj
tăbliță acum
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:
Î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ș.
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.
Î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.
Această este adaptată din una disponibilă prin intermediul proiectului „Informatica în
esență” (csi.dcs.gla.ac.uk).
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.
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.
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ă.
A→ A→
B→ B→
Cei care termină repede: Încercați să găsiți mai mult decât un singur traseu.
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.)
A→ A→
B→ B→
A→ A→
B→ B→
A→ A→
B→ B→
Felicitări!
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, ...).
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!
hhthhthhhtthhhhtthttthhhhhthhhttthhhttthhhhhhtthtt
ttthtthttthhhtthhhthhhhhhhhhtthhhtttthhhhhttttttt
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”).
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.
Dacă o urmați, veți vedea că primele două aruncări de monedă din fiecare trei au
același rezultat.
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.
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.
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.
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ă.
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ă!
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ă.
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.
Î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ă.
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.
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.
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
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ă.
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.
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.
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).
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).
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ă
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ă.
✓ 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.
Î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.
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.
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.)
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!
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.
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.
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
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.”
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.
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
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
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.
Î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!
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.
✓ un carnețel de notițe, și
✓ un pix.
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
Alegeți niște intrări pentru acest circuit și deduceți care sunt ieșirile.
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.
Î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.
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ă
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.
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.
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!
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
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.
3. Ana îi va transmite lui Vlad harta sa, numai cu numerele din paranteze.
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.
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?)
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.
Folosiți aceste hărți cum se descrie în text pentru a codifica și decodifica mesajele.
Afișați această „hartă” pentru clasă și folosiți-o pentru a demonstra codificarea unui
mesaj.
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!
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ă
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
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.
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ă.
Pentru profesori
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.
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
Discuție
1. Explicați povestirea elevilor și împărțiți-i în mici grupuri.
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.
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ș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.
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
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.
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.
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.
Completați fișa de lucru pentru a arăta cum credeți că se deschide fiecare tip de ușă.
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.
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?
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?
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.
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.
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.
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.
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.
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.
Alegeți întrebările din această listă pentru a le pune omului ascuns și „calculatorului”.
3. Ești calculator?
Alegeți întrebările din această listă pentru a le pune omului ascuns și „calculatorului”.
Nu-mi amintesc.
3. Ești calculator?
Ești tu calculator?
18.
1.41421356237309504878
...105621.
2000 și 2004 sunt ani bisecți. (Acest răspuns este deliberat incorect!)
Șapte.
Nu știu.
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.
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.
1. „Robotul” apreciază că un pistol cu apă este mai puțin valoros dacă ai deja unul.
Dezbaterea despre AI este posibil să mai dureze încă multe zeci de ani.
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 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.