MID0002 | Programare orientată obiect |
Titularii de disciplina |
Lect. GURAN Adriana Mihaela, adrianacs.ubbcluj.ro Lect. Dr. DARVAY Zsolt, darvaycs.ubbcluj.ro Lect. Dr. TRÎMBITAS Gabriela, gabitrcs.ubbcluj.ro Lect. COJOCAR Grigoreta Sofia, grigocs.ubbcluj.ro Lect. Dr. CIOBAN Vasile, vciobancs.ubbcluj.ro Conf. Dr. NICULESCU Virginia, vniculescucs.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 |
Continutul |
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. Elemente de baza ale limbajului C++. - Elemente lexicale. Operatori. Conversii. - Tipuri de date. Variabile. Constante. - Domeniu de vizibilitate si durata de viata a variabilelor. - Spatii de nume. 2. Instructiuni si functii C++. - Instructiuni C++. - Declararea si definitia functiilor in C++. - Supraincarcarea functiilor. - Functii inline. 3. Tipuri de date derivate si utilizator si alocare dinamica in C++. - Tipurile tablou si structura. - Tipurile pointer si referinta. - Alocarea si dealocarea memoriei. - Pointeri la functii si pointeri void. 4. Programare modulara in C++. - Fisiere header. Biblioteci. - Implementari modulare de tipuri abstracte de date. - Folosirea tipului pointer void pentru obtinerea genericitatii. 5. Metoda programarii orientate-obiect in C++. - Clase si obiecte. - Membrii unei clase. Specificatori de acces. - Constructori / destructori - Diagrame UML pentru clase (membrii, acces). - Relatia de asociere/agregare intre clase - reprezentare UML 6. Supraincarcarea operatorilor. Membrii statici. Friends. 7. Relatia de mostenire - Mostenire simpla. Clase derivate. - Principiul substitutiei. - Suprascrierea metodelor. - Mostenire multipla. - Relatia de specializare/generalizare intre clase - reprezentare UML. 8. Polimorfism. - Metode virtuale. - Legare dinamica. - Mostenire virtuala. - Reutilizare cod (mostenire/compozitie). - Conversii (upcast/downcast). 9. Proiectare orientata-obiect si proiectare bazata pe interfete. - Clase abstracte, interfete. - Reprezentare UML pentru interfete. - Proiectarea orientata-obiect a unei biblioteci de structuri de date. 10. Operatii de intrare/iesire. - Fluxuri de intrare/ iesire. Ierarhii de clase pentru I/O. - Formatare. Manipulatori. - Lucrul cu fisiere. 11. Sabloane (Template). - Functii template. Clase template. - Reutilizarea codului sursa. 12. Biblioteca STL - Clase container si iterator. - Folosirea algoritmilor din STL. 13. Tratarea exceptiilor. - Notiunea de exceptie in programare - Tratarea exceptiilor in C++. 14. Mediul Visual C++ . - Componente pentru interfata cu utilizatorul. - Programare dirijata de evenimente . |
Bibliografie |
1. A.V. Aho, J.E. Hopcroft, J.D. Ullman, Data Structures and Algorithms, Addisson-Wessley Publ., Massachusetts, 1983.
2. R. Andonie, I. Garbacea, Algoritmi fundamentali. O perspectiva C++, Editura Libris, 3. Alexandrescu, Programarea modernă in C++. Programare generică si modele de proiectare aplicate, Editura Teora, 2002 4. M. Frentiu, B. Parv, Elaborarea programelor. Metode si tehnici moderne, Ed. Promedia, Cluj-Napoca, 1994. 5. E. Horowitz, S. Sahni, D. Mehta, Fundamentals of Data Structures in C++, Computer Science Press, Oxford, 1995. 6. K.A. Lambert, D.W. Nance, T.L. Naps, Introduction to Computer Science with C++, West Publishing Co., New-York, 1996. 7. L. Negrescu, Limbajul C++, Ed. Albastra,Cluj-Napoca 1996. Cluj_Napoca, 1995. 8. Dan Roman, Ingineria programarii obiectuale, Editura Albastra, Cluj_Napoca, 1996. 9. B. Stroustup, The C++ Programming Language, Addison Wesley, 1998. |
Evaluare |
Nota finala se calculeaza ca o medie ponderata astfel:
A. Activitatea de laborator N1: 20% B. Activitate seminar N2:10% C. Lucrare scrisa N3: 50% D. Proba practica N4: 20% Lucrarea scrisa este sustinuta in timpul sesiunii ca si examen final. Proba practica va fi sustinuta in ultima saptamana a semestrului. Lucrarea scrisa consta din intrebari teoretice si exercitii, iar proba practica din rezolvarea unei probleme pe calculator |
Legaturi: | Syllabus-urile tuturor disciplinelor Versiunea in limba engleza a acestei discipline Versiunea in format rtf a acestei discipline |