Programare Python

Detalii

Data începere

Seria 1 - 25 Septembrie 2018

Datele sunt estimative și pot suferi modificări minore.

Durată

16 săptămâni x 6 ore/săptămână = 96 ore

Cursurile se desfășoară de 2 ori pe săptămână: 2 ore seara după 18:30 (luni-vineri) și 4 ore sâmbăta

Taxă participare

900 euro + TVA

Taxa acoperă toate costurile și poate fi plătită în 4 rate: 1 rată la semnarea contractului, iar celelalte 3 în săptămânile 5, 9 și 13.

Înscrieri

Online

Înscrie-te!

Programa

1. Introducere în limbajele dinamice

  • Interpretor vs compilator
  • Exemple de limbaje dinamice
  • Avantaje și dezavantaje
  • Studiu de caz C vs Python (poate fi util ulterior la un interviu)

Practică

  • Prima interacțiune cu Python (CPython)
  • Interacțiune cu CPython din linia de comandă
  • Pregatirea utilitarelor necesare
  • Elemente de debugging (dir, help, type etc)

2. Sisteme de versionare

  • Sisteme de versionare - scurt istoric
  • csv vs mercurial vs git
  • Avantaje / dezavantaje
  • Scenarii de utilizare

Practică

  • Avantajele versionarii
  • Git
  • GitHub

3. Introducere în limbajul Python

  • Sintaxa pentru Python (suplimentar reguli de scriere în Python)
  • Instrucțiuni de control ( if - elif - else )
  • Instrucțiuni repetitive (for - while)
  • Expresii

Practică

  • Experimentare cu intructiuni de control și tipuri de date imuabile

4. Tipuri built-in in și structuri de date built-in

  • Tipuri de date in Python
  • Introducerea conceptelor de stiva, coada
  • Introducere în algoritmica si rezolvarea problemelor

Practică

  • Exercitii cu structuri de date simple
  • Exercitii cu algoritmi introductivi

5. Programare procedurala

  • Introducerea conceptului de functie/procedura
  • Prezentarea avantajelor structurale pe care ofera
  • Exemplificarea functiilor built-in (map, filter, int)

Practică

  • Exercitii cu structuri de date
  • Algoritmi simpli

6. Iteratori, generatori, list comprehension

  • Introducerea conceptelor de Iteratori/generatori
  • Avantajele/Optimizarile pe care le aduc
  • Introducerea bibliotecii itertools
  • List comprehension

Practică

  • Optimizarea codului folosind iteratori
  • Exercitii care pot fi rezolvate elegant folosind list comprehension

7. Object Oriented Programming

  • Introducere în OOP
  • Sintaxa claselor in Python
  • Tratarea Exceptiilor
  • Avantajele arhitecturale (modularizarea, izolarea, decuplare, etc)

Practică

  • Convertirea exercitiilor bazate pe functii la clase
  • Studiu de caz pentru a vedea unde are sens OOP-ul
  • Exercitii cu tratare de exceptii
  • Studiu de caz asupra ierarhiei de Exceptii in Python

8. Object Oriented Programming - Advanced

  • Aprofundare în OOP
  • Design Patterns

9. Biblioteci standard în Python

  • Trecerea în revistă a celor mai utilizate bibleoteci de Python
  • Interacțiunea cu sistemul de operare sys / os
  • Serializarea datelor json / xml
  • Introducerea in lucrul cu fisiere in Python
  • Functii/metode comune pentru manipularea fisierelor/directoarelor

Practică

  • Lucru cu fișiere
  • Serializare / deserializare
  • Lucru cu procese
  • Exercitii bazate pe manipularea fisierelor si a directoarelor

10. Stocarea persistentă a datelor

  • Avantajele modulelor
  • Instalarea biblioteci de Python
  • Prezentarea modului in care sunt create bibliotecile (setuptools)
  • Prezentarea conceptului de virtualenv’s
  • Prezentarea unor biblioteci 3rd party comune builtin/externe (requests, functools)
  • Introducerea in mysqlite
  • Introducere in SQL: Create, Insert, Update, Select, Delete

Practică

  • Crearea si Instalarea unei biblioteci
  • Utilizarea unor biblioteci comune
  • Exercitii cu SQL peste sqllite

11. Procese, threads, Locks

  • Aprofundarea concepului de process, thread, lock
  • Studiu de caz asupra problemelor care pot aparea in sisteme multiprocessing
  • Introducerea librariilor de multiprocessing si multithreading in python
  • Comunicare intre procese/threads
  • Introducerea in ThreadPools si ProcessPools

Practică

  • Calcul paralel pentru probleme mari
  • Exercitii care necesita background processing / procesare asincrona

12. Procesare paralelă și distribuită în Python

  • Master - Slave
  • Arhitectură multi-node
  • Scalare verticală / orizontală
  • Scheduler

Practică

  • Aplicarea noțiunilor de la curs

13. Servicii web

  • Introducere în TCP / IP
  • Introducerea in HTTP
  • Introducerea serviciilor web (flask)
  • Consumarea de servicii web externe (API)

Practică

  • Apelarea de API’s
  • Folosirea de SDK’s
  • Crearea unei aplicatii de back-end simpla

14. REST si baze de date externe

  • Introducerea in conceptului de API REST
  • Principii si avantaje pentru stilul REST
  • Consumarea de API rest
  • Conectarea la MySQL extern

Practică

  • Crearea unui API rest in flask
  • Interactiunea cu o baza de date externa
  • Consumarea api-urilor externe si salvarea lor

15. Proiect I

  • Consumarea de API-uri REST
  • Servicii web
  • Stocarea persistenta in baza de date
  • Expunerea de date
  • Procesare in paralel si asyncrona

Practică

  • Pornirea proiectului final care agrega o serie de api-uri si expune un API REST care ofera date procesare

16. Proiect II

  • Evaluarea proiectului final si retusuri finale
  • Review final peste proiect
  • Adaugarea proiectului la CV si pe GitHub

Practică

  • Experimentarea cu code review

Traineri

Alexandru Coman

Trainer

Matei Micu

Trainer

Ne găsești aici!