Programare orientată obiect |
trul |
|||||
Cadre didactice indrumatoare |
|
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%). |