Course Code: pyt5
Duration: 35 hours
Prerequisites:
  • An understanding of ___.
  • Experience with ___.
  • ___ programming experience.

Audience

  • ___
  • ___
  • ___
Overview:

Odbiorcami szkolenia są osoby chcące od podstaw nauczyć się programować w jednym z najpopularniejszych języków programowania na świecie. Szkolenie od podstaw ale również wprowadza programowanie zaawansowanych narzędzi analizy danych oraz tworzenia interfejsów internetowych. Tematy opcjonalne są realizowane do wyboru w zależności od ilości dostępnego czasu oraz decyzji uczestników szkolenia.

Course Outline:

Wprowadzenie

  • Wybór środowiska programowania (Jupyter, Visual Studio, pyCharm, IDLE, Anaconda z
  • Spyder, Atom)
  • Zakładanie własnego środowiska virtualnego (pracy)
  • Interfejs środowiska programowania oraz dodatki wspomagające programowanie (Kite)
  • Instalacja modułów poprzez pip oraz conda
  • Podstawowe polecenia print, input
  • Typy danych
  • Operatory arytmetyczne, logiczne
  • Operacje arytmetyczne
  • Rola wcięć w kodzie
  • Struktura aplikacji
  • Instrukcje warunkowe
  • Pętla iteracyjna for
  • Pętla warunkowa while
  • Test czy plik istnieje
  • Alternatywna skłania if – operator tenarny
  • Sekwencje
  • Łańcuchy znaków – String
  • Listy
  • Krotki
  • Słowniki
  • Zbiory
  • Typy binarne (bytes, bytearray, memoryview)

Funkcje – podstawowe zagadnienia

  • Deklaracja funkcji
  • Przekazywanie argumentów do funkcji
  • Argumenty opcjonalne
  • Dowolna liczba argumentów
  • Funkcja w funkcji
  • Iterator oraz generator
  • Zastosowanie funkcji eval(), exec(), compile()
  • Użycie dekoratora funkcji
  • Użycie wrappera dla funkcji
  • Funkcje partialne
  • Użycie cache z funkcjami
  • Użycie wyrażeń lambda

Praca z modułami

  • Import modułów
  • Tworzenie własnych modułów
  • Zastosowanie modułów: os, sys, re, numpy
  • Operacje na danych typu data i czas: time, datetime
  • Rysowanie wykresów: pylab (matplotlib)
  • Praca z witrynami WWW (pobieranie, analiza, wypełnianie formularzy)
  • Praca z modułem openpyxl (Excel)
  • Pliki
  • Tryby otwierania
  • Odczyt, zapis
  • Tworzenie archiwum: zip, tar
  • Zastosowanie modułów pickle, shelve
  • Otwieranie z użyciem: numpy.genfromtxt
  • Praca z formatami json i xml
  • Import danych z usług Web API (format JSON) i zapis do plików oraz użycie pobranych
  • danych w analizie
  • Obsługa wyjątków
  • Instrukcja try..except..finally
  • Rodzaje wyjątków

Bazy danych

  • MySQL – tworzenie połączenia (wybór)
  • PostgreSQL – tworzenie połączenia (wybór)
  • MS SQL Server – tworzenie połączenia (wybór)
  • Wykonywanie zapytań do bazy danych
  • Aktualizacja danych w bazie danych
  • Wstawianie danych do baz danych
  • Usuwanie danych w bazie danych

Programowanie obiektowe

  • Deklaracja klas
  • Praca z podstawowymi implementacjami klas
  • Deklaracje i użycie metod w klasach
  • Publiczne i prywatne atrybuty klasy
  • Projektowanie właściwości klas
  • Metody statyczne klas – deklaracja i użycie
  • Zastosowanie dekoratorów w metodach klas
  • Dynamiczne tworzenie metod
  • Implementacja dziedziczenia z jednej lub wielu klas

Podstawy programowania testów

  • Testowanie funkcji
  • Testowanie klasy

Programowanie aplikacji WWW z frameworkiem Django. Projekt pierwszej aplikacji (demoTemplate)

  • Utworzenie aplikacji
  • Omówienie wzorca MVT (Model View Template)
  • Utworzenie template dla aplikacji wraz z strukturą stron html
  • Utworzenie widoków (views) dla aplikacji
  • Omówienie zasad działania routingu wraz z konfiguracją ustawień
  • Konfiguracja ustawień plików statycznych aplikacji (skrypty, style, media, …)
  • Modyfikacja zawartości stron z wykorzystaniem ogólnodostępnych szablonów

Projekt drugiej aplikacji (demoCRUD)

  • Utworzenie aplikacji
  • Konfiguracja ustawień pod kątem użycia systemu bazodanowego
  • Wyjaśnienie i użycie mechanizmu migracji
  • Praca z witryną administracyjną Django
  • Projekt modelu relacyjnego (one to one, many to one, many to many)
  • Konfiguracja witryny administracyjnej na potrzeby testowania modelu
  • Ustawienia filtrowania danych z bazy danych w witrynie administracyjnej
  • Utworzenie managera modelu

Projekt trzeciej aplikacji (demoForms)

  • Utworzenie aplikacji
  • Zaprojektowanie struktury bazodanowej modelu
  • Przygotowanie widoków opartych na funkcjach i klasach wraz z strukturą routingu
  • Wyjaśnienie zasad działania messages
  • Przygotowanie logiki formularzy
  • Rola csrf_token
  • Utworzenie template z stronami html
  • Praca z obiektami QuerySet
  • Implementacja formularzy realizujących operacje CRUD (create, read, update, delete)
  • Filtrowanie i modyfikacja sposobu wyświetlania danych
  • Implementacja uwierzytelniania z użyciem wbudowanych szablonów Django
  • Użycie dekoratorów w celu określenia uprawnień do wykonywania działań na formularzach
  • Implementacja stronicowania w widoku listy

Programowanie z użyciem technik równolegle wykonywanego kodu (opcjonalnie)

  • Wprowadzenie do programowania z użyciem wątków
  • Wprowadzenie do programowanie z użyciem procesów
  • Wprowadzenie do programowania kodu wykonywanego asynchronicznie