knmlprz / python-tutorial

A Python tutorial (not) written using PyScript
MIT License
3 stars 1 forks source link

Tematy spotkań #1

Open FrightenedFox opened 2 years ago

FrightenedFox commented 2 years ago

Ogólne zalecenia


1. Why Python? A guessing game.


2-3. What is python doing? (snake game, 2 parts)

Cześć 1

Część 2


4. How to build an optimal PC? (data analysis project)

Jeżeli w skrócie, to jakie komponenty wybrać, żeby proporcja jakość/cena była jak największa.


5. How to write fast Python code?


6. None

Nie wiem co wybrać, ale mam takie pomysły:

pgronkievitz commented 2 years ago

może również pokazać jak się zapisuje liczby binarne 0b0101 oraz szesnastkowe 0x0101

od razu można też ósemkowe pokazać (0o0101)

Coś za pomocą Raspberry Pi (poprosić w Salacha). Ale czy jest sens? Przecież i tak będą to robić na 2 roku? Czy tam już nie będzie Salacha (słyszałem, że 1 rok teraz miał ELIAKi z kimś innym)?

Mateusz się zamienił w zeszłym roku i wziął informatyków, nie wiem jak będzie w tym - ogółem Ola i Kuba bardzo się na prowadzącego skarżyli

Jak korzystać z managerów paczek (conda, mamba, poetry, virtualenv). Bardzo przydatny temat, ale trochę nudny i może nie wartuję całego zajęcia (przecież tylko wytłumaczyć po co są potrzebne dependencies i wirtualne środowiska; pokazać jak korzystać z tych paczek).

You know nothing - warto to pokazać i położyć na to zdecydowanie większy nacisk. Szczególnie na poetry, które staje się powoli nowym standardem od ustandaryzowania formatu pyproject.toml, można tu od razu pokazać narzędzia takie jak tox, black i ogólnie cały tooling wokół pythona

finloop commented 2 years ago

4. How to build an optimal PC? (data analysis project)

Fajny pomysł na web scraping. Mogę z tym pomóc.

Jak korzystać z managerów paczek (conda, mamba, poetry, virtualenv). Bardzo przydatny temat, ale trochę nudny i może nie wartuję całego zajęcia (przecież tylko wytłumaczyć po co są potrzebne dependencies i wirtualne środowiska; pokazać jak korzystać z tych paczek).

Z tego można zrobić (jak Patryk wspominał) tutorial z Poetry, z którym bardzo dobrze mi się pracuje. A przy okazji możemy pokazać jak opublikować swoją paczkę w pypi (co też robi się bajecznie łatwo w Poetry).

  1. How to write fast Python code?
    • Wykorzystanie gotowych funkcji numpy
    • Tworzenie własnych funkcji wektorowych (map, pd.Series.apply, np.vectorize)
    • Szybkie proste funkcji za pomocą biblioteki Numba
    • Code profiling
    • (jeżeli będzie czas) CUDA + Numba

To także spory temat. Albo bym go podzielił, albo zawęził.

Jeżeli małbym go zawężać to zrobiłbym np. wprowadzenie do numpy i pokazać im jak rozwiązywać zadania z algebry (które mają na 1 roku). I na koniec pokazać im że sieci neuronowe to tak naprawdę mnożenie macierzy (wyciągnąć wagi z gotowej sieci np. https://towardsdatascience.com/solve-the-mnist-image-classification-problem-9a2865bcf52a i przemnożyć, wydaje mi się, że może to dać efekt wow).

finloop commented 2 years ago

Proponuję następujące tematy

1. Why Python? A guessing game.


2-3. What is python doing? (snake game, 2 parts)

Cześć 1

Część 2


4. How to build an optimal PC? (data analysis project)

Jeżeli w skrócie, to jakie komponenty wybrać, żeby proporcja jakość/cena była jak największa.


5. Let computers do what they do best: introduction to Numpy


6. Publishing your work

FrightenedFox commented 2 years ago

Według mnie ostatni plan wygląda bardzo dobrze

FrightenedFox commented 2 years ago

Mam jeszcze taką ideę: zrobić test z Pythona i podać go na początku kursu i na końcu, żeby:

  1. Zobaczyć czy potrafiliśmy ich czegoś nauczyć;
  2. Pokazać im, że oni czegoś się nauczyli;
  3. Zrozumieć gdzie idzie im łatwo, a gdzie trudniej, żeby (jeżeli w następnym roku ktoś będzie powtarzał ten kurs) można było zwrócić szczególną uwagę na trudniejsze miejsca i pominąć łatwiejsze.
pgronkievitz commented 1 year ago

tak sobie teraz myślę, to można lekko zmienić temat mojej prezki - samo pakowanie to temat nudny jak flaki z olejem, wydaje mi się, że dużo lepiej będzie pokazać tooling dookoła Pythona (razem z pakowaniem przez poetry), co o tym myślicie? @FrightenedFox @finloop

FrightenedFox commented 1 year ago

tooling dookoła Pythona

Co dokładnie masz na myśli? I proszę pamiętać o tym, że masz tylko 1.5 godziny... Już 2 razy na tym potknąłem się xD (trzeciego razu nie będzie, zrobię w końcu na 1.5h)

Jak pokazuje praktyka, mieści się max 15-20 pytań na itempool.com

pgronkievitz commented 1 year ago

Co dokładnie masz na myśli? I proszę pamiętać o tym, że masz tylko 1.5 godziny... Wspomnę o tym, że jest dużo opcji, a w praktyce chciałem pokazać

  1. black
  2. pylint
  3. bardzo prosty kawałek fastapi (dosłownie jeden endpoint pokroju isEven)
  4. poetry z wypchnięciem na test.pypi.org

to totalnie powinno być do zrobienia jak zostanie czasu, to jeszcze pokazałbym jak napisać prosty test w pytestcie i tyle