2023-programowanie-w-pythonie/README.md

74 lines
4.1 KiB
Markdown

# Programowanie w pythonie
Materiały do zajęć Programowanie w Pythonie prowadzone na Wydziale Matematyki i Informatyki UAM w ramach studiów podyplomowych Przetwarzanie danych - Big Data. Kurs 2023/2024
## Informacja o przedmiocie
Prowadzący: mgr inż. Jakub Pokrywka. Kontakt przez komunikator MS TEAMS lub mailowy (jakub.pokrywka@amu.edu.pl).
## Materiały do przedmiotu i jak się uczyć
Program jest wzorowany na https://github.com/tomekd/python . Spora cześć zadań się pokrywa, ale nie wszystkie.
Do nauki można wykorzystać wiele tutoriali internetowych python (w wersji python3). Pomocne mogą byc w szczególności:
* Learning Python, 5th Edition by Lutz, Mark
* [datacamp.com](https://datacamp.com): Portal DataCamp zawiera wiele interaktywych kursów nt. poszczególnych elementów języka Python (również dla języka R.).
* [Python3: From None to Machine Learning](https://python.astrotech.io/)
* [Real Python](https://realpython.com/)
* [Dive in Python](https://diveintopython3.net/): Klasyczny kurs programowania w Pythonie.
* [Filmy na Youtubie](https://www.youtube.com/playlist?list=PLlrxD0HtieHhS8VzuMCfQD4uJ9yne1mE6): seria filmów od Microsoftu nt. podstaw programowania w Pythonie.
## Ogólny Plan zajęć
- Zajęcia 1 - Wprowadzenie do python
- Zajęcia 2 - Analiza danych
- Zajęcia 3 - Analiza danych, instalacja środowiska, IDE
- Zajęcia 4 - Podstawy uczenia maszynowego w python
- Zajęcia 5 - Podstawy uczenia maszynowego w python, obługa maszyny wirtualnej
- Zajęcia 6 - Tworzenie REST API
- Zajęcia 7 - Tworzenie REST API, testowanie aplikacji
## Zaliczenie przedmiotu
- Projekt wykonujemy w grupach (1-3) osoby
- Kod źródłowy powinien być umieszczony na git wraz z plikiem `environment.yml` przeznaczonym do instalacji środowiska dla conda
- Prezentacja całego projektu powinna trwać 5-15 minut
- Przykładowa prezentacja: https://docs.google.com/presentation/d/1UeUB8s7Go8Dsjk0RyZZdcr6TSgDLuM9gmewOwlm86qU/edit?usp=sharing
- przykładowa aplikacja do serwowania modelu ML: http://kubapok.projektstudencki.pl:8000/docs (dostępny tylko w sieci wydziałowej)
- Przykłady są bardzo podstawowe. Zachęcam do stworzenia bardziej rozbudowanego projektu bazującego na Państwa zainteresowaniach
- Proszę uwzględnić, że dodatkowo należy będzie pokazać repozytorium kodu oraz testy
Skala ocen
- Należy wybrać zbiór danych (akceptacja grup oraz zbioru danych przez prowadzącego na pierwszych 17.11.21 lub drugich zajęciach 18.11.23), zaprezentować analizę tego zbioru danych (tabelki, wykresy, wnioski) w max 10 minut- zaliczenie na ocenę 3)
- Należy wytrenować prosty model uczenia maszynowego (lub użyć gotowego modelu) i zaprezentować jego wyniki na zbiorze testowym. Jakość modelu nie będzie oceniana, ale powinien radzić sobie lepiej niż bardzo prosty model (klasa większościowa dla klasyfikacji lub średnia dla regresji)- zaliczenie na ocenę 4
- Należy wystawić model z poprzedniego punktu w prostej aplikacji REST i zaprezentować jego działanie. Do aplikacji powininy być napisane conajmniej 2-3 proste przypadki testowe- zaliczenie na llocenę 4.5
- Należy udostępnić aplikację w sieci wydziałkowej 5
W celu prezentacji projektu należy umowić sie z prowadzącym na prezentacje zdalną lub na wydziale (tylko w dni pracujące).
Termin oddania zadań do koniec stycznia 2024. Dodatkowo można zgłosić prezentacje do końca 2023- wtedy prowadzący proponuje ocenę i zespół może albo ją przyjąć lub nie i spróbować jeszcze raz w styczniu.
## Dodatkowe materiały
### jupyter notebook
- https://noteable.io/blog/jupyter-notebook-shortcuts-boost-productivity/
### bash
- https://www.earthdatascience.org/courses/intro-to-earth-data-science/open-reproducible-science/bash/
- https://www.educative.io/blog/bash-shell-command-cheat-sheet
### git
- https://git.wmi.amu.edu.pl/
- https://www.freecodecamp.org/news/learn-the-basics-of-git-in-under-10-minutes-da548267cc91/
- https://git-scm.com/docs/gittutorial
- https://git-scm.com/book/en/v2
### pycharm tutorial:
- https://www.jetbrains.com/guide/python/tutorials/getting-started-pycharm/