Тематический план
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
withpentru 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
withpentru 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 ramuriexcept. - Gestionarea resurselor în siguranță folosind context manageri (
with). - Configurarea și utilizarea modulului
loggingpentru 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șifinallypentru 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
tkinterpentru crearea unei interfețe grafice minimale pentru un mic utilitar; - aplicarea bibliotecii
opencvpentru 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ță
tkintercare foloseșteopencvși afișează rezultate cumatplotlib); - 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șiopencv. - 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.
Documentul dat reprezintă un model de formatare a conținutului și nici decum structura raportului (nr de capitole, subcapitole etc)