Tuesday, February 26, 2019

„Programare cu răbdare”, o inițiativă a Lect. Dr. Bogdan Pătruț -Bacău

Cercul de informatică „Programare cu răbdare”, un proiect lansat de Asociația EduSoft

De-a lungul timpului, învățământul românesc a beneficiat de diverse inițiative și eforturi din partea unor profesori entuziaști, ce au avut ca obiective sprijinul procesului de învățare al tinerilor – elevi și studenți.
Să amintim câteva inițiative importante pentru matematica și informatica din România:
  1. Apariția Gazetei Matematice, în anul 1895, se datorează unor entuziaști ingineri (fondatorii fiind : Victor Balaban, Vasile Cristescu, Ion Ionescu, Mihail Roco şi Ioan Zottu):”Toţi erau tineri absolvenţi – doi dintre ei, din acel an, iar ceilalţi de un an sau doi înainte – ai Şcolii de Poduri şi Şosele (viitoarea Şcoală Politehnică) din Bucureşti. Se pornise o discuţie aprinsă despre rezultatele slabe obţinute de candidaţi la examenul de admitere din septembrie al aceluiaşi an, examen la care Ion Ionescu tocmai participase, ca supraveghetor, la proba scrisă”. Gazeta Matematică a stat la baza înființării, în anul 1909, a Societăţii Gazeta Matematică (SGM). Astăzi, Societatea de Stiinte Matematice din România (SSMR) este continuatoarea Societății Gazeta Matematică. (Sursa: http://www.gazetamatematica.net/?q=node/26 ).
  2. O etapă importantă în fondarea informaticii românești este ințiativa acad. Gr. C. Moisil, din anul univ. 1960/1961, de înființare a sectiei de „Mașini de calcul” (ultimii 2 ani din 5 ani cât dura programul de studii universitare, în acei ani), la Facultatea de Matematică și Fizică, din cadrul Universității din București. Ulterior, după câțiva ani, această secție s-a înființat și la universitățile din Iași și Cluj. Acestă secție a format primele generații de informaticieni din țara noastră. Astăzi, specializările de Informatică din universități au continuat obiectivele sectiei „Mașini de calcul”. (Sursa: http://www.c3.cniv.ro/?q=2018/gen-info ).
  3. Ca model avut în vedere - Gazeta Matematică, „din a cărei experienţă se voia să se extragă şi să se adapteze o metodică riguroasă de abordare a informaticii”, din initiațiva profesorului Adrian Atanasiu, de la Facultatea de Matematică - Catedra de Informatică, s-a înființat Gazeta de informatică. Finalizarea discuțiilor și aparitia primelor numere, în anul 1991, s-a realizat cu profesorul Horia Georgescu, coleg de catedră, director al Colegiului de Informatică din Facultatea de Matematică a Universităţii din Bucureşti, şi coordonator ştiinţific al olimpiadelor şcolare pentru informatică (Sursa: A. Atanasiu, Despre Gazeta de Informatică, în M. Vlada (ed.), „Istoria informaticii românești”, vol. I, ed. Niculescu, 2019, proiectul ROINFO, http://c3.cniv.ro/?q=2018/ro-info – în curs de apariție). Revista este un tezaur de istorie a dezvoltării învăţământului informatic preuniversitar românesc, cu realizările, succesele, dar şi cu piedicile sale.
Chiar dacă este o initiațivă regională, proiectul „Programare cu răbdare” (http://programarecurabdare.ro), lansat de Asociația EduSoft, poate fi un model de intiațiva în învățământul românesc. Asociația EduSoft (https://www.edusoft.ro ) coordonată de Lect. univ. dr. Bogdan Pătruț) promovează educația STEM (Știință, Tehnologie, Educație și Matematică) în rândul copiilor și tinerilor din această regiune.
Activitățile proiectului se desfașoară în colaborare cu Colegiul Național „Gheorghe Vrănceanu” din Bacău și cu diverse organizații care sprijină educația în domeniul IT. De menționat sunt următoarele aspecte:
  1. Cercul de informatică „Programare cu răbdare” este un proiect gratuit pentru toți copiii care participă și îi învață informatica, punându-i în contact și cu experți de la companii IT importante, cu studenți olimpici și profesori universitari de informatică.Activitatea se desfășoară la Colegiului Național „Gheorghe Vrănceanu” din Bacău respectând exigențele unor activități de învățământ
  2. Asociația EduSoft contribuie la dezvoltarea de strategii educaţionale pe termen mediu şi lung, pentru copii, tineri şi adulţi, care să creeze şi să asigure o dezvoltare armonioasă a acestora, în strânsă relaţie cu cerinţele de pe piaţa forţei de muncă, cu cercetarea şi producţia ştiinţifică de calitate, cu experienţa generaţiilor anterioare, şi pentru promovarea gândirii strategice în rândul copiilor, tinerilor şi a generaţiilor viitoare, ca garanţie a dezvoltării durabile.
La Cercul de Informatica „Programare cu rabdare” sunt înscriși peste 300 de elevi, din care vin în mod regulat 80-140 elevi, la fiecare întâlnire.  

Opinii de la participanți (Sursa: https://programarecurabdare.ro/index.php/marturisiri/)  

Diana-Elena Stancu, Clasa a X-a, Colegiul Național „Dimitrie Cantemir, Onești: "Când navigam pe Facebook am văzut acest eveniment și am căutat mai multe informații. Cel puțin în zonă, destul de rar au loc cursuri legate de informatică sau care promovează acest domeniu, de aceea am vrut să profit de ocazie. Inițiativa a fost una foarte buna, așa că am hotărât să merg în continuare. Nu m-am gândit niciodată la importanța colectivului dintr-un asemenea cerc până când nu am întâlnit elevii de la cursuri. Mi-am făcut prieteni care împărtășesc aceeași pasiune ca mine, iar acest lucru mă ajută enorm: de câte ori sunt în impas, la cursuri sau acasă, știu la cine să apelez. De asemenea, concurența asociată cu spiritul de camaraderie este bine venită. Lectorii sunt detașați de stilul cu care suntem noi învățați la școală, sunt deschiși la întrebări și la curiozitățile noastre, răspunzând cu drag la ele. Este foarte important ca într-un domeniu atât de vast precum informatica să se abordeze subiecte cât mai diversificate, cât mai diferite. Ne ajută în găsirea subdomeniului pe care vrem să ne axăm pe viitor, lectorii prezentându-le atât cu plusuri, cât și cu minusuri"

Bogdan-Andrei Vicu, Clasa a X-a, Colegiul Național de Informatică, Piatra Neamț: "Am decis să vin la „Programare cu Răbdare”, pentru că vreau să urmez o facultate în domeniul IT. Am văzut formularul pe o rețea de socializare și am zis „De ce să nu încerc, nu am nimic de pierdut!”. Este ceva nou pentru mine și nu îmi pare rău că vin în fiecare sâmbătă de la Piatra Neamț la Bacău. Personal, nu mă împiedică distanța ca să urmez niște cursuri care mă ajută să îmi deschid orizontul pentru mai multe ramuri ale IT-ului. Sincer, chiar de la prima întâlnire de la cerc am intrat în vorbă cu mai mulți elevi din Bacău. Îmi place că sunt deschiși la discuții din orice domeniu, aflu informații despre oraș, ce oportunități sunt aici. Totodată, le împărtășesc experiențele personale care m-au ajutat să ajung unde sunt în momentul acesta. Din punctul meu de vedere, lectorii sunt apropiați cu elevii. Acest lucru ne ajută să înțelegem mult mai bine ce se predă. Pe de alta parte, cel puțin eu fiind obișnuit cu profesorii din ciclul preuniversitar, nu am întâmpinat dificultăți în a înțelege lecțiile. Pot spune că mergând la acest cerc am ocazia să fiu elevul unui profesor universitar, acest lucru fiind o onoare pentru mine. Subiectele abordate sunt foarte variate de la o ședință la alta. Având acest avantaj, pot să îmi aleg ramura în care vreau să lucrez după ce voi termina facultatea."  

Despre Lect. Dr. Bogdan Pătruț
Web: https://profs.info.uaic.ro/~bogdan

Friday, February 22, 2019

Acad. Tiberiu Popoviciu de la Cluj

Tiberiu Popoviciu, unul din fondatorii informaticii din România

Dr. Emil Cătinaş, Institutul de Calcul „Tiberiu Popoviciu” Cluj-Napoca, Academia Română (Sursa: https://ictp.acad.ro/ro/)

Scurt istoric al Institutului de Calcul „Tiberiu Popoviciu” Cluj-Napoca. În anul 1951, Academia Romȃnă înfiinṭează Secṭia de Matematică a Filialei din Cluj-Napoca, formată din membrii ai Seminarului de Analiză Numerică, conduṣi de savantul Tiberiu Popoviciu; Secṭia a primit sediul din str. Republicii nr. 37. În anul 1957, Secṭia primeṣte numele de Institutul de Calcul căruia îi este permis să angajeze ingineri, fizicieni ṣi tehnicieni în vederea construirii de calculatoare electronice (aceasta fiind viziunea lui Tiberiu Popoviciu). Aici, în perioada 1957-1968, au fost construite de la zero trei calculatoare: MARICA (1959) – experimental; DACICC-1 (1963) – primul calculator romȃnesc cu tranzistori ṣi cu memorie RAM (din ferite); DACICC-200 (1969) – primul calculator romȃnesc cu sistem de operare ṣi cu compilator; acesta a rămas consemnat ca fiind cel mai performant calculator conceput ṣi construit de romȃni.
În anul 1975, dictatorul N. Ceauṣescu desfiinṭează abuziv institutele de matematică ale Academiei Romȃne (din Bucureṣti, Iaṣi ṣi Cluj-Napoca). Din 54 angajaṭi, ICTP rămȃne cu doar 6, încadraṭi în cadrul Universităṭii Babeṣ-Bolyai. Tiberiu Popoviciu moare după cȃteva luni. În 1990, Institutul revine la Academia Romȃnă ṣi începe o perioadă de dezvoltare. În 1995 Institutul primeṣte numele fondatorului său, Tiberiu Popoviciu. În 2003, în urma unui proces, Institutul a fost evacuat din clădirea în care a funcṭionat 52 de ani, de către Universitatea Babeṣ-Bolyai, de atunci desfăṣurȃndu-ṣi activitatea în două apartamente dintr-un bloc de locuinṭe de la periferia oraṣului. În anul 2004, Institutul a stabilit un important protocol de colaborare cu Forschungszentrum Jülich (Germania), prin care capătă acces la supercalculatoare, ṣi astfel la realizarea unor aplicaṭii numerice .

Contribuția acad. T. Popoviciu la fondarea informaticii românești


Matematicianul Tiberiu Popoviciu (1906-1975) - savant vizionar, a fost o personalitate cu realizări importante în fondarea informaticii din România în anii '50, atât în ce priveşte partea de hardware, cât și partea de software. De remarcat, Tiberiu Popoviciu este autorul primei monografii din România privind analiza numerică şi teoria aproximării, anul 1937. Enumerăm pe scurt următoarele etape/argumente, după care le vom dezvolta.
  • Etapa A. T. Popoviciu a înfiinţat, în anul 1951, Institutul de Calcul, în cadrul Academiei Române, scopul acestuia extinzându-se în anul 1957 de la cercetări matematice la construirea de calculatoare electronice. Viziunea lui Popoviciu era de a îngloba trei valenţe ale noţiunii de calcul. Un prim calculator (MARICA, 1959), cu relee electromagnetice, este realizat în doar doi ani, fiind unul experimental. În prezent, Institutul de Calcul poartă numele savantului vizionar care l-a fondat (pe parcursul acestei prezentări fiind abreviat prin ICTP - Institutul de Calcul Tiberiu Popoviciu).
  • Etapa B. În anul 1958, din inițiativa acad. T. Popoviciu, la Institutul de Calcul este organizată prima Conferință Națională de Cibernetică din România [O. Aramă, 1968, E. Popoviciu, 1999, E. Popoviciu, 2004].
  • Etapa C. În anul 1962 se înființează la Universitatea ”Babeș-Bolyai” din Cluj-Napoca secția de Mașini de Calcul pentru studenții din anii IV-V, secție la care începe predarea noţiunilor de informatică.
  • Etapa D. În anul 1963 la Institutul de Calcul se finalizează construirea calculatorului electronic DACCIC-1 - primul calculator din țară cu tranzistori și cu memorie internă (din ferite).
  • Etapa E. În anul 1968 se finalizează la Cluj construirea lui DACCIC-200, primul calculator românesc cu sistem de operare și compilator, cel mai puternic calculator conceput şi construit în România [Bălan, 1985].
    Calculatorul DACICC-200, instalat la ICEA Bucureşti, operat de inginerii Gh. Farkas (centru), M. Bocu (dreapta) şi P. Soreanu (stânga)
  • Etapa F. În anul 1971 se înființează primele licee de informatică din țară, la București, Cluj, Timișoara și Iași. Softiştii formaţi la ICTP, iar apoi la ITC, scriu unele din primele manuale de informatică pentru liceu, predând în primii ani la clasă.
Şcoala clujeană de analiză numerică şi teoria aproximării

Arborele descendenţilor doctori ai lui T. Popoviciu, Gh. Călugăreanu şi D.V. Ionescu - https://ictp.acad.ro/cluj-naat/

NOTĂ: Întegul articol va fi publicat în M. Vlada (ed.), "Istoria informaticii românești. Apariție, dezvoltare și impact", vol. I, Editura LITERA, 2019, proiectul ROINFO - http://c3.cniv.ro/?q=2018/ro-info , accesat feb. 2019

REFERINȚE 
1. O. Aramă, Informare asupra cercetărilor în domeniul teoriei, practicii şi tehnicii calculului, la Institutul de Calcul din Cluj, al Academiei RSR, 1968.
2. Şt. Bălan, N. Şt. Mihăilescu, Istoria ştiinţei şi tehnicii în România, date cronologice, Editura Academiei RSR, 1985.
3. M. Bocu, Calculatoarele DACICC-1 și DACICC-200 de la Cluj, primele calculatoare românești cu tranzistori și RAM, respectiv cu sistem de operare și compilator, în M. Vlada (ed.), "Istoria informaticii românești. Apariție, dezvoltare și impact", vol. I, Editura Niculescu, 2019, proiectul ROINFO - http://c3.cniv.ro/?q=2018/ro-info , accesat feb. 2019
4. C. Iacob, Academician Profesor Tiberiu Popoviciu (1906-1975), Gaz. Mat., 80 (1975) no. 12, 451-453.
5. L. Negrescu, Despre programarea si executarea programelor la calculatoarele DACICC-1 şi DACICC-200, în M. Vlada (ed.), "Istoria informaticii românești. Apariție, dezvoltare și impact", vol. I, Editura Niculescu, 2019, proiectul ROINFO - http://c3.cniv.ro/?q=2018/ro-info ,accesat feb. 2019.
6. I.Păvăloiu, Amintiri despre contribuţiile lui Tiberiu Popoviciu şi ale Institutului de Calcul la fondarea informaticii din România, în M. Vlada (ed.), "Istoria informaticii românești. Apariție, dezvoltare și impact", vol. I, Editura Niculescu, 2019, proiectul ROINFO - http://c3.cniv.ro/?q=2018/ro-info, accesat feb. 2019.
7. W. Schuster, Despre sistemul de operare şi software-ul dezvoltat la calculatorul DACICC-200, în M. Vlada (ed.), "Istoria informaticii românești. Apariție, dezvoltare și impact", vol. I, Editura Niculescu, 2019, proiectul ROINFO - http://c3.cniv.ro/?q=2018/ro-info , accesat feb. 2019.
8. Tiberiu Popoviciu (1966), în George Șt. Andonie, Istoria matematicii în România, vol. II, Ed. Științifică București, 1966, https://www.scribd.com/document/387489488/Tiberiu-Popoviciu-1966, accesat feb. 2019
9. M. Vlada, "Fenomenul" informaticii românești - secvențe cu explicații - http://c3.cniv.ro/?q=2018/restituiri , accesat feb. 2019

Sunday, February 17, 2019

Limbajul Python by Prof. dr. V. Iorga

Impresii despre limbajul de programare Python de Prof. univ. dr. Valeriu Iorga 

Timp de 40 de ani, la Facultatea de Automatică și Calculatoare – Universitatea Politehnica București (UPB) (foto: agerpres), am predat limbaje de programare (cursul “Programarea Calculatoarelor”) studenților din anul I, folosind ca limbaje de programare FORTRAN, Pascal și C/C++. Desigur că, în cursul acestor ani mi-am pus întrebarea: care ar fi cel mai potrivit limbaj pe care să-l învețe un începător? Mie mi-au plăcut limbajele Algol 60 și Pascal. Dar, iubirea cea mare am găsit-o în ultimul timp și se numește limbajul Python. Limbajul a fost conceput la începutul anilor ’90 de danezul Guido Van Rossum, care pe lângă informatician este și matematician.

Interesul pentru acest limbaj de programare mi-a fost trezit de laudele ce i-au fost adresate de un fost student. Am găsit pe Internet cărți potrivite (Rick Halterman – Fundamentals of Python Programming, Fabrizio Roman – Learning Python) și am pornit la treabă pentru a testa si a cunoaște cum se programează în acest limbaj.
Pentru a evita o lectură superficială, am instalat pe Laptop cea mai nouă versiune de Python și, după o primă lectură, am început să rezolv diferite probleme, pentru a face o comparație cu limbajul C++. Este o diferență enormă! În primul rând, m-a surprins simplitatea sintaxei. Ce deosebire față de barocul încărcat din C++ !

• Nu mai există nici un fel de declarație,
• recunoașterea tipului variabilelor fiind dedusă din contextul folosirii lor,
• au dispărut o serie de delimitatori: punct virgulă după instrucțiuni, în locul acoladelor, pentru a evidenția blocurile este suficientă indentarea, iteratorii au primit o semnificație mult mai largă – poți itera pe o listă sau pe un dicționar.

După ce am rezolvat câteva probleme cu întregi lungi am constatat că acestea nu mai aveau nici un sens, întrucât întregii pot fi oricât de mari (poți calcula instantaneu 2^100). A fost limitat sever efectul lateral de modificare a variabilelor globale în interiorul funcțiilor. Parametrii funcțiilor sunt exclusiv de intrare, iar o funcție poate calcula mai multe rezultate, pe care le întoarce printr-un tuplu. În corpul funcților pot apare funcții locale, structura programului nemaifiind liniară.

Tipurile de date s-au simplificat enorm. În afara tipurilor standard: întreg (de orice lungime), real (în precizie dublă) și șiruri de caractere există lista (eterogenă), mulțimea și dicționarul. Limbajul este multi paradigmă, putând fi folosit ca limbaj imperativ, orientat pe obiecte sau funcțional. În limbajul Python orice lucru (variabilă, funcție) este un obiect. La definirea unei clase constructorul este obligatoriu și are un nume unic. Se pot defini ierarhii de clase, folosind moștenirea simplă și multiplă. Proliferarea numelor a fost rezolvată prin spațiile de nume și domeniile lor, care sunt evidențiate în mod natural, fără declarații suplimentare. Căutarea unui nume se face spre exterior, pornind din domeniul local, trecînd apoi succesiv prin domeniile: înconjurător, global și predefinit.

Dezvoltarea unui program se face prin scripturi – fișiere de dimensiune mică, organizate în module și pachete. Pentru a fi folosit de programul client, un modul, sau numai unele funcții din el trebuie importate. Modulele sunt grupate în biblioteci.

Limbajul dispune de biblioteci impresionante (de exemplu biblioteca Django). Există un singur dezavantaj: limbajul, fiind un interpretor este mai lent decât un limbaj compilat, dar acest neajuns este estompat de interacțiunea mult mai strânsă cu utilizatorul, depanarea mult mai rapidă, portabilitatea ridicată.  Suportă sistemele de operare Linux, Windows și Mac, portarea unui program de pe un sistem pe altul fiind făcută cu ușurință.

Concluzie. Limbajul ajută efectiv la formarea unui stil de programare, încurajând eleganța și simplitatea. Se evaluează că un program scris în Python are 1/5 la 1/3 din dimensiunea programului corespondent în Java sau C++. Păcat că l-am descoperit așa de târziu!
Referințe.
1. Guido van Rossum, Wikipedia, https://en.wikipedia.org/wiki/Guido_van_Rossum
2. Python (programming language), https://en.wikipedia.org/wiki/Python_(programming_language)
3. The Python Software Foundation (US), https://docs.python.org/3/tutorial/


 
În imagine: Mugurel Andreica, student UPB (stg.), prof. univ. dr. Valeriu Iorga (ctr.), si Dan Ghinea (dr.), student UPB. Echipa studentilor de la Universitatea Politehnica din București (UPB) a câștigat medalia de bronz la Finalele Mondiale ale Concursului Internațional Universitar de Programare ACM, competiție organizată de IBM (foto Agerpres, https://foto.agerpres.ro/storage/watermark/128425.jpg)

Lista de cărți publicate de prof. dr. univ. Valeriu Iorga.