Showing posts with label PYTHON. Show all posts
Showing posts with label PYTHON. Show all posts

Monday, September 15, 2025

Decizia la îndemâna lui DOREL

Am fost șocat să aflu că stă în puterea celui de pe avion dacă lovește sau nu o dronă venită de la inamic în spațiul nostru național. Eu credeam că cel de pe avion execută un ordin dat de un șef, iar decizia este a șefului, oricare ar fi el, dar șef să fie, căci ordinul se execută, nu se discută, iar executantul se află pe avion, nu el este decidentul. Mi se pare straniu că chiar ministrul apărării a avut o zicere în acest sens, ceea ce-mi arată că față de vremurile în care eu am făcut armata în 1970, lucrurile s-au schimbat radical. Pe vremea mea, totul era scris în regulamente și executantul era executant și nimic nu se făcea aiurea, ci la ordin, iar ordinul se executa, nu se discuta. Îmi aduc aminte că într-o cărticică erau date desene de cum se pun plachiurile pe talpa bocancilor din dotarea soldaților, așa de riguroase și fără interpretare erau pe atunci lucrurile în armată. Nimeni nu făcea nimic de capul lui, ci totul avea la bază un ordin dat de un șef, ordin care automat se exscuta, nu se discuta.
Stau și mă întreb, că așa cum zice colegul meu Johann Carl Friedrich GAUSS, în colectivitățile mari, musai există și DOREL multiplicat în câteva exemplare și mă întreb dacă i se lasă la altitudinea unui DOREL să doboare o dronă, că așa decide el, nici nu vreau să mă gândesc la consecințe.
Față de 1970 când am făcut eu armata, ce văd în jurul meu, mă face să gândesc la ce-am fost și ce-am ajuns, dacă nu mai înțeleg ce se întâmplă în jurul meu, am scris programe în PYTHON. Să fie vorba de pasarea responsabilității, caracteristică fundamentală a oamenilor politici?

(15 septembrie 2025)

Wednesday, April 2, 2025

Un programator cu experiență învață un nou limbaj de programare sau se acomodează cu el?

Pentru un programator cu experiență, care a trecut cu succes prin a programa în mai multe limbaje de programare, atunci când se pune problema să folosească un nou limbaj de programare, se va acomoda fără prea mari dificultăți cu noul limbaj de programare.
El trebuie să-și răspundă la o serie de întrebări, atunci când studiază documentația noului limbaj de programare.
Cum se declară programul principal?
Limbajul are o listă de cuvinte cheie?
Cum se definesc blocurile?
Care sunt tipurile de variabile?
Care sunt tipurile de constante?
Cum se implementează structura alternativă?
Există structură alternativă multiplă?
Cum se implementează structura repetitivă condiționată anterior?
Cum se implementează structura repetitivă condiționată posterior?
Cum se definesc și cum se referă variabilele pointer?
Există variabile de tip articol?
Cum se construiesc funcțiile și sub-rutinele?
Care este lista de operatori?
Cum se construiesc expresiile?
Cum se face alocarea dinamică de memorie?
Există recursivitate?
Care sunt regulile de construire a expresiilor de referire?
Ce limitări există la numărul de niveluri de definire și de referire a variabilelor pointer?
Există atribuire multiplă?
Cum se definesc fișierele?
Care sunt instrucțiunile în care apar fișiere?
Există biblioteci de funcții standard?
Cum se definesc și cum se folosesc obiectele?
Există cărți de prezentare a limbajului?
Există cărți sau portaluri cu exemple de programe scrise în noul limbaj? 
S-a înțeles exact ce aduce nou acest limbaj de programare?
Care sunt marile diferențe ale limbajului în raport cu limbajele cunoscute?
Ce are în plus acest limbaj de programare?
Ce lipsește acestui limbaj în raport cu limbajele cunoscute?
Mai sunt și alte întrebări, dar folosind principiul văzând și făcând, programatorul ca asimila cam tot ceea ce are nevoie din noul limbaj de programare, pentru a scris programe folosind cât mai bine facilitățile, fără a face neapărat programare în noul limbaj, doar de dragul de a face altceva și altfel, dar preluând noile facilități, deși dacă scria programul în vechiul limbaj tot cam așa stăteau lucrurile. Un nou limbaj de învață pentru a face altceva, o programare de un alt nivel, care să însemne eficiență și aliniere la ceea ce întâmplă în noile tendințe ale programării, adică progres.


(03 aprilie 2025)




(02 aprilie 2025)

Monday, October 23, 2023

Ce înțeleg eu prin student foarte bun?

Eu zic că știu să fac diferența între studenți pentru că am lucrat cu studenții din 1971 când am intrat ca asistent stagiar în Catedra de Cibernetică Economică, până în anul 2012 când am ieșit la pensie de pe poziția de profesor universitar, din Departamentul de Informatică și Cibernetică Economică.
Eu discut despre ceea ce înțeleg prin student foarte bun, în raport cu ceea ce mă pricep eu, adică în legătură cu programarea calculatoarelor. Adică, voi discuta despre ce înțeleg eu prin student foarte bun în raport cu cursurile și seminariile de la disciplinele de informatică pe care le-am ținut sau le-am condus eu în cei peste 40 de ani de activitate la catedră. În rest nu mă pronunț, căci ar fi greșit să trag eu concluzii unde nu mă pricep și ar fi și nedrept pentru cei pe care nu i-aș băga în categoria studenților foarte buni în raport cu disciplinele de care m-am ocupat eu, deși ei ar fi foarte buni în raport cu alte discipline.
În opinia mea, un student este foarte bun dacă și numai dacă:
- citește foarte multă documentație de programare pe care o și înțelege,
- stă la calculator și scrie programe pentru a rezolva probleme noi,
- gândește înainte de a scrie programe, pregătind scrierea de text sursă,
- nu memorează secvențe de program, ci gândește secvențe de program,
- vine la seminarii și este activ, remarcându-se prin soluții bune oferite,
- scrie programe de calitate în timpul seminarului și justifică totul,
- are capacitatea de a identifica erori de programare la el și la alții,
- este perfecționist  la un programele lui sau ale altora aflate în exploatare,
- critică ceva dintr-un program, vine și cu soluția care aduce îmbunătățiri,
- are inițiativă când lucrează la un proiect în echipă și arată că este lider,
- este disciplinat, punctual, realist și  se vede prin programele livrate.
Nu este greu să-l identifici pe studentul foarte bun căci acesta iese în evidență din prima clipă în care apare o solicitare de a fi rezolvată o problemă, de a fi scris un program, de a face modificări unui program. El iese în evidență cu aportul colegilor lui, căci atunci când este pusă o întrebare, ochii lor sunt îndreptați către acest student, care este cel mai bun din grupă și speranța tuturor în el este pusă. Totul este ca de la catedră să nu se producă eroarea ca tot timpul acest student să fie solicitat, iar restul studenților grupei să devină spectatori inactivi, așa cum mi s-a întâmplat mie în vremea studenției mele și m-am văzut în situația că a trebuit să fac singur ceea ce trebuia să facă asistentul cu grupa, dacă nu lucra cu studenții care fuseseră în producție pe meserie și erau de-a dreptul ermetici.



(24 octombrie 2023)

Sunday, June 25, 2023

Recitați programe PASCAL, C++, PYTHON etc...

Am avut surpriza să constat că oamenii memorează programe pentru rezolvarea de probleme  pe calculator și le recită la momentul potrivit. Ei nu construiesc programe. Ei nu știu să construiască programe. Le iau ca pe niște poezii, le memorează și le recită. Se întâmplă acest lucru că în clasele elementare și în liceu, ei nu au fost învățați să învețe, ci au fost puși să memoreze și să redea fără să gândească ceea ce fac, din cauza profesorilor care nu știau la rândul lor să facă altceva, decât să citească, să memoreze și să recite, fără să fi înțeles o iotă din ce trăncăneau elevilor la clasă. Eu am avut o profesoară în clasa a VIII- a care recita lecția din cartea de fizică, iar dacă am urmărit-o cu cartea în bancă, m-a sancționat cu nota doi, chiar de două ori în aceeași lecție, drept care am urât-o și pe ea, dar și pe toți recitatorii de la catedră, pentru care nu am niciun respect, pentru că eu consider că știința nu se recită, ci se înțelege, se explică și se folosește creativ în soluționarea logică a problemelor din viața de zi cu zi.
Școala așa cum este acum clădită trece prin momentele ei cele mai puțin favorabile, căci dispune de un corp profesoral orientat spre cantitate, nu spre calitate. Elevii primesc zeci și zeci de exerciții de același fel sau tip de rezolvat, primesc rezumate pe care trebuie să le memoreze. Elementul de creativitate lipsește cu desăvârșire din moment ce profesorii lor sunt chitiți doar pe memorare și redare, fiind lipsiți de orice urmă de creativitate, de gândire spre ceva nou, în care ei să fi avut o contribuție, cât de cât.
Pentru cei care ar trebui să scrie programe pentru calculator este o calamitate memorarea de programe, căci fiecare problemă are ceva al ei și preluarea mecanică de secvențe de instrucțiuni la un program existent, fără a ști ce modificări trebuie făcute, va duce la soluții care nu au nicio legătură cu obiectivul stabilit. 
Îmi amintesc că la un examen de Structuri de date, un student a tras biletul, l-a citit, apoi s-a așezat la calculator și asemeni unui pianist de mare virtuozitate, s-a apucat să tasteze textul sursă. Am avut surpriza să constat că studentul scria un program memorat, care nu avea nicio legătură cu enunțul din biletul de examen. Când l-am întrebat de ce nu are o foaie de hârtie pe care să scrie și el ceva din rezolvare, mi-a zis că nu are nevoie, că programul este foarte simplu. Întâmplarea a făcut ca să colaborez cu el la lucrarea de licență și să-i arăt că a programa nu înseamnă a memora, ci a gândi, a fi creativ, a da soluție. S-a minunat și mi-a zis că regretă că nu ne-am cunoscut cu ceva mai mult timp înainte, căci cu totul altfel ar fi fost viața lui. Dezbăratul de memorat e greu, căci memoratul fără a înțelege contextul e boală grea.


(25 iunie 2023)

Monday, May 22, 2023

Eu și interviurile

Am citit foarte multe interviuri luate:
- actorilor de cinema,
- sportivilor,
- oamenilor de știință,
- politicienilor,
- condamnaților,
- muncitorilor,
- gospodinelor,
- elevilor,
- studenților,
- politrucilor.
Am văzut că există o anumită tipologie de întrebări. Sunt cei care iau interviul și le place să se audă vorbind, drept care răspunsurile primite sunt foarte scurte. Am văzut și interviuri unde întrebările sunt scurte, bine țintite și cel ce răspunde oferă detalii extrem de interesante. Cine vrea să facă un interviu trebuie să aibă un nivel ridicat de cultură, să știe ce întreabă și să formuleze astfel întrebarea încât cel care trebuie să răspundă să aibă un câmp larg de acțiune și să vină cu noutăți absolute.  Nu este ușor să faci un interviu, căci de cele mai multe ori, oamenii au clișeele lor supărătoare, ceea ce trebuie evitat de la un interviu la altul.
Sunt situații în care întrebările sunt convenite și răspunsurile își pierd din spontaneitate. La interviurile care apar în ziar este dificil de a pune întrebări incomode, căci dacă interviul nu este înregistrat și apoi transcris, apar distorsiuni la scrierea directă pe măsură ce interviul se derulează.
În anumite momente ale vieții mele am dat și eu câteva interviuri, dar nu eu sunt o persoană interesantă care să impresionează prin ceea ce spune. Răspunsurile mele au fost lămuritoare, nu au avut elemente senzaționale și de aceea eu nu mă încadrez printre cei acre ar face audiență dacă mi s-ar lua interviu. dacă aș vorbi despre programarea în PYTHON numărul celor care ar fi interesați ar fi extrem de redus.
Probabil ar fi interesant un interviu cu întâmplări de pe la examene, de pe la comisii de doctorat sau comisii de bacalaureat, dar sunt sigur că și în aceste cazuri, nu ar fi chestii hazlii, care să stârnească interesul și care să aducă mii de cititori.






(22 mai 2023)

Tuesday, June 14, 2022

Stabilirea științifică a categoriilor de concurs în bodybuilding

Ne-am obișnuit să vedem tot felul de clasamente și tot felul de regrupări, unele dintre ele schimbându-se cu frecvență mai mare decât ne-am aștepta. Pentru a aplica metode științifice este necesar să dispunem de suficient de multe date. În opinia mea, competițiile numeroase care sunt organizate în întreaga lume oferă fondul informațional care permite efectuarea unei cercetări solide și constituirea de grupe de concurs pe cu totul alte baze decât suntem obișnuiți. 
Cercetarea științifică nu trebuie să pornească de la idei preconcepute. Se pornește de la înregistrări de ordin cantitativ. din competiții și de la fiecare sportiv se înregistrează date precum:
- caracteristici de ordin fizic,
- participări în competiții pentru categoriile existente,
- rezultate obținute,
Se va căuta ca numărul caracteristicilor cantitative să fie cât mai mare, iar acolo unde apare necesitatea, se vor introduce caracteristici de natură calitativă.
La ora actuală există metode statistice excepționale care oferă cu precizie foarte mare informații extrem de utile decidenților. Se știe că există mai multe organizații ale culturiștilor și trebuie să spun din start că acea organizație care va face ca toți participanții din cadrul competițiilor să se simtă la fel de confortabil, în ideea maximizării nivelului de confort, va reuși să capaciteze cei mai mulți sportivi și calitatea competiției va fi cu totul alta dacă grupele de concurs sunt echilibrate.
Analiza de date permite identificarea sub-grupelor omogene de indivizi dintr-o colectivitate descrisă prin mai multe caracteristici. Ideea este că trebuie să fie înregistrate multe caracteristici ale sportivilor și acestea vor fi ierarhizate. După aceea, va fi constituită din aproape în aproape acea grupă a caracteristicilor reprezentative care va da și sub-grupele de indivizi omogene și stabile. Este totul științific și corect, cu condiția ca datele prelucrate să fie complete și mai ales reprezentative. Există o vorbă: gunoi bagi, gunoiu se obține. Dacă datele nu sunt corecte și complete, rezultatul analizei este un fiasco. Nu știința a greșit, ci noi că nu am fost în stare să facem o treabă ca lumea.
Nu este exclus ca metoda științifică să conducă la un rezultat care nu diferă foasrte mult de ceea ce există la o anumită organizație. Bravo ei! Dar tot atât de bine este ca grupele noi care sunt definite să revoluționeze culturismul, iar viața va fi aceea care va impune marele adevăr, căci nu este rezonabil să existe o grupă de concurs cu doi sportivi și tot în acea zi să urce pe scenă la o altă grupă 20 de competitori. Înseamnă că ceva este greșit și trebuie corectat, căci nu realitatea se corectează, ci competiția se mulează după realitate.


(14 iunie 2022)

Saturday, March 26, 2022


Step 1st:

#
#     ********* Futctions library in file LibraryList.py *************
#
def sum_two_list(x,y, nr):  #  Add two list items
    sum = [0]*nr
    i = 1
    while i < nr:
        sum[i] =  x[i] + y[i]
        i = i +1
    return sum
def sum_elem(x, nr):    # Add items to a list
    suma = 0
    i = 0
    while i < nr:
        suma = suma + x[i]
        i = i +1
    return suma
def prod_scalar(x, y, nr):   #  The scalar product of two vectors
    suma = 0
    i = 0
    while i < nr:
        suma = suma + x[i] * y[i]
        i = i +1
    return suma
def swap(x,i, j):  # Swap two elements
    y = x
    temp = y[i]
    y[i] = y[j]
    y[j] = temp
    return y

Step 2nd.
#
#   Call function from library 
#
import LibraryList
NR = 10
X = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Y = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Z = LibraryList.sum_two_list(X,Y, NR)
SUMA_X = LibraryList.sum_elem(X, NR)
SUMA_Y = LibraryList.sum_elem(Y, NR)
PROD_XY = LibraryList.prod_scalar(X, Y, NR)
SWAPxij = LibraryList.swap(X,3, 7)
SWAPyij = LibraryList.swap(Y,0, 9)
print('ADD LIST ELEMENTS X:', SUMA_X)
print('ADD LIST ELEMENTS X:', SUMA_Y)
print('PRODUS LISTS ELEMENTS X, Y:', PROD_XY)
print('SWAP LIST ELEMENTS i and j from X :', SWAPxij)
print('SWAP LIST ELEMENTS i and j from Y :', SWAPyij)

Results are:

=============== RESTART: /Users/ionivan/Documents/CALLfunction.py ==============
55
55
385
[1, 2, 3, 8, 5, 6, 7, 4, 9, 10]
[10, 2, 3, 4, 5, 6, 7, 8, 9, 1]
ADD LIST ELEMENTS X: 55
ADD LIST ELEMENTS X: 55
PRODUS LISTS ELEMENTS X, Y: 385
SWAP LIST ELEMENTS i and j from X : [1, 2, 3, 8, 5, 6, 7, 4, 9, 10]
SWAP LIST ELEMENTS i and j from Y : [10, 2, 3, 4, 5, 6, 7, 8, 9, 1]

(March 26, 2022) 

Monday, March 7, 2022

Visul oricărui programator începător sau nu

 Orice programator, începător sau avansat, va aprecia o documentație, dacă atunci când o citește, are senzația că este făcută pentru el. Cine se apucă să scrie o carte despre un limbaj de programare trebuie:
- să nu-l enerveze pe cititor,
- să-l învețe rapid să scrie cod corect,
- să-l facă pe programator să fie satisfăcut.
Un autor de cărți pentru un limbaj de programare trebuie să cunoască mentalitatea programatorilor și să se folosească de calitățile acestora, nu să facă așa cum crede el, căci cartea se adresează lor, nu lui. Autorul trebuie să se pună în pielea programatorilor care nu au răbdare să urmărească detaliile neinteresante care amână momentul rulării unui program propriu al celui care învață limbajul de programare.
Cine o ia ca la abecedar cu litera A apoi cu litera B și continuă cu litera C apoi cu celelalte în ordinea alfabetică, nu face altceva decât să-l scoată din minți pe programator.
Programatorul trebuie să găsească rapid ceea ce are el nevoie. De aceea, autorul face o listă cu ceea ce vrea el să prezinte și asociază acelor efemente frecvențele de referire ale acelor elemente de către programatori. Autorul ia elementul cu frecvența cea mai mare și-l prezintă practic. Apoi pe următorul și tot așa. În acest fel, autorul va satisface nevoile programatorilor.
Eu am apreciat cărțile acelor autori care mi-au dovedit că ei înșiși programaseră foarte mult în limbajul pe care-l prezentau și știau exact cu ce să înceapă și cu ce să termine.
Eu dacă aș scrie o carte de programare acum aș avea ca prim program unul care ar afișa niște mesaje, dar nu oricum, ci indicând exact ce trebuie să facă programatorul cu instalarea mediului de dezvoltare al limbajului, indicând pașii băbește, exact și fără brizbrizuri, ca programatorul după ce a tastat programul acela să dea o comandă și să-i apară mesajele imprimate folosind instrucțiunile.
L-aș atenționa cum se scriu instrucțiunile, șirurile de caractere și ce semne de punctuație trebuie să folosească. Cel mult i-aș zice ce să nu facă, dacă de-a lungul timpului s-a remarcat faptul că unii programatori fac o anumită greșeală sistematică. Eu mi-am atins obiectivul dacă în primele 30 minute, cititorul cărții mele a rulat cu succes cel puțin un program și se bucură nespus că e în stare să programeze în limbajul pe care eu îl prezint. Dacă nu este așa, vai de capul meu, că nu sunt autor bun.


(07 martie 2022)