Tuesday, November 10, 2026

V-ați uitat la mâna stângă a lui Ilie BOLOJAN?

Luni seara, o televiziune a arătat imagini de la o întâlnire a lui Ilie BOLOJAN cu PNL-iștii dintr-un județ și cameramanul a insistat cu camera pe mâna stângă a lui Ilie BOLOJAN, mână care era sprijinită de brațul unui fotoliu imens, dar care arăta că Ilie BOLOJAN avea niște mișcări necontrolate ale mâinii, exact așa cum arătau ostentativ televiziunile mâna lui BĂSESCU care cu greu reușea să țină berea într-un pahar de plastic. Mult caz s-a făcut de descoperirea făcută de rularea peste ani a unor imagini necenzurate cu HITLER care nu reușea să stăpânească tremurul mânii drepte, mână pe care el o ținea în buzunarul raglanului. Este posibil ca oamenii de specialitate să analizeze și să identifice cu claritate despre ce este vorba, căci cameramanul acela care a insistat pe mâna lui Ilie BOLOJAN, știa el ce știa...


î
(10 noiembrie 2026) 

Profesorul universitar Adrian ATANASIU

Adrian ATANASIU este născut la data 21-12-1946.

În intervalul 1960 - 1965, Adrian ATANASIU a fost elev la Liceul „Ienăchiță Văcărescu” din localitatea Târgoviște.
În intervalul 1965 - 1970, Adrian ATANASIU a fost student la facultatea de Matematică de la universitatea din București.
În intervalul aaaa - bbbb, Adrian ATANASIU a urmat curs de masterat la... (Notă: În perioada 
În intervalul 1974 - 1978, Adrian ATANASIU a derulat un stagiu doctoral.
În intervalul 1970 - 2011, Adrian ATANASIU a fost cercetător sau preparator universitar sau asistent sau lector sau conferențiar. Trebuie puse toate pozițiile ocupate:
1970 - 1972: preparator universitar la Facultatea de Matematică, Universitatea din București.
1972 - 1980: asistent universitar la Facultatea de Matematică, Universitatea din București.
1980 - 1990: lector universitar la Facultatea de Matematică, Universitatea din București.
1990 - 2001: conferențiar universitar la Facultatea de Matematică, Universitatea din București.
2001 - 2011: profesor universitar la Facultatea de Matematică și Informatică, Universitatea din București.
În iunie 1978, Adrian ATANASIU a susținut teza de doctorat referită prin:
Adrian ATANASIU - C-Gramatici și codificatori arborescenți, Universitatea din București, 1978, 142 pag.
Conducătorul său de doctorat a fost profesorul universitar Silviu GUIAȘU.
Adrian ATANASIU a scris lucrări referite prin:
Adrian Atanasiu - Cum se scrie un algoritm simplu!, Agni, București, 1993, 191 pagini, ISBN: 973-95944-1-7.
Adrian Atanasiu - Arhitectura calculatorului, InfoData, Cluj-Napoca, 2006, 206 pagini, ISBN: 978-973-87774-0-8.
Adrian ATANASIU - Bazele informaticii, suport de curs pentru anul II, Lito Universitatea București, București, 1987,
Adrian ATANASIU - Teoria codurilor corectoare de erori, Editura Universității București, București, 2001, 337 pag., ISBN 973-575-589-0
Profesorul universitar Adrian ATANASIU a coordonat teze de doctorat ale unor tineri valoroși precum:
Radu-Florian ATANASIU 
Marius MIHĂILESCU
În mână am acum un exemplar al cărții scrise de Profesorul Adrian ATANASIU referită prin:

Adrian ATANASIU - Cum se scrie un algoritm simplu!, Agni, București, 1993, 191 pagini, ISBN: 973-95944-1-7.
La pagina 191 se află bibliografia  ce conține 9 titluri, din care 3 sunt ale unor autori români și aici mă refer la Adrian ATANASIU cu lucrarea Bazele informaticii din 1987, Cristian CALUDE cu lucrarea Teoria algoritmilor din 1987 și Grigor MOLDOVAN cu Scheme logice și programe FORTRAN din 1978, Adrian LEU și Ioan TOMESCU cu Matematica aplicată în tehnica de calcul din 1980. Cărțile și articolele de revistă incluse în bibliografie au fost publicate în intervalul 1959 - 1992.
 Cartea are 3 capitole și 3 anexe
Capitolul 1 de la paginile 7 - 24, intitulat Algoritmi - prezentare realizează introducerea conceptelor de bază algoritm și subalgoritm.
Capitolul 2 de la paginile 25 - 55, intitulat Limbajul algoritmic pseudocod
Capitolul 3 de la paginile 56 - 145, intitulat Clasificarea algoritmilor, prezintă algoritmi liniari cu exemplificări pentru:
- calculul mediei aritmetice,  
- restul împărțirii a două numere întregi,
- permutarea a două elemente,
- calculul polinomului de gradul doi.
Exemplificările pentru algoritmii ramificați se referă la:
- aflarea aflarea maximului dintrte două și trei ele,mente,
- testarea divizibilității a două numere,
- rezolvarea ecuației de gradul cel mult doi,
- rezolvarea unei probleme de căutare.
Exemplificarea pentru algoritmi ciclici se referă la:
- suma numerelor,
- contorizarea elementelor dintr-un șir mai mari decât o valoare dată,
- aflarea maximului dintr-un șir de elemente,
- lucrul cu matrici (inițializare),
- implementarea algoritmului lui Euclid,
- testarea dacă un număr este prim,
- ordonarea crescătoare a elementelor unui șir.
Anexa 1: Scrierea algoritmilor în limbajul BASIC.
Anexa 2: Scrierea algoritmilor în limbajul PASCAL.
Anexa 3: Indexul alfabetic al algoritmilor.
Am apreciat faptul că profesorul Adrian ATANASIU la definirea de algoritmi și subalgoritmi pornește de la exemple din viața de toate zilele.  Și eu în activitatea mea cu studenții discutam de realizarea algoritmului pentru prepararea mămăligii și mulți oameni se convingeau că viața bate filmul, cum viața bătea filmul și în cazul scrierii algoritmului prin care omul mănâncă ciorba dintr-o farfurie, algoritm ce trebuia descris pas cu pas. La paginile 13 - 49 sunt prezentate blocurile utilizate în descrierea unui algoritm. și se ajunge la schema logică. La pagina 57 este dată schema logică pentru calculul mediei aritmetice a două numere. La pagina 71 este dată o schemă logică pentru aflarea maximului dintre 3 numere.
Implementarea structurii repetitive este dată la paginile 90 - 94. La pagina 100 se află schema logică pentru numărarea elementelor dintr-un șir mai mari decât o valoare dată. La pagina 103 se află schema logică pentru numărarea elementelor dintr-un șir egale cu o valoare, a elementelor mai mici decât valoarea dată și anumărareae elementelor mai mari decât valoarea data.
Schema logică pentru inițializarea cu zero a elementelor unei matrici este dată la pagina 119.
Prezentarea algoritmilor se face și cu ajutorul textelor, așa cum este exemplul de la pagina 141 pentru ordonarea crescătoare a elementelor unui tablou unidimensional.
Acum, în anul 2026, exemplele acestea au o cu totul altă semnificație, numai că lucrarea despre care scriu aici a fost realizată acum 33 de ani. La pagina 149 sus, este textul BASIC al rezolvării ecuației de gradul al II-lea când discriminantul duce către soluții reale. Acum programatorii au alte posibilități și au posibilitatea să ia în considerare și situația în care discriminantul este negativ, căci lucrul cu numere complexe nu mai este o mare filoisofie.
Am apreciat cele două anexe în care se prezintă programe pentru soluționarea cam acelorași probleme în limbajele BASIC și PASCAL. Textele prezentate de autor sunt de calitate excelentă și au foarte multe texte lămuritoare care apar ca mesaje pentru utilizator. De exemplu, la pagina 162 se află programul BASIC ord_2 cu  22 instrucțiuni, iar la paginile 187 - 188 se află programul ord_2  cu 19 instrucțiuni, unele definind blocuri cu begin, respectiv, end







(10 noiembrie 2026)

Monday, November 9, 2026

Ce ar trebui săconțină o carte de prezentare a limbajului de asamblare?

Din start trebuie să spun că programatorul care știe un limbaj de asamblare înseamnă că a căpătat deprinderea de a ști că, plecând de la un șir inițial de biți, prin transformări se ajunge la un șir final de biți și are o explicație corectă la transformările care au loc pe tot  parcursul prelucrării.
La programatorul de assembler totul are explicație la nivel de bit, iar pașii derulați aval-amonte de la șirul de biți rezultat spre șirul de biți inițial sunt cei doriți de programator sau cei executați din cauza erorilor de programare, iar aceste erori trebuie descoperite și corectate cu precizie.
La programatorul de assembler nimic nu mai are vreo undă de mister, căci totul este clar ca bună ziua. 
Cartea de assembler trebuie să nu-i sperie pe cei care doresc să devină programatori de assembler, care în final să aibă tot ce se cheamă programare la degetul lor cel mic.
Cine vede pentru prima dată lista de acronime utilizate în limbajul de asamblare se va speria. Dacă însă autorul cărții de prezentare a limbajului de asamblare o ia mărunțel, cu grijă și își urmează obiectivul, ajunge să parcurgă întreaga listă, iar la finalul cărții, cititorul va constata că stăpânește la perfecție limbajul de asamblare și că este în stare să jongleze cu facilitățile lui, pentru a rezolva în condițiile cele mai bune chiar cele mai complexe și mai novatoare probleme. Inteligența Artificială nu-i doboară pe programatorii de assembler, așa cum este posibil să se întâmple cu programatorii pentru care există în online software de toate felurile.
Autorul cărții de prezentare a limbajului de asamblare trebuie să spună că memoria calculatorului este privită ca un șir de octeți, care pot fi priviți octet cu octet, sau pot fi priviți ca grupuri de câte doi octeți, grup care se numește cuvânt, sau grupuri de câte patru octeți sau grupuri de câte opt octeți. Dacă mai spune și de condiția de divizibilitate a adreselor, este deja un bun câștigat. Poziția fiecărui octet se numește adresă relativă. Dar dacă vorbim despre toată memoria, vorbim de adresă absolută.
Aceste detalii sunt extrem de importante.
Un șir de biți este interpretat în funcție de context. Un șir de biți memorat pe doi octeți consecutivi se interpretează ca:
- două caractere,
- un întreg fără semn,
- un întreg cu semn,
- deplasare,
- instrucțiune assembler.
Nu trebuie spuse prea multe lucruri pentru a nu-l ameți de cap pe cititor.
Se prezintă câte ceva despre definirea de variabile și despre instrucțiuni de tip RR, RS și SS.
Următorul pas este să se prezinte structura instrucțiunii assembler pentru fiecare tip.
Exemplul de program va fi prezentat atât la nivel de instrucțiuni, cât și la nivel de octeți, cu explicarea șirurilor de biți.
Se trece la prezentarea instrucțiunilor de calcul aritmetic, a instrucțiunilor logice, la instrucțiunile de comparare și se va vorbi despre poziționarea indicatorilor de condiție.
Se continuă cu instrucțiunile de salt necondiționat și cu instrucțiunile de salt condiționat.
Programatorul assembler își va da seama că programarea fără GO TO este o minciună și că nu există program care să se execute fără a avea instrucțiuni de salt necondiționat, căci instrucțiunea de salt, oricare ar fi ea, înseamnă calcul de adresă, iar BRU, JZ, JE, JG, JNLE sau oricare altă variantă calculează o adresă și determină execuția la instrucțiunea cu adresa calculată. Nu există altceva. Instrucțiunea RET extrage o adresă aflată în stivă și este corelată cu instrucțiunea CALL. Explicând exact ce și cum, totul devine clar, fie că se lucrează în cadrul aceluiași segment sau se lucrează cu componente aflate în segmente diferite. Programatorul este cel care gestionează încărcarea segmentelor pentru a reuși execuția calculelor corecte de adrese, căci există un segment numit rădăcină, de la care pleacă toate calculele.
Este important să se arate cum se implementează în programul assembler structuri de date cunoscute, cum se lucrează cu variabilele pointer, cum se definesc modurile de adresare.
Lucrurile se complică din aproape în aproape și, dacă sunt explicate bine, sunt înțelese și se trece la pasul următor.
Aritmetica binară este ceva. Aritmetica în virgulă mobilă este altceva.
Lucrul cu șiruri de caractere necesită o abordare de sine stătătoare.
Există aritmetica zecimal împachetată.
Există reprezentarea zecimal despachetată.
Există mecanisme de transmitere a parametrilor din subprograme.
Există macrodefiniții și utilizarea lor.
Pentru programatorul assembler nimic nu mai trebuie să rămână neexplicat.
Pas cu pas, lista de instrucțiuni a limbajului de asamblare scade, căci instrucțiunile sunt prezentate una câte una. Trebuie să existe un șablon de prezentare pentru ca programatorul să înțeleagă care a fost conținutul regiștrilor sau al zonelor de memorie înainte de execuție și după execuția unei instrucțiuni, cum sunt poziționați indicatorii de condiție și, mai ales, care ar fi erorile de programare care ar apărea din greșeala programatorului.
Intră în scenă prezentarea interpretării ciclurilor mașină și programatorul va vedea cum stau lucrurile din acest punct de vedere, dacă dorește ca programele lui să aibă un număr minim de cicluri mașină. El va alege modul de adresare, va înțelege cum stă treaba cu conversiile dacă alege prost tipurile de variabile și dacă nu va lucra bine cu structuri de segmentare a programelor lui.
Dacă a găsit cartea bună de limbaje de asamblare, programatorul va fi un bun programator în assembler și va alege exact resursele care să-l ducă la soluțiile cele mai bune pentru rezolvarea problemei lui și va înțelege de ce este bine să lucrăm cu o variabilă elementară când calculăm suma produselor linie-coloană la înmulțirea a două  matrice, după care, la terminarea buclei repetitive, atribuim valoarea acelei variabile elementului din matricea produs.
În niciun caz, un programator assembler nu se va uita la erorile dintr-un program scris în orice alt limbaj de programare și nu se va mira, ci va găsi explicația logică a erorii, o va corecta și programul va intra din nou în execuție.


(09 noiembrie 2026)

Profesorul universitar Gheorghe MUSCĂ

În intervalul 1976 - 1981, Gheorghe MUSCĂ a fost student l Facultatea de Automatică și Calculatoare de la IPB.

În intervalul 1984 - 1990, Gheorghe MUSCĂ a fost student la Facultatea de Matematică a Universității București.

În intervalul 1981 - 1984, Gheorghe MUSCĂ a lucrat la ICE Felix.

În intervalul 1984 - 1991, Gheorghe MUSCĂ a fost preparator universitar / asistent universitar în cadrul Universității POLITEHNICA din București.

În intervalul 1991 - 1996, Gheorghe MUSCĂ a fost lector universitar în cadrul Universității POLITEHNICA din București.

În intervalul 1996 - 2002, Gheorghe MUSCĂ a fost profesor universitar în cadrul Universității POLITEHNICA din București.

În intervalul 1993 - 1996, Gheorghe MUSCĂ a derulat stagiul doctoral în cadrul Catedrei 

În anul 1996, Gheorghe MUSCĂ a susținut teza de doctorat referită prin:

Gheorghe MUSCĂ - Programarea aplicațiilor în timp real în conducerea distribuită (Programming Real-Time Applications in Distributed Control), Universitatea POLITEHNICA din București, 1996, 156 pag.

Conducătorul său de doctorat a fost profesorul universitar Ion DUMITRACHE.

După încheierea activității didactice, Gheorghe MUSCĂ a lucrat ca Senior Project Manager.

Gheorghe MUSCĂ a scris lucrări referite prin:

Gheorghe MUSCĂ - Programare în limbaj de asamblare, Editura Teora, București, 1997, 322 pagini, ISBN: 973-601-480-0.

Florin MUNTEANU, Gheorghe MUSCĂ - Informatică aplicată. Manual pentru liceele de informatică, clasa a XI-a, alternativa A, Editura Didactică și Pedagogică, București, 1996.

Florian MORARU, Gheorghe MUSCĂ - Informatică aplicată, Editura Didactică și Pedagogică, București, 1998, 351 pag., ISBN: 973-30-5766-5

Gheorghe MUSCĂ a tradus și publicat în colaborare cu Minerva CERNEA și Ariana POPESCU cărți precum:

Jim LAMMERS, Michael Todd PETERSON - 3D Studio pentru începători, Editura Teora, București, 1997, 512, ISBN: 973-601-409-7

Tim EVANS - HTML [... în lecții de 10 minute], Editura Teora, București, 1996, 168 pag., ISBN: 973-601-739-7

Galen A. GRIMES - Netscape pentru Windows 95, Editura Teora, București, 1996, 138 pag., ISBN: 973-601-659-5






(09 noiembrie 2026)

  

 

Ce ar trebui să conțină o carte de prezentare a limbajului FORTRAN?

În spațiul mioritic au fost publicate nenumărate cărți despre limbajul FORTRAN, unele dintre ele chiar fiind capodopere ale genului.
Și eu am fost într-o echipă care a scris ceva despre limbajul FORTRAN, fără a spune că voi impune aici cum trebuie scrisă o astfel de carte, că eu am realizat-o la vrtermea mea. Acum, că am căpătat o oarecare experiență, văd altfel scrierea unei cărți de FORTRAN.
Aș lua prima dată lista cuvintelor cheie ale limbajului FORTRAN scrise în ordine alfabetică și după experiența acumulată, aș prezenta elementele necesare scrierii unui program simplu după citirea a cel mult 10 pagini de carte de către cititor și respectivul program ar trebuie să conțină:
- definirea de variabile,
- inițializarea lor de la tastatură,
- efectuarea de calcule simple,
- afișarea pe ecran a rezultatelor.
În vremurile de demult, ideea era de a avea datele perforate pe cartele. Nu era nicio problemă căci prezentarea cartelei și a descriptorului de format I este ceva lipsit de efort de înțelegere, căci orice convenție este ușor acceptată, mai ales de către programatori.
Pasul următor este definirea masivelor unidimensionale folosind DIMENSION și implementarea structurii repertitive de control DO în forma ei simplă și imediat este creat contextul calculul unei sume de N termeni, într-un program, undeva fără a trece de pagina 30 a cărții. 
Rând pe rând, aș introduce folosirea instrucțiunii IF, apoi a instrucțiunii GO TO.
Cititorul și-a satisfăcut curiozitatea începătorului și dacă el dorește ceva mai mult și mai în detaliu, în carte va găsi ceilalți descriptori de format, modul de inițializare a masivelor unidimensionale folosind instrucțiunea READ și afișarea acestor masive folosind instrucțiunea WRITE.
Lucrurile trebuie să avanseze cu definirea de masive bidimensionale și inițializarea lor la definire sau folosind instrucțiunea READ.
Exemplele oferite trebuie să fie sugestive și bine scrise, ca viitorul programator  FORTRAN să vadă lucruri bine făcute, căci așa va face și el lucruri bine făcute de către el.
Mai departe, cartea ar trebui să prezinte subprograme de tip SUBROUTINE, FUNCTION  și instrucțiunea RETURN. 
Lucrurile vor fi complicate din apropae în aproape, cu folosirea structurii alternative multiple, GO TO calculat, cu utilizarea lui COMMON, dar și a celorlalte elemente de mare subtilitate a limbajului.
Cartea se va considera completă dacă și numai dacă, au fost abordate toate cuvintele cheie ale limbajului FORTRAN și au fost furnizate exemple edificatoare care să le scoată în evidență.
Acum există Inteligență Artificialăî și autorul unei cărți de FORTRAN se poate ajuta de aceasta pentru a face din cartea pe care o scrie un produs ideal, să nu zic o capodoperă.


(09 noiembrie 2026) 

Cum ar trebui să arate o bibliotecă 100% digitalizată?

Acum suntem în anul 2026 și ar cam trebui să vorbim de biblioteci digitalizate dacă nu 100%, să fie digitalizate peste 70% și să mai rămână digitalizarea cărților rare și a manuscriselor, care necesită condiții excepționale de manipulare și de scanare.
În primul rând biblioteca digitalizată 100% trebuie să aibă o interfață prietenoasă, încât cetățeanu care o accesează să trăiască cu impresia că totul a fost gândit și făcut pentru el.
Pentru aceasta trebuie întrebați cel puțin 5.000 de oameni care trec pragul unei biblioteci fizice, de ce vin acolo și ce-i interesează. Eu de exemplu, aș fi interesat să știu cărțile scrise de un autor. De aceea, dacă indic autorul să mi se afișeze  toate cărțile scrise de acesta.
Dacă introduc titlul chiar aproximativ al unei cărți, răspunsul să fie unul satisfăcător și eu să aleg ceea ce mă interesează.
O bibliotecă digitalizată 100% trebuie să-mi ofere acces și la conținutul unei cărți pe care o caut sau la conținutul unui articol dintr-o revistă, pe care l-am identificat din aproape-n aproape.
Acum există Inteligența Artificială și solicitarea cititorului se poate face folosind limbajul natural la o adică. Nu suntem țara lui SHAKESPEARE sau țara lui GOETHE sau țara luio DANTE pentru a avea pretenții de oameni citiți, când avem peste 40% analfabeți funcționali și accesul la acrte musai trebuie să fie gratuit. De aceea, ideea de a avea servicii plătite în bibliotecile 100% digitalizate mi se pare mai mult decât excentrică. Vine omul și vrea să citească un articol. Desigur, în biblioteca 100% digitalizată, această posibilitate trebuie să existe. Vine omul și vrea o listă cu cărțile scrise de un nene sau de o tanti, această posibilitate, desigur trebuie să existe, inclusiv, posibilitatea cititorului de a descărca fie articolul, fie lista, în fișiere proprii folderul  DOWNLOAD al computerului său. Dacă cititorul vrea să i se întocmească o teză de doctorat, mai treacă-meargă, să scoată banul, dar pentru chestii realizate prin simple comenzi exersate în baze de date unde nu tu creație, nu tu efort intelectual, nu văd de ce să scoată banul gros cititorul ca să ce? Nici muncă fără pâine, nici pâîine fără muncă. Bibliotecile nu sunt ca băncile ca săi jupoaie pe clienți. Ele sug la banul public și cititorul este deja contribuabil la buget, deci Q.E.D., nu?



(09 noiembrie 2026) 

PS: Anul 3122 ne va prinde tot cui biblioteci digitalizate cu cărți de după 1990 și fără acces la textele cărților vechi de după 1900 și fără acces la reviste și la ziare, căci dacă nue, nici Dumnezeu nu cere.

Sunday, November 8, 2026

Cărți de demult ale profesoarei Irina ATHANASIU de la IPB

Acum în anul 2026, mulți tineri cred că informatica a început cu ei. Adevărul este altul. Înformatica în spațiul mioritic a început cu mul mai înainte și este important să se vadă că profesori precum Irina ATHANASIU de la Institutul Politehnic din București, au avut contribuții majore.

Luca Dan ȘERBĂNAȚI, Valentin CRISTEA, Claudiu POPESCU, Irina ATHANASIU - Limbajul MACRO. 11: îndrumar de laborator, Lito IPB,   București, 1985, 177 pag.

Adrian PETRESCU -coordonator, Irina ATHANASIU membră a echipei de redactare - Structura și programarea microprocesoarelor din familia Intel 8080/8086 (Note de laborator, Lior IPB, București, 1988,  95 pag

Luca Dan ȘERBĂNAȚI, Mariana NECULA, Irina ATHANASIU - Limbaje de programare și compilatoare: Îndrumar de proiectare, Lito IPB, București,  1982, 120 pag.


(09 noiembrie 2026)