Przeprowadzenie kursu z programowania w języku Python na poziomie średniozaawansowanym w ramach projektu pn.: „Atrakcyjne kształcenie zawodowe krokiem do przyszłości” w ZSPM w Katowicach
2Przedmiotem zamówienia jest przeprowadzenie kursu z programowania w języku Python na poziomie średniozaawansowanym dla uczniów w siedzibie Zamawiającego.Liczba uczestników szkolenia: 10 osób (2 grypy szkoleniowe po 5 osób). Czas trwania szkolenia: 32 godzin lekcyjnych (1 godzina lekcyjna = 45 minut)plus czas na jedną przerwę kawową każdego dnia szkolenia.Ostateczne terminy szkoleń (ostateczny harmonogram szkoleń) zostanie ustalony po podpisaniu umowy.Miejsce realizacji szkoleń: stacjonarnie, sale w siedzibie Zamawiającego.W zakres zamówienia wchodzi:1. Przeprowadzenie 32 godzin kursu dla 10 uczniów (2 grupy szkoleniowe po 5 osób);2. Wynagrodzenie trenerów prowadzących szkolenie;3. Koszty dojazdu trenerów na miejsce realizacji szkoleń;4. Koszt certyfikatów, potwierdzających udział uczestnika w szkoleniu.5. Opracowanie i dystrybuowanie wśród uczestników szkolenia materiałów szkoleniowych w liczbie odpowiadającej liczbie uczestników;Zakres merytoryczny szkolenia powinien uwzględniać następujące zagadnienia: 1. Powtórka i fundamenty• powtórzenie podstaw: typy danych, operatory, pętle, funkcje• zagnieżdżone struktury danych,• list/dict/set comprehensions,• funkcje anonimowe, map, filter, reduce.2. Zasady programowania w języku Python• styl PEP8• interpolacja ciągów string• wdrożenie zasad programowania i konstruowania programów• używanie funkcji i obiektów• zasady użycia instrukcji3. Programowanie kolekcji• kolekcje: listy, krótki, zbiory oraz słowniki• operacje na danych• stosowanie dedykowanych metod dla kolekcji• asocjacje key – value• zastosowania metody __missing__()4. Podstawy programowania funkcyjnego• pisanie prostych funkcji• paradygmaty programowania funkcyjnego• funkcje rekurencyjne• iteratory i generatory• użycie funkcji do przetwarzania danych: format xml• wprowadzenie elementów dynamicznych do programowania funkcyjnego• funkcje wyższego rzędu: lambda, sorted(), filter(), iter(), map() i inne• funkcje zwracające n-wyników• definiowanie zachowań opcjonalnych• metoda yield() – użycie wielu generatorów5. Programowanie funkcyjne - projekt uczestnika szkolenia• wykonanie indywidualnego projektu mini-aplikacji opartej na modelu funkcyjnym programowania• napisanie kodu źródłowego prostej aplikacji opartej na programowaniu funkcyjnym• analiza błędu i testy własnej aplikacji6. Programowanie obiektowe• pisanie obiektów• diagram klas, jak go czytać?• programowanie klas• paradygmaty programowania obiektowego: polimorfizm, enkapsulacja, dziedziczenie, abstrakcja• porównanie rozwiązań obiektowych i funkcyjnych• klasy abstrakcyjne i interfejsy• praktyczne aspekty programowania obiektowego7. Programowanie obiektowe - projekt uczestnika szkolenia• wykonanie indywidualnego projektu mini-aplikacji opartej na modelu obiektowym programowania• napisanie kodu źródłowego prostej aplikacji opartej na programowaniu obiektowym• analiza błędu i testy własnej aplikacji8. Programowanie i modelowanie struktur danych• pliki tekstowe• pliki xml• pliki json• proces parsowania danych• sprawdzanie poprawności danych9. Obsługa wyjątków i wydajność• procesy testowanie i debugowania• konstrukcja try/except/else/finally• analiza wyników testów• optymalizacja programu• analiza wykorzystania pamięci, wycieki pamięci10. Programowanie parsera źródła danych - projekt uczestnika szkolenia• wykonanie indywidualnego projektu mini-aplikacji parsującej wybrany model źródła danych• napisanie kodu źródłowego zaprojektowanej aplikacji• analiza błędu i testy własnej aplikacji• cykl życia aplikacji języka python11. Analiza zastosowań języka Python• wykorzystanie narzędzi ai wspomagających programowanie• generowanie i uzupełnianie kodu• refaktoryzacja i wyjaśnianie kodu• debugowanie oraz analiza błędów• tworzenie dokumentacji i testówSzczegółowy opis przedmiotu zamówienia zawarty jest w Załączniku nr 7 do SWZ.