codul qr și game of life

duminică, 24 feb. 2013, 19:41

Așa-zisul cod QR reprezintă o metodă de codificare a informației digitale astfel încât aceasta să poată fi decodificată ulterior cu ușurință — rapid și fără erori — cu ajutorul unui senzor optic, e.g. o cameră foto. Nu-i cu nimic diferit conceptual de un cod de bare, având însă avantajul că admite o densitate a informației ceva mai ridicată. În particular, e mult mai ușoară stocarea unui șir de caractere ASCII sau Unicode sub forma QR decât cu ajutorul codurilor de bare clasice, cum ar fi EAN sau ce se mai găsește în mod normal pe etichetele produselor aflate în comerț.

Game of Life este un automat celular faimos, descoperit de către matematicianul John Horton Conway. Regulile automatului sunt oarecum intuitive, și în plus configurațiile inițiale pot duce la evoluții „haotice”, posibil utile pentru modelarea în domenii precum cel al biologiei, economiei sau fizicii — numele „Game of Life” nu e ales tocmai la întâmplare. O particularitate interesantă pentru calculatoare și teoria informației este aceea că unele din „structurile” simple din Game of Life pot fi folosite pentru a construi mașini Turing. Dincolo de asta, e greu de zis ce mai ascunde automatul cu pricina. (mai mult…)

atunci când limbajul de programare face mai mult rău decât bine

sâmbătă, 16 feb. 2013, 22:20

La sfârșitul articolului „o propunere privind predarea programării în școli” spuneam că, citez:

Încheind, adaug faptul că ideea în sine a predării programării „as soon as possible” nu e nouă și există implementată în România în cadrul unui set de cursuri numit Digital Kids. Inițiativa e una din care sistemul învățământului de stat ar avea multe de învățat. Cel mai important aspect, în opinia mea de om care nu prea are legături cu știința pedagogiei, e acela al impulsionării copiilor să gândească și să învețe să facă chestii, moment în care toată discuția privitoare la limbaje de programare devine superfluă.

Mă văd nevoit să justific afirmația, arătând astfel că dezbaterile pe marginea limbajelor de programare în cadrul educației sunt în mare parte inutile și, mai mult, că o astfel de gândire orientată către limbaje de programare nu face decât să dăuneze. (mai mult…)

o propunere privind predarea programării în școli

duminică, 10 feb. 2013, 18:10

Prezentul articol pornește de la o discuție iscată pe Facebook [i] de către Laura via rosedu. M-am decis să public o însemnare separată în primul rând pentru că mă ajută să îmi pun oareșce gânduri în ordine, departe de zgomotul rețelelor sociale, și în al doilea rând fiindcă am mai scris în trecut pe tema asta, iar acum doar profit de ocazie pentru a dezvolta subiectul.

A se nota că am folosit termenul „programare” și nu pe cel de „informatică”. Numele atribuit disciplinei în școli e o idee nefericit, pentru că se referă inclusiv la domenii precum teoria informației, ori să fim serioși, copiii de liceu n-au nevoie de exemplu de teorema Shannon-Nyquist. Scopul „informaticii” din învățământul preuniversitar e să îi familiarizeze pe elevi cu utilizarea calculatoarelor — unde GNU/Linux s-ar potrivi de minune, pentru că Windows au deja acasă — și cu programarea acestora, și nu în ultimul rând să îi învețe câteva concepte generale din știința calculatoarelor, adică ce-i ăla un arbore, o listă sau o bază de date, plus doi-trei algoritmi. (mai mult…)

  1. Mă frustrează imens faptul că Facebook e un „walled garden”. Cu toate astea o să-mi calc pe cele mai cele principii și o să las un link la sondajul inițial aici. Postarea inițială a generat multe comentarii, pe care vă invit să le citiți dacă aveți la îndemână un cont de Facebook. []

software-ul și formele

luni, 23 iul. 2012, 18:51

Being abstract is something profoundly different from being vague… The purpose of abstraction is not to be vague, but to create a new semantic level in which one can be absolutely precise.

Citatul îi aparține lui Edsger Dijkstra, o personalitate a lumii calculatoarelor înzestrată cu un umor deosebit de cinic, umor pe care acesta l-a exprimat cât se poate de bine în lucrările sale. De asemenea izul pasajului este oarecum ingineresc, fapt care pe mine nu mă va interesa mai deloc pe parcursul articolului.

Una din motivațiile care m-au determinat să meditez pe tema înțelesului și a iadului abstractizării a fost ideea de dificultate a comunicării, deși nu atât a comunicării în sine cât a exprimării chestiilor – adică a atomilor – în limbajul universal [i]. Premisa de la care am plecat atunci a fost aceea că oamenii se deosebesc din acest punct de vedere de celelalte animale prin faptul că pot abstractiza chestii, însă nu am definit prea bine ce înseamnă în general a abstractiza. (mai mult…)

  1. Problema comunicării e o problemă în sine – și cel puțin la fel de dificilă – care rezultă din existența mediului social, apropo de impactul societății asupra evoluției, inteligenței etc. Doresc însă să fac abstracție de aspectele astea deoarece nu le găsesc o relevanță în contextul de față. []

interacțiunea om-mașină ca act de comunicare

duminică, 18 mart. 2012, 00:28

Citind [i] un articol care face încercarea de a lega mediul UNIX de literatură, m-a lovit în crestetul capului ideea că eu nu m-am gândit până acum să leg iadul abstractizării de interacțiunea om-calculator. Cum a reușit creierul meu să omită această legătură foarte importantă n-am de unde să știu, însă consider că trebuie remediată problema cât mai repede cu putință, deci voi purcede imediat la a trata subiectul.

Putem cădea de acord, conform The Elements Of Style, că există două paradigme mari și late care se disting în interacțiunea om-mașină și în particular în interacțiunea om-sistem de operare. Prima presupune tipărirea explicită de comenzi care fac mașina să execute chestii, deci este în principiu proactivă, în timp de a doua constă în interacțiunea cu elemente grafice în măsura în care acestea sunt disponibile pe ecran, deci este în mare parte reactivă. De fapt firește că adevărul e undeva la mijloc, motiv pentru care nici nu are rost să fim snobi și să înfierăm GUI-ul drept o prostie [ii] și să catalogăm interfața textuală drept Α și Ω.

Ar fi ok totuși să afirmăm că interacțiunea prin text este mult mai apropiată de ideea de comunicare lingvistică, în timp ce interfețele grafice se aseamănă mai mult cu manipularea unui mediu abstract virtual. Cea dintâi paradigmă e evident mai complicată decât cea de-a doua, dat fiind faptul că orice copil învață să ia obiecte și să le bage în gură în primele luni din viață, pe când stăpânirea limbajului necesită un antrenament îndelungat ajutat de educație formală și așa mai departe. Sigur, la nivelul cel mai de jos se întâmplă că și limbajul corpului e un act de comunicare important, însă noi dorim să discutăm cu calculatorul idei, nu semnale de împerechere, motiv pentru care îmi permit să reduc domeniul comunicării, referindu-mă strict la limbaj atunci când vorbesc despre aceasta. (mai mult…)

  1. Via Google+, care apropo, în cazul ăsta a reușit să-mi dea un plus de utilitate considerabil. []
  2. Ba dimpotrivă, oamenii de la Xerox care au inventat tipul ăsta de interfață au fost geniali. Pe deasupra au mai fost și sănătoși la cap, deci nu i-au dat în judecată pe Apple și Microsoft după ce le-au „furat” ideile, că doar asta au făcut, nu? []