Miniproiect
Despre Miniproiect
1. Despre Miniproiect
Miniproiectul trebuie sa reflecte capacitatea de a utiliza practic limbajul Java prin realizarea unui program de-sine-statator sau a unui applet. Timpul alocat pentru realizare trebuie sa fie de maximum 40 ore (inclusiv lucrul în laborator).
2. Pasii de urmat pentru realizare
Pasii sugerati în realizare sunt urmatorii:
1. Realizarea unui document de cca. 1 pagina care sa descrie elementele esenţiale ale problemei (document MS-Word).
2. Descoperiţi clasele necesare rezolvarii folosind cartele CRC (Clase Responsabilitaţi
Colaboratori)
3. Realizaţi o diagrama preliminara de clase (d.e. folosind StarUML sau argoUML). Exportaţi diagrama de clase ca şi imagine şi inseraţi-o direct în document.
4. Determinaţi algoritmii fiecărei metode din fiecare clasă. Descrieţi succint algoritmii sau logica aplicaţiei.
5. Implementaţi, depanaţi si testaţi soluţia aleasa.
6. Finalizaţi documentaţia si creaţi un fisier .jar cu cele ce trebuie livrate
7. Împachetaţi documentaţia .doc împreună cu codul sursă si compilat într-un fisier .jar distribuibil.
8. Încercaţi să executaţi aplicaţia pe o altă masină pentru a verifica dacă poate fi distribuit.
Documentul şablon pentru scrierea documentaţiei miniproiectului (paşii 1-4 de mai sus).
3. Ce trebuie livrat la susţinerea proiectului.
La susţinerea proiectului trebuie livrat un fisier .jar numit după regula:
<număr_grupa>_<nume_student>_<prenume_student>.jar
unde:
– < număr_grupa> reprezintă numărul grupei. D.e. 3219
– <nume_student> reprezintă numele de familie Dvs. D.e. Ionescu
– <prenume_student> reprezintă prenumele Dvs. D.e. Alexandru
Astfel, studentul Ionescu Alexandru din grupa 3219 va livra rezultatul proiectului in fisierul numit 3219_Ionescu_Alexandru.jar Conţinutul fisierului arhivă .jar:
– pachetul care conţine programul, inclusiv sursele si documentarea generată de javadoc.
– un document creat cu Microsoft Word si salvat în format .rtf/ .doc / .docx etc. care să conţină specificarea temei (ceea ce aţi scris la primul pas de realizare) si diagrama de clase (si diagrame de obiecte, dacă e cazul) pentru program
4. Termen de predare
Penultima sau ultima săptămână din semestru.
5. Criterii de evaluare
La evaluare vom urmări următoarele criterii:
– Calitatea si claritatea concepţiei
– Fidelitatea implementării
– Corectitudinea implementării
– Robusteţea implementării
– Complexitatea temei
– Originalitatea ideii
– Calitatea documentaţiei
– Respectarea stilului de programare recomandat
Sugestii teme miniproiect
1. Simularea operaţiilor pe arbori 2-3 (mai multe detalii aici)
2. Simularea operaţiilor pe arbori AVL - poate fi proiect lucrat
în pereche
(mai multe detalii aici)
3. Simularea unui lanţ de semafoare coordonate într-un oraş
(mai multe detalii aici)
4. Simularea traficului pe un mic aeroport (vedere aeriană) - poate
fi proiect lucrat în pereche (mai multe detalii aici)
5. Manevre într-un triaj de cale ferată (vedere aeriană) (mai multe detalii aici)
6. Simularea funcţionării unor circuite numerice (SSI, MSI) - poate
fi proiect lucrat în pereche
(mai multe detalii aici)
7. Simularea unei competiţii auto pe circuit (vedere aeriană,
posibilitate de mărire [zoom]) - poate fi proiect lucrat în
pereche
8. Aplicaţie pentru scalarea imaginilor si adnotarea cu text peste
imagine (mai multe detalii
aici)
9. Simularea căutarilor în grafuri - partea 1 - căutarea
în adâncime (mai
multe detalii aici)
10. Simularea căutarilor în grafuri - partea 2 - căutarea
în lăţime (mai multe
detalii aici)
11. Jocul Hammurabi cu dezvoltare şi interfaţă grafică.
12. Deplasarea unui robot într-un labirint - reprezentare 2D cu
interfaţă grafică. Imaginea despre lume a robotului trebuie să fi
partea cunoscută a labirintului (mai multe detalii aici).
13. Joc Tic-Tac-Toe cu 2 sau mai mulţi jucători (inclusiv un jucător
automat) şi interfaţă grafică.
14. Simularea operaţiilor pe liste dublu înlănţuite cu
santinelă (mai multe detalii
aici)
15. Simularea unui puzzle - proiect lucrat în pereche (mai multe detalii aici)
16, Simularea operaţiilor pe heap (mai multe detalii aici).
17. Simularea funcţionării algoritmului lui Kruskal pe grafuri
orientate şi neorientate (mai
multe detalii aici).
18. Simularea funcţionării algoritmului lui Prim pe grafuri
orientate şi neorientate.
(mai multe detalii aici).
19. Simlulation funcţionării algoritmului lui Floyd-Warshal pe
grafuri orientate şi neorientate(mai multe detalii aici).
20. Simularea problemei rucsacului în care se pot pune doar
obiecte întregi folosind programarea dinamică
(mai multe detalii aici).
21. Simularea construirii şi codificării/decodificării pentru coduri
Huffman (mai multe detalii
aici).
22. Simularea funcţionării algoritmului de căutare a ciclurilor
hamiltoniene în grafuri (mai
multe
detalii aici).
23. Simularea funcţionării algoritmului de căutare a ciclurilor
euleriene
în grafuri
(mai multe detalii aici).
24. Simularea aplicării metodei ramifică-şi-limitează (branch and
bound) la problema rucsacului în care se pot pune doar obiecte
întregi (mai multe
detalii aici).
25. Simularea funcţionării algoritmului pentru aflarea celei mai
scurte subsecvenţe comune (mai
multe
detalii aici).
26. Simularea construirii şi funcţionării unui arbore de căutare
optimal (proiect lucrat în pereche - mai multe detalii aici).
27. Simularea funcţionării algoritmului de sortare prin interclasare (mai multe detalii aici).
28. Un alt fel de sokoban (mai
multe detalii aici).
29. Dezvoltarea unei aplicaţii pe Android, pornind de la cursul online: https://www.udacity.com/course/developing-android-apps--ud853.
Observaţie: Se pot propune si alte teme de miniproiect, la alegere, insă este
necesar ca aceste propuneri să aibă un grad de dificultate similar
miniproiectelor propuse în lista de mai sus.