Тематический план

  • Tema 1. Introducere în Tehnici de programare (Python)

    Obiective generale

        Tema 1 are rolul de a familiariza studenții cu noțiunile fundamentale ale programării și de a crea o bază solidă pentru utilizarea limbajului Python. Se urmărește atât înțelegerea conceptelor de bază privind algoritmii și structura unui program, cât și dobândirea abilităților practice de lucru într-un mediu de dezvoltare.

    1. Importanța tehnicilor de programare 

    2. Algoritmi și logica programării 

    3. Prezentarea limbajului Python 

    4. Medii de dezvoltare și instrumente

  • Tema 2. Bazele limbajului Python și structuri de control

    Obiectivele temei

      • Înțelegerea structurii unui program Python.
      • Folosirea tipurilor de date și variabile.
      • Aplicarea operatorilor aritmetici și logici.
      • Realizarea conversiei între tipuri de date.
      • Construirea de programe cu instrucțiuni condiționale și structuri repetitive.

     

    Structura temei

    1. Bazele limbajului Python

        • Structura unui program Python.
        • Tipuri de date fundamentale.
        • Variabile și operatori.
        • Funcții de bază I/O.

    2. Structuri de control

        • Instrucțiuni condiționale.
        • Structuri repetitive.
        • Instrucțiuni de control.
  • Tema 3. Funcții și modularizare

    Obiectivele temei

      • înțelegerea conceptului de funcție și definirea funcțiilor proprii în Python;
      • utilizarea parametrilor și obținerea valorii returnate;
      • explicarea diferenței dintre variabile locale și variabile globale;
      • aplicarea recursivității pentru rezolvarea unor probleme algoritmice;
      • importul și utilizarea de module standard din Python (ex. math, random, datetime).

     

    Structura temei

      • Definirea și apelarea funcțiilor
      • Parametri și valori returnate
      • Variabile locale și globale
      • Recursivitate
      • Importul și utilizarea modulelor standard
  • Tema 4. Structuri de date. Lucrul cu fișierele.

    Obiectivele temei (Structuri de date)

      • distingerea tipurilor de colecții: listă, tuplu, set, dicționar;
      • explicarea conceptelor de mutabilitate/imutabilitate și efectele asupra codului;
      • aplicarea indexării, slicing-ul și operațiile uzuale pe colecții;
      • utilizarea comprehensiunii pentru a transforma și filtra date.

    Structura temei (Structuri de date)

      • Recapitulare tipuri de bază și variabile.
      • Colecții de date: Stocare, procesare, agregare.
      • Liste.
      • Tupluri.
      • Seturi.
      • Dicționare.
      • Comprehensiuni.

    Obiectivele temei (Lucrul cu fișierele)

      • Înțelegerea conceptului de fișier și a necesității lucrului cu fișiere în aplicațiile Python.
      • Familiarizarea cu funcția open() și parametrii săi principali.
      • Cunoașterea modurilor de deschidere a fișierelor (citire, scriere, apendare, binar).
      • Exersarea metodelor de citire și scriere: read(), readline(), readlines(), write(), writelines().
      • Utilizarea instrucțiunii with pentru gestionarea automată a fișierelor.
      • Aplicarea metodelor de control al poziției (seek(), tell()) și gestionarea erorilor la lucrul cu fișiere.

    Structura temei (Lucrul cu fișierele)

      • Prezentarea conceptului de fișier și a tipurilor de fișiere (textuale și binare).
      • Explicarea funcției open() și a modurilor de lucru (r, w, a, x, b, +).
      • Demonstrarea metodelor principale de citire și scriere a datelor din fișiere.
      • Utilizarea expresiei with pentru deschiderea și închiderea automată a fișierelor.
      • Exemple practice de manipulare a fișierelor.

     

    • Tema 5. Mecanisme de tratare a excepțiilor lucrul cu jurnalele

      Obiectivele temei

        • Rolul excepțiilor și diferența dintre erori, excepții verificate/neverificate în context Python.
        • Aplicarea corectă a blocurilor try / except / else / finally și utilizarea a mai multor ramuri except.
        • Gestionarea resurselor în siguranță folosind context manageri (with).
        • Configurarea și utilizarea modulului logging pentru a înregistra evenimente cu nivele diferite (DEBUG, INFO, WARNING, ERROR, CRITICAL).
        • Proiectarea unei strategii de logare: formatare, handlere (stream/file), rotația logurilor și separarea logurilor pe module.

      Structura temei

        • Concepte de bază privind erorile și excepțiile în Python, diferențele dintre ele și modul în care acestea influențează execuția programului.
        • Demonstrarea utilizării blocurilor try, except, else și finally pentru gestionarea controlată a erorilor și prevenirea întreruperilor neașteptate.
        • Explicarea modulului de definire și aruncare a excepțiilor personalizate, pentru o semnalizare clară a situațiilor specifice aplicației.
        • Exemple de utilizare a context managerilor (with) pentru gestionarea sigură a resurselor și reducerea riscului de scurgeri de fișiere sau conexiuni.
        • Se descrie mecanismul modulului logging, nivelurile de severitate și pașii de configurare a unui sistem de logare în fișier sau consolă.
        • Exemple în tratarea excepțiilor și logarea evenimentelor, evidențiind claritatea mesajelor și evitarea logării informațiilor sensibile.
    • Tema 6. Elemente de programare orientată pe obiecte

      Obiectivele temei

        • înțelegerea conceptelor fundamentale ale programării orientate pe obiecte (clasă, obiect, atribut, metodă);
        • aplicarea principiilor de încapsulare, moștenire și polimorfism în programe Python;
        • proiectarea și implementarea claselor pentru modelarea entităților din lumea reală;
        • utilizarea constructorilor (__init__) și metodelor speciale (__str__, __repr__, __len__ etc.);
        • demonstrarea interacțiunii dintre obiecte și compunerea claselor;
        • dezvoltarea unei aplicații simple bazate pe paradigma orientată pe obiecte.

        Structura temei

          • Introducere în POO.
          • Definirea și utilizarea claselor.
          • Principiile fundamentale POO.
          • Metode și atribute speciale.
          • Relații între clase.
          • Aplicații practice.
          • Concluzii și recomandări.
        • Tema 7. Biblioteci standard și populare

          Obiectivele temei

            • înțelegerea rolului bibliotecilor standard și populare în ecosistemul limbajului Python;
            • familiarizarea cu modul de lucru cu documentația oficială a bibliotecilor Python;
            • înțelegerea conceptelor de bază pentru lucrul cu biblioteca matplotlib (crearea și personalizarea graficelor 2D);
            • înțelegerea conceptelor de bază pentru lucrul cu biblioteca tkinter (interfețe grafice simple – ferestre, butoane, câmpuri de text);
            • înțelegerea conceptelor de bază pentru lucrul cu biblioteca opencv (citirea, afișarea și prelucrarea elementară a imaginilor);
            • aplicarea bibliotecii matplotlib în vizualizarea datelor generate de programe Python;
            • aplicarea bibliotecii tkinter pentru crearea unei interfețe grafice minimale pentru un mic utilitar;
            • aplicarea bibliotecii opencv pentru realizarea unor operații simple de procesare a imaginilor (redimensionare, conversie în tonuri de gri etc.);
            • integrarea mai multor biblioteci într-o aplicație Python unitară (de exemplu: interfață tkinter care folosește opencv și afișează rezultate cu matplotlib);
            • dezvoltarea abilității de a extinde programele existente prin utilizarea bibliotecilor standarde și populare.

          Structura temei

            • Prezentarea generală a bibliotecilor în Python (standard vs. terțe, instalare și import).
            • Introducere în biblioteca matplotlib:
              • crearea primelor grafice 2D;
              • personalizarea axelor, titlurilor și legendelor;
              • salvarea graficelor în fișiere imagine.
            • Introducere în biblioteca tkinter:
              • crearea unei ferestre simple;
              • adăugarea de controale de bază (label, button, entry);
              • gestionarea evenimentelor (click pe buton, citirea datelor din câmpuri).
            • Introducere în biblioteca opencv:
              • citirea și afișarea imaginilor;
              • operații simple de prelucrare (redimensionare, conversie în niveluri de gri, blur);
              • salvarea imaginilor procesate.
            • Exemple de integrare între matplotlib, tkinter și opencv.
            • Aplicații practice (rezolvarea unor sarcini propuse în laborator).
            • Concluzii și recomandări privind învățarea și utilizarea bibliotecilor Python.
        • Tema 8. Paradigme moderne și tendințe în programare

          Obiectivele temei:

            • cunoașterea noțiunilor de bază ale programării funcționale, programării concurente și testării automate;

            • înțelegerea diferențelor dintre paradigmele clasice și cele moderne de programare utilizate în limbajul Python;

            • familiarizarea cu rolul și avantajele aplicării paradigmelor moderne în dezvoltarea aplicațiilor software;

            • utilizarea funcției lambda, expresii funcționale (map, filter, reduce) și concepte elementare de programare concurentă în exemple de cod;

            • aplicarea de concepte moderne de programare pentru realizarea unor soluții software clare, modulare și ușor de întreținut;

            • înțelegerea  importanței testării automate în asigurarea calității și fiabilității aplicațiilor software;

            • familiarizarea cu noțiunile introductive ale bibliotecii OpenCV și domeniile sale de aplicare în prelucrarea imaginilor și viziunea artificială;

            • identificarea posibilităților de utilizare a bibliotecii OpenCV în aplicații Python moderne.

        • Lucru individual

          Lucrul individual reprezintă o activitate didactică de sinestătătoare a studentului, care se realizează pe parcursul semestrului de studii.

          Rezultatul muncii asupra lucrului individual se susține de fiecare student în parte la cadrul didactic titular (cel care duce orele de curs).

          Termenul limită este nu mai tîrziu de 3 zile înainte de examen. 

          Lucrul individual poate fi susținut la orele de ghidare (orarul orelor a fost expediat pe poșta corporativă). Se poate susține atât toate temele o dată cât și separat îndată ce ați efectuat-o.