programarea la nivelul liceului: o critică
vineri, 21 oct. 2011, 23:15
O bună parte din programatori – bună parte în care, recunosc, m-am aflat o bună vreme – consideră Pascal și C [i] ca fiind limbaje nepotrivite pentru educația la nivel preuniversitar. Primul e considerat caduc, în sensul că nu e folosit nicăieri, iar al doilea e privit drept prea complicat; două extreme, una a inutilității, iar cealaltă a așa-zisei dificultăți, în ciuda faptului că C-ul e unul din cele mai căutate limbaje din industria calculatoarelor în ultimii douăzeci de ani pe puțin.
Sunt în mare parte de acord cu argumentul că C-ul e un limbaj un pic complicat pentru liceanul mediu, deși nu aș atribui această problemă limbajului în sine. De asemenea, sunt de acord cu faptul că a ieși cu Pascal sau Fox Pro din liceu nu îți dă absolut nici o experiență practică – deși consider că în primul rând nu ăsta este scopul, iar în al doilea rând o bună parte din elevi oricum o să uite limbajul la scurt timp după terminarea liceului.
Aș spune că deși în liceu nu se predă tocmai știința calculatoarelor, ci doar informatică, spusele unei figuri importante din Computer Science rămân valide: e greu să explici calculatoarele la nivel teoretic, deoarece se leagă de o întreagă serie de concepte non-triviale, cum ar fi calculabilitatea, terminarea și așa mai departe; concepte pe care un elev inteligent ar cam trebui să le înțeleagă la un nivel pur intuitiv. Reușim astfel să punem degetul pe o primă problemă: nu limbajul e dificil/inutil, ci conceptul din spate (care sunt mai multe) e cel problematic. (mai mult…)
- De fapt în liceu se predă un C îmbogățit cu câteva elemente din C++, dar care rămâne la bază tot C. [↩]
despre hackeri
duminică, 16 oct. 2011, 15:48
Cuvântul „hacker” are o conotație haiducească în concepția românului consumator de televiziune și dă într-o tentă ușor paranoică în mintea americanului mediu. Asociat cu lumea calculatoarelor, hacker-ul devine acea persoană care „sparge” – deși, pentru a fi cinstiți, putem spune că ăla care sparge e mai degrabă numit „cracker” -, fraudează și în general face rău calculatoarelor sau folosind calculatoarele. Cumva, într-un mod extrem de misterios, eticheta de hacker a ajuns să fie aplicată persoanelor fără cine știe ce abilități tehnice, dar care dau de butoane pentru a face tot felul de tâmpenii, nici ei neștiind prea bine ce – mă refer la așa-zișii „script kiddies”.
Așa se face că subsemnatul s-a hotărât să clarifice o dată și pentru totdeauna ce-i ăla un hacker. Și bineînțeles că vom porni de la rădăcina cuvântului, care este cuvântul „hack”. Cea mai veche folosire publică a acestui cuvânt cunoscută de mine datează cândva la jumătatea anilor 1980, în cadrul unei universități olandeze, în contextul unui banal joc pe calculator [i]. O definiție propriu-zisă este legată oarecum de domeniul ingineriei software și se referă la o bucată de cod care e neelegantă din punctul de vedere al principiilor de proiectare, însă rezolvă foarte bine problema [ii]. (mai mult…)
- De altfel, jocul hack a dus, în urma distribuției pe Usenet, la apariția lui Nethack. Acesta din urmă a făcut istorie, toate jocurile de tipul Hack & Slash plecând din acest punct. [↩]
- Nucleul Linux este un exemplu de program constituit în mare parte din hack-uri, din care unele au și ajuns probabil standarde de facto în industrie. [↩]
recunoașterea vorbitului, starea actuală
joi, 15 sept. 2011, 21:53
Înainte să intrăm în pâine, să definim clar subiectul problemei. Există două mari direcții în domeniul interdisciplinar analiza sunetului – interacțiunea om-mașină – inteligență artificială. Prima direcție se referă la recunoașterea vocii, în timp ce a doua constă în recunoașterea formelor sunetului, în special a vorbitului. În primul caz, analizăm mai degrabă caracteristici sonore precum timbrul sau „culoarea”, prin metode cum ar fi analiza Fourier.
Al doilea caz vine cumva în analogie cu recunoașterea formelor dintr-o imagine și se referă la învățarea automată a unor caracteristici de nivel mai înalt precum foneme, melodii, genuri muzicale și așa mai departe. Astfel, în realitate ce am zis eu despre cazul anterior este oarecum greșit, fiindcă aspecte precum inflexiunile vocii sau accentul pot fi în fapt utile pentru a recunoaște un vorbitor.
În fine, pe noi ne interesează să analizăm cum a evoluat până în prezent recunoașterea vorbitului, tehnologie care are un impact mare asupra felului în care omul interacționează cu mediul artificial din jurul său. La urma urmei, cine nu și-ar dori să dialogheze verbal cu calculatorul personal în limbaj natural, în stilul Star Trek? Să nu mai vorbim de aplicațiile unde acest aspect e în mod evident necesar, precum interfațarea cu persoane care nu pot să vadă. (mai mult…)