Universitatea "Babes-Bolyai" Cluj-Napoca
Facultatea de Matematica si Informatica
FISA DISCIPLINEI

Programare orientată obiect
Cod
Semes-
trul
Ore: C+S+L
Credite
Tipul
Specializarea
MID0002
2
2+0+2
6
obligatorie
Matematică
MID0002
2
2+2+2
7
obligatorie
Informatică
MID0002
2
2+0+2
6
obligatorie
Matematică informatică
MID0002
2
2+0+2
6
obligatorie
Matematici aplicate
Cadre didactice indrumatoare
Lect. Dr. NICULESCU Virginia,  vniculescucs.ubbcluj.ro
Lect. Dr. PREJMEREAN Vasile,  percs.ubbcluj.ro
Lect. Dr. DARVAY Zsolt,  darvaycs.ubbcluj.ro
Asist. TARTA Adriana Mihaela,  adrianacs.ubbcluj.ro
Asist. MOLDOVAN Grigoreta Sofia,  grigocs.ubbcluj.ro
Asist. MIHAILA Cristina Aneta,  anetacs.ubbcluj.ro
Asist. MIHIS Andreea Diana,  mihiscs.ubbcluj.ro
Obiective
Dupa insusirea materialului prezentat la aceasta disciplina studentii ar trebui:
* sa poata rezolva probleme de dimensiuni mici si medii intr-o maniera orientata pe obiecte
* sa poata evidentia diferenta intre proiectarea functionala traditionala si proiectarea orientata pe obiecte
* sa inteleaga rolul mostenirii, polimorfismului, legarii dinamice si a structurilor generice in dezvoltarea unor programe reutilizabile
* sa explice si sa foloseasca diferite strategii de programare referitor la tratarea exceptiilor si asertiuni formale
* sa poate scrie programe C++ de dimensiuni mici/medii
* in timpul rezolvarii unei probleme sa foloseasca clase scrise de alti programatori
* sa inteleaga si sa foloseasca structurile de date fundamentale: colectii, multimi, tabele, liste, stive, cozi, arbori, grafe
Continut
In prima parte a cursului sunt introduse gradat conceptele programarii orientate pe obiecte. Pentru exemplificari este folosit limbajul C++. Sunt supuse dezbaterilor diferite structuri de date ce au fost prezentate in cursul de introducere in informatica. In partea a doua sunt prezentate subiecte mai avansate de programare C++: ierarhii de clase standard, programarea dirijata de evenimente, componente C++ pentru interfata cu utilizatorul, tratarea exceptiilor.
1. Limbajul C++
* Tipuri de date de baza si structuri de control
* Clase C++
* Aplicatii C++
2. Tipuri abstracte de data (TAD) si clase C++
* TAD tablou, colectie, multime, tabel
* Clase C++ ce implementeaza TAD colectie, multime, tabel
3. Subtipizare si mostenire
* TAD container, stiva, coada si coada cu prioritati
* Clase C++ ce implementeaza TAD container, stiva si coada
4. Definirea unei ierarhii de clase C++
* TAD lista simplu inlantuita, si iterator pe o structura de date de tip lista
* Reprezentarea si implementarea listelor inlantuite in C++
* Diferite implementari pentru TAD colectie, tabel, coada, coada cu prioritati
5. Clase abstracte (interfete) si mostenire multipla
* TAD lista liniara, lista ordonata, iteratori pe liste
* Clase abstracte in cadrul unei ierarhii de clase pentru liste
* Mostenire multipla si iteratori pe liste
6. Polimorfism si legare dinamica
* Liste generalizate
7. Clase si functii parametrice
* Arbori binari
* Arbori binari de cautare
* Grafe
8. Tratarea exceptiilor
9. Componente pentru interfata cu utilizatorul in Visual C++
10. Programare dirijata de evenimente in Visual C++
Bibliografie
1. A.V. Aho, J.E. Hopcroft, J.D. Ullman, Data Structures and Algorithms, Addisson-Wessley Publ., Massachusetts, 1983.
2. M. Frentiu, B. Parv, Elaborarea programelor. Metode si tehnici moderne, Ed. Promedia, Cluj-Napoca, 1994.
3. E. Horowitz, S. Sahni, D. Mehta, Fundamentals of Data Structures in C++, Computer Science Press, Oxford, 1995.
4. K.A. Lambert, D.W. Nance, T.L. Naps, Introduction to Computer Science with C++, West Publishing Co., New-York, 1996.
5. L. Negrescu, Limbajul C++, Ed. Albastra,Cluj-Napoca 1996.
6. B. Parv, A. Vancea, Fundamentele limbajelor de programare, Microinformatica, Cluj-Napoca, 1996.
7. R. Andonie, I. Garbacea, Algoritmi fundamentali. O perspectiva C++, Editura Libris, Cluj_Napoca, 1995.
8. B. Stroustup, The C++ Programming Language, Addison Wesley, 1998.
9. L. Tambulea, Structuri de date si banci de date, (Lito.) Univ. "Babes-Bolyai" Cluj-Napoca, Facultatea de Matematica si Informatica, Cluj-Napoca, 1992.
10. T. Toadere, Elemente de teoria grafelor, (Lito.) Univ. "Babes-Bolyai" Cluj-Napoca, Facultatea de Matematica si Informatica, Cluj-Napoca, 1992.
Evaluare
Nota finala este media ponderata (60%) dintre nota obtinuta la examenul scris (sfarsit de semestru) si nota obtinuta pe activitatea din cadrul laboratoarelor (40%).