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

Metode avansate de programare
Cod
Semes-
trul
Ore: C+S+L
Credite
Tipul
Specializarea
MID0004
3
2+1+2
6
obligatorie
Informatică
MID0004
3
2+0+2
5
obligatorie
Matematică informatică
Cadre didactice indrumatoare
Lect. Dr. LAZAR Ioan,  ilazarcs.ubbcluj.ro
Lect. Dr. NICULESCU Virginia,  vniculescucs.ubbcluj.ro
Lect. Dr. DARVAY Zsolt,  darvaycs.ubbcluj.ro
Asist. MOLDOVAN Grigoreta Sofia,  grigocs.ubbcluj.ro
Asist. CRETU Maria Camelia,  cretucs.ubbcluj.ro
Asist. MIHAILA Cristina Aneta,  anetacs.ubbcluj.ro
Obiective
Insusirea metodelor de abstractizare a datelor si ale programarii orientate obiect.
Continut
1. Limbajul Java
Elemente de baza ale limbajului Java. Prezentare comparativa Java - C++
Construirea unei biblioteci software: clase, interfete si pachete
Contracte (specificarea functiilor) si tratarea exceptiilor
(sablonul 'controller'/fatada)

2. Proiectarea unui cadru pentru aplicatii cu interfete grafice
Elemente de baza ale limbajelor de modelare
Limbajul UML
Diagrame de clase
Diagrame de interactiuni intre obiecte
Realizarea ferestrelor si compunerea componentelor grafice
Containere si elemente componente: fereastra, meniu, eticheta, cutie de text si buton
Compunerea elementelor unui container (sablonul comunere)
Desenarea unei componente (sabloanele adaptare si decorator)
Abstractizarea comenzilor
Sablonul comanda
Sablonul callback
Realizarea meniurilor
Tratarea evenimentelor
Sablonul observator
Decuplarea emitatorului unui eveniment de receptorii evenimentului
Folosirea bibliotecii JFC/Swing (Java Foundation Classes)
Ferestre si meniuri
Componente grafice de baza: eticheta, cutie de text, buton
Liste
Principii de baza pentru alocarea responsabilitatilor/functiilor
Sabloanele expert si creator
Cuplare slaba si coeziune inalta
Relatia dintre nivelele logic si prezentare al unei aplicatii

3. Structurarea nivelului logic al aplicatiilor
Biblioteci de clase pentru structuri de date
Sabloanele fabrica abstracta, 'metoda sablon' si iteratie
Pachetul java.util
Biblioteci de clase pentru intrari/iesiri
Elemente de baza: pachetul java.io
Obiecte serializabile
Construirea unui cadru pentru obiecte persistente
Intermediari (brokers, data access objects) pentru obiectele persistente
Sablonul inlocuitor (proxy)
Optimizarea procesului de incarcare a obiectelor
Importanta decuplarii nivelelor prezentare, logic si date ale unei aplicatii
Sablonul model-vedere-control (Model-View-Controller)
Bibliografie
1. ECKEL, BRUCE: Thinking in Java (3rd ed.). New York: Prentice Hall, 2002.
[www.mindview.net/Books/TIJ/]
2. ECKEL, BRUCE: Thinking in Patterns with Java, 2004. MindView, Inc. [http://www.mindview.net/Books/TIPatterns/]
3. Java tutorial, 2004. SUN Microsystems, Inc. [http://java.sun.com/tutorial/]
4. GAMMA, E. - HELM, R. - JOHNSON R. - and VLISSIDES, J.: Design Patterns - Elements of Reusable Object-Oriented Software. Massachusets: Addison-Wesley, 1994.
5. LARMAN, C.: Applying UML and Design Patterns: An Introduction to OO Analysis and Design, Berlin: Prentice Hall, 2000.
6. PRIETSLEY, M.: Practical Object Oriented Design. Cambridge: McGraw-Hill, 1996.
7. Online Java Tutorial, 2001. Develop Mentor, Inc. [http://www.develop.com/]
Evaluare
Forma de examinare finala este un examen, ce va avea o parte teoretica si o parte aplicativa.
Nota finala va fi formata din:
A. Activitatea de laborator: 4p
B. Lucrare scrisa: 3p
C. Proba practica: 3p