Tehnologii de Elaborare a Proiectelor (TEP)

Partea I: Programare educata

Cursul 1: Introducere

Ce se face la TEP? La TEP sunt prezentate tehnologiile necesare pentru a crea un proiect intr-un limbaj orientat-obiect (C++, Java, C#, Python). Scopul este crearea unui proiect cu o arhitectura clara, implementat folosind un stil de programare elegant si care foloseste unitati de testare automata.
Ce nu se face la TEP? La TEP nu se preda un limbaj de programare (C++, Java), o biblioteca de dezvoltare (MFC, wxWindows, Swing) sau un IDE (Visual Studio, NetBeans). Invatarea acestor lucruri cade in sarcina studentului, functie de tipul de proiect pe care si l-a ales. La curs si la laborator vor fi oferite resurse pentru a indruma invatarea. Scop: "invat sa invat" (o constanta a meseriei de programator).
Ce sa fac pentru a nu promova? Nu discut proiectul cu conducatorul de lucrari astfel incat atunci cand se fac prezentarile finale acesta nu stie cine sunt si cu ce ma ocup.
Ce sa fac pentru a lua o nota (foarte) mica? Imi proiectez programul ca si cum nu as fi aflat nimic de la curs, scriu codul la intamplare si nu fac unitati de testare automata. Daca excelez, se poate chiar ca nota foarte mica sa nu fie de trecere!
Alegerea platformei de dezvoltare Windows, Linux (distributions), FreeBSD, Apple Costuri si beneficii (termen scurt, mediu, lung). Portabilitate.
Alegerea licentei de distributie a programului Closed-source, open-source (GNU (L)GPL, Apache licence, BSD licence). Strategii de "marketing".

Cursul 2: Stil de programare, modularitate

Stil de programare Cod auto-documentat, doxygen, javadoc.
Organizarea proiectului Modularitate, crearea de biblioteci, folosirea make/ant.

Cursul 3: Testare

Scrie cod de test inainte de a scrie cod Prezentare concepte unitati testare automata, exemplificare cppunit.
Testare structurala si testare functionala Ideei generale.

Cursul 4: Persitenta

XML XML: ce este, la ce e bun, Xerces C++
Baze de date Sisteme de gestiune a bazelor de date (MS SQL, Oracle, PostgreSQL, mySQL, FOX). Avantaje/dezavantaje. Accesarea datelor dintr-un limbaj OO (ODBC, JDBC).
Ce e mai bun pentru mine? Cand folosesc: XML, baze de date, format proprietar.

Partea II: Primii pasi spre expert

Cursul 5: Initiere in gestionarea proiectelor

Modele de dezvoltare Etapele realizarii programelor, modelul in cascada, extreme programming.
Analiza cerintelor Exprimarea cerintelor prin scenarii.

Cursul 6: Initiere in proiectare

Proiectare UML, diagrama de clase
Modele de proiectare Iterator, Observer, MVC

Cursul 7: Lucrul in echipa

Folosirea instrumentelor de control al versiunilor CVS, subversion, SourceSafe. Exemplu subversion.