L-am cunoscut pe Romică ADAM în vremurile când el era student și l-am remarcat de departe pentru calitățile lui de programator:
- punctualitate,
- om de cuvânt,
- gândire clară,
- vorbă puțină și măsurată,
- profunzime în abordare,
- dorința de autoperfecționare.
La sesiunea anuală a Cercurilor Științifice studențești din 10-11 mai 1991, Romică ADAM a câștigat concursul de Cel mai bun programator, organizat de Catedra de Informatică Economică.
În intervalul 15.09.1973 - 15.06.1981, Romică ADAM a urmat clasele I-VIII la Școala Generală nr. 28 din Bacău.
În intervalul 15.09.1981 – 15.06.1985, Romică ADAM a urmat clasele a IX-a - a XII-a ale Liceului Economic şi de Drept Administrativ din Bacău.
În intervalul 01.10.1986 – 30.06.1991, Adam ROMICĂ a fost studentul Secției de Informatică Economică de la Facultatea de Cibernetică, Statistică și Informatică Economică, din Academia de Studii Economice Bucureşti.
Născut fiind în anul 1967, se vede că Romică ADAM a făcut școala la vremea ei, ceea ce arată că dispune de resursele necesare pentru a realiza cu certitudine o carieră de succes în plan profesional, urmărind pas cu pas și cu tenacitate fiecare etapă a evoluției lui.
După terminarea facultății, Romică ADAM a devenit prin concurs preparator universitar în Catedra de Informatică Economică și de atunci am început colaborarea cu el la disciplina Structuri de date. Pe durata acestei colaborări am scris și publicat împreună cărțile:
Ion IVAN, Romică ADAM - Structuri de date și programe PASCAL, Editura QED, București, 1992, 185 pag.
Ion IVAN, Romică ADAM - Structuri de date, Editura QED, București, 1992, 186 pag.
Romică ADAM a finalizat cu succes stagiul de doctorat la Universitatea „Al. I. Cuza”, în specializarea Contabilitate, domeniul Informatică Economică. A susținut la data de 19.03.2009 teza de doctorat intitulată „Contribuţii la utilizarea sistemelor multiagent în aplicaţiile financiar-bancare”, avându-l conducător științific pe profesorul universitar Ioan ANDONE.
Romică ADAM a contribuit cu capitolul al VII-lea, intitulat „Contabilitatea și tehnologia agenților inteligenți”, de la paginile 383 - 437, în lucrarea referită prin:
Ioan ANDONE, Neculai TABĂRĂ (coordonatori) - Contabilitate, tehnologie și competitivitate, Editura Academiei Române, București, 2006, 540 pag., ISBN: 13978-973-27-1378-5.
Am în mână cartea „Structuri de date și programe PASCAL” din 1992 și îmi face o deosebită plăcere să rememorez modul în care a fost scrisă și mai ales tehnoredactată, folosind calculatoarele personale de la sediul unei organizații sindicale de pe Calea Dorobanților.
Romică și cu mine, venind din zona programării în limbaje de asamblare, ne-am dat seama că la structuri de date se lucrează cu zone de memorie definite prin:
- lungime ca număr de octeți,
- adresă de început,
- conținut al zonei de memorie.
În acest context am detaliat proprietățile unor operatori care au permis definirea, folosind formalizări adecvate, a tuturor structurilor de date, căci orice tip de conținut digital este o structură de date, dacă ne dorim așa ceva și mai mult, convențiile sunt la tot pasul, din moment ce același șir de biți îl interpretăm cum vrem noi ca programatori în limbaj de asamblare sau după cum dictează contextul în care lucrăm.
Cartea are o Introducere la paginile 1 - 2, urmată de 12 capitole și se încheie cu o Bibliografie.
Capitolul 01, de la paginile 3 - 14, intitulat Tipuri de date, prezintă tipurile fundamentale de date, lungimile zonelor de memorie alocate și se insistă pe necesitatea alegerii tipurilor de date adecvate în programe.
Capitolul 02, de la paginile 15 - 22, intitulat Date elementare, prezintă tot ceea ce este în limbajul PASCAL variabila elementară, cu mod de alocare de memorie, cu definire a conținutului și cu interpretarea acestuia în funcție de contextul definit de programator.
Capitolul 03, de la paginile 23 - 45, intitulat Masivele - structuri de date elementare omogene și contigue, prezintă modelul asociat masivelor folosind operatorii descriși anterior și se evidențiază că masivul unidimensional are adrese care sunt termenii unei progresii aritmetice de rație definită de tipul variabilei. Pentru masivul bidimensional se dă formula de calcul a adresei unui element oarecare, ținând seama de numărul de linii și de coloane, dar și de modul de așezare a elementelor, fie linie de linie, fie coloană de coloană, după cum sunt realizate compilatoarele.
Capitolul 04, de la paginile 46 - 57, intitulat Articolul - structură de date neomogenă și contiguă, prezintă modul de definire în limbajul PASCAL a variabilelor de tip articol, după ce a fost construit modelul acestui tip de structură de date folosind zona de memorie și operatorii de adresă, lungime, conținut și tip conținut, arătând că pentru a fi articol, cel puțin două componente ale conglomeratului trebuie să aibă conținuturi de tipuri diferite.
Capitolul 05, de la paginile 58 - 76, intitulat Variabile pointer, prezintă conceptul de variabilă pointer, dar abordarea este realizată din punctul de vedere al programatorului în limbaj de asamblare, după care se vine cu ceea ce înseamnă definirea, referirea și nivelurile pentru variabilele pointer. Se anticipează că toate structurile dinamice necontigue lucrează cu variabile pointer.
Capitolul 06, de la paginile 77 - 86, intitulat Reuniunile și datele contigue, prezintă proprietăți ale reuniunilor, specifice limbajului de programare PASCAL.
Capitolul 07, de la paginile 87 - 103, intitulat Listele - structuri dinamice, necontigue, prezintă listele simple, listele duble, listele circulare, cu modelele aferente, folosind reprezentări grafice sugestive, dar și formalizarea cu ajutorul operatorilor pentru fiecare operație în parte, pentru funcții precum creare element, inserare element, ștergere element, numărare elemente, interschimb elemente, sortare listă. Pentru toate aceste operații sunt date secvențe de program PASCAL stabile în raport cu conținutul generic al structurii, fiecare programator având posibilitatea să facă adaptări în funcție de particularitățile problemei pe care trebuie să o rezolve.
Capitolul 08, de la paginile 104 - 109, intitulat Stiva - structură de date dinamică, necontiguă, prezintă modelul stivei folosind operatorii definiți la început, reușindu-se astfel evidențierea metodei LIFO. Secvențele de program PASCAL care implementează operațiile pe stivă, inclusiv golirea stivei, sunt clasice, cu foarte mici ajustări din partea noastră.
Capitolul 09, de la paginile 110 - 121, intitulat Arbori binari, prezintă structura de date definită cu nod rădăcină, noduri descendenți stângi, respectiv, noduri descendenți drepți. Structura arbore binar este și ea privită tot ca o mulțime de zone de date neomogene construite după același tipar cu trei câmpuri, cu alocare dinamică, deci este o structură necontiguă. Se definesc operații de creare nod, de traversare structură, de inserare nod, de ștergere nod, de calcul al înălțimii, dar și alte operații. Sunt date secvențe clasice de program PASCAL care implementează aceste funcții.
Capitolul 10, de la paginile 122 - 148, intitulat Fișiere, prezintă fișierul ca structură de date, definit cu operatorii utilizați și pentru celelalte structuri de date, cu luarea în considerare că un fișier are la bază o structură de date omogenă așa cum este masivul bidimensional sau o mulțime de structuri de date neomogene, contigue sau nu, după cum fișierul este secvențial sau nu.
Capitolul 11, de la paginile 149 - 164, intitulat Obiecte și clase, prezintă o abordare din care zona de memorie este structură de date de tip conglomerat, chiar dacă este alcătuită din zone de memorie interpretate ca variabile și din zone de memorie al căror conținut este interpretat ca program executabil.
Capitolul 12, de la paginile 165 - 184, intitulat Compactarea datelor, prezintă o aprofundare a abordării structurilor de date astfel încât să fie introdus un criteriu de performanță definit prin minimizarea lungimii zonei de memorie utilizate în stocarea structurii de date, fără a altera după decompactare nici conținutul și nici proprietățile structurii de date.
Culegerea de probleme urmează structura acestei cărți și conține enunțuri de probleme, indicații și texte sursă. Ambele cărți conțin texte sursă preluate numai de la imprimantă după rularea unor programe corecte și complete, asigurându-ne că cititorul nostru, de regulă student, dacă va rula acele programe, va obține rezultatele anunțate de noi. Cititorul are posibilitatea de a face modificări în programe, pentru a-și rezolva cu ușurință problemele sale, căci problemele propuse de noi sunt dintre cele cu frecvență foarte ridicată care se întâlnesc în producție.
Bibliografia conține titluri ale unor lucrări pe care noi le-am considerat clasice, dar mai ales care se află în biblioteci accesibile și studenților.
Viața a făcut ca unul dintre cei mai valoroși colaboratori, și aici mă refer la Romică ADAM, să plece la Bacău și să evolueze la fel de strălucitor acolo, așa cum s-a văzut din prezentarea mea de mai sus. Am regretat profund că în mediul academic sunt condiții precare de existență pentru tineri și că limitările definite pentru ei fac să migreze spre industrie cei mai buni absolvenți, cu efecte dintre cele mai puțin favorabile pentru procesele de instruire ale studenților, efecte care se vor resimți după zeci și zeci de ani. Am reluat legătura cu Romică ADAM, pe care l-am regăsit la fel de sclipitor ca acum peste treizeci de ani.
(18 septembrie 2026)
No comments:
Post a Comment