Câștigătoare a premiului pentru „Cea mai bună teză de licență în domeniul Științelor Exacte și Inginerie” în cadrul celei de-a șaptea Gale a Premiilor Senatului, desfășurată la finalul anului 2023, Carmen-Lorena Acatrinei a ales încă din primul an de facultate să îmbine studiul și cercetarea științifică cu munca propriu-zisă în domeniul Informaticii.
Lucrarea câștigătoare, „Software Testing Using Extended Finite State Machines and Genetic Algorithms in Haskell” a fost realizată sub coordonarea lect. univ. dr. Ana Cristina Iova, cadru didactic al Departamentului de Informatică al Facultății de Matematică și Informatică a Universității din București.
Lucrarea este cu atât mai importantă cu cât avem în vedere faptul că introduce o nouă abordare în Haskell, un limbaj de programare funcțional.
Despre provocările și dificultățile din spatele redactării unei lucrări de licență notabile, pe o temă complexă, de actualitate, precum și despre pasiunea pentru științele reale, în special pentru Informatică, ne va povesti chiar Carmen-Lorena Acatrinei.
Reporter: Ați câștigat, în cadrul celei de-a șaptea ediții a Premiilor Senatului Universității din București, premiul pentru cea mai bună teză de licență în domeniul Științele Exacte și Inginerie. Ce v-a motivat să vă înscrieți în competiția lansată de Senatul Universității din București?
Carmen-Lorena Acatrinei: Încă din etapele incipiente ale redactării lucrării de licență, doamna lect. univ. dr. Ana Cristina Iova m-a informat despre Premiile Senatului Universității din București și despre faptul că o să ne înscriem. La baza lucrării mele de licență a stat lucrarea dumneaei de doctorat, care a obținut, de asemenea, distincția pentru cea mai bună lucrare de doctorat în domeniul Științelor Exacte și ale Ingineriei, iar gândul că am putea continua „tradiția” a fost prima motivație.
R.: Ce a însemnat pentru dumneavoastră obținerea acestui premiu?
C.L.A.: După cum am menționat anterior, știam că ne vom înscrie de la bun început, dar nu mă așteptam chiar să câștigăm, deși aveam încredere completă în munca noastră de a realiza această lucrare. Este o adevărată onoare să dețin acest premiu, care a venit ca o validare și reamintire că fac bine ceea ce fac și că dacă îți dorești ceva cu adevărat, o să se întâmple.
R.: Vorbiți-ne despre lucrarea dumneavoastră de licență, intitulată „Software Testing Using Extended Finite State Machines and Genetic Algorithms in Haskell”, și despre motivațiile care au stat la baza alegerii acestei teme. Ce v-a determinat să alegeți această temă de cercetare, una complexă și, potrivit coordonatoarei, cu un grad foarte ridicat de dificultate pentru un absolvent de studii de licență?
C.L.A.: Într-adevăr, lucrarea a fost o adevărată provocare, deoarece tematica abordată nu are legătură în mod special cu vreo materie predată în cadrul facultății; nu a fost nimic care să mă pregătească pentru volumul de muncă ce urma să fie depus. Motivația principală a fost „vreau să fac ceva diferit și complicat”, iar doamna lect. univ. dr. Ana Cristina Iova a fost mai mult decât încântată la auzirea acestui lucru. Printre tematicile pe care le puteam aborda se aflau cercetarea și ceva în limbajul de programare Haskell; eu propusesem una dintre cele două, iar dumneaei a venit cu ideea să le punem împreună.
În primul rând, fiind o lucrare de cercetare, a necesitat foarte multă documentare în prealabil; având nu mai puțin de 27 de surse bibliografice în lucrare, extragerea informațiilor necesare a reprezentat o parte importantă din realizarea lucrării. În al doilea rând, limbajul de programare Haskell îmi era cunoscut la un nivel introductiv și de multe ori, mai ales la început, aveam ideea de a scrie cod, dar întâmpinam diferite piedici în a „traduce” în Haskell; pe parcurs, însă, creierul meu a început să „gândească” în Haskell și acest aspect nu a putut decât să mă ajute.
Lucrarea prezintă un algoritm pentru generarea unui set de teste folosind Automatele de Stări Finite Extinse împreună cu explorarea utilizării NSGA-II (Non-dominated Sorting Genetic Algorithm II). Având în vedere faptul că această lucrare introduce o nouă abordare în Haskell, un limbaj de programare pur funcțional, există numeroase oportunități pentru cercetare și dezvoltare ulterioară.
R.: Cât de mult timp a necesitat documentarea, agregarea și interpretarea datelor, și ce dificultăți ați întâmpinat în elaborarea lucrării, mai ales că ați inclus și o parte practică?
C.L.A.: Din momentul alegerii temei, prima parte a fost documentarea, care a durat câteva luni, urmând ulterior implementarea și realizarea documentației lucrării. Dificultăți au existat, dar am încercat de la început să urmez principiul „We will cross that bridge when we get there”, care m-a ajutat să lucrez cât mai fragmentat, să evit stresul în avans și să mă concentrez la problemele de la momentul respectiv fără să îmi fie frică de ce avea să urmeze.
R.: Cum ați descrie colaborarea cu lect. univ. dr. Ana Cristina Iova, un reputat specialist în domeniu?
C.L.A.: Fără vreo exagerare, cred că alegerea dumneaei ca profesor coordonator a fost cea mai bună posibilă. M-am lăsat ghidată de intuiție și doamna lect. univ. dr. Ana Cristina Iova mi-a dat impresia unui om cu suflet bun și cald încă din timpul orelor de curs și laborator pe care le-am avut cu dumneaei. De la prima discuție despre lucrarea de licență am știut că am făcut alegerea bună și dumneaei mi-a confirmat, pe parcurs, că așa a fost. Am colaborat excelent, cum nu știam că se poate colabora cu un cadru didactic universitar, este un adevărat exemplu pentru mine și cred că ar trebui să fie și pentru toate cadrele didactice universitare. Mi-a fost alături mereu, chiar dacă trecea printr-o perioadă puțin mai dificilă (dar totodată frumoasă) și nu pot decât să îi mulțumesc și să îi fiu recunoscătoare toată viața.
R.: Prin ce se individualizează Automatele de Stări Finite Extinse și prin ce se deosebesc de Automatele de Stări Finite?
C.L.A.: Automatele de Stări Finite Extinse sunt mai complexe decât Automatele de Stări Finite obișnuite, prin memorie incorporată (variabile de context), gărzi pentru fiecare tranziție și operații de atribuire. În Automatele de Stări Finite, toate căile sunt fezabile. Prezența variabilelor de context și a gărzilor pe tranziții în Automatele de Stări Finite Extinse conduce la posibilitatea existenței unor căi nefezabile. Acest lucru poate cauza probleme de fezabilitate în generarea datelor de test folosind Automatele de Stări Finite Extinse.
R.: În prefața lucrării dumneavoastră, ați subliniat faptul că „lucrarea introduce o nouă abordare în limbajul de programare Haskell”. La ce vă referiți mai exact?
C.L.A.: Punctul de plecare al acestei lucrări, și anume teza de doctorat a doamnei lect. univ. dr. Ana Cristina Iova era scrisă în limbajul de programare Java. În comparație cu aceasta, am ales să utilizez Haskell ca limbaj principal, un limbaj pur funcțional, ceea ce înseamnă că se bazează pe programare funcțională, o paradigmă de programare în care funcțiile sunt considerate elemente de bază și nu există efecte secundare sau stări mutabile. Acest aspect îl diferențiază semnificativ de Java, care este un limbaj de programare orientat pe obiect și imperativ. Haskell este cunoscut pentru exprimarea concisă a ideilor și manipularea elegantă a funcțiilor, dar în același timp poate părea mai dificil pentru cei obișnuiți cu limbaje imperativ-orientate (precum eram, de altfel, și eu), cum ar fi Java. De asemenea, Haskell oferă anumite avantaje în ceea ce privește eficiența din punct de vedere al timpului, datorită evaluării leneșe și funcțiilor lambda.
R.: Care sunt concluziile cercetării dvs. și în ce fel impactează acestea studiile în domeniu? Care ar fi posibilele aplicații ale acestei cercetări în domeniul informaticii / programării?
C.L.A.: Lucrarea mea de licență propune câteva metode de testare, care urmăresc acoperirea a cât mai multor scenarii posibile prin producerea de teste folosind diferite criterii. Având în vedere faptul că testarea este un pas foarte important în procesul dezvoltării software, pe lângă testarea manuală este necesar să existe și metode de testare automată. Având în vedere faptul că lucrarea introduce o nouă abordare în Haskell, există numeroase oportunități pentru dezvoltare și cercetare ulterioară. Astfel, direcțiile de cercetare viitoare pot explora diverse tehnici de optimizare adiționale și pot aduce îmbunătățiri pe baza acestor rezultate inițiale, care ne garantează că din punct de vedere al timpului vom avea de câștigat.
R.: Ce anume v-a determinat să vă dedicați acestui domeniu? Ați avut un mentor pe parcursul educațional și profesional? Cu ce vă ocupați în prezent, ați ales să continuați aprofundarea studiilor?
C: Dorința de a-mi demonstra că sunt capabilă să duc la capăt orice îmi propun și că pot face mai multe decât îmi imaginez au fost determinarea mea. Am reușit să îmi dau singură seama de ceea ce vreau să fac, iar alături de mine cu încurajări și suport emoțional și financiar la fiecare pas au fost părinții mei, cărora vreau să le mulțumesc. Lucrez de aproape trei ani (din primul an de facultate) ca programator și mă bucur că am reușit să țin pasul cu ambele, deși nu a fost deloc ușor. În momentul de față am ales să iau o pauză de la aprofundarea studiilor pentru a mă gândi mai bine la ceea ce vreau să fac mai departe, dar îmi propun să aplic în viitorul apropiat la un program de master.
R.: Ce i-ați transmite unui licean pasionat de științe exacte, cu precădere informatică, și ce v-ar fi plăcut să știți înainte să începeți facultatea?
C.L.A.: Să nu renunțe niciodată la visurile lui/ei, să păstreze tot timpul un echilibru între viața personală și studii, să își cunoască scopul și să lupte pentru acesta. Înainte să încep facultatea, mi-ar fi plăcut să știu că nimic nu este tragic, pentru orice se poate găsi o rezolvare și că nu există pași „greșiți”, singura greșeală e să nu faci niciun pas.
R.: Ce calități sunt căutate de angajatorii din IT? V-ar tenta o carieră didactică și / sau una în cercetare, având în vedere paleta largă de (alte) oportunități superior remunerate în domeniu?
C.L.A.: Pe lângă cunoștințele specifice, care pot fi sau nu văzute într-un CV, tind să cred că angajatorii din IT pun accentul și pe calitățile personale. Soft skill-urile ajung să fie aproape la fel de importante precum abilitățile tehnice, deoarece se caută din ce în ce mai mult ca jobul să devină un loc în care mergi cu drag și ești înconjurat de oameni comunicativi, înțelegători și săritori.
În cadrul primului semestru din anul universitar 2023-2024 am avut oportunitatea de a ține ore de laborator la materia Programare Funcțională pentru studenții de anul 2 și a fost, neașteptat, o experiență foarte plăcută. Am avut ocazia să comunic deschis cu studenții, să le fiu de folos și să îi ajut să înțeleagă mai bine materia. În același timp, însă, o carieră în domeniul cercetării sună provocător și interesant, dar o să „las” viața să aleagă pentru mine și să își urmeze cursul.
R.: Universitatea din București s-a implicat în creșterea oportunităților de angajare a studenților prin facilitarea unor internshipuri cu potențiali angajatori. În momentul de față, ce experiență practică aveți în domeniu?
C.L.A.: Având în vedere că m-am angajat din primul an de facultate și nu am făcut parte din asociația de studenți, nu am avut ocazia să beneficiez de un internship, deși mi-ar fi plăcut. Știu că Universitatea din București se implică în oferirea a câtor mai multe oportunități pentru studenți, iar acest lucru nu poate decât să mă bucure și să încurajeze viitorii studenți să aplice cu încredere.
R.: În opinia dvs., inițiativele precum Premiile Senatului Universității din București încurajează mediul academic spre inovare și spre obținerea de noi performanțe? Cum credeți că ar mai putea stimula excelența didactică și de cercetare Universitatea din București?
C.L.A.: Da, sunt convinsă că aceste inițiative încurajează mediul academic spre inovare și obținere de noi performanțe, dar, cu siguranță, încă există oportunități pentru dezvoltare. Există în cadrul Universității foarte mulți studenți cu potențial ascuns, nedescoperit poate nici măcar de către ei, care ar putea fi ajutați de diverse conferințe dedicate, workshop-uri, manifestări științifice sau cadre didactice.
Ca studentă, mi-ar fi plăcut să descopăr mai multe despre această ramură a cercetării încă din timpul studiilor, dar nu am avut ocazia. Am realizat, odată cu orele de laborator pe care le-am ținut, că mulți studenți erau, la rândul lor, interesați de cercetare, însă nu știau ce presupune. Probabil participarea la cele menționate mai sus i-ar ajuta pe studenți mai mult în această direcție sau, de ce nu, o materie în cadrul căreia să simuleze o mini-lucrare de cercetare.