Saturday, February 28, 2009

De ce IP?

De ce IP?

Ingineria Programării pentru că altfel terminăm facultate şi nu suntem altceva decât "dactilografi" de cod.

[ Anul acesta ţin 2 laboratoare de IP, şi m-am gândit că ar fi o idee bună să dau şi o motivaţie studenţiilor care şi-au ales această materie. Mi se pare important ca un student să ştie de ce urmează o materie, de ce ar trebui să investească timp în aceea materie. Drept urmare: ]

Din păcate, multe materii, nu neapărat prin natura lor, ci prin modul în care se face notarea temelor, dar mai ales prin modul în care abordăm noi, studenţii, temele, ne obişnuiesc să scriem cod direct, cât mai rapid, cât mai pe ultima sută de metrii, fără documentaţie, fără un plan bine pus la punct.

Problema apare în momentul în care treci la un nivel de proiecte mai complexe.
În momentul în care te angajezi, sau chiar în momentul în care lucrez la lucrare de diplomă. Pentru că atunci când proiectul nu mai este o temă cu o cerinţă bine formulată, cu teste publice, cu o complexitate redusă, ce se poate rezolva cu 2 zile de coding intens şi 8L de cola, sistemul "asta-i cerinţa, hai să-i dăm bătaie la scris cod" nu mai funcţionează.
De ce? pentru că e mai bine să proiectezi o dată şi să scrii de 2 ori ( rar o să fie totul ok chiar din prima, indiferent cât de bine planifici ), decât să te apuci direct şi să scrii de 6 ori.

Astfel, unul din scopurile fundamentale ale acestei materii este să obişnuiască studentul să se apuce de cod doar după care are un plan bine formulat, o structură bine definită a datelor, a modulelor, a cazurilor de utilizare.

Bineînţeles, important este ca studentul să nu reinventeze roata, ci să aplice unul din modelele consacrate. Model consacrat însemând un model care a fost testat şi folosit cu succes de multe ori.

Ingineria Programării pentru ca rar scriem cod pentru noi, în general dezvoltăm programe pentru un client. Drept urmare, trebuie să învăţăm să interacţionăm şi cu un clinet ne tehnic. Este uşor să scrii o temă specificată de un asistent care are un background ingineresc comun.
Pe de altă parte, în general clienţii noştrii nu or să fie ingineri. Or să fie oameni care or să zică "vreau X, Y, Z, iar X să fie aşa, Y am auzit de la un prieten că este foarte tare, iar la Z vreau ceva dar nu prea ştiu ce vreau". Pentru a ajunge de la aşa ceva la un produs finit, este în mod evident nevoie de a realiza o analiză a cerinţelor clientului, o analiză a nevoilor sale, a cazurilor de utilizare., analiză ce trebuie adusă într-un format ce trebuie să permită clientului să verifice dacă este ceea ce vrea, şi armatei de programatori din spatele unui proiect să implementeze ce vrea clientul.

Şi nu în ultimul rând, pentru că spre deosebire de temele din facultate, softul produs la un job este folosit de către un client nu neapărat tehnic. Pentru asta trebuie să ne obişnuim să documentăm ce scriem, să realizăm un user quide, şi totul într-un format cât mai user friendly şi cât mai standarizat.

Pentru mai multe detalii, vă aştept la orele de laborator:)

Saturday, February 21, 2009

Electronica aplicata sau cum sa trecem de la teorie la practica

Una din marile probleme ale sistemului nostru de învăţământ este legată de ideologia de bază, şi anume: multă teorie, puţină practică.

Din fericire, la Facultatea de Automatică şi Calculatoare, multe cursuri s-au abătut de la această ideologie în ultimii ani. Mai avem din păcate cursuri depăştie, mai ales în primul an, dar avem multe cursuri la zi, multe cursuri la care laboratoarele sunt aplicate, sunt în pas cu tehnologia, iar temele chiar abordează probleme practice.

În semestrul I, cu sprijinul domnului profesor Nicolae Cupcea, am demarat un experiment, un laborator de electronică aplicată pilot.

Laboratorul are multiple scopuri:
- întelegerea mai bună a electronicii
- atragerea studenţiilor spre electronică şi spre hardware
- obişnuirea stundeţiilor cu abordarea problemelor practice, găsirea de soluţii şi implementarea lor

Practic, în cadrul laboratorului studenţii implementează circuite, având astfel ocaziă să vadă şi să folosească componentele studiate la curs şi să realizeze un circuit cu rezultat palbabil.

În primul semestru, lucrările realizate au fost:
- un senzor de lumină ( care demonstrează folosirea unui tranzistor pe post de comutator)
- un alimentator la 5V pe USB de la o baterie de 9V ( ce poate fi folosit ca încărcător pentru un Ipod de exemplu; circuitul a introdus conceptele de stabilizator de tensiune, condensator de filtrare, condensator de decuplare, ş.a. ).
- un timer analogic reglabil ( ce are la bază un circuit de tip RC )
- un termometru analogic ( ce demonstrează aplicaţii practice pentru AO-uri folosite drept comparatoare ).

Laboratorul a fost realizat de mine, cu ajutorul, în primul rând, al lui Fănel Ghiţă ( tehnician la noi în facultate), cât şi din partea lui Dan Tudose şi Răzvan Tătăroiu, cărora ţin pe această cale să le mulţumesc pentru ajutorul acordat.

Un alt aspect important este faptul că laboratorul pune la dispoziţia studenţiilor toate materialele necesare, atât ca aparatură, dar şi consumabile. Toate piesele sunt puse la dispoziţia studenţiilor gratuit, iar la sfârşit studenţii pleacă acasă cu montajele realizate. Aparatura şi resursele sunt puse la dispoziţie de facultate, şi completate din sponsorizări. O astfel de sponsorizare am obţinut-o cu ajutoru lui Alex Marinescu din partea Fundaţiei Dinu Patriciu.


Consider că este foarte important ca studenţii să poată păstra montajele, întrucât există un anumit sentiment pe care îl ai în momentul în care ai realizat ceva funcţional, şi care este amplificat de plăcerea de a te juca cu montajul şi acasă.

În semestrul 2 va avea loc laboratorul EAP2, care va urma cursul de Electronică Digitală.

Pentru înscrieri: http://spreadsheets.google.com/viewform?hl=en&formkey=cE02VGFUX2Z2bkVBZGdZVEphVE5uTHc6MA

Siteul laboratorului este: http://eap.cs.pub.ro.
Poze de la laborator: http://eap.cs.pub.ro/poze