Universitatea Babeş-Bolyai Cluj-Napoca
Facultatea de Matematică şi Informatică
Ciclul de studii: Licenţă
Domeniul: Calculatoare şi tehnologia informaţiei
Programul de studii: Ingineria informatiei - in limba romana
Limba de predare: Română

SYLLABUS

I. Date generale
Codul	Disciplina	
MID0021	Generarea automată a programelor din algoritmi	

Semestrul	Ore: C+S+L+P	Categoria	Statutul	
6	2+0+1+1	specialitate	opţională	

II. Cadre didactice cu norma de bază în Universitate
Numele şi	Titlul	Gradul	Catedra	Tipul activităţii	
prenumele	ştiinţific	didactic		C	S	L	
CIOBAN Vasile	Dr. 	Lect.	Limbaje şi Metode de Programare	*			

Cadre didactice asociate
Numele şi	Titlul	Instituţia	Tipul	Tipul activităţii	
prenumele	ştiinţific		postului	C	S	L	

III. Obiectivele disciplinei
Produsele CASE asigura o gama variata de activitati, printre care:
- scrierea automata a programelor pe baza specificatiilor prin Generatoare de cod;
- redocumentarea, restructurarea, redezvoltarea sistemelor deja implementate prin Programe de întretinere si dezvoltare.
Aceasta acopera toate fazele din dezvoltarea programelor (analiza, proiectare, implementare, testare si distributie).
Clasic, un limbaj de programare este definit ca un limbaj artificial creat de om care serveste la 
exprimarea, sub forma de instructiuni executabile de catre calculator, a algoritmului de rezolvare a unei 
probleme.
Automatizarea translatării unui algoritm dintr-o formă de reprezentare de tip pseudocod într-un limbaj
de programare. 
Învatarea unor scheme de prefixate de translatare automată.
Translatarea cu ajutorul operatorului uman.
Pe baza standardelor existente, de exemplu compania ORACLE si-a definit propria metodologie CASE.

IV. Conţinutul disciplinei
1.Limbaje de programare
- definiţie, clasificare, mod de specificare
2. Translatare şi translatoare
      - definiţie, rol, clasificare (interpretoare, compilatoare, link-editoare, etc)
3. Automate finite şi automate push-down.
      - definţie, clasificare, utilizare în procesul de translatare;
4. Instrumente CASE
      - ciclul de viaţă al unui PP, etape care pot fi parţial automatizate;
      - definiţie, realizare şi utilizare; 
5. Generator de cod
     - instrument CASE specific, în faza de codificare;
6. Algoritmi şi modalităţi de reprezentare
     - gramatici şi automate speciale de reprezentare a structurilor de control şi algoritmilor
7. Automatizarea translatarii algorimilor în cod de programare
8. Produse sofware care automatizează parţial translatarea. 	

V. Bibliografie
1.Luca Dan Serbanati –Limbaje de programare si compilatoare, Ed. Academiei, 1987
2. Bazil Parv, Alexandru Vancea –Fundamentele limbajelor de programare, Ed. Albastra, 1996
3. Ioan Salomie, Tehnici de programare obiectuală, ed. Albastră, 1996 
4. Bjarne Stroustrup, The C++ Programming Language, 3rd ed. Addison-Wesley, 1997 
5. Bruce Eckel, Thinking in C++, Prentice Hall 2000
6. Stephen R. Schach, Software Engineering, ediţiile 5, 6, 7, Ed Prentice Hall, 2002, 2005, 2007	

VI. Tematica activităţilor didactice pe săptămâni
1.Limbaje de programare (1 curs, Săpt. 1 – Lab. 1, săpt.1)
2. Translatare şi translatoare(1 curs, Săpt. 2 – Lab. 2, săpt.3, tema 1)
3. Automate finite şi automate push-down. (1 curs, Săpt. 3 – Lab. 3, săpt.5)
4. Instrumente CASE (2 cursuri, Săpt. 4,5 – Lab. 3, săpt.5, tema 2)
5. Generator de cod (1 curs, Săpt. 6 – Lab. 4, săpt.7)
6. Algoritmi şi modalităţi de reprezentare (2 cursuri, Săpt. 7,8 – Lab. 4, săpt.7, Proiect)
7. Automatizarea translatarii algorimilor în cod de programare (2 cursuri, Săpt. 9,10 – Lab. 5, săpt.9)
8. Produse sofware care automatizează parţial translatarea. (2 cursuri, Săpt. 11,12 – Lab. 6, săpt.11)	

VII. Metode didactice folosite
Conversaţia: conversaţia euristică, dezbaterea, dialogul, conversaţii introductive, conversaţii de fixare şi consolidare a cunoştinţelor, conversaţii de sistematizare şi sinteză, conversaţii de aplicare 
Modelarea: utilizarea modelelor materiale, modelelor iconice, modelelor ideale, modelelor cibernetice. 
Algoritmizarea: utilizarea diferiţilor algoritmi de învăţare: algoritmi de percepere, înţelegere, generalizare şi sistematizare a cunoştinţelor; algoritmi de recunoaştere; algoritmi de rezolvare; algoritmi de creaţie. 
Problematizarea: utilizarea întrebărilor-problemă, problemelor şi situaţiilor-problemă. 
Alte metode: studiul de caz,  simularea, studiul individual, exerciţiul.	

VIII. Evaluare
Nota finala este calculata astfel: 
A. Activitatea de laborator: 40% 
B. Evaluare proiect: 60%
    Evaluarea proiectului se face în timpul sesiunii ca şi examen final.	

IX. Bibliografie suplimentară
Resurse internet	

	Decan,							Sef de catedra,
Prof.dr. ŢÂMBULEA  LEON			Prof.dr. PÂRV  BAZIL

	Data,							Titular curs,
	15.09.2009						Lect. Dr.  CIOBAN Vasile