Programare orientată obiect | Object oriented programming |
trul |
|||||
(Mathematics-Computer Science) |
|||||
(College of Computer Technology) |
|||||
(Mathematics Economics) |
Cadre didactice indrumatoare | Teaching Staff in Charge |
Lect. LAZĂR Ioan, ilazar@cs.ubbcluj.ro |
Obiective | Aims |
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 |
On completion of the class, a student should be able:
* to prepare an object-oriented design of small/medium scale problems * to demonstrate the differences between traditional imperative design and object-oriented design * to explain class structures as fundamental, modular building blocks * to understand the role of inheritance, polymorphism, dynamic binding and generic structures in building reusable code * to explain and to use defensive programming strategies, employing formal assertions and exception handling * to write small/medium scale C++ programs * to use classes written by other programmers when constructing their systems * to understand and to use fundamental data structures: collections, sets, dictionaries, lists, stacks, queues, trees, graphs. |
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++ |
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 | Assessment |
Nota finala este media ponderata (60%) dintre nota obtinuta la examenul scris (sfarsit de semestru) si nota obtinuta pe activitatea din cadrul laboratoarelor (40%). |
A written 2-hour examination contributes 60% of the assessment for this course. The other 40% is based on continuous assessment of exercises carried out during practical classes - laboratories. |