Skip to content

Programare II

Public syllabus for 2025-2026

Academic overview

Programme
BioInfo
Period
Year 1, Semester 2
Credits
5
Weeks
14

Curriculum placement

Appears in study plans

Teaching team

Course coordinator
Seminar coordinators
(none)

Learning time distribution

Total
Curriculum Lecture Practice Total Weekly Lecture Practice
56 28 28 4 2 2
Exam hours
8
Individual Study Bibliography study Field study Homework Tutoring Others
61 23 12 25 1 0
Overall
125

Learning outcomes

Knowledge

  • Cunoștințe fundamentale de informatică și matematică: algoritmi și structuri de date, logică și principii de demonstrare, modele și limbaje formale, structuri discrete și modele computaționale;
  • Capacitatea de a identifica structuri de date abstracte și relațiile dintre ele;
  • Capacitatea de a descrie/identifica algoritmi pentru prelucrarea structurilor abstracte de date identificate;

Skills

  • Abilitatea de a identifica algoritmi și structuri de date adecvate unei probleme concrete, de a aplica principiile de dezvoltare a unei aplicații informatice și de a implementa algoritmi într-un limbaj de programare;
  • Abilitatea de a identifica algoritmul și structura de date adecvate unei probleme concrete;
  • Abilitatea de a implementa un algoritm într-un limbaj de programare de nivel înalt;

Responsibility

  • Capacitatea de a rezolva în manieră autonomă sarcini specifice;
  • Capacitatea de a identifica/selecta soluții/căi de rezolvare adecvate și de a genera idei inovative;
  • Capacitatea de a asuma în mod responsabil sarcinile profesionale și de a respecta normele de etică și deontologie profesională;

Online platform

_______________

Course content

Content Methods Obs
Curs 1: (2h) Elemente de programare structurată. Programare procedurala. Introducere în C. Date. Modalități de reprezentare a datelor. Tipuri de date. Variabile: declarare, clasa de memorare, domeniu, vizibilitate, durata de viață. Funcții de intrare/ieșire standard – scanf, printf. Operatori și expresii. Clase de operatori. Precedenta operatorilor și ordinea de evaluare a expresiilor. Conversii implicite de tip. Controlul execuției. Instrucțiunea decizionala – if. Instrucțiunea de selecție din variante multiple – switch. Instrucțiuni de ciclare – while, for, do while. Instrucțiuni de control a execuției ciclurilor – continue, break. Instrucțiunea de salt necondiționat –goto. Instrucțiunea de revenire din apel de funcție – return. Funcții. Structura programelor. Declararea funcțiilor. Convenția de apel C. Contextul de apel. Comunicarea între funcții. Funcții recursive. Prelegere, conversație, exemplificare Referințe: Slide-uri de curs disponibile pe Google Classroom, materiale disponibile pe platforma elearning.uvt.ro, [1] capitolele 2,3 și 4
Curs 2-3: (4h) Preprocesarea. Macrodefiniții. Tablouri. Pointeri. Șiruri de caractere Prelegere, conversație, exemplificare Referințe: Slide-uri de curs disponibile pe Google Classroom, materiale disponibile pe platforma elearning.uvt.ro, [1] capitolul 5
Curs 4: (2h) Structuri. Declarare. Operații cu structuri. Accesul la membri. Tablouri de structuri. Pointeri la structuri. Declarații de tip (typedef). Uniuni. Prelegere, conversație, exemplificare Referințe: Slide-uri de curs disponibile pe Google Classroom, materiale disponibile pe platforma elearning.uvt.ro, [1] capitolul 6
Curs 5: (2h) Tipuri de date. Îmbunătățiri aduse de C++. Clase. Concepte fundamentale: clasa și obiectul. Declararea claselor. Instanțierea obiectelor. Membrii unei clase. Controlul accesului la membrii unei clase. Constructorii clasei. Destructorul clasei. Membrii statici ai unei clase. Cuvântul cheie this. Funcții membre constante. Funcții și clase prietene (friends). Funcții membre inline. Prelegere, conversație, exemplificare Referințe: Slide-uri de curs disponibile pe Google Classroom, materiale disponibile pe platforma elearning.uvt.ro, [3] capitolele 2 si 10
Curs 6: (2h) Redefinirea operatorilor. Operatori unari și binari. Redefinirea operatorului de asignare (=). Prelegere, conversație, exemplificare Referințe: Slide-uri de curs disponibile pe Google Classroom, materiale disponibile pe platforma elearning.uvt.ro, [3] capitolul 11
Curs 7: (2h) Redefinirea operatorilor. Operatori (continuare). Constructori și conversii de tip. Tratarea excepțiilor. Prelegere, conversație, exemplificare Referințe: Slide-uri de curs disponibile pe Google Classroom, materiale disponibile pe platforma elearning.uvt.ro, [3] capitolele 11 si 14
Curs 8: (2h) Funcții șablon. Particularizarea funcțiilor template. Rezolvarea numelui în cazul funcțiilor șablon. Prelegere, conversație, exemplificare Referințe: Slide-uri de curs disponibile pe Google Classroom, materiale disponibile pe platforma elearning.uvt.ro, [3] capitolul 13
Curs 9: (2h) Biblioteca STL (Standard Template Library). Organizarea bibliotecii. Containere standard. Prelegere, conversație, exemplificare Referințe: Slide-uri de curs disponibile pe Google Classroom, materiale disponibile pe platforma elearning.uvt.ro, Slideuri de curs disponibile pe Google Classroom[3] capitolul 16
Curs 10: (2h) Biblioteca STL (Standard Template Library). Prelegere, conversație, exemplificare Referințe: Slide-uri de curs disponibile pe Google Classroom, materiale disponibile pe platforma elearning.uvt.ro, [3] capitolele 17 si 20
Curs 11: (2h) Clase derivate. Moștenirea. Concepte și clase. Clase derivate. Controlul accesului. Supraîncărcarea funcțiilor membre. Constructorii și destructorul clasei derivate. Prelegere, conversație, exemplificare Referințe: Slide-uri de curs disponibile pe Google Classroom, materiale disponibile pe platforma elearning.uvt.ro, [3] capitolul 12
Curs 12: (2h) Ierarhii de clase. Polimorfism. Funcții virtuale. Funcții virtuale pure. Clase abstracte. Moștenire multiplă. Clase virtuale. Prelegere, conversație, exemplificare Referințe: Slide-uri de curs disponibile pe Google Classroom, materiale disponibile pe platforma elearning.uvt.ro, [3] capitolul 15
Curs 13: (2h) Concepte de programare OO. Principiile SOLID, GRASP Prelegere, conversație, exemplificare Referințe: Slide-uri de curs disponibile pe Google Classroom, materiale disponibile pe platforma elearning.uvt.ro,
Curs 14: (2h) Streamuri. Smart pointers Prelegere, conversație, exemplificare Referințe: Slide-uri de curs disponibile pe Google Classroom, materiale disponibile pe platforma elearning.uvt.ro, [3] capitolele 23 si 24

Course bibliography

B. Kernighan and D. Ritchie - The C Programming Language (2nd edition), Prentice-Hall, 1988. B. Kernighan și D. Ritchie - Limbajul C, Editura Teora, 2000. Bjarne Stroustrup - The C++ Programming Language (3rd edition), Addison Wesley, 1997. Bjarne Stroustrup - Limbajul de programare C++, Editura Teora, 2003. L. Negrescu – Limbajele C și C++ pentru începători, vol. 1, Ed. Albastră, Cluj-Napoca, 2001. I. Muşlea - C++ pentru avansati, Ed. MicroInformatica, 1994. I. Muşlea - Introducere in C++, Ed. MicroInformatica, 1994.

Seminar content

Content Methods Obs
L1. (2h) Prezentarea mediului de lucru. Etapele de compilare, linkeditare și execuție. Folosirea operatorilor în aplicații simple. Aplicații cu instrucțiuni condiționale, repetitive. Utilizarea funcțiilor în aplicații. Funcții recursive. Problematizare, dialog, învățare prin colaborare, învățare prin descoperire. Studenții au acces la sinteza aferentă tematicii de laborator și la enunțurile problemelor disponibile pe platforma elearning.uvt.ro. Cadrul didactic oferă detalii suplimentare, răspunde întrebărilor studenților și verifică / evaluează modul în care studenții au rezolvat problemele.
L2. (2h) Tablouri. Aplicații cu șiruri de caractere. Problematizare, dialog, învățare prin colaborare, învățare prin descoperire. Idem
L3. (2h) Pointeri. Alocare dinamică. Problematizare, dialog, învățare prin colaborare, învățare prin descoperire. Idem
L4. (2h) Test de laborator cu durata de 1 oră (problemele se vor evalua automat is manual). Structuri de date și uniuni. Evaluare. Problematizare, dialog, învățare prin colaborare, învățare prin descoperire. Testul nu se poate reda în nici una din sesiunile de examinare. Testul va fi planificat în afara orelor de laborator la o oră și sală anunțată.
L5. (2h) Îmbunătățiri aduse limbajului C (nelegate de concepte orientate obiect). Familiarizarea cu sintaxa de C++. Problematizare, dialog, învățare prin colaborare, învățare prin descoperire. Idem
L6. (2h) Clase. Constructori. Destructori. Crearea de tipuri abstracte de date și manipularea lor. Problematizare, dialog, învățare prin colaborare, învățare prin descoperire. Idem
L7. (2h) Supraîncărcarea operatorilor. Adăugarea de comportament claselor prin supraîncărcarea operatorilor. Problematizare, dialog, învățare prin colaborare, învățare prin descoperire. Idem
L8. (2h). Relații de asociere între clase. Evaluare. Problematizare, dialog, învățare prin colaborare, învățare prin descoperire. Idem
L9. (2h)Test de laborator cu durata de 1 oră Template-uri. Crearea de template-uri pentru structuri de date. Problematizare, dialog, învățare prin colaborare, învățare prin descoperire. Testul nu se poate reda în nici una din sesiunile de examinare. Testul va fi planificat în afara orelor de laborator la o oră și sală anunțată.
L10. (2h) Folosirea funcțiilor și structurilor de date din STL pentru tipuri abstracte de date create de utilizator. Problematizare, dialog, învățare prin colaborare, învățare prin descoperire. Idem
L11. (2h) Moștenire simplă. Extragerea de ierarhi simple de date. Problematizare, dialog, învățare prin colaborare, învățare prin descoperire. Idem
L12. (2h) Moștenire multiplă. Extragerea de ierarhi simple de date. Problematizare, dialog, învățare prin colaborare, învățare prin descoperire. Idem
L13. (2h) Recapitulare Problematizare, dialog, învățare prin colaborare, învățare prin descoperire. Idem
L14. (2h) Streams Problematizare, dialog, învățare prin colaborare, învățare prin descoperire. Idem

Seminar bibliography

B. Kernighan and D. Ritchie - The C Programming Language (2nd edition), Prentice-Hall, 1988. B. Kernighan și D. Ritchie - Limbajul C, Editura Teora, 2000. Bjarne Stroustrup - The C++ Programming Language (3rd edition), Addison Wesley, 1997. Bjarne Stroustrup - Limbajul de programare C++, Editura Teora, 2003. L. Negrescu – Limbajele C și C++ pentru începători, vol. 1, Ed. Albastră, Cluj-Napoca, 2001.

Corroboration

Conținutul este în concordanță cu structura cursurilor similare de la alte universități și acoperă aspectele fundamentale necesare familiarizării cu problematica programării orientate obiect. Abilitatea de a identifica, proiecta, implementa și analiza probleme care se pot rezolva folosind principii orientate obiect este esențială pentru orice activitate din domeniul informaticii. Competențele oferite de această disciplină sunt necesare unui specialist IT pentru a identifica soluții de rezolvare a unor probleme concrete, indiferent de domeniul specific de activitate.

AI tools guidance

(none)

Evaluation and delivery

Activity Criteria Methods Percentage
C
  • Evaluarea cunoștințelor despre terminologia programării funcționale si orientate obiect, caracteristici ale limbajului C/C++. Evaluarea abilitatii de a identifica: structuri de date abstracte, metode de rezolvare a diferite prelucrări asupra structurilor de date identificate.
  • Examenul se poate promova doar dacă nota de la această probă este cel puțin 4.
  • Examen scris în sesiunea de examene - obligatoriu
  • 35.0%
C
  • Evaluarea abilitatii de a defini o structura abstracta de date, de a identifica relații între mai multe structuri abstracte de date și realiza prelucrări asupra lor
  • Test practic în sesiunea de examene
  • 18.0%
C
  • Evaluarea cunoștințelor despre terminologia programării funcționale si orientate obiect, caracteristici ale limbajului C/C++
  • Răspunsuri la teste scurte în timpul semestrului
  • 2.0%
S
  • Evaluare abilitatea de a rezolva o problema în limbajul C
  • Test practic pe parcursul semestrului (laborator 5). Testul nu se poate reda în nici una din sesiunile de examinare.
  • 15.0%
S
  • Evaluare abilitatea de a defini o listă de obiecte și realizarea de prelucrări asupra ei
  • Test practic pe parcursul semestrului (laborator 9). Testul nu se poate reda în nici una din sesiunile de examinare.
  • 15.0%
S
  • Evaluare abilitatea de a rezolva o problema în limbajele C și C++
  • Punctajul obținut prin rezolvarea problemelor de pe platforma elearning.uvt.ro, aferentă fiecărui laborator
  • 2.5%
S
  • Evaluare abilitatea de colaborare cu cadrele didactice care desfășoară laboratorul
  • Activitate laborator. Se va puncta implicarea în desfășurarea laboratorului (ex. realizarea sarcinilor de laborator, promptitudinea răspunsurilor la sarcinii)
  • 2.5%
S
  • Evaluare abilitatea de a prezenta și explica soluția propusă
  • Prezentarea orală a soluțiilor găsite la problemele primite ca temăStudenții care aleg tema o vor prezenta în orele de consultații ale responsabilului de curs aferente următoarei saptamani după enuntarea temei.
  • 10.0%

Performance standards

Pentru nota 9-10 la curs: noțiunile de teorie acoperă toate detaliile discutate în cursuri, sunt oferite exemple relevante, problemele sunt abordate prin respectarea principiilor programării procedurale și obiect. Pentru nota 9-10 la testele de laborator: testele automate rulează integral, codul respectă principiile programării procedurale și obiect (ex. alocarea dinamică, încapsularea datelor, realizarea cerințelor în metode separate). Nota finală se calculează ca medie ponderată a notelor acordate pentru componentele specificate la 9.4 și 9.5. Examenul se consideră promovat dacă media este cel puțin 5 si nota la partea scrisă este mai mare de 4 (nu e necesar ca fiecare notă să fie mai mare de 5). La fiecare dintre sesiunile de examen (inclusiv cele de restanță și măriri) nota se calculează după aceeași regulă. În sesiunea de restanțe/măriri se poate reda doar probă scrisă și testul practic din sesiune. Regulile referitoare la prezență sunt cele din regulamentele UVT privind frecventarea activitatii de laborator. Dacă disciplina nu este promovată în cele 2 sesiuni, în anul II se va recontracta.

Additional info

(none)