Zagadnienia poruszane na zajęciach Olimpijskiego Koła Informatycznego

Lista zagadnień poruszanych na zajęciach Olimpijskiego Koła Informatycznego

Zakończenie Olimpijskiego Koła Informatycznego – czwartek, 26 maja 2022, 18:00 
Link do zajęć: https://youtu.be/MF-R2qlOWRk?t=5
Temat: Zakończenie

Dziękuję za fantastyczny rok!
– dziękuję za wysiłek, odkrywanie, wnikanie
– sukces każdego z nas
– każde zadanie które zaatakowaliśmy, zrobiliśmy, analizowaliśmy
– każdy z nas nauczył się sam – to my sami się uczymy – nie nauczyliście
– dziękuję za czas myślenia, debugowania – wtedy się uczymy
– dziękuję za samodzielne odkrywanie – internet, koledzy, discord, to jest ta nauka, to jest ten czas kiedy właśnie trwa na nasza przygoda, wycieczka rowerowa
– doświadczyliśmy przyjemnych chwil – gdy nasze zadania maja setki / dużo punktów
– ale ważne są te zadania których nie umiemy – one pokazują nam drogę, motywują
– Wy jesteście Olimpijskim Kołem Informatycznym – rozwiązujecie, poznajecie, odkrywacie
https://youtu.be/MF-R2qlOWRk?t=5

Dziękuję Tomkowi, Mikołajowi, Szymonowi – czas, wiedza, prowadzenie – tak byśmy każdego dnia byli mocniejsi
https://youtu.be/MF-R2qlOWRk?t=135

Dziękuję Rodzicom – uczymy się dla Was!
– że interesujecie się
– przyszłość tak, ale liczy się to co tu
– wystarczy raz dziennie zapytać jak poszło
– córka czy syn mogli powiedzieć zadanie, swój problem
https://youtu.be/MF-R2qlOWRk?t=175

Podziękowania Tomka:
– To wy uczyliście się ,odkrywaliście, będziecie zdobywać świat
– za uwagi / odpowiedzi
– za chęć do współpracy, pytanie, odpowiedzi
– za talent, rozumienie, macie lepsze pomysły
– rodzicom za wsparcie
https://youtu.be/MF-R2qlOWRk?t=268

Podziękowania Mikołaja
– Dziękuję każdemu kto brał udział w kółku, rozwiązywał zadania
– Każda minuta, chwila którą spędzamy nad rozwiązaniem zadań łączy się w coś większego
– Dziękuję za możliwość spotkania się twarzą w twarz.
https://youtu.be/MF-R2qlOWRk?t=363

Podziękowanie za każde zadanie:
https://youtu.be/MF-R2qlOWRk?t=3301

125 00 odsłon / 3 500 rozwiązań / … – DZIĘKUJĘ!
Statystyki:
– 125 000 odsłon wszystkich nagrań OKI na youtube
– 19 000 godzin w trakcie których były oglądane zajęcia OKI
– 1500 nowych subskrypcji na youtube
– 3 000 000 propozycji filmów OKI na kanale youtube
Każdy ma szansę
– 3 500 rozwiązań zadań wrzuconych przez uczestników OKI
– jak bardzo jesteśmy mocniejsi
– mocniejsi jesteśmy wtedy gdy sami robimy zadania
https://youtu.be/MF-R2qlOWRk?t=508

54 godziny / 32 spotkania – zajęcia Tomka Kwiatkowskiego:
– 42 kahooty
– ponad 200 zwycięzców
– ponad 300 pytań
– 123 zadania w Challenge Olimpiada OD PODSTAW
– ponad 98 000 punktów / ponad 900 zadań zrobionych
https://youtu.be/MF-R2qlOWRk?t=800

Dwa zadania z międzynarodowej olimpiady informatycznej IOI
– w trakcie zajęć / challenge
– niech się powiększa
– jesteśmy w stanie takie zadania robić!
– obyśmy się kiedyś tam znaleźli
– w tym roku w Indonezji
– najbardziej prestiżowa
– mierzmy wysoko!
https://youtu.be/MF-R2qlOWRk?t=900

Czy jest duży przeskok między Programowanie OD PODSTAW a Olimpiada OD PODSTAW:
– nie jest duży przeskok
– zmienia się to co robimy – nie skupiamy się na programowaniu a na rozwiązywanie problemów
https://youtu.be/MF-R2qlOWRk?t=1000

Pierwsze zajęcia OKI 2022/2023:
– powiemy sobie jaka będzie organizacja
https://youtu.be/MF-R2qlOWRk?t=1097

Gdzie są aktualności a propos zajęć OKI 2022/2023?
https://oki.org.pl/harmonogram-zajec/
– informacje do dotychczasowych zajęciach przejdą do archiwum
https://youtu.be/MF-R2qlOWRk?t=1782

Zapowiedź kółka Mikołaja  2022/2023
– poziom najwyższy
– przyjdź z wiedzą z C++
– olimpiadę trzeba pisać w C++
https://youtu.be/MF-R2qlOWRk?t=1240

Czy w edycji 2022/23 będzie algorytmika?
– oczywiście
– to algorytmika pozwala znaleźć lek, ekologiczny plastik
– jest sercem
– zajmiemy się też częścią heurystyczną
– czy przygotuje
https://youtu.be/MF-R2qlOWRk?t=1522

Czy OKI przygotowuje do matury?
– część algorytmiczna tak, bazy, excel, strony www – raczej nie
– ale ta część poza algorytmiczna jest łatwa
https://youtu.be/MF-R2qlOWRk?t=1568

Po co są zajęcia OKI?
– wydobyć z informatyki to co jest najciekawsze – algorytmikę
– nasza przyszłość / przygoda / dorosła część – byłą fascynująca
– nie walczymy o oceny – chcemy się dobrze bawić!
https://youtu.be/MF-R2qlOWRk?t=1878

Algorytmika jest sercem
– pozwala nam rozwiązać problem przy pomocy komputera
– dajemy największą wartość
– start-up, Google, Facebook – im pomożemy
– jest to najciekawsza przygoda
– algorytmika zawsze będzie
– uczymy się programować by wystartować w Olimpiadzie
https://youtu.be/MF-R2qlOWRk?t=1638

Statystyki Mikołaja:
– 30 kołek / 49 godzin
– 97 zadań
– 3-4 zadania tygodniowo to absolutnie minimum
– 113 osób podjęło próbę zrobienia zadań
– 168 punktów zdobytych przez uczestników
– zadanie Pociągi jako jedyne niepokonane
https://youtu.be/MF-R2qlOWRk?t=1335

Do czego nam się przydał Miś Uszatek?
– sortowania
– poznaliśmy ciekawego podejścia przyspieszające układanie misie uszatki na półce – zastosowanie algorytmiki
https://youtu.be/MF-R2qlOWRk?t=1950

Dino – nasza gra
– taka sama jak w Google Chrome
– grawitacja – nauczyliśmy się modelować a Dino grawitację
– kaktusy – krzyczał auuuuu
https://youtu.be/MF-R2qlOWRk?t=2054

Zrobiliśmy zadanie z IOI! – Międzynarodowej Olimpiady Informatycznej
– wiele z nas zrobiło
– nauczyliśmy się wykorzystywać sumy od początku – sumy prefiksowe
– już na jednych z pierwszych zajęć zrobiliśmy to zadanie
– związane z biologią DNA – możemy pomóc
– każdy z nas może zawalczyć
– wystarczą 3-4 zadania tygodniowo
https://youtu.be/MF-R2qlOWRk?t=2197

Co trzeba umieć z programowania by wziąć udział w Olimpiadzie programistycznej?
Dlaczego uczymy się programowania?
– by wziąć udział w olimpiadzie
– by przy pomocy komputera rozwiązywać problemu
– nie trzeba dużo programowania
– warunki, pętle, tablice
– warto, fantastyczna przygoda
https://youtu.be/MF-R2qlOWRk?t=2350

Zadania z USACO dotyczą krów farmera Johna
– krowy znają grafy
– wszystko może być grafem
– Graf is good!
https://youtu.be/MF-R2qlOWRk?t=2451

Było zadanie w USACO – krowy miały doktorat z fizyki kwantowej:
– do zrobienia przez każdego
https://youtu.be/MF-R2qlOWRk?t=2660

Co oznacza “każdego dnia mocniejsi”?
– lekko trudniejsze niż umiem
– powoli się rozwijać
https://youtu.be/MF-R2qlOWRk?t=2489

Tutorial OKI – Olimpijskiego Koła Informatycznego:
– programowanie
– na podstawie zajęć Tomka / Mikołaja
– część algorytmiczna
– zadania na pomysł
– po klei algorytmy
https://youtu.be/MF-R2qlOWRk?t=2532

Chcesz mieć fajną koszulkę na wakacje?
Chcesz wspomóc OKI?
– koszulki, czapeczki
https://youtu.be/MF-R2qlOWRk?t=2961

Sukces OKI – 5 na 6 złotych medalistów brało udział w OKI!
– warto brać udział w zajęciach Mikołaja i Tomka
https://youtu.be/MF-R2qlOWRk?t=3405

Warto robić zadania!
– 118 zadań Piokemona
– dało to złoto na finale OIJ
– wypracował sobie tymi zadaniami złoto!
https://youtu.be/MF-R2qlOWRk?t=3579

Olimpijskie koło informatyczne trwa!
– przed nami wielka przygoda
– 19 września 18:00
– będzie programowanie, olimpiada od podstaw
– zachęćmy kolegów i koleżanki – razem fajnie
– już niedługo!
https://youtu.be/MF-R2qlOWRk?t=3768

Wtorek, 7 czerwca, rozmowa online z Jankiem Strzeszyńskim
– zwycięzca międzynarodowej i polskiej olimpiady
– zachęcam do rozmowy jak zaczynał, czy to jest trudne, czy każdy może nie tylko marzyć ale wystartować w olimpiadzie
– jak się przygotowuje, jak robi zadanie, doświadczenie
– co dalej?
– to pierwszy film z serii
– bo olimpiada to przyszłość – rozwiazywanie problemów dla gigantów
https://youtu.be/MF-R2qlOWRk?t=3866

Zadanie wakacyjne – przed nami wakacje:
– gra połącz sąsiadująca pola
– jest czas, nie można wracać
– strona www, html
– logo
– gra na zamówienie
– nagrody
– klawiaturę, myszka, słuchawki, kamera
https://youtu.be/MF-R2qlOWRk?t=4034

Widać korelację między pracą a osiąganymi rezultatami:
– Stasiek Lada – zwycięzca OIJ
– każdego dnia mocniejsi, minimum 4 zadania tygodniowo, jest moc – tym się kierujemy
https://youtu.be/MF-R2qlOWRk?t=4261

Dziękuję wszystkim wspierającym Olimpijskie Koło Infomratyczne:
– jedna kawa miesięcznie
– Tomek, Mikołaj to woluntariusze
– utrzymanie to są koszty
– powstaje aplikacja OKI
– dziękuję dobrodziejom i darczyńcom – tworzą OKI – każdy bez względu na miejsce, status może programować, startować w olimpiadzie, zmieniać świat, zakładać start-upy, mieć przygodę
https://youtu.be/MF-R2qlOWRk?t=4315

Życzę przygody!
– odpocznijcie, nabierzcie sił
– w domu – przygotujcie się do olimpiady
– najcenniejszy zasób w życiu czas
– na co poświęcicie czas to kochacie
– rodzina, najbliżsi , przyjaciele, chorzy – poświećcie czas
– pasja, lubicie – poświęcacie czas – bez punktów czy konkretów,
– nie pozwólcie by ten czas był kradziony przez używki, żeby one zabrały Wam czas, skróciły
– ofiarujcie ten czas na to co najważniejsze, dziękuję Tomkowi i Mikołajowi
– fantastyczny rok
– do zobaczenia 19 września, 18:00
https://youtu.be/MF-R2qlOWRk?t=4414

 

Programowanie OD PODSTAW #31 – wtorek, 17 maja 2022, 18:00
Link do zajęć:
Temat: Co dalej?

Co dalej?
– uczyliśmy się programować
– jesteśmy w środku wycieczki rowerowej
– co dalej
https://youtu.be/7Dkhh98nuFw?t=14

Przykłady projektów nastolatków:
Przykłady osób które zaczęły projekty programistyczne w młodym wieku
– streszczanie artykułów
– nagrody dla graczy
– sukces gdy złamiesz nogę? – bezpieczeństwo w sieci
– rynek aplikacji mobilnych – 6 bilionów operacji
– niekoniecznie  musimy założyć własny start-up
– możemy dołączyć do zespołu
– jeśli przeznaczymy wakacje na naszą pasję będziemy ekspertami i możemy dołączyć do start-upu firmy czy grupy kolegów
– w Polsce powstają też centra R&D – potrzebna algorytmika
– kolejny gigant zakłada R&D w Polsce
– potrzebni uczestnicy olimpiad, przygoda będzie trwać, każdego dnia coś nowego
– powiemy dziś jak znaleźć pomysły na palikacje
https://youtu.be/7Dkhh98nuFw?t=79

Dlaczego warto rozwijać swoją pasję?
Dlaczego Olimpiada?
Gratulacje dla uczestników Olimpiad!
– nieważne ile mieliśmy punktów
– ważne jest to czego nauczyliśmy się
– przed nami jest R&D
– do tego prowadzi nasza wycieczka rowerowa w tórą weszliśmy we wrześni
– by mieć fantastyczną pracę, godne życie
– spędźmy wakacje wypocząć, ale też pasja
– jeśli w domu 8:00 – 14:00 pasja, potem koledzy i rower
https://youtu.be/7Dkhh98nuFw?t=364

Co robić w wakacje?
https://youtu.be/7Dkhh98nuFw?t=514

Zakończenie OKI – czwartek, 26 maja:
https://youtu.be/7Dkhh98nuFw?t=1088

Jak znaleźć pomysł na własny program? – Mateusz Łojewski:
https://youtu.be/7Dkhh98nuFw?t=1335

Czy można dołączyć do grupy programistycznej Mateusza?
https://youtu.be/7Dkhh98nuFw?t=3481

 

Olimpiada OD PODSTAW #31 – czwartek, 19 kwietnia 2022, 18:00
Link do zajęć:
Temat: Quick sort – zadanie Miś Uszatek 2

Gratulacje dla uczestników Olimpiady!
https://youtu.be/2aI_35xw-ms?t=17

Kto zrobił krok do przodu?
Porównujmy się tylko do siebie!
– porównajmy siebie do nas z początku zajęć
– co umiemy rozwiązać a co nie?
– jaki progres?
https://youtu.be/2aI_35xw-ms?t=89

Zaproszenie – zakończenie OKI:
https://youtu.be/2aI_35xw-ms?t=150

Wprowadzenie do sortowania – quiz:
– ile liczb na złych pozycjach
https://youtu.be/2aI_35xw-ms?t=442

Jakiego algorytmu sortowania używa C++?
https://youtu.be/2aI_35xw-ms?t=516

Jaka jest złożoność sortowania?
https://youtu.be/2aI_35xw-ms?t=588

Czy Tomek będzie prowadził OKI w kolejnym roku?
– raczej tak!
https://youtu.be/2aI_35xw-ms?t=1118

Omówienie zadania Miś Uszatek 2:
https://youtu.be/2aI_35xw-ms?t=1146

Jak działa Quick Sort?
https://youtu.be/2aI_35xw-ms?t=1394

Podsumowanie działania Quick Sort-a:
https://youtu.be/2aI_35xw-ms?t=1629

Jak zaimplementować quick sort w C++ / Python?
https://youtu.be/2aI_35xw-ms?t=1699
ODTAD ZACZAC

Zwiększamy efektywność Quic Sort-a:
https://youtu.be/2aI_35xw-ms?t=2297

Jaka jest złożoność Quick Sort-a?
– jedno wywołanie O(n) – przechodzi po całej tablicy
– liczba wywołań pesymistycznie n
– pesymistyczna złożoność to O(n^2)
– dlaczego używany?
– na zajęciach zajmujemy się pesymistyczną złożonością – dla najgorszych dla naszego algorytmu danych
– w życiu dane są losowe – wówczas złożoność (średnia) – to O(n^2)
https://youtu.be/2aI_35xw-ms?t=3361

Pesymistycznie vs codziennie…
Czy nie lepiej używać heap sort?
– zależy od danych
– do tej pory pomijaliśmy stałą w złożoności
– zbicie stałej w szybkim potęgowaniu to milion dolarów
– quick sort nie używa dodatkowy danych – dwie zmienne tylko
– quick sort – mega małą stała
– w średnim przypadku jest szybszy
– około 3 raz szybszy niż merge sort mimo, że merge ma pesymistyczną n logn
– dla losowych danych jednak quick jest szybszy – zamiast 3 minut minuta sortowania
– sort w C++ -> Introsort -> quicksort, jeśli za dużo operacji przerzuca się na heap sort-a, dla małych n<=13 odpala insertion sort (sortowanie przez wstawianie) – kwadratowe – insertion sort ma najmniejsza stałą (bez rekurencji)
– możemy obsłużyć 3 razy więcej klientów – ma znaczenie dla firm
– quick sort: pesymistycznie n^2, realnie n*logn
https://youtu.be/2aI_35xw-ms?t=3593

Sort z STL-a – jak szybko?
Sort z STL-a zawsze działa w nlogn:
– quicksort, heap sort lub sortowanie przez wstawianie
https://youtu.be/2aI_35xw-ms?t=3852

Po co uczymy się Quick Sort-a?
– podejście dziel i zwyciężaj – divide and conquer
– częsta technika – warto znać
https://youtu.be/2aI_35xw-ms?t=3881

Dlaczego złożoność Quick Sort jest n*logn dla optymalnego/średniego przypadku?
https://youtu.be/2aI_35xw-ms?t=3959

Po co uczymy się Quick Sort-a wersja 2?
Drugi powód dla którego warto znać Quick Sort:
– jeśli coś rozumiemy, możemy zmienić, poprawić!
– zauważyć że coś jest niepotrzebne
– rozwiązać zadanie tą metodą
– wiedzieć jak działać
– nie wystarczy znać funkcję która w Python wywołuje BFS, DFS, Dijkstrę
– jak sami znamy możemy dostosować do naszych potrzeb, ulepszyć
https://youtu.be/2aI_35xw-ms?t=4070

Kod Quick -sorta:
https://youtu.be/2aI_35xw-ms?t=4148

Challenge #31:
https://youtu.be/2aI_35xw-ms?t=4961

Cytat na pożegnanie….
https://youtu.be/2aI_35xw-ms?t=5228

 

Olimpiada DLA ZAAWANSOWANYCH #31 – poniedziałek, 16 maja 2022, 18:30
Link do zajęć:
Temat: 2-SAT

2-SAT
https://youtu.be/_De2eKd6BGI?t=1101

Dowcip matematyczny:
– czy studenci umieją sobie wyobrazić przestrzeń 8-mio wymiarową
– wystarczy wyobrazić sobie przestrzeń n-wymiarową i podstawić 8!
https://youtu.be/_De2eKd6BGI?t=1108

Co to jest K-SAT?
K-SAT – co to jest?
https://youtu.be/_De2eKd6BGI?t=1156

Krótkie podsumowanie co to K-SAT:
https://youtu.be/_De2eKd6BGI?t=1330

K-SAT problemem otwartym dla K>=3:
– problem NP-trudny
– 2-SAT może być rozwiązany wielomianowo
– nagrody milionów dolarów
– dobry temat na prace naukowe / badawcze
– może uda się sprowadzić do problemu komiwojażera lub innego problemu wiadomego NP
– hipoteza NP = P
https://youtu.be/_De2eKd6BGI?t=1365

Przykładowy 2-SAT:
https://youtu.be/_De2eKd6BGI?t=1620

Tworzymy graf zależności 2-SAT:
https://youtu.be/_De2eKd6BGI?t=2113

Wszystkie wartości na jednym cyklu muszą być jednakowe:
– wynika to bezpośrednio z własności implikacji
– czyli znajdujemy silnie spójne składowe
https://youtu.be/_De2eKd6BGI?t=2560

Zmienna i jej negacja nie mogą być w silnie spójnej:
– nie da się rozwiązać
https://youtu.be/_De2eKd6BGI?t=2650

Szukamy kolejnych warunków na sprzeczności:
https://youtu.be/_De2eKd6BGI?t=2700

Wystarczy sprawdzić czy w jednej spójnej nie ma zmiennej i jednej negacji
– wówczas 2-SAT można spełnić – ma rozwiązanie
https://youtu.be/_De2eKd6BGI?t=2887

Kod 2-SAT jest bardzo prosty!
– pseudokod rozwiązania
https://youtu.be/_De2eKd6BGI?t=3280

Zadanie: E. The Road to Berland is Paved With Good Intentions
https://youtu.be/_De2eKd6BGI?t=3639
Link do zadania:
https://codeforces.com/problemset/problem/228/E

Zadanie Aslfalt:
https://youtu.be/_De2eKd6BGI?t=3928

Kod 2-SAT:
https://youtu.be/_De2eKd6BGI?t=5749

Kolejne zajęcia: HLD / Centroidy!
https://youtu.be/_De2eKd6BGI?t=5934

 

Olimpiada DLA ZAAWANSOWANYCH #30 – poniedziałek, 9 maja 2022, 18:30
Link do zajęć: https://youtu.be/7ZI1Hm5VBSE?t=368
Temat: Teoria gier v2

Drzewo Fenwicka – zalety
Kahoot – Drzewo Fenwicka
Ile pamięci potrzebuje drzewo Fenwicka (n)?
– jaka jest złożoność (logn)?
https://youtu.be/7ZI1Hm5VBSE?t=368

Co daje twierdzenie Sprague’a-Grundy’ego – co jest wymagane?
– umie nam pokonać każdą grę jakkolwiek nie zdefiniowaną – sensowną, symetryczną
https://youtu.be/7ZI1Hm5VBSE?t=1164

Co będzie do końca roku?
– 2-SAT
– Centroidy
– tematy pod finał
https://youtu.be/7ZI1Hm5VBSE?t=1221

Twierdzenie Sprague’a-Grundy’ego
– 4 własności
– skończona / szachy / jeśli 60 ruch bez zbicia bierki skończona – zasady turniejowe
– normalna – przegrywa ten kto nie ma ruchu / szachy / szach-mat
– bezstronna – każdy ma taką sama pulę wyboru
– skończona liczba możliwości ruchów z każdej pozycji
https://youtu.be/7ZI1Hm5VBSE?t=1622

Czy grałeś kiedyś w taką grę?
https://youtu.be/7ZI1Hm5VBSE?t=1932

Czemu twierdzenie Sprague’a-Grundy’ego jest potężne?
https://youtu.be/7ZI1Hm5VBSE?t=2044

Co to jest MEX?
– minimum excluded
https://youtu.be/7ZI1Hm5VBSE?t=2168

Kiedy można wygrać grę?
https://youtu.be/7ZI1Hm5VBSE?t=2254

Gra Nim
– kamienie na stosie
https://youtu.be/7ZI1Hm5VBSE?t=2453

Co oznacza strategia wygrywająca?
https://youtu.be/7ZI1Hm5VBSE?t=2918

Zadanie Misie Patysie:
https://youtu.be/7ZI1Hm5VBSE?t=3250

 

Olimpiada OD PODSTAW #30 – czwartek, 12 kwietnia 2022, 18:00
Link do zajęć: https://youtu.be/GG1bZzJI73U?t=782
Temat: Quizy, strategia przed konkursem, finałem

Quiz algorytmiczny – początek
Ile maksymalnie liczb może mieć n w rozkładzie na czynniki pierwsze?
– co najmniej dwójka – dzielimy przez 2 – nie więcej niz log2(n)
https://youtu.be/GG1bZzJI73U?t=782

Jak sprawdzić czy liczba jest pierwsza?
https://youtu.be/GG1bZzJI73U?t=1002

Jak przejść z A do B na planszy?
– niektóre pola zablokowane
– dynamik
– sprawdzenie wszystkich możliwości
https://youtu.be/GG1bZzJI73U?t=1316

Które obserwacja są prawidłowe?
Znajdujemy spójny podciąg
– które obserwacje są prawidłowe?
https://youtu.be/GG1bZzJI73U?t=1647

Jak rozwiązywać zadania?
Najważniejsza część rozwiązania zadania
– obserwacje
– znajdować / zapisywać
https://youtu.be/GG1bZzJI73U?t=1725

Prawidłowa obserwacja:
– n^2 prawidłowych podciągów – n początków i n końców
https://youtu.be/GG1bZzJI73U?t=1748

Jak stwierdzić czy obserwacja jest dobra?
– próbujemy znaleźć kontrprzykład – wtedy zła
– w ten sposób eliminujemy obserwację, że
* nie opłaca się brać ujemnych wartości
* opłaca się brać jeden element z brzegi
* warto posortować cią
https://youtu.be/GG1bZzJI73U?t=1790

Sprawdzać wiele przykładów
– weryfikuję obserwacje
https://youtu.be/GG1bZzJI73U?t=1960

Jak znaleźć podciąg o największej sumie?
– sumy prefiksowe – liczby ujemne – gąsienica odpada
https://youtu.be/GG1bZzJI73U?t=2107

Dlaczego gąsienica się nie sprawdzi przy obliczeniu maksymalnego ciągu?
– liczby ujemne
https://youtu.be/GG1bZzJI73U?t=2155

Jak można było wpaść że gąsienica się nie sprawdzi?
– analizujemy przykład
– może być krótki – 6-7 liczb
– próbujemy ta gąsienicę
https://youtu.be/GG1bZzJI73U?t=2197

Dlaczego sumy prefiksowe znajdą rozwiązanie?
https://youtu.be/GG1bZzJI73U?t=2297

Problem na następne 5 pytań – Binary Search po wyniku:
– mamy dane współrzędne stacji nadawczych i domów?
– jaki jest minimalny R stacji nadawczych?
https://youtu.be/GG1bZzJI73U?t=2528

Które obserwacje są prawdziwe – Binary Search po wyniku:
– jeżeli R jest ok to R+1 jest ok
– jest sens by dom otrzymał sygnał z najbliższej stacji
– czy stacja między sąsiednimi domami będzie dawać sygnał dla tych domów
https://youtu.be/GG1bZzJI73U?t=2810

Zadania można zrobić na wiele sposobów!
– Jak można rozwiązać to zadanie?
– Binary Search po wyniku
– BFS
– Gąsienica – obserwacja że z najbliższego lewego albo prawego nadajnika
– R minimalny dla każdego domu i bierzemy największy
https://youtu.be/GG1bZzJI73U?t=3300

BFS – jak znaleźć minimalną drogę w labiryncie
– dlaczego nie DFS?
https://youtu.be/GG1bZzJI73U?t=4420

Odd divisor – pomysł na zadanie
Odd divisor – omówienie pomysłu na zadanie
– powiedzieć czy ma dzielnik nie parzysty
– dzielimy przez 2 – jeśli potęga dwójki NIE, inaczej TAK
https://youtu.be/GG1bZzJI73U?t=4704

Ciasta – pomysł na zadanie
Ciasta – omówienie pomysłu na zadanie:
https://youtu.be/GG1bZzJI73U?t=4870

Plakatowanie – pomysł na zadanie
Zadanie plakatowanie
– I etap OI-a – wysoki poziom
https://youtu.be/GG1bZzJI73U?t=5348

Quiz STRATEGIA
Co robić dzień przed konkursem?
– wyspać się!
– spacer
https://youtu.be/GG1bZzJI73U?t=6249

NIE uczymy się NOWYCH algorytmów dzień przed!
– ten nowy algorytm będzie świeży i będzie próbował wcisnąć wszędzie
– co innego znane algorytmy – te można sobie odświeżyć
https://youtu.be/GG1bZzJI73U?t=6350

Warto przypomnieć sobie algorytmy dzień przed:
– podczas spaceru pomyśleć czym był binary search, zadanie
https://youtu.be/GG1bZzJI73U?t=6455

Gdzie Tomek idzie na studia?
– UW / Informatyka
https://youtu.be/GG1bZzJI73U?t=6541

Co robić podczas konkursu?
Co robimy podczas trwania finału?
https://youtu.be/GG1bZzJI73U?t=6766

Dlaczego nie warto myśleć czy moja liczba punktów wystarczy na finalistę?
– na finale jesteśmy my zadania i tyle
– jak najwięcej zadań chcemy rozwiązać
– myślenie o innych nic nie daje
– niech inni myślą o sobie
– napiszmy na tyle ile potrafimy
https://youtu.be/GG1bZzJI73U?t=6772

Porównywanie się z innymi nie ma sensu:
– powoduje dyskomfort w stosunku do lepszych
– w stosunku do gorszych – nie będziemy się rozwijać
https://youtu.be/GG1bZzJI73U?t=6842

Jest jedna osoba do której można się porównywać!
– ja sam sprzed pół roku, roku, 5 lat
– poznałem C++, dynamiki, …
https://youtu.be/GG1bZzJI73U?t=6884

Treści zadań:
– czytamy wszystkie zadania
– patrzymy na limity, przykłady
– patrzymy na szczegóły
– wybieramy najłatwiejsze
https://youtu.be/GG1bZzJI73U?t=6954

Robimy zadania od najłatwiejszego!
https://youtu.be/GG1bZzJI73U?t=7176

Co gdy nie mam pomysłu na zadanie?
– toaleta, przejść się,
– mózg wpada na inne tory
https://youtu.be/GG1bZzJI73U?t=7242

Co gdy mam pomysł?
Co gdy umiem zrobić zadanie?
– nie odkładamy
– dobrze opracuj algorytm
https://youtu.be/GG1bZzJI73U?t=7451

Walczymy do końca!
– wiele osób dostało w ostatnich sekundach +100
https://youtu.be/GG1bZzJI73U?t=7675

Kiedy warto przestawić się na inne zadanie?
– gdy nie mam pomysłu
– po 15 minutach
– jeśli widzę że dam radę cos wymyśleć – robię to zadanie
https://youtu.be/GG1bZzJI73U?t=8380

Ile razy w życiu Tome grał w Tetrisa?
https://youtu.be/GG1bZzJI73U?t=8619

Co Tomek pisał na maturze?
– polski – mam nadzieję na 30%+
– angielski – liczy na blisko maxa
– fizyk
https://youtu.be/GG1bZzJI73U?t=8627

Ile czasu Tomek poświęcał na naukę do OI-a?
– 4-5 zadań tygodniowo
– 2-3h tygodniowo
– jeśli bawi poświęcić się!
https://youtu.be/GG1bZzJI73U?t=8673

Co to są zadania interaktywne?
– były na OI
– nie dają wejścia standardowego
– musimy napisać funkcję
https://youtu.be/GG1bZzJI73U?t=8740

Czego Tomek nie lubi z fizyki?
– drgania, fale, magnetyzmu
– dynamika, bryły, ciecze, astronomia ok
https://youtu.be/GG1bZzJI73U?t=8842

Życzenia, powodzenia:
– otwartych umysłów
– niech lepiej Wam pójdzie niż myślicie
https://youtu.be/GG1bZzJI73U?t=8900

Co jeśli ktoś się stresuje?
– spacer, wdech/wydech, uspokoi tętno
– drobny stres mobilizuje, zbyt duży przeszkadza
– nie napędzać tego stresu
– myślenie o punktacji stresuje
https://youtu.be/GG1bZzJI73U?t=9008

 

Sztuczna inteligencja OD PODSTAW #1 – wtorek, 10 maja 2022, 18:00
Link do zajęć: https://youtu.be/UtChFU2loWk?t=18
Temat: Uczymy sieć neuronową

Komputer czy kalkulator?
Tradycyjne podejście – komputer wykonuje nasze polecenia
– do tej pory komputer to był kalkulator
– robił nasze polecenia
– nie miał żadnej inteligencji
https://youtu.be/UtChFU2loWk?t=18

Poznać świat!
Człowiek chce poznać świat!
– od zarania dziejów chcemy poznać historię świata
– gorączka to choroba
– zmieniamy reguły – Kopernik zmienił postrzeganie zmieni
https://youtu.be/UtChFU2loWk?t=60

Czy komputer może uczyć się jak człowiek?
– Od samego urodzenia się uczymy
– czy komputer może tak samo?
– czy musimy mu powiedzieć reguły? temperatura 39 stopni to gorączka
– czy on sam może do tego dojść?
– tak może do tego sam dojść
– zobaczymy dziś, że komputer może sam się nauczyć
– czego? rozpoznawania znaków!
https://youtu.be/UtChFU2loWk?t=101

Gdzie sztuczna inteligencja?
Gdzie jest stosowana sztuczna inteligencja / sieci neuronowe?
– klasyfikacja
– ile widać muffinków a ile psów chihuahua?
– czy dana osoba spłaci kredyt czy nie?
– klasyfikacja ogórków – jeden z naukowców zrobił sztuczną inteligencję dla swoich rodziców czy ogórki nadają się do sklepu czy nie?
https://youtu.be/UtChFU2loWk?t=136

ile widać muffinków a ile psów chihuahua?
https://youtu.be/UtChFU2loWk?t=144

Sztuczna inteligencja może nam powiedzieć
– ile będzie kosztował hotel?
– ile będzie kosztował samochód?
– rozmawiać z nami – droga, jak się ubrać
https://youtu.be/UtChFU2loWk?t=204

Sieć neuronowa potrafi grać w gry!
– AlphaStar sieć DeepMind – gra w grę Starcraft II
– podejmuje decyzje szybciej od człowieka co 20 ms
– nauczyła się sama
– szachy – programy komputerowe są lepsze od graczy
– Wydawało się że komputer nigdy nie wygra w go
– AphaZero firmy DeepMind – pokonała najlepszego gracza
– zrobiła ruch który był kreatywny
– niezgodny z kanonem zasad podstawowych – tego czego uczy się graczy
– wydawało się że popełniła błąd – wszyscy mówili teraz już przegra
– po 4 ruchach okazało się że ruch był genialny – dał jej zwycięstwo
– kreatywna w naszym rozumieniu!
https://youtu.be/UtChFU2loWk?t=234

Sieć neuronowa
– twarz która nie istnieje
– tworzą obrazy, teksty, komentarze, obrazy
– tygrysek który zrobił mój uczeń
– w kolejnym roku będziemy generować takie rzeczy
– na kursie programowanie od podstaw lub dedykowanym kursie
– dlaczego niewyraźny obrazek tygrysa? – mała moc w jego komputerze
https://youtu.be/UtChFU2loWk?t=301

Przyszłość jest nasza!
– tworzenie sieci neuronowych nie jest trudne, daje fun, daje możliwości, pomaga
– jeśli kochamy programowanie, rozwiązywanie problemów przy pomocy komputera – zapraszam, wakacje, każda sekunda, sami poszukajmy, odkrywajmy
– od września będziemy się tym zajmować
– przyszłość jest nasza, mierzmy wysoko
https://youtu.be/UtChFU2loWk?t=379

Czwartek – spotkanie z Tomkiem
– quizy algorytmiczne
– warto rozwiązywać problemy
– za siecią neuronową kryje się matematyka
https://youtu.be/UtChFU2loWk?t=421

W czwartek o 18:00 MAP
– na kanale MAP algorytmika zaawansowana
– prowadzi Kamil Dębowski / Errichto – najlepszy algorytmik w Polsce
https://youtu.be/UtChFU2loWk?t=462

III etap w sobotę  – przygotuj środowisko
https://youtu.be/UtChFU2loWk?t=497

Co dalej? – Zajęcia z Mateuszem
Zapowiedź zajęć za tydzień
– Mateusz powie o swoich projektach
– aktywny w swoim technikom
– prowadzi koła, pisze aplikacje
– powie jak się zorganizować
– nasz temat to jest co dalej?
– umiemy programować, jak to wykorzystać
– to musie mieć sens, musi wziąć udział w realnych projektach
– Matuszowi się to udało
– podzieli się swoim doświadczeniem
– ja też pewne rzeczy podpowiem
https://youtu.be/UtChFU2loWk?t=637

Quiz wstępny – sztuczna inteligencja – jak człowiek się uczy
https://youtu.be/UtChFU2loWk?t=742

Czy wszystko umiemy od momentu urodzenia?
– oczywiście nie
– po polsku nie, tabliczki mnożenia
https://youtu.be/UtChFU2loWk?t=749

Jak człowiek się uczy?
– korygujemy złe odpowiedzi
– tabliczka mnożenia
– powtarzając – wiersz
– jeśli mamy poprawną odpowiedź to nie korygujemy
https://youtu.be/UtChFU2loWk?t=828

Nasz mózg składa się z neuronów
– 100% poprawnych odpowiedzi!
https://youtu.be/UtChFU2loWk?t=890

Zadanie Znaki Drogowe – tworzymy sieć neuronową
– rozróżniamy znaki drogowe
https://youtu.be/UtChFU2loWk?t=1033

Kod / omówienie / linki:
https://oki.org.pl/znaki-drogowe-v1

Nasza sieć neuronowa ma rozróżniać znaki drogowe:
– pokazać
https://youtu.be/UtChFU2loWk?t=1130

Po co sieć neuronowa?
– pokazać
– widać jaki znak zakazu
– samochód autonomiczny musi rozpoznawać znaki
– łączymy sieci neuronowa – jedna pokaże szerokość i wysokość, kolejna rozpozna co to reprezentuje
https://youtu.be/UtChFU2loWk?t=1149

To od razu widać, że jeśli wysokość większa to ciężarówka a jeśli szerokość większa to ciężarówka.
– pokazać
– jasne
– ale sieć musi się nauczyć
– tak samo nauczy się sieć dla bardziej skomplikowanych przypadków
– a ten jest prosty by zrozumieć
https://youtu.be/UtChFU2loWk?t=1207

Dlaczego robimy sieci neuronowe?
O co chodzi w sieciach neuronowych?
Dlaczego nie napiszemy po prostu programu?
Czy możemy użyć  po prostu warunku if / jeżeli
– pokazać
– pytanie kaliny
– jeśli wysokość większa to ciężarówka a jeśli szerokość większa to ciężarówka
– ale wtedy naszą wiedz przeniesiemy na komputer
– ale my nie chcemy przenosić naszej wiedzy na komputer
– chcemy żeby sieć neuronowa sama się nauczyła
– dajemy jej ileś przykładów i ma się nauczyć a potem sama rozpoznawać
– dlaczego tak chcemy – przecież to proste – dla innych problemów, wielu znaków, dla problemów których nie znamy odpowiedzi, ona ma nam dać odpowiedź (rasy psów, zdolność kredytowa)
– ona ogarnie coś czego my nie zrobimy, przewidzi pewne wartości
– nie chcemy if-ów, nie chcemy przelać naszej wiedzy
– chcemy by do tej wiedzy doszła sama – na prostym przykładzie – na trudniejszych też dojdzie sama
– ona sama ma się nauczyć
https://youtu.be/UtChFU2loWk?t=1301

Jak rozwiążemy nasz problem?
– rozwiążemy sami
– stworzymy sieć neuronowa
– nauczymy
– sprawdzimy dla innych danych
– zobaczymy że pod spodem jest matematyka
https://youtu.be/UtChFU2loWk?t=1413

Matematyka!
Pod spodem jest matematyka
– pokazać
– zachęcam
– jest fascynująca, piękna
– sieć neuronowa to czysta matematyka
https://youtu.be/UtChFU2loWk?t=1433

Neuron – jak działa?
– odpowiednia moc dendrytów daje jedynkę na wyjściu
https://youtu.be/UtChFU2loWk?t=1470

Jak działa perceptron dla naszego przykładu?
– na wejściu dostaje wysokość / szerokość
– na wyjściu musi powiedzieć jaki znak jest: ciężarówka czy samochód
– wejścia mnożymy przez wagę

https://youtu.be/UtChFU2loWk?t=1572

Dobieramy wagi ręcznie:
– wagi to 1 oraz -1 by dobrze rozpoznawał / odróżniał człowieka od ciężarówki
– człowiek ma większą wysokość i jest dodatni to ma być 1 na wysokości
https://youtu.be/UtChFU2loWk?t=2028

Jeśli naszej sieci damy wagi 1/ -1 to będzie rozróżniać wagi
– pokazać
– bez ifów
– sam wie
https://youtu.be/UtChFU2loWk?t=2182

Co jest naszym problemem?
Co jest naszym problemem  – dobór wag
Chcemy by sieć sama doszła do tych wag!
– pokazać
– nie chcemy dawać jej tych wag
– my chcemy by sam się nauczył
– rozwiązaniem naszego problemu jest dobór wag
– mamy dwie możliwości – albo powiemy mu te wagi 1/-1 albo powiemy, stary naucz się sam
https://youtu.be/UtChFU2loWk?t=2274

Uczymy nasz komputer
– Zaczynamy od przypadkowych wag
– komputer uczy się
– nawet złych /odwrotnych
– nie wiemy co ma być, dajemy losowo
– uczymy się przy pomocy arkusza kalkulacyjnego
https://youtu.be/UtChFU2loWk?t=2342

Na czym polega uczenie sieci neuronowej?
– pokazać
– dobranie wag
– sama nie zgadnie
– dajemy jej dane do uczenia
– dla tych danych człowiek / dla tych ciężarówka
– tak jak my się uczymy tabliczki mnożenia / 6*3 / 7*5
https://youtu.be/UtChFU2loWk?t=2493

Jak sieć radzi sobie dla początkowych wag?
– krok po kroku
https://youtu.be/UtChFU2loWk?t=2559

Pierwszy test od razu źle
– pokazać / radość
– dla człowieka ujemnie / cięzarówka
– o kurczę będzie jazda
https://youtu.be/UtChFU2loWk?t=2680

Nie jest łatwo być nauczycielem!
Pierwszy test od razu źle
– pokazać / radość
– o kurczę będzie jazda
– jak dla tabliczki mnożenia 6*3 = 10 to będzie jazda
– tu tak samo jak dla 6 i 3 widzisz ciężarówkę to dobrze nie wygląda
https://youtu.be/UtChFU2loWk?t=2691

Sieć neuronowa nareszcie coś się udało
– pokazać / radość
– przyjechał znak ciężarówki – i rozpoznała ciężarówkę
– jest jakaś nadzieja – może nauczymy tą osobę tej tabliczki mnożenia
https://youtu.be/UtChFU2loWk?t=2804

Radość z nauki sieci:
https://youtu.be/UtChFU2loWk?t=2843

Jest źle – musimy uczyć sieć
– radość / pokazać
– sieć nie takie wagi
– będziemy się uczyć powtarzając dane testowe
https://youtu.be/UtChFU2loWk?t=2914

Jak uczymy sieć?
– uczymy się tylko dla złych przypadków
– wejście mnożymy razy szybkość uczenia – zmianę
– wagę zwiększamy o zmianę
– była -10 a nowa waga będzie -8.4 by bardziej dawała dodatnie wartości
https://youtu.be/UtChFU2loWk?t=3056

Podsumowanie uczenia dla człowieka
– modyfikujemy wagi – na tym polega uczenie
– dla tej złej odpowiedzi
– zmianę wagi dodaje do poprzedniej wagi
– zmiana to wejście razy szybkość uczenia
https://youtu.be/UtChFU2loWk?t=3231

Jedna waga poszła w dobrą stronę druga w złą
https://youtu.be/UtChFU2loWk?t=3454

Jedna waga już nam się nauczyła po dwóch testach
– waga wysokości jest dodatnia!
– z -10 na 8.4
– ale druga waga idzie w złą stronę
https://youtu.be/UtChFU2loWk?t=3541

Dane treningowe poprawiają bardziej dobrą wagę wysokości niż złą wysokości
– z -10 na 8.4 – waga wysokości poszła na dobrą stronę
– z 7 na 13 dla szerokości – minimalnie w złą stronę szerokość
– wysokość człowieka jest duża powoduje, że waga wysokości szybko się uczy, zwiększa swoją wartość
– szerokość człowieka też się zwiększa ale mało, bo szerokości człowiek ma małe – ta waga jest nieistotna dla człowieka
– sieć neuronowa zmienia wagi w stronę dobrych wartości!
https://youtu.be/UtChFU2loWk?t=3628

Jak uczymy sieć dla ciężarówki?
– jeśli zły wynik (dodatni) to musimy odejmować zmianę
https://youtu.be/UtChFU2loWk?t=3752

Dlaczego sieć uczy się na ciężarówce?
– bo waga szerokości która decyduje o ciężarówce jest bardziej zmieniana w dół, ma większe wartości
https://youtu.be/UtChFU2loWk?t=4010

Jesteśmy nauczycielem i odpytujemy sieć czy jest dobrze?
– pokazać
https://youtu.be/UtChFU2loWk?t=4527

Tylko trochę źle
– pokazać  / radość
– w tej tabliczce mnożenia minimalne się pomyliła!
https://youtu.be/UtChFU2loWk?t=4602

Uczymy się tylko na błędach:
https://youtu.be/UtChFU2loWk?t=4775

Wszędzie odpowiada dobrze!
– pokazać / radość
– nasza sieć nauczyła
– analizujemy wszystkie przypadki
https://youtu.be/UtChFU2loWk?t=4803

Nasza sieć sama doszła do dobrych wag!
– pokazać radość
– po 3 epokach
– prostym neuronem
– sama nauczyła się rozróżniać ciężarówkę od człowieka
– nie powiedzieliśmy jej jak to robić
– ona sama się nauczyła!
– po 3 epokach / powtórzeniach wiersza
– ale my zgadliśmy inne wagi
– ale jest dużo dobrych rozwiązań
– startowała od bardzo złych wag – odwrotnych niż dobre
– a doszła sam do dobrych waga
– bez ifów
– może takie uczenie napisać w dowolnych językach programowania
https://youtu.be/UtChFU2loWk?t=4841

Czysta radość z nauczenia sieci neuronowej!
– pokazać!
https://youtu.be/UtChFU2loWk?t=4859

Zaczynamy od małych losowych wartości:
https://youtu.be/UtChFU2loWk?t=4970

Interpretacja matematyczna:
– rysujemy nasze obiekty na osi szerokość / wysokość
– oddzieliśmy prostą wys-szer = 0
https://youtu.be/UtChFU2loWk?t=5048

Siecią neuronową znaleźliśmy parametry równania matematycznego który rozdziela punkty:
https://youtu.be/UtChFU2loWk?t=5368

Matematyka!
– pokazać
– Jaki jest dla nas wniosek?
– sieci neuronowe to czysta matematyka
– mieliśmy zbiór danych / znaleźliśmy równanie
– idealne połączenie matematyki i informatyki- równanie i znalezienie jego parametrów
– oczywiście wolimy mówić o neuronie / rozpływać się
– ale prawda jest taka, że jest to równanie matematyczne
https://youtu.be/UtChFU2loWk?t=5386

Dane treningowe / uczące się a dane testowe
– musimy mieć inne dane – testowe – inne niż uczące
– zbliża się wagami do treningowych – a sprawdzamy na testowych
– sprawdzamy na testowych
https://youtu.be/UtChFU2loWk?t=5452

Zrobiliśmy prawdziwy neuron!
– pokazać
– więcej neuronów
– każdy działa tak samo
– dodajemy pewną stałą
– tak samo uczymy
https://youtu.be/UtChFU2loWk?t=5698

Od września bawimy się dużymi sieciami neuronowymi
– pokazać
– generować obrazki!
– głęboko sieć
– warstwy mają sens
– oceniając hotel jedna warstwa daje ocenę za odległość od plaży, druga za jedzenie, itp.
https://youtu.be/UtChFU2loWk?t=5817

Wnioski
– pokazać
– zrobiliśmy prawdziwą sieć – prostą ale prawdziwą – każda inna uczy się tak samo
– sama się nauczyła – nie ma if-ów
– możemy odwzorować wszystko!
– sama się uczy
– musi być odpowiednia liczba danych treningowych
https://youtu.be/UtChFU2loWk?t=5859

Czysta matematyka – przyszłość, odkrywanie, super sieci neuronowe
– pokazać
https://youtu.be/UtChFU2loWk?t=5869

Musimy uwzględnić wszystkie rzeczy które są istotne do nauki, decyzji
– nie możemy pominąć wysokości i brać samą szerokość
https://youtu.be/UtChFU2loWk?t=5938

Różnica między algorytmem a siecią neuronową
– pokazać
– dużo danych treningowych
– wszystkie istotne parametry
– mogą być nieistotne  -da zerowe wagi
https://youtu.be/UtChFU2loWk?t=5975

Jakie powinny wartości wag na początku?
https://youtu.be/UtChFU2loWk?t=6055

Wniosek Kaliny – jak się uczymy?
– pokazać
– zmniejszamy / zwiększamy wagi aż dojdziemy do doskonałości
https://youtu.be/UtChFU2loWk?t=6082

Nasze komentarze odnośnie sztucznej inteligencji
– pokazać
https://youtu.be/UtChFU2loWk?t=6140

Jestem podekscytowany naszymi zajęciami od września
– pokazać
– będziemy tworzyć sieci neuronowe
– dobierać współczynnik uczenia
– co trzeba zrobić by zaprojektować dobre sieci neuronowe
https://youtu.be/UtChFU2loWk?t=6165

Dziękuję za wszystkie gry Dino – quiz!
– pokazać
https://youtu.be/UtChFU2loWk?t=6338

Dziękuję za piękne neurony – quiz!
– pokazać
https://youtu.be/UtChFU2loWk?t=6476

Wiersz Kaliny
– pokazać
https://youtu.be/UtChFU2loWk?t=6584

Zapraszam na zajęcia – Co dalej?
– pokazać
https://youtu.be/UtChFU2loWk?t=6767

Fantastyczny wniosek Kaliny
– inspirowane naszym mózgiem
– przenieśliśmy biologię do komputera
https://youtu.be/UtChFU2loWk?t=6816

Quiz sieć neuronowa:
https://youtu.be/UtChFU2loWk?t=6893

Rozróżniamy szklankę od spodka -quiz kahoot:
https://youtu.be/UtChFU2loWk?t=6969

Jakie wagi dajemy początkowo dla sieci neuronowej?
https://youtu.be/UtChFU2loWk?t=7381

Uczymy się tylko na błędnych odpowiedziach!
– pokazać
– my też uczymy się na błędach
– tak samo uczy się sieć neuronowa
– 100% poprawnych odpowiedzi
– jesteśmy ekspertami
https://youtu.be/UtChFU2loWk?t=7396

Jak modyfikujemy wagi?
– kiedy dodajemy kiedy odejmujemy wartości od wag?
– przykład spodka / szklanki
https://youtu.be/UtChFU2loWk?t=7454

Dlaczego sieć neuronowa się uczy?
– odejmuję dla złych dodatnich wartości – dlaczego?
– wagi przyciągane w stronę poprawnych wartości
– każda waga się zmniejszy – waga która powinna ujemna bardziej bo jest większa dla złych wartości
https://youtu.be/UtChFU2loWk?t=7528

Czy trzeba mieć wszystkie decydujące wartości na wejściu
– sama wysokość nie wystarczy
https://youtu.be/UtChFU2loWk?t=7603

Co jeśli uwzględnimy za dużo parametrów?
– więcej liczenia / testów potrzebnych / dłuższe liczenie
– specjalne komputery
https://youtu.be/UtChFU2loWk?t=7718

100% poprawnych odpowiedzi!
– jak się uczy sieć neuronowa
– dąży wagami w stronę poprawnych odpwoiedzi
https://youtu.be/UtChFU2loWk?t=7870

Dlaczego sieć neuronowa działa?
– jeśli mamy człowieka dodajemy, ciężarówka odejmujemy
– wytłumaczenie dokładne
– uczymy się na błędach
– w stronę dobrych wyników
https://youtu.be/UtChFU2loWk?t=8015

Co gdyby było więcej wag?
– liczymy tak samo
https://youtu.be/UtChFU2loWk?t=8077

Czy to co zrobiliśmy zawsze daje dobre wyniki
– minimalizacja funkcji
– małymi krokami
– duży współczynnik – nie znajdujemy
– znajdujemy minimum funkcji
https://youtu.be/UtChFU2loWk?t=8203

Challenge Sztuczna inteligencja OD PODSTAW!
https://youtu.be/UtChFU2loWk?t=6716

 

Olimpiada OD PODSTAW #29A – czwartek, 6 maja 2022, 18:00
Link do zajęć:
Temat: Dwa zadania z finałów

Zapowiedź zajęć 12 maja
– quizy przed finałem, strategia
– pomysł na zadania z challenge
https://youtu.be/JJzOAD4SBpc?t=87

Zapowiedź zajęć sztucznej inteligencji!
https://youtu.be/JJzOAD4SBpc?t=235

Pakowanie plecaka – kahoot – różnica między algorytmem zachłannym a dynamicznym
https://youtu.be/JJzOAD4SBpc?t=320

Wytłumaczenie plecaka – pakowanie – pytanie kahoot o maksymalną wartość w plecaku
Początek pytania: https://youtu.be/JJzOAD4SBpc?t=546
Początek omówienia: https://youtu.be/JJzOAD4SBpc?t=640

Piramida liczbowa – III etap, X OIG, zawody drużynowe:
https://youtu.be/JJzOAD4SBpc?t=1243

Kod / linki / omówienie:
https://oki.org.pl/piramida

Gdy nie można czegoś zrobić jesteśmy kreatywni!
– nie ma struktury w Pythonie?
Tomek musiał pomyśleć!
I wymyślił!
https://youtu.be/JJzOAD4SBpc?t=1790

Jak rozwiązać zadanie Piramida liczbowa?
– obracamy piramidę
https://youtu.be/JJzOAD4SBpc?t=1835

Pierwszy pomysł Tomka
– liczby układają się w prostokąty
– rozmiary prostokątów da się obliczyć – możemy obliczyć odległość najbliższą większa na prawo i na lewo
– można to zrobić przy pomocy set – czas O(n*logn)
– kolejką monotoniczną – czas O(n)
https://youtu.be/JJzOAD4SBpc?t=2000

Szybsze i prostsze rozwiązanie
– pamiętamy na stosie liczby które są maksymalne w dół oraz ich ilość
– tak naprawdę kolejka monotoniczna
https://youtu.be/JJzOAD4SBpc?t=2155

Pamiętamy sumę liczb na stosie
– dlaczego pamiętamy tylko jeden wiersz?
https://youtu.be/JJzOAD4SBpc?t=3127

Analizujemy cały nasz algorytm od początku
– Musimy trzymać sumę wszystkich liczb na stosie – zmienna suma
https://youtu.be/JJzOAD4SBpc?t=3246

Pseudokod naszego algorytmu:
https://youtu.be/JJzOAD4SBpc?t=3896

Jaka jest złożoność naszego algorytmu?
https://youtu.be/JJzOAD4SBpc?t=4000

Omówienie kodu zadania Piramida:
https://youtu.be/JJzOAD4SBpc?t=4324

Strażnik
– Dlaczego na początku stosu znajduje się duża liczba?
– Nie musmy sprawdzać czy stos nie jest pusty
– Ta liczba jest większa od każdej używanej – nigdy jej nie uwzględnimy, nie zjemy
https://youtu.be/JJzOAD4SBpc?t=4418

Uwaga na konwersje typów w C++
– dajemy rzutowanie
https://youtu.be/JJzOAD4SBpc?t=4552

Omówienie zadania Sejf:
https://youtu.be/JJzOAD4SBpc?t=5440

Kod / linki / omówienie:
https://oki.org.pl/sejf

Jak rozwiązywać zadania?
– liczby są po kolei w wierszach / kolumnach
– wystarczy narysować!
Wzorcowe rozwiązanie zadania:
Zadania można zrobić techniką na później
– każde pole jest definiowane jednoznacznie przez numer wiersza / kolumny
– zapamiętujemy które wiersze czy kolumny zostały zmienione
– zapamiętujemy nowa kolejność wierszy
– potem po kolei wypisujemy liczby
– symulacja – narysować
https://youtu.be/JJzOAD4SBpc?t=5886

Omówienie kodu zadania:
https://youtu.be/JJzOAD4SBpc?t=6293

Liczy się pomysł!
– obydwa zadania wymagały tylko pomysłu!
– być może Piramida kolejki monotonicznej, ale można też pomysłem
– Tomek narysował na kartce wiele przykładów
– wtedy zobaczył na kartce zależność, obrócił kartkę, zauważył, że teraz łatwo obliczyć kolejne wiersze, że większe zjadają mniejsze
– sejf – tu pomógł po prostu excel
https://youtu.be/JJzOAD4SBpc?t=6443

Challenge #29A
https://youtu.be/JJzOAD4SBpc?t=6626

Quiz przygotowujący do naszych zajęć:
https://youtu.be/JJzOAD4SBpc?t=6847

 

Olimpiada DLA ZAAWANSOWANYCH #29 – poniedziałek, 25 maja 2022, 18:30
Link do zajęć: https://youtu.be/zRKoUCtrzfc?t=501
Temat: Drzewo Fenwicka

Skojarzenia w grafach co to jest? – kahoot:
https://youtu.be/zRKoUCtrzfc?t=501

Skojarzenia doskonałe:
– każdy wierzchołek jest skojarzony
https://youtu.be/zRKoUCtrzfc?t=1390

Jak wiedzieć czy istnieje skojarzenie doskonałe?
– twierdzenie Halla o kojarzeniu małżeństw:
https://youtu.be/zRKoUCtrzfc?t=1769

Zadanie Łyżwy – piękny przykład na twierdzenie Halla
https://youtu.be/zRKoUCtrzfc?t=2225

Tworzymy PSOMS
– Drzewo punkt – przedział:
https://youtu.be/zRKoUCtrzfc?t=3919

Co to jest PSOMS?
– Podciąg spójny o maksymalnej sumie
https://youtu.be/zRKoUCtrzfc?t=4109

Drzewo Fenwicka:
https://youtu.be/zRKoUCtrzfc?t=4214

W jakich zadaniach przydają się wielowymiarowe drzewa Fenwicka?
https://youtu.be/zRKoUCtrzfc?t=6377

 

 

Olimpiada OD PODSTAW #29 – czwartek, 28 kwietnia 2022, 18:00
Link do zajęć: https://youtu.be/rN7NFTpGMiI?t=32
Temat: Problem plecakowy

Czym jest problem plecakowy?
– zapakowanie plecaka
– mam różne przedmioty – waga/wartość – zmieścić jak najwięcej ich o jak największej wartości
– również dla zapakowania statku
– jak pociąć materiał
– bezpieczeństwo, bankowość
https://youtu.be/rN7NFTpGMiI?t=32

Zapowiedź OKI #29A
– dwa zadania z z finałów / Sejf / Piramida
https://youtu.be/rN7NFTpGMiI?t=178
oraz
https://youtu.be/rN7NFTpGMiI?t=5332

Ćwiczenia z sortowania topologicznego:
– na ile sposobów można posortować topologicznie graf?
– złożoność sortowania topologicznego
https://youtu.be/rN7NFTpGMiI?t=384

Plecak bez wartości – quiz kahoot:
– ile najwięcej przedmiotów zabierzesz do plecaka?
https://youtu.be/rN7NFTpGMiI?t=627
Problem wydawania reszty – kahoot:
https://youtu.be/rN7NFTpGMiI?t=760

Omówienie zadania Knapsack 1:
https://youtu.be/rN7NFTpGMiI?t=989
Kod / linki / omówienie:
https://oki.org.pl/knapsack-1

Czy można problem plecakowy rozwiązać zachłannie?
– posortować wziąć najlżejsze
https://youtu.be/rN7NFTpGMiI?t=1292

Czy można posortować po stosunku wartość/waga i wziąć najcenniejsze?
– na pierwszy rzut oka wydaje się sensowne
– przykład że nie działa
– zachłanne rozwiązanie nie działa
– gdyby produkty były podzielne na dowolnie małe części to by zadziałało
– ale nasze produkty są niepodzielne – nie możemy wziąć 2/3 telefonu
https://youtu.be/rN7NFTpGMiI?t=1340

Dynamiczne rozwiązanie – problem plecakowy:
– dwuwymiarowe dynamik
– pakujemy po kolei przedmioty do dwuwymiarowej tablicy i sprawdzamy jaki jest najlepszy wynik każdej wagi mając tylko do tej pory uwzględnione przedmioty
https://youtu.be/rN7NFTpGMiI?t=1575

Gdzie jest wynik?
– gdzie wynik dla problemu plecakowego?
– ostatni wiersz / ostatnia kolumna
https://youtu.be/rN7NFTpGMiI?t=3180

Jak obliczyć wartość w komórce problemu plecakowego?
dp[i][w] = max (bierzemy poprzednią komórkę, bierzemy ten przedmiot – plecak dla wagi w-my + nasza wartość)
https://youtu.be/rN7NFTpGMiI?t=3336

Złożoność problemu plecakowego:
– N*W
https://youtu.be/rN7NFTpGMiI?t=3528

Czy nie zajmujemy za dużo pamięci?
– na olimpiadzie na to też trzeba uważać
https://youtu.be/rN7NFTpGMiI?t=3596

Jak zmniejszyć pamięć w problemie plecakowym?
https://youtu.be/rN7NFTpGMiI?t=3832

Nie musimy przepisywać wartości – potrzebujemy tylko jeden wiersz!
– obliczamy od prawej do lewej
– gotowy pseudokod
https://youtu.be/rN7NFTpGMiI?t=4020

Kody dynamików są krótkie ładne i przyjemne!
https://youtu.be/rN7NFTpGMiI?t=4426

Kod naszego zadania:
https://youtu.be/rN7NFTpGMiI?t=4426

Dlaczego uzupełniamy naszą tablicę wartościami od końca?
https://youtu.be/rN7NFTpGMiI?t=4644

Czy jest long long long w C++?
– jest int128
– 128 bitów / 16 bajtów
– nie jest pewny
– nie możemy wypisywać / wczytywać
– ale możemy wykonywać operacji
https://youtu.be/rN7NFTpGMiI?t=4782

GOLD USACO – wysoki poziom!
– Tomek startował w Goldzie i było challengująco!
https://youtu.be/rN7NFTpGMiI?t=5048

Challenge #29 Olimpiada OD PODSTAW!
https://youtu.be/rN7NFTpGMiI?t=5134

Zadanie Knapsack 2
– czy nasza złożoność O(N*W) problemu plecakowego jest dobra?
– W nam się nie podoba
– trudno się go pozbyć
– W może być bardzo duże (statki, gwiazdy)
– 100 gwiazd, 100 pociągów, – ale duża masa to złożoność rośnie
– zwiększamy wartości a złożoność nam rośnie – bez większania liczby przedmiotów
https://youtu.be/rN7NFTpGMiI?t=5139

Czy problem plecakowy jest trudny?
– NIE
– ale czy byśmy sami wpadli?
https://youtu.be/rN7NFTpGMiI?t=5410

 

Piszemy GRĘ OD PODSTAW #3 – wtorek, 26 kwietnia 2022, 18:00
Link do zajęć: https://youtu.be/e0t_EzkQ-0c?t=11
Temat: Gra Dino – część 3

Nasza gra już sporo może!
– chcemy więcej, kaktusy, wynik, grafika
https://youtu.be/e0t_EzkQ-0c?t=11

Czy do gry potrzeba miliony programistów?
– czy samemu też można napisać gier?
– wiele sławny gier zostało napisanych przez jedną osobę Tetris Minecraft
– Minecraft przez jedną osobę
– wydaje się nieprawdopodobne – Minecraft należy do Microsoftu
– powstał 2009 – Markusowi czegoś brakowało w grze w która grał – RPG
– stworzył własną grę, generacja światów dynamiczna
– pisał w wolnym czasie – tak jak my
– zaczął od fundamentów – by było łatwo zmieniąc – jak my – proggramowanie obiektowe
– jak nam dziś łatwo zmieniać
– wsłuchiwał się w to co mówili użytkownicy, robił
– 2014 rok sprzedaje grę do Microsoft za 2.5 miliarda dolarów – jedna osoba
– jest sens robić co kochamy – jeśli gry – piszmy gry!
– on tak jak my – sam stworzył silnik do minecrafta

https://youtu.be/e0t_EzkQ-0c?t=33

Dziękuję za wszystkie prace!
– żeby programować trzeba pisać programy
– uczymy się kiedy sami piszemy
– zajęcia są inspiracją
– ale uczymy się gdy sami piszemy – na przykład grę
– jest głośno!
– dziękuję za każdy kawałeczek kodu!
– w ten sposób się uczymy
– efekt – aplikacja jak Markus albo nawet lepsza – jesteście mega mocni
– są nowe quizy – link: https://www.facebook.com/OlimpijskieKoloInformatyczne/
https://youtu.be/e0t_EzkQ-0c?t=151

Drugi quiz – pisanka
– zachęcam by się rozwijać
– wrzucamy na github – tworzymy CV
https://youtu.be/e0t_EzkQ-0c?t=294

Jak przygotować się do III etapu – środowisko Linux:
https://youtu.be/e0t_EzkQ-0c?t=348

Za 2 tygodnie zajęcia Sztuczna Inteligencja:
– zrobimy system
https://youtu.be/e0t_EzkQ-0c?t=491

Poznaliśmy wszystkie elementy tworzenia gry poznaliśmy
– możemy pisać własne gry
– znamy silnik, reakcje na zdarzenia, obiektowe, grafika, animacja
– każdego dnia mocniejsi
https://youtu.be/e0t_EzkQ-0c?t=680

Quiz – programowanie obiektowe
– wszystko co jest kotem zamykamy w jednym miejscu
– tak zrobiliśmy dla dino – pokazanie – ustawienie / rysowanie / skakanie
https://youtu.be/e0t_EzkQ-0c?t=752

Czy w programowaniu obiektowym jest mniej kodu?
– nieistotne
– ważne że łatwiej się pisze
– łączny czas pisania kodu będzie krószy
https://youtu.be/e0t_EzkQ-0c?t=1118

Omówienie trzeciej, ostatecznej części pisania naszej gry Dino:
– napisaliśmy plansze, ziemie, kaktus który się porusza, dino, reakcja na klawisz, dino który popranie skacze i opada
– pokazanie jak fantastycznie działa
– wynik, pomniejszenie żyć, klawisz start, dwa kaktusy, kaktusy jako obrazki
https://youtu.be/e0t_EzkQ-0c?t=1167

Otwieramy plik index.html i wpisujemy kod z poprzednich zajęć:
https://youtu.be/e0t_EzkQ-0c?t=1231

Omówienie dotychczasowego kodu:
https://youtu.be/e0t_EzkQ-0c?t=1511

Dodajemy informacje o wyniku i liczbie żyć:
https://youtu.be/e0t_EzkQ-0c?t=1962

Dodajemy guzik Start:
https://youtu.be/e0t_EzkQ-0c?t=3016

Podsumowanie guzika Start:
https://youtu.be/e0t_EzkQ-0c?t=3960

Dodajemy silnik graficzny – kolizję!
– tracenie żyć
https://youtu.be/e0t_EzkQ-0c?t=4091

Dlaczego sprawdzamy kolizje w kaktusie?
https://youtu.be/e0t_EzkQ-0c?t=4635

Dino zabolało – kod:
– radosc super Auuuuuu
https://youtu.be/e0t_EzkQ-0c?t=5261
Dino zabolało w grze:
– radosc super Auuuuuu
https://youtu.be/e0t_EzkQ-0c?t=5361

Fajnie gramy w gre:
– radosc z grania
https://youtu.be/e0t_EzkQ-0c?t=5540

Nasza gra jest grywalna!
– wielka radość!
https://youtu.be/e0t_EzkQ-0c?t=5737

Podsumowanie kolizji:
https://youtu.be/e0t_EzkQ-0c?t=5780

Dodajemy drugiego kaktusa:
– kwintesencja programowania obiektowego
https://youtu.be/e0t_EzkQ-0c?t=5905

Wytłumaczenie losowej liczby w JavaScript na przedziale – jak działa Math.random():
https://youtu.be/e0t_EzkQ-0c?t=6169

Wielka radość
– są dwa kaktusy
– zderzyłem się z pierwszym
– łatwo nam poszło
https://youtu.be/e0t_EzkQ-0c?t=6295

Skrótowe omówienie kodu dla dwóch kaktusów:
https://youtu.be/e0t_EzkQ-0c?t=7003

Teraz już możemy grać!
– dwa kaktusy
– POKAZAC
https://youtu.be/e0t_EzkQ-0c?t=7398

Grafika zamiast kaktusa:
https://youtu.be/e0t_EzkQ-0c?t=7597

Podsumowanie kaktusa jako grafiki:
https://youtu.be/e0t_EzkQ-0c?t=7901

Zmieniam kaktusy na większe, prędkość i super gram
– RADOŚĆ
– POKAZAĆ
https://youtu.be/e0t_EzkQ-0c?t=8012

Skaczemy i hoopa i hoopa
– WIELKA RADOŚĆ
– POKAZAĆ
– super się gra
– wszedłem w kaktusa
https://youtu.be/e0t_EzkQ-0c?t=8036

Napisaliśmy profesjonalną grę!
– jak chrome Dino
– POKAZAĆ
– mamy jeszcze fajniej!
– jesteśmy w stanie napisać preofesjonalną grę
– oczywiście dobrze, jest mieć dobrego grafika
https://youtu.be/e0t_EzkQ-0c?t=8136

Podsumowanie całego kodu – finalnego:
https://youtu.be/e0t_EzkQ-0c?t=8218

Dziękuję za piękne video:
– pokazać
https://youtu.be/e0t_EzkQ-0c?t=8974

Nasze grawitacje:
– radość
– pokazać
https://youtu.be/e0t_EzkQ-0c?t=9030

Challenge #3 Piszemy grę!
https://youtu.be/e0t_EzkQ-0c?t=9384

Czysty kod
– nasz kod czyta się jak ksiązkę!
– POKAZAĆ
https://youtu.be/e0t_EzkQ-0c?t=9726

Olimpiada OD PODSTAW #28 – czwartek, 21 kwietnia 2022, 18:00
Link do zajęć: https://youtu.be/JXWWe0eYQCo?t=19
Temat: Timeline – Amerykańska Olimpiada Gold

Sortowanie topologiczne na ostatnich zajęciach:
– ustalenie kolejności działań
https://youtu.be/JXWWe0eYQCo?t=19

Zadanie z USACO
– duży krok w stronę finału
– cztery dywizje
– platynowa – finał OI-a / międzynarodowa
– Gold – I/II etap OI-a
https://youtu.be/JXWWe0eYQCo?t=62

Jaki edytor kodu najbardziej lubi Tomek?
– Tomek używa Sublime Text: https://www.sublimetext.com/
– kompiluje w terminalu
– podobnie jest na Olimpiadzie
– nie jest to Visual Studio Code / ma za dużo funkcji
https://youtu.be/JXWWe0eYQCo?t=285

Sortowanie topologiczne – wyjaśnienie w quizie kahoot:
– czy każdy graf da się posortować topologicznie?
– czy są grafy które można posortować na wiele sposobów?
– ćwiczenia na sortowanie topologiczne
– czy graf da się posortować topologicznie?
https://youtu.be/JXWWe0eYQCo?t=366

Jak kompilować kod C++ na Windows?
– Geany / Codeblocks mogą mieć już wbudowane kompilatory
– kompilator online – ideone
https://youtu.be/JXWWe0eYQCo?t=978

Początek omówienia zadania Timeline / USACO Gold
https://youtu.be/JXWWe0eYQCo?t=1072

Kod / linki / omówienie:
https://oki.org.pl/timeline

Tworzymy graf zależności wszystkich czynności
– modelujemy nasz proces
– analogicznie jak dla sortowania topologicznego
https://youtu.be/JXWWe0eYQCo?t=1841

Czy parametr m przyda się w tym zadanie?
– daje informację, że będzie istniało przyporządkowanie że dnizdarzenia mieszczą się w tym zakresie
– w kodzie nie wykorzystujemy
https://youtu.be/JXWWe0eYQCo?t=2234

Warto uważnie czytać treść zadania:
– Otrzymujemy informację, że graf jest acykliczny
– jeśli czynność a jest przed b to nie może być odwrotnie
https://youtu.be/JXWWe0eYQCo?t=2367

Jeśli mamy graf skierowany, acykliczny – powinniśmy pomyśleć o sortowaniu topologicznym
– nie zawsze, ale w 800% tak
https://youtu.be/JXWWe0eYQCo?t=2410

Na czym polega rozwiązywanie zadań?
– dopasowywanie technik
– pisanie przykładów
– ale nie nastawiamy się na konkretne techniki
https://youtu.be/JXWWe0eYQCo?t=2476

Na czym polega algorytm Dijkstry
– warto zrobić przed finałem OI-a
https://youtu.be/JXWWe0eYQCo?t=2706

Rysujemy graf zależności:
– już posortowany topologicznie na dowolny ze sposobów
https://youtu.be/JXWWe0eYQCo?t=2762

Jak zrobić zadanie?
Rozwiązanie zadania – początek szczegółowego omówienia
– kluczowa obserwacja: patrzymy na wierzchołki które nie maja krawędzi wchodzących – dla tych wierzchołków wynik to 10
https://youtu.be/JXWWe0eYQCo?t=2853

Rozwiązanie zadania – szczegółowe omówienie kolejnych kroków
– Idziemy po grafie sortowania topologicznego od wierzchołków początkowych
– ustalamy dzień czynności
– usuwamy krawędzie wchodzące – jak w sortowaniu topologicznym
https://youtu.be/JXWWe0eYQCo?t=3008

Podany graf NIE musi być spójny:
https://youtu.be/JXWWe0eYQCo?t=3782

Kod jest identyczny jak kod zadania Course Schedule z poprzedniego tygodnia które pokazuje sortowanie topologiczne:
https://youtu.be/JXWWe0eYQCo?t=3893

Złożoność naszego rozwiązania:
– O (N+C)
https://youtu.be/JXWWe0eYQCo?t=4028

Jak podejść do implementacji?
– pseudokod sortowania topologicznego
https://youtu.be/JXWWe0eYQCo?t=4104

Pseudokod pokazuje jaka jest złożoność naszego rozwiązania
https://youtu.be/JXWWe0eYQCo?t=4497

Uwaga do kodu – stare USACO – wczytujemy z pliku:
https://youtu.be/JXWWe0eYQCo?t=4640

Omówienie kodu
– używamy vectora par liczb (pair)
– pliki in/out USACO
https://youtu.be/JXWWe0eYQCo?t=4664

Sortowanie topologiczne i problem na ile sposób żabka dotrze na kamień:
https://youtu.be/JXWWe0eYQCo?t=5058

Jak spakować się na majówkę?
– jak zminimalizować czas wyjazdu na majówkę
https://youtu.be/JXWWe0eYQCo?t=5590

Jakie są zadania?
– proste i tych których rozwiązania jeszcze nie poznaliśmy
– wystarczy wpaść na pomysł
https://youtu.be/JXWWe0eYQCo?t=5970

Challenge #28 – opis:
https://youtu.be/JXWWe0eYQCo?t=5910

OKI #29 – problem plecakowy:
https://youtu.be/JXWWe0eYQCo?t=6004

Trudne zadanie – USACO GOLD
– ukłony dla wszystkich którzy zrobili
– ale jeśli zobaczyliśmy interpretację grafową i podejść sortowaniem topologicznym – proste
– warto
https://youtu.be/JXWWe0eYQCo?t=6102

Piszemy GRĘ OD PODSTAW #2 – wtorek, 19 kwietnia 2022, 18:00
Link do zajęć: https://youtu.be/VM_9vPIp3M4?t=12
Temat: Gra Dino – część 2

Wspólnie piszemy grę
– Dino pędzie przez pustynię, skoki nad kaktusami
https://youtu.be/VM_9vPIp3M4?t=12

Na poprzednich zajęciach, plansza, ziemia, kaktus
– animuje
https://youtu.be/VM_9vPIp3M4?t=29

Gra pozwala nam poznać programowanie obiektowe
– dziś Dino skacze
– programowanie obiektowe (Dino, kaktus)
– by dołączyć do projektów obiektów
– każda osoba w projekcie odpowiada za konkretny obiekt
– uprości nam programowanie, jest łatwe
https://youtu.be/VM_9vPIp3M4?t=58

Modelowanie
– Dino skacze do góry
– Modelujemy grawitację
– Wielka dziedzina informatyki
– Modelujemy rozchodzenie leku
– Jesteśmy jako informatycy pomocni
– Studenci medycyny, lekarzom w operacjach
– Przed nami fantastyczna przyszłość
https://youtu.be/VM_9vPIp3M4?t=132

Żeby być programistą trzeba programować!
– wtedy przyszłość przed nami
– to co dzisiaj zrobimy postarajmy się zrobić samemu
– wtedy będziemy mieć to we krwi
https://youtu.be/VM_9vPIp3M4?t=183

2:40:11 Uczymy się programować gdy sami piszemy
– do jakiej klasy chodziłem / sam nauczyłem się programować
– zachęcam do challenge – najważniejsze
– zróbmy to co było na zajęciach
– gdy nie wychodzi to się uczymy
– dziś nauczyliśmy profesjonalnego programowania obiektowego
– open source
– napiszecie dzisiejszy kod, namiot, będziecie mistrzami
https://youtu.be/VM_9vPIp3M4?t=9611

Warto programować!
– sztuczna inteligencja do generowania muzyki
– generowania twarzy przez sztuczną inteligencję
– będzie na naszych zajęciach sztuczna inteligencja
– sztuczna inteligencja może pomóc – klasyfikować choroby
– szachy
– przed nami piękna przyszłość
– zapraszam na czwartkowe zajęcia
– olimpiada przygotowuje nas do tej pięknej przyszłości
– 7 miesięcy i będziemy mocni
– przyszłość jest nasza
– warto poświecić się swojej pasji
https://youtu.be/VM_9vPIp3M4?t=216

Ładujemy kod z poprzednich zajęć dotyczący pisania gry Dino:
https://youtu.be/VM_9vPIp3M4?t=432

Pamiętajmy by rozszerzenie pliku było html a nie txt.
https://youtu.be/VM_9vPIp3M4?t=537

11:55 Quiz – strona www, canvas, javascript – podstawy
– rysujemy buzię z prostokątów – Zadanie Buzia 2
– szczegółowe omówienie
https://youtu.be/VM_9vPIp3M4?t=715

26:06 Kolory na stronie www – rgb – dokładne wytłumaczenie:
https://youtu.be/VM_9vPIp3M4?t=1566

26:19 Radość ucznia – uczy się bardzo dużo, będzie odkrywać
https://youtu.be/VM_9vPIp3M4?t=1579

27:57 Świecą się oczy buzi!
– radość z kolorów
https://youtu.be/VM_9vPIp3M4?t=1677

44:04 Początek omówienia tworzenia gry Dino v2:
https://youtu.be/VM_9vPIp3M4?t=2644

Kod / linki / omówienie:
https://oki.org.pl/dino-v2

46:03 Tworzymy plik index.html i wpisujemy dotychczasowy kod naszej gry
– dokładne wytłumaczenie
– uruchamiamy w Visual Studio Code oraz w przeglądarce
https://youtu.be/VM_9vPIp3M4?t=2763

51:15 Ustawiamy wielkość planszy korzystając z właściwości planszy
– porządkujemy poprzednią wersję naszego kodu
https://youtu.be/VM_9vPIp3M4?t=3075

1:00:02 Jak zrobić więcej kaktusów?
– programowanie obiektowe
– wszystko co się tyczy kaktusa skomasuje w obiekcie / klasie kaktus
– możemy mieć wiele zmiennych / kaktusów
https://youtu.be/VM_9vPIp3M4?t=3602

1:03:14 Metody/funkcje w klasie nie mają słowa function
https://youtu.be/VM_9vPIp3M4?t=3794

1:03:56 W momencie tworzenia zmiennej uruchamia się metoda specjalny constructor – specjalna metoda/funkcja:
https://youtu.be/VM_9vPIp3M4?t=3836

1:05:58 Klasy w JavaScript
– szczegółowe omówienie kodu
– opis klasy
– definicję obiektów / instancji / zmiennych
https://youtu.be/VM_9vPIp3M4?t=4018

1:15:42 Programowanie obiektowe – Wszystko co tyczy się kaktusa mam w jednym miejscu
– łatwo poprawiać
– mogę mieć dowolną ilość kaktusów
https://youtu.be/VM_9vPIp3M4?t=4542

1:19:01 Wszystko się upraszcza w projektowaniu obiektowym
– łatwo zmienić prędkość, dowolne parametry
https://youtu.be/VM_9vPIp3M4?t=4741

1:21:53 – Klasa kaktus – programowanie obiektowe – krótkie konkretne wytłumaczenie
https://youtu.be/VM_9vPIp3M4?t=4913

1:26:23 Czy możemy odwoływać się bezpośrednio do zmiennych klasy?
– nie powinniśmy ale da radę
– możemy zniszczyć kod
– brak kontroli nad stanem klasy
https://youtu.be/VM_9vPIp3M4?t=5183 1:29:26

1:29:26Dlaczego klasy?
– przygotowanie do projektów
– będę mieć za zadanie napisać kaktusa czyli klasę kaktus a potem dodamy zmienną, czy wiele i będzie po zawodach!
– warto przestawić się na myślenie
– jeśli dołączymy do projektu czy się skrzykniemy – przyda się!
– dlaczego namawiam Was na klasy
https://youtu.be/VM_9vPIp3M4?t=5366

1:30:43 – Dodajemy Dino – klasę Dino
https://youtu.be/VM_9vPIp3M4?t=5443

1:37:52 Obiektowy Dino się pokazał
– Wielka radość!!!!
– mamy go na ekranie
– jako klasa obiektowy
https://youtu.be/VM_9vPIp3M4?t=5872

1:40:20 Wielka wartość klasy!
– Za mały kaktus?
– W jednym miejscu go zmieniamy!
– Łatwo modyfikować kod
https://youtu.be/VM_9vPIp3M4?t=6020

1:41:00 Dino idzie do góry po naciśnięciu klawisza ‘g’ albo dla strzałki do góry
– reagujemy na wciśnięcie klawisza (nasłuchujemy)
https://youtu.be/VM_9vPIp3M4?t=6060

1:47:29 Wooooow! Dino grzeje do góry!
– Wielka RADOŚĆ
– JEEEEST! Skacze Jak skacze? On grzeje do góry jak szalony, w kosmos
–  To szaleństwo
– Jak rakieta NASA
– zmieniamy prędkość
https://youtu.be/VM_9vPIp3M4?t=6449

1:50:18 Podsumowanie reakcji na klawisz i animacji ruchu Dino
https://youtu.be/VM_9vPIp3M4?t=6618

1:52:48 Dino skacze – dodajemy grawitację
– Jak się powinien zachowywać, co zmienić?
https://youtu.be/VM_9vPIp3M4?t=6768

1:53:24 Czym jest grawitacja-dlaczego po podskoczeniu nie opadamy?
– dodajemy grawitację
– grawitacja zmniejsza prędkość
https://youtu.be/VM_9vPIp3M4?t=6802

1:56:48 JEEEEST – Dino opada!
Dino opada – ale przebija Ziemię
– radość!!!
– dlaczego wyjaśnienie
– zapada się pod ziemie / spada
https://youtu.be/VM_9vPIp3M4?t=7008

1:58:01 Zatrzymujemy Dino na poziomie Ziemi
– Co zrobić by nie zapadał się pod Ziemię?
https://youtu.be/VM_9vPIp3M4?t=7081

1:59:53 Dino poprawnie skacze
WIELKA RADOSC!
https://youtu.be/VM_9vPIp3M4?t=7193

2:01:51 Możemy bawić się grawitacją!
– zwiększamy / zmniejszamy grawitację i inaczej skacze!
https://youtu.be/VM_9vPIp3M4?t=7311

2:02:55 Podsumowanie kodu Dino v2
https://youtu.be/VM_9vPIp3M4?t=7375

2:09:36 Dziękuję za pierwszą część gry Dino – animację kaktusa
https://youtu.be/VM_9vPIp3M4?t=7776

2:10:28 – Piękne pisanki w JavaScript!
https://youtu.be/VM_9vPIp3M4?t=7828

2:16:58 Challenge Piszemy grę OD PODSTAW v2:
https://youtu.be/VM_9vPIp3M4?t=8218

2:17:27 Za tydzień Gra Dino v2 – silnik, kolizje, wynik gracza
– logika gry
https://youtu.be/VM_9vPIp3M4?t=8247

2:18:42 Klasy na stronie www / JavaScript – wytłumaczenie w quizie:
https://youtu.be/VM_9vPIp3M4?t=8322

2:27:18 Różnica między definicja klasy i zmienną klasy:
https://youtu.be/VM_9vPIp3M4?t=8838

2:30:03 Dlaczego nauczyliśmy się programowania obiektowego?
– możemy wspólnie pisać projekty, gry
– możemy łatwo kontrolować kod
– możemy łatwo poprawiać
– możemy łatwo rozszerzać kod
– mamy wszystko związane z namiotem w jednym miejscu

https://youtu.be/VM_9vPIp3M4?t=9003


26:19 Radość ucznia – uczy się bardzo dużo, będzie odkrywać
https://youtu.be/VM_9vPIp3M4?t=1579

27:57 Świecą się oczy buzi!
– radość z kolorów
https://youtu.be/VM_9vPIp3M4?t=1677

1:29:26 Dlaczego programowanie obiektowe?
https://youtu.be/VM_9vPIp3M4?t=5366

Radość Dino się pokazał
https://youtu.be/VM_9vPIp3M4?t=5872

Jak zmienić kaktusa – jak prosto!
https://youtu.be/VM_9vPIp3M4?t=6020

1:47:29 Dino grzeje do góry! – Wielka RADOŚĆ
https://youtu.be/VM_9vPIp3M4?t=6449

1:59:53 Dino poprawnie skacze
WIELKA RADOSC!
https://youtu.be/VM_9vPIp3M4?t=7193

2:01:51 Możemy bawić się grawitacją!
– zwiększamy / zmniejszamy grawitację i inaczej skacze!
https://youtu.be/VM_9vPIp3M4?t=7311

2:10:28 – Piękne pisanki w JavaScript!
https://youtu.be/VM_9vPIp3M4?t=7828

Co trzeba zrobić by programować?
https://youtu.be/VM_9vPIp3M4?t=9611

 

 

Olimpiada OD PODSTAW #27 – czwartek, 14 kwietnia 2022, 18:00
Link do zajęć: https://youtu.be/9IpJXlD6zo8?t=20
Temat: Małe twierdzenie Fermata – Robot Movings

Najpierw mleko czy płatki?
– porządkujemy czynności, ustalanie kolejności zajęć, planów lekcji
– w informatyce, gastronomii, podczas ubierania, jazdy samochodem – potrzeba porządkowania
https://youtu.be/9IpJXlD6zo8?t=20

Finał Olimpiady Informatycznej Juniorów jest za miesiąc – 14 maja:
– jest informacja o finale
– stacjonarnie w Krakowie, Wrocławiu, Warszawie
https://youtu.be/9IpJXlD6zo8?t=82

W jakiej kolejności powinno się wsiadać do samochodu?
https://youtu.be/9IpJXlD6zo8?t=801

Co to jest meduza?
https://youtu.be/9IpJXlD6zo8?t=944

Omówienie zadania Course Schedule:
https://youtu.be/9IpJXlD6zo8?t=1160
Kod / linki:
https://oki.org.pl/course-schedule

Jak będziemy modelować / reprezentować nasz problem?
– użyjemy grafu skierowanego
https://youtu.be/9IpJXlD6zo8?t=1471

Kiedy nie może ustalić kolejności działań, kursów, …
– nie możemy ustalić kolejności gdy jest cykl w grafie
https://youtu.be/9IpJXlD6zo8?t=1676

Jak będziemy znajdować cykle?
– DFS
https://youtu.be/9IpJXlD6zo8?t=1823

W jakiej kolejności wybieramy kursu, zadania, wierzchołki grafu?
– od którego kursu powinienem zacząć?
– zaczynamy od kursu do którego nie wchodzą żądne krawędzie
– jakie kolejne wierzchołki
https://youtu.be/9IpJXlD6zo8?t=1972

Jak wybieramy kolejność kursów, zadań wierzchołków w sortowaniu topologicznym?
https://youtu.be/9IpJXlD6zo8?t=2498

Jak zaimplementować sortowanie topologiczne?
– zaczynamy od tego który jest najbardziej z lewej, nie wchodzą do niego żadne krawędzie
– tworzymy listę kursów które możemy wykonać – bierzemy dowolny
– usuwamy niepotrzebne krawędzie / nowy graf / bierzemy ten wierzchołek do którego nie wchodzą żadne krawędzie
https://youtu.be/9IpJXlD6zo8?t=2700

Ile operacji wykonamy przy użyciu vector – złożoność sortowania topologicznego:
https://youtu.be/9IpJXlD6zo8?t=3303

Skąd wiemy, że wierzchołek nie ma już krawędzi wchodzących?
– dla każdego wierzchołka trzymajmy ile krawędzi do niego wchodzi
– krawędzi nie będziemy usuwać – usuwanie elementu z vectora to czas liniowy
– wystarczy, że jak usuwamy krawędź, zmniejszymy liczbę krawędzi wchodzących
– jak jest zero krawędzi wchodzących to dodajemy taki wierzchołek do sortowania topologicznego – do zrobienia
– przy usuwaniu wierzchołka usuwamy krawędzie do sąsiadów
https://youtu.be/9IpJXlD6zo8?t=3582

Co to jest złożoność?
https://youtu.be/9IpJXlD6zo8?t=3893

Złożoność sortowania topologicznego:
https://youtu.be/9IpJXlD6zo8?t=3933

Czy musimy sprawdzać czy jest cykl?
– wydaje się, że musimy sprawdzić DFS-em
– ale wyjdzie samo, nie będzie wierzchołka z zerowym stopniem wchodzącym jak jest cykl
– w vectorze wynikowym sortowania topologicznego otrzymamy mniej wierzchołków niż na wejściu
https://youtu.be/9IpJXlD6zo8?t=4078

Omówienie kodu rozwiązującego zadania i sortującego topologicznie:
https://youtu.be/9IpJXlD6zo8?t=4298

Nasz algorytm przypomina BFS – piękna obserwacja Piotra!
– sortować topoglociznie można na wiele sposobów
– nasz algorytm jest intuicyjny  – tak jak byśmy robili to na kartce
https://youtu.be/9IpJXlD6zo8?t=4530

Czym jest auto?
– wersja C++ 11 daje taką możliwość
https://youtu.be/9IpJXlD6zo8?t=4664

Dlaczego warto układać zadania?
– wymyślanie to odkrywanie problemów
– musimy pomyśleć jaka będzie złożoność
https://youtu.be/9IpJXlD6zo8?t=4979

Jak stworzyć paczkę dla szkopuł-a?
https://youtu.be/9IpJXlD6zo8?t=5230

Jak rozpocząć przygotowanie do Olimpiady?
– raczej C++ a nie Python
– zajęcia wtorkowe
https://youtu.be/9IpJXlD6zo8?t=6027

Sortowanie topologiczne – quiz:
– czy graf da się posortować topologicznie?
– przykładowa kolejność sortowania topologicznego
– złożoność sortowania topologicznego
https://youtu.be/9IpJXlD6zo8?t=6213

Challenge #27:
https://youtu.be/9IpJXlD6zo8?t=6499

Wesołych Świąt!
https://youtu.be/9IpJXlD6zo8?t=6631

 

Piszemy GRĘ OD PODSTAW #1 – wtorek, 12 kwietnia 2022, 18:00
Link do zajęć: https://youtu.be/giLNlOjIsPM?t=101
Temat: Gra Dino – część 1

Pierwsze zajęcia na który piszemy grę!
https://youtu.be/giLNlOjIsPM?t=3

Czy jest coś przyjemniejszego od grania w gry? – PISANIE GIER
– to też misja / gry są pożyteczne / ćwiczą pamięć / szare komórki / szybkie podejmowanie decyzji / myślenie strategiczne
– oczywiście co za dużo to nie zdrowo, ale nawet za dużo brokuł też jest niezdrowo
https://youtu.be/giLNlOjIsPM?t=11

Gry pomagają w nauce!
– matematyki / ekonomii
– idealnie przez grywalizację
– naturalnie się uczymy
https://youtu.be/giLNlOjIsPM?t=101

Rozpoczynamy przygodę – pisanie gry Dino
– piszemy i gramy
– Dino pokazuje się w Google Chrome gdy jesteśmy offline, nie ma internetu
– Musimy przeprowadzić Dino idzie przez pustynię z rzadka porośniętą kaktusami nad którymi musi skakać
– w przeglądarce, każdy może użyć, możemy wysłać, udostępnić, oznaczyć że nasza gra, monetyzować
https://youtu.be/giLNlOjIsPM?t=119

Dlaczego piszemy grę?
– nauczymy się programować
– by brać udział w  dużych wielkich projektach
https://youtu.be/giLNlOjIsPM?t=180

Gry to też myślenie, rozwiązywanie problemów:
– jak spowodować by gra się nie lagowała?
– jak sprawdzić czy obiekty się nachodzą
– pomaga nam w tym Olimpiada Informatyczna – uczy jak rozwiązywać problemy
– Weźmy udział – rozwiązujmy zadania – to nas prowadzi do szybkich gier, rozwiązywania problemów.
https://youtu.be/giLNlOjIsPM?t=189

Kiedy przestać pisać grę?
Naszą grę można rozwijać w nieskończoność:
– jeśli tylko dla CV – w pewnym momencie przestać, bez wodotrysków:
https://youtu.be/giLNlOjIsPM?t=309

Najważniejsze jest to co sami robimy!
– żeby być programistą trzeba pisać programy.
– zajęcia to inspiracja, pokazanie możliwości
– ale umiemy gdy sami napiszemy
https://youtu.be/giLNlOjIsPM?t=471

Quiz numer 1 – GRY:
https://youtu.be/giLNlOjIsPM?t=541

Wiersz Kaliny!
​Już po Kahoocie, do pracy się zabieramy, Grę stworzymy, w grę zagramy! Dziś “Dino” tworzyć będziemy, fajną grę zaprogramujemy. ​Bo w pisaniu kodu zabawa jest najważniejsza, Wtedy nasza wiedza staje się coraz większa.
https://youtu.be/giLNlOjIsPM?t=814

Ile czasu zajmuje stworzenie gry?
– nasza gra 2 do 4 zajęć
– nasza gra to 200 linijek
– sprawna osoba napisze w około 30 minut
– duże gry te tysiące linii kodu i zespołu
– zachęcam by do takiego zespołu dołączyć.
https://youtu.be/giLNlOjIsPM?t=871

Piszemy grę Dino – Główna część spotkania:
– treść zadania
– jakie może mieć opcje – kupowanie opcje
https://youtu.be/giLNlOjIsPM?t=903

Kod / linki / omówienie:
https://oki.org.pl/dino-v1

Planujemy naszą grę – co będziemy robić:
0. miejsce gdzie rysujemy
1. Ziemia
2. Kaktus (prostokąt na początku)
3. Animacja kaktusa
4. Dino
5. Dino skacze
6. Stwierdzać kolizje
7. Wynik gracza / statystyki
https://youtu.be/giLNlOjIsPM?t=1053

Strona www
Tworzymy stronę www – dokument html – otwieramy plik index.html w przeglądarce i w edytorze
Piszemy grę – otwieramy plik index.html w przeglądarce i w edytorze
– pusty folder
– nowy plik tekstów index.html
– otwieramy plik w notatniku oraz w przeglądarce
https://youtu.be/giLNlOjIsPM?t=1171

Polecam Visual Studio Code zamiast notatnika
– kolorowanie składni
– edytor dla programistów
– możemy pisać w notatniku / podpowiedzi / wcięcia
– może być Notepad++
https://youtu.be/giLNlOjIsPM?t=1683

Tworzymy prosta stronę www z tekstem:
https://youtu.be/giLNlOjIsPM?t=1851

Umieszczamy canvas – płótno na stronie:
https://youtu.be/giLNlOjIsPM?t=2647

Płótno się nie pokazało!
– jak stwierdzić czy król jest nago?
– białe ale jes, ale nie widać?
https://youtu.be/giLNlOjIsPM?t=2709

Jak rysujemy prostokąt w canvas?
– zamalowujemy prostokątem cały canvas naszym kolorem
– współrzędne planszy / osie
– definicja prostokąta (lewy, górny róg, szerokość, wysokość)
– rysowanie dowolnych prostokątów?
https://youtu.be/giLNlOjIsPM?t=2964

Kolory RGB – czym są – składowe?
– pokazanie wyboru kolorów i jego składników
– zakres koloru od 0 do 255 każdego
– Strona z wyborem koloru: https://htmlcolorcodes.com/color-picker/
https://youtu.be/giLNlOjIsPM?t=3278

Wersja 1.1 – MAMY PŁÓTNO!
https://youtu.be/giLNlOjIsPM?t=3521

Rysujemy Ziemię:
– kolejny prostokąt
https://youtu.be/giLNlOjIsPM?t=3881

Ziemia!
MAMY ZIEMIE!
– wielka radość!
https://youtu.be/giLNlOjIsPM?t=4117

Ziemia i plansza jako funkcje:
https://youtu.be/giLNlOjIsPM?t=4300

Co to są funkcje?
– pomocnicy, coś dla nas robią
– żebyśmy się nie zgubili, coś nazywamy
– zestaw poleceń między klamrami
https://youtu.be/giLNlOjIsPM?t=4314

Rysujemy kaktus:
– też prostokąt
– podajemy argument do funkcji – współrzędną x kaktusa
– widzimy na czym będzie polegać animacja
https://youtu.be/giLNlOjIsPM?t=4691

Animacja! – Niech kaktus się rusza
– najbardziej ekscytujący element
https://youtu.be/giLNlOjIsPM?t=5203

Animacja – co 10 ms / 100 razy na sekundę wywołujemy funkcję która rysuje nowa planszę
– super pokazanie animacji
https://youtu.be/giLNlOjIsPM?t=5401

WOOOOOOOOOOOW!
– Kaktus się rusza
– wypłynął poza ekran
– sprawdzamy współrzędną x czy poza zerem i przywracamy go.
https://youtu.be/giLNlOjIsPM?t=5475

Kaktus wraca na początek po wyjściu na ekran
– SUPER!
https://youtu.be/giLNlOjIsPM?t=5650

Skrócone omówienie tego co zrobiliśmy – pierwszej części tworzenia gry Dino
Skrócone omówienie pierwszej części tworzenia gry Dino
Podsumowanie naszego kodu – plansza, ziemia, kaktus, ruch:
https://youtu.be/giLNlOjIsPM?t=5779

Chcemy programować!
– zrób wszystko sam
– programowanie to przygoda, pomaganie
– każdy może zagrać, może wysłać, …
– do przodu
– jak ktoś chce dołączyć do projektu / link do discorda
https://youtu.be/giLNlOjIsPM?t=6111

Uczymy się tworzenia grafiki w quizie:
https://youtu.be/giLNlOjIsPM?t=6723

Rysujemy elipsę:
– potrzebne przy zadaniu Wielkanocna Pisanka
https://youtu.be/giLNlOjIsPM?t=7430

Rysujemy brzeg elipsy – ustawiamy grubość, czy linia jest przerywana:
https://youtu.be/giLNlOjIsPM?t=7668

Opis Challenge Piszemy grę od Podstaw #1:
https://youtu.be/giLNlOjIsPM?t=6514

Zapowiedź OKI Piszemy grę OD PODSTAW #2:
https://youtu.be/giLNlOjIsPM?t=6555

Dziękuję za zajęcia!
https://youtu.be/giLNlOjIsPM?t=8050

Najlepsze świąteczne życzenia:
– niech to będą rodzinne święta
– porozmawiajcie z rodzicami
– co lubią czego nie lubią
https://youtu.be/giLNlOjIsPM?t=8059

Życzenia:
Najlepsze życzenia Wielkanocne.
Pięknego czasu, radości, bycia razem!
https://youtu.be/giLNlOjIsPM?t=8059

 

Olimpiada DLA ZAAWANSOWANYCH #27 – poniedziałek, 11 kwietnia 2022, 18:30
Link do zajęć: https://youtu.be/4xmu9D7PFVw?t=1577
Temat: Skojarzenia w grafach dwudzielnych

Co jest najtrudniejsze podczas pisania Olimpiad?
– wiedza, taktyka, psychologia
https://youtu.be/4xmu9D7PFVw?t=403

Co to jest graf dwudzielny?
https://youtu.be/4xmu9D7PFVw?t=1577

Co trzeba założyć na Olimpiadzie?
– Jeśli nie jest powiedziane, że graf jest spójny to będzie wiele spójnych, wierzchołki izolowane
https://youtu.be/4xmu9D7PFVw?t=1644

Skojarzenie, maksymalne skojarzenie:
https://youtu.be/4xmu9D7PFVw?t=1736

Maksymalne to nie największe!
https://youtu.be/4xmu9D7PFVw?t=1745

Ścieżka powiększająca:
https://youtu.be/4xmu9D7PFVw?t=2003

Jak znajdowywać ścieżki powiększające?
https://youtu.be/4xmu9D7PFVw?t=2221

Zadanie Zbóje:
https://youtu.be/4xmu9D7PFVw?t=3220

Pokrycie krawędziowe / minimalne pokrycie krawędziowe
Zbiór niezależnych wierzchołków
Pokrycie wierzchołkowe
Zbiór niezależny krawędzi
https://youtu.be/4xmu9D7PFVw?t=3294

Twierdzenie Koniga
https://youtu.be/4xmu9D7PFVw?t=3429

Do czego przydają się skojarzenia?
– postawić jak najwięcej nie atakujących się skoczków na szachownicy
https://youtu.be/4xmu9D7PFVw?t=3732

Problem kliki:
https://youtu.be/4xmu9D7PFVw?t=3897

Skojarzenia – kod:
https://youtu.be/4xmu9D7PFVw?t=4647

OKI #29 – advanced:
– Drzewo Fenwicka
– Twierdzenie Halla
https://youtu.be/4xmu9D7PFVw?t=5293

 

 

Olimpiada DLA ZAAWANSOWANYCH #26 – poniedziałek, 4 kwietnia 2022, 18:30
Link do zajęć: https://youtu.be/YA4lVwqPN2I?t=182
Temat: Zadania interaktywne

Ależ wejście!
https://youtu.be/YA4lVwqPN2I?t=182

Zadanie interaktywne
https://youtu.be/YA4lVwqPN2I?t=1403

Jak poradzić sobie bez main-a?
https://youtu.be/YA4lVwqPN2I?t=1744

Jak zrobić zadanie konewka?
https://youtu.be/YA4lVwqPN2I?t=1943

Czy warto robić zadanie z geometrii?
–  każde zadania warto zaatakować!
https://youtu.be/YA4lVwqPN2I?t=2507

Zadanie Rozliczenia:
https://youtu.be/YA4lVwqPN2I?t=2694

Zadanie Misie Patysie:
https://youtu.be/YA4lVwqPN2I?t=2908

Kod zadania Konewka:
– z własną biblioteczką
https://youtu.be/YA4lVwqPN2I?t=4210

Strategia na konkurs:
https://youtu.be/YA4lVwqPN2I?t=4498

 

Olimpiada OD PODSTAW #26 – czwartek, 7 kwietnia 2022, 18:00
Link do zajęć: https://youtu.be/MhOgA3MWS5I?t=09
Temat: Małe twierdzenie Fermata – Robot Movings

Podsumowanie III etapu
Koniec III etapu OI
– Emocje / punkty / progi
– Umieliśmy więcej / nie wszystkim udało się zakodować swoje pomysły
–  Piszmy dużo programów, by umieć zakodować nasze pomysły!
https://youtu.be/MhOgA3MWS5I?t=09

Czy Olimpiada Informatyczna jest łatwa?
– Olimpiada Informatyczna – jest łatwo – mniej uczestników – próg programowania
– jest trudna – program nie działa to koniec – sprawdzający nie popatrzy przychylnym okiem jak na Olimpiadzie Matematycznej
– stres potęguje problemy programistyczne / nabyć biegłości . szybkości w programowaniu
– bez względu na próg, punkty – jesteśmy zwycięzcami
– zawalczyliśmy o przyszłość – jak Mikołaj – bezpieczeństwo i algorytmy, uczeń z MIT/Boston
– problemów jest dużo / po to startujemy w Olimpiadzie by rozwiązać problemy tego świata
– znaleźć leki / ekologiczne substancje / pomóc ekonomicznie firmom
– komputer liczy wolno – niech policzy drogę ciężarówek nie miliony lat a sekundy – po to jesteśmy
– każdego dnia mocniejsi
https://youtu.be/MhOgA3MWS5I?t=77

Mieszkańcy Łużyc czyli dokąd prowadzi nas Olimpiada?
Dokąd prowadzi nas Olimpiada?
– odtworzono twarze mieszkańców Górnych Łużyc
– komputer pomaga w historii
– nie może analizować wszystkich możliwych kształtów
– jesteśmy potrzebni / algorytmika jest potrzebna
– niesamowite – nie widzieliśmy osoby a ja odtworzyliśmy na podstawie fragmentów
– także plastycy / archeolodzy
– nasze zastosowania są dalej niż możemy sobie wyobrazić
– zastosowanie binary search / sum prefiksowych wydają się być bardzo odległe od twarzy a jednak
– przyszłość jest piękna, przyszłość jest przed nami
– niech każdy weźmie udział w Olimpiadzie!
– nie chodzi o punkty, chodzi o ta przyszłość którą tu widzicie
https://youtu.be/MhOgA3MWS5I?t=227

Tomek Kwiatkowski nas przygotowuje
– przyciśnijmy by powiedział o swoich doświadczeniach, co dobre, co złe
https://youtu.be/MhOgA3MWS5I?t=374

Historia naszego prowadzącego – Szymona Hajderka:
– brał udział w zajęciach
– robił prace domowe
– po roku zyskał tytuł laureata OIJ
– w tym roku nie udało się na II etapie OI-a
– jest motywacja więcej się uczyć
– Szymon jest w Liceum matematyczno – informatycznym – to pomaga
https://youtu.be/MhOgA3MWS5I?t=1619

Omówienie zadania Robot Movings:
https://youtu.be/MhOgA3MWS5I?t=1732

Kod / linki / omówienie:
https://oki.org.pl/robot-movings

Omówienie kodu zadania Robot Movings
https://youtu.be/MhOgA3MWS5I?t=5387

Jak rozwiązywać zadania?
Spisujmy obserwacje!
– tak się rozwiązuje zadania!
https://youtu.be/MhOgA3MWS5I?t=2106

Rozwiążmy najpierw problem jednowymiarowo!
https://youtu.be/MhOgA3MWS5I?t=2174

Na ile sposobów możemy wybrać dwie przerwy z pięciu?
https://youtu.be/MhOgA3MWS5I?t=2362

Na ile sposobów można wybrać 4-osobową delegację z 6-osobowej klasy?
– Dwumian Newtona szybko wytłumaczony
https://youtu.be/MhOgA3MWS5I?t=2723

Czego warto się uczyć?
Kombinatoryka
– potrzebna uczmy się
– nie wszystko można policzyć deterministycznie
https://youtu.be/MhOgA3MWS5I?t=2856

Rozwiązanie jednowymiarowe przekładamy na dwuwymiarowe:
https://youtu.be/MhOgA3MWS5I?t=2929

Wybieramy oddzielnie punkty skrętu na każdej ze ścian:
https://youtu.be/MhOgA3MWS5I?t=3544

Jak wygląda rozwiązanie naszego zadania
https://youtu.be/MhOgA3MWS5I?t=4076

Co musimy policzyć?
– a tak naprawde komputer!
https://youtu.be/MhOgA3MWS5I?t=4446

Jakie działania możemy robić modulo, a jakich nie możemy?
– nie możemy robić dzielenia
– a dzielenie mamy w dwumianie Newtona
https://youtu.be/MhOgA3MWS5I?t=4552

Małe Twierdzenie Fermata:
https://youtu.be/MhOgA3MWS5I?t=4816

Potrzebujemy matematyki
– startujmy w Olimpiadzie
– młotki, wiertarki
– Szymon też się zapisał na kółko matematyczno
– PRZYDAJE SIĘ!
– algorytmika bliska matematyce – łączy się
https://youtu.be/MhOgA3MWS5I?t=5064

Przechodzimy z dzielenia na potęgowanie dzięki Małemu Twierdzeniu Fermata:
– dał na Fermat nie wiedząc że będą komputery
– dał nam tą wiertarkę
https://youtu.be/MhOgA3MWS5I?t=5186

Jak wczytywać do końca danych?
https://youtu.be/MhOgA3MWS5I?t=5653

Angielski, czysty kod i zalecenia Szymona:
https://youtu.be/MhOgA3MWS5I?t=5891

Challenge Olimpiada OD PODSTAW #26:
https://youtu.be/MhOgA3MWS5I?t=6463

Zapowiedź OKI #27 – Sortowanie topologiczne:
– jest zawsze
– piękny i łatwy temat
https://youtu.be/MhOgA3MWS5I?t=6522

Zapraszam na grę Dino!
– rozerwać się
– nie grać a samemu pisać gry!
https://youtu.be/MhOgA3MWS5I?t=6559

 

Programowanie OD PODSTAW #26 – wtorek, 9 kwietnia 2022, 18:00
Link do zajęć: https://youtu.be/p8INEVvQjSw?t=12
Temat: Obsługa drukarki – własny projekt

Pełny projekt
– profesjonalny system wydruku
– po angielsku / github / pochwalić
https://youtu.be/p8INEVvQjSw?t=12

Pies – drogi czy tani?
Programowanie to pasja, przygoda
– pies robot pilnuje Pompei
– 67 000 dolarów
– sprawdza podkopy, pilnuje czy ruiny są w dobrym stanie, stróżuje
– fantastyczna przyszłość przed nami / po to się przygotowujemy
– mnóstwo programowania / algorytmika
– pisząc programy, startując w Olimpiadzie przygotowujemy się do takich projektów
– szukać otwartych projektów
– zadania, challenge to jest ta droga
https://youtu.be/p8INEVvQjSw?t=55

Za nami USACO
– Najlepiej przygotowywać się startując w konkursach
– Piotr awansował do grupy GOLD
– miejsca są ważne
– najważniejsze to czego się nauczyliśmy / github / krok w stronę przygody
https://youtu.be/p8INEVvQjSw?t=182

Jak dołączyć do projektu programistycznego?
– szukać w internecie
– niekoniecznie jako programista / tester na początek?
https://youtu.be/p8INEVvQjSw?t=248

Quiz Programowanie obiektowe / class / klasy:
https://youtu.be/p8INEVvQjSw?t=1054

Zadanie Serwer wydruków – omówienie:
https://youtu.be/p8INEVvQjSw?t=2443

Pomysł na start-up
– kto potrzebuje serwer wydruków?
– na czym polega serwer wydruków?
– bardzo użyteczna rzecz – wiele komputerów może drukować nawet w omu
– szansa by zacząć Software House
https://youtu.be/p8INEVvQjSw?t=2485

Kod / linki / omówienie zadania Serwer wydruków:
https://oki.org.pl/serwer-wydrukow

Co to jest Software House?
– pisanie aplikacji na zamówienie
– aplikacje dedykowane
– apteka / drukarka / rowery miejskie / edukacja zdalna
– są gotowe ale często chcemy ubranie na miarę
– szyje oprogramowanie na miarę
– Drukarex – szansa by stworzyć swój Software House
https://youtu.be/p8INEVvQjSw?t=2564

Krótkie podsumowanie treści zadania:
https://youtu.be/p8INEVvQjSw?t=2892

Kod klasy tworzącej kolejkę:
https://youtu.be/p8INEVvQjSw?t=3003

Omówienie kolejki – klasy utworzonej na poprzednich zajęciach:
– jak działa?
https://youtu.be/p8INEVvQjSw?t=3076

Jak obsługiwać polecenia które przychodzą do systemu wydruków?
– switch/case w c++
https://youtu.be/p8INEVvQjSw?t=3419

Obsługujemy przychodzące polecenia do drukarki:
– dodajemy kolejne żadanie drukowania:
https://youtu.be/p8INEVvQjSw?t=4086

Czy nasz program tworzący serwer wyrduku nie powinien być klasą?
– absolutnie tak!
https://youtu.be/p8INEVvQjSw?t=4240

Dodajemy size do naszej kolejki mqueue:
– rozmiar kolejki to różnica między ostastnim i pierwszym elementem
https://youtu.be/p8INEVvQjSw?t=4408

Obsługujemy informacje że drukarka jest wolan (g)
https://youtu.be/p8INEVvQjSw?t=5210
Podsumowanie obsługi polecenia typu (g):
https://youtu.be/p8INEVvQjSw?t=6073

Wypisujemy statystyki (polecenie s):
https://youtu.be/p8INEVvQjSw?t=6213

Obliczamy expected_time:
https://youtu.be/p8INEVvQjSw?t=6485

Podsumowanie rozwiązania / kodu:
https://youtu.be/p8INEVvQjSw?t=6934

Nasze zadanie rozwiązane jako oddzielna klasa:
– tworzymy class który realizuje serwer wydruku
https://youtu.be/p8INEVvQjSw?t=7540

Challenge #26:
https://youtu.be/p8INEVvQjSw?t=7371

OKIGRA #1 – zapowiedź – piszemy grę DINO!
https://youtu.be/p8INEVvQjSw?t=848

 

Olimpiada OD PODSTAW #25 – czwartek, 31 marca 2022, 18:00
Link do zajęć: https://youtu.be/djKP7RKPRC0?t=30
Temat: Szybkie potęgowanie

Dlaczego nie ma Tomka?
– Finał Olimpiady Matematycznej?
https://youtu.be/djKP7RKPRC0?t=30

Dlaczego warto rozwiązywać problemy?
Co może najszybszy komputer świata?
Czy najszybszy komputer świata da radę?
Problem n hetmanów rozwiązany!
– jak ustawić każdego hetmana?
– ilość możliwości 2^n
– problem n hetmanów
– ile operacji dla szachownicy 8×8 oraz 10×10
– najszybszy komputer świata
https://youtu.be/djKP7RKPRC0?t=51

Potrzeba naszej inteligencji, pomysłów do problemów tego świata:
– do wymyślenia leku, plastiku – komputer się zaliczy
– to co robi Tomek – Olimpiada Matematyczna – powie komputer jak robić szybciej
– dziś skrócimy rozwiązanie problemu z milionów lat do sekund
– startujmy w Olimpiadzie Matematycznej
https://youtu.be/djKP7RKPRC0?t=298

Odkrycie na miarę Pitagorasa?
– znany problem!
– zamiast 40 tys. lat dla 10×10 znamy odpowiedź w czasie zerowym
https://youtu.be/djKP7RKPRC0?t=466

Za tydzień Tomek na III etapie OI-a
– III etap to stres
– podejdźmy do takich konkursów na zasadzie koncentracji
https://youtu.be/djKP7RKPRC0?t=538

Kto jest zwycięzcą?
Tomek już jest zwycięzcą
– poznał wiele algorytmów
– inteligencja się wykształciła
https://youtu.be/djKP7RKPRC0?t=576

Złożoność – quiz
Quiz tłumaczącą złożoność
https://youtu.be/djKP7RKPRC0?t=618

Czym zajmuje się uczestnik Olimpiad?
Czym zajmuje się Jedrzej?
– algorytmy parametryozowane
– czy przydała się olimpiada?
– skupienie się na problemie
https://youtu.be/djKP7RKPRC0?t=2350

Zadanie Masakracja faktami i logiką:
https://youtu.be/djKP7RKPRC0?t=2476

Treść / kod / omówienie zadania Masakracja faktami i logiką:
https://oki.org.pl/masakracja-faktami-i-logika

Omówienie kodu zadania Masakracja faktami i logiką:
https://youtu.be/djKP7RKPRC0?t=5394

Challenge #25:
https://youtu.be/djKP7RKPRC0?t=6444

Pomyślmy:
– nieważne czy zrobimy czy nie
– w drodze szkoły, na spacerze z psem
– nabywamy doświadczenia, ćwiczymy nasz umysł
https://youtu.be/djKP7RKPRC0?t=6479

OKI #26 – wykorzystamy szybkie potęgowanie
https://youtu.be/djKP7RKPRC0?t=6506

Szybkie potęgowanie – quiz:
Quiz szybkie potęgowanie:
https://youtu.be/djKP7RKPRC0?t=6622

Dlaczego logarytm?
https://youtu.be/djKP7RKPRC0?t=7182

Zapraszam na zajęcia z Szymonem:
https://youtu.be/djKP7RKPRC0?t=7311

 

Olimpiada DLA ZAAWANSOWANYCH #25 – poniedziałek, 28 marca 2022, 18:30
Link do zajęć: https://youtu.be/nzHi-z1dmQ4?t=139
Temat: Funkcja low

Czy matematyka przydaje się w codziennym życiu?
– podstawy działań
– lekko skrócić włosy czy 15 mm?
– problem włosów Mikołaja
https://youtu.be/nzHi-z1dmQ4?t=139

Funkcja Low:
https://youtu.be/nzHi-z1dmQ4?t=1155

Mosty, punkty artykulacji, dwuspójne
https://youtu.be/nzHi-z1dmQ4?t=1560

Drzewo rozpinające / funkcja Low
https://youtu.be/nzHi-z1dmQ4?t=1587

Co to jest funkcja low?
https://youtu.be/nzHi-z1dmQ4?t=1895

Zadanie Blokada:
https://youtu.be/nzHi-z1dmQ4?t=3548

Piękna historia Knicked – w komentarzu!
https://youtu.be/nzHi-z1dmQ4?t=5780

 

Programowanie OD PODSTAW #25 – wtorek, 29 marca 2022, 18:00
Link do zajęć:
Temat: Kolejka – własna klasa

Sami piszemy C++!
Możesz napisać sam – możesz napisać lepiej!
– profesjonalny system wykorzystywany w wielu miejscach
https://youtu.be/b9Kvj81xIYk?t=12

– Dlaczego? By ulepszyć?
– Kolejka jest w C++ – też możesz napisać co ma język programowania możesz napisać sam
– ktoś pomyślał , napisał – my tez możemy
https://youtu.be/b9Kvj81xIYk?t=30

Czym jest kolejka?
– kolejka w banku FIFO
– drukarka / infolinia / przesyłanie danych / system operacyjny
https://youtu.be/b9Kvj81xIYk?t=99

Język angielski
– kod / komentarz
– chcąc brać udział w projektach musimy znać angielski
– repo na github żeby było znalezione musi być angielsku
– aplikacje które napiszemy muszą być na cały świat
https://youtu.be/b9Kvj81xIYk?t=201

Urząd, przychodnia, … – wszędzie są… kolejki!
Implementacje kolejek – systemy w urzędzie, przychodni:
https://youtu.be/b9Kvj81xIYk?t=361

Programowanie obiektowe – wytłumaczenie w formie quizu:
https://youtu.be/b9Kvj81xIYk?t=527

Omówienie zadania Kolejka:
https://youtu.be/b9Kvj81xIYk?t=1892

Obserwacja na miarę programu komputerowego!
– kolejka do banku inspiracją do programu komputerowego
https://youtu.be/b9Kvj81xIYk?t=1911

Wartości zmiennych po utworzeniu klasy:
https://youtu.be/b9Kvj81xIYk?t=3752

Konstruktor:
https://youtu.be/b9Kvj81xIYk?t=3990

Challenge #25:
https://youtu.be/b9Kvj81xIYk?t=7741

 

Olimpiada DLA ZAAWANSOWANYCH #24 – poniedziałek, 21 marca 2022, 18:30
Link do zajęć: https://youtu.be/YgxmuDg4XIY?t=1240
Temat: Algorytmy zachłanne

Dlaczego algorytmy zachłanne?
https://youtu.be/YgxmuDg4XIY?t=1240
Przesłanie z dziś
https://youtu.be/YgxmuDg4XIY?t=1382
Na czym polega zachłan?
https://youtu.be/YgxmuDg4XIY?t=1411
Klasyczny problem / algorytm zachłanny – ropa naftowa:
https://youtu.be/YgxmuDg4XIY?t=1435
Kiedy dynamik staje się zachłanem?
https://youtu.be/YgxmuDg4XIY?t=1700
Dlaczego nasz zachłan działa?
https://youtu.be/YgxmuDg4XIY?t=1754
Szkic dowodowy większości zachłanów:
https://youtu.be/YgxmuDg4XIY?t=1792
Sprawdzenie poprawności rozwiązania – piszemy bruta:
https://youtu.be/YgxmuDg4XIY?t=2017
Zadanie Szeregowanie czynności – Finał OI – Klasyczny problem zachłanny
https://youtu.be/YgxmuDg4XIY?t=2101
Metoda Dzika karta:
https://youtu.be/YgxmuDg4XIY?t=3401
Zadanie Czekolada – OI 5 – I etap
https://youtu.be/YgxmuDg4XIY?t=3488
Zadanie Dynamik:
https://youtu.be/YgxmuDg4XIY?t=4760
Zadanie Luk tryumfalny:
https://youtu.be/YgxmuDg4XIY?t=4873

 

Olimpiada OD PODSTAW #24 – czwartek, 24 marca 2022, 18:00
Link do zajęć: https://youtu.be/TSj1TsKUSR8?t=32
Temat: Zadanie Giełda – Zaawansowane Programowanie dynamiczne

To zadanie pięknie pokazuje jak rozwiązywać zadania
– poszczególne obserwacje
– kolejne zbicia złożoności

Za tydzień – OKI #25 – Szybkie Potęgowanie:
https://youtu.be/TSj1TsKUSR8?t=32

Amerykańska Olimpiada!
https://youtu.be/TSj1TsKUSR8?t=78
Jak działa USACO?
– mamy 4h które sami wybieramy
https://youtu.be/TSj1TsKUSR8?t=143

Czym są dynamiki? – QUIZ:
https://youtu.be/TSj1TsKUSR8?t=331

Na ile sposobów możemy przejść grid?
– To odwrócony Trójkąt Pascala
https://youtu.be/TSj1TsKUSR8?t=731

Omówienie zadania Giełda – Mistrz Programowania 2022:
https://youtu.be/TSj1TsKUSR8?t=1095

Kod / omówienie / linki:
https://oki.org.pl/gielda

Rozwiązanie brutalne:
https://youtu.be/TSj1TsKUSR8?t=1752

Kluczowy moment:
– wynik dla 5 dnia: albo nie korzystamy albo korzystamy z 5- tego dnia
– gdy korzystamy to mamy wynik z ostatniego kupna/sprzedaży + poprzednie zyski
https://youtu.be/TSj1TsKUSR8?t=2220

Co będzie odpowiedzią na nasze zadanie?
– wynik dla n-tego dnia / wynik dla wszystkich n-dni
https://youtu.be/TSj1TsKUSR8?t=2543

Podsumowanie naszego algorytmu – pseudokod:
https://youtu.be/TSj1TsKUSR8?t=2555

Kluczowe pytanie – czy możemy mieć kilka akcji na raz?
https://youtu.be/TSj1TsKUSR8?t=2925

Idea naszego rozwiązania
– rozpatrujemy ostatni dzień -> sprzedajemy lub nie
– jeśli nie to wynik z poprzedniego dnia
– jeśli tak to pytanie kiedy kupić
https://youtu.be/TSj1TsKUSR8?t=2952

Złożoność tego rozwiązania – kwadratowa:
https://youtu.be/TSj1TsKUSR8?t=2998

Nasze zadanie otrzymałoby 50% punktów
– wymaga około 10^12 operacji
https://youtu.be/TSj1TsKUSR8?t=3080

Jak przyspieszyć nasze rozwiązanie – zbić złożoność z n^2 do n?
– jedna kluczowa obserwacja
– szukamy tej obserwacji
– musimy przejść po wszystkich elementach – pierwsza pętla nie do ruszenia
https://youtu.be/TSj1TsKUSR8?t=3102

Co było naszym brutem?
– wybieramy max z poprzednich wartości – to wymaga przejrzenia wszystkich poprzednich
https://youtu.be/TSj1TsKUSR8?t=3253

Co u nas się zmienia?
https://youtu.be/TSj1TsKUSR8?t=3370

Jeśli nie zmieniają nam się dwie wartości możemy je usunąć z liczenia maksimum
– liczymy cześć zmienną maksimum
– część stałą dodajemy na końcu
https://youtu.be/TSj1TsKUSR8?t=3480

Co nam daje wyjęcie dwóch wartości z liczenia maksimum?
– patrzymy co liczy nasza pętla – maksimum z jakiś wartości
https://youtu.be/TSj1TsKUSR8?t=3642

Liczymy dp[8]
– które wartości są niezmienne?
– poprzednie maksima są ok / takie same
– wystarczy policzyć jedno maksimum o 1miejsce
– wystarczy stablicować poprzednie maksima
– a tak naprawdę pamiętać poprzedni max – jedna zmienna która będzie to pamiętać
– pozbyliśmy się rzeczy zależnych od j
https://youtu.be/TSj1TsKUSR8?t=3950

Podsumowanie naszej obserwacji:
– pętla cały czas przechodzi po tych samych wartościach
– nie ma sensu – wystarczy pamiętać maksimum z dotychczasowych wartości a nie przechodzić po niej bez końca
https://youtu.be/TSj1TsKUSR8?t=4159

Aktualizujemy nasz pseudokod:
– skraca się
https://youtu.be/TSj1TsKUSR8?t=4229

Złożoność jest teraz liniowa:
https://youtu.be/TSj1TsKUSR8?t=4453

Kod
– Tomek ceni dynamiki za zwięzły kod
https://youtu.be/TSj1TsKUSR8?t=4508

Sami spróbujmy napisać kod
– napisać brutalnie
– optymalizować
https://youtu.be/TSj1TsKUSR8?t=4790

Pomysł jest często spotykany!
Pomysł na to zadanie jest trudny:
– często się pojawia zadanie na konkursach, że n^2 jest prosty
– ale potem cięższa obserwacja że można wyciągnąć coś stałego poza maksimum i wystarczy pamiętać jedną zmienną – złożoność n
– jak by brzmiało zadanie którego nie da się zbić ze złożoności n^2 do n
https://youtu.be/TSj1TsKUSR8?t=4822

Dynamik vs zachłan:
Zadanie zając/królik i zbieranie marchewek:
– rozwiązanie zachłanne (bierzemy maxaz tego co można) nie zadziałą
– potrzebujemy dynamika
https://youtu.be/TSj1TsKUSR8?t=5144

Challenge #24:
https://youtu.be/TSj1TsKUSR8?t=5420

Liczy się pula!
Nie każde zadanie damy radę rozwiązać, ale liczy się to że pula zadań do rozwiązania się powiększa!
https://youtu.be/TSj1TsKUSR8?t=5731

Co najtrudniej wymyśleć w dynamiku?
W dynamiku najtrudniej wymyśleć wzór
– kod potem banalny
– przepisać
https://youtu.be/TSj1TsKUSR8?t=5750

 

Programowanie OD PODSTAW #24 – wtorek, 23 marca 2022, 18:00
Link do zajęć: https://youtu.be/qIfoWJKJVqA?t=12
Temat: GitHub

Cel? Wakacje!
Dlaczego GitHub?
– na poprzednich zajęciach analizator logów
– światło nie pod kocem – mamy informowac świat o naszych możliwościach
– chcemy dołączyć do zespołu / projektu (analizator logów, sprawnemiasto.pl, gra)
– dlatego chcemy by nasz kod był publiczny
– ale żebyśmy mogli pisać kod w grupie
– do pracy grupowej / współdzielenia kodu służy GitHub
https://youtu.be/qIfoWJKJVqA?t=12

Obóz stowarzyszenia Talent:
– algorytmiczne
– jest też nauka programowania
– zachęcam
– obozy wakacyjne
https://youtu.be/qIfoWJKJVqA?t=120

W ten weekend Amerykańska Olimpiada USACO:
– programistycznie / algorytmicznie
– warto pokazać światu co umiemy
– renoma, zmierzenie się z kolegami i koleżankami z całego świata
– opis grup
https://youtu.be/qIfoWJKJVqA?t=188

Cel? Wakacje!
Dołączmy w wakacje do projektu!
– fun wykorzystać wiedzę
– fun pomóc
– dlatego ćwiczymy zaawansowane struktury
– dołączmy do zespołu open source / wspólnie z kolegami stwórzmy grupę
– musimy pokazać swoją wiedzę grupie do której chcemy dołączyć
– ale też musimy umieć współpracować w grupie / znać narzędzia
– w tym pomoże nam GitHub
https://youtu.be/qIfoWJKJVqA?t=3352

Czym jest GitHub?
– możliwość pokazania tego co umiem / naszego kodu światu / piszmy ładny kod / wyszukiwarki (map / USACO)
– wersjonowanie
– kopia zapasowa / backup
– Praca grupowa / łączenie kodu napisanego przez wiele osób
https://youtu.be/qIfoWJKJVqA?t=3507

Przykład kodu na GitHub który jest zaindeksowany przez wyszukiwarkę
– rozwiązanie zadania Auqapark / OIJ
– wiadomo, że MarkoWanga to mocny gość
– ładnie opisany kod / chwila / a pięknie pokazuje swoje możliwości
https://youtu.be/qIfoWJKJVqA?t=3641

Czego nie wolno robić na GitHub?
– nie wrzucamy zadań z otwartych konkursów / aktualnych prac domowych / projektów na ocenę czy zaliczenie
https://youtu.be/qIfoWJKJVqA?t=3772

Jak stworzyć projekt programistyczny w wakacje?
https://youtu.be/qIfoWJKJVqA?t=3826

Tworzymy konto na GitHub – v1:
https://youtu.be/qIfoWJKJVqA?t=356
Zakładamy konto na GitHub – v2:
Kończymy zakładanie konta na GitHub:
https://youtu.be/qIfoWJKJVqA?t=3924

Git vs GitHub:
– GitHub -> udostępnianie kodu w chmurze
– Git -> lokalne repozytorium synchronizowane z GitHub-em
https://youtu.be/qIfoWJKJVqA?t=4073

Tworzymy repozytorium w GitHub:
– podstawowy element
– folder
https://youtu.be/qIfoWJKJVqA?t=4183

Co można przechowywać w GitHub?
– wszystkie wersje wypracowań z polskiego
https://youtu.be/qIfoWJKJVqA?t=4467

Wrzucamy pierwszą wersję programu do repozytorium GitHub-a:
– pierwsza wersja analizatora logów:
– opis pliku na początku pliku
https://youtu.be/qIfoWJKJVqA?t=4618

Commit changes – co to znaczy?
– wersja którą chcę zapamiętać
– omówienie kiedy dajemy commit
https://youtu.be/qIfoWJKJVqA?t=4760

Dodajemy do repo drugą wersję naszego kodu:
– dodajemy dwie linijki do komentarza pliku
– wersjonowanie / mamy wszystkie wersje naszego kodu
– opiszmy kod
https://youtu.be/qIfoWJKJVqA?t=5149

Jak wszystko pamiętać?
– rozumieć
– psuć
– wypisywać wartości / debugować
– czytać dużo by rozumieć
https://youtu.be/qIfoWJKJVqA?t=5476

Wrzucamy trzecią ostateczną wersję kodu:
– widzimy wersje kodu
– mamy kopię zapaspwą
https://youtu.be/qIfoWJKJVqA?t=5510

Nasze repozytorium jest publiczne:
– widoczne z całego świata
– praktycznie gotowe CV
https://youtu.be/qIfoWJKJVqA?t=5656

Dodajemy kolejny plik do naszego repo:
– nasze repo to gotowe CV
– po angielsku
– przyszłość jest nasza – to co umiemy kwalifikuje nas do bycia członkami programistycznych zespołów
https://youtu.be/qIfoWJKJVqA?t=5792

Co to jest branch w GitHub?
– dodatkowe odgałęzienia dla wersji których nie jesteśmy pewni
– debugowanie
– gdy pracujemy w grupie
https://youtu.be/qIfoWJKJVqA?t=5918

Plik readme.md w GitHub:
– opis naszego repo / plik dokumentacji
– w specjalnym języku który nazywa się MarkDown
– edytujemy w repo
– tytuły (# #####) / tekst / linki
https://youtu.be/qIfoWJKJVqA?t=6068

 

Mistrz Programowania 2022 – Podsumowanie
Link do zajęć
: https://youtu.be/DI0lRjXoCGc?t=16
Dlaczego Mistrz Programowania?
– dobrze się bawić
– rośli programistycznie
– motywacja – Każdego dnia mocniejsi
– poznać świat / route 66 / gdzie jest największy basen
– zachęcić do literatury
– historia
https://youtu.be/DI0lRjXoCGc?t=16

Zadanie z interview do gigantów:
– Bambus happy / basen
– historia problem realny
– zadania z pogranicza algorytmiki / programowania
https://youtu.be/DI0lRjXoCGc?t=1085

Chciałbym byście uwierzyli, że możecie, że przyszłość jest Wasza!
– nieważne czy mieszkacie w Mławie, Wrocławie, Kudowie
– Ci gignaci są w Waszym zasięgu
– oni będa prosić
– każdego dnia mocniejsi
– nie porównujemy się do kolegi koleżanki
– porównujemy się do siebie wczoraj
– czy zrobiłem zadanie o 10% mocniejsze
– przyszłość będzie nasza
https://youtu.be/DI0lRjXoCGc?t=1127

Skąd pomysł na konkurs?
– programowanie na konkursach sprawia kłopot
– mamy pomysły ale jest kłopot z programowaniem
https://youtu.be/DI0lRjXoCGc?t=187

Dziękujemy!
– wysiłek
https://youtu.be/DI0lRjXoCGc?t=298

Statystyki:
https://youtu.be/DI0lRjXoCGc?t=1190

Ostateczny ranking – zwycięzcy, wyróżnieni, nagrody:
– dziękuję za każdy pojedynczy punkt
https://youtu.be/DI0lRjXoCGc?t=1649

 

Olimpiada OD PODSTAW #23 – czwartek, 17 marca 2022, 18:00
Link do zajęć: https://youtu.be/H0SxPD5xYvI?t=62
Temat: Programowanie dynamiczne

Gdzie stosujemy programowanie dynamiczne?
– Google Maps
– sprawdzanie pisowni, podobieństw między tekstami
– łączenie dwóch projektów w Git
– baz danych
https://youtu.be/H0SxPD5xYvI?t=62

Wrażenia po II etapie:
https://youtu.be/H0SxPD5xYvI?t=156

Nie zniechęcaj się!
Zachęta by się nie zniechęcać:
– Tomek w II klasie gimnazjum był w finale a w III klasie nie
– nie zniechęcił się, motywacja do pracy
https://youtu.be/H0SxPD5xYvI?t=265

Sumy prefiksowe:
https://youtu.be/H0SxPD5xYvI?t=545

Liczby Fibonacciego:
https://youtu.be/H0SxPD5xYvI?t=645

Zadanie Domino z Olimpiady Informatycznej Juniorów – też wykorzystuje liczby Fibonaciego
https://youtu.be/H0SxPD5xYvI?t=5035

Programowanie dynamiczne – wytłumaczenie:
Czym są dynamiki – wstęp:
– liczymy poprzednie wyniki
– rozwiązanie danego problemu korzysta z poprzednich wyników
– dzielimy problem na podproblemy
– przykładem programowania dynamicznego są sumy prefiksowe
https://youtu.be/H0SxPD5xYvI?t=955

Zadanie Frog / AtCoder – początek omówienia:
https://youtu.be/H0SxPD5xYvI?t=1197

Kod/linki zadania Frog:
https://oki.org.pl/frog/

Warto próbować samemu!
https://youtu.be/H0SxPD5xYvI?t=1545

Nasze pomysły na zadanie Frog:
– rozwiązanie zachłanne nie zadziała
– ale super że mamy włąsne pomysły
https://youtu.be/H0SxPD5xYvI?t=1598

Kiedy nie zadziała rozwiązanie zachłanne – często wówczas rozwiązaniem jest programowanie dynamiczne:
https://youtu.be/H0SxPD5xYvI?t=1777

Nasz pomysł na zadanie Frog?
– po kolei będziemy obliczać wyniki
– nie będzie od razu obliczać całości
– obliczymy wynik dla fragmentu
– obliczymy wynik dobry do drugiego kamienia – zapominając o kolejnych – one nie mają znaczenia dla kamienia dwa
– na tej podstawie obliczymy optymalny koszt dla kamienia trzeciego
– i tak dalej
https://youtu.be/H0SxPD5xYvI?t=1879

Na czym polega programowanie dynamiczne na przykładzie zadania Żabka?
– nie chcieliśmy obliczyć jak szybko żabka dostanie się na ostatni kamień
– podzieliśmy na mniejsze podroblemy
– jak może najlepiej doskoczyć na pierwszy drugi
– na podstawie tych wartości mogliśmy obliczyć jak możemy skoczyć na trzeci kamień
– i tak dalej
https://youtu.be/H0SxPD5xYvI?t=3128

Złożoność naszego rozwiązania – liniowa:
https://youtu.be/H0SxPD5xYvI?t=3487

Dlaczego Tomek lubi dynamiki?
– kod bardzo prosty
https://youtu.be/H0SxPD5xYvI?t=3630

Omówienie kodu zadania Frog:
https://youtu.be/H0SxPD5xYvI?t=3775

Strażnik
– na czym polega
– dlaczego inicjalna wartość komórki zerowej – nie istniejącego kamienia jest 10^9?
– kamień zerowy nie może być zero by był uwzględniony – on nie może być uwzględniony w wyniku – 10^9 nigdy nie będzie dobre
https://youtu.be/H0SxPD5xYvI?t=3869

Na czym polega trudność w dynamikach?
– dwie rzeczy
– wpaść że dynamik
– jaki jest wzorek dynamika?
– jeśli ktoś powie, że zadanie rozwiązał dynamikiem to żadna informacja
– clue – na czym polega, jaki pomysł, jaki wzór
https://youtu.be/H0SxPD5xYvI?t=4300

Podpowiedź dla Pythona – Frog-2:
– wybrać PyPy3 na AtCoder
– PyPy3 jest kompilowany i jest szybsze
https://youtu.be/H0SxPD5xYvI?t=4788

Challenge #23:
https://youtu.be/H0SxPD5xYvI?t=4688

Za tydzień zadanie Giełda!
https://youtu.be/H0SxPD5xYvI?t=4941

Gdzie Tomek nauczył się Informatyki?
– zaczynał od Logomocji
– Gimnazjum C++ / Python
– Pisał kalkulatory
– kółko od Gimnazjum
https://youtu.be/H0SxPD5xYvI?t=5240

 

Programowanie OD PODSTAW #23 – wtorek, 8 marca 2022, 18:00
Link do zajęć: https://youtu.be/oE1AWvTowJ4?t=12
Temat: MAP zaawansowana

Dziś adres IP:
https://youtu.be/oE1AWvTowJ4?t=12

Analiza logów:
– laptopy, serwery, routery – zbierają logi
– pozwalają nam odkryć włamanie, ransomware, defraudacje
– powstaje dużo start-upów które analizują logi i wykrywają założenie – zbijają fortunę
– logów jest dużo GB/TB
– potrzeba analizować codziennie, kojarzyć, komputery są za wolne
– odsiać to co jest istotne od szumu informacyjnego
– szansa dla nas by założyć start-up, który lepiej będzie te logi analizować
https://youtu.be/oE1AWvTowJ4?t=20

Jak powstał Google?
– jako pierwszy wpadł że tym ważniejsza jest strona im więcej linków do niej prowadzi
https://youtu.be/oE1AWvTowJ4?t=178

W analizie logów też potrzeba wielu pomysłów – tak jak w Google’u
– dziś będzie pomysł, przepis na start-up
– napiszemy analizator logów
– znajdźmy lukę – tak jak Mateusz zrobił projekt Sprawne Miasto – nie ma gdzie zgłaszać awarii w okolicy
– zbliżają się wakacje, zachęcam
https://youtu.be/oE1AWvTowJ4?t=213

Posumowanie II etapu OIJ
– emocjonujemy się progiem
– najważniejsze jest to czego się nauczyliśmy
– jeśli kochamy programowanie, rozwiązywanie problemów – to znajdziemy grupę!
– discord OKI, zajęcia OKI – znajdziemy miejsce do tego by robić ciekawe rzeczy
– poczekajmy spokojnie na próg
https://youtu.be/oE1AWvTowJ4?t=255

Strona z podsumowaniem Mistrza Programowania:
– linki do zadań/ wrzucania
– ranking
– statystyki
– rozwiązania zadań
https://youtu.be/oE1AWvTowJ4?t=416

Czy można oszukać logi?
– dlatego potrzebne są programy które nie pozwolą na oszukiwanie
– można wszystko analizować, komputer nie na wszystko ma czas
– może to my założymy ten start-up
https://youtu.be/oE1AWvTowJ4?t=559

Co to jest map? – quiz kahoot
– zaczynamy od przykładu tablicy
– jedna komórka a nie 200 zajętych
– indeksy liczby, miasta – cokolwiek
https://youtu.be/oE1AWvTowJ4?t=709

Zadanie – Analizator logów
https://youtu.be/oE1AWvTowJ4?t=1636

Pomysł na start-up! – Treść Zadania / inspiracja – Analizator logów
– wszystko ma adres IP
– aplikacja licealistów
– dużo danych – jak odsiać szum od zagrożenia – zrobić to w sensownym czasie
– stworzyć zespół
– wszystko zaczyna się od wersji 1.0 – od pierwszego kroku
https://youtu.be/oE1AWvTowJ4?t=1679

Co to jest adres IP?
– część sieciowa / host
– oktety
– adres IP to konkretny adres / numer telefonu
– klasy adresowe – część sieciowa / hosta
–  pokazanie własnego adresu ip – ipconfig / cmd / Windows
https://youtu.be/oE1AWvTowJ4?t=1869

Adres IP – skrót
– cztery oktety / liczby
– część identyfikuje sieć / część identyfikuje host – w zależności od klasy
https://youtu.be/oE1AWvTowJ4?t=2309

Nasze zadanie – omówienie – treści zadania:
https://youtu.be/oE1AWvTowJ4?t=2387

Rozpoczynamy pisanie kodu zadania Analizator logów:
https://youtu.be/oE1AWvTowJ4?t=3064

Konstrukcja naszego programu:
– omówienie konstrukcji switch
– oparta na switch
– delektujemy się – dlatego nie if
https://youtu.be/oE1AWvTowJ4?t=3328

Jak debugować?
– wypisywanie wartości / znaczniki
https://youtu.be/oE1AWvTowJ4?t=3667

Gdzie trzymamy nasze adres IP?
– omówienie mapy
– co jest indeksami? – wektor
– wartościami ile razy dany adres wystąpił
– rysujemy jak to wygląda
https://youtu.be/oE1AWvTowJ4?t=3816

Wypisujemy wszystkie elementy map
– przechodzimy iteratorem
– wypisujemy adresy IP
https://youtu.be/oE1AWvTowJ4?t=5768

Elementy map-y nie są uporządkowane tak jak chcieliśmy:
– elementy w mapie są posortowane domyślnie
https://youtu.be/oE1AWvTowJ4?t=5973

Jak uporządkować mapę według naszego kryterium?
– uporządkowujemy po kluczu
– według ostatniej wartości a potem po pierwszych trzech
https://youtu.be/oE1AWvTowJ4?t=6040

Wypisywanie elementów map i uporządkowanie kluczy według własnego kryterium – quiz
https://youtu.be/oE1AWvTowJ4?t=8368

Uporządkowanie kluczy map według własnego kryterium – quiz
https://youtu.be/oE1AWvTowJ4?t=8483

 

Skrócone omówienie kodu:
https://youtu.be/oE1AWvTowJ4?t=6511

Jak działa clear() w vector?
https://youtu.be/oE1AWvTowJ4?t=7444

Przekazywanie parametrów przez wartość i przez referencję:
https://youtu.be/oE1AWvTowJ4?t=7759

Challenge #23 – opis:
https://youtu.be/oE1AWvTowJ4?t=7166

OKI #24 – GitHub:
https://youtu.be/oE1AWvTowJ4?t=7183

 

 

Olimpiada DLA ZAAWANSOWANYCH #23 – poniedziałek, 14 marca 2022, 18:30
Link do zajęć: https://youtu.be/PwMsedcXmJM?t=946
Temat: MST – Minimalne Drzewo Rozpinające

MST – Minimalne Drzewo Rozpinające
https://youtu.be/PwMsedcXmJM?t=946

Po co się uczymy algorytmów?
– upraszczamy zadanie do znanego algorytmu?
– jak rozwiązywać zadania
https://youtu.be/PwMsedcXmJM?t=1071

Historia algorytmu MST
– pan Borówka / Czech
– jak najtaniej położyć kable telefoniczne
– połączenie musi istnieć – nie musi być najkrótsze
– cykle bez sensu
https://youtu.be/PwMsedcXmJM?t=1123

Algorytm Borówki:
https://youtu.be/PwMsedcXmJM?t=1216

Złożoność algorytmu Borówki:
https://youtu.be/PwMsedcXmJM?t=1392

Algorytm Prima – Algorytm Jarnika
– także Czech (Jarnik)
– Prim (USA)
https://youtu.be/PwMsedcXmJM?t=1736

Złożoność algorytmu Prima:
https://youtu.be/PwMsedcXmJM?t=1899

Algorytm Prima – podobny do Dijkstry:
https://youtu.be/PwMsedcXmJM?t=2119

Algorytm Kruskala:
– najczęściej używany
– najprostszy do napisania, dobra złożoność
– bierzemy najkrótsze krawędzie które łączą spójne
https://youtu.be/PwMsedcXmJM?t=2320

Dlaczego najczęściej używamy Kruskala?
https://youtu.be/PwMsedcXmJM?t=2788

Zadanie Bajtocja – I etap I OIG
https://youtu.be/PwMsedcXmJM?t=2835
Złożoność rozwiązania:
https://youtu.be/PwMsedcXmJM?t=3802

Algorytmy zachłanne są często na Olimpiadzie / finale:
https://youtu.be/PwMsedcXmJM?t=4800

Porównanie algorytmów MST:
– każdy może być najszybszy / najwolniejsze – w zależności od danych
– Kruskal -> grafy rzadkie, Prim -> grafy gęste
https://youtu.be/PwMsedcXmJM?t=4820

 

Olimpiada OD PODSTAW #22 – czwartek, 9 marca 2022, 18:00
Link do zajęć: https://youtu.be/Ct7Fk6bExyI?t=16
Temat: Quizy algorytmiczne

Olimpiada to droga która będzie trwać!
– przyspieszamy działanie komputera milion razy!
– będziemy znajdować leki, strategie
https://youtu.be/Ct7Fk6bExyI?t=16

Historia pewnego ucznia
– rok po olimpiadzie
– czasami
– usprawnił pakowanie paczek
– znalazł algorytm który zmniejszał ilość paczek o 10%
– nasza przygoda będzie trwać – w Polsce, za granicę
– samochody, kilometry, centra dyspozycyjne – wszędzie nas potrzeba
– przed nami przszyłość – hackatony, challenge – firmy nas potrzebują
https://youtu.be/Ct7Fk6bExyI?t=69

Nasze zajęcia to “jak rozwiązywać zadania”!
– pokażemy na podstawie dwóch algorytmów
– Pomysł jest najważniejszy!
https://youtu.be/Ct7Fk6bExyI?t=169

Dlaczego nie ma Tomka Kwiatkowskiego?
– fun rozwiązywania problemów
– ma powodzenie – jest w III etapie OM oraz OI-a – to też nasz sukces
https://youtu.be/Ct7Fk6bExyI?t=220

Dziękuję za Mistrza Programowania!
– mnóstwo odkrywania, kodowania
– poznaliśmy programowanie, co możemy robić (bugi), świat (Route 66, palindromy i Kochanowski)
– gala
https://youtu.be/Ct7Fk6bExyI?t=261

Quiz Mistrz Programowania
– najfajniejsze zadanie…
https://youtu.be/Ct7Fk6bExyI?t=306

Rozwiązujemy problem spójnych przedziałów o sumie 5 – tylko liczby dodatnie:
https://youtu.be/Ct7Fk6bExyI?t=622

Brutalne rozwiązanie też dostaje punkty – jeśli nie mamy innego pomysłu piszemy bruta!
https://youtu.be/Ct7Fk6bExyI?t=1326

Algorytm gąsienicy:
https://youtu.be/Ct7Fk6bExyI?t=1703

Na konkursie – walczymy do końca!
– rozwiązanie wrzucone 10s przed końcem pozwoliło awansować na I miejsce!
– wypiszmy wszystkie swoje obserwacje
https://youtu.be/Ct7Fk6bExyI?t=3250

Sumy prefiksowe:
https://youtu.be/Ct7Fk6bExyI?t=3401

Problem – znaleźć ilość spójnych przedziałów o sumie 3 – liczby ujemne:
https://youtu.be/Ct7Fk6bExyI?t=5201

Dlaczego ten problem nie możemy być rozwiązany gąsienicą:
https://youtu.be/Ct7Fk6bExyI?t=5312

Pomysł uczetnika:
https://youtu.be/Ct7Fk6bExyI?t=5510

Optymalne rozwiązanie problemu:
https://youtu.be/Ct7Fk6bExyI?t=5848

map – bardzo ważna struktura!
https://youtu.be/Ct7Fk6bExyI?t=6971

Od czego zaczynamy konkurs?
https://youtu.be/Ct7Fk6bExyI?t=7331

Powodzenia!
https://youtu.be/Ct7Fk6bExyI?t=7606

 

Programowanie OD PODSTAW #22 – wtorek, 8 marca 2022, 18:00
Link do zajęć: https://youtu.be/guEW16OFGCg?t=12
Temat: Błędy i ich znajdowanie

Radość z debugowania!
– po 6h znaleziony bug
https://youtu.be/guEW16OFGCg?t=12
Startujmy w Olimpiadzie!
– rozwiązujemy problemy
– metodologia
– architektura komputerów
https://youtu.be/guEW16OFGCg?t=54

Błędy – łatwo zrobić – jak znajdować?
https://youtu.be/guEW16OFGCg?t=97

Błędy są fajne!
– pozwalają wniknąć – jak działa język programowania
– lepiej programowanie będziemy w stanie wykorzystać
https://youtu.be/guEW16OFGCg?t=114

Jak znajdujemy błędy – nasz opinie:
https://youtu.be/guEW16OFGCg?t=150

Dziękuję za piękne edytory!
https://youtu.be/guEW16OFGCg?t=233

Zapraszam na Galę Mistrz Programowania:
https://youtu.be/guEW16OFGCg?t=405

Gratulacje dla Tomka Kwiatkowskiego – naszego prowadzącego czwartkowe zajęcia Olimpiada OD PODSTAW:
https://youtu.be/guEW16OFGCg?t=472

Bedy w pętlach:
https://youtu.be/guEW16OFGCg?t=848

Jak debugować?
https://youtu.be/guEW16OFGCg?t=2709

Błędy w zmiennych:
https://youtu.be/guEW16OFGCg?t=4608

Błędy w zakresie zmiennych:
https://youtu.be/guEW16OFGCg?t=5686

Za tydzień ADRES IP!
https://youtu.be/guEW16OFGCg?t=3878

 

Olimpiada DLA ZAAWANSOWANYCH #23 – poniedziałek, 7 marca 2022, 18:30
Link do zajęć: https://youtu.be/0IY-WfPG2fU?t=909
Temat: Teoria liczb

Zaawansowana teoria liczb – specyficzny temat:
– 2 razy w trakcie OI-a Mikołaja
– FFT
– Rozszerzone sito Eratostenesa
https://youtu.be/0IY-WfPG2fU?t=909

Zaawansowana teoria liczb czyli:
– Rozszerzony algorytm Euklidesa
– Symbole Newtona
– Tocjent Eulera – Funkcja fi
https://youtu.be/0IY-WfPG2fU?t=1082

Rozszerzony Euklides:
https://youtu.be/0IY-WfPG2fU?t=1142

Gdzie wykorzystujemy rozszerzonego Euklidesa?
https://youtu.be/0IY-WfPG2fU?t=2225

Zadanie z rozszerzonym algorytmem Euklidesa:
https://youtu.be/0IY-WfPG2fU?t=2274

Symbol Newtona:
https://youtu.be/0IY-WfPG2fU?t=2577

Do czego przydaje się Symbol Newtona?
https://youtu.be/0IY-WfPG2fU?t=3190

Problem słoików i fasolek:
https://youtu.be/0IY-WfPG2fU?t=3457

Funkcja fi – tocjent Eulera:
https://youtu.be/0IY-WfPG2fU?t=3870

Co to znaczy, że funkcja fi jest multiplikatywna:
https://youtu.be/0IY-WfPG2fU?t=4106

Jak szybko liczyć funkcje fi?
https://youtu.be/0IY-WfPG2fU?t=4208

Do czego służy Euler tocjent?
– zadanie na tocjent
https://youtu.be/0IY-WfPG2fU?t=4366

Kiedy przydaje się teoria liczb?
https://youtu.be/0IY-WfPG2fU?t=4842

Gra jest fantastyczna
– taka sama jak profesjonalna gra Dino
– napisaliśmy profesjonalną grę!
– pokazać
https://youtu.be/e0t_EzkQ-0c?t=8139

Podsumowanie kodu całej gry:
https://youtu.be/e0t_EzkQ-0c?t=8217

Dziękuję za piękne video:
– pokazac
https://youtu.be/e0t_EzkQ-0c?t=8974

Nasze grawitacje:
– pokazać
– radość
https://youtu.be/e0t_EzkQ-0c?t=9030

Challenge #3 Piszemy grę:
https://youtu.be/e0t_EzkQ-0c?t=9384

 

 

Olimpiada DLA ZAAWANSOWANYCH #21 – poniedziałek, 28 lutego 2022, 18:30
Link do zajęć: https://youtu.be/eGudBNpReLA?t=122
Temat: Mnożenie / potęgowanie macierzy

Co to jest macierz?
https://youtu.be/eGudBNpReLA?t=1122

Do czego przydaje się macierz?
– reprezentacja grafu – macierz sąsiedztwa
https://youtu.be/eGudBNpReLA?t=1250

Operacje na macierzach:
https://youtu.be/eGudBNpReLA?t=1450

Mnożenie macierzy:
https://youtu.be/eGudBNpReLA?t=1722

Macierz jednostkowa:
https://youtu.be/eGudBNpReLA

Mnożymy macierze:
https://youtu.be/eGudBNpReLA?t=2397

n-ty wyraz ciągu Fibonacciego:
https://youtu.be/eGudBNpReLA?t=2560

Szybkie potęgowanie:
https://youtu.be/eGudBNpReLA?t=3183

Potęgowanie macierzy i grafy:
https://youtu.be/eGudBNpReLA?t=3420

Zadania kombinatoryczne:
https://youtu.be/eGudBNpReLA?t=4158

Posłaniec – finał XXIII Olimpiada Informatyczna
https://youtu.be/eGudBNpReLA?t=4372

Zadania gdzie jest potęgowanie macierzy:
https://youtu.be/eGudBNpReLA?t=6150

 

Programowanie OD PODSTAW #20 – wtorek, 22 lutego 2022, 18:00
Link do zajęć: https://youtu.be/gnHaRSZ1tIo?t=15
Temat: Tworzymy Edytor graficzny – część 2 – ostatnia

Super tablica – mapa!
– możemy trzymać kilka komórek o różnych, odbiegający wartościach – z dalekich przedziałów
– przykład sklepu
– tablica dużo komórek – a map mało
– będzie koszt czasowy

https://youtu.be/gnHaRSZ1tIo?t=15

Dlaczego warto walczyć o pamięć?
– ja zaczynałem od 64KB pamięci – Commodore 64
– sztuczna inteligencja
– sondy kosmiczne
– zdrowy rozsądek
https://youtu.be/gnHaRSZ1tIo?t=61

Posłuchaj historii pewnego ucznia
Tydzień temu zachęcałem Was do układania zadania
Dlaczego warto układać zadania?
Historia ucznia Jasia – praca naukowa – Stock
Z czego jestem dumny?
– jeden z moich uczniów consensus
– jestem dumny, szczęśliwy, życzę Wam tego samego
– wymyślił coś nowego – zredukował pamięć w consesusie
– problem generałów – decyzja – czy w lewo, czy w prawo
– dla 10 generałów było 1000 bitów a teraz potrzeba 100 bitów – z n^3 do n^2
– wspólnie z dwoma profesorami
– jakie ma to znaczenie?
– routery, bitcoin – wszędzie jest wymiana wiadomości
– mniej wiadomości, będą szybsze,
– pomyślcie o tym jako o swojej przyszłości – fascynujące
– to jest jak odkrywanie nowych lądów
– rozwiązując problem – mamy mnóstwo nowych do odkrywania
– informatyka jest bardzo młodą dziedziną
– jak fizyka za czasów Netwona – fascynująca
– zachęcam
– fun, przygoda
– zawsze można skręcić i zająć się zwykłą pracą
– wielkie firmy Google, Facebook, … potrzebują takich ludzi
– przyspieszą działania facebooka
– zwracają się do nich
Co robić by mieć taką przygodą?
– On był taki sam jak Wy – czasami udawało mu się przejść do kolejnego etapu Olimpiady, czasami nie
– Róbmy challenge
– Zajęcia Tomka, Mikołaja
– Wymyślanie zadań, krzyżówek, anagramów
– Wymyślając zadania jesteście już naukowcami
– Życzę Wam tego
https://youtu.be/gnHaRSZ1tIo?t=116

Dziękuję za buźki – super strony www
– wymieniamy wszystkich którzy zrobili te strony
https://youtu.be/gnHaRSZ1tIo?t=371

Buźki i głośna muzyka:
https://youtu.be/gnHaRSZ1tIo?t=428

Czy zaprosimy Janka na nasze zajęcia?
– TAK!
https://youtu.be/gnHaRSZ1tIo?t=464

Mistrz Programowania tylko do poniedziałku 7 marca!
– Śmiech Matematyka i Informatyka
– 22.02.2022
dużo if-ów
– zadanie basen na podstawie interview do Google
historia pływania
– kolejna edycja w 2023
https://youtu.be/gnHaRSZ1tIo?t=479

Kiedy nauczyłem się C++?
– 17 – 18 lat
– zaczynałem od C
– architektura
– dlaczego późno – 6-7 klasa już znają
https://youtu.be/gnHaRSZ1tIo?t=677

Główna część spotkania – map – uniwersalna tablica:
– dlaczego map?
– potrzebujemy trzymać mało wartości – mała duża – bilion i 200
– marnotrawstwo pamięci
https://youtu.be/gnHaRSZ1tIo?t=717

konkursy, sondy, temperatur miast
– tam używamy tylko kilka indeksów
https://youtu.be/gnHaRSZ1tIo?t=854

Zamiast tablicy – struktura map:
– podobna do tablicy
– wchodzimy do ideone
https://youtu.be/gnHaRSZ1tIo?t=887

Definiujemy mapę – elastyczną tablicę:
– co indeksami, co wartościami
https://youtu.be/gnHaRSZ1tIo?t=1074

Na początku map jest pusta:
https://youtu.be/gnHaRSZ1tIo?t=1386

Wpisujemy coś do map:
– do komórki o numerze bilion
https://youtu.be/gnHaRSZ1tIo?t=1449

Co jeśli dotkniemy komórki?
– podstawia domyślną wartość
https://youtu.be/gnHaRSZ1tIo?t=1744

Jak sprawdzić czy komórka jest zajęta w map?
– count
https://youtu.be/gnHaRSZ1tIo?t=1990

Indeksami i wartościami może być ckolwiek
– na przykład inna mapa
https://youtu.be/gnHaRSZ1tIo?t=2249

W mapie indeksy to klucze
– na przykład indeksy jako napisy to raczej lepiej nazwać kluczami
https://youtu.be/gnHaRSZ1tIo?t=2275

Dla danego klucza przechowujemy jedną wartość – jak w tablicy
https://youtu.be/gnHaRSZ1tIo?t=2357

Możemy indeksować ujemnymi wartościami!
https://youtu.be/gnHaRSZ1tIo?t=2476

Map – ulepszony set – set z indeksami (set nie ma indeksów):
https://youtu.be/gnHaRSZ1tIo?t=2571

Złożoność map
– koszt
– logarytmiczna
https://youtu.be/gnHaRSZ1tIo?t=2720

Logarytmy, matematyka – to nasz przyjaciel
– złożoność
– algorytmy logarytmiczne są uważane za super szybkie
https://youtu.be/gnHaRSZ1tIo?t=2886

Challenge #21
https://youtu.be/gnHaRSZ1tIo?t=5981

Zadania Challenge #21:
https://oki.org.pl/challenge-programowanie-od-podstaw-21

 

Olimpiada OD PODSTAW #21 – czwartek, 2 marca 2022, 18:00
Link do zajęć: https://youtu.be/jOqGMOGJQ1s?t=17
Temat: Find and Union

LeetCode czyli zadania z interview do Google’a Facebook’a, ….
Platforma LeetCode
– zawiera zadania z interview Google’a, Facebook, Amazon, …
https://youtu.be/jOqGMOGJQ1s?t=17

Za tydzień quizy!
Zapraszam na zajęcia za tydzień!
– algorytmy, techniki, podejścia
– strategia
– quizy
– co robić czego nie robić
https://youtu.be/jOqGMOGJQ1s?t=49

WARSZTATY OIJ!
Zdalne warsztaty olimpijskie
https://youtu.be/jOqGMOGJQ1s?t=97

Dlaczego proste pytanie?
– co to jest klika?
https://youtu.be/jOqGMOGJQ1s?t=590

Co to jest klika?
https://youtu.be/jOqGMOGJQ1s?t=630

Każdy kij ma dwa końce!
– jak to wpływa na krawędzie?
https://youtu.be/jOqGMOGJQ1s?t=767

Czy liczba krawędzi będzie całkowita?
https://youtu.be/jOqGMOGJQ1s?t=816

Omówienie zadania Min Cost to Connect All Points
https://youtu.be/jOqGMOGJQ1s?t=1117

Kod / omówienie zadania Min Cost to Connect All Points
https://oki.org.pl/min-cost-to-connect-all-points

Jak nazywa się graf który nie ma cykli i jest spójny?
https://youtu.be/jOqGMOGJQ1s?t=1820

Zadanie pokazuje algorytm Find And Union:
https://youtu.be/jOqGMOGJQ1s?t=2036

Omówienie kodu:
https://youtu.be/jOqGMOGJQ1s?t=4744

CHALLENGE #21 Olimpiada OD PODSTAW!
https://youtu.be/jOqGMOGJQ1s?t=5576

Zadania Challenge #21:
https://oki.org.pl/challenge-olimpiada-od-podstaw-21

 

Olimpiada DLA ZAAWANSOWANYCH #20 – poniedziałek, 28 lutego 2022, 18:30
Link do zajęć: https://youtu.be/hxWriRiRNcM?t=260
Temat: Drzewa przedział – przedział

Drzewo przedział-przedział:
https://youtu.be/exw_IXzDxVI?t=1088
Punkt przedział / przedział punkt – czy możemy połączyć?
https://youtu.be/exw_IXzDxVI?t=1120
Podejście przedział-przedział:
https://youtu.be/exw_IXzDxVI?t=1234
Co przekazujemy wierzchołkom poniżej
https://youtu.be/exw_IXzDxVI?t=1765
Złożoność drzew przedział – przedział:
https://youtu.be/exw_IXzDxVI?t=2372
Operacja query:
https://youtu.be/exw_IXzDxVI?t=2640
Koleje – IX etap Olimpiady Informatycznej
https://youtu.be/exw_IXzDxVI?t=2914
Drzewa przedział-przedział  – kod:
https://youtu.be/exw_IXzDxVI?t=3520
Fajnie mieć możliwość startować w Olimpiadzie!
– fajnie się pisze / fajnie się ma
– jakie błędy pominął Mikołaj
– wiedza z Olimpiady procentuje
– nie nastawiajmy się na finał – liczą się zadania które zrobiliście, debugowania
– ułatwienie do matury
https://youtu.be/exw_IXzDxVI?t=4397

Co robić przed konkursem / w trakcie konkursu:
https://youtu.be/hxWriRiRNcM?t=3725

 

Programowanie OD PODSTAW #20 – wtorek, 22 lutego 2022, 18:00
Link do zajęć: https://youtu.be/EXENvWJLI5k?t=10
Temat: Tworzymy Edytor graficzny – część 2 – ostatnia

Edytor wersja v 2.0
– kończymy edytor z poprzedniego tygodnia
https://youtu.be/EXENvWJLI5k?t=10

Funkcje naszego edytora
– rozmiar / wielkość pędzla
– czyscie, zrestotować, zapisać
https://youtu.be/EXENvWJLI5k?t=31

Nasz edytor ma bug-a!
– Daria go znalazła
https://youtu.be/EXENvWJLI5k?t=49

– wydaje się że bugi są niedobre
https://youtu.be/EXENvWJLI5k?t=67

Bugi mogą być pożyteczne
– lista firm które płacą za znalezienie buga
– kwoty jakie płacą za znalezienie buga
https://youtu.be/EXENvWJLI5k?t=81

Dlaczego firmy płaca za znalezienie bugów?
– bezpieczeństwo
– firmy proszą o nas pomoc w znalezieniu bugów
https://youtu.be/EXENvWJLI5k?t=153

Zachęcam do konkursu Mistrz Programowania:
– strona aktualności
– runda 5 – zadanie ale bug
– bugi i podatki pewne
– ilośc bugów per linia kodu
– co powodują bugi – zawieszenie gier, zawładnięcia komputerem, katastrofy w kosmosie
– co trzeba zrobić
https://youtu.be/EXENvWJLI5k?t=203

Runda 7 – zadanie koczkodan:
– figura szachowa
– co trzeba zrobić
https://youtu.be/EXENvWJLI5k?t=310

Dziękuję Emilowi Makalowi
– ułożył fantastyczne zadanie
– VII klasa
– Zachęcam do układania zadań
– układanie zadań bardzo nas rozwija
– musimy wymyśleć rozwiązanie, zastanowić się czy istneje
– jesteśmy jak naukowcy
– starają się znaleźć problem, rozwiązać, nie wiedzą czy rozwiązanie istnieje
– my mając zadanie na konkursie wiemy, że rozwiązanie istnieje
– bardziej frapujące, bardziej ciekawe
– gdzie wysyłać pomysły na zadanie
– zachęcam do układania zadań – jeszcze bardziej frapująca przygoda
https://youtu.be/EXENvWJLI5k?t=336

Czy coś Wam kojarzy z data 22.02.2022
– palindrom
– zachęcam do quizu – kiedy następna daty
– inny palindrom
– Jan Kochanowski mistrz palindromów
– łączy matematykę i informatykę
https://youtu.be/EXENvWJLI5k?t=405

Skończył się II etap OI-a Olimpiady Informatycznej
– odkrywanie, poznawanie, bycie mocniejszym
– nie chodzi o żadne punkty
– wycieczka rowerowa
– satysfakcję nam sprawia bycie w drodze – pedałowanie, robienie zadań
– Tomek 330 punktów – w III etapie
– mam nadzieję, że powtórzy sukces laureata
– ale najważniejsze że się dużo nauczy, będzie miał fun z drogi
https://youtu.be/EXENvWJLI5k?t=477

Pokazujemy bug-a w naszym kodzie:
– ciekawy
– rysuje bez naciśniećia
https://youtu.be/EXENvWJLI5k?t=672

Jak mam na imię?
https://youtu.be/EXENvWJLI5k?t=730

Jak zaczynałem się uczyć programowania?
– VI klasa SP
– Commodore 64
– pozdrawiam Atarowców
– Tak jak teraz jest wojna Windows/Linux tak wtedy wojna C64/Atari
– Pozdrawiam wszystkich Atarowców!
https://youtu.be/EXENvWJLI5k?t=736

Tworzymy edytor graficzny – główna część – początek:
– treść – co zrobiliśmy
https://youtu.be/EXENvWJLI5k?t=1334

Kod / linki:
https://oki.org.pl/edytor-graficzny

Otwieramy pusty plik index.html:
– zwracamy uwagę na rozszerzenie
– rozszerzenie *.html
– jak sprawdzić
– Visual Studio Code – edytor tekstowy
– dwa okna – edytor tekstowy VSC + przeglądarka
https://youtu.be/EXENvWJLI5k?t=1393

Kod z poprzedniej lekcji
– udostępniamy / wklejamy
– pokazujemy co robi
– omówienie poprzednie kodu
https://youtu.be/EXENvWJLI5k?t=1632

Czy nazwa strony może być inna?
– index.html – domyślna strona która jest wyświetlana z katalogu zdalnego serwera http
– ale nazwa może być dowolna lokalnie – rozszerzenia *.html
https://youtu.be/EXENvWJLI5k?t=2111

Usuwamy bug-a
– podniesienie mysz poza canvas nie jest odnotowane – dalej rysuje przy powrocie na canvas
– zmieniamy miejsce gdzie podniesienie / opuszczenie myszy – na documencie – poprzednio na canvas
https://youtu.be/EXENvWJLI5k?t=2211

Bardzo ważna uwaga Persiego
– wersja 1.4
– usunięty poważny bu
– powinniśmy pisać dokumentację – jakie bugi usunięte
– super dlaczego nie wersja 2.0?
– sami możemy nazywać jak chcemy – to my tworzymy edytor
https://youtu.be/EXENvWJLI5k?t=2525

Challenge #20 – opis:
https://youtu.be/EXENvWJLI5k?t=6809

Zmieniamy wielkość pędzla:
https://youtu.be/EXENvWJLI5k?t=2657

Malowanie daje fun!
Zmieniamy wielkośc pędzla
– to już nie jest rysowanie – to jest malowanie!
https://youtu.be/EXENvWJLI5k?t=3014

Nasz program ma bug-a
Po odświeżeniu nie rysuje
Ustawiamy wartości początkowe
Wywołujemy je również na samym początku.
– resetujemy ustawienia, wartość domyślna pędzla
https://youtu.be/EXENvWJLI5k?t=3239

 

Olimpiada OD PODSTAW #20 – czwartek, 2 marca 2022, 18:00
Link do zajęć: https://youtu.be/tO1WjVAICMs?t=15
Temat: Zadanie z EJOI – Europejskiej Olimpiady

EJOI – Europejska Olimpiada Informatyczna Juniorów:
– dasz radę rozwiązać zadanie!
https://youtu.be/tO1WjVAICMs?t=15

II etapu Olimpiady – przygotowania
Jak się przygotowujemy do II etapu OIJ?
– zadania z poprzednich OIJ, zadania z USACO
– To najlepsze, robić zadania!
– Sprawdzić się pod presją czasu – znaleźć czas taki jak na OIJ i zrobić jeden etap
– zadania z Codeforces – inny typ zadań ale warto, presja czasu
https://youtu.be/tO1WjVAICMs?t=98

Dlaczego system dwójkowy?
– podstawa komputerów
– my widzimy więcej cyfr.
https://youtu.be/tO1WjVAICMs?t=770

Liczby dwójkowe:
– zamiana liczb dwójkowych na dziesiętne:
– ile to 100 dwójkowo?
– na czym polega system dziesiętny?
– na czym polega system dwójkowy?
https://youtu.be/tO1WjVAICMs?t=830

Omówienie zadania Hanging Rack:
https://youtu.be/tO1WjVAICMs?t=1257

Kod / linki:
https://oki.org.pl/hanging-rack/

Wierzchołek na samej górze – jak schodzą kurtki w lewo i w prawo
https://youtu.be/tO1WjVAICMs?t=2144

Numerujemy kurtki od 0:
– patrzymy na zapis dwójkowy
– kurtki z zerem na końcu dwójkowo (parzyste) idą na lewo, z jedynką na końcu idą na prawo (nieparzyste)
https://youtu.be/tO1WjVAICMs?t=2220

Jak kurtki rozdzielają się na poziomie o jeden niżej głównego:
– decyduje druga cyfra od końca dwójkowo
https://youtu.be/tO1WjVAICMs?t=2450

Analizujemy jeszcze jeden poniżej wierzchołek:
– decyduje trzecia cyfra od końca dwójkowo
https://youtu.be/tO1WjVAICMs?t=2637

Jak rozmieszczą się płaszcze?
https://www.youtube.com/watch?v=tO1WjVAICMs&t=2684

Ostatnia cyfra dwójkowo mówi nam gdzie iść – rozwiązanie:
https://youtu.be/tO1WjVAICMs?t=2720

Czy możemy zrobić graf z wierzchołków?
– ilość wierzchołków szybko rośnie.
https://youtu.be/tO1WjVAICMs?t=2928

Jak rozwiązać nasze zadanie?
– numerujemy wieszaki
– mając numer łatwo odtworzyć płaszcz
– syn po lewej to 2*ja, syn po prawej to 2*ja+1
– mając reprezentację dwójkową wiemy jak chodzić po drzewie – wiemy do którego wierzchołka dojdziemy
https://youtu.be/tO1WjVAICMs?t=3057

Jak sprawdzamy czy idziemy w lewo czy w prawo?
– dzielimy na 2, bierzemy resztę, wynik zaokrąglamy w dół
https://youtu.be/tO1WjVAICMs?t=3518

Mamy pierwszy wierzchołek – ostatnia cyfra dwójkowa
Co z drugim wierzchołkiem?
– dzielimy na dwa zaokrąglając w dół
https://youtu.be/tO1WjVAICMs?t=3610

Omówienie kodu:
https://youtu.be/tO1WjVAICMs?t=4360

Challenge #20 – opis – Olimpiada OD PODSTAW
https://youtu.be/tO1WjVAICMs?t=5648

 

Olimpiada DLA ZAAWANSOWANYCH #17 – poniedziałek, 24 stycznia 2022, 18:30
Link do zajęć: https://youtu.be/hxWriRiRNcM?t=260
Temat: Przed II etapem

Czego nie ma drzewo?
https://youtu.be/hxWriRiRNcM?t=292

Co gdy przekroczymy int?
https://youtu.be/hxWriRiRNcM?t=555

Historia pewnego int-a:
– przekręcamy int a a zmienia się wartość d
– to jest undefinined behaviour
– może sformatować komputer
– u Mikołaja przekręcony int c zmieniał wartość d
https://youtu.be/hxWriRiRNcM?t=657

Złożoność programu – O(n):
https://youtu.be/hxWriRiRNcM?t=847

Co to jest algorytm online?
https://youtu.be/hxWriRiRNcM?t=970

Przesunięcie bitowe:
https://youtu.be/hxWriRiRNcM?t=1090

Co to jest algorytm dynamiczy?
https://youtu.be/hxWriRiRNcM?t=1625

Zasady techniczne / ustalenia / co robić na II etapie
https://youtu.be/hxWriRiRNcM?t=2358

 

Programowanie OD PODSTAW #19 – wtorek, 15 lutego 2022, 18:00
Link do zajęć: https://youtu.be/Ck6k19b7FVU?t=4
Temat: Tworzymy Edytor graficzny – część 1

Tworzymy edytor graficzny!
– możemy zmieniać kolor / wielkość pędzla
https://youtu.be/Ck6k19b7FVU?t=17

Olimpiada matematyczna:
– Dlatego nie mieliśmy zajęć – Tomek miał II etap 5/6 zadań
https://youtu.be/Ck6k19b7FVU?t=57

II etap OI-a
– start
– podstawówki też
– życzenia dla Tomka
– okazja by zapytać Tomka
https://youtu.be/Ck6k19b7FVU?t=90

Zachęcam do udziału w konkursach matematycznych
– serce rozwiązywanie problemów
– młotki, wiertarki – atakujemy problem, problem rozwiążemy za sekundę a nie za miliard mialiardów lat
– jesteśmy w stanie zrobić magię
https://youtu.be/Ck6k19b7FVU?t=122

Zachęcam do udziału w Olimpiadzie Informatycznej:
– nieważne czy w SP czy liceum
– nie chodzi o punkty / przejście do etapów
– liczy się to co wymyślisz
– liczy się wiedza która zdobędziesz / wyszukasz / wynajdziesz
– liczą się problemy które będziesz potrafić rozwiązać
– konkursy USACO, codeforces
https://youtu.be/Ck6k19b7FVU?t=149

Konkurs Mistrz Programowania – aktualności
– runda 6
– mistrz programowania / aktualności
– Zadanie Informatyk – czym różni się początkujący od zaawansowanego
– każdy to zadanie zrobi / zachęcam do wspólnej zabawy / przekazania kolegom koleżankom
– zadanie 210 – jest 10 rodzajów ludzi
https://youtu.be/Ck6k19b7FVU?t=202

– dziękuję Natalii Mietelskiej / Patrykowi Bulińskiemu za przygotowanie zadań
https://youtu.be/Ck6k19b7FVU?t=296
– pokazują wiedzę o świecie – Bitwa pod Wiedniem – historycznie możemy się odnaleźć
– bug – ile można zarobić na bugach – zadanie ale bug

OKI jest na Tik Toku – OKI_Kolo
– jeden z uczniów pomaga – dziękuję
– krótkie filmiki / fragmenty zajęć
https://youtu.be/Ck6k19b7FVU?t=377

Dlaczego OKI na Tik Toku?
– przez tik toka staramy się trafi do większej grupy osób
– by nasza społeczność rosła!
– projekt Mateusza – sprawne miasto – pisze w grupie
– jesteśmy dla siebie wsparciem, inspiracją
– im więcej nas, pomysłów, każdy patrzy inaczej, tym lepiej
https://youtu.be/Ck6k19b7FVU?t=483

Czy OKI uczy Pythona?
– uczymy narzędzi do Olimpiad / przyspieszania działania komputera – lepszy C++
– Python jest dobry do skryptów, by coś zrobić z plikami na dyskach
– Python jest fantastyczny
https://youtu.be/Ck6k19b7FVU?t=441

Omówienie zadania – Tworzymy edytor graficzny – część 1:
https://youtu.be/Ck6k19b7FVU?t=848

Skrócone omówienie kodu edytora graficznego – część 1:
https://youtu.be/Ck6k19b7FVU?t=5222

Otwieramy pusty plik index.html
– pokazuj rozszerzenia plików
– rozszerzenie html
https://youtu.be/Ck6k19b7FVU?t=886

Używajmy Visual Studio Code do edytowania naszego kodu w index.html
– możemy w notepadzie
– preferuje w Visual Studio Code
https://youtu.be/Ck6k19b7FVU?t=994

Strona html z canvas do rysowania:
– dokładne omówienie
https://youtu.be/Ck6k19b7FVU?t=1276

Rysujemy koło/punkt na płótnie canvas:
– punkt/koło procedura
https://youtu.be/Ck6k19b7FVU?t=2033

Umiemy narysować punkt – chcemy rysować myszą
– czego nam brakuje
– musimy reagować na zdarzenie
– przechwytujemy zdarzenia
https://youtu.be/Ck6k19b7FVU?t=2536

Rysujemy przy ruchu myszy!
– Hurra!
– Możemy się pobawić
– grubaśny pędzel
https://youtu.be/Ck6k19b7FVU?t=2830

DRŻYJ ŚWIECIE – POWSTAJE SUPEREDIT
– dajemy soczysty tytuł
– powstaje edytor graficzny SuperEdit
– drżyj świecie – to będzie najlepszy edytor
– rzucam wyzwanie światu
– na razie tylko rysuje smugi – ale w przyszłości zmiecie inne edytory z runku
https://youtu.be/Ck6k19b7FVU?t=3240
https://youtu.be/Ck6k19b7FVU?t=3245

Nasz program źle rysuje
– jest przesunięty
– mamy buga – nasz pierwszy bu!
– trzeba przesunąć rysowany punkt o offset canvas
https://youtu.be/Ck6k19b7FVU?t=3335

Tworzymy guzik do czyszczenia:
https://youtu.be/Ck6k19b7FVU?t=3990

Pierwszy element menu i zmieniamy na wersje 1.1 (usuniecie buga) i na wersje 1.2 (dodanie guzika czysc)
https://youtu.be/Ck6k19b7FVU?t=4003

Obsługa zdarzeń mysz wciśnięta / mysz podniesiona
https://youtu.be/Ck6k19b7FVU?t=5102

Majka koryguje brak zmiany wersji przy kolejnych istotnych wersjach edytora graficznego SUPEREDITa który zawładnie światem
https://youtu.be/Ck6k19b7FVU?t=5031

Jak zrobić okrąg zamiast koła?
– omówienie definiowania kształtu
– omówienie wypełniania kształtu (fill) vs rysowanie konturu (stroke)
https://youtu.be/Ck6k19b7FVU?t=6921

Jak rysować łuki?
– arc – definicja fragmentu okręgu / koła
https://youtu.be/Ck6k19b7FVU?t=7231

Challenge #19 – omówienie:
https://youtu.be/Ck6k19b7FVU?t=6201

 

Programowanie OD PODSTAW #18 – wtorek, 1 lutego 2022, 18:00
Link do zajęć: https://youtu.be/j2iE4SotFZA?t=13
Temat: Programowanie obiektowe – Zadanie Miasto

Programowanie obiektowe
– wchodzimy w programowanie profesjonalne programowanie
https://youtu.be/j2iE4SotFZA?t=13

Co nam daje programowanie obiektowe?
– bezpieczeństwo
– minimalizacja dziwnego stanu
– minimalizacja buga
– łatwo rozbudowywać
– wszystko co się tyczy miasta, gra w jednym miejscu
– upraszcza program
https://youtu.be/j2iE4SotFZA?t=34

Dlaczego stosujemy programowanie obiektowe
– mamy wszystko w jednym miejscu
– możemy użyć gracza,. miasto w wielu projektach
– za darmo pisze skomplikowane kody
– przyspiesza tworzenie aplikacji
– łatwo rozbudowywać – zmieniamy sposób implementacji metod
– interfejs zostaje
– dokładnie wiemy co klasa robi (public)
– porządek przy dużych projektach – nikt nie zmienia wwartosci zmiennych, minimalizacja bugów, stan klasy okreslony
https://youtu.be/j2iE4SotFZA?t=7185

Czy mając 15 lat mogę brać udział w projektach?
– licealiści stworzyli własny projekt – sprawne miasto
– 8 osób: grafik, programiści, osoba od marketingu
https://youtu.be/j2iE4SotFZA?t=137

Zachęcam do własnego projektu
– zbierzmy się w kilka osób
– popatrzmy czego brakuje
– może coś brakuje w edytorze graficznym – stwórz własny
– może plan zajęć dla szkoły
– wszędzie są braki, wystarczy się rozejrzeć
– jesteśmy jako programiści by pomagać
– znamy C++ / Python
– projekt napisany w JavaScript który tez znamy
https://youtu.be/j2iE4SotFZA?t=217

Konkursy nadają sens naszym działaniom
– jak się zarjestrować
– Opisy zadania: Route 66
– ranking
https://youtu.be/j2iE4SotFZA?t=284

Śmiało mówimy swoje opinie, wątpliwości – odkrywamy:
https://youtu.be/j2iE4SotFZA?t=2714

Omówienie zadania Miasto:
https://youtu.be/j2iE4SotFZA?t=1525

Skrót omówienia zadania Miasto:
https://youtu.be/j2iE4SotFZA?t=6895

Programowanie obiektowe:
– tworzymy miasto przy pomocy programowania obiektowego
– interfejs, część prywatna, część publiczna
https://youtu.be/j2iE4SotFZA?t=1674

Domyślnie całość jest prywatna w klasie (quiz):
https://youtu.be/j2iE4SotFZA?t=8198
Poprawna struktura klasy (quiz):
– część prywatna
– cześc publiczna
– odpowiednie funkcje
https://youtu.be/j2iE4SotFZA?t=8469
Dostęp do stanu klasy:
Dlaczego nie dajemy dostępu do zmiennych w klasie?
https://youtu.be/j2iE4SotFZA?t=8620

Olimpiada OD PODSTAW #18 – czwartek, 2 lutego 2022, 18:00
Link do zajęć: https://youtu.be/8m6_bOKvzqI?t=6
Temat: BFS, wszystko może być grafem – Zadanie Milk Pails

Od trzech zajęć grafy
-> Reprezentacja / DFS / Preorder
https://youtu.be/8m6_bOKvzqI?t=6

Dziś BFS
https://youtu.be/8m6_bOKvzqI?t=58

Grafem może być wszystko!
https://youtu.be/8m6_bOKvzqI?t=64

Omówienie zadania Milk Pails:
https://youtu.be/8m6_bOKvzqI?t=1001
Kod / linki:
https://oki.org.pl/milk-pails

Początek rozwiązania zadania Milk Pails:
https://youtu.be/8m6_bOKvzqI?t=1668

Tworzymy graf z wiader
– stany wiader staja się wierzchołkami
https://youtu.be/8m6_bOKvzqI?t=1754

Przekształciliśmy wiadra, przelewanie mleka na graf!
https://youtu.be/8m6_bOKvzqI?t=2368

Jak działa BFS?
– przechodzimy warstwami
– odległość 0, odległość 1
https://youtu.be/8m6_bOKvzqI?t=2384

Na czym polega BFS?
Przeszliśmy graf BFS-em
– ogólnie na czym polega BFS
https://youtu.be/8m6_bOKvzqI?t=3115

Czy jakiś wierzchołek może dać lepszy wynik w przyszłości w BFS?
https://youtu.be/8m6_bOKvzqI?t=3325

Co jest ważne w BFS?
https://youtu.be/8m6_bOKvzqI?t=3461

Czy można liczyć odległości DFS-em?
https://youtu.be/8m6_bOKvzqI?t=3608

Ja implementujemy BFS-a?
– szczegółowy opis
https://youtu.be/8m6_bOKvzqI?t=3820

Jak działa kolejka w C++?
– złożoność kolejki
https://youtu.be/8m6_bOKvzqI?t=4602

Jak  działa kolejka w Pythonie:
– skorzystajmy z collections (deque, append, poleft, popright, len)
– lista – będzie bardzo wolna
https://youtu.be/8m6_bOKvzqI?t=4823

Jak zrobić graf z dwóch liczb, graf stanów?
– u nas wierzchołkami nie sa liczby tylko pary liczb
– w wierzchołkach możemy przechowywać cokolwiek! – liczby, pary, napisy, wektory
– będziemy przechowywać wektor par
https://youtu.be/8m6_bOKvzqI?t=4969

Nie musimy trzymać naszego grafu!
https://youtu.be/8m6_bOKvzqI?t=5053

Złożoność BFS-a:
– O ( krawedzie + wierzcholki )
https://youtu.be/8m6_bOKvzqI?t=5242

Omówienie kodu, który rozwiązuje zadanie:
https://youtu.be/8m6_bOKvzqI?t=5350

Kod BFS-a:
https://youtu.be/8m6_bOKvzqI?t=5454

Challenge #18 – omówienie:
https://youtu.be/8m6_bOKvzqI?t=6762

 

Olimpiada DLA ZAAWANSOWANYCH #17 – poniedziałek, 24 stycznia 2022, 18:30
Link do zajęć: https://youtu.be/a27eXSugdPQ?t=932
Temat: Testowanie

Plan zajęć:
https://youtu.be/a27eXSugdPQ?t=932

Bruty przydają się w testowaniu:
https://youtu.be/a27eXSugdPQ?t=947

Najbardziej brutalny brut:
https://youtu.be/a27eXSugdPQ?t=982

Brut dla problemów wyboru:
https://youtu.be/a27eXSugdPQ?t=1268

Brut dla zadań z kolejnością:
https://youtu.be/a27eXSugdPQ?t=1564

Piszemy bruty – Linux rekomendowany!
https://youtu.be/a27eXSugdPQ?t=1758

Co potrzeba by przetestować rozwiązanie?
https://youtu.be/a27eXSugdPQ?t=1952

Jak losować?
https://youtu.be/a27eXSugdPQ?t=2234

Piszemy sprawdzarkę:
https://youtu.be/a27eXSugdPQ?t=3120

Po co testować?
– strategie na II etap:
https://youtu.be/a27eXSugdPQ?t=4057

Co robić przed II etapem?
https://youtu.be/a27eXSugdPQ?t=4949

 

Olimpiada OD PODSTAW #17 – czwartek, 27 stycznia 2022, 18:00
Link do zajęć: https://youtu.be/R4FOYOblSNE?t=89
Temat: Preoder / postorder – Zadanie Dyrektor patrzy

Weź udział w USACO!
https://youtu.be/R4FOYOblSNE?t=89

Co to jest drzewo
– spójny graf bez cykli
– jedna ścieżka między wierzchołkami
https://youtu.be/R4FOYOblSNE?t=274
Czy graf o jednym wierzchołku jest drzewem?
https://youtu.be/R4FOYOblSNE?t=553
Przykład – czy graf jest drzewem?
https://youtu.be/R4FOYOblSNE?t=711

Omówienie zadania Dyrektor patrzy:
https://youtu.be/R4FOYOblSNE?t=1755

Kod / linki:
https://oki.org.pl/dyrektor-patrzy/

Rozwiązanie brutalne zadania:
– sprawdzamy wszystkie wierzchołki nad naszym wierzchołkiem
– nie potrzebujemy nawet DFS
– odpowiednio numerując po prostu ojciec to wierzchołek podzielony przez 2
– złożoność takiego rozwiązania (ilosc_pytan razy liczba_osob)
https://youtu.be/R4FOYOblSNE?t=2490

Nasz problem rozwiązujemy DFS-em
– jest przewidywalny
– wytłumaczenie DFS-a
https://youtu.be/R4FOYOblSNE?t=2743

Preorder / Postorder:
– wytłumaczenie
– przykład – wartości preorder/ postorder
https://youtu.be/R4FOYOblSNE?t=2901
Co wynika z Preorder / Postorder?
https://youtu.be/R4FOYOblSNE?t=3350
Prorder/postorder pozwala na sprawdzenie czy dany wierzchołek jest przodkiem innego
– porównujemy preorder / postorder
https://youtu.be/R4FOYOblSNE?t=3515
Jak zrobić nasze zadanie korzystając z Preorder/Postorder?
https://youtu.be/R4FOYOblSNE?t=3780
Złożoność rozwiązania z Preorder / Postorder:
https://youtu.be/R4FOYOblSNE?t=3937
Omówienie kodu który rozwiązuje zadanie:
https://youtu.be/R4FOYOblSNE?t=4104
Implementacja Preorder / Postorder w kodzie programu:
https://youtu.be/R4FOYOblSNE?t=4571
Jak pamiętać znaki nierówności w preorder / postorder?
– narysujmy mały graf
– nie warto się uczyć na pmiaęć
– warto wiedzieć co sie dzieje
https://youtu.be/R4FOYOblSNE?t=4648

Co to jest poddrzewo:
https://youtu.be/R4FOYOblSNE?t=3477

Dlaczego Tomek lubi drzewa?
– chodząc DFS-em nie trzeba zaznaczać że wierzchołek jest odwiedzony
– ale trzeba pamiętać kto jest moim ojcem/dyrektorem by nie wywołać się w ojcu
https://youtu.be/R4FOYOblSNE?t=4178

Najpierw napiszmy nasze zadanie sami!
– nie umiemy – narysujmy na kartce drzewo z preorder / posrorder
– zobaczmy czy program liczy tak samo
https://youtu.be/R4FOYOblSNE?t=4947

Doświadczenie Tomka:
– piszmy najpierw zadanie sami
– na II / III etapie nie będziemy mieli omówienia ani kodu
https://youtu.be/R4FOYOblSNE?t=4991

Co trzeba znać na II Olimpiady?
– DFS, Binary Search, Gąsienica, Sumy Prefiksowe, Sito Eratostenesa
https://youtu.be/R4FOYOblSNE?t=5014

Jak wygląda wizyta u cioci?
– odwiedzamy DFS-em ciocie
https://youtu.be/R4FOYOblSNE?t=5350
DFS tworzy drzewo rozpinające na grafie:
– tworzy krawędzie drzewowe
– można łatwo policzyć ilość takich krawędzi
https://youtu.be/R4FOYOblSNE?t=5472

Challenge #17 – omówienie:
https://youtu.be/R4FOYOblSNE?t=5693

Krążki – Olimpiada Informatyczna – odwagi, nie ma się czego bać
– jest w naszym zasięgu
https://youtu.be/R4FOYOblSNE?t=5716

Jak być mistrzem DFS-a?
https://youtu.be/R4FOYOblSNE?t=6070

Za tydzień algorytm BFS!
https://youtu.be/R4FOYOblSNE?t=5844

 

Programowanie OD PODSTAW #17 – wtorek, 25 stycznia 2022, 18:00
Link do zajęć: https://youtu.be/AMouETtFmhg
Temat: Set – ćwiczenia / quiz

Wchodzimy w profesjonalne, ciekawe programowanie!
SET!
– tablica bez indeksów
https://youtu.be/V_vDDNdjP1U?t=13

Czy jest sens wnikać?
– kto używa C++
– Facebook / Microsoft / …
– C++ tam gdzie szybkość, grafika, medycyna
– tam gdzie potrzebna jest bliskość sprzętu
– dzięki C++ rozumiemy architekturę komputera
– świetnie sprawdza się na konkursach – jest szybki!
https://youtu.be/V_vDDNdjP1U?t=45

Czy jest sens wnikać?
– historia ucznia
– aplikacja do firmy, modelowanie rynków
– interview przeszedł bez problemów
– jako osoba która miała 20 lat dostał ofertę 6 000 funtów
– świetny programista / umie rozwiązywać problemy przy pomocy komputer
– co mam robić by w przyszłości mieć ciekawą pracę?
– wnikać!
– wykorzystywać w konkursy
https://youtu.be/V_vDDNdjP1U?t=146

Aktualne informacje dotyczące Mistrz Programowania:
– 350 użytkowników / 3 rundy
– zadania proste, które każdy zrobi
– są zadania które wymagają pomyślenia
– jak dołączyć / wysyłanie po rejestracji
– ranking
– statystyki – które zadanie łatwe, które trudne
https://youtu.be/V_vDDNdjP1U?t=226

Zadanie Bambus Happy 2
– na podstawie interview do firmy Google
– nieważne na ile punktów zrobicie
– po dwóch tygodniach setka? – motywacja – nie tylko możesz pracować u największych ale to oni o Ciebie będę się bili
– zachęcam do zrobienia!
–  można zrobić na 30 punktów, pomyśleć i mieć 100
– zachęcam by myśleć – to jest ta droga która zaprowadzi nas do przyłóżcie
– odwagi, warto mieć marzenia, warto każdego dnia robić krok w stronę naszych marzeń
https://youtu.be/V_vDDNdjP1U?t=317

Ile rund w konkursie?
https://youtu.be/V_vDDNdjP1U?t=402

Rozpoczynamy set
– od początku, od wytłumaczenia przeglądarki
– chcemy trzymać stopnie harcerskie
“trzy piora” – opis sprawnosci
“ons
– dołączamy set/string
https://youtu.be/V_vDDNdjP1U?t=413

Sprawność harcerska “trzy pióra” – na czym polega
– trzy dni milczenia, głodu i samotności
https://youtu.be/V_vDDNdjP1U?t=571

Ile tych samych sprawności może mieć harcerz?
– albo mam obserwatora, albo nie mam
– trzymamy sprawności w secie stringów
https://youtu.be/V_vDDNdjP1U?t=598

Jaki własności ma set?
– trzyma elementy raz
– uporządkowanie
– bez indeksów, indeksowanie zawartość, asocjacyjna
– struktura coś trzyma
https://youtu.be/V_vDDNdjP1U?t=676

Wypisujemy rozmiar zbioru:
https://youtu.be/V_vDDNdjP1U?t=720

Jak dodać element do zbioru?
https://youtu.be/V_vDDNdjP1U?t=853

Zbiór przechowuje zawsze jeden element / jedną instancję:
https://youtu.be/V_vDDNdjP1U?t=993

Co jest pojedyncze?
– harcerz ma jedną sprawność
– miasta są jedne
https://youtu.be/V_vDDNdjP1U?t=1023

Jak męczy się komputer?
Złożoność insert w set:
– porównanie z tablicą (czas stały)
– wyjaśnienie że złożoność to zależność od liczby danych wejściowych
– wykona potęgę dwójki która daje liczbę danych na wejściu
– set nie jest aż tak szybki jak tablica
https://youtu.be/V_vDDNdjP1U?t=1222

find /set – znajdowanie elementów w zbiorze:
https://youtu.be/V_vDDNdjP1U?t=1423

Co to jest end() w zbiorze?
– wskazuje na koniec
https://youtu.be/V_vDDNdjP1U?t=1509

Złożoność find:
– co to jest logarytm?
https://youtu.be/V_vDDNdjP1U?t=1655

Czym różni się tablica od zbioru?
https://youtu.be/V_vDDNdjP1U?t=1782

Jak chodzi po set – zbiorze?
– przejść po tablicy
– wylistować elementy w zbiorze
– nie ma indeksów – jak chodzić po zbiorze?
– jest iterator
– idziemy po zbiorze
– co to jest begin() end()
https://youtu.be/V_vDDNdjP1U?t=1832

Set trzyma wartości uporządkowane!
– wypisujemy wartości setu
– trzyma wszystko raz
– domyślnie trzyma uporządkowane rosnąco
https://youtu.be/V_vDDNdjP1U?t=2088

Nie ma indeksów, a wypisaliśmy wartosci!
– indeksowanie wartością
– więcej wartości uporządkowane
https://youtu.be/V_vDDNdjP1U?t=2193

Mam coś co zawsze jest posortowane
– lepsze od tablicy
– tablica jest nieposorotwana
https://youtu.be/V_vDDNdjP1U?t=2376

Złożoność przechodzenia po secie – liniowa:
https://youtu.be/V_vDDNdjP1U?t=2426

Usuwanie elementy ze zbioru:
https://youtu.be/V_vDDNdjP1U?t=2446

Czy możemy utworzyć set od intów?
– set może być złożony z elementów dowolnego typu
https://youtu.be/V_vDDNdjP1U?t=2562

Kolejne zajęcia
– własna klasa
– system dla miast
– klasa – certyfikat zaawansowanego programisty
https://youtu.be/V_vDDNdjP1U?t=2707

Szczegółowy opis kolejnych zajęć – klasa / miasta:
https://youtu.be/V_vDDNdjP1U?t=5840

Ostatnie zajęcia – sieci neuronowa / uczenie masyznowe
https://youtu.be/V_vDDNdjP1U?t=5904

Znajdowanie elementów w set:
– jest uporządkowany – wykorzystajmy to!
– szuka elementu lub kolejnego
https://youtu.be/V_vDDNdjP1U?t=4639

Co oznacza lower_bound w set?
– wyjaśnienie, przykłady
https://youtu.be/V_vDDNdjP1U?t=4806

Jak działa upper_bound?
– znajdź następny
– podobnie do lower_bound
https://youtu.be/V_vDDNdjP1U?t=5082

Po co wymyślono lower_bound / upper_bound?
– można sie iterować
– bo jest szybki
– czas przeszukiwania jest log (potęga dwójki)
https://youtu.be/V_vDDNdjP1U?t=5218

lower_boud / upper_bound w quizie:
https://youtu.be/V_vDDNdjP1U?t=6108

Set daje szybkość, błyskawicę
– 1000/10 lub milion/20 lub miliard / 30
– błyskawicznie znajdujemy miasto
– przyda nam się to w pracy zawodowej (Google, start-up) ale też na konkursach
– w tablicy mamy kłopot ze znalezieniem elementu, dodawaniem, usuwaniem w środku
– tu mamy to od razu!
https://youtu.be/V_vDDNdjP1U?t=5297

Jak znaleźć poprzedni element w set?
https://youtu.be/V_vDDNdjP1U?t=6620

Dlaczego czas w set jest logarytmiczny?
– drzewa czerwono czarne / binarne
– zajęcia Olimpiada od podstaw
– super, że wnikamy!
https://youtu.be/V_vDDNdjP1U?t=7144

Dlaczego uczymy się C++?
– pokazuje architekturę komputera
– głębiej wnikamy
– jest szybszy
– wiele języków ma strukturę podobną do C++
https://youtu.be/V_vDDNdjP1U?t=7180

Opis Challenge #17:
https://youtu.be/V_vDDNdjP1U?t=5810

 

Olimpiada OD PODSTAW #16 – czwartek, 20 stycznia 2022, 18:00
Link do zajęć: https://youtu.be/P4xemLnkDFc?t=770
Temat: DFS – chodzimy po grafie

Omówienie zadania Cyclic Components:
https://youtu.be/P4xemLnkDFc?t=770
Kod / linki: https://oki.org.pl/cyclic-components/

Co to jest DFS – od początku wyjaśnienie
– rysowanie grafu i dyskusja
https://youtu.be/P4xemLnkDFc?t=1157

Jak chodzić po grafie używając algorytmu DFS?
– samo mięso:
https://youtu.be/P4xemLnkDFc?t=1243

Pseudokod DFS-a:
– rekurencja
https://youtu.be/P4xemLnkDFc?t=1669

Co robi DFS?
– przechodzi po spójnej części grafu
– musimy go zmodyfikować, coś dodać by rozwiązywał nasze zadanie
https://youtu.be/P4xemLnkDFc?t=1872

Kluczowa obserwacja w zadaniu
– cykl w sensie zadania istnieje wtedy gdy każdy wierzchołek ma stopień 2
https://youtu.be/P4xemLnkDFc?t=1912

Jak cofamy się w DFS-ie?
Kiedy DFS wychodzi z wierzchołka?
– szczegółowe omówienie DFS-a z kodem
https://youtu.be/P4xemLnkDFc?t=2030

Opis rozwiązania zadania:
https://youtu.be/P4xemLnkDFc?t=2320

Jak szybki jest DFS?
– jaka jest złożoność DFS-a?
https://youtu.be/P4xemLnkDFc?t=2673

Kod zadania Cyclic Components:
https://youtu.be/P4xemLnkDFc?t=2964

Kod DFS-a:
https://youtu.be/P4xemLnkDFc?t=3015

DFS animacja
Wyjaśnienie DFS – animacja / symulacja youtube.
– Kiedy zawraca?
https://youtu.be/P4xemLnkDFc?t=3489

Opis naszego challenge:
https://youtu.be/P4xemLnkDFc?t=3757

Quiz graf:
https://youtu.be/P4xemLnkDFc?t=228

Sprytne pytanie
– ile wynosi suma stopni wszystkich wierzchołków grafu?
– można zauważyć ze stopień musi być parzysty
https://youtu.be/P4xemLnkDFc?t=318

Spójne składowe – co to jest – quiz:
https://youtu.be/P4xemLnkDFc?t=543

Dlaczego testować?
– nie ma odsłonięć
– testy w zadaniu mogą wprowadzać w błąd, nie rozpatrywać wszystkich przypadków
– warto przygotować skrypty testujące
– warto testować
https://youtu.be/8I7N35IgYuM?t=6083

 


Olimpiada DLA ZAAWANSOWANYCH #17 – poniedziałek, 24 stycznia 2022, 18:30
Link do zajęć: https://youtu.be/8I7N35IgYuM?t=1160
Temat: Geometria analityczna

Geometria analityczna – co to jest?
https://youtu.be/8I7N35IgYuM?t=1160

Odległość między punktami – długość odcinka:
https://youtu.be/8I7N35IgYuM?t=1218

Unikajmy double, float jeśli można:
– porównujmy kwadraty odległości, są całkowite
– int – nieograniczona precyzja
https://youtu.be/8I7N35IgYuM?t=1480

Iloczyn skalarny / iloczyn wektorowy:
https://youtu.be/8I7N35IgYuM?t=1573

Iloczyn wektorowy:
https://youtu.be/8I7N35IgYuM?t=1907

Do czego się przydaje iloczyn wektorowy?
https://youtu.be/8I7N35IgYuM?t=2223

Wzajemne położenie wektorów:
https://youtu.be/8I7N35IgYuM?t=2408

Sortowanie kątowe:
https://youtu.be/8I7N35IgYuM?t=2773

Zadanie gąsienice – miotła:
https://youtu.be/8I7N35IgYuM?t=3670

Otoczka wypukła:
https://youtu.be/8I7N35IgYuM?t=4378

Co robić na ostatniej proste?
– biblioteczka
– 2-3 dni przed zawodami nic nie robić
– spacer
https://youtu.be/8I7N35IgYuM?t=5769

OKI #18 – jak testowa?:
https://youtu.be/8I7N35IgYuM?t=5860

Skąd brać pomysły na rozwiązania:
– poprzednie olimpiady, usaco, codeforces – są omówienia
– najbardziej nas pcha do przodu własna praca, własne rozwiązania
– omówienie – jeśli potrzebujemy popchnięcia, hinta
https://youtu.be/8I7N35IgYuM?t=5920

Ile czasu myśleć nad jednym zadaniem?
https://youtu.be/8I7N35IgYuM?t=6005

 


Programowanie OD PODSTAW #16 –
wtorek, 18 stycznia 2022, 18:00

Link do zajęć: https://youtu.be/AMouETtFmhg
Temat: Zadanie Antykwariat – własne sortowanie

Pomagamy stworzyć system dla sklepu z książkami
– wszędzie jesteśmy potrzebni (piłka nożna, medycyna, …)
– odwagi w sięganiu po najciekawsze projekty
– każdy ma umysł, potencjał by marzyć
– potrzebne jest dogłębne zrozumienie tematu
https://youtu.be/AMouETtFmhg?t=35

Konkursy – nadają sens programowaniu, wnikaniu
– motywują nas już teraz do wnikania
– będziemy w stanie to wykorzystać!
– już teraz
– nie musimy sie motowywać, że gdy będziemy mieć 25 lat to fajny projekt
https://youtu.be/AMouETtFmhg?t=102

Gratulacje dla wszystkich uczestników Olimpiady
– ukłony dla wszystkich uczestników
– za poświęcony czas
– za debugowanie
– pokazaliście wartość
– każdy pracodawca pożąda takie osoby
– przygotowujmy się za rok
https://youtu.be/AMouETtFmhg?t=140

Zachęcam do walki o III etap – nie jest ciężko się dostać
– 4 zadania tygodniowo!
– będzie dobrze
– to moja obietnica!
https://youtu.be/AMouETtFmhg?t=262

Mistrz Programowania
– ranking
– proste zadanie Smiech Matematyka
– Bambus Happy – liczby regularne – bambus zna je dłużej – rozsiewa nasiona co odpowiedni czas
– Duże liczby – zadanie Darii

https://youtu.be/AMouETtFmhg?t=281

Omówienie zadania Antykwariat: https://youtu.be/AMouETtFmhg?t=2215

Własne sortowanie: https://youtu.be/AMouETtFmhg?t=3973
Jak przechowywać książki?
– własny typ do przechowywania książek / struct
https://youtu.be/AMouETtFmhg?t=2650

resize zamiast push_back dla vector-a:
– automatyczna alokacja pamięci
https://youtu.be/AMouETtFmhg?t=3072

Wypisywanie vectora:
– jeśli coś bardziej skomplikowanego zrobimy to wypisujmy wartości!
https://youtu.be/AMouETtFmhg?t=3638

Sortowanie książek / własnego typu / struct
– potrzebna własna funkcja sortująca
https://youtu.be/AMouETtFmhg?t=3974

Opis challenge #16:
– ćwiczymy własne sortowanie – potrzebne w konkursach / projektach
https://youtu.be/AMouETtFmhg?t=5969

Co na OKI #17?
– Set
https://youtu.be/AMouETtFmhg?t=6005


Olimpiada DLA ZAAWANSOWANYCH #16 – poniedziałek, 17 stycznia 2022, 18:30
Link do zajęć: https://youtu.be/Praei9aI8-8?t=1200
Temat: Programowanie dynamiczne v2

EDIST – problem odległości edycyjnej:
https://youtu.be/Praei9aI8-8?t=1200

Klasyczny żart – przykład z życia codziennego:
– jak zamienić pieniądze na jedzenie w jak najmniejszej liczbie ruchów?
https://youtu.be/Praei9aI8-8?t=1490

Zadanie Dynamik – finał 18-stej Olimpiady Informatycznej
https://youtu.be/Praei9aI8-8?t=2626

Dynamik – podsumowanie rozwiązania zadania:
https://youtu.be/Praei9aI8-8?t=5027

 


Olimpiada OD PODSTAW #15 – czwartek, 13 stycznia 2022
, 18:00

Link do zajęć: https://youtu.be/NDp4nZnqtEo
Temat: Jak przechowywać grafy?

Jakie wrażenia po I etapie OIJ?
https://youtu.be/NDp4nZnqtEo?t=68

Czym są grafy?
– prosta rzecz
– niepotrzebnie grafy są uważane za trudne
https://youtu.be/NDp4nZnqtEo?t=297

Czym sa grafy? – quiz:
https://youtu.be/NDp4nZnqtEo?t=804

Omówienie zadania Stumilowa Puszcza:
https://youtu.be/NDp4nZnqtEo?t=1325

Omówienie kodu zadania Stumilowa puszcza:
https://youtu.be/NDp4nZnqtEo?t=3526

Co jest problemem w naszym zadaniu?
– jak przechować graf?
– jak go wypisać
https://youtu.be/NDp4nZnqtEo?t=1776

Jak przechowujemy grafy?
– tablica vectorów
– lista sąsiedztwa
– dodajemy krok po kroku wierzchołki do listy sąsiedztwa
https://youtu.be/NDp4nZnqtEo?t=1824

Jak zaimplementować graf w C++ / Python?
– dodanie elementu na koniec vectora
– tablica vectorów
– jaki indeks ma sąsiad w grafie?
– przechodzenie po sąsiadach grafu?
https://youtu.be/NDp4nZnqtEo?t=2470

Jak wczytujemy graf w programie?
https://youtu.be/NDp4nZnqtEo?t=3105

Jaka jest złożoność wczytywania / wypisywania grafu? https://youtu.be/NDp4nZnqtEo?t=3219

Graf -kod/implementacja w C++
https://youtu.be/NDp4nZnqtEo?t=3536

Dlaczego Tomek poleca by zrobić zadanie Stumilowa Puszcza?
– dalej też będa grafy
– będa algorytmy
– reprezentacja to podstawa / dalej nie damy rady
https://youtu.be/NDp4nZnqtEo?t=3884

Co potrzeba na finale OIJ?
– wystarczy często pomysł
– na przykładzie zadania Skrzyżowanie z III etapu
https://youtu.be/NDp4nZnqtEo?t=4755

Omówienie naszego Challenge #15:
https://youtu.be/NDp4nZnqtEo?t=4740

Ile czasu i jak Tomek się przygotowywał do zdobycia laureata Olimpiady Informatycznej?
– od Logomocji
–  II klasa gimanzjum – mocno – 4 zadania tygodniowo
– sporo sie nie udwało – ale był upór
https://youtu.be/NDp4nZnqtEo?t=5110

Co na OKI #16?
https://youtu.be/NDp4nZnqtEo?t=4809

Jakie wrażenia po I etapie OIJ?
– tura ukryta była trudna
https://youtu.be/NDp4nZnqtEo?t=68

Jak zapisać się do konkursu Mistrz Programowania?
https://youtu.be/NDp4nZnqtEo?t=203

Co to jest Mistrz Programowania?
https://youtu.be/NDp4nZnqtEo?t=252

 


Programowanie OD PODSTAW #15 – wtorek, 11 stycznia 2022, 18:00
Link do zajęć: https://youtu.be/V4LQxUvVqVQ

Po co są zajęcia OKI?
Dlaczego warto rozwijać swoją pasję?
– przygotowujemy się by w przyszłości uczestniczyć w fantastycznych projektach
– zabka nano – pierwszy sklep
– ile tu jest programowania
– sieci neuronowe – rozpoznawanie
– algorytmika, inżyniera oprogramowania
– w przyszłości chcemy brac udział w takich projektach
– jako jeden z członków zespołu
– życzenia siły ognia
– jak się przygotowujemy?
https://youtu.be/V4LQxUvVqVQ?t=32

Konkurs Mistrz Programowania
– weź udział
– zadania w różnej kolejności
– zachęcam by zacząć od Śmiech Matematyka
– jak powstał konkurs?
– poćwiczyć programowanie, algorytmika
– by weszło w krew
– niech beda to wiertarki, młotki które po prostu używamy
https://youtu.be/V4LQxUvVqVQ?t=170

Ile tur będzie w konkursie?
https://youtu.be/V4LQxUvVqVQ?t=347

Czy zadania są na poziomie programistycznym?
https://youtu.be/V4LQxUvVqVQ?t=355

Czy jeśli zrobimy część zadań to ok?
https://youtu.be/V4LQxUvVqVQ?t=399

Struct / własne sortowanie w C++
– od początku
– od wytłumaczenia online’owego kompilatora
https://youtu.be/V4LQxUvVqVQ?t=417

Własny typ danych w C++
– struct
– dokładne wytłumaczenie
https://youtu.be/V4LQxUvVqVQ?t=659

Jak trzymać dane o 100 / 1000 uczniach?
– vector (roszerzona tablica)
https://youtu.be/V4LQxUvVqVQ?t=990

Jak umieszczamy dane w vectorze?
– umieszczamy cały typ danych / całą zmienna
https://youtu.be/V4LQxUvVqVQ?t=1221

Jak wypisywać dane z vectora?
– wypisujemy dane z vectora z własnym typem danych
https://www.youtube.com/watch?v=V4LQxUvVqVQ&t=1521

Rozpoczęcie sortowania
– sortowanie w vector
– begin początek
– end kooniec
https://youtu.be/V4LQxUvVqVQ?t=1849

Własne sortowanie – własna funkcja sortująca
– sortujemy swój typ danych
– dlaczego normalny sort nie działa
– własna funkcja sortująca
https://youtu.be/V4LQxUvVqVQ?t=2020

cin wczytuje do białego znaku
getline wczytuje całą linię
– nie da rady wczytać całej linii?
https://youtu.be/V4LQxUvVqVQ?t=3259

Siła ws – pomijania nowych znaków
getline po int wczytuje pusta linię a nie tekst w linii
przed getline dajemy ws
https://youtu.be/V4LQxUvVqVQ?t=3452

struct / getline w quizie:
https://youtu.be/V4LQxUvVqVQ?t=3990


Olimpiada DLA ZAAWANSOWANYCH #14 – poniedziałek, 10 stycznia 2022, 18:30
Link do zajęć: https://youtu.be/9cp7bGNoXAc?t=1352
Temat: Algorytmy pierwiastkowe

Zadanie konterenry
– wyjaśniamy czym są algorytmy pierwiastkowe
https://youtu.be/9cp7bGNoXAc?t=1352
Idea algorytmu pierwiastkowego:
https://youtu.be/9cp7bGNoXAc?t=1660
Dlaczego warto zrobić zadanie kontenery?
– podział problemu / podział algorytmu
https://youtu.be/9cp7bGNoXAc?t=3818

Trudniejszy problem tekstowy:
10^5 wzorców – znaleźć ich wszystkie wystąpienia w tekście
https://youtu.be/9cp7bGNoXAc?t=4023
Kiedy używać algorytmów pierwiastkowych?
https://youtu.be/9cp7bGNoXAc?t=4512
Podział problemu na segmenty wielkości pierwiastek – drzewa pierwiastkowe:
https://youtu.be/9cp7bGNoXAc?t=4846
Jakie zadania występują najczęściej na II etapie OI?
– pomysł, zachłanne
– silne spójne ostatnio
– drzewa przedziałowe
– lca
– podproblemy
– gąsienica, sumy prefiksowe / binary search
– dfs /bs
– algorytmy pierwiastkowe
– trzeba szybko pisać / szybko wymyślać
https://youtu.be/9cp7bGNoXAc?t=5583
Jak długo Mikołaj przygotowywał się do Olimpiady Informatyczne?
– niekoniecznie pod OI-a
– od października 2016 do finalisty w 2020 roku
https://youtu.be/9cp7bGNoXAc?t=5897
Jak przygotowuje się Mikołaj do Olimpiad?
– plik tekstowy zadania to do zrobione
– zrobione przez Mikołaja zadania z poprzednich OI – 150, całkowicie samodzielnie 123
https://youtu.be/9cp7bGNoXAc?t=6082
Jakie zadania robić przygotowując do OI-a?
– zadanie które robisz bez problemu nie daje Ci nic w sensie rozwoju
– USACO
– Codeforces proste na czas by nie bugować
https://youtu.be/9cp7bGNoXAc?t=6192
Czy zadania na II etapie OI-a są trudniejsze od zadań z I etapu?
– pisanie mniej czasu
– trzeba znać więcje archetypów
https://youtu.be/9cp7bGNoXAc?t=6296


Olimpiada OD PODSTAW #14A – czwartek, 30 grudnia 2021
, 18:00

Link do zajęć: https://youtu.be/rhz5sEdxHQE

Czym jest zwykłe Sito Eratostenesa?
– pozwala stwierdzić czy liczba pierwsza czy nie
– wykreślamy wielokrotności liczb pierwszych
https://youtu.be/rhz5sEdxHQE?t=30
Robimy ambitne zadanie – Cute Chef Gift!
https://youtu.be/rhz5sEdxHQE?t=111

Omówienie zadania Cute Chef Gift
– rozszerzone sito Eratostenesa
https://youtu.be/rhz5sEdxHQE?t=760
Kod / linki / omówienie:
https://oki.org.pl/cute-chef-gift/
Początek wytłumaczenia treści zadania:
https://youtu.be/rhz5sEdxHQE?t=791
Jaki jest informatyczny prezent dla dziewczyny?
Informatyczny prezent dla dziewczyny
czy dziewczyna chciałaby dostać ciąg liczb jako prezent
ciąg liczb jako prezent dla dziewczyny?
https://youtu.be/rhz5sEdxHQE?t=793
Skąd wiemy jaki jest przedział dla danej liczby pierwszej?
https://youtu.be/rhz5sEdxHQE?t=4628
Poszczególne kroki naszego algorytmu:
https://youtu.be/rhz5sEdxHQE?t=4196
Złożoność naszego rozwiązania
https://youtu.be/rhz5sEdxHQE?t=4448
Kod naszego rozwiązania:
https://youtu.be/rhz5sEdxHQE?t=4751

Rozszerzone Sito Eratostenesa:
https://youtu.be/rhz5sEdxHQE?t=2409
Rozszerzone Sito Eratostenesa trzyma jeden, dowolny dzielnik pierwszy liczby:
https://youtu.be/rhz5sEdxHQE?t=2809
Jak rozłożyć liczbę na czynniki pierwsze przy pomocy rozszerzonego Rozszerzonego Sita Eratostenesa:
https://youtu.be/rhz5sEdxHQE?t=2948
Złożoność rozkładu liczby na czynniki pierwsze przy pomocy Rozszerzonego Sita Eratostenesa:
https://youtu.be/rhz5sEdxHQE?t=3087
Kod Rozszerzonego Sita Eratostenesa
https://youtu.be/rhz5sEdxHQE?t=4815

Technika Na później:
https://youtu.be/rhz5sEdxHQE?t=3764

Jak Tomek lubi rozwiązywać zadania?
– Funkcja która rozwiązuje pojedynczy przypadek testowy gdy jest ich wiele
– Minimalizujemy błędy inicjalizacji (zerowanie tablic)
https://youtu.be/rhz5sEdxHQE?t=4947
Kod jest na stronie https://oki.org.pl/cute-chef-gift/
– Napiszmy samemu
– Uczymy się na błędach!
https://youtu.be/rhz5sEdxHQE?t=5275

Dlaczego 1 nie jest liczbą pierwszą?
https://youtu.be/rhz5sEdxHQE?t=5582

Co na zajęciach 13 stycznia?
– zaczynamy grafy!
– ulubiona dziedzina Tomka
https://youtu.be/rhz5sEdxHQE?t=5922

Życzenia!
Życzenia Noworoczne:
– wytrwałości w dążeniu do celu
– radości z tego co robicie
https://youtu.be/rhz5sEdxHQE?t=5960

Noworoczny Challenge:
https://youtu.be/rhz5sEdxHQE?t=5825


Programowanie OD PODSTAW #14 – wtorek, 21 grudnia 2021, 18:00
Link do zajęć: https://youtu.be/qGpkqQ44tBk

Wizualizacja naszej choinki
Nasza choinka w akcji:
https://youtu.be/qGpkqQ44tBk?t=7054
Omówienia zadania Świąteczna choinka:
https://youtu.be/qGpkqQ44tBk?t=164
Skrócone omówienie kodu:
https://youtu.be/qGpkqQ44tBk?t=7505
Kod / linki do poszczególnych etapów rysowania choinki
https://oki.org.pl/swiateczna-choinka/
Opis Challenge Programowanie OD PODSTAW:
https://youtu.be/qGpkqQ44tBk?t=8513
Świąteczne i noworoczne życzenia:
– czasu z najbliższymi
– ognia w Nowym Roku – rozwijania swojej pasji – to ma sens!
https://youtu.be/qGpkqQ44tBk?t=8653
Noworoczne życzenia – Nowy Rok 2022:
https://youtu.be/qGpkqQ44tBk?t=8676

Krótkie życzenia z początku zajęć:
https://youtu.be/qGpkqQ44tBk?t=10

Tablice dwuwymiarowe w JavaScript – jak utworzyć?
https://youtu.be/qGpkqQ44tBk?t=7110

Święta – też okazja powiedzieć że przyszłość jest nasza, że jesteśmy potrzebni!
– dron który kładzie linę
– pasja – to jest najważniejsze
– możemy brać udział w takich projektach!
– warto się bawić, warto by było trudno!
https://youtu.be/qGpkqQ44tBk?t=58

Czy trójkąt to już choinka?
– narysowaliśmy trójkąt i jak z tego zrobić choinkę
https://youtu.be/qGpkqQ44tBk?t=2034
Cztery trójkąty to już choinka!
https://youtu.be/qGpkqQ44tBk?t=2161

Skąd pochodzi cytat?
Pewnego przyjaciela poznaje sie w niepewnym momencie.
Z Małego Księcia
https://youtu.be/qGpkqQ44tBk?t=487
Cytaty z naszego quizu!
Nasze cytaty!
https://youtu.be/qGpkqQ44tBk?t=8309

Warto się pobawić!
– bawimy się spłaszczaniem okręgu
https://youtu.be/qGpkqQ44tBk?t=4887


Olimpiada OD PODSTAW #14 – czwartek, 23 grudnia 2021
, 18:00

Link do zajęć: https://youtu.be/btHSRzo4KMQ

Omówienie zadania T-primes – sito Eratostenesa:
https://youtu.be/btHSRzo4KMQ?t=1264
Kolejne kroki naszego algorytmu:
https://youtu.be/btHSRzo4KMQ?t=3210
Złożoność algorytmu:
https://youtu.be/btHSRzo4KMQ?t=3541
Kod zadania T-primes:
https://youtu.be/btHSRzo4KMQ?t=3732
Sito Eratostenesa:
https://youtu.be/btHSRzo4KMQ?t=1749
Złożoność sita Eratostenesa:
https://youtu.be/btHSRzo4KMQ?t=2508
Kod sita Eratostenesa:
https://youtu.be/btHSRzo4KMQ?t=3764
Dlaczego zaczynamy wykreślać od i*i w sicie Eratostenesa?
https://youtu.be/btHSRzo4KMQ?t=3807
Quiz sito Eratostenesa:
https://youtu.be/btHSRzo4KMQ?t=4345
Jak obliczyć pierwiastek z danej liczby?
– Binary Search
https://youtu.be/btHSRzo4KMQ?t=3332
Quiz liczby pierwsze:
https://youtu.be/btHSRzo4KMQ?t=318
Na ile sposobów można przedstawić daną liczbę jako iloczyn liczb pierwszych?
– dowód, że na jeden sposób
https://youtu.be/btHSRzo4KMQ?t=5210
Opis Challenge Olimpiada od podstaw:
https://youtu.be/btHSRzo4KMQ?t=5384
Świąteczne życzenia:
https://youtu.be/btHSRzo4KMQ?t=5446


Olimpiada DLA ZAAWANSOWANYCH #14 – poniedziałek, 20 grudnia 2021, 18:30
Link do zajęć: https://youtu.be/vai2MQzARq0

Świąteczny nastrój i quiz!
https://youtu.be/vai2MQzARq0?t=185
Początek quizu:
https://youtu.be/vai2MQzARq0?t=334
Pomoc naukowa w sortowaniu topologicznym:
– maskotka na tablicy:
https://youtu.be/vai2MQzARq0?t=1095
Sortowanie topologiczne:
https://youtu.be/vai2MQzARq0?t=1135
Kto jest pierwszy w sortowaniu topologicznym?
– który wierzchołek jest pierwszy?
https://youtu.be/vai2MQzARq0?t=1573
Implementacja sortowania topologicznego:
https://youtu.be/vai2MQzARq0?t=1800
Zadanie “Nierówności”:
https://youtu.be/vai2MQzARq0?t=2225
Zadanie “Sklepy”:
https://youtu.be/vai2MQzARq0?t=2935

Silnie Spójne Składowe:
https://youtu.be/vai2MQzARq0?t=3525

Gambit i dowód nie wprost
Gambit czy dowód nie wprost?
– dowód nie wprost to najpotężniejszy gambit – zaczynamy od podania całej partii
https://youtu.be/vai2MQzARq0?t=3879

Jak Mikołaj uczył się silnie spójnych składowych?
– Algorytm na silnie spójnych składowe to DFS na grafy transponowane w kolejności malejących postorderów
https://youtu.be/vai2MQzARq0?t=4386

Czy silnie spójne występują na Olimpiadzie Informatycznej?
https://youtu.be/vai2MQzARq0?t=6195

Świąteczne życzenia!
https://youtu.be/vai2MQzARq0?t=6685

 


Programowanie OD PODSTAW #13 – wtorek, 14 grudnia 2021, 18:00
Link do zajęć: https://youtu.be/VvJhOAXIQOk

Dokąd prowadzi nasza droga?
Autonomiczne samochody!
– warto wnikać
– takie projekty są dostępne dla nas
– mnóstwo programowania i algorytmiki
https://youtu.be/VvJhOAXIQOk?t=12

Zadanie z Amerykańskiej Olimpiady USACO! https://youtu.be/VvJhOAXIQOk?t=156
Pozwala stworzyć fantastyczne CV! https://youtu.be/VvJhOAXIQOk?t=5449

Co nas motywuje? Konkursy
W weekend USACO – amerykańska Olimpiada
– zarezerwujmy sobie 4h weźmy udział!
– podział na dywizje – od programistycznej do międzynarodowej olimpiady!
– jesteśmy w stanie robić te zadania
– super motywacja do pięknej przyszłości
– mierzymy się z całym światem – możemy konkurować z anglikami, amerykanami
– nieważne czy mieszkam w Mławie czy Kudowie
– a w przyszłości brać udział w tych najciekawszych projektach
– robimy cv – gotowe do zespołów programistycznych
– zobaczmy jak wielki jest to fun!
https://youtu.be/VvJhOAXIQOk?t=156

Tworzymy fantastyczne CV na podstawie zadania Daisy Chains:
https://youtu.be/VvJhOAXIQOk?t=5449

Opis naszego challenge #13:
https://youtu.be/VvJhOAXIQOk?t=6960

Omówienie zadania Daisy Chains:
https://youtu.be/VvJhOAXIQOk?t=2646
Skrót omówienia rozwiązania:
https://youtu.be/VvJhOAXIQOk?t=5144

Kod linki zadania Daisy Chains:
https://oki.org.pl/daisy-chains/

vector w C++ vs tablica:
https://youtu.be/VvJhOAXIQOk?t=484
vector w C++:
https://youtu.be/VvJhOAXIQOk?t=660
vector – quiz:
https://youtu.be/VvJhOAXIQOk?t=1781

Przekazywanie przez wartość vs przekazywanie przez referencję
https://youtu.be/VvJhOAXIQOk?t=5966
Przekazywanie przez wartość vs przekazywanie przez referencję – quiz
https://youtu.be/VvJhOAXIQOk?t=7211

Czy programiści są leniwi?
– leniwi wymyślają!
– programiści automatyzują – może są leniwi?
https://youtu.be/VvJhOAXIQOk?t=8666

 


Olimpiada OD PODSTAW #13 – czwartek, 16 grudnia 2021
, 18:00

Link do zajęć: https://youtu.be/evtnTwRKtkE

Zadanie GCD on Blackboard – jak wykorzystać Najwiekszy Wspólny Dzielnik?
Omówienia zadania GCD on Blackboard:
https://youtu.be/evtnTwRKtkE?t=986
Złożoność rozwiązania / kroki algorytmu rozwiązania GCD on Blackboard:
https://youtu.be/evtnTwRKtkE?t=4331
Omówienie kodu zadania GCD on Blackboard:
https://youtu.be/evtnTwRKtkE?t=4557
Link do treści zadania GCD on Blackboard:
https://atcoder.jp/contests/abc125/tasks/abc125_c

NWD – Największy Wspólny Dzielnik:
https://youtu.be/evtnTwRKtkE?t=725
Jak liczyć NWD – Klasyczny algorytm Euklidesa:
https://youtu.be/evtnTwRKtkE?t=1330
Klasyczny algorytm Euklidesa jest wolny! https://youtu.be/evtnTwRKtkE?t=1928
Szybki algorytm Euklidesa – długie wyjaśnienie:
https://youtu.be/evtnTwRKtkE?t=1929
Szybki algorytm Euklidesa – krótkie wyjaśnienie:
https://youtu.be/evtnTwRKtkE?t=2405
Złożoność szybkiego algorytmu Euklidesa:
https://youtu.be/evtnTwRKtkE?t=2598
Kod szybkiego algorytmu Euklidesa:
https://youtu.be/evtnTwRKtkE?t=4581

Jak policzyć NWD wielu liczb?
https://youtu.be/evtnTwRKtkE?t=2915
Czy złożoność O(2n) jest różna od O(n)? https://youtu.be/evtnTwRKtkE?t=4947
Warto poćwiczyć NWD: https://youtu.be/evtnTwRKtkE?t=5521

Jak się zarejestrować do USACO?
https://youtu.be/evtnTwRKtkE?t=5681

Dlaczego Tomek lubi AtCoder?
– krótkie treści!
https://youtu.be/evtnTwRKtkE?t=5829

Nasz Challenge #13!
https://youtu.be/evtnTwRKtkE?t=5521

 


Olimpiada DLA ZAAWANSOWANYCH #13 – poniedziałek, 13 grudnia 2021, 18:30
Link do zajęć: https://youtu.be/i8-GLKoW-Xc?t=1137

Hashe – najnowszy wynalazek obecnej epoki!
Hashe – najnowszy odkrycia w Olimpiadzie!
https://youtu.be/i8-GLKoW-Xc?t=1137

Kolizja czy jaka szansa, że dwie osoby maja urodziny tego samego dnia:
https://youtu.be/i8-GLKoW-Xc?t=2046

Jak policzyć hash?
https://youtu.be/i8-GLKoW-Xc?t=2735

Czy 2 podslowa są równe?
https://youtu.be/i8-GLKoW-Xc?t=3379

Jak znaleźć wszystkie wystąpienie wzorca w tekście?
https://youtu.be/i8-GLKoW-Xc?t=3478

Na czym polegają skróty – skrót:
https://youtu.be/i8-GLKoW-Xc?t=3578

Uwaga na liczby ujemne!
https://youtu.be/i8-GLKoW-Xc?t=3670

Czy w ciągu istnieją dwa takie same podsłowa?
– mapa vs rozwiązanie kwadratowe
https://youtu.be/i8-GLKoW-Xc?t=3800

Kolizja hashy – wyjaśnienie
https://youtu.be/i8-GLKoW-Xc?t=4022

Gdzie wykorzystuje się hashe?
– logowanie
https://youtu.be/i8-GLKoW-Xc?t=4694

Co trzeba znać na II etap OI-a?
https://youtu.be/i8-GLKoW-Xc?t=4985

Hashe – rozwiązują większość problemów tekstowych!
https://youtu.be/i8-GLKoW-Xc?t=5119

 


Programowanie OD PODSTAW #12 – wtorek, 7 grudnia 2021, 18:00
Link do zajęć: https://youtu.be/JCEifYJT1VY
Sortowanie – ciekawe i pożyteczne – programowanie konkursowe
Robimy zadania z II etapu OIJ!
– programowanie konkursowe
– zadania są do zrobienia dla każdego – można zawalczyć
– w życiu sortujmy książki, śmieci
https://youtu.be/v_UzAyr1A-4?t=10
Piękny projekt naszego kolegi! Warto programować!
Piękny projekt Mateusza – dokąd prowadzi nasza droga?
Dokąd prowadzi nasza droga – projekt Sprawne Miasto naszego kolegi Mateusza
– zgłaszanie problemów
– poszukiwanie osób
– już w szkole średniej możemy pomóc
https://youtu.be/v_UzAyr1A-4?t=82
Zadanie Zespoły – II etap OIJ
https://youtu.be/v_UzAyr1A-4?t=1986
Omówienie kodu zadania Zespoły:
https://youtu.be/v_UzAyr1A-4?t=5818
Sortowanie!
https://youtu.be/v_UzAyr1A-4?t=4310
Sortowanie – quiz:
https://youtu.be/v_UzAyr1A-4?t=6420
Nasz challenge #12 Programowanie od podstaw:
https://youtu.be/v_UzAyr1A-4?t=6251


Olimpiada OD PODSTAW #12 – czwartek, 9 grudnia 2021
, 18:00

Link do zajęć: https://youtu.be/OJtDgY3dPlY
Rozwiązujemy prawdziwy problem szefa firmy!
https://youtu.be/x9mQ4zs410g?t=128
Nasz challenge #12 Olimpiada OD PODSTAW:
https://youtu.be/x9mQ4zs410g?t=6417
The Meeting Place Cannot Be Changed – zadanie z naszych zajęć:
https://youtu.be/x9mQ4zs410g?t=1468
Binary Search po wyniku:
https://youtu.be/x9mQ4zs410g?t=2435
Omówienie kodu zadania The Meeting Place Cannot Be Changed: https://youtu.be/x9mQ4zs410g?t=5210
Co na kolejnych zajęciach?
https://youtu.be/x9mQ4zs410g?t=6496
Złożoność Binary search po wyniku:
https://youtu.be/x9mQ4zs410g?t=4820
Kod algorytmu Binary Search po wyniku:
https://youtu.be/x9mQ4zs410g?t=5391
Potyczki algorytmiczne!
https://youtu.be/x9mQ4zs410g?t=60


Olimpiada DLA ZAAWANSOWANYCH #12 – poniedziałek, 6 grudnia 2021, 18:30
Link do zajęć: https://youtu.be/sjWy91fl6eE
Zadanie Montażysta – I etap OI-a:
https://youtu.be/sjWy91fl6eE?t=1377
Układanie Kart – zadanie z I etapu OI-a:
https://youtu.be/sjWy91fl6eE?t=2805
W poniedziałek hashe!
https://youtu.be/sjWy91fl6eE?t=5292


Programowanie OD PODSTAW #10 – wtorek, 23 listopada 2021, 18:00
Link do zajęć: https://youtu.be/JCEifYJT1VY
Bezpieczeństwo, szyfrowanie i polscy matematycy:
Szyfrowanie!
– Kto wygrał Bitwę Warszawską?
– czwartkowe zajęcia nas przygotowują
– czym się zajmuje
https://youtu.be/JCEifYJT1VY?t=14
Dziękuję za Olimpiadę!
https://youtu.be/JCEifYJT1VY?t=182
Napisy – od początku!
https://youtu.be/JCEifYJT1VY?t=386
Napisy – esencja:
https://youtu.be/JCEifYJT1VY?t=508
Napisy – kahoot v1:
https://youtu.be/JCEifYJT1VY?t=2085
Napisy – kahoot v2:
https://youtu.be/JCEifYJT1VY?t=6962
Napisy vs tablice w C++ – różnice:
https://youtu.be/JCEifYJT1VY?t=901
Zadanie Szyfr Cezara – z naszych zajęć!
https://youtu.be/JCEifYJT1VY?t=3092
Kod, omówienie, link do zadania:
https://oki.org.pl/szyfr-cezara
Skrót omówienia zadania:
https://youtu.be/JCEifYJT1VY?t=5939
Spadające gwiazdy – nasze piękne animacje! – Dziękuję!
https://youtu.be/JCEifYJT1VY?t=6384
Co oznacza hasło Każdego dnia mocniejsi? O co chodzi?
https://youtu.be/JCEifYJT1VY?t=7704
Wytłumaczenie v2:
https://youtu.be/JCEifYJT1VY?t=7215
Co w naszym challenge?
https://youtu.be/JCEifYJT1VY?t=6833
Za tydzień zadanie Team z Codefroces:
https://youtu.be/JCEifYJT1VY?t=6889
+= co oznacza?
https://youtu.be/JCEifYJT1VY?t=7213
Szachowe wyzwanie?
https://youtu.be/JCEifYJT1VY?t=7961
Konkurs Mistrz Programowania
– tez będą napisy
– zachęcam do układania zadań!
https://youtu.be/JCEifYJT1VY?t=6120


Olimpiada OD PODSTAW #10 – czwartek, 25
 listopada, 18:00

Link do zajęć: https://youtu.be/OJtDgY3dPlY
Co nas świecie?
Rozpoczęła się tura zamknięta OIJ!
https://youtu.be/OJtDgY3dPlY?t=23
Omówienie zadania Zakup Działki:
https://youtu.be/OJtDgY3dPlY?t=1198
Omówienie kodu zadania Zakup działki:
https://youtu.be/OJtDgY3dPlY?t=4448
Kod algorytmu Binary Search – omówienie:
https://youtu.be/OJtDgY3dPlY?t=4466
Kod:
https://oki.org.pl/zakup-dzialki/
Potęgowanie, logarytm – wyjaśnienie w kahoot:
https://youtu.be/OJtDgY3dPlY?t=348
Złożoność algorytmów – wyjaśnienie w kahoot:
https://youtu.be/OJtDgY3dPlY?t=918
Wprowadzenie do Binary Search:
https://youtu.be/OJtDgY3dPlY?t=1001
Binary Search i encyklopedia:
https://youtu.be/OJtDgY3dPlY?t=5309
Potrzebna wróżka!
https://youtu.be/OJtDgY3dPlY?t=1840
Sami zrobimy wróżkę – szukamy najbliższej działki!
Algorytm naiwny – brutalny, liniowy:
https://youtu.be/OJtDgY3dPlY?t=1940
Przyspieszamy wróżkę – algorytm Binary Search:
https://youtu.be/OJtDgY3dPlY?t=2247
Złożoność Binary Search:
https://youtu.be/OJtDgY3dPlY?t=3791
Kiedy jest fun?
Policzyć cyfrę 40!
https://youtu.be/OJtDgY3dPlY?t=5430
Omówienie Challenge:
https://youtu.be/OJtDgY3dPlY?t=5806
Za tydzień Binary Search po wyniku:
https://youtu.be/OJtDgY3dPlY?t=5910
Binary Search jest prosty i szybki!
https://youtu.be/OJtDgY3dPlY?t=6005


Olimpiada DLA ZAAWANSOWANYCH #9 – poniedziałek, 22 listopada 2021, 18:30
Quiz – grafy, BFS, DFS, maski bitowe, :
https://youtu.be/bwO_8BzLTdg?t=709
Algorytm Dijkstry:
https://youtu.be/bwO_8BzLTdg?t=1670
Zadanie Wiedźmak – finał XVIII OI-a:
https://youtu.be/bwO_8BzLTdg?t=2843
Zadanie Przemytnicy – 10 Olimpiada Informatyczna:
https://youtu.be/bwO_8BzLTdg?t=4021
Challenge:
https://youtu.be/bwO_8BzLTdg?t=5338
Discord OKI – dyskusje, wsparcie:
https://youtu.be/bwO_8BzLTdg?t=5427
Link, dlaczego:
https://youtu.be/bwO_8BzLTdg?t=6390
Korzyści z Olimpiady Informatycznej:
– fun
– zwolnienie z matury
– studia
– stypendia
https://youtu.be/bwO_8BzLTdg?t=5713
Najważniejszy jest udział w Olimpiadzie:
– bez względu na wynik jesteś mocny!
https://youtu.be/bwO_8BzLTdg?t=5775
Różnica między w przygotowaniu – laureat vs finalista:
https://youtu.be/bwO_8BzLTdg?t=5999
Ile zadań robi Mikołaj?
https://youtu.be/bwO_8BzLTdg?t=6103
Medale Mikołaja!
https://youtu.be/bwO_8BzLTdg?t=6352


Programowanie OD PODSTAW #9 – wtorek, 16 listopada 2021, 18:00
Link do zajęć: https://youtu.be/fHBNQyMf-Tc|
Warto programować:
– medycyna (znajdowanie leku, analiza DNA)
– astronomia (wizualizacja galaktyk)
https://youtu.be/fHBNQyMf-Tc?t=13
Bądź seniorem!
Czy warto być informatykiem:
– senior czyli osoba która wnika
– challenge  quizy
– jak najwięcej błędów
https://youtu.be/fHBNQyMf-Tc?t=93
Olimpiada – prowadzi nas bycia seniorem – wartościową osobą na rynku
https://youtu.be/fHBNQyMf-Tc?t=229
Trudności i postęp:
– każdego dnia mocniejsi
– nie porównujemy się do innych
https://youtu.be/fHBNQyMf-Tc?t=282
Tablice w quizie – wyjaśnienie:
https://youtu.be/fHBNQyMf-Tc?t=381
Tablice w JavaScript:
https://youtu.be/fHBNQyMf-Tc?t=3229
Tworzymy animację – Gwiazdozbiór!
Omówienie zadania Gwiazdozbiór:
https://youtu.be/fHBNQyMf-Tc?t=1573
Skrócone omówienie kodu animacji:
Skrócone omówienie kodu – z boku nasza piękna animacja:
https://youtu.be/fHBNQyMf-Tc?t=6600
Kolory RGB – krótkie omówienie na przykładzie:
https://youtu.be/fHBNQyMf-Tc?t=6143
Jak zrobić kółko na ekranie?
Skrócona instrukcja tworzenia programu w JavaScript – kółko na ekranie:
https://youtu.be/fk2wGqeiVBY?t=653
Jak zrobić kreskę na ekranie?
Kreska na ekranie:
https://youtu.be/fk2wGqeiVBY?t=8042
Co we wtorek?
https://youtu.be/fHBNQyMf-Tc?t=8655


Olimpiada OD PODSTAW #9 – czwartek, 18
 listopada, 18:00

Link do zajęć: https://youtu.be/OJtDgY3dPlY
Przed nam tura ukryta Olimpiady Informatycznej Szkół Podstawowych:
https://youtu.be/Jir3J__TIQs?t=73
Gąsienica w kahoot:
https://youtu.be/Jir3J__TIQs?t=347
Quiz – co zrobi gąsienica – wyjaśnienie działania:
https://youtu.be/Jir3J__TIQs?t=4804
Omówienie zadania Diamond Collector
https://youtu.be/Jir3J__TIQs?t=1056
Omówienie kodu zadania Diamond Collector – Amerykańska Olimpiada Informatyczna:
https://youtu.be/Jir3J__TIQs?t=3732
Złożoność algorytmu omówionego w zadaniu:
https://youtu.be/Jir3J__TIQs?t=3572
Kod / linki:
https://oki.org.pl/diamond-collector
Program który działa wolno – bez gąsienicy – złożoność n^2:
https://youtu.be/Jir3J__TIQs?t=4545
I szybka gąsienica:
https://youtu.be/Jir3J__TIQs?t=4972
Opis Challenge #9:
https://youtu.be/Jir3J__TIQs?t=5170
Co w czwartek:
Binary Search – mocny algorytm
Dlaczego warto
10% zadań można rozwiązać
https://youtu.be/Jir3J__TIQs?t=5429


Olimpiada DLA ZAAWANSOWANYCH #9 – poniedziałek, 15 listopada 2021, 18:30

Find And Union w quizie:
https://youtu.be/1YZGyc2ODPU?t=365
Operacje bitowe:
https://youtu.be/1YZGyc2ODPU?t=1077
Problemy z dynamikami:
https://youtu.be/1YZGyc2ODPU?t=1744
Jak przedstawić zbiór? – Maski bitowe
https://youtu.be/1YZGyc2ODPU?t=1811
Zadanie kwiatki:
https://youtu.be/1YZGyc2ODPU?t=2679
Zadanie Współczesna Komunikacja:
https://youtu.be/1YZGyc2ODPU?t=3939

 


Programowanie OD PODSTAW #8 –
wtorek, 9 listopada 2021, 18:00

Link do zajęć: https://youtu.be/gAeRdK2Bsxg
Jakie problemy rozwiązujemy?
Dlaczego tablice?
– trzymamy dużo podobnych informacji -> jak?
https://youtu.be/gAeRdK2Bsxg?t=11
Dlaczego potrzebujemy tablic?
Tablice? Gry, przyszłość, misja
https://youtu.be/gAeRdK2Bsxg?t=90
Programowanie? Misja!
Dlaczego? Po co się uczymy?
– chcemy pisać aplikacje bankowe, edukacyjne, medyczne
– programowanie to jest misja
– Steve Wozniak
– przed nami misja!
– idealnie się przygotować przez olimpiadę!
https://youtu.be/gAeRdK2Bsxg?t=132
Tablice – wyjaśnienie od samego początku?!
https://youtu.be/gAeRdK2Bsxg?t=354
Pojedyncze zmienne są niewygodne:
https://youtu.be/gAeRdK2Bsxg?t=480
Tablice – czym są?
https://youtu.be/gAeRdK2Bsxg?t=554
C++ jest piękny!
– możemy zajrzeć do komputera!
– do pamięci
– daje wolność oraz odpowiedzialność
https://youtu.be/gAeRdK2Bsxg?t=1743
Hakujemy!
https://youtu.be/gAeRdK2Bsxg?t=1849
Tablice w pytaniach i odpowiedziach:
https://youtu.be/gAeRdK2Bsxg?t=1895
Tablice w pytaniach i odpowiedziach 2:
https://youtu.be/gAeRdK2Bsxg?t=6341
Zadanie oceny – omówienie:
https://youtu.be/gAeRdK2Bsxg?t=2881
Skrót omówienia zadania Oceny:
https://youtu.be/gAeRdK2Bsxg?t=5481
Zadanie Oceny – Kod / linki / rozwiązanie:
https://oki.org.pl/oceny-tablice
Wymyśl zadanie!
https://youtu.be/gAeRdK2Bsxg?t=7209


Olimpiada OD PODSTAW #8 – czwartek, 11 listopada 2021, 18:00
Gąsienica – quiz wprowadzający:
https://youtu.be/JggX75UKThc?t=226
Film/video o gąsienicy:
Jak się porusza gąsienica?
Małe nózki duże kroki!
Gąsienica w ruchu
Co fascynuje Tomka?
Natura inspiruje
https://youtu.be/JggX75UKThc?t=1000
Zadanie Books – platforma codeforces:
https://youtu.be/JggX75UKThc?t=1086
Kod / linki / rozwiązanie:
https://oki.org.pl/books/
Rozwiązanie brutalne zadania Books:
https://youtu.be/JggX75UKThc?t=1461
Algorytm gąsienicy – usprawniamy algorytm brutalny
https://youtu.be/JggX75UKThc?t=1830
Algorytm gąsienicy
https://youtu.be/JggX75UKThc?t=2004
Z czego wynika algorytm gąsienicy?
https://youtu.be/JggX75UKThc?t=2163
Złożoność algorytmu gąsienicy:
https://youtu.be/JggX75UKThc?t=2990
Kod zadania Books:
https://youtu.be/JggX75UKThc?t=3210
Czy Tomek zapominał użyć long long?
https://youtu.be/JggX75UKThc?t=4036
Dowód nie wprost = Jeśli a*b=400 to czy a i b mogę być jednocześnie większe od 20?
https://youtu.be/JggX75UKThc?t=4060
Czy komputer nas potrzebuje – metoda brutalna vs optymalna – czas działania komputera
Szukamy dzielników liczby 900
https://youtu.be/JggX75UKThc?t=4221
Challenge – opis:
https://youtu.be/JggX75UKThc?t=4778

Olimpiada DLA ZAAWANSOWANYCH #8 – poniedziałek, 8 listopada 2021, 18:30
Link do zajęć: https://youtu.be/1YZGyc2ODPU
Quiz:
https://youtu.be/yvEDfGKN8Bo?t=322
Problem #1 – czy istnieje droga?:
https://youtu.be/yvEDfGKN8Bo?t=1080
Na jakie pytania odpowiada Find And Union?
https://youtu.be/yvEDfGKN8Bo?t=1175
Złożoność Find And Union:
https://youtu.be/yvEDfGKN8Bo?t=1772
Gdzie przepisujemy informacje o reprezentantach?
Czy z większego do mniejszego?
https://youtu.be/yvEDfGKN8Bo?t=1930
Utrata funkcjonalności i małe komplikacje
https://youtu.be/yvEDfGKN8Bo?t=2465
Algorytm Find And Union:
https://youtu.be/yvEDfGKN8Bo?t=2531
Zadanie Tunele:
https://youtu.be/yvEDfGKN8Bo?t=3629
Obserwacja Kaliny – co jeśli likwidujemy krawędź z cyklu?
– dwuspójne
https://youtu.be/yvEDfGKN8Bo?t=4647
Olimpiada – nie ociągajmy się!
https://youtu.be/yvEDfGKN8Bo?t=5052
Nie wolno ściągać!
https://youtu.be/yvEDfGKN8Bo?t=5140
Na czym polega poprawne rozwiązanie w Olimpiadzie?
https://youtu.be/yvEDfGKN8Bo?t=5367