fbpx

Curs Programare Python

Curs Programare Python2018-10-09T17:56:06+00:00

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ă
  • Pregătirea 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 instrucțiuni de control și tipuri de date imuabile

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

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

Practică

  • Exerciții cu structuri de date simple
  • Exerciții cu algoritmi introductivi

5. Programare procedurala

  • Introducerea conceptului de funcție/procedură
  • Prezentarea avantajelor structurale pe care le oferă
  • Exemplificarea funcțiilor built-in (map, filter, int)

Practică

  • Exerciții cu structuri de date
  • Algoritmi simpli

6. Iteratori, generatori, list comprehension

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

Practică

  • Optimizarea codului folosind iteratori
  • Exerciții care pot fi rezolvate elegant folosind list comprehension

7. Object Oriented Programming

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

Practică

  • Convertirea exercițiilor bazate pe funcții la clase
  • Studiu de caz pentru a vedea unde are sens OOP-ul
  • Exerciții cu tratare de excepții
  • 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 biblioteci de Python
  • Interacțiunea cu sistemul de operare sys / os
  • Serializarea datelor json / xml
  • Introducerea în lucrul cu fișiere în Python
  • Funcții/metode comune pentru manipularea fișierelor/directoarelor

Practică

  • Lucru cu fișiere
  • Serializare / deserializare
  • Lucru cu procese
  • Exerciții bazate pe manipularea fișierelor și a directoarelor

10. Stocarea persistentă a datelor

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

Practică

  • Crearea și Instalarea unei biblioteci
  • Utilizarea unor biblioteci comune
  • Exerciții cu SQL peste sqllite

11. Procese, threads, Locks

  • Aprofundarea conceptului de process, thread, lock
  • Studiu de caz asupra problemelor care pot apărea în sisteme multiprocessing
  • Introducerea librăriilor de multiprocessing și multithreading în python
  • Comunicare între procese/threads
  • Introducerea în ThreadPools și ProcessPools

Practică

  • Calcul paralel pentru probleme mari
  • Exerciții care necesită background processing / procesare asincronă

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 în HTTP
  • Introducerea serviciilor web (flask)
  • Consumarea de servicii web externe (API)

Practică

  • Apelarea de API’s
  • Folosirea de SDK’s
  • Crearea unei aplicații de back-end simplă

14. REST și baze de date externe

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

Practică

  • Crearea unui API rest in flask
  • Interacțiunea cu o bază de date externă
  • Consumarea api-urilor externe și salvarea lor

15. Proiect I

  • Consumarea de API-uri REST
  • Servicii web
  • Stocarea persistenta în baza de date
  • Expunerea de date
  • Procesare în paralel și asyncrona

Practică

  • Pornirea proiectului final care agregă o serie de api-uri și expune un API REST care oferă date procesare

16. Proiect II

  • Evaluarea proiectului final și retușuri finale
  • Review final peste proiect
  • Adăugarea proiectului la CV și pe GitHub

Practică

  • Experimentarea cu code review
Alexandru Coman
Alexandru ComanTrainer
Matei Micu
Matei MicuTrainer

This Is A Custom Widget

This Sliding Bar can be switched on or off in theme options, and can take any widget you throw at it or even fill it with your custom HTML Code. Its perfect for grabbing the attention of your viewers. Choose between 1, 2, 3 or 4 columns, set the background color, widget divider color, activate transparency, a top border or fully disable it on desktop and mobile.

This Is A Custom Widget

This Sliding Bar can be switched on or off in theme options, and can take any widget you throw at it or even fill it with your custom HTML Code. Its perfect for grabbing the attention of your viewers. Choose between 1, 2, 3 or 4 columns, set the background color, widget divider color, activate transparency, a top border or fully disable it on desktop and mobile.