Lista zagadnień poruszanych na zajęciach Olimpijskiego Koła Informatycznego
Programowanie OD PODSTAW 25.09.2023
#aplikacje_pomysly
Aplikacja dla rolnictwa:
– co musi rolnik
– nawozić
– ile substancji, jakie stęzenie, w zależności od upraw
– prosta aplikacja która będzie pewne rzeczy przeliczać
– zachęcam by samemu napisać
https://youtu.be/irfDUnzbO3k?t=12
Parę pomysłów – czwartek – zajęca Programowanie Zaanwansowane:
– gra w życie
https://youtu.be/irfDUnzbO3k?t=95
#pokazac #motywacja
Co nas motywuje?
– Ciekawość
– Eistein – jestem pełen ciekawości!
– programowanie – próbujemy zepsuć, dopiero wtedy poznajemy
– co jest dalej
https://youtu.be/irfDUnzbO3k?t=123
Olimpiada – nie ma lepszej motywacji!
– weżmy udzial
– pokazanie zadan
https://youtu.be/irfDUnzbO3k?t=194
#pokazac #dlaczego_olimpiada #historie_absolwentow
– weż udział!
– Historia Tomasza Czajki – optymlizacja procesu
– historia nas nauczy złożoności, dlaczego programy działają wolno, szybko
– będziemy magikami
– nie chodzi o punkty, nie chodzi o etapy
– żebyśmy poznali jak się rozwiązuje problemy przy pomocy komputera
– kreatywność
– od dziś ruszamy z Olimpiada
– niech nas motywuje
– dziś wchodzi zadanie na 30, jutro na 60, pojutrze na 80
– liczy się co odkryjesz – nie punkty, nie etapy
– w środę – zajęcia Jędrzeja – przygotowuje do Olimpiady
– może być ciężko, ale nie szkodzi wciągniesz się!
https://youtu.be/irfDUnzbO3k?t=275
Dziękuję za Challenge!
– ponad 170 osób wrzuciło
– ogień, pasja, za każde zadanie bardzo dziękuję
https://youtu.be/irfDUnzbO3k?t=514
Zaczynamy – pokazanie cpp.sh:
https://youtu.be/irfDUnzbO3k?t=586
Szablon programu C++
https://youtu.be/irfDUnzbO3k?t=608
Wypisywanie na keran cout:
https://youtu.be/irfDUnzbO3k?t=728
Pamięć – przydzielanie zmienne, początek
Użytkownik musi coś podać – a my musimy pamiętać:
– chcę od Ciebie trochę pamięci
– będę pamiętał int
– musimy powiedzieć jaka zmienna będzie pamiętana
– nazywamy zmienne
– definiujemy w C++
– szuflada, szafka zmienna liczba_krow
– wpisujemy wartość do zmiennej
– wypisujemy na ekran
https://youtu.be/irfDUnzbO3k?t=815
Krótkie podsumowanie kodu
https://youtu.be/irfDUnzbO3k?t=1071
#pokazac #brawa
Program dobrze wypisuje!
https://youtu.be/irfDUnzbO3k?t=1114
#pokazac
Czysty kod – zmienne muszą mieć nazwy tego co oznaczają:
– chce żebyśmy buli w grupie
https://youtu.be/irfDUnzbO3k?t=1145
Wczytywanie danych:
https://youtu.be/irfDUnzbO3k?t=1321
Zadanie Old MacDonald:
https://youtu.be/irfDUnzbO3k?t=2600
Olimpiada ZAAWANSOWANA 19.09.2023
Ile czasu trwają zajęcia? https://youtu.be/NNupK9ohOHE?t=168
Jak będą wyglądać zajęcia? https://youtu.be/NNupK9ohOHE?t=199
– Podejście od strony zadań
– nie będzie omawianych algorytmów
Dla kogo zajęcia? https://youtu.be/NNupK9ohOHE?t=348
– Przejść II etap / Dobry wynik na finale!
Warto robić zadania: https://youtu.be/NNupK9ohOHE?t=450
– nie od razu zaglądamy do omówień!
– nie oszukiwać siebie
– rozwijać swoją kreatywność
Dobijamy zadania! https://youtu.be/NNupK9ohOHE?t=532
– myślenie że umiemy od zrobienia naprawdę wielka różnica
Przed nami przygoda! https://youtu.be/NNupK9ohOHE?t=568
– wtorki / zadania
Jak wygląd challenge: https://youtu.be/NNupK9ohOHE?t=583
– szkopuł
Olimpiada POZIOM II – 21.09.2023 – Zadania Binary Search 2 – Jan Myszka:
Dla kogo Olimpiada Poziom II? https://youtu.be/3KYBBeq8SfM?t=4950
Pisać contesty! https://youtu.be/3KYBBeq8SfM?t=4853
Zadanie Ntarsis’ Set: https://youtu.be/3KYBBeq8SfM?t=291
Zadanie Max Median: https://youtu.be/3KYBBeq8SfM?t=2789
Olimpiada POZIOM II – 19.09.2023 – Zadania Binary Search 1 – Samuel Maj: https://youtu.be/_vw3pTKXJE8?t=307
Jak będą przebiegać zajęcia? https://youtu.be/_vw3pTKXJE8?t=307
Super Challenge! https://youtu.be/_vw3pTKXJE8?t=3654
Co jeśli nie mogę zrobić zadania? https://youtu.be/_vw3pTKXJE8?t=2514
– analizuj samemu 3h
– zajrzyj po 3h max 1 raz
Zadanie Największy plus: https://youtu.be/_vw3pTKXJE8?t=379
Zadanie Statki kosmiczne: https://youtu.be/_vw3pTKXJE8?t=2568
Zadanie Las: https://youtu.be/_vw3pTKXJE8?t=3319
Rozmowa z Adamem Gąsienicą Samkiem.
Olimpiada jak szachy!
https://youtu.be/AsmxOZc0qfE?t=1621
Olimpiada OD PODSTAW #1 2023/24
Stos, kolejka, mapa TEORIA: https://youtu.be/l3qtWEBbaFI?t=74
– Strona zajęć Olimpiada OD PODSTAW: https://youtu.be/l3qtWEBbaFI?t=74
– Dla kogo zajęcia / czas trwania: https://youtu.be/l3qtWEBbaFI?t=710
https://youtu.be/l3qtWEBbaFI?t=110
OIJ, zadania, założenie, że programowanie jest ok, pętla, tablica,
– Damy radę! https://youtu.be/l3qtWEBbaFI?t=221
– Damy radę w OIJ! https://youtu.be/l3qtWEBbaFI?t=221
I etap na spokojnie
– Mamy czerpać RADOŚĆ: https://youtu.be/l3qtWEBbaFI?t=252
Chodzi o RADOŚĆ
– Challenge Olimpiada: https://youtu.be/l3qtWEBbaFI?t=392
– Kalendarium OIJ: https://youtu.be/l3qtWEBbaFI?t=461
– Stos: https://youtu.be/l3qtWEBbaFI?t=871
– Kolejka: https://youtu.be/l3qtWEBbaFI?t=2584
– Map: https://youtu.be/l3qtWEBbaFI?t=3052
OKI Programowanie #1 2023/24
Pierwszy program
Zaczynamy! https://youtu.be/WGI1XTV-cb4?t=17
Ależ historia! https://youtu.be/WGI1XTV-cb4?t=17
Historia
– Kamil Tokarski
– Zaczynał od zera
– Jest twócą gier
– To co nas pcha do przodu to… Chęć
– Dziecko które pełza do przodu
– Zapraszam do programowania
Jakie zajęcia: https://youtu.be/WGI1XTV-cb4?t=128
– lista wszystkich zajęć
Z czego składają się zajęcia?
– Challenge – najważniejsze
– najważniejsze DOING
– Quizy
– Spotkania
https://youtu.be/WGI1XTV-cb4?t=319
Ile trwwają zajęcia?
https://youtu.be/WGI1XTV-cb4?t=431
#pokazac
JAk język?
– C++
– Olimpiada – ZAPRASZAM!
– nie chodzi o punkty – to czego się nauczymy
– Kamil – olimpiada nauczyła go rozwiązania problemu, kratywnych
– olimpiada to C++
https://youtu.be/WGI1XTV-cb4?t=463
#pokazac
Nasza strona Programowanie OD PODSTAW:
– zobaczyć co nowego rano wieczór
– link do challenge
https://youtu.be/WGI1XTV-cb4?t=558
#pokazac
Co zrobić przed zajęciami?
– newsletter
– Discord
– Like youtube
https://youtu.be/WGI1XTV-cb4?t=626
Kaczka Dziwaczka: https://youtu.be/WGI1XTV-cb4?t=727
– zadanie – omówienie -początek:
– opis szkopuł
Czy znacie film Brzechwy Kaczka Dziwaczka?
https://youtu.be/WGI1XTV-cb4?t=810
Analiza rysunku – początek omówienia rozwiązania zadania
– wchodzimy na cpp.sh
– piszemy online programy C++
https://youtu.be/WGI1XTV-cb4?t=854
Wzorzec, template, kadłubek programu C++
https://youtu.be/WGI1XTV-cb4?t=932
Rozmowa Jan Myszka i Samuel Maj – zapowiedź Olimpiada Informatyczna Poziom II:
Zapowiedź zajęć: https://youtube.com/live/T6qS6gyfbFI
Dla kogo zajęcia? https://youtu.be/T6qS6gyfbFI?t=647
Prowadzący – Jan Myszka: https://youtu.be/T6qS6gyfbFI?t=83
Prowadzący – Samuel Maj: https://youtu.be/T6qS6gyfbFI?t=146
Rozmowa Jędrzej Olkowski – zapowiedź Olimpiada Informatyczna OD Podstaw:
#pokazac
#wnikanie
#jak_sie_uczyc
Najważniejsza rzecz to SAMODZIELNIE MYŚLEĆ nad zadaniami – minimum 1.5h jak mówi Jędrzej.
Rekomenduję 4h.
Korepetycje, zajęcia – to nie ma znaczenia jeśli nie będzie NASZEGO MYŚLENIA!!!
https://youtu.be/3JYjXvA2894?t=1112
#pokazać
#motywacja
Discord – społeczność OKI – link do dołączenia:
https://youtu.be/3JYjXvA2894?t=1669
#pokazać
#wnikanie
Bardzie cieszmy zadaniem, rozkoszujmy, niż idżmy na ilość
https://youtu.be/3JYjXvA2894?t=2284
Rozmowa Mirosław Zelent i Daniel Olkowski – Edukacja 2023/24 cześć 1
- Nowy Rok szkolny i nadzieje: https://youtu.be/bYaGNaYk-QI?t=20
- Plany Mirosława Zelenta: https://youtu.be/bYaGNaYk-QI?t=83
- Bezpieczeństwo – jeden z najbardziej ekscytujących tematów w Informatyce: https://youtu.be/bYaGNaYk-QI?t=348
- Podręcznik: Wprowadzanie do bezpieczeństwa IT: https://youtu.be/bYaGNaYk-QI?t=465
- Olimpijskie Koło Informatyczne – co w 2023/24?: https://youtu.be/bYaGNaYk-QI?t=592
- Dlaczego Olimpiada Informatyczna?: https://youtu.be/bYaGNaYk-QI?t=689
- Konkursy Informatyczne – Mistrz Programowania: https://youtu.be/bYaGNaYk-QI?t=807
- Ciekawość vs nauka – przypadek syna Tomasza Czajki, twórcy lotów kosmicznych Elona Muska: https://youtu.be/bYaGNaYk-QI?t=1073
- Czy rakieta doleci? – Jak ważna jest algorytmika?: https://youtu.be/bYaGNaYk-QI?t=1196
- Najbardziej kosztowne błędy w historii: https://youtu.be/bYaGNaYk-QI?t=1379
- Programowanie się zmienia! Komputer sam się uczy vs jest programowany!: https://youtu.be/bYaGNaYk-QI?t=1413
- Przykład: Programowanie vs uczenie maszynowe: https://youtu.be/bYaGNaYk-QI?t=1502
- Gdzie otworzyć supermarket?: https://youtu.be/bYaGNaYk-QI?t=1668
- Komputer sam się uczy – jak dziecko!: https://youtu.be/bYaGNaYk-QI?t=1712
- Czy możemy kontrolować sztuczną inteligencję? Czy inteligencja jest zależna od nośnika?: https://youtu.be/bYaGNaYk-QI?t=1839
- W którą stronę pójdzie AI?: https://youtu.be/bYaGNaYk-QI?t=1996
- Czy możemy stworzyć sztuczny mózg?: https://youtu.be/bYaGNaYk-QI?t=2011
- Co dają modele lingwistyczne – co daje AI?: https://youtu.be/bYaGNaYk-QI?t=2083
- Prywatny nauczyciel – AI w edukacji: https://youtu.be/bYaGNaYk-QI?t=2120
- Mirosław Zelent zawsze będzie potrzebny!: https://youtu.be/bYaGNaYk-QI?t=2212
- Sztuczna inteligencja challengem dla szkoły!: https://youtu.be/bYaGNaYk-QI?t=2265
- Czy AI oznacza izolację?: https://youtu.be/bYaGNaYk-QI?t=2368
- Czy nowa rzeczywistość wymaga regulacji?: https://youtu.be/bYaGNaYk-QI?t=2491
- Czy to jest koniec historii?: https://youtu.be/bYaGNaYk-QI?t=2564
- Sieci internetowe nie dają pewności: https://youtu.be/bYaGNaYk-QI?t=2619
- Kto ma halucynacje? Sztuczna inteligencja czy człowiek?: https://youtu.be/bYaGNaYk-QI?t=2877
- Gdzie jest AI w życiu?: https://youtu.be/bYaGNaYk-QI?t=3062
- Sieci neuronowe są kreatywne!: https://youtu.be/bYaGNaYk-QI?t=3278
- Kiedy sieci neuronowe mogą być niebezpieczne?: https://youtu.be/bYaGNaYk-QI?t=3317
- AI jako nauczyciel programowania: https://youtu.be/bYaGNaYk-QI?t=3356
- Wyspecjalizowane systemy – przyszłość AI: https://youtu.be/bYaGNaYk-QI?t=3416
- Słowa kluczowe znikają – sztuczna inteligencja ich nie potrzebuj: https://youtu.be/bYaGNaYk-QI?t=3497
- Polski start-up AI – podpowiadanie kolejnych produktów: https://youtu.be/bYaGNaYk-QI?t=3564
- Czy sztuczna inteligencja może robić przelewy?: https://youtu.be/bYaGNaYk-QI?t=3583
- AI szansą edukacji: https://youtu.be/bYaGNaYk-QI?t=3656
- Jakich nauczycieli szukają Rodzice?: https://youtu.be/bYaGNaYk-QI?t=3692
- Jak ChatGPT może pomóc nauczycielom?: https://youtu.be/bYaGNaYk-QI?t=3734
- Kim jest prompt engineer?: https://youtu.be/bYaGNaYk-QI?t=3768
- Jakiej sztucznej inteligencji uczyć?: https://youtu.be/bYaGNaYk-QI?t=3835
- Programowanie coraz bardziej efektywne: https://youtu.be/bYaGNaYk-QI?t=3876
Rozmowa – Wywiadowcy z Tomasz Czjaka
Dalsze losy uczestników
Elon który prosi Tomasza Czajkę by wrócił.
https://youtu.be/hAb-phv6Sg8?t=130
Grupa – jest łatwiej:
– Elon Musk robi coś dla swiata – grupa
– chce zrobić samemu coś ale trudno
https://youtu.be/hAb-phv6Sg8?t=297
W Google’u będzie dla Was za nudno….
– mnóstwo ludzi którzy robią kod
https://youtu.be/hAb-phv6Sg8?t=342
Ważniejsza jest inteligencja, olimpiada niż poszczególna wiedza:
– nie znał się na silnikach ale go chcieli jako genialnego algorytmika
https://youtu.be/hAb-phv6Sg8?t=479
Algorytmicy są potrzebni!
– znalis ię na silnikach ale nie umieli optmalizawoać
https://youtu.be/hAb-phv6Sg8?t=595
Możemy pomóc dowolnym osobom
Tomek pomaga innym działom:
https://youtu.be/hAb-phv6Sg8?t=613
Kod musi szybko działać w rakiecie:
– Kod Falcona za wolno działa
– Można go wyrzucić – nie nadaje się
– można go wyrzucać
– panika, usiadł w piątek wieczorem
– cała noc
– zrobił
– prosta rzecz
https://youtu.be/hAb-phv6Sg8?t=680
Dlaczego warto się znać na algorytmice, wnikać?
– ludzie którzy piszą kod nie rozumieją złożoności
https://youtu.be/hAb-phv6Sg8?t=803
Będziemy doceniani:
– został magikiem bo przyspieszył kod!
– dla nas to będzie proste
– do Elona że Tomek zrobił coś niesamwoitego
https://youtu.be/hAb-phv6Sg8?t=969
Tomasz Czajka jest proszony by pracować s SPACE_X
–
https://youtu.be/hAb-phv6Sg8?t=1102
Nie graj a pisz gry!
– syn Czajki pisze gry
– gdy przychodzi do Taty razem piszą
– Tato – piszemy gierkę?
– wciąga jak Tomasza który nauczył się kodować przez gry
– szkoła psuje ciekawość świata
– pisał kod, był syn, on wówczas zaczął pisać gierkę by pokazać, że jak kliknie to coś sie dzieję a nie że nie wiadomo po co
– myślał że nic ne rozumie, przerwa za 2h a on zrobił feature mimo, że wcześniej nie programował
– ciekawość świata u małych dzieci
– może im łatwiej się nauczyć – chłoną wiedzę naturalnie
– nauczyciel odpytuje, nie chce Ci się, uczysz się na jego oczekiwania
– unikają niż ciekawe…. stres, odpytywanie
– https://youtu.be/hAb-phv6Sg8?t=1745
Próba zrobienia sztucznej inteligencji która myśli logicznie:
– dowodzenie twierdzeń przez sztuczną inteligencję
– logiczna gra w warcaby, sekwencje ruchów
– te same metody można zastosować do dowodzenia twierdzeń, prac naukowych
– mówimy AI – tu jest problem matematyczny którego nikt nie rozwiązał przez 100 lat
– rozwiąż go!
– tak ja szachy, ale olbrzymie zastosowania…
– weryfikacja oprogramowania to samo
– AI może napisać dowód matematyczny że dobrze działa
– mamy pewność kodu
https://youtu.be/hAb-phv6Sg8?t=2797
Pomysł na start-up:
– testowanie kodu
– myśli jako OpenSoruce
– na poważnie trzeba wiele osób
– wiedzę matematyczną przetłumaczyć na język komputera
– to może zrobić AI
– książka o matematyce nie jest napisana formalne – jest po polsku
– po prostu kolejne kroki – a ti lubi AI – krok po kroku
– 1000 książek nie zrobi sam
– musiałoby dużo ludzi to robić
– np. doktoranci
-jak masz dużo dowodów twierdzeń to AI może się na tym uczyć
– dowodzić nowe rzeczy
– można podejść jak w GO
– pierwsza wersja AlphaGo uczyła się na podstawie Mistrzów
– druga wersja AlphaZero już nie patrzyła na żadne partie
– poznała zasady gry w Go
– grała sama ze sobą i na tej podstawie sama się zaczęła uczyć
– eksperymentowałą co działą co nie
– lepiej wiedziała co działa a co nie
– może AI nie musi uczyć się na podstawie książek
– może można jej powiedzieć – rozwiń matematykę od zera
– i to zrobi
– zacznie od 2+2
– jak nakierować by nie poszła w abstrakcję której my nie rozumiemy
– my całki, pochodne, a ona jakąś inną matematykę znajdzie
– jak nakierować na rzeczy które interesują ludzi?
– dlatego ta baza, książki najpierw warto wpisać
https://youtu.be/hAb-phv6Sg8?t=3100
Być może droga którą idzie ChatGPT to nie jest to co nas wyniesie w górę
– Być może za chwilę będziemy w zupełnie innym miejscu
– potrzebna jest być może jeszcze logika
https://youtu.be/hAb-phv6Sg8?t=3322
Pytania
– jakie sa problemy Starlink
– wolno działa – jak to znalazł
Rozmowa Doktora Kaweckiego z Szymon Sidor
https://youtu.be/34eTHrOHoPM
Rozmowa z Wojciechem Zarembą – twórczą ChatGPT!
Początek spotkania:
https://youtu.be/ib6nN5oBp-0/
https://fb.watch/k-PyUyAd6C/
Programiści i matematycy będa potrzebni!
Zrobią więcej!
https://fb.watch/k-PyUyAd6C?t=1065
Zakończenie OKI
Przed nami Wakacje!
– najpiękniejszy czas
– wypoczynku!
https://youtu.be/MLjghHcm3j4?t=2493
30 lat czy 10 miesięcy?
https://youtu.be/MLjghHcm3j4?t=103
30 lat OI-a
– zbudowanie społeczności
– chatGPT4 – kluczowa rola to Olimpijczycy OI-a
https://youtu.be/MLjghHcm3j4?t=106
OKI, Olimpiada i… dużo więcej!
– przygotowujemy się do czegoś dalej
– warto poświęcić czas
– to my będziemy zmieniać świat!
https://youtu.be/MLjghHcm3j4?t=129
Profesor Diks uwielbia OKI!
– ogląda, polubi!
– ma propozycję tytułu honorowego
– docenia pracę
– wiele osób to wychowankowie OKI
– nie tylko lokalna inicjatywa – obejmuje cay kraj
– co jest ważne?
– fajne studia, olimpiady, szkoły
– będziecie zmieniać świat
– ale ważna jest społeczność którą tworzymy
– która się lubi i która razem będzie tworzyć
– i sam prof. Diks też jest członkiem tej społeczności
– odpoczynku w wakacje
– nie tylko przy komputerze ale też komputer, popływanie
https://youtu.be/MLjghHcm3j4?t=129
To jest jak tworzenie poezji
Cytyt z Donalda Knuta:
– programowanie to coś więcej niż kodowanie
– sztuka układania i implementowania algorytmów
– proces przygotowania programu dla komputera cyfrowego jest pociągający
– nie tylko bo jest potrzebne
– to jest jak tworzenie poezji, komponowania muzyki
https://youtu.be/MLjghHcm3j4?t=216
Lech Duraj:
– podziękowania za startowanie w Olimpiada
– startuj w Olimpiadzie
https://youtu.be/MLjghHcm3j4?t=306
Znajdź w informatyce to co Cię bawi!
– potrzeba talentu! – Macie!
– potrzeba ciężkiej pracy – Macie!
– potrzeba znaleźć coś co sprawia przyjemność
– może algorytmika? dowodzenie twierdzeń, sztuczna inteligencja, pisanie jądra linuxa
– znajdź coś co Cię bawi, eksperymentuj, ró nowe rzeczy!
– dziel się innymi
https://youtu.be/MLjghHcm3j4?t=334
Chciałbym podziękować za wysiłek!
– trudno jest zrobić pracę fizyczną
– a jak dużo trudniej skupić myśli nad problemem 2h – wielki wysiłek
– dziękuję za wszystko co odkryliśmy
– we wrześniu 50 cm mogliśmy skoczyć dziś 70 150 a może 200cm
– to kosztowało nas ileś wysiłku ileś zadań
– nie przeypisywaliśmy kodu – to do niczego nie prowadzi
– sami do tego doszliśmy
– z naszymi fantastycznymi prowadzącymi
– prowadzący to inspiracja
https://youtu.be/MLjghHcm3j4?t=425
Informatyka to jest doing
My do wszystkiego dochodzimy sami
Jeśli sami rozwiążemy zadanie, znajdziemy algorytm to wiemy, że mamy moc!
Nasi prowadzący są najlepszym przykładem Mikołaj
Po niepowodzeniu był niezadowolony
Zrobił w 150 zadań w wakacje co dało mu Bałtycką Olimpiadę
Doing – liczy się to co zrobimy sami
Nikt nam tego szuflą do głowy nie włoży
https://youtu.be/MLjghHcm3j4?t=496
Dziękuję za radość programowania:
– jesteście tu nie dla szóstek, jedynek
– jesteście tu bo cieszy Was programowanie
– Jeżeli idziemy na rower to dlatego, że to lubimy
– Jest cel, ale sama wycieczka rowerowa jest radością
– Jeżeli tą wycieczką rowerową jest programowanie, rozwiązywanie problemów to fantastycznie
– za wysiłek za radość dziękuję
https://youtu.be/MLjghHcm3j4?t=599
Mogę tylko podpisać się pod tym co powiedział prof. Diks:
– to jest podróż która nie skończy się na olimpiadzie
– Mikołaj jest przykładem
– Miał staż w firmie R&D
– Ma możliwość dalszej pracy
– To jest wzorcowy przykład gdzie chciałbym byście dalej byli
– To Wasze życie i Wasze decyzje
– Radości z wycieczki tu i teraz!
https://youtu.be/MLjghHcm3j4?t=639
Dziękuję Rodzicom:
– sukces naszych dzieci
– to że cieszą się tym co robią to Wasz sukces jako Rodziców
– jak mam 13-15 lat to robię to dla Was
– to że kiedyś będę robił to samo co Mikołaj – nie działa na mnie
– ma 22 lata – stary człowiek
– ta nagroda długoterminowa mniej motywuje
– ta krótkoterminowa nagroda jest prosta
– zainteresowanie rodziców, cieszą się, pochwalą, zrobią dobrą kolację bo coś się udało
– zainteresowanie rodziców to atomowe paliwo dla dzieci, dla pasji
– to jest wysiłek
– jak zagadać do dziecka
– jak jest 13-15 lat to młodzi się buntują – i słusznie
– trzeba znaleźć słowa, to jest wysiłek
https://youtu.be/MLjghHcm3j4?t=726
Dziękuję wszystkim prowadzącym!
https://youtu.be/MLjghHcm3j4?t=861
Wakacje – głód zadań:
– układanie zadań to prawdziwy Research And Development
– dokładnie będziemy to samo robić jako założyciele start-upów
– głównymi architektami w Facebook, Google
– na uczelni wymyślać nowe algorytmy
– będziemy robić dokładnie to samo – wymyślali zadania
– najpiękniejsza sprawa
– przed nami Wakacje OKI 2023
– ranking aktualny
– Pomocny Dzik Wiktor – Budowa Bajtazara
– Janek Myszka / Samuel Maj – Obrona Bajtocji
– Można razem
– Ranking
https://youtu.be/MLjghHcm3j4?t=2504
Dziękuję tym którzy wymyślają, tym którzy rozwiązują!
– bawimy się na dwa sposoby
https://youtu.be/MLjghHcm3j4?t=2607
#pokazac
Wymyślamy dowolne zadanie!
– Algorytmiczne / programistyczne
– z kodów ASCII telefon / coś fajnego na plaży
– pierwszy program dla kogoś kto zaczyna – bardzo ważne
– a może na 10 drzew przedziałowych?
– będziemy mieć satysfakcję, że takie trudne
– może zadanie na 200 linii kodu / 3 linie kodu i pomysł
– to co Ci w duszy gra!
– A może zrobisz zadanie szybciej niż ktoś inny wymyślił?
– nlongn zamiast n2
– 20 linii kodu zamiast 1000
– podobnie na olimpiadzie bywa
– nasza kreatywność jest niesamowita – o to chodzi!
https://youtu.be/MLjghHcm3j4?t=2614
Maciek Wiśniewski
Dziękujemy!
– Najbardziej cieszy gdy uczestnicy robią zadania wymyślone przez Maćka
https://youtu.be/MLjghHcm3j4?t=2793
Dlatego zachęca wyjątkowo by wymyślać zadania
– To przyjemniejsze niż rozwiązywanie samemu
https://youtu.be/MLjghHcm3j4?t=2811
Podziękowanie Tomka:
– zaczynał 5 lat temu!
https://youtu.be/MLjghHcm3j4?t=2840
Każdy z nas jest wyjątkowy
– nie decyduje o tym tytuł finalist laureata
– nie ważne czy lubimy informatykę, grać śpiewać
– pomagajmy innym
– to w informatyce pięknie widać
– olimpiada to nie tylko zadania ale tez ludzie którzy ją tworzą
https://youtu.be/MLjghHcm3j4?t=2877
Podziękowania Mikołaja:
– 3 lata advanced
– strategia mocna strona Mikołaja
– dziękuję za spotkania, tym którzy są w finale dzięki Mikołajowi
– róbmy to co sprawia nam przyjemność, pasję
– podziękowania dla Mikołaja za 3 lata!
– kreatywna
– podziękowanie Mikołajowi
https://youtu.be/MLjghHcm3j4?t=2924
Podziękowanie Patryka:
– będzie dalej OKI
– konkurs wakacyjny
– kolejne OKI 23/24
https://youtu.be/MLjghHcm3j4?t=3093
Wszystko co zdobyliśmy jest nasze
– to z nami zostanie
– myślenie, algorytmika zawsze potrzebne
https://youtu.be/MLjghHcm3j4?t=3119
Nie załamujmy się jeśli nie jesteśmy pierwsi
– porównujmy się z samym sobą tylko to ma sens
– okaże się, że to co było mega trudne kiedyś teraz jest łatwe
https://youtu.be/MLjghHcm3j4?t=3140
Podziękowania Michała:
– Zaczynał od kółka Mikołaja w Staszicu
– nic się nie kończy
https://youtu.be/MLjghHcm3j4?t=3205
Progres najbardziej go ekscytuje
– zadanie po paru miesiącach z mega trudnego zrobiło się łatwe!
– na co dzień tego nie widać
– walczymy!
– jak jedziemy tramwajem odpalić szkopuł / zadanie i wykorzystać czas!
– piszcie bruty
https://youtu.be/MLjghHcm3j4?t=3259
Szymonie
– podziękowanie!
– za miłe słowa
– motywuje
– pozostałym prowadzącym
– sam dużo skorzystał z innych zajęć
– jak wiele dawały
– oki advanced / Tomka / olimpiada od podstaw
– one go prowadziły
– róbmy to co lubimy
https://youtu.be/MLjghHcm3j4?t=3336
Wesprzyj OKI – jedna kawa miesięcznie
https://youtu.be/MLjghHcm3j4?t=3462
Gala Finałowa Mistrza Programowania 2023
Podziękowanie dla Komitetu Głównego:
https://youtu.be/2F0pL7Db5So?t=4988
Olimpiada Zaawansowana #32
Dołącz do konkursu OKI wakacje 2023:
– sami wymyślamy zadania
–
https://youtu.be/90U4tAm-Y3k?t=114
Olimpiada Poziom II #32
Dołącz do konkursu OKI wakacje 2023:
– nasze zadania
– jeśli jest pomysł – to paczka albo pomysł sam
https://youtu.be/xBNy20DQUVg?t=412
Olimpiada OD PODSTAW #32
#pokazać
Warto robić rzeczy które już są napisane.
Pomysł zostanie – można go moduyfikowąć
https://youtu.be/iRyJEGWfeLc?t=12
#pokazac
Potrzeba osób które rozumieją!
https://youtu.be/iRyJEGWfeLc?t=184
Wakacyjny konkurs OKI
– o co chodzi?
– układamy i rozwiązujemy zadania
– sami
– już ranking, mamy pierwsze zadania
– mamy zadanie Budowa Bronisława – Wiktora Gatnera – Pomocny Dzik
https://youtu.be/iRyJEGWfeLc?t=778
Na czym polega wakacyjny konkurs?
– układamy zadania
– wysyłamy na kontakt@oki.org.pl
– wymyśleć treść / wejście / wyjście – jak Budowa Bronisława
– kod C++ który rozwiązuje zadania
– ja zrobię treść
https://youtu.be/iRyJEGWfeLc?t=836
Nagrody:
– przynajmniej otrzymają kubki / inne nagrody
– będa nagrody za najładniejsze zadania
https://youtu.be/iRyJEGWfeLc?t=895
Oddzielna klasyfikacja osób które rozwiążą i które ułożą
https://youtu.be/iRyJEGWfeLc?t=927
Dlaczego ten konkurs jest taki ważny?
– musimy pomyśleć czy zadanie jest rozwiązywalne
– sami zastanowić się jaka jest złożoność, czy jest rozwiązywalne
– naukowcami z uczelni9 start-upów
– odkrywcami
– układanie zadań to większa sprawa niż ich rozwiązywanie
– Pachocki ChatGPT – niesamowice dużo zadań ułożył
– nie wiemy czy rozwiązanie istnieje
– rozwiązując zadanie zgaduje czyjeś rozwiązanie
– układając rozwiązujemy problem
– dużo większa kreatywność
https://youtu.be/iRyJEGWfeLc?t=935
Odkrywca
Patrz na świat
Patrz problemowo!
Zadanie może dotyczyć czegokolwiek
– jedziemy pociągiem
– jedzą kanapki – która największa, najbardziej pachnie, najwięcej sera, cebuli
– góry strumyki, przewężenia
– wszystko może być zadaniem
– jak piękny jest świat gdy patrzymy od strony problemu!
–
https://youtu.be/iRyJEGWfeLc?t=1008
Zadania mogą być dowo;nie trudne
– programistyczne – kod ASCII plaży
– minimalne drzewo rozpinające
https://youtu.be/iRyJEGWfeLc?t=1036
Programowanie OD PODSTAW #32
Kłaniam się serdecznie!
– ponad 30 zajęć
– setki zadań
– mnóstwo kodu
– mnóstwo debugowania
– mnóstwo godzin poświęconych na programowanie
– zaufaliście, że to ma sens
– że prowadzi do wspaniałej przygody
https://youtu.be/9atF_Lcdb3c?t=36
Jesteśmy mocniejsi!
– skakaliśmy wzwyż 50cm, teraz może 100, 150, 200
– możemy więcej
– jeszcze jest głód programowania, odkrywania, pisania, debugowania
– głód radości z setek, z własnych aplikacji
– chciałbym by to w nas zostało, głód i radość z programowania
– radość z wnikania, odkrywania
https://youtu.be/9atF_Lcdb3c?t=63
Robimy bo kochamy!
– nie dla szóstek, jedynek
– nie robimy dla nagród, nie robimy dla kar
– bo sprawia nam to przyjemność
– bo sam fakt, że rozumiemy
– bo fakt, żw wczoraj było trudno a dziś jest łatwo
– że porównujemy się do siebie
– każdego dnia mocniejsi
– to jest dla nas radością
– każdy dzień jest piękniejszy
– Dziękuję za wspólną przygodę
– za wysiłek
https://youtu.be/9atF_Lcdb3c?t=96
Programowanie ma sens!
– jest piękne
– osoby które rozumiej, wnikają są potrzebne!
– coraz bardziej potrzebne
– rozmawiam z szefami firm informatycznych
– trudno znaleźć kogoś kto rozumie
– nie tylko wkleja kod ale też rozumie
https://youtu.be/9atF_Lcdb3c?t=137
OKI 2023/24:
– 18 września 18:00
Link do zajęć: https://youtu.be/WGI1XTV-cb4
Opis: https://oki.org.pl/harmonogram-zajec/
Info o zajęciach: https://oki.org.pl/newsletter.php
– Co będzie?
– programowanie od podstaw
– programowanie zaawansowane
– zachęcam do prowadzenia
https://youtu.be/9atF_Lcdb3c?t=327
Co będzie w OKI 23/24?
– programowanie od podstaw
– programowanie zaawansowane
– olimpiada od podstaw / zaawansowana
– sztuczna inteligencja od połowy października
https://youtu.be/9atF_Lcdb3c?t=400
Powieś plakat OKI w szkole!
– strona: https://oki.org.pl/oki/plakaty/
https://youtu.be/9atF_Lcdb3c?t=435
Pomysł Remmiego!
– konkurs wakacyjny
https://youtu.be/9atF_Lcdb3c?t=477
Konkurs wakacyjny:
– wrzuciłem zadanie 8 hetmanów
https://youtu.be/9atF_Lcdb3c?t=502
O co chodzi w konkursie wakacyjnym?
– sami układamy zadania
– sami wymyślamy
https://youtu.be/9atF_Lcdb3c?t=534
Sami wymyślamy!
– treść – pociąg o torach, o krzesłach w pociągu, zadanie o piasku, plażowiczach
– która góra najwyższa
– może być proste zadanie kod ASCI lub zadanie na DFS
– na zwykła pętlę, drzewo przedziałow
– na co tylko chcemy
– tylko nasze zadania
https://youtu.be/9atF_Lcdb3c?t=548
Przesyłacie dwie rzeczy:
– treść / kod cpp
– wysyłamy na kontakt@oki.org.pl
– można testy
– ja zrobię paczkę
https://youtu.be/9atF_Lcdb3c?t=588
Nagrody!
– przynajmniej 2 kubki / 2 karty
– będa nagrody z rankingu / będą za najpiękniejsze zadania
– na pierwszych zajęcia 18 września o 18:00 https://youtu.be/WGI1XTV-cb4
https://youtu.be/9atF_Lcdb3c?t=678
Pomysł Remmiego!
Skąd ten pomysł
– chluba / pomysł wina Remmiego
https://youtu.be/9atF_Lcdb3c?t=746
Dlaczego chcę byście sami wymyślali zadania?
Dlaczego konkurs?
– osoby które wymyślały zadania do olimpiad dużo łatwiej rozwiązują problemy!
– Tomasiewicz, Pachocki
– bardzo kreatwyne osoby
– w turniejach matematycznych tez zespoły wymyślają dla siebie zadania
– czekam na zadania / paczki
https://youtu.be/9atF_Lcdb3c?t=772
Zabawa będzie przednia!
– Rodzina chce jechać nad morze
– Wy macie dosyć
– Leżycie na leżaku
– Mnóstwo ludzi dookoła
– Jakie zadanie by tu wymyśleć?
https://youtu.be/9atF_Lcdb3c?t=828
Co będzie w programowaniu zaawansowanym?
– zobaczymy
– może aplikacja w JavaScript
https://youtu.be/9atF_Lcdb3c?t=873
Programowanie to doing!
https://youtu.be/9atF_Lcdb3c?t=1103
Olimpiada Zaawansowana #31
Zadanie Polaryzacja:
– finał OI-a XX
– ciężkie
– ciekawe
– optymalizacja
https://youtu.be/pKqM07k5DOw?t=23
Polaryzacja – początek omówienia:
https://youtu.be/pKqM07k5DOw?t=131
Zakończenie OKI:
https://youtu.be/pKqM07k5DOw?t=593
Rozwiązanie zadania:
https://youtu.be/pKqM07k5DOw?t=873
OKI #32: – Park linowy
https://youtu.be/pKqM07k5DOw?t=3459
Olimpiada Poziom II #31
Przywitanie!
https://youtu.be/I9Q7Ja1qbUU?t=6
Custodial Cleanup:
https://youtu.be/I9Q7Ja1qbUU?t=54
Challenge #31:
https://youtu.be/I9Q7Ja1qbUU?t=4769
BFS czy DFS?
Czy tu pachnie DFS-em?
https://youtu.be/I9Q7Ja1qbUU?t=2180
Kod zadania:
https://youtu.be/I9Q7Ja1qbUU?t=3191
Rozrysuj – to nie jest łatwe zadanie!
https://youtu.be/I9Q7Ja1qbUU?t=4318
Olimpiada od podstaw #31
Legendarna seria!
– rozwiązujemy ciężarówki
– Ciężarówki to legendarna seria
– prowadzi wspaniały prowadzący Szymon Hajderek
https://youtu.be/O5Dh8X7Ltlc?t=21
Potężne mózgi i próba ognia
Finał XVII OIJ za nami!
https://youtu.be/O5Dh8X7Ltlc?t=41
Ogród
Pielęgnuj swój ogród!
Bądź w ogorodzie
https://youtu.be/O5Dh8X7Ltlc?t=146
Droga!
https://youtu.be/O5Dh8X7Ltlc?t=308
Cieszmy się finałem:
https://youtu.be/O5Dh8X7Ltlc?t=495
Życzę Wam ogrodu!
https://youtu.be/O5Dh8X7Ltlc?t=693
Ja być w finale?
https://youtu.be/O5Dh8X7Ltlc?t=726
Gala finałowa:
https://youtu.be/O5Dh8X7Ltlc?t=820
OKI 2023/24:
https://youtu.be/O5Dh8X7Ltlc?t=856
Szkoły algorytmiczne!
https://youtu.be/O5Dh8X7Ltlc?t=897
Problem fryzjera
– Fundamentalne pytanie matematyki / informatyki
https://youtu.be/O5Dh8X7Ltlc?t=1126
Czy istnieje fryzjer?
https://youtu.be/O5Dh8X7Ltlc?t=1158
Odpowiedź:
https://youtu.be/O5Dh8X7Ltlc?t=1178
Cieżarówki II
https://youtu.be/O5Dh8X7Ltlc?t=1633
Tylko jedna osoba zrobiła to zadanie na finale!
https://youtu.be/O5Dh8X7Ltlc?t=2027
Najwspanialszy algorytm na świecie!
Find And Union
– Graf bez grafu
– 30-40% zadań grafowych jest naszych
– dwie funkcje
https://youtu.be/O5Dh8X7Ltlc?t=5929
Gdzie szukać zadań
Gdzie znajdować zadania na techniki?
– jak znaleźć zadania na Find And Union
– lista zadań OKI
https://youtu.be/O5Dh8X7Ltlc?t=6060
Co w naszym Challenge?
https://youtu.be/O5Dh8X7Ltlc?t=6272
Chcę żebyście zrobili moc!
https://youtu.be/O5Dh8X7Ltlc?t=6285
OKI #32
https://youtu.be/O5Dh8X7Ltlc?t=6575
Programowanie od podstaw II #31
Finał czyli święto!
https://youtu.be/O5Dh8X7Ltlc?t=91
Jak być w finale?
https://youtu.be/O5Dh8X7Ltlc?t=726
Rekurencja i Pomocny Dzik!
https://youtu.be/WitPCxSeaqk?t=14
Wielka pasja młodego człowieka!
Pomocny Dzik – Wiktor:
– Irlandia / Wrocław
– sp24 Wrocław
– sp3 C++ / Informatyczny profil
– Mniej niż 7 – omówił zadania
– To zapoczątkowało jego pasję
– Wierzy w nas
– Wiktor jest w 6 klasie / powinien być w 5! / 12 lat
– Początkowo w wieku 7 klas – Scratch
– od 9 lat zaczął porządnie
– Scratch / Python / C++ – historia językowa
– 93 dzień c++
– za chwilę rocznica
https://youtu.be/WitPCxSeaqk?t=37
Rekurencja – najbardziej naturalne podejście
– jeśli masz zrobić coś dużego to zrób coś mniejszego, mniejszego a na końcu to dla najmniejszego okaże się to bardzo proste
– gdzie rekurencja, DFS, generowanie wszystkich możliwości, grafika
https://youtu.be/WitPCxSeaqk?t=276
Za nami OIJ!
–
https://youtu.be/WitPCxSeaqk?t=332
OKI #32:
https://youtu.be/WitPCxSeaqk?t=5203
Olimpiada od podstaw / Poziom II #30
#zajecia_100%_zanalizowane
Zakończenie OKI 22/23:
https://youtu.be/CTUDbW_L-bs?t=233
#pokazac #jak_sie_uczyc #historie_uczniow #motywacja
Bałtycka Olimpiada Informatyczna 2023 BOI:
– fantastyczny sukces polskiej reprezentacji
– Adam Gąsienica Samek każdego dnia wygrał / zdemolował pozostałe kraje
– w pierwszej dziesiątce 5-ciu Polaków
– wszyscy Polacy z medali złotymi / srebrnymi
– to
https://youtu.be/CTUDbW_L-bs?t=304
Po prostu zacznij!
Możesz!
To wszystko w naszym zasięgu
– Adam też kiedyś zaczynał
– był zawzięty w sportowym tego słowa znaczeniu
– porażki bardzo go motywowały
– nie 4 zadania tygodniowo a dużo więcej
– jeśli mamy radość z tego co robimy to warto się rzucić w swoją pasję
– zostawmy gry, inne rzeczy
– rower koleżanki tak
– ta przygoda jest przed nami
– 66 punktów przewagi Adama
https://youtu.be/CTUDbW_L-bs?t=342
Najtrudniejsze zadanie ever!
Zadanie Ciąg:
https://youtu.be/CTUDbW_L-bs?t=537
Rozwiązanie:
https://oki.org.pl/ciag
Jak tworzymy wyrazy ciągu?
https://youtu.be/CTUDbW_L-bs?t=642
#jak_rozwiazywac_zadania #strategia_konkurs
Dobre zrozumienie zadania to podstawa!
– nie bójmy się poświęcić nawet 10 / 15 minut
– bez zrozumienia nie rozwiązemy
https://youtu.be/CTUDbW_L-bs?t=1424
Straszliwe zadanie!
– musimy powiedzieć indeks 10^18
https://youtu.be/CTUDbW_L-bs?t=1737
Lekko pływamy – jest trudno!
https://youtu.be/CTUDbW_L-bs?t=4344
Obserwacja numer 1:
– co oznacza 3 na indeksie 4?
– że 6-tek będzie 4, 7-mek będzie 4 i ósemek będzie 4
https://youtu.be/CTUDbW_L-bs?t=1790
Obserwacja numer 2:
– ciąg składa się z bloków liczb:
https://youtu.be/CTUDbW_L-bs?t=2022
Obserwacja numer 3:
– krotność / długość bloku
– na podstawie danego elementu znamy kolejne, na podstawie kolejnych znamy jeszcze kolejne
– na podstawie indeksu ciągu 3 możemy dojść do indeksu 38
https://youtu.be/CTUDbW_L-bs?t=2087
Tablica ost gdzie jest ostatnia aktualnie rozpatrywana wartość
– pozostałe zmienne
– krotność – aktualny indeks
– znane – do którego indeksu ogarniamy wartości ciągu na podstawie krotności
– wynik – wartość dla indeksu znane
https://youtu.be/CTUDbW_L-bs?t=2524
Dokładna symulacja naszego algorytmu:
– bloki krotności 1
– bloki krotności 2
https://youtu.be/CTUDbW_L-bs?t=3078
Dokładne wytłumaczenie algorytmu:
Symulacja dla indeksu 3 (krotności 3)
– krotności 3 są od indeksu 4 do indeksu 5)
– czyli mamy 3 razy podciąg długości 4 (wartości 6 7 8)
– czyli mamy 3 razy podciąg długości 5 (wartości 9 10 12)
– czyli znane skacze o 27: 3*4 + 3*5
– wartość dla znane skacze o 6 (3*2) bo 6 wartości wystąpi w tych blokach
https://youtu.be/CTUDbW_L-bs?t=3831
Analizujemy podobnie algorytm dla indeksu/krotności 4:
https://youtu.be/CTUDbW_L-bs?t=4441
Będąc na indeksie 4 wiemy wartości do indeksu 122 / wartości 12
Analizujemy jak odpowiedzieć na pytanie o indeksy pomiędzy kolejnymi wyliczonymi znanymi:
https://youtu.be/CTUDbW_L-bs?t=4704
#pokazac #zajecia_oki_super #dajemy_rade
Super ogarniamy!
– 7-10 / 10
– super jak najtrudniejsze zadanie ever!
– brak algorytmu
– kłopot / pływanie to dwa poziomy które musimy ogarnąć
https://youtu.be/CTUDbW_L-bs?t=5173
Omówienie kodu zadania Ciąg:
https://youtu.be/CTUDbW_L-bs?t=5234
Czy wejdzie Python?
– a Fortran w C++
https://youtu.be/CTUDbW_L-bs?t=5686
Doświadczenia Tomka z konkursów:
– najważniejsze doświadczenie Tomka
– piszemy bruty jak nie umiemy
– za bardzo chciał wzorówki
https://youtu.be/CTUDbW_L-bs?t=6253
W którym momencie odpuścić wzorcówkę a kiedy pisać bruta?
– zacznij od najprostszego
– pół godziny jak nic nie widzisz przejdź do innego lub bruta
https://youtu.be/CTUDbW_L-bs?t=6328
Pierwsze 15 minut czytamy treść zadania
– rozumiem ze szczegółami
https://youtu.be/CTUDbW_L-bs?t=6424
1/2h do 1h brak pomysłu na jakiekolwiek zadanie – piszę bruta
– już coś mam
– jestem spokojniejszy
– mogę usprawniać bruta
– może zauważę co liczę 2 razy
– w trakcie pisania bruta przyjdzie mi do głowy obserwacja
https://youtu.be/CTUDbW_L-bs?t=6444
Nie warto siedzieć nad jednym zadaniem do końca:
– siedzę 3h do 4h nad jednym zadaniem
– dużo ryzykuję
– nawet jeśli piszę bruta a on też nie idzie
– przełączmy się na inne – może prostszy brut.
– większość osób która mówiła że nie poszedł im konkurs to zafiksowanie się nad jakimś zadaniem i nie przeszli na drugie
– warto przeskakiwać między zadaniami
https://youtu.be/CTUDbW_L-bs?t=6509
Dzień przed jest bardzo ważny
– długi spacer
https://youtu.be/CTUDbW_L-bs?t=6582
Jak zdjąć z siebie stres?
– wyobraź sobie, że jesteś na konkursie
– co robisz na początku – czytasz
– co robisz gdy masz pomysł / nie masz pomysłu
– co zrobisz po 1h /2h
– to co się dzieje się w mózgu
– wyobrażenie sobie czegoś jest tak jak to naprawdę robić
– jeśli wyobrazimy sobie dzień przed to naprawdę będziemy na konkursie
– na konkursie nie będzie stresu bo my już byliśmy na egzaminie
– już poukładaliśmy, ten stres pierwszego razu minął, bo nie jesteśmy pierwszy raz
– to bardzo mocna rzecz
– w czasach polowań na mamuty, słonie też sobie wyobrażali
– jak byli na polowaniu to było łatwiej
– zdejmujemy z siebie ten stres
– każdy ma ten stres – czy ma wiele czy mało punktów
– inne rzeczy – koncentracja na zadaniach
– wzięcie oddechu
https://youtu.be/CTUDbW_L-bs?t=6590
Bieżemy co nasze!
Zmienianie zadania – doświadczenie Tomka:
– II etap OI-a, I klasa Liceum
– stracił 5h nad jednym zadaniem – Drzewo czwórkowe
– myślał że ma na 100
– ono było proste koncepcyjnie ale trudne programistycznie
– nie był dobry programistycznie
– potrafił wymyślać, programistycznie słabo
– jak ważne jest programowanie
– wziął za to zadanie na 100 – nie na bruta
– widział setkę z tego zadania
– po 4h nie wychodzi, ale jestem blisko, mam na 100, nie będę robił bruta
– ostatnie 45 min / 30 min musiał się otrzeźwić i zrobić bruta
– wrócić do rzeczywistości
– napisał dwa bruty na 12 /13 punktów
– 25 punktów z dnia
– był zły – można było mieć więcej
– w tym roku zabrakło mu 20 punktów – właśnie jednego bruta, gdyby wcześniej zmienił zadania
– nie kozaczymy bieżemy co nasze
https://youtu.be/CTUDbW_L-bs?t=6742
Jeśli mamy pomysł / kod prosty dla nas na 100 – bierzemy!
– jeśli chcemy zawalczyć o wysokie miejsca wzorcówki będą się liczyć
– jeśli mamy problem z wymyśleniem – piszemy bruta
– takiego który jest programistycznie prosty
– by w 4 pętlach się w 10 ifach nie zagnieździlie, ugrzęźliw błotku
– by nie wziać zadania w ktrórym zagniźdzone ify sprawdzamy
– obok uciekają prostsze punkty zamotać
– strategia
https://youtu.be/CTUDbW_L-bs?t=6863
Strategia jest ważna
– wziąć co umiemy
– jeśli nie umiemy ok
– jeśli umiemy i nie weźmiemy tych punktów to straszny kac moralny
https://youtu.be/CTUDbW_L-bs?t=6911
Jeśli nie idzie – zmieniamy
– jeśli zmieniamy mózg za każdym razem myśli inaczej
– nawet powrót po 60 sekundach to już inne podejście
– po toalecie
– po wymachu
– jak gramy w szachy 3m/3m
– mam wygraną pozycję
– gość na 40 sekund nic nie rusza
– ja zajmuje się czymś innym
– wracam/ myślę inaczej i gośc mnie ogrywa – nie mam już zwycięskiej strategii
Wnioski
– jak mamy zadanie na setkę, kod prosty – piszemy
– nie wolno odłożyć na później
– bierzemy co nasze!
– jeżeli odłożymy może zabraknąć czasu
– mogą zapomnieć jak ja w szachach
– mogą nie zdążyć bo na końcu presja czasowa, mały dodatkowy problem i brak czasu na ogarnięcie
– jest setka piszemy!
– ta zasada działa też w ten sposób, że nie ma pomysłu
– wrócimy do zadania po 40s / 60s to mózg pójdzie po innych torach, inne pomysłu
https://youtu.be/CTUDbW_L-bs?t=6934
Nie popełniajmy błędów innych:
– i tak wszyscy popełniamy te same błędy
– przemyślmy by ich nie popełnić
– strategia jest ważna
– potem 2 tygodnie / 2miesiące kac mo0ralny bo strategia zawiodła
https://youtu.be/CTUDbW_L-bs?t=7090
Sukcesy Tomka Kwiatkowskiego:
https://youtu.be/CTUDbW_L-bs?t=7130
Daj z siebie wsyzstko
Ten sam konkursu jutro z tymi samymi zadaniami jutro dałby inna kolejność
Nie stresujmy się miejscem:
– jesteśmy w setce – to już dużo
– zadania mogą podejść / nie podejść
– możemy być mocniejsi w pomysłach albo silniejsi w grafach
– nie chodzi o miejsce / chodzi o to by dać z siebie wszystko
– z innymi zadaniami inna kolejność
– będzie inna kolejność po I / II dniu
– nie patrzmy na miejsce
– bawmy się finałem / cieszmy się
– to pokazuje też historia
– twórca ChatGPT Jakub Pachocki był finalistą ale nie był zwycięzcą
– sam fakt bycia finalistą pokazuje naszą moc
– wyciąganie cyferek 1 / 3 / 5 – nie ma znaczenia
– finał to przygoda / fun /radość
– oddać tyle dobrych skoków ile zadań
https://youtu.be/CTUDbW_L-bs?t=7139
Symulujmy zadania
– Tomek napisał zadanie na kartce
– wypisał kolejne wyrazy – 36 wyrazów
– patrzmy na zależności
https://youtu.be/CTUDbW_L-bs?t=7312
Nie idzie to rysujmy
– napiszmy program który wypisuje kolejne wyrazy
– wypisujmy obserwacje
– przeskakujmy z zadaniami
– oddechy
– koncentracja na zadaniach
– cieszmy się finałem
– to już gigantyczny sukces
– ale dajmy z siebie wszystko – warto
– przygotujmy się mentalnie dzień wcześnie
– na konkursie walka do końca, koncentracja
– testowanie
– nie wychodzi wcześniej
https://youtu.be/CTUDbW_L-bs?t=7339
Testujmy przypadki graniczne:
– walczymy do końca
– 10 sekund przed końćem wrzucane rozwiązania zmieniają kolejność
– osoba z 5 miejsca awansowała na 2 miejsce
– 5 minut znalazła błąd i minutę wcześniej wrzuciła poprawkę
https://youtu.be/CTUDbW_L-bs?t=7452
Powodzenia!
– Radości z finału
– Koncentracji do końca
https://youtu.be/CTUDbW_L-bs?t=7519
Olimpiada poziom II #31 – zapowiedź:
https://youtu.be/CTUDbW_L-bs?t=112
Olimpiada od podstaw #31 – zapowiedź:
https://youtu.be/CTUDbW_L-bs?t=172
Olimpiada zaawansowana #29
Prawnicy i Reprezentanci firmy:
https://youtu.be/0FetVxMBKaU?t=63
Reprezentanci firmy:
https://youtu.be/0FetVxMBKaU?t=168
Prawnicy:
https://youtu.be/0FetVxMBKaU?t=1656
Olimpiada Poziom II #29
Finał nie jest trudny!
https://youtu.be/LDG-IQxq5bk?t=42
OKI #30:
https://youtu.be/LDG-IQxq5bk?t=119
Zakończenie OKI:
https://youtu.be/LDG-IQxq5bk?t=252
Zadanie Stacja:
https://youtu.be/LDG-IQxq5bk?t=1141
Challenge #29
https://youtu.be/LDG-IQxq5bk?t=5599
Olimpiada od podstaw – wyścig programów #29
Fascynacja, Olimpiada i 4h dziennie!
https://youtu.be/Gh2aLbBoNuE?t=371
Układajmy zadania!
Kuba Pachocki, Lizak – układajmy zadania:
https://youtu.be/Gh2aLbBoNuE?t=5877
Zawody sportowe:
https://youtu.be/Gh2aLbBoNuE?t=1374
Challenge #29:
https://youtu.be/Gh2aLbBoNuE?t=5860
OKI #30:
https://youtu.be/Gh2aLbBoNuE?t=930
Programowanie od podstaw – wyścig programów #29
Dlaczego wolno?
https://youtu.be/CQt7q9wUcPU?t=12
Informatyka ratuje życie:
https://youtu.be/CQt7q9wUcPU?t=136
OKI 2023/24
https://youtu.be/CQt7q9wUcPU?t=1657
Istota rzeczy:
– nie 6 dni a 2 sekundy
https://youtu.be/CQt7q9wUcPU?t=4895
Challenge #29:
https://youtu.be/CQt7q9wUcPU?t=5076
OKI #31:
https://youtu.be/CQt7q9wUcPU?t=5108
Olimpiada Zaawansowana #28 – Meteory
Ciekawe bo równoległe!
Równoległe wyszukiwanie binarne
– to jest w zadaniu Meteory
https://youtu.be/Wx1VtiTBKDo?t=34
Meteory:
https://youtu.be/Wx1VtiTBKDo?t=106
Meteory- rozwiązanie:
https://youtu.be/Wx1VtiTBKDo?t=841
Rozwiązanie Binary Search:
https://youtu.be/Wx1VtiTBKDo?t=1088
Kod meteory:
https://youtu.be/Wx1VtiTBKDo?t=2299
OKI #29 – Reprezentanci Firmy / Prawnicy:
https://youtu.be/Wx1VtiTBKDo?t=3758
–
https://youtu.be/Wx1VtiTBKDo?t=3634
Olimpiada POZIOM II #28 – Łuk triumfalny
Łuk triumfalny:
https://youtu.be/PWhYSkhUJQs?t=186
Obserwacje:
https://youtu.be/PWhYSkhUJQs?t=426
Challenge #28:
https://youtu.be/PWhYSkhUJQs?t=1901
OKI #29:
https://youtu.be/PWhYSkhUJQs?t=1778
Olimpiada OD PODSTAW #28 – Wioska Logiki
Legendarne zadanie!
– Wioska logiki
https://youtu.be/PIoWs9pANWg?t=3
Jak się ubrać?
https://youtu.be/PIoWs9pANWg?t=62
Wybierz szkołę!
https://youtu.be/PIoWs9pANWg?t=626
Wioska logiki:
https://youtu.be/PIoWs9pANWg?t=1615
OKI#29:
https://youtu.be/PIoWs9pANWg?t=6026
Challenge #28:
https://youtu.be/PIoWs9pANWg?t=5960
Programowanie OD PODSTAW #28 – wyszukiwanie na vector, lower_bound
Czy masz porządek w pokoju?
Po co nam porządek?
– By szybko znajdować?
https://youtu.be/8CDzmS6WAck?t=13
Jak duży jest Google?
Jak szybko znajdować?
Jak ważne jest szybkie znajdowanie?
– jak google znajduje
– 100PT indeksów Google
https://youtu.be/8CDzmS6WAck?t=31
Szybkie wyszukiwanie – na czym polega problem:
https://youtu.be/8CDzmS6WAck?t=841
Punkt kulminacyjny:
– lower_bound / upper_bound – wyjaśnienie
https://youtu.be/8CDzmS6WAck?t=2427
Kiedy nie możemy użyć lower_bound() na vector?
– binary search pow wyniku
https://youtu.be/8CDzmS6WAck?t=4329
Początek odpowiedzi:
https://youtu.be/8CDzmS6WAck?t=4418
Challenge #28:
https://youtu.be/8CDzmS6WAck?t=4184
OKI #29:
– Wyścig programów
– zamiast 11 miliardów lat zrobimy to w 11 sekund
https://youtu.be/8CDzmS6WAck?t=4235
Olimpiada Zaawansowana #27 – Małpki
Małpki:
https://youtu.be/ntK5lm13xIk?t=511
Odwrócić czas:
– częsty trik
– Małpki
https://youtu.be/ntK5lm13xIk?t=1906
Zadanie Wielki Upadek:
https://youtu.be/ntK5lm13xIk?t=1938
Zadanie Wielki Upadek:
https://youtu.be/ntK5lm13xIk?t=2150
Warto czytać treści zadań:
– Mikołaj napisał tylko w jedną stronę
https://youtu.be/ntK5lm13xIk?t=2203
OKI #28:
https://youtu.be/ntK5lm13xIk?t=6730
Co można przynieść na Olimpiadę?
https://youtu.be/ntK5lm13xIk?t=6820
Czy jest róż nica między n a nlogn?
– jeśli autor chce to zróżnicuje
– dla zadań z biblioteczka i dużymi wartościami to mozna zróźnicować
https://youtu.be/ntK5lm13xIk?t=6848
Jak przygotować się do Olimpiady?
– jak dać mata w dwóch ruchach?
– czy mat w dwóch ruchach ma sens?
https://youtu.be/ntK5lm13xIk?t=7016
Olimpiada POZIOM II #27 – PARADA – Dynamik na drzewach – Finał OI-a
Zostawiamy grafy warstwowe, przechodzimy do dynamików na drzewach!
Co może być na drzewie?
Dynamiki na drzewie mogą być proste
– ogólny sposób
– implementacje różnią
– im więcej zadań tym bardziej będziemy dostrzegać
https://youtu.be/IP2dveOg8yA?t=17
Drzewo biologiczne i informatyczne:
https://youtu.be/IP2dveOg8yA?t=485
Czy pytania odpowiadają na pytania?
– czy graf który ma n-1 wierzchołków i n krawędzi musi być drzewem
– musi być słówko spójny
https://youtu.be/IP2dveOg8yA?t=531
Strony do tworzenia grafów:
https://youtu.be/IP2dveOg8yA?t=1619
Zadanie Parada:
– finał XXIII OI-a
https://youtu.be/IP2dveOg8yA?t=1680
Dynamiki na drzewach:
https://youtu.be/IP2dveOg8yA?t=2726
Układanie quizów rozwija
Na ile sposobów można przejść graf DFS-em?
– pytanie do kahoot źródłem ciekawego problemu
– układanie pytań rozwija
https://youtu.be/IP2dveOg8yA?t=6559
OKI #28
https://youtu.be/IP2dveOg8yA?t=130
Challenge #27:
https://youtu.be/IP2dveOg8yA?t=6496
Olimpiada OD PODSTAW #27 – Speedrun – finał XIV OIJ
Gdzie te grafy?
Grafy!
https://youtu.be/16oqcotPD5I?t=16
Ostatni akcent roku szkolnego – finisz!
https://youtu.be/16oqcotPD5I?t=148
Jak minęły święta?
https://youtu.be/16oqcotPD5I?t=214
Gray też są potrzebne:
https://youtu.be/16oqcotPD5I?t=283
Speedrun:
https://youtu.be/16oqcotPD5I?t=1062
Mamy 100%!
https://youtu.be/16oqcotPD5I?t=5496
Challenge #27:
https://youtu.be/16oqcotPD5I?t=5174
OKI #28:
https://youtu.be/16oqcotPD5I?t=5269
Olimpiada Poziom II #26 – Przemytnicy
Zajęcia #27
– dynamiki na drzewie
https://youtu.be/2vkXEG3BJxg?t=96
Challenge #26:
https://youtu.be/2vkXEG3BJxg?t=3712
Olimpiada i… ChatGPT!
–
https://youtu.be/2vkXEG3BJxg?t=152
Olimpiada i… ChatGPT!
Kto wymyślił ChatGPT?
– Jakub Pachocki
https://youtu.be/2vkXEG3BJxg?t=212
Przemytnicy:
https://youtu.be/2vkXEG3BJxg?t=1046
Świąteczne życzenia:
https://youtu.be/2vkXEG3BJxg?t=4041
Olimpiada OD PODSTAW #26 – HLD
Najlepsze życzenia!
https://youtu.be/kIVKq3nOKHM?t=21
Legendarne zadanie!
https://youtu.be/kIVKq3nOKHM?t=49
Jaka szkoła?
– wybieramy szkołę
https://youtu.be/kIVKq3nOKHM?t=322
Obozy:
https://youtu.be/kIVKq3nOKHM?t=423
Zadanie ciężarówki:
https://youtu.be/kIVKq3nOKHM?t=1310
Challenge #26:
https://youtu.be/kIVKq3nOKHM?t=7864
OKI #27:
https://youtu.be/kIVKq3nOKHM?t=243
Programowanie OD PODSTAW #26 – map
Dzikie indeksy
map
– możemy odwoływać się do dzikich indeksów
– w tablicy mamy odwołania od 1 do 10
– nasza tablica może odwoływać się do indeksów jak: Maciek czy -10
https://youtu.be/UIr8nuRMxxE?t=68
map – początek omówienia:
– klucze i wartości
– tablica ma indeksy liczbowe
– czy możemy mieć tab[“Ala”] = “Maciek”;
https://youtu.be/UIr8nuRMxxE?t=337
Przechodzimy po map:
https://youtu.be/UIr8nuRMxxE?t=740
map – odwołanie do niezdefiniowanego klucza:
https://youtu.be/UIr8nuRMxxE?t=932
Liczy się odwaga!
https://youtu.be/UIr8nuRMxxE?t=1105
element który dotykamy wchodzi do mapy:
https://youtu.be/UIr8nuRMxxE?t=1120
Zadanie Ogrodnik Bitek:
https://youtu.be/UIr8nuRMxxE?t=2431
Challenge #26:
https://youtu.be/UIr8nuRMxxE?t=3181
auto w C++
https://youtu.be/UIr8nuRMxxE?t=3411
Życzenie Świąteczne:
https://youtu.be/UIr8nuRMxxE?t=3587
Olimpiada Zaawansowana #25 – HLD
Co to jest HLD?
https://youtu.be/Cp_2pB6BfKI?t=124
Jaka przyszłość
Jaka przyszłość OKI Advanced?
– Olimpiadę wygrywa się pomysłami a nie algorytmami
https://youtu.be/Cp_2pB6BfKI?t=599
Omawiamy nasze zadania – zgłaszajmy!
https://youtu.be/Cp_2pB6BfKI?t=1104
III etap OI-a:
https://youtu.be/Cp_2pB6BfKI?t=1049
Gdzie stosuje się Centroidy?
https://youtu.be/Cp_2pB6BfKI?t=1323
Gdzie używamy HLD?
Co to jest HLD?
Co pozwala HLD?
– zmienić krawędź
– wartość w podrzewie, suma NWD
– wartośc na wybranej ścieżce
– dodać 4 do wszystkich krawędzi na zadanej ścieżce
– nie wolniej O(log^2n)
https://youtu.be/Cp_2pB6BfKI?t=1372
Kod HLD:
https://youtu.be/Cp_2pB6BfKI?t=2932
Jak napisać drzewo przedziałowe na wskaźnikach?
https://youtu.be/Cp_2pB6BfKI?t=5152
Za tydzień zadanie Małpki!
https://youtu.be/Cp_2pB6BfKI?t=5182
Olimpiada Poziom II #25 – Zadanie Bug- potyczki algorytmiczne
Dijkstra i pomysł!
– częsty pomysł!
– zadanie z potyczek algorytmicznych
https://youtu.be/n-tE-YVuloI?t=23
USACO
– kto brał udział?
– będą zadania
https://youtu.be/n-tE-YVuloI?t=142
Biblioteka standardowa STL C++:
– poziom olimpiady nie potrzeba
– wystarczy dokumentacja
– patrzymy co potrzebujemy
https://youtu.be/n-tE-YVuloI?t=262
Plany Poziom II:
https://youtu.be/n-tE-YVuloI?t=343
OKI #26:
https://youtu.be/n-tE-YVuloI?t=81
Challenge #25:
https://youtu.be/n-tE-YVuloI?t=4614
Przechodzimy na szkopuła:
https://youtu.be/n-tE-YVuloI?t=4596
Turniej szachowy – na zajęciach:
https://youtu.be/n-tE-YVuloI?t=1214
Ethical hacking – Olimpijskie Koło Hackerskie:
https://youtu.be/n-tE-YVuloI?t=1224
Zadanie Bug:
https://youtu.be/n-tE-YVuloI?t=1278
Zadania do programowania dynamicznego:
Bracia
Rezerwacja sal wykładowych
Diamenty
Piramida
https://youtu.be/n-tE-YVuloI?t=4707
Olimpiada OD PODSTAW! #25 – Liczby silne – finał OIJ
Jaki jest sens olimpiad?
Olimpiada motywacją
Przygotowujemy się rozwiązywania problemów w przyszłości
– motywuje nas Olimpiada
– przygotowujemy się do finału – zadanie z finału
– nieważne czy jesteśmy – myślmy jak byśmy byli
– bo taki jest sens olimpiady – motywacja do rozwoju
– poznać / odkryć jak się rozwiązuje problemy przy pomocy komputera
– by w przyszłości samemu rozwiązać te problemy
– znaleźć strategię inwestycyjną, ekologiczny plastik, rozłożenie elementów na taśmie
– mnóstwo rzeczy które komputer normalnie liczy miliardy lat my rozwiążemy w sekundę
– zapakować rzeczy do tysięcy ciężarówek
– to my jako informatycy zrobimy
– olimpiada nas motywuje
– niech 3 etap motywacją
– dlatego robimy zadanie z III etapu
https://youtu.be/iFnRvm6nxV8?t=3
Potężny cios
Strategia cięższych rękawic:
– zadania o jeden stopień wyżej
– dla nas zadanie o 1 poziom niżej łatwiejsze
– pochodzi od bokserów
– przygotowują się do walki w cięższych rękawicach
– potem jak założą zwykłe mając potężny cios
– my mamy mieć potężny cios
– na tej olimpiadzie informatycznej
– jak zobaczymy zadanie, ma opaść stres, przecież robiliśmy trudniejsze
– spoko spoko koncentracja damy radę
– o to chodzi
https://youtu.be/iFnRvm6nxV8?t=94
Finał OI-a za nami!
– gratulacje dla wszystkich
– bezdyskusyjne zwycięstwo Antoniego Buraczewskiego – absolutny MAX
https://youtu.be/iFnRvm6nxV8?t=168
#pokazac
#top
#potrzebni
#motywacja
#dlaczego_olimpiada
Gratulacje dla wszystkich laureatów, finalistów
– gratulacje dla każdego kto był w finale
– bycie wśród 100 najlepszych informatyków spośród 1,5mln osób w szkołach srednich
– każdy chce mieć taką osobę w zespole, każdy chce rozmawiac
– bo to jest talent, kreatywność, wielki móżg
– ale nie tylko
– to jest hart ducha
– za każdą z tych osób stoją godziny przygotowań, myślenia
– każda z tych osób pokazała że potrafi skupić się na celu, dążyć
– potrafi odłożyć na bok rzeczy które przeszkadzają
– nie ma sensu bym grał w gry
– mam coś ciekawszego
– to ja będę tworzył utra szybkie gry
– ja mogę dużo więcej
– wszystko co robię gigantyczny sens
– pokazały hart ducha, kreatywność,
– fantastyczna przyszłość
– gdziekolwiek napiszesz na linkedin finalista olimpiady informatycznej
– momentalnie firmy chcą rozmawiać
– zachęcam każdego z nas
– jeśli masz jakąkolwiek wątpliwość – pozbądź się jej
– nieważne w której jesteś klasie
– motywuj się III etapem OIJ / I etapem który będzie za chwilę
– przeznacz każdą chwilę na algorytmikę, rozwiązywanie problemów
– to wszystko ma sens
– tego świat potrzebuje
– będziesz potrzebny
– gratulacje
https://youtu.be/iFnRvm6nxV8?t=205
Gratulacje dla Michała Szeligi – naszego prowadzącego
– laureat
https://youtu.be/iFnRvm6nxV8?t=356
Wrażenia z finału!
Nie można się poddawać
– witamy Michałą Szeligę, laureata jubileszewskiej XXX Olimpiady Informatycznej
– zadowolony
– mógł mieć lepszy wynik
– pierwszy dzień rozczarowany – zaledwie 62 punkty
– próbował zdebugować jedno podzadanie
– złe rozwiązanie debugował
– pomysł był dobry ale głupio w implementacji
https://youtu.be/iFnRvm6nxV8?t=1182
Strategia…
Warto pomyśleć nad każdym zadaniem!
– jedno zadanie przeczytał na początku, odłożył na bok
– leżało do końca konkursu
– mógł je zrobić na 80-100 punktów
– nad każdym zadaniem warto się trochę zastanowić
– a nie cały czas walić głową w mur, klepiąc jedno rzecz
– najgorzej jak ktoś się zakopie w implementacji
– warto zrobić przerwę pomyśleć o innych zadaniach
– nie jest łatwe w sytuacji presji czasowej ale konieczne
– 1 dzień – mógłby być dużo lepszy wynik
– ale drugiego dnia miał lepszy wynik od wielu kolegów, jest zadowolony
– nie można się poddawać
– bo istnieje przyszłosć
– i można wszystko naprawić
https://youtu.be/iFnRvm6nxV8?t=1270
Jak ważna strategia
Wyrzucić to co złe?
Czy możemy się podnieść?
Źle pierwszy etap, jak pójść na drugi etap?
– Jakie popołudnie po peirwszym etapei
– Nie był w stanie totalnie wyrzucić z głowy
– Wyciągnął wnioski
– Bardziej świadomy tego co robi
– Lepiej strategicznie podejść do konkursu
– Umiejętności są
– Ale jak wpadnie w głupie pułapki to się blokuje
– Skupił się na wnioskach
https://youtu.be/iFnRvm6nxV8?t=1343
Jak Michał przygotowywał się do OI-a?
– ile zadań tygodniowo
– różnie
– był okres gdy robił jedno zadanie tygodniowo
– w trakcie nauki zdalnej gdy miał dużo czasu
– brał udział w warsztatach
– z kolegami pisze konkursy drużynowe
– przez ostatnie 2 miesiące 2-3 zadania tygodniowo
https://youtu.be/iFnRvm6nxV8?t=1408
Drużynowe warsztaty UW:
– przygotowania do akademickiej olimpiad dla studentów
– wstęp otwarty
– każda drużyna może przyjśc i pisać
– byłe międzynarodowe olimpiady
– UW udostępnia miejsce, wydruki
– motywacja że tam jest pisane
– towarzystwo, wyjście termin które motywuje, nie można przełożyć, profesro
https://youtu.be/iFnRvm6nxV8?t=1464
Zadanie z finału XV OOIJ – liczby silne:
https://youtu.be/iFnRvm6nxV8?t=1592
Liczby silne – finał OIJ
– laureat praktycznie nasz
– a może pierwsza dwudziestka
– warto!
https://youtu.be/iFnRvm6nxV8?t=6323
Challenge #25:
https://youtu.be/iFnRvm6nxV8?t=6104
OKI #26
https://youtu.be/iFnRvm6nxV8?t=6239
Programowanie OD PODSTAW! – #25 – 18-latki – kolejka priorytetowa i tablica
usuwanie elementów z kolejki
Statystyka!
– zegarki na rękę – puls, tętno
– wiemy jak zachowuje się organizm
– możemy zobaczyć statystki
– zobaczyć postępy, moc biegową
– wezwać pogotowie jak jest problem
– próg mleczanowy – przetrenowanie
– telefony mówią nam – używaliśmy telefonu więcej niż poprzednim tygodniu
– śpimy za dużo, śpimy za mało
– moga pokazać bo zbierają dane
– super pomysł na apliakcję
– wizualizacji danych – trendów
– wnioski – douczenie się jak działa człowiek i pomoc
– sieć neronowa
https://youtu.be/Z_rmVH4HD84?t=22
Pomysł na aplikację:
– zegarki 2020 – jeden kwartał – ponad 10 mln sprzedanych zegarków
– ponad 10 mln zegarków sprzedanych w jednym kwartale
– duży rynek na naszą aplikację
– podpowiadać treningi
https://youtu.be/Z_rmVH4HD84?t=160
Dziś aplikacja która analizuje dane społeczeństwa:
– jak zmienia się wzrost społeczeństwa
– ministerstwo oczywiście analizuje informacje o społeczeństwie
– czy jesteśmy zdrowsi, wzrost, waga
– programiści, informatycy piszą aplikacje
– potencjalna przyszłość
– dziś początek takiej aplikacji
– wykorzystamy do tego naszą wiedzę – kolejka priorytetowa
https://youtu.be/Z_rmVH4HD84?t=200
Wnikajmy!
Inwestuj w rzeczy ponadczasowe
– nieważne jaki jeżyk będzie znać
– jak będziemy rozumieć to będziemy potrzebni
– inwestuj w ponadczasowe rzeczy
– języki się zmieniają
– 10 lat temu nie były Python, JavaScript
– jeśli rozumiemy jak działa kolejka priorytetowa, mapa to będziemy w stanie pomóc bez względu na język programowania
– struktury są podobne w każdym języku programowania
https://youtu.be/Z_rmVH4HD84?t=263
Informatyczne gole!
Informatycy grają w piłkę!
Wynik meczu gorąca dyskusja
Gotowe powołanie
Aplikacje do statystyk i piłka
– na meczu piłkarski statystyk są zbierane setki, tysiące
– ile podań, dobry, złych, względem odległości
– jak się przesuwali, posiadanie piłki w strefie pierwszej drugiej, trzeciej
– pod bramką w obronie
– w drużynach są zatrudnieni Ci którzy zajmują się analizą danych!
– statystycy, matematycy
– wnioski! Gdzie przeciwnik jest dobry, gdzie jest zły
– gdzie my jesteśmy dobrzy, gdzie mamy się poprawić
– Negelsman – niemiecki trener – wyrósł na statystykach
– jako pierwszy zaczął stosować metody statystyczne w trenowaniu
– dało mu to sukcesy
– aplikacje analizujące mecze – duże pieniądze
– matematyka, aplikacje analizujące dane – przyszłość jest nasza
– oglądając mecz od strony informatycznej
– ile tam jest danych przetwarzanych
– piłka nożna to informatyka
– wszystko co robimy ma głęboki sens
– piękna przyszłość
– można zobaczyć jakie aplikacje dla drużyn piłkarski
– zgłosić się na ochotnika jako woluntariusz
– pokazać programy które napisaliście w USACO
– podania liczy komputer
– statystyki na bieżąco
– przetwarzanie obrazu + analiza
– celny strzał / niecelny
– kto ma piłkę i komu przydzielić czas posiadania piłki
– to cały czas robi system informatycy
– fascynująca sprawa
– jak ktoś lubi informatykę i piłkę to ma gotowe powołanie!
https://youtu.be/Z_rmVH4HD84?t=372
Jak się uczyć dynamików?
– strona OKI lista zadań
– otagowane zadania
https://youtu.be/Z_rmVH4HD84?t=1630
Zadanie 18-latki:
https://youtu.be/Z_rmVH4HD84?t=1796
Zajęcia OKI#26:
https://youtu.be/Z_rmVH4HD84?t=5681
Challenge #25
Nowy challenge – opis:
https://youtu.be/Z_rmVH4HD84?t=5749
Nowy challenge szkopuł / ranking:
https://youtu.be/Z_rmVH4HD84?t=5762
Olimpiada OD PODSTAW! – Bomberman
Progress!
Historia Szymona i Bombermana
Zadanie Bomberman:
– II etap z OI29 2022
– Szymon zrobił bruta na 30
– teraz udało mu się
– pokazuje jak fajny jest BFS
https://youtu.be/IL0usm-8LPI?t=69
Rozwiązanie brutalne:
https://youtu.be/IL0usm-8LPI?t=912
Zrób progress!
– Szymon w zeszłym roku – brut
– teraz udało się
https://youtu.be/IL0usm-8LPI?t=1333
Warto pisać bruty!
Wymyśliłeś bruta? Pisz!
– bruty dużo dają
– decydują o przejściu lub nie do finału
– to może pomóc w sprawdzaniu wzorcówki
https://youtu.be/IL0usm-8LPI?t=1368
Zadanie pomocnicze:
https://youtu.be/IL0usm-8LPI?t=1401
Przenosimy zadanie pomocnicze na Bombermana:
https://youtu.be/IL0usm-8LPI?t=2434
Kiedy satysfakcja?
Trudności nas wzmacniają!
– na takich zadaniach najlepiej się uczyć
– Szyman ma dużą satysfakcję jak takie zadania rozwiąże
– bardzo rozwija
https://youtu.be/IL0usm-8LPI?t=4710
Podsumowanie algorytmu:
https://youtu.be/IL0usm-8LPI?t=5655
Kod Bombermana:
https://youtu.be/IL0usm-8LPI?t=5905
Olimpiada Poziom II – Spóźnienie
Kto jest kuzynem BFS-a?
Dijkstra – kuzyn DFS
https://youtu.be/6nPicBs3txE?t=20
OI #25 – zadanie Bug
– dywizja A – najtrudniejsza
– fajny pomysł do wykorzystania na kolejnych zajęciach
https://youtu.be/6nPicBs3txE?t=79
Zapowiedź 2:
https://youtu.be/6nPicBs3txE?t=5141
Challenge #24:
https://youtu.be/6nPicBs3txE?t=4811
Olimpiada Informatyczna!
– dwa dni ogromnego wysiłku
– gratulacje każdego pomysłu
– ważne że myślimy nad zadaniem
– spotkania na bieżąco on site
https://youtu.be/6nPicBs3txE?t=142
Startuje USACO!
– trwa 3-4h
– my ustalamy kiedy chcemy pisać
– przyciskamy start i jedziemy
– lepiej rano
https://youtu.be/6nPicBs3txE?t=228
Czy brąz jest łatwy?
https://youtu.be/6nPicBs3txE?t=4946
Trzeba grać!
Jak awansować na USACO?
– Trzeba grać!
– Jak max – awansujemy w tej samej rondzie
– Jeśli nie maxa to w kolejnej rundzie od 600
– co ile USACO – harmonogram na stronie
– jak się liczy punkty na USACO?
– każdy test to punkty / równomierne rozłożone
– każde zadanie to 333 punkty
https://youtu.be/6nPicBs3txE?t=5377
Co jeszcze na OKI POZIOM II?
– kolejka priorytetowa
– Jump pointery
– LCA
https://youtu.be/6nPicBs3txE?t=924
Zadanie Spóźnienie – ontak – grupa A – 2019 rok:
https://youtu.be/6nPicBs3txE?t=1200
Browar i Dijkstra:
– zadanie Gdzie zbudować Browar?
– autorem jest profesor Guzicki – nauczyciel Tomka w Gimnazjum
–
https://youtu.be/6nPicBs3txE?t=367
Omówienie zadania “Jak zbudować browar”?
https://youtu.be/6nPicBs3txE?t=5482
Kiedy turniej szachowy?
https://youtu.be/6nPicBs3txE?t=5198
Fajne zadanka na Dijkstre / grafy:
– Spoznienie, Bug, Przemytnicy, Hydra (Potyczki, Dynamik na Dijktre)
– Farm updates / Pseudo FAU – jak mniejszy łączymy do większego to mamy złożoność nlogn
https://youtu.be/6nPicBs3txE?t=5224
OKI #25 – Programowanie OD PODSTAW
Jesteśmy programiści – potrzebni:
– mamy misję!
– zajmiemy się aplikacjami medycznymi
– zdrowie całego społeczeństwa
– najbardziej motywujące jest to że działanie ma sens, pomogliśmy
– nie wynagrodzenie
– informatyka w medycynie, to setki zastosowań
– my napiszemy własną
– dokumentacja elektroniczna, historia, wie z czym przyszliśmy
– automatyczne zamawianie w szpitalu, IoT – czujniki widzą czego jest za mało
– analiza danych, statystyka – dziś
– zegarki które mierzą puls, ciśnienie
– powiedzieć nam czy jest progres w ciągu roku
– jak zmieniają się całe społeczeństwa – waga, wzrost
– wizualizacja serca – studenci mogą się uczyć
– analiza DNA, dlaczego niektórzy chorują inni nie, możemy jako informatycy to powiedzieć
– możemy w przypadku problemów ze zdrowiem uratować życie! – słabe tętno
– piękna przyszłość
– jak warto programować, jak warto brać udział w Olimpiadzie, challenge
– to prowadzi nas do pięknej przyszłości która ma sens, bo pomaga
– bez względu na wygrodzenie
https://youtu.be/xr_OoP4-rw0?t=15
Piękna przyszłość przed nami!
– jak warto programować, jak warto brać udział w Olimpiadzie, challenge
– to prowadzi nas do pięknej przyszłości która ma sens, bo pomaga
– bez względu na wygrodzenie
https://youtu.be/xr_OoP4-rw0?t=236
Kiedy radość?
Nie ma większej radości od tego, że pomożemy
– mała dziewczynka, historia, lekarz, łzy
– jest sens programować
https://youtu.be/xr_OoP4-rw0?t=259
USACO
Jest sens programować!
– najbliższy weekend
– przygotujmy 4 godziny
– musimy ciągiem
– wyśpijmy się i weźmy udział!
– rywalizujmy z całym światem
– zobaczę że jestem mocny
– mogę pokonać amerykanów, chińczyków
– że to co robię ma sens
– że nie tylko pomaga ale ma zdolności
– poziomy przechodzę
– motywacja
– dla tych którzy biorą udział w Olimpiadach
– sprawdzam się w warunkach stresu
– czy dobrze rozłożyłem siły, przerzucam się miedzy zadaniami, kreatywność
– wszystko możemy przetestować
– każde zadanie – piękny wpis do CV
– robi wrażenie na wszystkich
– można brać udział od piątku do poniedziałku
– brązowa – II etap OIJ
– silver II/III etap OIJ
– gold – OI
– platinium IOI
https://youtu.be/xr_OoP4-rw0?t=307
Kodujmy!
– przyszłość jest piękna
– zobaczymy że aplikacja może działać wolno lub szybko
– kodujmy
– challenge
– róbmy zadania
– każda sekunda to najlepiej spożytkowany czas
https://youtu.be/xr_OoP4-rw0?t=499
Quiz kolejka ze znaków:
– size
– push
– top
https://youtu.be/xr_OoP4-rw0?t=793
Challenge #24:
https://youtu.be/xr_OoP4-rw0?t=657
OKI #24 – Olimpiada Zaawansowana
Zadanie Potatoes and fertilizers – Finał Olimpiady Litewskiej:
https://youtu.be/ycqPwTFU100?t=333
Prosto nie jest!
https://youtu.be/ycqPwTFU100?t=1001
Upraszczamy!
Prostsze zadanie – upraszczamy myślenie o naszym zadaniu:
https://youtu.be/ycqPwTFU100?t=1005
Prostsze zadanie staje się rozwiązaniem!
https://youtu.be/ycqPwTFU100?t=6621
OKI #25:
https://youtu.be/ycqPwTFU100?t=7511
OKI #23 – Olimpiada Poziom II
Zaczynamy algorytm Dijkstry:
Dijkstra – Zaczynamy!
https://youtu.be/Rho7LZnBwoA?t=20
Ontak – obóz dla najlepszych olimpijczyków
https://youtu.be/Rho7LZnBwoA?t=93
Zadanie Shortest Routes:
https://youtu.be/Rho7LZnBwoA?t=730
Jak działa Algorytm Dijkstry?
https://youtu.be/Rho7LZnBwoA?t=1075
OKI #24:
https://youtu.be/Rho7LZnBwoA?t=76
Challenge #23:
https://youtu.be/Rho7LZnBwoA?t=4005
OKI #23 – Programowanie OD PODSTAW
Własny świat!
– własne prawa
– teksty z własnym porządkiem – najdłuższe – potem krótsze
– programowanie robi to co chcemy
– mamy wiertarkę która wierci w dół a potem w poprzek
– w programowaniu tworzymy własne światy z prawami które my definujemy!
– niesamowita radość
https://youtu.be/L5vzOEoctgg?t=14
Uczymy się rzeczy które wykorzystamy!
– w dorosłym życiu
– czy teraz mając naście lat i tworząc grupę programistyczną
– uczymy się ogólnych rzeczy, rozumiemy, na pewno je wykorzystamy
https://youtu.be/L5vzOEoctgg?t=90
Kto najbardziej hojny?
– często interesuje nas sytuacja naj
– najbardziej hojnym, najwyższy, najdłuższy napis
– kolejka priorytetowa
– bardzo przydatna w olimpiadzie
– pozwalała uzyskać 100 punktów na II etapie OI-a
– w życiu jeszcze bardziej
– dziś zaczątek aplikacji gdzie kolejka będzie niezbędna!
https://youtu.be/L5vzOEoctgg?t=114
Dziś piszemy zaczątek aplikacji:
https://youtu.be/L5vzOEoctgg?t=176
Co gdy potrzebujemy środków na aplikację / na grę?
– na kompilator, obecność w necie, programistów
– albo na firmę która roznosi ulotki
– można pożyczyć, znaleźć inwestora
– finansowanie społecznościowe – crowdfounding
– dlaczego?
– podoba im się, dostaną pierwszą wersję, mają dobre serce
https://youtu.be/L5vzOEoctgg?t=176
Firmy które zdobyły środki przy pomocy crowdfoundingu:
– przykłady firm
– FNF – Friday Night Funkin
– 2-3 osoby
– gra w której ktoś śpiewa a my musimy wybierać nuty które śpiewa
– prosta ale się spodobał
– W ciągu miesiąca powstała gra
– Weszli na jedną z platform crwodfoundingowych
– 60 000 USD w ciągu kilku godzin
– w mniej niż rok $2mln
– da się zebrać!
– rozwija się, otwarta społeczność
– można dokładać kod, muzyki
– inspiracja gdy dorośli
– teraz poprosić kogoś dorosłego
https://youtu.be/L5vzOEoctgg?t=301
Wykorzystamy ideę crowdfounding
– wypisywać tego kto najwięcej wpłacał
– motywujące dla innych by więcej wpłacali
https://youtu.be/L5vzOEoctgg?t=471
Kolejka priorytetowa – opis szczegółowy:
https://youtu.be/L5vzOEoctgg?t=633
Kolejka priorytetowa z własnym sortowaniem:
– własny comparator
– struct
https://youtu.be/L5vzOEoctgg?t=4505
Challenge #23:
https://youtu.be/L5vzOEoctgg?t=2908
OKI #24:
https://youtu.be/L5vzOEoctgg?t=2939
OKI #23 – Olimpiada OD PODSTAW
Za nami II etap OIJ!
– wszyscy uczestnicy III etapu mają status finalisty
https://youtu.be/5zDdq2xGocg?t=22
Gratulacje dla wszystkich finalistów!
– bycie wśród setki najlepszych z miliona uczestników
– tego nikt nigdy nie odbierze
– można okraść człowieka, zrobić krzywdę ale tego nie da się zabrać
– zawsze będzie to budzić podziw świata
– piękna chwila w życiu każdego z nas
– ale potwierdzenie zdolności, hartu ducha, radzenia sobie ze stresem
– umiejętność dążenia do celu
https://youtu.be/5zDdq2xGocg?t=46
Lista finalistów!
https://youtu.be/5zDdq2xGocg?t=99
Wykorzystaj czas!
W finale wszyscy startujemy od zera!
– z takimi samymi szansami
– wykorzystajmy czas
– przed nami 8 tygodni
– róbmy zadania
– wrocławskie sparingi, olimpiady, usaco silver+, EJOI, Mistrza Programowania, challenge
– 4 zadania tygodniowo
– finaliście mają szkołę średnią
– jest możliwość zawalczenia o maksa
https://youtu.be/5zDdq2xGocg?t=275
Czas na przygotowanie Olimpiady to najlepiej spożytkowany czas!
– nieważne czy jesteśmy w 3 etapie czy nie
– poświęciliśmy mnóstwo czasu
– i poświęcimy za chwilę
– przyjmij że jesteś, przygotuj się jakbyś był w tym 3 etapie
– nie chodzi o miejsce na tym 3 etapie – walczymy, są emocje
– musi być głębszy sens
– coś dalej niż szkoła podstawowa czy średnia
– bo jeśli dalej by nic nie było to mamy wyrzucić te setki tysiące godzin?
– cała wiedza, doświadczenia miałaby być wyrzucona gdzieś
– czy ta wiedza jest tylko dlatego że jest III etap?
– oczywiście III etap jest ważny -da rozmowę kwalifikacyjną w każdej firmie
– sukces niebywały
– ale nie to jest najważniejsze
– wszystko czego się nauczymy, narzędzia doświadczenie – przyda się
– będziemy w research and development gigantów
– założymy start-up
– odkryjemy nowe twierdzenie które przyspieszy działanie komputerów
– to Ty wymyślisz ekologiczny plastik, lek na raka, optymalne strategie inwestycyjne
– dzięki Temu że teraz się przygotowujesz
– będziesz tym najlepszym zasobem, który każdy będzie chciał, będziesz w wielu projektach
– to o to chodzi
– nieważne czy jesteś w finale czy nie
– potraktuj że masz 8 tygodni i przygotowywuj się
https://youtu.be/5zDdq2xGocg?t=369
Wyciągnij wnioski z tego co się nie udało
–
A jeśli się nieudało być w finale, czy słabiej poszło
– wyciągnij wnioski
– może zabrakło czasu?
– może nie przeczytałeś treści zadania
– ilu z nas nie doczytało treści zadania i zrobiło inne Tzadanie, czasem trudniejsze
– ale za to nie dają punktów
– W zadaniu full było ograniczenie do 52 dla kart – ktoś zrobił dla miliona
– będzie poszukiwaną w start-upie – zrobiłeś trudniejsze zadania
– na Olimpiadzie możesz nie dostać za to punktów bo zabraknie czasu na Twoją metodę
– może za długo myślałem nad jednym zadaniem i za późno się przełączyłem?
– mój mózg nie miał szans wystartować jeszcze raz od zera
– kreatywność, strategia – o tym mówiliśmy
– ile się przygotowywałeś, priorytety
– czy umiałeś mapę, kolejkę priorytetową, set
– ileś elementów które składają się na to czy etap pójdzie dobrze czy gorzej
– NAJWAZNIEJSZE – walczmy – bo walczymy o dużo więcej
https://youtu.be/5zDdq2xGocg?t=502
Graf jak wczytywać – wytłumaczenie reprezentacji – kahoot:
https://youtu.be/5zDdq2xGocg?t=929
Dziś BFS
https://youtu.be/5zDdq2xGocg?t=621
BFS:
https://youtu.be/5zDdq2xGocg?t=2472
Challenge #23:
https://youtu.be/5zDdq2xGocg?t=6333
OKI #24:
https://youtu.be/5zDdq2xGocg?t=6392
Strategia cięższych rękawic:
https://youtu.be/5zDdq2xGocg?t=6395
OKI #22 – Zaawansowane
Co to jest Centroid?
Co to jest Centroid decomposition / Rozbicie Centroidalne?
https://youtu.be/xIg-YY8FoJA?t=946
Piszemy kod Centroidu:
https://youtu.be/xIg-YY8FoJA?t=2558
Jak znaleźć Centroid?
Algorytm znajdowania Centroidu:
https://youtu.be/xIg-YY8FoJA?t=2852
Gdzie w necie rysować grafy?
https://youtu.be/xIg-YY8FoJA?t=2951
OKI#23 – dynamik – Potatoes z 2019 roku finał OI litewskiej
https://youtu.be/xIg-YY8FoJA?t=5730
OKI #22 – Programowanie od podstaw – Sprawdzamy plagiaty – set – własne sortowanie
#pokazac
#aplikacje_pomysly
Plagiaty i informatyka
Sprawdzamy plagiaty!
– własna aplikacja
– problem plagiatów stary jak świat
– przemówienia, powieści, piosenki, programy
– ludzie sobie zarzucają
– trzeba sprawdzić jak mocne jest podobieństwo
– programów które sprawdzają plagiaty jest bardzo dużo
– będziemy go udoskonalać
https://youtu.be/nPIewnyLFMk?t=15
#pokazac
#set-dlaczego
Gdzie przydaje się set?
Co ma set?
– wykorzystamy set
– już znamy
– trzymamy wszystko uporządkowane
– trzyma wszystko raz
– dostęp do elementów jest błyskawiczny
– może przydać się na Olimpiadzie
– przydaje się w programowaniu zawodowym
– można set wykorzystać do systemu antyplagiatowego
https://youtu.be/nPIewnyLFMk?t=89
Przykład plagiatu – piosenki:
https://youtu.be/nPIewnyLFMk?t=142
#set
Wyjaśnienie set w kahoot:
– size
– własności setu
– lower_bound / upper_bound – złożoność
https://youtu.be/nPIewnyLFMk?t=511
#set-zadanie
Zadanie Antyplagiat:
https://youtu.be/nPIewnyLFMk?t=1725
Funkcja która usuwa białe znaki:
https://youtu.be/nPIewnyLFMk?t=2628
getline – wczytywanie dowolnej liczby linii:
https://youtu.be/nPIewnyLFMk?t=3519
#set
Własny porządek!
set z własnym porządkiem – własna funkcja porządkująca set
https://youtu.be/nPIewnyLFMk?t=5007
#set
set z własnym porządkiem – kahoot
https://youtu.be/nPIewnyLFMk?t=6215
Challenge #22:
https://youtu.be/nPIewnyLFMk?t=5959
OKI #23:
https://youtu.be/nPIewnyLFMk?t=6043
OKI #22 – Olimpiada od podstaw – Warsztaty – 4 OIJ etap 2 – Find And Union
Za nami II etap OIJ/OI
– dziękuję za gigantyczny wysiłek
– za wszystko co odkryliście
– godziny debugowania, myślenia
– za fantastyczną podróż w która wkroczyliście, w której jesteście
https://youtu.be/MiuWOJ74EHw?t=42
#pokazac
#potrzebni
#dlaczego_olimpiada
Olimpiada Informatyczna ma sens!
– nieważne czy przejdziemy czy nie II etap
– ważne że uwierzyliście, że ta podróż której Olimpiada jest początkiem ma sens
– że ta podróż prowadzi nas do pięknych widoków
– ale nie tylko – będzie potrzebni
– nie tylko będziemy cieszyć się tym co robimy
– to Ty znajdziesz lek na raka, ekologiczny plastik, optymalną inwestycję, wyjścia ewakuacyjne
– wszędzie jesteśmy my potrzebni którzy rozwiązujemy problemy przy pomocy komputera
#pokazac
#historie_uczniow
– znam osobę która nie przeszła II etapu OIG by w kolejnym roku ją wygrać a teraz pracuje naukowo / R&D
– osoba która była w finałach olimpiad, nigdy nie była w top, a teraz pracuje w R&D firm, odkrywa algorytm, pomaga, przyspiesza procesy
– znam osobę która nigdy nie była w finale a jest doktorantem i rozwiązuje problemy na uczelni
– jesteśmy w podróży
– najważniejsze to to by się nią cieszyć
– jeśli jesteście na wycieczce rowerowej to czym się cieszycie?
– oczywiście chcemy dojechać do celu – rzeka, ciekawe miejsce
– ale samo pedałowanie, samo rozglądanie się, to że jesteśmy razem to jest super!
– rozwiązując się zadania, przygotowując się do tej czy kolejnych olimpiad cieszymy się każdym zadaniem, każdym metrem naszej wycieczki
– każdym myśleniem, każdym pomysłem, każdą linijką kodu, każdą pokonaną trudnością
– o to w tym wszystkich nam chodzi
– są emocje ważne punkty – ale to dziś i tylko dziś
– później liczy się to co odkryjemy – podejścia, algorytm do których SAMI dojdziemy
– wszystkie godziny doświadczenia
– widać gigantyczną różnicę między tymi którzy mają doświadczenie od szkoły średniej a tymi którzy programują rok
– inna głębokość, my jej nabieramy
https://youtu.be/MiuWOJ74EHw?t=74
#pokazac
Młodzi ludzie chcą konkursów!
Są emocje:
– emocje nas nakręcają – dostałem maila od osoby która chce kolejnego Mistrza Programowania 2023 bo motywuje się wtedy jak są konkursy, grywalizacja
https://youtu.be/MiuWOJ74EHw?t=307
#pokazac
#jak_sie_uczyc
Sens Olimpiady – motywacja!
– jeśli jesteśmy w III etapie to ma nas zmotywować by po kilka godzine myśleć i debugować
– jak nie jesteśmy to też ma nas zmotywować – za rok będzie kolejna olimpiada
– Ci którzy zainwestują teraz / wakacje będą robić zadania z USACO / Olimpiad / Mistrza Programowania / Wrocławskich Sparingów – będa mieli przewagę
https://youtu.be/MiuWOJ74EHw?t=328
#pokazac
#jak_sie_uczyc
Olimpiada to podróż
– będą szczyty, będziemy cieszyć się widokami
– ale w tej podróży będziemy się też męczyć i nawet przewracać
– ważne że jak wstaniemy to wyciągnąć wnioski
– dlaczego się przewróciliśmy?
– może złe buty, może miałem złą strategię, może się za bardzo zestesował
– może więcej codeforce’ów by się odstresować i wiedzieć jak planować
https://youtu.be/MiuWOJ74EHw?t=378
Na OKI wiertarki i młotki które lubi Olimpiada:
– kolejka priorytetowa, mapa
– zapraszam
– rozwiązywanie problemów, programowanie – bardzo lubi
https://youtu.be/MiuWOJ74EHw?t=410
Gratuluję każdemu z nas pasji:
– gratuluję czasu który poświęcacie
– zapewniam że to ma sens
– radości z podróży!
https://youtu.be/MiuWOJ74EHw?t=427
Wyniki mogłyby być inne gdyby był inny czas:
– gdyby olimpiada trwałą nie 4h, 6h albo dzień byłyby inne wynik
– cześć osób wzięłaby herbatę i spokojnie rozwiązał aproblemy
– nie wszyscy umiemy działać pod stresem
– wynik nie świadczy o naszych umiejętnościach
– świadczy że tak wyszło
– znam gościa, 16 lat wymyślał błyskawicznie – zanim ja zdążyłem powiedzieć
– miał problem z kodowaniem
– nie odda każdemu jego umiejętności
– nie możemy się przejmować punktami
https://youtu.be/MiuWOJ74EHw?t=594
#find_and_union_tutorial
Find And Union – wytłumaczenie FIND w kahoot:
https://youtu.be/MiuWOJ74EHw?t=745
#find_and_union_tutorial
Find And Union – wytłumaczenie UNION w kahoot:
https://youtu.be/MiuWOJ74EHw?t=5872
#find_and_union_zadanie
Zadanie Warsztaty – dokładne omówienie:
https://youtu.be/MiuWOJ74EHw?t=1760
Challenge #22:
https://youtu.be/MiuWOJ74EHw?t=5681
OKI #23:
https://youtu.be/MiuWOJ74EHw?t=5734
OKI #21 – Olimpiada Zaawansowana –
Miłe spotkanie!
– twarzą w twarz
– Piotr Michalik
https://youtu.be/AH1A0SH3Fg4?t=163
Geometria analityczna:
https://youtu.be/AH1A0SH3Fg4?t=920
Smokogąsienice
– zamiatanie i sortowanie kątowe
https://youtu.be/AH1A0SH3Fg4?t=2330
OKI #21 – Olimpiada POZIOM II – Samochodziki
OKI #22:
https://youtu.be/IjbUjY4VSFc?t=81
OKI #22 – zapowiedź:
https://youtu.be/IjbUjY4VSFc?t=5735
Challenge #21:
https://youtu.be/IjbUjY4VSFc?t=5553
Ilu informatyków by napisać 10 programów?
Ilu informatyków by napisać 10 programów?
https://youtu.be/IjbUjY4VSFc?t=603
Zadanie Samochodziki:
https://youtu.be/IjbUjY4VSFc?t=1154
Projekt planszy – podpowiedź:
https://youtu.be/IjbUjY4VSFc?t=5788
OKI #21 – Olimpiada od podstaw – Quizy algorytmiczne!
Challenge #21:
https://youtu.be/XPskvWuWOHI?t=4307
OKI #22:
https://youtu.be/XPskvWuWOHI?t=4398
Strategia na konkursie:
https://youtu.be/XPskvWuWOHI?t=5091
Co jest najważniejsze?
– 70% zadań to pomysł na etapach
– naturalne algorytmy to sumy prefiksowe, binary search, nwd – one też są traktowane jako pomysł
– tak jak umiejętność dodawania
https://youtu.be/XPskvWuWOHI?t=40
Rozwiązuj zadanie a nie dopasuj zadanie do algorytmu:
– wypisuj obserwacje
– prosta obserwacja że najdłuższy wagon na końcu – dawała 60 punktów
– te obserwacje, kropki połączą się w 60 czy 100 punktó
https://youtu.be/XPskvWuWOHI?t=124
Strategia!
– przeczytaj wszystkie
– wybierz najłatwiejsze
– kiedy pisać bruta – po godzinie braku pomysłów pisze bruta
– czytamy dokładnie treść zadania
– nie idzie coś zmienić, toaleta, coś zmienić
– przykład ze studiów
– nie trzymać się kurczowo jednego zadania
https://youtu.be/XPskvWuWOHI?t=198
Jak się nie stresować?
– pomyśl co będziesz robić na egzaminie
– debugować, kiedy brut kiedy wzorcówka
– już będziesz wiedzieć co robić gdy będziesz na egzaminie
– już tam byłeś, już stres mniejszy
– oddechy przed wejściem
– wcześniej przejdziemy po zrobionych zadaniach to na suspokoij
– koncentracja, tylko o zadaniach
https://youtu.be/XPskvWuWOHI?t=343
Dzień przed konkursem:
– długi spacer
– pomyśl że zaczniesz od wszystkich zadań, jak będziesz się zachowywać na konkursie
– skupiamy się na zadaniach
– odstresujesz się
– nic nowego się uczymy
– ale przestawiamy na konkurs
– mózg jest jednotorowy
https://youtu.be/XPskvWuWOHI?t=5116
Kładziemy się jak najwcześniej spać
– jeśli nie będziemy wyspani nie damy sobie szansy na punkty
– przejrzymy to co robiliśmy były na wierzchołku
– strategia remisująca szachisty
https://youtu.be/XPskvWuWOHI?t=5269
Piszmy obserwacje, łączymy kropki
https://youtu.be/XPskvWuWOHI?t=5405
Jak poradzić sobie ze stresem?
– nie rozglądamy się po sali
– myślimy tylko o zadaniach
– chcemy zrobić najlepiej jak najlepiej zadania
– reszta nie należy do nas
– dodatkowo ułóż strategię
https://youtu.be/XPskvWuWOHI?t=5509
O czym myśleć na konkursie:
– tylko o zadaniach
– nie myślimy o cioci, …
https://youtu.be/XPskvWuWOHI?t=5617
Kiedy przestać myśleć nad wzorcówką i pisać bruta:
https://youtu.be/XPskvWuWOHI?t=5632
Początek – przeczytać wszystkie zadania
– Idziemy od najłątwiejszego
– Na wszystko zwracam uwagę
https://youtu.be/XPskvWuWOHI?t=5716
Czytają treść zadania – na co zwrócić uwagę?
– long longi – zamiast 100 było 60 bo int-y
– nie przeszła do finału
– podzadania – przykład Wioski Logiki – strasznie dużo mówią
– jeszcze raz czytamy treść zadania jak nie wiemy
https://youtu.be/XPskvWuWOHI?t=5837
Wymyśliłeś? Od razu kodujesz!
– inaczej może zabraknąć czasu
– bierzesz tego punkty które wymyśliłeś
– na kartce piszę plan kodu
https://youtu.be/XPskvWuWOHI?t=6025
To, że program przechodzi testy z zadania o niczym nie świadczy
– testujemy na przypadkach granicznych
https://youtu.be/XPskvWuWOHI?t=6219
Zakres testów mówi nam spodziewaną złożoność:
https://youtu.be/XPskvWuWOHI?t=6306
Co jeśli nie mam pomysłu
– robię coś innego
– idę do toalety, zmień zadanie
– za drugim razem będą inne pomysły
– walczymy do końca
https://youtu.be/XPskvWuWOHI?t=6418
Walczymy do końca
– jedna z osób wygrała OI-a wrzucając 10 sekund przed końcem
– testujemy do końca
– nie wychodzimy
– niepocieszeni będziemy nigdy jeśli wyjdziemy a mieliśmy prosty błąd
https://youtu.be/XPskvWuWOHI?t=6530
Życzenia:
– koncentracji
– dać z siebie wszystko
– być kreatywnym, myśleć
https://youtu.be/XPskvWuWOHI?t=6720
Życzenia:
– koncentracji
– walki do końca
– wykorzystania całej mocy
– wtedy będzie dobru II etap
– powodzenia
https://youtu.be/XPskvWuWOHI?t=6913
OKI #21 Programowanie – Quizy
Z czym największy problem na Olimpiadzie?
– boli gdy wymyślimy a nie zakodujemy
– wymyśliliśmy na 100 a kod na 40
– dlaczego nie jesteśmy w stanie napisać programu bugi
– jest stres – podstawowy problem, presja
https://youtu.be/Xnyt6OQa7Ks?t=55
Presja – stres – podstawowy problem:
– jak zdjąć presję we wtorek
https://youtu.be/Xnyt6OQa7Ks?t=104
Jak presja jest za duża
– zbugować można dużo, popełniamy więcej błędów
– przygotowanie daje pewność i zdejmuje stres
https://youtu.be/Xnyt6OQa7Ks?t=137
Co nam sprawia trudność?
– nasze komentarze:
– wklejamy a nie piszemy samemu
https://youtu.be/Xnyt6OQa7Ks?t=189
Dlaczego są bugi?
– bo nie dezynfekujemy komputera
– Pomocny Dzik
https://youtu.be/Xnyt6OQa7Ks?t=485
Plan programu? TAAAAAAAAAAK!
– plan programu na sumę cyfr
https://youtu.be/Xnyt6OQa7Ks?t=3639
Jak debugować?
– wypisywanie wyników
– przykład z suma cyfr
https://youtu.be/Xnyt6OQa7Ks?t=4418
Challenge #21:
https://youtu.be/Xnyt6OQa7Ks?t=3407
OKI #22:
https://youtu.be/Xnyt6OQa7Ks?t=3510
OKI #20 Poziom II – Liczy się pomysł – Nawiasowania – II etap OIJ
Zapowiedź OKI #21:
https://youtu.be/KAPyJ-hrGSE?t=88
Challenge #20:
https://youtu.be/KAPyJ-hrGSE?t=4453
Czym jest poprawne nawiasowanie?
https://youtu.be/KAPyJ-hrGSE?t=492
Zadanie Nawiasowania – XVI OIJ, drugi etap
https://youtu.be/KAPyJ-hrGSE?t=1274
Jak wpaść na pomysł?
Proces myślowy:
– Nawiasowanie jest bardzo fajne
– Podoba się Tomkowi
– Wypisujmy wyniki dla konkretnych n
https://youtu.be/KAPyJ-hrGSE?t=1630
Czemu takie łatwe?
– zadanie to czysty pomysł!
– może trochę zachłanny
https://youtu.be/KAPyJ-hrGSE?t=2468
OKI #20- Dragon Quest – B. Kana and Dragon Quest game – Codeforces – Algorytm zachłanny
Dragon Quest – polska wersja
B. Kana and Dragon Quest game – angielska wersja
Omówienie zadania
https://youtu.be/D3sWGiTyHNY?t=1781
#pokazac
#uczestnicy-maja-glos
Jestem dumny z…
Z czego jesteśmy dumni?
https://youtu.be/D3sWGiTyHNY?t=5049
OKI #21 zapowiedź:
Same quizy!
Wyzwolić kreatywność!
https://youtu.be/D3sWGiTyHNY?t=84
Challenge #20:
https://youtu.be/D3sWGiTyHNY?t=5296
OKI #19 – Olimpiada OD PODSTAW – Find And Union – omówienie, przykładowe zadanie
#pokazac
#find_and_union
Komu ten sam post?
Jak rozwiązywać problemy przy pomocy komputera?
– połączenia -> między osobami które się lubią, miastami z drogami, wyspy z mostami czy pixslami które są podobne, osoby lubiące te sam posty na facebooku
– możemy łączyć dowolne elementy
– chcemy wiedzieć czy dwa elementy sa połączone – czy się lubią, czy pokazać ten sam post, czy należą do tej klasy, czy jest droga między miastami, ile jest piksli o podobnym kolorze, segmentów o podobnym kolorze
– Find And Union pozwala powiedzieć czy 2 elementy są połączone, czy należą do tej samej grupy, mają tą samą właściwość
– praktycznie w czasie stałym, natychmiast
– Możemy łączyć – na przykład w unie galaktyk łączą się w większe unie
– Zrobimy to natychmiast
– Fantastyczne pomysł, podejście – FAU
https://youtu.be/4YssreJkR6A?t=23
#find_and_union
Dlaczego Find And Union jest fantastyczny?
– jest szybki
– jeden z najszybszych algorytmów
– niesamowicie prosty
– nie da się go zbugować
– jeśli zrozumiemy to jeśli obudzę Was o 2 rano w nocy
https://youtu.be/4YssreJkR6A?t=234
#pokazac
#find_and_union
#wnikanie
Co jeśli obudzę o 2 rano?
Co zrobisz o 2 rano?
Jak ważne jest zrozumienie!
Jak odkrywa się algorytmy
– jeśli zrozumiemy FAU to o 2 rano jeśli Was obudzę i powiem Find And Union
– natychmiast napiszecie mi 2 funkcje które tworzą FAU!
– to są dwie funkcje
– dziś zobaczymy jak takie algorytmy się odkrywa, jak do nich się dochodzi
– bo do tego algorytmu byśmy sami spokojnie doszli gdybyśmy mieli postawiony taki problem
– sami myśleli
https://youtu.be/4YssreJkR6A?t=253
#mistrz_programowania
Dlaczego warto robić Mistrza Programowania?
– zachęcam do zadań
– mają rozwinąć myślenie algorytmiczne, wpadanie na pomysł, rozwiązywanie problemów przy pomocy komputera
– przyda się w Olimpiadzie, w przyszłości przy realnych zastosowaniach
https://youtu.be/4YssreJkR6A?t=379
#pokazac
#find_and_union
Jak wykorzystamy naszą wiedzę w życiu?
Gdzie wykorzystuje się Find And Union?
– programy graficzne
– regiony w których są podobne piksle o tej samej jasności, kolorze
– otrzymujemy obszary, możemy je łączyć
– możemy modelować
– nie tylko olimpiada ale też przyszłość
– dużo osób w R&D mówi, że tak potrzebowała Find And Union
– warto robić zadania
https://youtu.be/4YssreJkR6A?t=399
#mistrz_programowania
Warto robić Mistrza Programowania!
– cel myślenie, rozwiązywanie problemó
– biegłość programistyczna
– i zadania programistyczne i zadania związane z rozwiązaniem problemów przy pomocy komputera
– zadania dostępne także później
https://youtu.be/4YssreJkR6A?t=450
#mistrz_programowania
Gala Finałowa
Zapraszam na Galę Finałową Mistrza Programowania
– ogłoszenie zwyciezców
https://youtu.be/4YssreJkR6A?t=479
#mistrz_programowania
Ankieta Mistrza Programowania 2023:
– dołączenie do układania zadań
– adres na który wysyłać zadania
https://youtu.be/4YssreJkR6A?t=512
OKI #20:
https://youtu.be/4YssreJkR6A?t=639
Challenge #19:
https://youtu.be/4YssreJkR6A?t=6559
OKI #19 – Programowanie OD PODSTAW – set
Dlaczego tablice są niewygodne?
– nie możemy dodawać w środku
– jest nieuporządkowana
– próba uporządkowania – od razu komputer zwalnia!
https://youtu.be/JcyOLsAoL3w?t=14
#set-dlaczego
Czym jest set?
Czy jest coś lepszego od tablicy?
– jasne!
– pomyślmy – po co nam indeksy?
– mamy kolory – chcemy wiedzieć czy jest kolor – przejść do koloru obok
– nigdzie tu nie ma indeksów
– poznamy coś fenomenalnego
– jedną z najwspanialszych konstrukcji w programowaniu
– coś co nazywa się set w C++
– pozwoli nam znaleźć błyskawicznie dowolny element
– umieścić w sposób uporządkowany
– bardzo szybko
– o tym porozmawiamy – o czymś nowym, o czymś fantastycznym
– set czyli zbiór – kolorów, stopni harcerskich, możliwości
– chciałbym coś wybrać, stwierdzić czy mam nie mam,
– wykorzystywane w profesjonalnym programowaniu
– jeśli będziemy chcieli w wakacje być w grupie programistycznej
– takie narzędzie jak set – taka wiertka młotek – pomoże w każdym projekcie
– nie wszyscy znają, będziemy w stanie pomóc dać nową wartość
– konkursu, olimpiady – często stosowane
– potrafi zastąpić skomplikowane struktury jak drzewa przedziałowe
– set też jest drzewami ale już ktoś zaimplementował i możemy z niego skorzystać
– i dziś zobaczymy jak!
https://youtu.be/JcyOLsAoL3w?t=35
#mistrz_programowania
Dokładny opis 5 rundy Mistrza Programowania
Zaczęłą się 5-ta runda Mistrza Programowania 2023:
– Zadanie Ramka – podpis programistyczny – podpis w ramce
https://youtu.be/JcyOLsAoL3w?t=221
#pokazac
#mistrz_programowania
Z życia wzięta
Rozmowy dzieci z Rodzicami
Początek projektu?
Pomysł na projekt!
– Dłuższy dzień – ciemny dzień – kiedy będzie dłuższy?
– Może będzie początkiem pewnego projektu – kodu JavaScript – strona www
– takiego projektu jak Piotr Domański
https://youtu.be/JcyOLsAoL3w?t=280
#pokazac
#mistrz_programowania
Mistrz Programowania 2024 – zadanie, co będzie:
– zawsze problem z klasyfikacją
– wypisać potencjalną klasyfikację
– formularz Mistrza Programowania
https://youtu.be/JcyOLsAoL3w?t=372
#pokazac
#mistrz_programowania
Czy zadania z Mistrza Programowania będzie można rozwiązywać po zakończeniu konkursu?
– TAK!
– będa publiczne
– będzie tutorial – edycja wszystkich zadań
https://youtu.be/JcyOLsAoL3w?t=516
#set
Pełne od podstaw omówienia set – od omówienia ideone:
https://youtu.be/JcyOLsAoL3w?t=597
#set
O co chodzi w set? Pełne omówienie od początku
– przykłady z rejestracją grup
– zgłoszenia mogą być wielokrotne
– my mamy trzymać informacje o grupach raz
https://youtu.be/JcyOLsAoL3w?t=655
#set
Insert – dodawanie elementów do set:
https://youtu.be/JcyOLsAoL3w?t=928
#set
Wskaźnik / iterator w set:
https://youtu.be/JcyOLsAoL3w?t=1432
#set
Wypisywanie elementów w set:
https://youtu.be/JcyOLsAoL3w?t=1432
#set
Znajdowanie elementów set – lower_bound, upper_bound:
https://youtu.be/JcyOLsAoL3w?t=4349
#set
Zadanie wypisz liczby 2:
https://youtu.be/JcyOLsAoL3w?t=4979
OKI #18 – olimpiada zaawansowana
Jak wygenerować graf?
https://youtu.be/GJbKyA1vwvo?t=1101
Co mamy na Olimpiadzie?
https://youtu.be/GJbKyA1vwvo?t=1513
Co to jest Lista?
https://youtu.be/GJbKyA1vwvo?t=1820
Zamiatanie:
https://youtu.be/GJbKyA1vwvo?t=1919
Warto testować na II etapie!
– zadania są tak złożone że błąd się wkradnie
– Mikołajowi testowanie dało finał!
https://youtu.be/GJbKyA1vwvo?t=5732
OKI #18 – olimpiada poziom ii
Wielki finał Potyczek Algorytmicznych!
– nieoficjalne mistrzostwa polski w programowaniu
https://youtu.be/UYEatMMvBeI?t=46
OKI #20:
https://youtu.be/UYEatMMvBeI?t=179
Przegląd algorytmów:
https://youtu.be/UYEatMMvBeI?t=473
Komendy Linux-a:
https://youtu.be/UYEatMMvBeI?t=2051
Zasady Olimpiady:
https://youtu.be/UYEatMMvBeI?t=2668
Co jest najważniejsze na II etapie?
Pomysł
https://youtu.be/UYEatMMvBeI?t=3235
Challenge #18:
https://youtu.be/UYEatMMvBeI?t=4442
OKI #18 – olimpiada od podstaw
Nasze pomysły!
Nasze pomysły są najważniejsze
Wspólnie rozwiązujemy problemy:
– Olimpiada, w przyszłości Reserach And Development
https://youtu.be/dM2i_htX6YY?t=8
Kłopot? To dobrze?
https://youtu.be/dM2i_htX6YY?t=51
Co w 4 rundzie Mistrza Programowania?
Runda 4 Mistrz Programowania:
https://youtu.be/dM2i_htX6YY?t=174
Zadanie Waga:
https://youtu.be/dM2i_htX6YY?t=1170
Challenge #18:
https://youtu.be/dM2i_htX6YY?t=5901
OKI #19:
– Gospodarz klasy – pomaga – potrafi przyspieszyć rozwiązanie problemu miliony razy!
– Find And Union
https://youtu.be/dM2i_htX6YY?t=5968
OKI #17 – programowanie od podstaw
Odkrywamy duszę komputera
Odkrywamy bity
Jak zajrzeć do środka komputera?
Jak komputera przechowuje liczby?
– nie dziesiętnie a zera i jedynki
– jak zajrzeć do środka i stwierdzić czy zero czy jeden?
– nie zapsujemy?
https://youtu.be/S_JWtomigr4?t=12
Jak zajrzeć do komputera
Piękno C++
Potrafi zajrzeć do środka komputer
W każdy element sprzętu wniknąć
https://youtu.be/S_JWtomigr4?t=64
Po co nam liczby dwójkowe?
Czy liczby dwójkowe są nam gdzieś potrzebne?
– włączony / włączone być / nie być działa nie dział
– trzymać na liczbach zwykłych
– nie ma miejsca w rakietach kosmicznych / sterownikach do pralkach
– dane z czujników, przegrzane czy nie – możemy sprawdzać
– dziś zobaczymy jak
https://youtu.be/S_JWtomigr4?t=94
Runda 4 Mistrza Programowania:
– pierwsze łatwe – Czas – Potęgi Klucz
– Kolejne to rebusy
https://youtu.be/S_JWtomigr4?t=252
Mistrz Programowania – dlaczego warto?
Dlaczego warto robić Mistrza Programowania?
– Asystent, Pomidor, Bajtek Nie lubi się powtarzać
– niekoniecznie na 100 punktów
– pierwszy element by poznawać rozkoszować się
– na razie rebusy, krzyżówki
– w życiu takie same rebusy
– droga która prowadzi do rozwiązywania problemów
https://youtu.be/S_JWtomigr4?t=278
Jeden z uczniów na 2 drugim roku studiów dostał ofertę:
– praca wakacje potem pół etatu
– super warunki – ale warto
– nie o to chodzi
– problemy na interview – prostsze niż z Mistrza Programowania
– w przyszłości mieć przygodę
– będzie robił dokładnie to samo co Olimpiadzie
– będzie przyspieszał aplikacje – to co my
– będzie w Research And Development
https://youtu.be/S_JWtomigr4?t=310
Lampki Choinkowe:
https://youtu.be/S_JWtomigr4?t=1583
Challenge #18:
https://youtu.be/S_JWtomigr4?t=5621
OKI #19 zapowiedź:
https://youtu.be/S_JWtomigr4?t=5672
OKI #17 – olimpiada zaawansowana – LCA
Co to jest LCA?
– tylko w drzewach
https://youtu.be/7kmlf98ROZE?t=884
Kod LCA:
https://youtu.be/7kmlf98ROZE?t=2423
Komiwojażer Bajtazar:
https://youtu.be/7kmlf98ROZE?t=3036
Do czego LCA?
https://youtu.be/7kmlf98ROZE?t=3718
Zapowiedź OKI #18 – Zamiatanie:
https://youtu.be/7kmlf98ROZE?t=4321
Gdzie się używa Jump Pointery?
https://youtu.be/7kmlf98ROZE?t=4501
OKI #17 – olimpiada od podstaw – DFS – Maksymalna średnica drzewa
#dlaczego_olimpiada
Wykorzystaj czas!
– przygotuj się maksymalnie do II etapu
– motywacja do wytrenowania do mózgu
– niech uczy się rozwiązywać problemy
– a przy okazji poznać pomysły, podejścia
– w przyszłości chcemy rozwiązywać te problemy
– nieważne czy w przyszłości będziemy zajmować się grafami czy nie
– najlepsza droga, podpowiedzieć posty, podpowiadać teksty
– poprzez przygotowanie się do II etapu przygotujemy się
– a przy okazji przygotujemy się do II etapu
– możemy się źle czuć, nie nakładajmy na siebie żadnej presji, może być róznie
– jeśli mamy przebiec za miesiąc
https://youtu.be/H8fWSWqe2m4?t=115
#pokazac
#jak_sie_uczyc
Bieg na 10km?
Co jeśli masz bieg na 10 km?
– wyobraźmy sobie, że mamy bieg na 10 km
– musimy jak najlepiej się przygotować
– co będzie na zawodach – to inna sprawa
– my mamy się przygotować
– jest szansa – w II etapie jest 360 osób
– zwykle 100 jest w finale
– zróbmy wszystko by się przygotować
https://youtu.be/H8fWSWqe2m4?t=234
#jak_sie_uczyc
Jak się przygotować do Olimpiady, do II etapu?
– Olimpiada Informatyczna Juniorów
– USACO Silver / Gold
– Codeforces B C D
– Wrocławskie Sparingi Informatyczne
– OI – zasada cięższych rękawic
https://youtu.be/H8fWSWqe2m4?t=282
#jak_sie_uczyc
Jak robić zadania:
– balans – czas dla siebie, czas na przygotowanie
– 3-4 zadania tygodniowo
– 2h myślenia minimum samemu
– debugujemy do samego końca
https://youtu.be/H8fWSWqe2m4?t=367
#mistrz_programowania
Mistrz Programowania:
– przygotowanie do Olimpiady Informatycznej
– wszystkie zadania w naszym zasięgu
https://youtu.be/H8fWSWqe2m4?t=409
#graf #graf_kod
Grafy – dokładnie wytłumaczenie z implementacja w kahoo-cie
https://youtu.be/H8fWSWqe2m4?t=735
#dfs_zadanie
Zadanie Średnica Drzewa:
https://youtu.be/H8fWSWqe2m4?t=1625
#dfs
Algorytm DFS – dokładne omówienie:
https://youtu.be/H8fWSWqe2m4?t=3654
#dfs_kod
Implementacja DFS:
https://youtu.be/H8fWSWqe2m4?t=5058
#drzewo
Czym jest drzewo :
https://youtu.be/H8fWSWqe2m4?t=5144
#dfs
Złożoność DFS-a
https://youtu.be/H8fWSWqe2m4?t=4920
#dfs
#dfs_kod
Wytłumaczenie DFS-a w quizie Kahoot:
https://youtu.be/H8fWSWqe2m4?t=6605
Zapowiedź OKI #18:
– omówienie dwóch zadań
https://youtu.be/H8fWSWqe2m4?t=610
#challenge #trudnosc
coś sprawia trudność – dobrze – robimy krok do przodu
– challenge pokazuje co umiemy co nie
https://youtu.be/H8fWSWqe2m4?t=674
Challenge #17:
https://youtu.be/H8fWSWqe2m4?t=696
OKI #17 – programowanie od podstaw – operacje bitowe
#C++-dlaczego
Odkrywamy dusze komputera!
– komputer trzyma dane bitowo
– interesuje nas to
– możemy różne rzeczy trzymać bitowo
– lampki choinkowe, krany – działa nie działa 0-1
– zobaczymy jak C++ jest w stanie dostać się do każdego bitu
– komputer to sprzęt a C++ to szua
https://youtu.be/qm1NLg4QOmM?t=10
#historie_uczniow #pokazac
Aplikacja Piotra:
– zachęcam do pomocy / dołączenia
– aplikacja która ma pomóc w matematyce
– Piotr wskazówką, każdy z nas ma w przyszłości brać udział w projektach
– tworzyć samemu aplikację, w grupie
– Piotr zachęca by testować / tworzyć wspólnie
– przed nami wakacje
– dlaczego nie skrzyknąć się jak Piotr, poszukać w necie i tworzyć
– tak jak my uczył się tu na OKI
– nie ma większej radości by odnaleźć swoją pasję
https://youtu.be/qm1NLg4QOmM?t=118
#mistrz_programowania
Runda 3 Mistrza Programowania:
– Slider – zadanie rozgrzewkowe – opis
https://youtu.be/qm1NLg4QOmM?t=254
#pokazac #interview
Co jest na interview do gigantów?
4 zadania z interview do gigantów komputerowych
– kto to zrobi? Damy radę
– Bez walki – interview facebook – a my spokojnie rozwiązujemy
– Wielka satysfakcja, super wpis do CV
– BANANA – interview Dropbox
– trzeba lekko pomyśleć, niedużo osób potrafi rozwiązać na interview, warto wpisać!
– Nieudany szyfr – interview Dropbox
– Platforma – interview do Microsoft
https://youtu.be/qm1NLg4QOmM?t=298
Po co nam liczby dwójkowe?
– komputer trzyma liczby dwójkowo!
https://youtu.be/qm1NLg4QOmM?t=1196
Operacja logiczna AND:
– dokładne wytłumaczenie
https://youtu.be/qm1NLg4QOmM?t=4887
Dominik – dlaczego w if są 2 znaki || a nie jeden?
– | or
– || lub
https://youtu.be/qm1NLg4QOmM?t=6745
Challenge #17:
https://youtu.be/qm1NLg4QOmM?t=3280
Zapowiedź OKI #18:
https://youtu.be/qm1NLg4QOmM?t=4780
OKI #17 – olimpiada zaawansowana:
Jakie komendy na II etap Olimpiady?
https://youtu.be/4oIdqxHgS1w?t=764
Sortowanie topologiczne:
https://youtu.be/4oIdqxHgS1w?t=1062
II etap OI-a:
https://youtu.be/4oIdqxHgS1w?t=6167
OKI #17 – olimpiada poziom ii:
Zadanie Podciągi zmienne – finał Potyczek Algorytmicznych!
https://youtu.be/Jsh80jDmcvM?t=62
OKI #18 zapowiedź:
https://youtu.be/Jsh80jDmcvM?t=103
Challenge #16:
https://youtu.be/Jsh80jDmcvM?t=5143
Runda 2 Mistrza Programowania:
https://youtu.be/Jsh80jDmcvM?t=160
Ile podciągów ma słowo OKI?
– kahoot
Czym jest podciąg?
– wykreślanie
https://youtu.be/Jsh80jDmcvM?t=455
Podciągi zmienne – zadanie z finału Potyczek Algorytmicznych:
https://youtu.be/Jsh80jDmcvM?t=1116
Co jeśli damy 500 000?
– ile czasu zajmie 2^500 000
– 10^18 operacji na sekundę
– mamy komputer który wykonuje 2^100 operacji na sekund
https://youtu.be/Jsh80jDmcvM?t=1921
10 do potęgi 150 tysięcy lat vs Wszechświat!
Wszechświat w sekundę!
– potęga rośnie bardzo szybko
– wszechświat to jest 10^10
– zrobimy w mniej niż sekundę
https://youtu.be/Jsh80jDmcvM?t=2048
OKI #17 – olimpiada od podstaw:
Tworzymy wspólnie graf od zera
Wszystko jest grafem!
Wszystko można przedstawić jako graf!
Gdzie wykorzystuje się grafy?
– a wówczas również szybciej rozwiązać
– dużo możliwości
– zaczynamy fascynująca przygodę z grafami
– nasze opinie – uczestników
– drogi / Szymon / google maps – szuka w grafie najkrótszą drogę
– zależność w matematyce czy gdziekolwiek
– osoby które się lubią
– korzystają z tego sieci społecznościowe
– algorytm stara się podpowiadać podobne posty
– w podejmowaniu decyzji – statek kosmiczny, plan lekcji, dom
– graf zależności
– elektryk nie może wejść zanim nie ma ścian
– są w konkursach w Olimpiadzie!
– za tydzień będziemy chodzi
– by chodzić musimy włożyć go do komputera
– to dziś
https://youtu.be/dFKlYmMg6UY?t=46
#pokazac #potrzebni #place
Czy wszyscy znają grafy?
Ależ jesteśmy gigantycznie potrzebni
Dużo ludzi zna te grafy, potrafi się nimi posługiwać
– potrzeba nas – bardzo dużo:
– na rynku potrzeba 150 tysięcy specjalistów
– Ci którzy znają grafy, umieją przyspieszyć działanie komputera – Ci sa najbardziej cenieni
– Niedobór wpływa na płace
– Senior nawet 90 000 tysięcy
– Bardzo brakuje osób
– Początkując 10 000
– Ależ jesteśmy gigantycznie potrzebni
https://youtu.be/dFKlYmMg6UY?t=219
Dziękuję za I etap OIJ!
– Dziękuję wszystkim za czas poświęcony na rozwiazywanie problemów
– W ten przygotowujemy się do pięknej przyszłości
– Dać wartość firmom
– Aplikacje które będą nam coś podpowiadały, dla banków, sieci społecznościowych
– Będą z Was mieli pożytek
– Wy satysfkację
– Do tego prowadzi olimpiada, dziękuję
– Nie ma znaczenia liczba punktów
– Ma znaczenie to czego się nauczyliśmy – to wykorzystamy
https://youtu.be/dFKlYmMg6UY?t=304
Niech drugi etap będzie motywacją!
– jeszcze więcej poznać
– graf który dziś poznamy by samemu zaimplementować
https://youtu.be/dFKlYmMg6UY?t=395
Niech każde zadanie z Mistrza Programowania gdzie mam niepełną liczbę punktów będzie motywacją do ulepszania:
– przygotowanie do rozwiązywania problemów w przyszłości
– zrobić podzadanie, otrzymać 50 punktów i ulepszać
– zobaczycie jak gigantycznie się rozwijacie
– jak jest 40 to znaczy że mogę się rozwinąć
– w życiu też problemy i będziem nasze rozwiązania też będziemy ulepszać
https://youtu.be/dFKlYmMg6UY?t=550
Pełne omówienie grafów, kod wczytania i wypisania grafu:
Grafy
– pełne omówienie, kod wczytania i wypisania grafu:
https://youtu.be/dFKlYmMg6UY?t=1615
Challenge #16:
https://youtu.be/dFKlYmMg6UY?t=5707
Zajęcia #17:
https://youtu.be/dFKlYmMg6UY?t=5768
OKI #17 – programowanie od podstaw:
Bitwa pod Wiedniem, struct
Czego chcą ludzie?
Gdzie wykorzystujemy własne sortowanie?
Własne sortowanie:
– najczęstsza funkcjonalność
– użytkownik w sklepie z ubraniami czy elektroniką chce posortować po różnych rzeczach
– popularność, cena, rekomendacja, od najdroższych czy najtańszych
– każdy chce inaczej
– zmierzamy do własnych aplikacji – przyda się
– chcemy być w grupach które tworzą własne aplikacji – gry, strony internetowe
– damy tą wartość – będziemy w stanie posortować monitory po przekątnej, jasności, wielu kryteriach – damy radę napisać, będzie sortować jakkolwiek
– fantastyczna sprawa – możemy sterować każdym elementem gdy wszystko rozumiemy
– na milionach danych komputer robi to chcemy
https://youtu.be/IlhF2UGjJRU?t=9
Dlaczego powinniśmy stosować własne funkcje?
Własne funkcje:
– pomocnicy, pracownicy
– możemy ich wywoływać wiele razy
– zmieniamy tylko w jednym miejscu
– nazywamy czasem jedną linijkę by było wiadomo o co chodzi
– Czysty kod
https://youtu.be/IlhF2UGjJRU?t=117
Struct pełne wyjaśnienie od początku, kiedy wykorzystujemy
Jakie lubisz piosenki?
struct od początku, dlaczego ma sens
Własny typ danych
– przykład z piosenkami
https://youtu.be/IlhF2UGjJRU?t=905
Funkcje / własne sortowanie
– aplikacja dla rynku muzycznego
– ktoś chce listę po nazwie utworu, po czasie trwania
– inspiracja dla do napisania aplikacji przez nas
https://youtu.be/IlhF2UGjJRU?t=162
Mistrz Programowania – runda 2:
– przygotowujemy się do Olimpiady spokojnie w domu
– nazwy zadań
– strona mistrza
– Usuwanie bugów – żart liczba bugów rośnie o połowę
– Nuda – jest twórcza, na lekcji – wiele rzeczy tworzy się z nudy Fermat, utwory muzyczne
– nuda jest piękna, fantastyczna, pomaga w kreatywności
– Kucharz 2 – opis zadania
– Puzzle – omóienie zadania
– Dąb Bajtek – trudniejsze
https://youtu.be/IlhF2UGjJRU?t=292
Ranking runda 2:
– brak Dębu Bajtek
https://youtu.be/IlhF2UGjJRU?t=475
Do niedzieli zadania z Rundy 1 dostają MAX punktów:
– zawsze bierzemy MAX!
https://youtu.be/IlhF2UGjJRU?t=511
Statystyka zadań na 23 stycznia:
– Kucharz prostszy od platformówki!
https://youtu.be/IlhF2UGjJRU?t=564
Jeśli nie mamy setki ulepszajmy, rysujmy
https://youtu.be/IlhF2UGjJRU?t=608
Zadanie Kucharz zgłosiło mniej osób – ale same setki
– Ci którzy zatrzymali się na platfmormówce – niepotrzebnie
– Kucharz prostszy
https://youtu.be/IlhF2UGjJRU?t=618
Przyspieszyliśmy ponad 15 razy!
– raz liczymy sumę cyfr a nie za każdym razem gdy sortujemy
https://youtu.be/IlhF2UGjJRU?t=6102
Bitwa pod Wiedniem 2 – szybsza wersja:
https://youtu.be/IlhF2UGjJRU?t=4567
Challenge #16:
https://youtu.be/IlhF2UGjJRU?t=3924
OKI #17! Bawimy sie bitami!
https://youtu.be/IlhF2UGjJRU?t=3957
Co jest na II etapie?
https://youtu.be/YSnlIbP_02s?t=1178
Dwuspójna składowa:
https://youtu.be/YSnlIbP_02s?t=1782
Drzewo DFS:
https://youtu.be/YSnlIbP_02s?t=2566
Mistrz Programowania:
https://youtu.be/YSnlIbP_02s?t=6905
Jak przetwarzać duże liczby w zadaniach olimpijskich?
https://youtu.be/YSnlIbP_02s?t=7142
Mistrzowskie wskazówki
Mistrz Programowania – na co zwrócić uwagę?
https://youtu.be/w6i_hP-0YuU?t=118
Od końca!
– technika Find And Union
https://youtu.be/w6i_hP-0YuU?t=17
Zadanie Farm Updates – USACO:
https://youtu.be/w6i_hP-0YuU?t=1345
OKI #16:
https://youtu.be/w6i_hP-0YuU?t=61
Challenge #15:
https://youtu.be/w6i_hP-0YuU?t=5758
Omówienie zadania Reszta:
https://youtu.be/BlN7axD_Ko0?t=1267
Co w interview do Google’a?
Interview do Google’a!
https://youtu.be/BlN7axD_Ko0?t=126
Język czy rozwiązywanie problemów?
https://youtu.be/BlN7axD_Ko0?t=273
Zapowiedź #16:
https://youtu.be/BlN7axD_Ko0?t=6077
Challenge #15
https://youtu.be/BlN7axD_Ko0?t=6014
Zaczęło się!
– najważniejsze robienie samemu zadań
– dlatego ruszył Mistrz Programowania 2023!
https://youtu.be/DZg-nxee2Lk?t=84
Runda 1 Mistrz Programowania – omówienie zadań:
https://youtu.be/DZg-nxee2Lk?t=119
Bitwa pod Wiedniem!
https://youtu.be/DZg-nxee2Lk?t=5242
Własne sortowanie:
https://youtu.be/DZg-nxee2Lk?t=5991
Programowanie #15:
Challenge #15:
https://youtu.be/DZg-nxee2Lk?t=3666
Zapowiedź OKI #16:
https://youtu.be/DZg-nxee2Lk?t=3702
Zapowiedź #15:
https://youtu.be/z24Gr5kDa0w?t=69
Challenge #14:
https://youtu.be/z24Gr5kDa0w?t=5252
Najtrudniejsze to najfajniejsze?
Często tak!
https://youtu.be/z24Gr5kDa0w?t=255
Mistrz Programowania 2023:
– wystartował
– zadania dla każdego
– jest omówienie jednego z zadań
– nagrody w regulaminie
https://youtu.be/z24Gr5kDa0w?t=341
Jak przygotowywać się do Olimpiady?
– przerobić OKI
– nauczyć się nowych rzeczy
– ćwiczyć
– robić zadania
https://youtu.be/z24Gr5kDa0w?t=1361
Zadanie Closing the farm:
https://youtu.be/z24Gr5kDa0w?t=1426
Czy Python przechodzi w USACO?
– ideal nie zależy od języka?
– algorytmika to nie jest coś ro bimy w python, java, c++
– jak matematyka – nie ma języka – w głowie, na kartce
– algorytmika nie potrzebuje kodu, kodujemy tylko by sprawdzić
https://youtu.be/z24Gr5kDa0w?t=4891
Dziękuję!
– POKAZAĆ
– Fantastyczny widok
https://youtu.be/JZZXtscpcGI?t=47
O co chodziło?
– nie o punkty a o myślenie
– POKAZAĆ
https://youtu.be/JZZXtscpcGI?t=233
Mistrz Programowania 2023 zaczyna się!
– ma za zadanie przełamać barierę programistyczną
– wprawić się w pętle, sortowanie, własne sortowanie, pary – potrzebne w zawodowym programowaniu
– posmakować rozwiązywania problemów przy pomocy komputera
– sumy prefiksowe, binary searche, sita, euklides,
– bez stresu w spokoju, w zaciszu domowym
– jak będzie na konkursie, olimpiadzie – będzie wiedział jak rozwiązać zadania
– bo myślał nad nim
– nic mnie tu nie zaskoczy
– ma nad wprawę
– potem będą zadania w 5s i w 5h
– komitet główny w składzie z Maćkiem zadba
– ma nam się przydać na olimpiadzie ale w przyszłości także w firmach
– w polskich firmach, na interview, rozwiązywanie problemów jest bardzo ważne
– bardziej jest zwracane uwagę na rozwiązywanie problemów niż na programowanie
– algorytmika jest coraz ważniejsza
https://youtu.be/JZZXtscpcGI?t=275
Strony Mistrza Programowania:
– strona główna / rejestracja / video / zadania
– zadania z rund próbnej
– Głosowanie – Maciek autorem
https://youtu.be/JZZXtscpcGI?t=430
Zachęcam do układania zadań:
https://youtu.be/JZZXtscpcGI?t=538
Podzadania – czym są – na przykładzie Wioska Logiki:
https://youtu.be/JZZXtscpcGI?t=794
Na czym polega programowanie dynamiczne?
Dla wszystkich czy dla jednego?
– dla wszystkich poprzednich
– bazujemy na poprzednich
https://youtu.be/JZZXtscpcGI?t=4456
Zapowiedź OKI #15:
https://youtu.be/JZZXtscpcGI?t=5466
Challenge #14:
https://youtu.be/JZZXtscpcGI?t=5506
Choinka? To droga!
– pokaż projekty które zrobiłeś
– krok do przodu
– gigantyczny atut
https://youtu.be/ryI-vznV3DI?t=184
Mistrz Programowania 2023:
– biegłość programistyczna
– wprowadzić w rozwiązywanie problemów przy pomocy komputera
– ćwiczenia pętli, if
– zaawansowane programowanie – własne sortowanie
– będziemy mogli wejść w większe projekty
– zadania algorytmiczne – pomyśleć
– pułapki algorytmiczne
– strony konkursu
https://youtu.be/ryI-vznV3DI?t=425
Kto jest organizatorem konkursu?
– wymienione osoby
– zadania fajne i rozwijające
– dużo funu, odkrywania
https://youtu.be/ryI-vznV3DI?t=684
Mistrz Programowania ma spowodować, że bariera programistyczna zniknie:
– poznamy specyfikę szkopuła
– jak jest przykład z 5-cioma liczbami to wycztują 5 a nie n – dowolną liczbę
– albo piszą tekst “podaj n” – co jest złe – bo to czyta szkopuł
https://youtu.be/ryI-vznV3DI?t=783
Do Mistrza Programowania można się zgłosić przez 6 cały czas trwania konkursu:
– problem z podziałem punktów zaznaczony
https://youtu.be/ryI-vznV3DI?t=861
Masz pomysł na zadanie – zgłoś się!
https://youtu.be/ryI-vznV3DI?t=914
Wady tablic – wstęp do vector:
https://youtu.be/ryI-vznV3DI?t=1178
vector – początek omówienia:
https://youtu.be/ryI-vznV3DI?t=1694
vector – resize:
https://youtu.be/ryI-vznV3DI?t=2995
vector – sortowanie:
https://youtu.be/ryI-vznV3DI?t=5164
Challenge #14:
https://youtu.be/ryI-vznV3DI?t=5906
Zapowiedź OKI #15:
https://youtu.be/ryI-vznV3DI?t=6036
Lemat o Świętach:
– są bez śmiechu – nieważne co myślimy
https://youtu.be/DRxFX46_YCM?t=237
Święta i atak
Idealny czas by zwolnić i odpocząć!
https://youtu.be/DRxFX46_YCM?t=357
Co jeśli chcemy OI-a zrobić?
– trochę pocisnąć
– tak zrobił Mikołaj
– najpierw Rodzina
– kolacja i porozmawiać na spokojnie
https://youtu.be/DRxFX46_YCM?t=376
Pierwszy OI Mikołaja
https://youtu.be/DRxFX46_YCM?t=929
OKI #14 – Find And Union
https://youtu.be/KmVbiKRG_Fk?t=85
Co dostaje Mikołaj?
Co robi Mikołaj?
Zadanie które posłuży do testów.
https://youtu.be/KmVbiKRG_Fk?t=473
Linux czy Windows?
– Tomek woli Linux – poleca
– testowanie na obu!
https://youtu.be/KmVbiKRG_Fk?t=891
Czym jest testowanie?
– program to wejście / wyjście
– możemy testować ręcznie na 2 testach
https://youtu.be/KmVbiKRG_Fk?t=935
Czy testy przykładowe gwarantują że program jest dobry?
https://youtu.be/KmVbiKRG_Fk?t=1029
Warto testować
– nawet ręcznie jeśli nie potrafimy automatycznie
– dla brzegowych, małych, posortowanych nieposortowanych
https://youtu.be/KmVbiKRG_Fk?t=1076
Testowanie automatyczne:
– jak przetestować nasze rozwiązanie na wielu testach
https://youtu.be/KmVbiKRG_Fk?t=1099
Co jest potrzebne do testowania?
– wiedza czy nasz wynik jest dobry czy zły
– ręcznie sami oceniamy
– dla miliona testów musimy mieć inny program który na pewno jest dobry bo nie damy rady sami
– być może wolniejszy
– też chcemy mu dać te wejścia i zobaczyć jego odpowiedzi
– to brut!
https://youtu.be/KmVbiKRG_Fk?t=1128
Co to jest brut?
Czy brut jest przydatny?
– Rozwiązanie poprawne ale niekoniecznie najszybsze to brut!
– warto je pisać
– sam brut zwykle daje jakieś 15 punktów
– ale jeszcze możemy go użyć by sprawdzić czy nasz program jest dobry?
https://youtu.be/KmVbiKRG_Fk?t=1222
Generator testów
– ostatni element
– nie damy rady ręcznie generować
– potrzebny generatorkę
https://youtu.be/KmVbiKRG_Fk?t=1258
Na czym polega testowanie – podsumowanie?
– pętla która idzie po testach
– uruchamiamy program na brucie i wzorcówce
– jeśli wyniki różne to przerywamy
https://youtu.be/KmVbiKRG_Fk?t=1317
Zaczynamy tworzyć testy
Treść zadania:
– SUMA LICZB OD 1 DO N
– wzorcówka w C++ – wzór Eulera
– mały błąd
– piszemy brut – po kolei dodajemy
– testy przekładowe przeszło
https://youtu.be/KmVbiKRG_Fk?t=1729
Generujemy testy:
https://youtu.be/KmVbiKRG_Fk?t=2095
Challenge #13:
https://youtu.be/KmVbiKRG_Fk?t=5995
Gość specjalny! – profesor Marek Cygan:
https://youtu.be/mKismyMKUVw?t=124
Droga po Olimpiadzie?
https://youtu.be/mKismyMKUVw?t=195
Programowanie robotów:
https://youtu.be/mKismyMKUVw?t=402
Gdzie studiować Sztuczną Inteligencję?
https://youtu.be/mKismyMKUVw?t=1306
Czy Olimpiada ma wpływ na to co później robimy?
https://youtu.be/mKismyMKUVw?t=1434
Co jeśli nie wychodzi?
https://youtu.be/mKismyMKUVw?t=1737
Challenge #13:
https://youtu.be/mKismyMKUVw?t=3473
OKI #14 zapowiedź:
https://youtu.be/mKismyMKUVw?t=3536
Przed nami Święta
Ubieramy choinkę:
https://youtu.be/WrtYgCXxpPY?t=11
Omówienie programistycznej pocztówki Białe Święta:
https://youtu.be/WrtYgCXxpPY?t=706
Tworzymy plik index.htm:
https://youtu.be/WrtYgCXxpPY?t=841
Pokazać
Choinka to radość!
https://youtu.be/WrtYgCXxpPY?t=3101
Pokazać
Święta i śnieg!
Święta to śnieg!
https://youtu.be/WrtYgCXxpPY?t=4912
Podsumowanie kodu:
https://youtu.be/WrtYgCXxpPY?t=6311
Challenge #13:
https://youtu.be/WrtYgCXxpPY?t=7117
OKI #14 zapowiedź:
https://youtu.be/WrtYgCXxpPY?t=7183
LINKI_OLIMPIADA_POZIOM_II:
Będziemy testować!
https://youtu.be/uVA_-LddVN8?t=75
Pond:
https://youtu.be/uVA_-LddVN8?t=1063
Python i bash!
https://youtu.be/uVA_-LddVN8?t=3825
Challenge #12:
https://youtu.be/uVA_-LddVN8?t=3882
LINKI_OLIMPIADA_ZAAWANSOWANA:
DSU czy FAU?
https://youtu.be/_cvplcXTUdE?t=702
Struktura zbiorów rozłącznych:
https://youtu.be/_cvplcXTUdE?t=1162
Co poza zadaniami?
https://youtu.be/_cvplcXTUdE?t=4466
Czy cykl Hamiltona jest na Olimpiadzie?
https://youtu.be/_cvplcXTUdE?t=4534
Co za tydzień?
https://youtu.be/_cvplcXTUdE?t=4646
Zadanie Liczby półpierwsze – Sito Eratostenesa w akcji
Link do zajęć: https://youtu.be/V7ZB_9X28j0?t=16
https://youtu.be/V7ZB_9X28j0?t=16
https://youtu.be/V7ZB_9X28j0?t=104
https://youtu.be/V7ZB_9X28j0?t=1436
https://youtu.be/V7ZB_9X28j0?t=6426
Zadanie z USACO – Tablica stringów
Link do zajęć: https://youtu.be/_u4h5UbzKCw?t=39
Dlaczego USACO?
https://youtu.be/_u4h5UbzKCw?t=39
Omówienie zadania Herdle – USACO:
https://youtu.be/_u4h5UbzKCw?t=1796
Tablica stringów:
https://youtu.be/_u4h5UbzKCw?t=3777
Tablica stringów – quiz kahoot:
https://youtu.be/_u4h5UbzKCw?t=6808
Challenge #12:
https://youtu.be/_u4h5UbzKCw?t=6510
Zapowiedź OKI #13:
https://youtu.be/_u4h5UbzKCw?t=6564
Drzewa przedział-przedział
Link do zajęć:
Zwykłe drzewo przedziałowe:
https://youtu.be/3BNBmgCtOHw?t=1359
Drzewa przedział – przedział:
– zmieniamy przedział i pytamy o przedział
https://youtu.be/3BNBmgCtOHw?t=1480
Kod drzewa przedziałowego:
https://youtu.be/3BNBmgCtOHw?t=3476
Zapowiedź OKI #12:
https://youtu.be/3BNBmgCtOHw?t=5741
Sumy prefiksowe 2D
Link do zajęć: https://youtu.be/JQo4dmjlkg8?t=19
OKI #12
https://youtu.be/XBQLpximpIk?t=51
Ile to jest A+B?
Startują potyczki algorytmiczne
– poniedziałek – niedziela
– sp, szkoła średnia
– pracuje w google, youtube
– Tomek będzie brał udział
https://youtu.be/XBQLpximpIk?t=75
Omówienie zadania Szybki Zysk:
https://youtu.be/XBQLpximpIk?t=619
Inna rzeczywistość i wiele wymiarów
W zadaniu informatycznym wszystko ma sens!
– inna rzeczywistość
– mniej pieniędzy, więcej pieniędzy
– wskoczymy na więcej niż 2 wymiary
https://youtu.be/XBQLpximpIk?t=908
W kasynie nie lubią matematyków:
– wyrzucają
https://youtu.be/XBQLpximpIk?t=961
Dlaczego nie możemy liczyć iloczynów?
– może być ogromny 10^9milionów
https://youtu.be/XBQLpximpIk?t=1100
Nas obchodzi tylko znak a nie wartość
– jeśli jest 0 w prostokącie to iloczyn jest 0
– nieparzysta liczba -1 to ujemne – tracimy
– musimy umieć zliczać ile jest zer i minus jedynek
https://youtu.be/XBQLpximpIk?t=1154
Jak zliczać ile jest zer w prostokącie?
– jedynka to zero – suma prefiksowa 2D większa od zera – jest zero
https://youtu.be/XBQLpximpIk?t=1359
Jak zliczać ile jest minus jedynek w prostokącie?
– minus jedynka to 1 – suma prefiksowa 2D nieparzysta – ujemne
https://youtu.be/XBQLpximpIk?t=1418
Dziś zobaczymy jak liczyć sumy na prostokącie:
– zwykłe na przedziale jednowymiarowym
– jak to jest na 2 czy więcej wymiarów
https://youtu.be/XBQLpximpIk?t=1475
Sumy prefiksowe jednowymiarowe:
https://youtu.be/XBQLpximpIk?t=1509
Sumy prefiksowe dwuwymiarowe i trójwymiarowe:
– co trzymamy w jednej komórce
https://youtu.be/XBQLpximpIk?t=1627
Czy Tomek narysuje 4-wymiary?
https://youtu.be/XBQLpximpIk?t=1841
Liczymy sumy prefiksowe 2D:
– dokładne wytłumaczenie
https://youtu.be/XBQLpximpIk?t=1906
Liczymy sumę na prostokącie na podstawie sum prefiksowych 2D:
– dokładne wytłumaczenie
https://youtu.be/XBQLpximpIk?t=2750
Podsumowanie liczenia sum na prostokącie 2D:
https://youtu.be/XBQLpximpIk?t=3317
Rozwiązanie zadania – wykorzystujemy sumy prefiksowe
– funkcja która liczy sumy prefiksowe – liczymy je 2 razy
https://youtu.be/XBQLpximpIk?t=3368
Kod funkcji która liczy sumy prefiksowe:
https://youtu.be/XBQLpximpIk?t=3608
Kod funkcji która liczy sumę prostokąta:
https://youtu.be/XBQLpximpIk?t=3798
Omówienie całego kodu:
https://youtu.be/XBQLpximpIk?t=4085
Złożoność naszego rozwiązania:
https://youtu.be/XBQLpximpIk?t=4347
Sumy prefiksowe 2D to kolejny krok zasady włączeń i wyłączeń:
– pierwszy krok to sumy jednowymiarowe
– sumy 3-4 wymiarowe to kolejne
https://youtu.be/XBQLpximpIk?t=4407
Challenge #11:
https://youtu.be/XBQLpximpIk?t=4522
Kilka tysięcy zadań?
Ile zadań z OI-a zrobił Tomek i jak się przygotowywał?
– kilka tysięcy?
https://youtu.be/XBQLpximpIk?t=4845
Sito Eratostenesa
Link do zajęć: https://youtu.be/WxDmiMwPiRc?t=15
– płacimy telefonem, kartą – dane transakcji karty są przesyłane do banku
– muszą być zaszyfrowane
– dyplomacja – wiadomości zaszyfrowane
– USA przystąpiły do wojny – odszyfrowały niemiecką wiadomość
– komunikatory – komunikacja szyfrowana
– przeglądarka – kłódka – domyślnie szyfruje wiadomości
https://youtu.be/WxDmiMwPiRc?t=15
Co to znaczy że wiadomość jest zaszyfrowana?
– w jaki sposób?
– w środku jest matematyka
– bank podaje każdemu jak zaszyfrować
– ale tylko bank może odszyfrować
– to możliwe jest tylko dzięki liczbom pierwszym
– załóżmy że jako bank chcemy mieć info o ze sklepu dotyczącą transakcji
– sklep zaszyfruje, ale tylko bank może odszyfrować
– sklep skorzysta z publicznego klucza
– to iloczyn dwóch dużych liczb pierwszych
– żeby odszyfrować tą wiadomość trzeba znać te dwie liczby pierwsze
– bank podaje iloczyn 2 liczb pierwszych – na przykład 15 (iloczyn 3 i 5)
– szyfrowanie jest 15
– żeby odszyfrować trzeba wiedzieć że 15 to 3 * 5
– i tylko my to wiemy
– ale przecież każdy wie, że 15 to 3*5
– ale jak mamy 2 gigantyczne liczby pierwsze i podamy ich iloczyn
– uuuuuuuuuuuuu trudno znaleźć te 2 liczby pierwsze które tworzą iloczyn
– na czym opiera się bezpieczeństwo?
– trudno jest rozłożyć duże liczby na czynniki pierwsze
– do tego sprowadza się bezpieczeństwo
– bezpieczeństwo płatności, dyplomacji
– los świata wisi na bezpieczeństwie
https://youtu.be/WxDmiMwPiRc?t=88
– mecz Australia – Dania 1:0
– trener duński na kartce informacje dla graczy jak mają mieć taktykę
– australijczycy przechwycili kartkę, wiedzieli jaka jest taktyka
– ten wynik dowieźli do końca
https://youtu.be/WxDmiMwPiRc?t=244
– nawet na liczbach pierwszych
– te liczby pierwsze będziemy dziś poznawać i omawiać je
– pierwszy sposób znajdowania liczb pierwszych – Sito Eratostenesa
– wspólnie napiszemySito Eratostenesa
Jak znaleźć wszystkie liczby pierwsze od 1 do 1000:
https://youtu.be/WxDmiMwPiRc?t=1928Wykreślamy od kwadratu liczby pierwszej:
https://youtu.be/WxDmiMwPiRc?t=2462
– do 12 grudnia
– nieoficjalne Mistrzostwa Polski w algorytmice / programowaniu
– startują i dorośli i młodzież
– każdy punkt jest wielkim sukcesem
– miejsce to powód do dumy
https://youtu.be/WxDmiMwPiRc?t=5774Challenge #11:
https://youtu.be/WxDmiMwPiRc?t=5665OKI #12 – Sito Eratostenesa w akcji:
https://youtu.be/WxDmiMwPiRc?t=5730
Napisy są wszędzie!
– banery na autostradzie
– analiza Pana Tadeusza
– książka kucharska
– SMSy – czyste napisy
https://youtu.be/pxCpFlXX9sA?t=22
Komputer musi jako
– nie zna angielskiego, polskiego, chińskiego
– a jednak pokazuje nam odpowiednie litery
– jak to się dzieje że komputer przechowuje litery a pamięci trzyma liczby
https://youtu.be/pxCpFlXX9sA?t=70
USACO!
– 16 – 19 grudnia
– zrobimy zadanie z USACO przed Olimpiadą
– wielki fun, radość, duma z każdego zadania
– motywacja
– konkret by pokazać w przyszłości, dołączyć do zespołu, collage
https://youtu.be/pxCpFlXX9sA?t=119
Omówienie tekstów – od początku, omówienia ideone:
https://youtu.be/pxCpFlXX9sA?t=286
Początek omówienie napisów w C++:
– przykład aplikacji bankowej
– identyfikator klienta jako tekst – wypisywanie tekstu
https://youtu.be/pxCpFlXX9sA?t=359
Początek omówienia string / napisów sensu stricte:
– typ string – może przechować cały napis
– porównanie do typu int, char
– podstawienie / wypisywanie zmiennej string
– dodanie biblioteki string
https://youtu.be/pxCpFlXX9sA?t=458
Jakie zastosowanie ma nasza zmienna string:
– pamięta napis -> identyfikator klienta, umowy, text SMS, baner na autostradzie
https://youtu.be/pxCpFlXX9sA?t=696
Czym się różni string od int-a?
– liczba nie może się równać napisowi, może być 12
– char to pojedynczy znak, ale nie możemy być napisem
– liczby można dodawać
– napisy łączymy
https://youtu.be/pxCpFlXX9sA?t=764
Podwójne znaki cudzysłowu – tekst, pojedyncze – znak:
– C++ odróżnia napis od znaku
– char pojedynczy znak
– pojedynczy znak “b” to tekst a ‘b’ to znak
https://youtu.be/pxCpFlXX9sA?t=915
string może przechowywać dowolny ciąg znaków:
– ze spacjami, dowolna długość
https://youtu.be/pxCpFlXX9sA?t=1023
Czemu nie możemy wszystkich zmiennych skasować i zrobić string:
– zmienne int dodają, a string łączy
– co innego zmienna 15 a co innego napis 15
https://youtu.be/pxCpFlXX9sA?t=1073
String czyli tablica znaków
Podsumowanie zmiennej string / kodu
– numeracja od 0
– możemy traktować jako napis
– możemy traktować jako tablicę
– wypisywanie komórek tablicy: numer 0
https://youtu.be/pxCpFlXX9sA?t=1298
Długość string – size:
– dokładne omówienie
– ostatni znak, numeracja od 0
– metoda – string jest bardziej inteligentny i ma metody
– indeks ostatniego elementu id.size()-1
https://youtu.be/pxCpFlXX9sA?t=1655
Wypisanie ostatniego znaku stringu:
https://youtu.be/pxCpFlXX9sA?t=1791
Piszemy poza stringiem
– wywłaszczenie, niekreślone działanie, …
– dokła wyjaśnienie
https://youtu.be/pxCpFlXX9sA?t=1954
Łączenie / dodawanie stringów:
– dokładne omówienie
– mamy przedrostek i dodajemy 15 jako kolejny numer klienta
– łączymy a nie dodajemy stringi
– spacja zachowana
– łączenie ze znakiem
– kolejne dołączanie stringów do naszego stringa;
https://youtu.be/pxCpFlXX9sA?t=2100
Dodawanie napisów vs dodawanie stringów / inicjalizacja stringów:
– “bklw” + ” 015″ to sklejanie napisów a nie string
– dodawanie może tylko tyczyć stringów a nie ciągów znaków – tu jest zdefiniowane
– dodawanie na ciągach znaków nie jest zdefiniowane
– rzutowanie napisu na string i pokazanie że wówcza dodawanie działa bo dodawanie stringów
https://youtu.be/pxCpFlXX9sA?t=2485
Kahoot – Dodawanie napisów vs dodawanie stringów / inicjalizacja stringów:
– “XAP” + ” 924817″
– nie da rady bo napisy
– (string)”XAP” + (string)” 924817″
– to już da radę bo operacja + na stringach jest zdefiniowana
– poprawa to rzutowanie
– inicjalizacja string pojedynczym napisem
– dodać do niego kolejny napis
https://youtu.be/pxCpFlXX9sA?t=3879
Omówienie napisów w kahoot:
– dodawanie stringów i wypisywanie
– omówienie kodu
https://youtu.be/pxCpFlXX9sA?t=3049
Druga część spotkania – KOD ASCII:
https://youtu.be/pxCpFlXX9sA?t=4289
Challenge #11:
https://youtu.be/pxCpFlXX9sA?t=5759
OKI #12:
https://youtu.be/pxCpFlXX9sA?t=5814
I etap Olimpiady
Link do zajęć:
Nasze punkty z I etapu:
https://youtu.be/sill5r7hY4g?t=372
Treść zadania Kolorowy Wąż – I etap OI-a:
https://youtu.be/sill5r7hY4g?t=1113
Treść zadania Płytkie nawiasowanie:
https://youtu.be/sill5r7hY4g?t=1359
Treść zadania Pociąg:
https://youtu.be/sill5r7hY4g?t=1484
Omówienie zadania Kolorowy Wąż:
https://youtu.be/sill5r7hY4g?t=1827
Omówienie zadania Płytkie nawiasowanie:
https://youtu.be/sill5r7hY4g?t=2545
Dlaczego zachłan jest dobry?
https://youtu.be/sill5r7hY4g?t=3387
Deser!
Pociąg towarowy
https://youtu.be/sill5r7hY4g?t=3625
Zadania z Challenge: Multiplication table, Enemy is weak
Link do zajęć: https://youtu.be/JQo4dmjlkg8?t=19
Znamy drzewa przedziałowe:
– struktura
– suma na przedziale i zmiana wartości – poprawa sum prefiksowych
– zmiana na przedziale i wartość w punkcie
https://youtu.be/JQo4dmjlkg8?t=19
OKI #11 zapowiedź:
https://youtu.be/JQo4dmjlkg8?t=106
Mediana ciągu liczb:
– środkowy element posortowanego ciągu
https://youtu.be/JQo4dmjlkg8?t=282
Mediana ciągu gdzie podana jest częstotliwość ciągu:
https://youtu.be/JQo4dmjlkg8?t=466
Ile jest dodatnich liczb parzystych nie większych od 15?
https://youtu.be/JQo4dmjlkg8?t=617
Ile jest dodatnich liczb parzystych nie większych od 91?
– ile jest pełnych bloków nieparzysta-parzysta
https://youtu.be/JQo4dmjlkg8?t=663
Ile jest liczb dodatnich które są wielokrotnościami 5 nie większych od 2022:
– patrzymy na bloki długości 5 i bierzemy pełne
https://youtu.be/JQo4dmjlkg8?t=779
Omówienie zadania Multiplication Table:
– Szukamy mediany tabliczki mnożenia
https://youtu.be/JQo4dmjlkg8?t=927
Rozwiązanie wzorcowe zadania Multiplication Table:
https://www.youtube.com/watch?v=JQo4dmjlkg8&t=1437
Potrzebujemy wiedzieć ile jest liczb mniejszych od danej wartości:
https://youtu.be/JQo4dmjlkg8?t=1637
Kluczowe obserwacje:
– jeśli liczba elementów dla wartości mniejsza od połowy nie ma sensu szukać na lewo
– jeśli liczba elementów dla wartości większa od połowy nie ma sensu szukać na prawo
– mamy binary search
https://youtu.be/JQo4dmjlkg8?t=1814
Jak napisać funkcję która odpowiada ile jest liczb mniejszych od danej wartości -> np: 16:
https://youtu.be/JQo4dmjlkg8?t=2012
Złożoność rozwiązania:
https://youtu.be/JQo4dmjlkg8?t=2881
Omówienie kodu:
https://youtu.be/JQo4dmjlkg8?t=2957
Omówienie zadania Enemy is weak:
– indeksy nie muszą być kolejne, nie muszą być spójne
https://youtu.be/JQo4dmjlkg8?t=3241
Rozwiązanie brutalne:
https://youtu.be/JQo4dmjlkg8?t=3527
Optymalne rozwiązanie:
– bierzemy środkowy element i sprawdzamy ile jest lewych większych, prawych mniejszych i mnożymy
– wystarczy rozpatrzeć wszystkie środki
https://youtu.be/JQo4dmjlkg8?t=3711
Jak liczyć ile jest liczb większych od danej – na lewo / na prawo?
– policzyć trójki liczb, że indeksy rosnące a wartości malejące
– drzewo przedziałowe
– dynamicznie sumy sufiksowe = drzewo przedziałowe
https://youtu.be/JQo4dmjlkg8?t=3821
Problem w podejściu z drzewem przedziałowym:
– elementy są do 10^9
– musielibyśmy mieć tablicę 8GB
https://youtu.be/JQo4dmjlkg8?t=4024
Rozwiązanie problemu:
– sortujemy ciąg zachowując indeksy – parami
– odwracamy problem
– mamy zagwarantowane że wartości są większe ale nie mamy gwarancji kolejności/indeksów
– teraz szukamy ile jest elementów i indeksie mniejszym ode mnie na lewo i większym na prawo
– elementów jest tylko 10^6 – pamięci potrzeba tylko 8MB a poprzednio 8GB
https://youtu.be/JQo4dmjlkg8?t=4136
Nasze zadanie ma teraz postać:
– pytamy się drzewa przedziałowego, ile jest indeksów mniejszych na lewo, indeksów większych na prawo
– na drzewie pamiętamy ile razy mamy 1, 2, 3, … aż do 10^6
https://youtu.be/JQo4dmjlkg8?t=4422
Symulacja algorytmu:
https://youtu.be/JQo4dmjlkg8?t=4445
Każda permutacja występuje raz
– możemy poznać ile jest liczb większych na prawo
– mając indeks 5, ilość liczb mniejszych jest 5-1 czyli 4, wiem, że 2 są po lewej, zatem tych po prawej będzie 4-2 czyli też 2
– rachunek na licznościach, indeksach
– dać do quizu
https://youtu.be/JQo4dmjlkg8?t=4581
Złożoność rozwiążania:
https://youtu.be/JQo4dmjlkg8?t=4894
Z 317 lat do ułamka sekundy!
– zamiast 10^18 mamy 2*19^7
– ależ moc!
https://youtu.be/JQo4dmjlkg8?t=4913
Omówienie kodu:
https://youtu.be/JQo4dmjlkg8?t=4949
Challenge #10:
https://youtu.be/JQo4dmjlkg8?t=5326
Kahoot:
Jak znaleźć medianę liczb?
https://youtu.be/JQo4dmjlkg8?t=5472
Maski bitowe – Zadanie Gołębie pocztowe
Link do zajęć: https://youtu.be/55KbGr2LDwQ?t=19
Po co liczby dwójkowe?
Jak myśli komputer?
Ile palców ma komputer?
Liczby dwójkowe:
– reprezentacja liczb w komputerze
– jest prąd / brak prądu
– w ten sposób może myśleć komputer
– My myślimy dziesiętnie – mamy 10 palców 0->9
– Komputer ma 2 palce – jest naładowanie nie ma naładowania
– Liczby dwójkowe kojarzą nam się ze zrozumieniem architektury komputera
https://youtu.be/55KbGr2LDwQ?t=19
Liczby dwójkowe to coś więcej!
– 1 / 0 może oznaczać że coś jest lub czegoś nie ma
– szklanka talerz i widelec
– 1 1 1 wszystkie mamy
– 1 0 1 – środkowego elementu nie mamy
– Możemy bawić się, wykorzystać do tego by wykorzystać zbiory
– Błyskawicznie operować na tych zbiorach, wybierać optymalny
– Michał Szeliga poprowadzi nas przez ta piękną przygodę, liczby dwójkowe, zbiory, wybieranie
– a że w ten sposób w przyszłości zrozumiemy architekturę komputera to dodatkowy bonus
https://youtu.be/55KbGr2LDwQ?t=72
Olimpiada? Jak najwięcej myśleć nad zadaniami!
– najlepiej spędzony czas to ten nad myśleniem
– jest pomysł? implementujemy, eleimunujemy bugi
– wiedza którą nabędziemy będzie bezcenna
– ilość technik które poznamy da nam moc nie tylko w olimpiadzie ale również później w rozwiązywaniu problemów, w tworzeniu, przyspieszaniu aplikacji – porównywac dna, szukać ekologicznego plastiku
– to jest przyszłość do której się pryzgotowujemy
– pierwsza część amerykańskiej olimpiady
– może brać udział cały świat
– to również my
– nieważne w której klasie – bierzmy udział
– zarezerwujmy sobie weekend – 4h ciągłego czasu
– wystartujmy, pokażcie światu jak jesteście mocni
https://youtu.be/55KbGr2LDwQ?t=240
– no własnie o to chodzi
– małymi kroczkami
– pierwsza wersja przechodzi jakieś testy
– poprawiamy i poprawiamy
https://youtu.be/55KbGr2LDwQ?t=451
Wyjaśnienie modulo:
– dokładne wyjaśnienie ile wynosi 32*32 +21^1928 – 184
– jakie działania można zrobić na resztach?
– modulo liczby ujemnej: -2 mod 8
https://youtu.be/55KbGr2LDwQ?t=545
https://youtu.be/55KbGr2LDwQ?t=7321
https://youtu.be/55KbGr2LDwQ?t=7415
https://youtu.be/55KbGr2LDwQ?t=1168
https://youtu.be/55KbGr2LDwQ?t=1326
– konwersja jest zachłanna
– czym są bity
https://youtu.be/55KbGr2LDwQ?t=1446
– dziesiętnie pozycje mnożymy przez potęgi 10
– dwójkowo pozycje mnożymy przez potęgi 2
https://youtu.be/55KbGr2LDwQ?t=1704
Quiz: Czym różni się liczba 101 dwójkowo i dziesiętnie?
Dlaczego?
– tak jak dodawanie i odejmowanie
– możemy dodawać swoje!
https://youtu.be/55KbGr2LDwQ?t=1820
– przykład z życia – słońce i dzwoni kolega
– na dwójkowych i dziesiętnych
https://youtu.be/55KbGr2LDwQ?t=1938
– przykład z życia – słońce i dzwoni kolega
– na dwójkowych i dziesiętnych
https://youtu.be/55KbGr2LDwQ?t=2349
– przykład z życia – słońce i dzwoni kolega
– na dwójkowych i dziesiętnych
– w programowaniu na dziesiętnych
https://youtu.be/55KbGr2LDwQ?t=2623
– przesunięcie bitowe
– przykład w ideone
– najszybsze operacje – jedna instrukcja
https://youtu.be/55KbGr2LDwQ?t=2874
Quiz
– 1000 beczek i 10 poddanych
– jedna beczka zatruta
– w ciągu nocy trzeba sprawdzić która beczka jest zatruta
– każdą z tysiąca beczek określamy jednoznacznie maską bitową.
https://youtu.be/55KbGr2LDwQ?t=3691
Quiz:
Wymyśl ciekawszą wersję zagadki – nie tak makabryczną
https://youtu.be/55KbGr2LDwQ?t=5401
Własna aplikacja
Link do zajęć: https://youtu.be/uAv2AzDzLOc?t=9
Własna aplikacja!
– dopiero 10-te zajęcia i już możemy pisać własną aplikację?
– tak, będziemy mogli ją rozwijać albo samemu wdrażać swój pomysł
https://youtu.be/uAv2AzDzLOc?t=9
Dlaczego własna aplikacja?
– najbardziej się rozwijamy
https://youtu.be/uAv2AzDzLOc?t=39
Pomysły na aplikacje:
– zamiana systemu dwójkowe na dziesiętną
– pokazywanie czas, datę, konwersacja
– pisząc aplikację i dodając kolejne elementy będziemy uczyć się i cieszyć tym programowaniem
– pisząc aplikację będziemy uczyć się, odkrywać, przeszukiwać internet, rozmwaiać na discordzie
– właśnie odkrywać
https://youtu.be/uAv2AzDzLOc?t=51
Zdobądź szczyt!
Wejdź na górę!
Wielke WOW
Piękna górska wycieczka – projekt naszej aplikacji:
– wyobraźmy sobie, że przed nami góra
– możemy wejść na górę a możemy nie wejść
– dlaczego ludzie chodzą po górach
– dla widoków
– jak ta nasza aplikacja będzie to wielka radość
– każdego dnia gdy będziemy na tej górze coraz wyżej to każdy krok to będzie zmęczenie
– idziemy przecież pod górę
– ale będzie radość że go wykonaliśmy
– nie zawsze chodzi o to bycia na górze, radością jest już droga
– do tej drogi chciałem Was zachęcić
– cieszyć się się tym co robisz
– jeśli programowanie, to pisanie swojej aplikacji
– każdego dnia będzie mocniejsza
– przykładów mamy bardzo dużo
– Mateusz i sprawne miasto
– Piotr Donański – pomaga we wzorach fizycznych i chemicznych
– Wojtka i Szymona którzy w ramach lekcji piszą własną aplikację
– zachęcam do własnej aplikacji
– ta droga jest już piękna
– a jak dojdziemy, widok będzie wspaniały!
– ale możecie powiedzieć kiedy będę widział taki widok, przecież ta góra jest wysoka
– Ci którzy weszli na taką górę tez postawili pierwszy krok
– jeżeli tylko każdego tygodnie będziesz dodawać tylko jedną rzecz do swojej aplikacji
– za rok będziesz miał 50 funkcjonalności, na normalnej stronie www, swojej aplikacji
– będziesz miał wielką radość, wielką dumę, wielkie WOW od kolegów nauczycieli
– ja też się ucieszę, pokażę światu
– bardzo się cieszę każdym naszym krokiem
– zachęcam do tej drogi
– my dziś pokażemy jak można rozpocząć taką aplikację
https://youtu.be/uAv2AzDzLOc?t=123
Kahoot – program który wczytuje 7 wartości i je wypisuje
– sortowanie bez ostatniego elementu
– argumenty funkcji sort
https://youtu.be/uAv2AzDzLOc?t=572
Ostatni element tablicy:
https://youtu.be/uAv2AzDzLOc?t=1290
Piszemy aplikację “Szybka Matma”!
https://youtu.be/uAv2AzDzLOc?t=1587
Plik index.html:
– szczegółowe wyjaśnienie.
https://youtu.be/uAv2AzDzLOc?t=1778
Zamiana na system dwójkowy:
https://youtu.be/uAv2AzDzLOc?t=4733
To działa!
https://youtu.be/uAv2AzDzLOc?t=5665
Skrócone omówienie naszej aplikacji:
https://youtu.be/uAv2AzDzLOc?t=5770
Zapowiedź OKI #11:
https://youtu.be/uAv2AzDzLOc?t=7476
Opis challenge #10:
https://youtu.be/uAv2AzDzLOc?t=6717
Megalopolis
Link do zajęć: https://youtu.be/QMHaZBxUQks?t=156
Wrażenia z II etapu OI:
https://youtu.be/QMHaZBxUQks?t=156
PreOrder – quiz kahoot:
https://youtu.be/QMHaZBxUQks?t=752
Z jakiego systemu korzysta Tomek?
– Linux!
https://youtu.be/QMHaZBxUQks?t=1259
Omówienie zadania Megalopolis – Olimpiada Informatyczna:
https://youtu.be/QMHaZBxUQks?t=1279
Kod / linki: https://oki.org.pl/megalopolis
Gdy nie mam zmian zadanie jest proste
– gdy są zmiany – trzeba pomyśleć
https://youtu.be/QMHaZBxUQks?t=2343
Kod zadania Megalopolis:
https://youtu.be/QMHaZBxUQks?t=5611
Uczymy się nie tylko rozwiązywać ale też trików programistycznych!
https://youtu.be/QMHaZBxUQks?t=5629
Złożoność rozwiązania:
https://youtu.be/QMHaZBxUQks?t=6155
Zapowiedź #10
https://youtu.be/QMHaZBxUQks?t=120
Challenge #9:
https://youtu.be/QMHaZBxUQks?t=6433
Umiemy drzewa!
Sporo umiemy z drzew!
– dodawać na przedziale
– dodawać w punkcie
– wybierać min / max
https://youtu.be/QMHaZBxUQks?t=7290
Zadania z Challenge – Duże liczby / Usuwanka
Link do zajęć:
Mistrzostwa? To informatyka!
– nawet mecz Polski teraz trwa
– Co to ma wspólnego z Informatyką
– Możemy przewidzieć kto wygra Mistrzostwa Świata
– Jest dziedzina na pograniczu informatyki i matematyki
– Modelowanie
– Co możemy modelować?
– Kto wygra mecz / kto wygra turniej?
– Bardziej poważne rzeczy: Jak rozchodzi się lek w organizmie?
– Jak atakuje rak ciało człowieka?
– Wtedy jesteśmy w stanie stworzyć lek który zatrzyma ten proces
– Jesteśmy w stanie światu pomóc
– Ja też zajmowałem się modelowaniem
– Z pogranicza matematyki i informatyki
– Być może my będziemy się tym zajmować
https://youtu.be/PZTW-83UMHM?t=11
https://youtu.be/PZTW-83UMHM?t=1370
Kod: https://oki.org.pl/duze-liczby
Omówienie zadania Usuwanka:
https://youtu.be/PZTW-83UMHM?t=3562
Kod: https://oki.org.pl/usuwanka
Challenge #9:
https://youtu.be/PZTW-83UMHM?t=7316
Zapowiedź #10:
https://youtu.be/PZTW-83UMHM?t=7402
Sporo umiemy z drzew!
– dodawać na przedziale
– dodawać w punkcie
– wybierać min / max
https://youtu.be/QMHaZBxUQks?t=7290
Sortowanie w akcji – Codeforces – Remove Smallest
Link do zajęć: https://youtu.be/v1kIwQqod2M?t=18
Lego, buty i sortowanie!
Po co nam to sortowanie?
– robot, klocki lego, sortuje piłki, rozpoczęcie mistrzostw świata w piłce nożnej
– sortowanie butów
– szersze sortowanie niż my rozumiemy rosnąco czy malejąco
– tu sortowanie to paczki które idą do jednego miasta
– rozszerzamy sortowanie
– przygotowujemy się do tej pięknej przyszłości
– chcemy uczestniczyć w najciekawszych projektach
–
https://youtu.be/v1kIwQqod2M?t=18
Spróbujmy samemu zrobić zadania
– możemy zajrzeć dowolnie długo
– możemy zajrzeć do kodu ile chcemy
– potem zamykamy i robimy sami
– żeby nie zaglądać co chwilę bo przepisywanie
– może zajrzeć na 4h / 8h
https://youtu.be/v1kIwQqod2M?t=6622
Dlaczego mi zależy
– jeśli zrobicie to umiecie
– nie ma większej wartości jeśli zrobimy zadanie od początku do końca sami
– liczy się to co zrobimy samemu.
https://youtu.be/v1kIwQqod2M?t=6665
Omówienie zadania Remove Smallest:
https://youtu.be/v1kIwQqod2M?t=2183
Kod / linki: https://oki.org.pl/remove-smallest
Tablice globalne vs lokalne – dokładne wytłumaczenie:
https://youtu.be/v1kIwQqod2M?t=3328
Tablice globalne vs lokalne – kahoot – dokładne wytłumacznie:
https://youtu.be/v1kIwQqod2M?t=6711
Challenge #9:
https://youtu.be/v1kIwQqod2M?t=6612
Zapowiedź OKI #10:
https://youtu.be/v1kIwQqod2M?t=7287
Algorytmy tekstowe
Link do zajęć:
Zostało mało czasu do końca OI-a
– kto się nie zabrał warto się zabrać
– wymyślenie to połowa sukces
– ale rozwiązania na podstawie kodu
– nie zostawiajmy kodu na ostatnią chwilę
– losowe błędy mogą wyniknąć
– są 2 zadania które się pisze dłużej
https://youtu.be/Egt5W93F1DU?t=632
Jakieś fajne materiały do teorii liczb:
– cp-algorithms.web.app
– więcej niż trzeba na olimpiadzie
https://youtu.be/Egt5W93F1DU?t=801
Dlaczego Mikołaj nie został finalistą w jednym z OI-ów?
Czy Mikołaj miał tak na OI-u że dostał mniej punktów niż się spodziewał?
– dał tylko własne testy
– nie puścił testów automatycznych
– wykryłyby drobnego bug-a
– dostał 38 zamiast 100
– warto testować
https://youtu.be/Egt5W93F1DU?t=1243
Olimpiady nie piszemy na Windows a a na Linux
– II etap na Linux
– Debian
– działa inaczej niż Windows
– szybszy
– mamy gotowe programy testujące
https://youtu.be/Egt5W93F1DU?t=1457
Algorytmy tekstowe – KMP
– efektywne wyszukiwanie wzorca w tekście
– algorytm liniowy
https://youtu.be/Egt5W93F1DU?t=1564
Jakie są algorytmy tekstowe?
– KMP, hashe, może inne
– KMP jest szybsze od hashy i deterministyczne
https://youtu.be/Egt5W93F1DU?t=1682
Pseudokod znajdowania prefikso-sufiksów:
https://youtu.be/Egt5W93F1DU?t=2641
Złożoność prefikso-sufiksów:
https://youtu.be/Egt5W93F1DU?t=3119
Po co nam te prefikso-sufiksy?
– tak samo robimy dla wzorców
https://youtu.be/Egt5W93F1DU?t=3258
Pseudokod KMP:
https://youtu.be/Egt5W93F1DU?t=3637
Nie warto pamiętać
KMP to 3 linijki!
– prefikso-sufiks to 4 linijki
– na warsztatach można KMP skopiować
– na Olimpiadzie się nie da
– wystarczy zrozumieć
– wystarczy zrozumieć ideę
– będziemy w stanie to wyprowadzić
– gdzie ma być +1 w kodzie – nie wiemy ale wrócimy bo rozumiemy / rysunek
https://youtu.be/Egt5W93F1DU?t=4094
Tablica p / funkcja p – zastosowania
https://youtu.be/Egt5W93F1DU?t=4272
Zadanie Szablon:
https://youtu.be/Egt5W93F1DU?t=4606
Drzewa przedziałowe w akcji
Link do zajęć: https://youtu.be/vg_g0zTxUVo?t=20
Do czego drzewa przedziałowe?
– suma, iloczyn, nwd, xor, operacje bitowe
https://youtu.be/_NKkBeXjMXg?t=25
Omówienie zadania Palindrome Queries
https://youtu.be/_NKkBeXjMXg?t=753
Kod / linki: https://oki.org.pl/palindrome-queries
Piękno drzew przedziałowych!
Zmieniamy pół linijki i drzewo nam liczy zupełnie coś innego!
– sumę, nwd, max, …
https://youtu.be/_NKkBeXjMXg?t=2756
Złożoność naszego rozwiązania:
https://youtu.be/_NKkBeXjMXg?t=4104
Dostajemy zielone!
– nie kasa a 100%
https://youtu.be/_NKkBeXjMXg?t=5828
Mocne zadanie!
https://youtu.be/_NKkBeXjMXg?t=6083
II etap OI-a!
– ale będzie łatwiej
https://youtu.be/_NKkBeXjMXg?t=7156
Zapowiedź OKI #9: https://youtu.be/_NKkBeXjMXg?t=107
Challenge #8: https://youtu.be/_NKkBeXjMXg?t=5941
NWD w akcji – Codeforces – Alice and Bob
Link do zajęć: https://youtu.be/wQ-txOToh8g?t=16
NWD bohaterem:
– matematyczny
– pomaga rozdzielać zasoby, terminy spotkań, kto wygra w grę, podobieńśtwa
– tak jak dziś – Codeforces / gra
https://youtu.be/wQ-txOToh8g?t=16
Olimpiada nas przygotowuje by w przyszłości
– rozdzielać zasoby, znajdować podobieństwa
– prosty algorytm, napisaliśmy go poprzednio w chwilę
https://youtu.be/wQ-txOToh8g?t=66
Zobaczyliśmy że NWD policzyć można wolno 30 000 lat
– tysiące lat dla 10^18 lub ułamek sekundy
https://youtu.be/wQ-txOToh8g?t=90
POKAZAĆ
UWAGA! Przychodzi mocna osoba!!!
Jesteśmy magami czarodziejami!
Zamiast 30 000 lat ułamek sekundy?
Co gdy przychodzi mocna osoba?
Przychodzi mocna osoba!
– to my
– mówimy policzymy szybciej
– jak szybciej jak to się liczy tydzień, nie przerywaj
– a my mówimy – Twoja metoda to tysiące lat, człowieku nie doczekasz
– pozwalają – nasz algorytm liczy ułamek sekundy
– jesteśmy magami czarodziejami
– wielka radość, wielka satysfakcja, pomogliśmy
– wszystko czego się nauczyliśmy dzięki tej Olimpiadzie się przydało
– NWD – prosty algorytm który pokazuje moc algorytmiki, myślenia, pomysłu, popatrzenia na problem zanim go rozwiążemy
https://youtu.be/wQ-txOToh8g?t=137
Róbmy zadania olimpijskie od razu!
– chodzi o myślenie, nowe drogi, odkrywanie, poznanie
– na ostatnia chwile nie nauczymy się dużo
– nie chodzi o punkty
– żeby jak najwięcej się nauczyć!
– dużo więcej się rozwiniemy, wniosków
https://youtu.be/wQ-txOToh8g?t=261
Aplikacja OKI – wielka prośba
https://youtu.be/wQ-txOToh8g?t=335
Zadanie Alice and Bob:
https://youtu.be/wQ-txOToh8g?t=1985
Warto symulować!
https://youtu.be/wQ-txOToh8g?t=6851
Symulacja szybkiego NWD z resztami
– szczegółowa analiza kolejnych wartości zmiennych a, b, reszta
– początkowo 7, 21
https://youtu.be/wQ-txOToh8g?t=6702
Challenge #8
https://youtu.be/wQ-txOToh8g?t=6259
Zajęcia #9:
https://youtu.be/wQ-txOToh8g?t=6335
Sortowanie
Link do zajęć:
Co gdy jesteś w sklepie internetowym?
– chcemy by elementy były posortowane
– po cenie, popularności, ocenie
– aplikacje pozwalają sortować elementy
– w kolejności rosnącej po cenie, opinii, czymkolwiek
– komputer bardzo łatwo sortuje
– w życiu – bieg na 100m czy wyniku testu
https://youtu.be/x1WHMRK_WNM?t=4
Przygotowujemy się by w przyszłości pisać fantastyczne aplikacje!
– takie które pomagają coś wybrać
– w sklepie elektronicznym, sportowym, ogrodniczym
– żeby użytkownicy byli szczęsliwi
https://youtu.be/x1WHMRK_WNM?t=83
Sortowanie potrzebne w rozwiązywaniu problemów:
– Binary Search – błyskawicznie znajduje coś – sprawdza środek i odrzuca lewą lub prawą część
– my też go używamy – patrzymy na środkową cenę i odrzucamy lewą lub prawą połówkę
– algorytmika też korzysta z uporządkowania
– algorytmy zachłanne
– dziś ustawiamy klasę w rzędzie!
https://youtu.be/x1WHMRK_WNM?t=111
Mamy arsenał by zaatakować Olimpiadę Informatyczną Juniorów / Licealistów
– umiemy tablice, pętlę, warunki
– zostały teksty, funkcje
https://youtu.be/x1WHMRK_WNM?t=195
Możemy zaatakować zadania z Olimpiady!
– dlaczego zachęcam
– informatyka to pisanie programów
– informatyka to też rozwiązywanie problemów
– jakich problemów
– by program nie liczył się dni a sekundy
– jeśli chcemy by program coś doradził to by zrobił to szybko
– i tego nas nauczy Olimpiada Informatyczna SP / Liceum
– strasznie się przyda w życiu
– nie chodzi o wynik
– macie moc – patrzę po quizach
– w sp też w licealnej
– przeczytajmy zadania
– nie chodzi o wynik, chodzi o to ile się nauczymy!
– myśląc nad zadaniami – najpiękniejszy czas
– Szymon Hajderek – rozkoszuje się czasem gdy myśli nad zadaniami
– nie zagląda szybko szybko do odpowiedzi bo to do czego dojdzie jest najcenniejsze
– nie tylko uczymy się myśleć
– ale też uczymy się kodować
– popełnimy błędy, będziemy szukać błędów
– uczmy się C++ / Pythona
– straszliwy skok do przodu
– a my już mamy narzędzia by wystartować!
https://youtu.be/x1WHMRK_WNM?t=241
Jak opanować chaos?
Sortowanie:
https://youtu.be/x1WHMRK_WNM?t=1378
Weźmy udział w quizach i challengach!
https://youtu.be/x1WHMRK_WNM?t=361
Zapowiedź OKI #9: https://youtu.be/x1WHMRK_WNM?t=6013
Opis challenge #9: https://youtu.be/x1WHMRK_WNM?t=5975
Programowanie zachłanne
Link do zajęć: https://youtu.be/Gu2unW6i1lM?t=950
Początek zajęć:
https://youtu.be/Gu2unW6i1lM?t=950
Czy możemy programowanie zachłanne użyć do problemu plecakowego?
– nie można
– nie da się brać optymalnych stosunków
– najkrótszy przykład z 3-ma przedmiotami
https://youtu.be/Gu2unW6i1lM?t=999
Algorytmy zachłanne:
– dynamik plecakowy – n^2
– uporządkowanie i zachłanne podejście byłby n albo nlogn – ale nie mogę
– w Dijkstra też nie mogę brać zachłannie aktualnie najlepszej krawędzi
– ale czasem uporządkowanie i branie najlepszego działa
– słoiki z miodem – ciągłe przedmioty – można dowolnie dzielić częściowo
– dlaczego zachłan ze słoikiem działa?
https://youtu.be/Gu2unW6i1lM?t=1153
Bierzemy najlepiej jak się da!
To jest zachłan!
https://youtu.be/Gu2unW6i1lM?t=1506
Jak wpaść na zachłana?
https://youtu.be/Gu2unW6i1lM?t=1626
Klasyka zachanów – Szeregowanie czynności:
https://youtu.be/Gu2unW6i1lM?t=1927
Zadanie Trójkontenerowiec – Potyczki algorytmiczne:
https://youtu.be/Gu2unW6i1lM?t=3484
Razem piszemy kod NWD
Link do zajęć:
– Droga do tego by rozwiązywać problemy w przyszłości
– Jakie problemy?
– W R&D gigantów, na uczelniach, w firmach
– te miejsca do których się przygotowujemy
– tam chcemy być
– chcemy mieć ciekawe życie
– każdego dnia chcemy mieć problem które świat nie umie rozwiązać
– i będziemy go próbowali zaatakować na różny sposób
– to chyba nie może być prawda….
– kto ma jakie problemy?
https://youtu.be/gEgsWnMbBNs?t=8
– teraz Alicja na Uniwersytecie Warszawskim rozwiązuje problem Komiwojażera
– trzeba rozwieść towary i wrócić do miejsca początkowego
– chciałby by ta trasa i czas była jak najkrótsze – paliwo, koszty, optymalizacja
– NP trudny, wykładniczy
– Alicja wraz z zespołem rozwiązała go nie deterministycznie
– poznaliśmy gąsienice, binary search – dające pewny, optymalny wynik
– algorytmy heurystyczne dają wynik z pewnym przybliżeniem, z pewnym prawdopodbieńśtwem
– zastosowała heury by znaleźć optymalną trasę wielu komiwojażerów, przy ograniczonej pojemności ciężarówek, przy zmieniającej się liczbie sklepów/punktów – dochodzą, zamykane
– algorytm musi się dostosowywać do życia
– realny problem
– fascynująca sprawa
– czy są firmy które by chciały zaimplementować ten algorytm
– jak o 10% skrócimy drogę ciężarówek w firmie która tysiące ciężarówek to dziennie będą setki tysiące oszczędności, rocznie miliony oszczędności
– również benefit dla nas
– wielka radość dla wszystkich
– po Olimpiadzie będzie nadal zajmować się rozwiązywaniem problemy
– nadal będziemy rozwiązywać problemy tylko już te realne
– używają tych samych metod lub innych
– już będziemy wiedzieli o co chodzi
– problem jest wykładniczy
– żeby znaleźć drogę dla 100 sklepów – 2^100 operacji
https://youtu.be/gEgsWnMbBNs?t=65
Gigantyczne liczby, komputery by to liczyły miliony lat
– wtedy tak fantastyczne osoby jak Alicja jak my są potrzebne
– komputerze, tak tego nie będziemy robić bo nie mamy milionów lat, nie damy rady
– zobacz zrobimy to lepiej
https://youtu.be/gEgsWnMbBNs?t=252
Niech świat powie WOW!
I wtedy świat powie wow!
Jesteśmy czarodziejami!
– ten program liczył się tak długo a teraz liczy się ułamek sekundy!!!
– dziś też coś takiego zrobimy!
https://youtu.be/gEgsWnMbBNs?t=267
– coś co jest potrzebne w bezpieczeństwie
– jeśli ktoś jest zafascynowany bezpieczeństwem, ochroną przed wirusami to zapraszam serdecznie
– wspólnie napiszemy kod NWD
– jak najszybciej
https://youtu.be/gEgsWnMbBNs?t=295
https://youtu.be/gEgsWnMbBNs?t=3391
https://youtu.be/gEgsWnMbBNs?t=5625
Zapowiedź #8:
https://youtu.be/gEgsWnMbBNs?t=6825
Opis challenge #7:
https://youtu.be/gEgsWnMbBNs?t=6857
Komu potrzeba pomagać
Piszemy System Wspomagania Decyzji!
– do czego wspomaganie decyzji
– kampanie marketingowe przed świętami
– kto podpowie kadrze zarządzającej która najbardziej co robić?
– My informatycy!
– Rolnictwo – kiedy nawozić, kiedy zbierać plony, kiedy nawodnić
– My informatycy podpowiadamy rolnikowi, co najbardziej efektywne dla niego dla ziemi
– Gdzie zbudować sklep
– Analiza transkacji, drogi pokonywanej przez klientów
– Znowu my informatycy podpowiadamy
– Coś najbardziej pasjonującego dla mnie!
– Kończyłem Komputerowe Wspomaganie Decyzji
– Coś co mnie bardzo pasjonuje
– Dziś coś takiego zrobimy!
https://youtu.be/IxwQcOkKY30?t=16
Po co tablice?
– musimy pamiętać dane – transakcje, stan gleby, pogodę – żebyśmy mogli coś doradzić.
https://youtu.be/IxwQcOkKY30?t=143
Po co tu jesteśmy?
– żeby fantastyczna pogoda, takie projekty były przed nami
– przyszłość jest nasza
– jeśli to Was pasjonuje, to możemy to robić
https://youtu.be/IxwQcOkKY30?t=178
Nasze marzenia!
Bo chodzi o marzenia!!!
Jeden z nas chce pracować w konkretnej firmie programistycznej:
– pomogę – czego się uczyć, jaką strategię, wolontariat w tej firmie
– pomyśl kim chcesz być za 10 lat
– ja Jan Kowalski – ma dziś 15, 18, 11 lat
– dodaj sobie 10 i gdzie chciałbyś być
– te marzenia są przed nami, do zmaterializowania, wystarczy po niego sięgnąć.
– każdego dnia mocniejsi
https://youtu.be/IxwQcOkKY30?t=207
Zauważ czego brakuje!
Projekt naszego kolegi – Piotra Domańskiego
– absolwent OKI
– też uczył się programowania
– zauważył że jest problem!
– nie ma programu który liczy matematyczne zadania, formuły
– zaczął robić swój Software House!
– coś co robi programy dla nas – grę, wspomaganie decyzji, formuły matematyczne
https://youtu.be/IxwQcOkKY30?t=272
Pomóżmy Piotrowi!
https://youtu.be/IxwQcOkKY30?t=375
Całościowe wyjaśnienie tablic:
– od samego wejścia do online’owego kompilatora C++ ideone
– pokazanie problemów ze zmiennymi
– dokładne omówienie tablic
https://youtu.be/IxwQcOkKY30?t=1965
– jaki jest problem ze pojedynczymi zmiennymi?
– gdy jest dużo zmiennych
– wczytywanie / wypisywanie / operowanie
– jak pomagają tablice?
https://youtu.be/IxwQcOkKY30?t=2230
Tablice sensu stricte omówienie
https://youtu.be/IxwQcOkKY30?t=2302
Tablice znaków – dokładne omówienie w trakcie quizu:
https://youtu.be/IxwQcOkKY30?t=6682
Tablice znaków – dokładne omówienie w trakcie quizu:
https://youtu.be/IxwQcOkKY30?t=6682
Opis Challenge #7:
https://youtu.be/IxwQcOkKY30?t=6494
Programowanie #8:
https://youtu.be/IxwQcOkKY30?t=6552
Podsumowanie kodu Szybka paczka:
https://youtu.be/IxwQcOkKY30?t=5751
SQRT – Pierwiastki
Link do zajęć:
Meet in the Middle:
– czy może się przydać ona Olimpiadzie?
– Co to jest?
https://youtu.be/ltHNUi6KKmw?t=1037
SQRT – Pierwiastki – SQRT Decomposition – Dekompozycja pierwiastkowa
– podobny pomysł do drzew – przedziały które scalamy
https://youtu.be/ltHNUi6KKmw?t=1219
Złożoność algorytmu pierwiastkowego:
https://youtu.be/ltHNUi6KKmw?t=1454
Gdzie się przydaje pierwiastek?
– suma wartości równa x – różnych wartości nie więcej niż 2*sqrt(x)
https://youtu.be/ltHNUi6KKmw?t=1563
Klasyczne zadanie na pierwiastek:
https://youtu.be/ltHNUi6KKmw?t=1725
Dlaczego algorytmy pierwiastkowe są potężne?
https://youtu.be/ltHNUi6KKmw?t=2618
Kontenery – XXIV OI:
– male ruchy – brut
– duże ruchy – zgromadzić – mało – szybko
https://youtu.be/ltHNUi6KKmw?t=3987
Co to jest ścieżka w grafie?
https://youtu.be/ltHNUi6KKmw?t=4262
Olimpiada Informatyczna
– jak zadawać pytania?
https://youtu.be/ltHNUi6KKmw?t=4804
W OI- jest 25 zgłoszeń – liczy się ostatnie!
https://youtu.be/ltHNUi6KKmw?t=4912
Nie wolno kopiować kodu!
– dzielić rozwiązaniami
https://youtu.be/ltHNUi6KKmw?t=4950
Zadanie Gang Biciaków:
https://youtu.be/ltHNUi6KKmw?t=4987
Drzewa przedziałowe część 1 – pierwsze zajęcia
Link do zajęć: https://youtu.be/vg_g0zTxUVo?t=20
– jak znajdować wzorce w tekstach
– problemy w hashach – kolizje
– zadanie z Olimpiady Informatycznej
https://youtu.be/vg_g0zTxUVo?t=20
– Zadanie Palindrom queries
https://youtu.be/vg_g0zTxUVo?t=95
Zaproszenie #2
– Palindrom queries
– połączenie dwóch tematów
https://youtu.be/vg_g0zTxUVo?t=8449
– XXIX OI – finał – zadanie – Marudny Bajtazar
– XXVIIO OI – Zadanie Pakowanie Plecaka
– dwa lata temu
– procentowo dość często – jest uniwersalny
https://youtu.be/vg_g0zTxUVo?t=176
– problem min prefiksowych
– nie wiemy co jest na przedziałach pomiędzy
https://youtu.be/vg_g0zTxUVo?t=425
Jak strasznie wolno rośnie logarytm!
– 10^18 vs 60
– czekanie, czas
https://youtu.be/vg_g0zTxUVo?t=800
– kolejna potęga dwójki – 1
https://youtu.be/vg_g0zTxUVo?t=866
Omówienie zadania Catapult that Ball:
https://youtu.be/vg_g0zTxUVo?t=1171
Kod / linki:
https://oki.org.pl/catapult-that-ball
https://youtu.be/vg_g0zTxUVo?t=1917
https://youtu.be/vg_g0zTxUVo?t=2148
CHCEMY PODWAŻYĆ ALGORYTM KTÓRY MA PYTHON!
– krótkie ale fajne!
https://youtu.be/vg_g0zTxUVo?t=2242
– bez żadnej matematyki, numerów, przedziałów
– odpowiedzi na pytania o max na poszczególnych przedziałach
– za co odpowiadają wierzchołki
https://youtu.be/vg_g0zTxUVo?t=2364
Piękne drzewo Tomka!
Drzewa informatyczne
Drzewa które podobają się informatykom
– nasze drzewa mają korzeń na górze
– korzeń i liście
– nawet te drzewa będa sie podobały
https://youtu.be/vg_g0zTxUVo?t=2694
– policzyliśmy dodatkowe wartości
– możemy szybciej odpowiadac na zapytania
https://youtu.be/vg_g0zTxUVo?t=2765
Budujemy drzewo przedziałowe!
– jaką ma strukturę, jak działa, dlaczego działa, jaką ma strukturę, jak się zachowuje
– zapytania o poszczególne przedziały
– numerowanie
https://youtu.be/vg_g0zTxUVo?t=2814
Jak działa drzewo przedziałowe – przykład zapytania
Drzewo przedziałowe w akcji
– pytamy o max na skomplikowanym przedziale
https://youtu.be/vg_g0zTxUVo?t=3975
Piszemy psuedokod drzewa przedziałowego:
https://youtu.be/vg_g0zTxUVo?t=4951
Złożoność drzew przedziałowych:
– rozmiar drzewa przedziałowego
– głębokość drzewa
– ilość elementów
https://youtu.be/vg_g0zTxUVo?t=6651
Omówienie kodu drzewa przedziałowego!
https://youtu.be/vg_g0zTxUVo?t=7053
Challenge #7:
https://youtu.be/vg_g0zTxUVo?t=7371
Kahoot – drzewa binarne
– kto jest synem wierzchołkiem 123
– czy wierzchołki 29 i 43 są na tej samej wysokości?
– chcesz szybko znajdować minimum w 20-elementowej tablicy – jakiego rozmiaru musi być drzewo?
– Jaki wierzchołek w drzewie binarnym sąsiaduje naraz z 50 oraz 201
– Czy wierzchołki 45 i 46 mają tego samego ojca w drzewie binarnym?
– Min 2-3 to 6, min 4-5 to 8 -> Jakie jest min 2-5
https://youtu.be/vg_g0zTxUVo?t=7577
Tomek super tłumaczy!
https://youtu.be/vg_g0zTxUVo?t=8365
Gąsienica
Link do zajęć: https://youtu.be/TMgFEpTuBvQ?t=18
Algorytm inspirowany naturą czy kojarzący się z naturą
– 2 pointers
https://youtu.be/TMgFEpTuBvQ?t=18
– algorytmy genetyczne
– sztuczna inteligencja
– podpatrujemy naturę – jak wybierane są kolejne pokolenia, jak szukane jest optimum
– jak radzi sobie mózg
– dlaczego wpadamy na pomysły?
– komputery są wolne, staramy się pomóc komputerowi by nie liczył bezsensownie
– nie starczy mu czasu
– jak mają jechać ciężarówki, jak upakować elementy w samochodach
– olimpiada jest motywacją
– bieżące informacje
– test SP
– Olimpiada Informatyczna – bierzemy udział bez względu czy SP / Liceum
– komentarz Szymona
– zadania są ciekawe, pomyśleć
– rozplanowuje zadania na cały miesiąc
– kolorowy wąż – gra w Snake
– zrozummy treść, napismzy bruta poprawiajmy
– dołączmy do grupy OKI
https://youtu.be/TMgFEpTuBvQ?t=60
– nie myślmy o tym
– każdy trener powie – myśl tylko o kolejnej akcji?
– naszym zadaniem jest jak najlepiej zrobić te 5 zadań
– popatrzeć poszukać
– potem będzie koniec, 21 listopada
– w rękach Olimpiady jakie będa progi
https://youtu.be/TMgFEpTuBvQ?t=472
– razem piszemy nowy algorytm
https://youtu.be/TMgFEpTuBvQ?t=579
–
Zachęta #2
https://youtu.be/TMgFEpTuBvQ?t=6649
–
– zadania z naszych challenge!
https://youtu.be/TMgFEpTuBvQ?t=623
–
Zachęta #2:
https://youtu.be/TMgFEpTuBvQ?t=6675
https://youtu.be/TMgFEpTuBvQ?t=703
https://youtu.be/TMgFEpTuBvQ?t=778
– to już jest początek robienia zadania!
– początek myślenia nad zadaniem
– przeczytajmy zadania
https://youtu.be/TMgFEpTuBvQ?t=1033
https://youtu.be/TMgFEpTuBvQ?t=1169
https://youtu.be/TMgFEpTuBvQ?t=1577
https://youtu.be/TMgFEpTuBvQ?t=2149
https://youtu.be/TMgFEpTuBvQ?t=2543
https://youtu.be/TMgFEpTuBvQ?t=2700
https://youtu.be/TMgFEpTuBvQ?t=2947
https://youtu.be/TMgFEpTuBvQ?t=3058
https://youtu.be/TMgFEpTuBvQ?t=3940Hurra! Radość Pokazać
– Jedynka nam bruździła i ją usunęliśmy!!!
https://youtu.be/TMgFEpTuBvQ?t=4967
https://youtu.be/TMgFEpTuBvQ?t=5215
– inaczej niż jesteśmy przyzwyczajeni
https://youtu.be/TMgFEpTuBvQ?t=5459
https://youtu.be/TMgFEpTuBvQ?t=5505Jak wkleić kod / rozwiązanie do Codility?
https://youtu.be/TMgFEpTuBvQ?t=6172
https://youtu.be/TMgFEpTuBvQ?t=6286
https://youtu.be/TMgFEpTuBvQ?t=6786
Mamy 100% – bardzo dziękuję! POKAZAĆ
– trudne rzeczy, olimpiada, a wy fenomenalnie ogarniacie
https://youtu.be/TMgFEpTuBvQ?t=7322
Następna 100
– jesteście mistrzami
– nie są łatwe rzeczy
– pięknie, serce rośnie
– możemy paść na podłogę i pełzać – jesteśmy mistrzami gąsienicy
– gąsienica jest dla Was proste
– możecie z pełną wiarą przystępować do Olimpiad
– myślenie nad zadaniami
– codeforces stres
– Ukłony, pokazaliście potęgę
– zajęcia zdalne gdzie nie ma łatwej integracji
– jesteście mistrzami
https://youtu.be/TMgFEpTuBvQ?t=7620Drzewa przedziałowe – zaproszenie na zajęcia Tomka
– są proste
– ten element który mówi, że jesteśmy zaawansowanymi algorytmikami
https://youtu.be/TMgFEpTuBvQ?t=7703
Team – Codeforces – pętla w pętli
2022.10.24
Link do zajęć:
Jak dołączyć do projektów programistycznych?
– 600 000 użytkownikó w 2018
– prześcignęła TopCoders
– każdego tygodnia dwa konkursy
– dywizja 2 nasza – zadania A
– zachęcam by tak się uczyć
– każde zadanie które zrobiliśmy to piękny wpis do CV – CV samo się tworzy – będzie jak znalazł
– staż, praca, grupa, szkoła, itp – mamy piękne CV
– konkurs ma 2h – sprawdzamy się w warunkach stresu – przed Olimpiadą
– my dziś zrobimy zadanie Team z Codeforces
– zadania po angielsku – ważny, ćwiczymy, zdejmuje z nas barierę
– a jak będziemy w grupach międzynarodowych to oczywiście będzie po angielsku
– a uczymy się po to by brać udział w najfajniejszych projektach – autonomiczne auta, drony, sklepy samoobsługowe
– żeby brać udział w najbardziej ambitnych projektach
– dlatego dobrze od razu wejść w taką platformę
https://youtu.be/fk04apHH4SQ?t=16
Grupa Olimpiada na facebooku:
https://youtu.be/fk04apHH4SQ?t=303
– definiowanie zmiennej int, podstawienie wartości
https://youtu.be/fk04apHH4SQ?t=372
https://youtu.be/fk04apHH4SQ?t=578
Przekraczamy zakres int:
– cały czas ++liczba
– int ma ograniczony zakres
– my mamy pamiętać jaki jest zakres – C++ nie da ostrzeżenia
https://youtu.be/fk04apHH4SQ?t=771
– program wypisuje dobrze
https://youtu.be/fk04apHH4SQ?t=934
– 4 fatalnie, jak to, nie powinno tak być, wow!
– radość z błędu
– mamy -4 a powinno być 4 * 10^6
– dodajemy dwa int i przechowujemy w double
– demonstracja koneiczności rzutowania
– dokładne wyjaśnienie rzutowania
– operuje na int a potem zamienia
– rzutujemy (long long)
– uważać na operacje na krótszych typach i podstawienie pod dłuższy
– druga opcja to wszystkie zmienne dać jako long long i nie trzeba rzutowania
https://youtu.be/fk04apHH4SQ?t=1386
– komentarz uczestnika, że rozumie!
– o to nam chodzi
– jak rozumiemy to kwestie techniczne sami dojdziemy – sprawdzimy zakres z,iennej
– cieszę się że wnikasz, że fascynuje Cię informatyka
https://youtu.be/fk04apHH4SQ?t=1856
– Zosia, dziewczyna chce sama zrozumieć, dojść
– podchwytliwe, pułapka
– nie było na zajęciach
– nieważne czy ktoś wpadł czy nie
– chodziło o Wasze myślenie
– mogę zastawiać pułapki!
– chodzi by samemu pomyśleć!
– Dziękuję Zosiu!
https://youtu.be/fk04apHH4SQ?t=1959Zadanie pierwsza – wystarcza sprawdzać dzielniki do pierwiastka
– błyskawiczna podpowiedź 30 s
https://youtu.be/fk04apHH4SQ?t=1913
– suma liczb od 9000 do 9010
– ideone, cały kod
https://youtu.be/fk04apHH4SQ?t=2081Eksperymentujmy
– jeśli nie do końca rozumiemy
– wypiszmy wartości pośrednie
– pokazanie jak
– wtedy się uczymy
Kolejne pytania – kahoot
– ile razy wykona się pętla
– który element w pętli jest raz, który jest warunkiem, poleceniem po, ciałem pętli
https://youtu.be/fk04apHH4SQ?t=2185
https://youtu.be/fk04apHH4SQ?t=2587Przekroczenie int, suma liczb od 2mld do 2mld10 – kahoot:
https://youtu.be/fk04apHH4SQ?t=2654
https://youtu.be/fk04apHH4SQ?t=3156
Kod / linki:
https://oki.org.pl/team
https://youtu.be/fk04apHH4SQ?t=3423Pomyśl nad architekturą rozwiązania
– najpierw pomyśleć nad układem, strukturą
– nie piszemy od razu tylko się zastanowić nad układem, strukturą
– musimy przejść po zapytaniach
– druga pętla sprawdza jedynki
– mamy 2 pętle
https://youtu.be/fk04apHH4SQ?t=3561
– wejście i omówienie ideone
https://youtu.be/fk04apHH4SQ?t=4070Piszemy zmienne po angielsku:
– CV
– grupy międzynarodowe
https://youtu.be/fk04apHH4SQ?t=4109
https://youtu.be/fk04apHH4SQ?t=4321
– pętla po problemach
– dla danego problemu wczytijemy 3 liczby
https://youtu.be/fk04apHH4SQ?t=4965
https://youtu.be/fk04apHH4SQ?t=5649
https://youtu.be/fk04apHH4SQ?t=6080
https://youtu.be/fk04apHH4SQ?t=6140
Czy jest coś większe niż long double?
https://youtu.be/AFjt13eIZl8?t=1141
Int 128 bitów:
– nie gwarantowany na Olimpiadzie
https://youtu.be/AFjt13eIZl8?t=1165
Która biblioteka jest potrzebna na Olimpiadzie?
https://youtu.be/AFjt13eIZl8?t=1345
Jaki maksymalnie możemy użyć setprecision w long double
– realnie do 7
– o jedną więcej niż każą
https://youtu.be/AFjt13eIZl8?t=1507
Jak odczarować maski bitowe?
Maski bitowe!
https://youtu.be/AFjt13eIZl8?t=1872
Kiedy 2^40 nie jest 2^40?
https://youtu.be/AFjt13eIZl8?t=3013
Bitset:
https://youtu.be/AFjt13eIZl8?t=3329
Hashe – Zadanie Korale – Olimpiada Informatyczna
Link do zajęć:
– zadania z Olimpiady Informatycznej
– nawet w SP
– test OIJ – do zdobycia 14/ punktów
https://youtu.be/RScESwzLWIE?t=156
Jak przejechać 100 kilometrów dziennie?
– pierwszy raz nie ma szans!
– 20 km za miesiąc 40km
– aż się uda
– i wtedy te 10 km będzie spacerek
https://youtu.be/RScESwzLWIE?t=244
Podsumowanie hashowania:
https://youtu.be/RScESwzLWIE?t=348
Omówienie Zadania Korale:
https://youtu.be/RScESwzLWIE?t=1065
https://youtu.be/RScESwzLWIE?t=84
https://youtu.be/RScESwzLWIE?t=4693
Binary Search w akcji – szukamy pierwiastka
Link do zajęć: https://youtu.be/pzPACXcSuss?t=5
Witam w deszczowy wieczór!
– wyszukiwarka
– przydzielanie zasobów
– będziemy naszym podstawowym narzędziem
https://youtu.be/pzPACXcSuss?t=61
– Olimpiada Informatyczna
– OIJ
– w OI-u bierzemy udział bez względu gdzie jesteśmy
– liczy się to co odkryjemy
– nie chodzi o punkty
– już samo zrozumienie zadania to sukces
– dostajemy kolejne narzędzia do optymalizacji procesów
– weźmy udział w teście
To droga – chcemy w przyszłości
– optymalizować drogi ciężarówek
– znaleźć materiał dający energię
– w jakiej kolejności czynności przy budowie statku
– na szkole średniej ta przygoda się skończy
– będziemy w R&D gigantycznych firm Dell, HP
– powstają też w Polsce
– po się tu przygotowujemy
– po to piszemy Olimpiadę
– nieważne czy zdobędziemy 0 czy 300 punktów
– ważne to czego się nauczymy
https://youtu.be/pzPACXcSuss?t=192
– przyjemne w rozwiązywaniu
– warto zrobić te zadania
– nie porównujemy się do innych, porównujemy się do siebie
https://youtu.be/pzPACXcSuss?t=399
– gdzie są?
– przeczytajmy, pomyślmy przed snem
– Maciek myśli wszędzie, na lekcji, przed zaśnięciem
https://youtu.be/pzPACXcSuss?t=421
– test
– zadania
– niezależne rzeczy
https://youtu.be/pzPACXcSuss?t=561
https://youtu.be/pzPACXcSuss?t=1755Challenge #5:
https://youtu.be/pzPACXcSuss?t=6345
Gąsienica
– warto się poczołgać jak gąsienica
– jej ruch jest bardzo sprytny
– inspirujący dla algorytmiki
https://youtu.be/pzPACXcSuss?t=6424
Pętla – dyskusja, quizy
2022.10.17
Link do zajęć: https://youtu.be/rZb8EsSnHU8?t=3
Nikt nie lubi nudy!
– nikt z nas nie lubi nudy, powtarzać się
– nie lubimy wracać się
– oddzielenie grochu od maku – masakra
– na szczęście są komputery
– dla nich nie jest problemem by powtarzać w nieskończoność to samo.
– wyszukiwać, znajdować
– bardzo to lubią!
https://youtu.be/rZb8EsSnHU8?t=3
Przykłady gdzie trzeba powtarzać:
– średnia z ocen, dodanie po kolei, podzielenie
– potem powtórzyć policzenie ocen dla wszystkich przedmiotów
– kolejna pętla to wszystkie osoby w szkole
– liczenie wypłaty, podatku, powtarza i liczy
– wypłata w bankomacie, 100 zł w 20 – w pętli policzyć pieniądze
– puszczenie w pętli muzyki – program to powtarza
– wszędzie jest powtarzanie
– nie jest to dla niego żaden kłopot
https://youtu.be/rZb8EsSnHU8?t=49
Kto z nas lubi odkurzać?
– komputera który steruje odkurzaczem nie ma problemu by potarzać raz przy razie
– nikt z nas nie lubi!
– dla komputera nie ma problemu
– roboty samobieżne to nic innego jak programowanie!
– pomalować płot sztacheta prz sztachecie – może ktoś z nas wymyśli takie urządzenie!
– czujnik ruchu na włamywacza, w pętli wysyła fale i sprawdza czy wróciła odpowiednia
– wszędzie jest powtarzanie, wszędzie komputery powtarzają!
Samobieżny wózek w magazynie
– czyste powtarzanie
– powtarza – jedź dopóki nie przekroczysz linii, nie zobaczysz czegoś z boku
– nie silnik zrobi jeszcze jeden po rok bo nie ma informacji z czujnika że inaczej
– cały czas ruszaj kołami aż nie otrzymasz sygnału że koniec
– programowanie takich robotów to fascynująca sprawa
– tego typu projekty to jest coś co jest przed nami!
– małym kroczkiem do przodu
– możemy marzyć i być w takich projektach!
– które konstruują takie roboty, dodają nowe funkcjonalności
– to jest przed nami – Ci którzy je projektują też byli w naszym wieku i też zaczynali!
– robili krok po kroku i dązyli do marzeń
https://youtu.be/rZb8EsSnHU8?t=254
Opis Challenge #5:
https://youtu.be/rZb8EsSnHU8?t=435
Zajęcia #6 – pętla w pętli!
https://youtu.be/rZb8EsSnHU8?t=492
Quiz warunek
– opis dokładnego programu
– warunek wpływa tylko na kolejną instrukcję
https://youtu.be/rZb8EsSnHU8?t=560
Czysty kod!
Czy formatowanie ma wpływ na kod?
– dlaczego formatujemy wcięciami
– nie dla komputera
– formatujemy dla nas – clean code
https://youtu.be/rZb8EsSnHU8?t=791
Czy miesiąc po napisaniu kodu dalej wiesz o co w nim chodzi?
– dyskusja z chatem
– trochę fun
https://youtu.be/rZb8EsSnHU8?t=1055
Deklaracja zmiennej char
– zmienne pudełka – typ
https://youtu.be/rZb8EsSnHU8?t=1109
Jak powinniśmy nazywać zmienne?
– zmienne powinny oznaczać to czym ona jest
– nigdy nie nazywajmy zmiennych k, k1
– nie jest to wydatek czasowy a nawet oszczędność czasu
https://youtu.be/rZb8EsSnHU8?t=1180
Zgodnie z clean code nie powinno być wymagane komentarzy
https://youtu.be/rZb8EsSnHU8?t=1321
Obrzydliwy błąd – pojedyncze równa się w warunku
– dokładne wyjaśnienie
– wyjaśnienie, że warunek potrzebuje 0 lub coś więcej niż zero
https://youtu.be/rZb8EsSnHU8?t=1355
++i – wytłumaczenie
inkrement w C++
https://youtu.be/rZb8EsSnHU8?t=1627
C++ ++i – mały fun
– także wytłumaczenie ++i
https://youtu.be/rZb8EsSnHU8?t=1734
Pętla – początek – wejście do ideone
– omówienie przykładowego kodu
https://youtu.be/rZb8EsSnHU8?t=1886
Pętla czyli męczy mnie powtarzanie!
Pętla – chcemy żeby komputer powtarzał
– komputer ma wypisać liczby od 60 do 70
– ja zmęczyłem się jak wypisywałem te liczby
– for czyli pętla
– zmienna i będzie się zmieniać
– w pętli mamy 3 rzeczy – początek, do kiedy, co ma się zmieniać po każdej pętli oraz sama pętla – dokładne omówienie
https://youtu.be/rZb8EsSnHU8?t=1946
Symulacja ręcznie działania pętli, zmiany wartości zmiennych:
https://youtu.be/rZb8EsSnHU8?t=2475
Zmiana wartości początkowych i symulacja
https://youtu.be/rZb8EsSnHU8?t=2803
Co gdy zmieni się warunek pętli?
https://youtu.be/rZb8EsSnHU8?t=2921
Co gdy zmiana inkrementu?
– na i+2 – co 2 i
– dokładna symulacja
https://youtu.be/rZb8EsSnHU8?t=3014
++i ++i zamiast i=i+2
https://youtu.be/rZb8EsSnHU8?t=3214
POKAZAĆ – Wnikajmy!
– podziękowanie dla Janka za wnikanie
– w ten sposób się uczymy!
– eksperymentujmy! – jak nie wiemy!
-piszcie na maila
https://youtu.be/rZb8EsSnHU8?t=3259
– symulacja że i jest poza pętlą 70 a w pętli do 68
https://youtu.be/rZb8EsSnHU8?t=3273
https://youtu.be/rZb8EsSnHU8?t=3613
– pięknie nam wypisał 100 liczb!
– zgodzicie się ze to jest bardzo fajne
– dokładne wyjaśnienie reszty
https://youtu.be/rZb8EsSnHU8?t=3961
https://youtu.be/rZb8EsSnHU8?t=4270
– dzielimy przez wszystko od 2 do n-1
Zadania Aquapark:
– metryka Manhattan
https://youtu.be/pz9AIfZ81H8?t=1166
Algorytm Dijkstry:
https://youtu.be/pz9AIfZ81H8?t=2273
Zadanie Teleporty – grafy warstwowe:
https://youtu.be/pz9AIfZ81H8?t=2833
Do czego wykorzystuje się grafy warstwowe?
https://youtu.be/pz9AIfZ81H8?t=3312
W którym momencie pisać podzadania na II etapie zamiast wzorcówki?
– podzadania mogą nam pomóc – mogą dać wskazówki
https://youtu.be/pz9AIfZ81H8?t=4156
Siła konsekwencji:
– czy dokończysz projekt który nie ma sensu?
https://youtu.be/pz9AIfZ81H8?t=4219
Złożoność pamięciowa mapy:
– jest pamięciożerna
https://youtu.be/pz9AIfZ81H8?t=4362
Hashe – Zadanie Repeating Substring – paradoks urodzin
Link do zajęć: https://youtu.be/dfpERcmogNM?t=18
https://youtu.be/dfpERcmogNM?t=18
– weź udział
– nic nie kosztuje
– wstęp na studia
– początek pięknej przygody?
https://youtu.be/dfpERcmogNM?t=142
https://youtu.be/dfpERcmogNM?t=297
– 3-4 zadania tygodniowo, parę miesięcy
https://youtu.be/dfpERcmogNM?t=540
– nie tylko hash wystarczy
– prawdopodobieństwo złamania hasha
https://youtu.be/dfpERcmogNM?t=1369
https://youtu.be/dfpERcmogNM?t=1504
https://youtu.be/dfpERcmogNM?t=1512
https://youtu.be/dfpERcmogNM?t=1543
https://youtu.be/dfpERcmogNM?t=1937
https://youtu.be/dfpERcmogNM?t=1937
Czy powtarzanie się podsłowa jest monotoniczne? -> można użyć Binary Search
https://youtu.be/dfpERcmogNM?t=2280
https://youtu.be/dfpERcmogNM?t=2699
– będziemy trzymać hashe na strukturze która powie nam czy hash się powtórzył
– jeśli tak to podsłowo się powtórzyło
– map lub set
https://youtu.be/dfpERcmogNM?t=2931
– nie, złożoność nam się wysypie
– każde porównanie to porównanie wszystkich znaków
– hashe porównują liczby
– hashe są szybkie
– hashe zbijają złożoność!
https://youtu.be/dfpERcmogNM?t=3067
– czy wśród osób na czacie są 2 które mają ten sam dzień i miesiąc urodzin?
https://youtu.be/dfpERcmogNM?t=3571
– jak to rozwiązać, zwiększyć liczbę hasy z 10^9 do 19^18
https://youtu.be/dfpERcmogNM?t=3930
– nie możemy zmienić modulo do 10^18 – bo mnożenie wyjdzie poza long long
– weźmiemy parę hashy – dwa różne modulo
https://youtu.be/dfpERcmogNM?t=4143
– 50% dla klasy 23 osobowej
– dla klasy 30 osobowej to już około 70%
https://youtu.be/dfpERcmogNM?t=4287
– bo wydaje się, że potrzeba 180 osób by 2 miały ten sam dzień urodzin
– a potrzeba tylko 23 osoby by mieć szansę 50% na urodziny 2 osób tego samego dnia
https://youtu.be/dfpERcmogNM?t=4409
https://youtu.be/dfpERcmogNM?t=4445
– podwójne hashe – zamiast jednej liczby będziemy mieć dwie różne liczby
https://youtu.be/dfpERcmogNM?t=4534
– wymyślona funkcja check
– szukamy ostatniej jedynki – najdłuższe powtarzające się słowo
https://youtu.be/dfpERcmogNM?t=4599
https://youtu.be/dfpERcmogNM?t=4635
– O(n*Log^2)
https://youtu.be/dfpERcmogNM?t=4706
https://youtu.be/dfpERcmogNM?t=4948
https://youtu.be/dfpERcmogNM?t=5025
https://youtu.be/dfpERcmogNM?t=5509
– mamy praktycznie pewność, ale nie jest to 100%
https://youtu.be/dfpERcmogNM?t=5611
– poznajmy hashe!
– zadania tekstowe to często hashe!
https://youtu.be/dfpERcmogNM?t=5659
– jest binary search, hashe
– ciężkie zadania – da statyfkację!
https://youtu.be/dfpERcmogNM?t=6822
– może będzie można wykorzystać
– algorytm bardziej pod OI-a
https://youtu.be/dfpERcmogNM?t=5756
– wytłumaczenie paradoksu urodzin
https://youtu.be/dfpERcmogNM?t=6266
https://youtu.be/dfpERcmogNM?t=5854
Olimpiada Poziom II – zajęcia #5:
https://youtu.be/dfpERcmogNM?t=100
Binary Search
Link do zajęć: https://youtu.be/81P5ZalDPoc?t=10
– poznamy jeden z najbardziej niesamowitych pomysłów!
– pomysł na który każdy z nas spokojnie by wpadł
– przyspiesza rozwiązanie tysięcy problemów
– olimpijskich ale nie tylko
https://youtu.be/81P5ZalDPoc?t=10
Mamy milion pudełek – nie zajrzymy do 500 tysięcy z nich a będziemy wiedzieć, że tam nie ma tego czego szukamy!
Jak nie zajrzeć, a wiedzieć!
Pomysł jest najważniejszy!
– to pomoże komputerowi
– komputer zamiast przeszukiwać miliardy miliardów lat znajdzie to czego szuma w ułamku sekundy
– pomysł jest najważniejszy!
– potęga siłą
– patrzmy dookoła – jak rozwiązujemy olimpiadę ale także w życiu, dookoła
– olimpiada to wymyślanie,
https://youtu.be/81P5ZalDPoc?t=39
– zastanawianie się czy komputer musi to wszystko liczyć?
– na Olimpiadzie czy w życiu
– potem usprawniamy
– zapisujemy obserwacje
– nawet banalne
– bo z nich może wynikać to że komputer przyspieszy z milionów lat do sekund
– czy wszystko trzeba policzyć
– przewodnik po Rzymie też miał wiele ulepszeń, poprawek
https://youtu.be/81P5ZalDPoc?t=89To czego się uczymy to co poznajemy to wstęp do Resaerch and Development
– Ci którzy są starsi od nas już tam często są
– wykorzystamy te same mechanizmy
– chodzi rozwiązanie problemu
– w życiu nie będziemy wiedzieć czy to już jest najlepsze
– w życiu zawsze można być bardziej kreatywnym
https://youtu.be/81P5ZalDPoc?t=148
– oczywiście
– przykładem jest Szymon Hajderek nasz prowadzący
– można da się
– trzeba wejść w problemy algorytmiczne
– wykształcić nasze pomysły – ona są najważniejsze – częściej niż znane algorytmy
– wyjść od rozwiązania bazowego i je poprawiać
https://youtu.be/81P5ZalDPoc?t=790
– więcej kodować
– praktyka czyni mistrza
– poszukiwać w necie, odkrywamy
https://youtu.be/81P5ZalDPoc?t=840
– nasz temat
– najczęstszy algorytm, najważniejsza technika
https://youtu.be/81P5ZalDPoc?t=950
– czy wartość występuje w ciągu?
– znajdź indeks o wartości
– dla danego zapytania sprawdzamy po kolei z wartościami w tablicy
https://youtu.be/81P5ZalDPoc?t=1538
https://youtu.be/81P5ZalDPoc?t=1786
https://youtu.be/81P5ZalDPoc?t=2056
– zgadywanie w połowie
– odrzucamy połowę nie sprawdzając
https://youtu.be/81P5ZalDPoc?t=2155
https://youtu.be/81P5ZalDPoc?t=2333
– pół miliarda nie sprawdzamy!
– otwieramy słownik w połowie i tak dalej…
https://youtu.be/81P5ZalDPoc?t=2606
– warto zrozumieć
https://youtu.be/81P5ZalDPoc?t=2769
https://youtu.be/81P5ZalDPoc?t=2798
https://youtu.be/81P5ZalDPoc?t=3151
Zamiast miliona operacji wykonujemy 17 operacji!
– z miliardów lat zmniejszamy liczbę operacji do ułamka sekundy!
https://youtu.be/81P5ZalDPoc?t=3304
– coś najmniejszego / coś największego
– wyszukiwanie po wyniku
https://youtu.be/81P5ZalDPoc?t=3505
https://youtu.be/81P5ZalDPoc?t=3724
– być zalogowanym na Codeforces
– zapisać się do kursu edukacyjnego
https://youtu.be/81P5ZalDPoc?t=3883
– odrzucenie polega na przesunięciu początku lub końca
https://youtu.be/81P5ZalDPoc?t=4460
– brawa
– cv
– 100 z codeforces’ów
– możemy pokazać znamy binary search możemy przyspieszać
– gratulacje dla nas wszystkich
https://youtu.be/81P5ZalDPoc?t=5387
https://youtu.be/81P5ZalDPoc?t=5546
https://youtu.be/81P5ZalDPoc?t=5784
https://youtu.be/81P5ZalDPoc?t=6446
Challenge #4:
https://youtu.be/81P5ZalDPoc?t=6075
https://youtu.be/81P5ZalDPoc?t=6113
Animacja spadającej piłki
2022.10.10
Link do zajęć: https://youtu.be/rN7NFTpGMiI?t=32
– animacja / grafika
– drony tworzące piękne rysunki
– w edukacji – my zrobimy symulację spadającej piłki
– samochody
– sztuczna rzeczywistość, reklamy
– jeśli tylko nas to fascynuje to zapraszam do tej pięknej podróży
– zapraszam do informatyki która jest piękna i potrzebna
– pomaga zrozumieć zjawiska fizyczne
– jak wejść w taką informatykę
– kroczek po kroku, bawić się, challenge
– nadaje sens naszemu życiu, to co robimy pomaga, służy innym
https://youtu.be/m_sSmhvS1RQ?t=14
https://youtu.be/m_sSmhvS1RQ?t=1048
https://youtu.be/m_sSmhvS1RQ?t=1070Rozszerzenia plików – robimy by były widoczne:
https://youtu.be/m_sSmhvS1RQ?t=1237
– otwierany domyślnie przez przeglądarkę
https://youtu.be/m_sSmhvS1RQ?t=1347
– w przeglądarce
– w edytorze tekstowym
https://youtu.be/m_sSmhvS1RQ?t=1537
https://youtu.be/m_sSmhvS1RQ?t=1668
– Pokazuj rozszerzenia polików
– Tworzymy index.hml
– Otwieram ten plik przy pomocy przeglądarki
– Otwieram przy pomocy notatnika
– Tu będziemy pisać kod
– Jak mamy lepszy edytor to w tym edytorze
– Na razie plik jest pusty
https://youtu.be/m_sSmhvS1RQ?t=1821Tworzymy stronę www.
Tekst: Logika zaprowadzi Cię z punktu A do punktu B.
Wyobraźnia zaprowadzi Cię wszędzie.
https://youtu.be/m_sSmhvS1RQ?t=2058
Nasz cytat z zajęć:
Wyobraźnia zaprowadzi Cię wszędzie.
Cytat Einstein – podziękowanie dla Adama
– nie chcemy tekstu w części body
– chcemy płótno / canvas
https://youtu.be/m_sSmhvS1RQ?t=2656
– czy narysował się?
https://youtu.be/m_sSmhvS1RQ?t=2902
– współrzędne planszy
– parametry wypełniania, rysowanie prostokąta
https://youtu.be/m_sSmhvS1RQ?t=2954
– nawet zwykły żółty prostokąt narysowany przez nam może dać nam radość!
– pięknie nam narysował
– 3 rzeczy
– index.html a nie index.txt
– otworzyć w edytorze tekstu / przeglądarce
– wpisać w notatniku tekst strony www
https://youtu.be/m_sSmhvS1RQ?t=3266
https://youtu.be/m_sSmhvS1RQ?t=3573
https://youtu.be/m_sSmhvS1RQ?t=3682
– zmieniamy parametry prostokąta
– wiemy jak działają parametry
– WTEDY OKDRYWAMY!
– jak psujemy to wtedy wiemy jak działa nasza funkcja
https://youtu.be/m_sSmhvS1RQ?t=3735
– w programowaniu fajnie się eksperymentuje, psuje, można wrócić do przedniego kodu!
https://youtu.be/m_sSmhvS1RQ?t=3772
https://youtu.be/m_sSmhvS1RQ?t=3859Na czym polega rysowanie piłki?
Radość czerwonej piłki!
– mocne jest
https://youtu.be/m_sSmhvS1RQ?t=4102
– jest rysowany kilkadziesiąt kilkaset razy na sekundę…
https://youtu.be/m_sSmhvS1RQ?t=4340
– 100 razy na sekundę wywołuj kod Animacja
– nie ma ruchu
https://youtu.be/m_sSmhvS1RQ?t=4464
RADOŚĆ ze spadającej piłki!
– WIELKA RAROŚĆ
– pokazać
– leci, przebija ziemie!
https://youtu.be/m_sSmhvS1RQ?t=4601
– jak znajdować błąd?
https://youtu.be/m_sSmhvS1RQ?t=4856
– następne rysowanie przesunięte o prędkość
– to cała animacja
https://youtu.be/m_sSmhvS1RQ?t=4828
– detekcja kolizji
https://youtu.be/m_sSmhvS1RQ?t=4971WIELKA RADOŚC – POKAZAĆ
– piłka odbija się ale leci w kosmos
– jedzie jedzie
https://youtu.be/m_sSmhvS1RQ?t=5105Challenge #4:
https://youtu.be/m_sSmhvS1RQ?t=7153
Jak znak końca linii w C++?
– ‘\n’ w pojedynczych cudzysłowach by znak nie string
https://youtu.be/LeTSxzf0XuI?t=2015
Szlaczek bez odrywania
Jak narysować szlaczek bez odrywania ręki?
Narysuj szlaczek bez odrywania ręki
Ścieżka Eulera
– każdą krawędzią przejść raz!
https://youtu.be/LeTSxzf0XuI?t=2687
Algorytm Eulera:
https://youtu.be/LeTSxzf0XuI?t=3236
Do czego przydaje się algorytm Eulera?
https://youtu.be/LeTSxzf0XuI?t=4357
Zadanie Plus – minus 1
https://youtu.be/LeTSxzf0XuI?t=4819
Hashe – Zadanie Caps Lock
Link do zajęć: https://youtu.be/WZojS2DHEK0?t=21
Pomysł który ma nazwę!
– hashe
– użyliśmy hashowania logując się do librusa, banku, dowolnego serwisu
https://youtu.be/WZojS2DHEK0?t=41
Co to jest hashowanie?
– logowanie się do youtube’a
– hasło zamieniamy na liczbę 16-tkową i to wysyłamy
– nie można odwrócić tego procesu
– łatwo porównywać
– pokazanie hash-a od każdego słowa
– SHA-1 to około 20 bajtów
Przypisanie napisowi liczby
– sprawdzenie czy plik nie jest zmieniony w trakcie pobierania
– różne hashe – treść pliku została zmieniona
– pokazanie hasha dla pliku w internecie
https://youtu.be/WZojS2DHEK0?t=447
– chcemy szybko porównywać
– hash do miliarda ale tekstów jest dużo więcej
– hashe różnych słów mogą się powtózyć
– to są kolizje
– tego nie chcemy
https://youtu.be/WZojS2DHEK0?t=640
– bezpieczeństwo – trudno odtworzyć hasło z hasha
– szybkie porównywanie
– na zajęciach szybkie porównywanie
https://youtu.be/WZojS2DHEK0?t=757
https://youtu.be/WZojS2DHEK0?t=1623
Kod / linki:
https://oki.org.pl/caps-lock/
Hashujemy ręcznie!
Co to jest hashowanie?
– przypisywanie napisom liczb..
– zamieniamy literki na ASCII
https://youtu.be/WZojS2DHEK0?t=2202Challenge #3:
https://youtu.be/WZojS2DHEK0?t=6998
Jak wykorzystać Sumy prefiksowe – zadanie Dziwne Cząsteczki
Link do zajęć: https://youtu.be/jsaVtx5WQv0?t=14
Dlaczego odkrywamy?
– by gigancie tego świata – facebooki, google chcieli nas do rozwiązania problemów
– przygotowujemy się do olimpiady informatycznej
– komputery wolne
– chcemy by komputer znalazł lek, ekologiczny plastik, najlepszą strategię inwestycyjną
https://youtu.be/jsaVtx5WQv0?t=14
Olimpiada to takie samo – prawdziwe rozwiązywanie problemów!
– Komputery mogą znaleźć lek ale za miliardy miliardów lat
– to nas nie interesuje
– chcemy by zrobiły to szybciej
– Tak jak na Olimpiadzie!
– We wszystkich zadaniach najpierw brut prosty
– nie wyranba się w 1s olimpiadowej czyli od miliona do 100 milionów operacji
– staramy się przyspieszać
– i dokładnie tak chcemy robić w przyszłości
– jeżeli znalezienie trasy dla 10 tysięcy ciężarówek zajmuje 50h a my to skrócimy do 1h to będzie fantastycznie!
– potem może do 1 minuty
– po to tak naprawdę się spotykamy!
– by te same problemy które rozwiązujemy na Olimpiadzie byśmy rozwiązywali w dorosłym życiu
– to będa takie same problemy
– też będziemy chcieli polepszyć pomóc temu komputerowi by on pomógł nam wszystkim i rozwiązał ten problem szybciej
– my pomożemy jemu by nie rozpatrywał wszystkich możliwości wszystkich przypadków
– a on będzie miał nuż tyle mocy by ten problem rozwiązać
– w odpowiednim czasie
– to piękna perspektywa, perspektywa w której my temu światu pomagamy
– jest radość ludzi, że jest lek, chora osoba, chore dziecko, może wyzdrowieć, jest radość ludzi, matki, ojca
– jest nasza gigantyczna radość
– że wymyśliliśmy, nie udało się
– sami w grupie w zespole
– korzystając z a lgorytmów które poznajemy
– rozwiązaliśmy problem – niesamowita satysfakcja
https://youtu.be/jsaVtx5WQv0?t=42
– to pierwsze narzędzie, wiertarka, które poznaliśmy
– żeby zmusić komputer żeby robił coś szybko
– żeby rozwiązał problem w czasie który nas satysfakcjonuje! – który mamy
– na Olimpiadzie to jest 1 sekunda, w życiu może minuta może godzina może rok
https://youtu.be/jsaVtx5WQv0?t=210
– realnie wykorzystywane
– pamięć współdzielona
– w niektórych algorytmach sortowania
– w tworzeniu rankingu
– jak będziemy pracować nad systemami operacyjnymi, aplikacjami bankowymi, obsługa pacjenta
– wszędzie będziemy w stanie to wykorzystać!
https://youtu.be/jsaVtx5WQv0?t=245
Przed nami piękna przyszłość!
– praca w firmach które mają Research and Development – Facebook / Google
– by wyszukiwarka działała szybko
– by proponowane posty były jak najlepsze w jak najkrótszym czasie na facebooku
– wszędzia tam potrzeba szybkich algorytmó, pomysłów
– potrzeba nas!
– po to tu jesteśmy by być w przyszłości w ośrodkach Research and Development, ośrodkach naukowych
– może na uniwersytetach?
– tam będziemy te problemy rozwiązywać
– dla takiej przyszłości
– życie ma być przygodą
– różnica jest taka że w realnych problemach nie będziemy wiedzieć jakie jest najlepsze rozwiązanie
– na Olimpiadzie wiemy że jakieś jest i musimy je zgadnąć
– ale problemy będą te same
https://youtu.be/jsaVtx5WQv0?t=285
– są w w Anglii / USA
– Powstaje w Łodzi dla jednego z gigantów
– Ponad 300 osób będzie zatrudnionych
– przyszłość jest przed nami!
https://youtu.be/jsaVtx5WQv0?t=361
– jeśli będzie w stanie je zrobić to jesteście mocni!
– jedno z najtrudniejszych na finale OIJ lub I / II etap OI-a
– bardzo trudne zadanie
– możemy wieloma metodami, my zrobimy to sumami prefiksowymi
– jest ciężkie – prośba o wysiłek
– Jak ogarniecie – wielki krok do przodu
– jeśli po zajęciach sami zrobicie to danie to moje ukłony!
https://youtu.be/jsaVtx5WQv0?t=968
https://youtu.be/jsaVtx5WQv0?t=1038
https://youtu.be/jsaVtx5WQv0?t=1206
Kod: https://oki.org.pl/dziwne-czasteczki/Przykład tłumaczący zadanie
https://youtu.be/jsaVtx5WQv0?t=1393Rozwiązanie brutalne:
https://youtu.be/jsaVtx5WQv0?t=1730
https://youtu.be/jsaVtx5WQv0?t=2450
Wyjaśnienie 2:
https://youtu.be/jsaVtx5WQv0?t=4085
https://youtu.be/jsaVtx5WQv0?t=2892
https://youtu.be/jsaVtx5WQv0?t=3598Ile jest liczb które oddziałują o więcej niż k:
https://youtu.be/jsaVtx5WQv0?t=3723Jak liczymy ile jest liczb dalej niż k od danej liczny?
https://youtu.be/jsaVtx5WQv0?t=3979
https://youtu.be/jsaVtx5WQv0?t=4171
https://youtu.be/jsaVtx5WQv0?t=5018
https://youtu.be/jsaVtx5WQv0?t=5632
https://youtu.be/jsaVtx5WQv0?t=6990
https://youtu.be/jsaVtx5WQv0?t=8042Złożoność naszego rozwiązania:
– sortowanie w c++ jest szybkie
https://youtu.be/jsaVtx5WQv0?t=8133
https://youtu.be/jsaVtx5WQv0?t=8341
https://youtu.be/jsaVtx5WQv0?t=9190
Uczymy komputer decyzji
2022.10.03
Link do zajęć: https://youtu.be/rN7NFTpGMiI?t=32
– uczymy komputer
– bo sami je podejmujemy
– ubieranie (pogoda, gdzie), co zjeść (pora dnia, na co mamy ochotę), gdzie zamieszkać (praca, szkoła, jak się nam podoba)
– my jako ludzie podejmujemy dużo decyzji
– ale komputer też musi podejmować decyzje
– czy pozwolić wypłacić pieniądze, nawigacja (jaka droga)
– my jako programiści mówimy mu jakie decyzje ma podejmować
– odpowiedzialność, ważna praca informatyka – samochody kierowane na górsikie ścieżki
– warto wnikać, warto być mocnym, nasze programy by nie miały błędów
– gry – czy nie wyszliśmy poza ekran, kolizje, ile żyć
https://youtu.be/lxiIPZvPgKI?t=11
– najważniejszy element to challenge
– żeby nauczyć się grać w piłkę trzeba w nią grać
– trzeba trenować zwody
– to co nauczyliśmy się trzeba sprawdzić w prawdziwym meczu – u nas challenge!
– to zadanie które sami zrobimy
– dziękuję za każde zadanie
– za każdą minutę nad pisaniem, debugowaniem, myśleniem
– dostaję maile zę nie działają programy
– duży nacisk kładziemy na to by wiedzieć co do nas mówimy kompilator, jak odczytać gdzie jest błąd
– jak nam pomaga znaleźć błąd
– piszmy programy
– po 2-3 dniach dostaniemy mocy!
– liczy się zrobimy samemu
– zachęcamy do quizów
– to daje nam power by się rozwijać, ułożyć, przemyśleć, każdego dnia mocniejsi
– liczy się to co sami zrobimy
https://youtu.be/lxiIPZvPgKI?t=1403
– na górze strony http://oki.org.pl/ jest link do zajęć, challenge
– są quizy
– Zajęcia -> Challenge -> Lista zadań
– to najważniejsze – dziękuję
– to jest ten nasz wysiłek
– to nasz krok w podróży 1000 mil
– by tworzyć gry, aplikacje bankowe, nawigacje
– najważniejsza sprawa
– w ten sposób sprawiacie mi radość, rozwijacie się, każdego dnia mocniejsi
– brak przekierowania i cudzysłowu
– dokładny opis programu
– zmienne, wejście, wyjście – dokładny opis
https://youtu.be/lxiIPZvPgKI?t=774
https://youtu.be/lxiIPZvPgKI?t=991
– zapamiętywanie w zmiennej
– wprowadzanie danych z klawiatury w ideone
https://youtu.be/lxiIPZvPgKI?t=1580
– uruchamiamy ideone
– omawiamy kod początkowy
– wypisujemy na banerze na autostradzie tekst ostrzegający przed ślizgą nawierzchnią
https://youtu.be/lxiIPZvPgKI?t=1889
Jakie mogą być nazwy zmiennych?
– dowolny ciagly tekst
– nazwy zmiennych powinny mieć nazwę tego oznaczają – nie nazywajmy ich a lub b
https://youtu.be/lxiIPZvPgKI?t=2039Początek omówienia warunku
– baner na autostradzie
– ostrzeżenie o ślizgo tylko gdy odczyt temperatury pokazuje 4 lub mniej
https://youtu.be/lxiIPZvPgKI?t=2194Po warunki if w nawiasach nie dajemy średnika:
https://youtu.be/lxiIPZvPgKI?t=2435
– bo ta komenda nie wykona się zawsze a tylko wtedy gdy warunek prawdziwy
– zasad czystego kod
– ktoś kto będzie czytał ten kod będzie mógł go łątwo poprawić
Chcemy wykonać 2 komendy gdy warune spełniony
– warunek tyczy się tylko kolejnej instrukcji
– klamra
https://youtu.be/lxiIPZvPgKI?t=2694
– Samo mięso
– klamra to jedna instrukcja z kilku mniejszych
https://youtu.be/lxiIPZvPgKI?t=2923Jeden z najpiękniejszych błędów!
– średnik od razu po if!
– występuje wszędzie – w zawodowych programach
– u nas jest najczęściej
– powoduje 6 czy 8 godzin debugowania
https://youtu.be/lxiIPZvPgKI?t=3185
Typ char
– pamięć przypomnienie int
– pamięć na char / charakter
– przechowujemy pojedyncze znaki
– pora roku – z – zima
– wypisz wartość zmiennej
https://youtu.be/lxiIPZvPgKI?t=3432
Możemy mieć różne typu zmiennych:
– int, char
– dwa różne pudełka
https://youtu.be/lxiIPZvPgKI?t=3657
https://youtu.be/lxiIPZvPgKI?t=3688
– do char podstawiony znak w podwójmy cudzysłowuw pojedynczym cudzysłowie
https://youtu.be/lxiIPZvPgKI?t=3731
– pokazanie błędu w kompilatorze
– oszukaliśmy C++
– jeżeli jest jesień i temperatura spadła poniżej 4 stopni to zmień opony na zimowe
– podwójny ampercent, klucz wiolinowy
– omówienie warunku
– and / warunek and – obydwa muszą być prawdziwe
– sprawdzenie gdy jeden z warunków nie jest prawdziwy
– żaden nie jest prawdziwy
– kiedy baner ze zmianą opon?
– pora roku jesień lub zima
– wystarczy ze jeden warunek jest prawidłowy i wypisze się baner
https://youtu.be/lxiIPZvPgKI?t=4280
Czym różni się or od and
– && od ||
– obydwa spełnione vs chociaż jeden
https://youtu.be/lxiIPZvPgKI?t=4444
Znaki w warunku muszą być podwójne
– pojedyncze to operacje bitowe
https://youtu.be/lxiIPZvPgKI?t=4615
Jak zajęcia w tym roku?
– na przemian rozmowa / odkrywanie vs kojene zajęcia i zadanie
https://youtu.be/lxiIPZvPgKI?t=4598
Gdzie wszystkie informacje dotyczące zajęć Programowanie OD PODSTAW
https://youtu.be/lxiIPZvPgKI?t=4661
Quiz – warunek przygotowanie do zajęć!
– jeśli w weekend będzie padać to… w przeciwnym wypadku ….
– trzeba było rozwinąć
– nasze fantastyczne odpowiedzi
– zawsze wypracowanie, rolki, programowanie, spał, grzyby, rolki, na dwór, pies spacer ja też, challenge, piłka nożna, moje dzieci też
https://youtu.be/lxiIPZvPgKI?t=4914
Piosenka Ciągle pada
– jeśli w weekend będzie padać to Zosia pójdzie na lody
– może nawet puścimy sobie tą piosenkę
– zrobić quiz z warunkiem i tą piosenką w kolejnym roku!!
https://youtu.be/lxiIPZvPgKI?t=5076
Jak dodać wynik naszego challenge do rankingu?
– wchodzimy na stronę
– zakładamy konto
– logujemy
– wybieramy challenge / zadanie
– deklarujemy punkty, screen, wysłać plik cpp zkodem
– klikamy dodaj rozwiązanie
https://youtu.be/lxiIPZvPgKI?t=5294
Gdzie znajdziemy nasz challenge?
– instrukcja jak dodawać zadania do rankingu
https://youtu.be/lxiIPZvPgKI?t=5362
Obrzydliwa sprawa!
– uwaga na pojedyncze równa się w warunku!
https://youtu.be/lxiIPZvPgKI?t=6555
Zapowiedź OKI #4
– Dzisiejsze zajęcia wstępem do zajęć za tydzień – animacji
– ćwiczymy decyzje
– za tydzień wykorzystamy do animacji piłeczki, czy ma się odbić?
– pierwsza lekcja na drodze do gry!
– pierwszy element na drodze do rozwoju gry
https://youtu.be/lxiIPZvPgKI?t=193
– tworzymy animację od zera
– programowanie to fun
– znamy zmienne, nauczyliśmy komputer decyzji
– bądźmy o 18:00 – razem zrobimy animację
– żeby się działo
– żebyśmy mogli wykorzystać koledze / koleżance
– będzie satysfakcja
– te 3 kroki, challenge zaprocentują
https://youtu.be/lxiIPZvPgKI?t=5160
https://youtu.be/lxiIPZvPgKI?t=5226
Dynamiki:
– na czy polegają
https://youtu.be/dZTcFGECpyY?t=1403
Zadanie EDIST:
– odległość między tekstami
https://youtu.be/dZTcFGECpyY?t=1635
Jak rozwiązujemy zadania Olimpijskie?
– przechodzimy po wszystkich pomysłach
https://youtu.be/dZTcFGECpyY?t=1718
Przykład do zadanie EDIST:
https://youtu.be/dZTcFGECpyY?t=2400
Problem plecakowy:
https://youtu.be/dZTcFGECpyY?t=2736
Traf średnią!
https://youtu.be/dZTcFGECpyY?t=3087
Olimpiada? Wykorzystaj czas do lutego!
Warto brać udział w Olimpiadzie Informatycznej Szkół Średnich!
– pierwszy etap trwa miesiąc
– niepotrzebna jest wielka wiedza by rozwiązać jedno czy kilka częściowo zadań
– jeśli przez ten miesiąc przyciśniesz, pomyślisz – jak najbardziej wziąć udział
– bierz udział w Olimpiadzie!
– fajne doświadczenie
– mamy czas do lutego tak naprawdę!
https://youtu.be/dZTcFGECpyY?t=3930
Pomysł – zadanie Monety
Link do zajęć: https://youtu.be/dpedTv7MvAI?t=35
– student I roku UW Informatyki
– Staszic
– prowadził Olimpiada Informatyczna OD PODSTAW
– hashe są wszędzie, w trakcie streamowania, klucze są wysyłane
– wszystkie serwisy istnieją dzięki nim
https://youtu.be/dpedTv7MvAI?t=282
Kto może pisać Olimpiadę Informatyczną?
Olimpiada Informatyczna:
– kto może pisać
– finalista / laureat wstęp do szkoły średniej
– nie musimy się stresować egzaminami / maturą
– ocena końcowa 6
– 100% na maturze – wystarczy się zapisać
– terminarz olimpiady
https://youtu.be/dpedTv7MvAI?t=405
Jeśli nie spróbujesz….
Jeśli nie weźmiesz – nie masz szans na fajny wynik
– jak weźmiesz udział to masz szansę
– w zależności od nakładu pracy
https://youtu.be/dpedTv7MvAI?t=660
Jak wyglądają omówienia zadań przez Tomka?
– rozmowa
– nie uczymy się algorytmów ale jak myśleć jak wpaść
https://youtu.be/dpedTv7MvAI?t=1725
Omówienie zadania Monety:
https://youtu.be/dpedTv7MvAI?t=1765
Kod / linki:
https://oki.org.pl/monety
– fajna forma rozwijania się
– zobaczymy progres po 2m – 6m
https://youtu.be/dpedTv7MvAI?t=8982
Sumy prefiksowe
Link do zajęć: https://youtu.be/K4QtM9ycYl8?t=23
Dlaczego odkrywamy?
– by gigancie tego świata – facebooki, google chcieli nas do rozwiązania problemó
– nie byśmy my starali się o pracę u nich
– coś co się dzieje
– Mikołaj Bulge jest na stażu u giganta i właśnie to robi
– to jest coś do czego prowadzi nas olimpiada
– to jest ta droga którą zaczynamy
https://youtu.be/K4QtM9ycYl8?t=23Myśl jak można lepiej!
Mogę lepiej!
– mamy ulepszać
– nie przyjmujemy na wiarę
– nie ma prawd objawionych – bo powiedział tak nauczyciel
– czy mogę lepiej
– do pomysłu jak dziś, czy w jednym ruchu mogę dodać milion liczb?
– zobrazowanie kreatywności – zwierzęta, osioł zamiast przeskakiwać zdjął belkę płotu
https://youtu.be/K4QtM9ycYl8?t=81Ruszyła!
Olimpiada nas prowadzi
Rozpoczęłą się Olimpiada Informatyczna Juniorów:
– zaatakujmy zadania
– pomyślmy nad każdym zadaniem
– to pokazuje drogi, rozwija nas
– OI rozpoczyna się 17 października
https://youtu.be/K4QtM9ycYl8?t=162
EJOI – piękny sukces polskiej reprezentacji!
– gratulacje dla Polskiej repreznetacji
– nawet jak nic umiesz – EJOI w Twoim zasięgu
– Maciek Wiśniewski jest tego najlepszym przykładem
– w roku w którym zaczynał był w III etapie!
https://youtu.be/K4QtM9ycYl8?t=1082
https://oki.org.pl/rewolucja-ciapongowa-1/
https://youtu.be/K4QtM9ycYl8?t=2489
https://youtu.be/K4QtM9ycYl8?t=2725
https://youtu.be/K4QtM9ycYl8?t=3661
Dlaczego sumy prefiksowe?
– wykonujemy jedną operację zamiast 1000 czy liniona operacji!
https://youtu.be/K4QtM9ycYl8?t=3869
https://youtu.be/K4QtM9ycYl8?t=6356
Zajęcia numer #3 Olimpiada OD PODSTAW:
https://youtu.be/K4QtM9ycYl8?t=6424
Zmienne, wejście – program potęga
2022.09.19
Link do zajęć: https://youtu.be/rN7NFTpGMiI?t=32
Motoryzacja i informatyka:
– pierwszy krok w podróży 1000 mil
– konstruowanie samochodów – jedna z możliwości
– sprawdzamy, symulujemy wchodzenie w zakręty, bezpieczeństwo
– przed nami piękna przygoda
– algorytmika, renderowanie
– grafika, geometria analityczna – to ona tak naprawdę się tam dzieje
– też możemy tworzyć takie programy
– jednym z designerów jest Polak
https://youtu.be/vkLBq7S2yC8?t=11Po co to wszystko?
Dlaczego/ Po co się spotykamy?
Polska źródłem pomysłów!
– żebyśmy byli architektami
– po to się uczymy
– niekoniecznie w przypadku samochodów
– Windows, tłumaczenie tekstów
– ktoś to musi wymyśleć
– po to się tu spotykamy
https://youtu.be/vkLBq7S2yC8?t=196
– kluczem jest Olimpiada
– rozpoczęła się Olimpiada Informatyczna Juniorów
– zaczynamy, może nam to sprawi trochę problemów
– 17 października Olimpiada Licealistów
– idziemy w stronę konstruowania
– wtorek, środa, czwartek idziemy w stronę wymyślania
https://youtu.be/vkLBq7S2yC8?t=252
Jak zmieniać zmienne:
https://youtu.be/vkLBq7S2yC8?t=1429
https://youtu.be/vkLBq7S2yC8?t=1652
https://youtu.be/vkLBq7S2yC8?t=3117
Omówienie zadania Potęgi:
https://youtu.be/vkLBq7S2yC8?t=4384
Kod / linki:
https://oki.org.pl/potegi/
Challenge numer 2!
https://youtu.be/vkLBq7S2yC8?t=6248
Programowanie od PODSTAW #3:
– komputer podejmuje decyzje!
– moc, zaawansowana informatyka
https://youtu.be/vkLBq7S2yC8?t=6286
Olimpijska droga – rozmowa z Tomkiem Kwiatkowski – prowadzący Olimpiada POZIOM II
Kim jest Tomek Kwiatkowski?
– rok temu prowadził Olimpiada OD PODSTAW
– student I roku UW Informatyki
– Uczeń Staszica, klasa matematyczno informatyczna
https://youtu.be/gM6OMtY8ynQ?t=35
Jak zaczęła się przygoda z Olimpiadą Tomka Kwiatkowskiego?
– mama, minilogia, przed 6 klasą w wakacje, minilogia, mama zachęciła
https://youtu.be/gM6OMtY8ynQ?t=105
Rodzice są ważni – mogą bardzo pomóc
– mama, minilogia, przed 6 klasą w wakacje, minilogia, mama zachęciła
– żółwikiem trzeba było rysować
– konkurs był prosty, domek, kwiatki
– ale już były elementy programowania, 5 czy 10 kwiatkó, zmienne, pętle, funkcje, nawet rekurencja
– rekurencja była cięzka
https://youtu.be/gM6OMtY8ynQ?t=138
Czy językiem C++ możesz zaszpanować koleżankom?
Językiem C++ możesz zaszpanować!
– sam dla siebie uczył się C++
– dlaczego? nie wiadomo, trochę by zaszpanować?
– pokazać Pani, że coś umiem
– komputer zrobi to co powiem
https://youtu.be/gM6OMtY8ynQ?t=182
Młodzi ludzie potrzebują sensu, szukają sensu
– nie wiedział co może z tym C++ zrobić?
– wydawał się ciekawy, uczył się, wyglądał hakersko!
https://youtu.be/gM6OMtY8ynQ?t=203
Minilogia – konkurs kuratoryjny dawał Gimnazjum
– wybierał gimanzjum a nie gimnazjum wybierało jego
https://youtu.be/gM6OMtY8ynQ?t=228
Gimnazjum – konkurs Logia:
– python
– nadal C++ był w pamięci, coś robił, kalkulator, gra prosta kółko i krzyżyk
– w I klasie gimnazjum nie było finalisty Logii
https://youtu.be/gM6OMtY8ynQ?t=263
Motywuje nas coś krótko terminowego – tu i teraz:
– w II klasie usłyszał o kółku olimpijskim od kolegów
– nie zachęcił to go
– zachęciły cukierki, batony i cola – info od kolegów
– chyba warto przyjść?
– zaczął robić zadania
https://youtu.be/gM6OMtY8ynQ?t=310
Problem z wiarą w siebie, z uwierzeniem że dam radę, że to wyzwanie Olimpiada nie jest dla jakić kwadratowych głów, tylko ja też mogę zawalczyć! – Rola nauczyciela
– nauczyciel naciskał że jest ta Olimpiada
– wiedział o niej wceśniej ale nie myślał że to jest dla niego
– myślał że to jest coś trudnego, nie da się uzyskać
– zachęcany przez nauczyciela że nawet jak się nie uda to brać udział w I etapie
– wziął udział i dało się!
– nie było maksa ale był II etap!
– szedł z myślą ba II etap – może się uda może się nie uda….
– okazało się że się udało!
– był finał i w finale laureat! – w klasie gimnazum!
– zupełnie niespodziewany – uwierzmy w siebie!
https://youtu.be/gM6OMtY8ynQ?t=346
Jak dużo czasu trzeba poświęcić na Olimpiadę?
– Mocna rzecz – zaczynamy we wrześniu a maju laureat Olimpiady!
– ii klasa gimnazjum, pierwszy rok
– na początku nie było dużo czasu
https://youtu.be/gM6OMtY8ynQ?t=402
Dlaczego trzeba pokazywać sens młodym ludziom?
– nie było zrozumienia że warto robić Olimpiadę
– czasem zrobił pracę domową czasem nie
https://youtu.be/gM6OMtY8ynQ?t=421
Od pewnego momentu robi 4 zadania tygodniowo!
– czasem sam robił swoje zadania
– czasem 2-3h myślenia dziennie
– pamiętał o wypoczynku
– gdzieś ta olimpiada była
https://youtu.be/gM6OMtY8ynQ?t=433
Czy startując w Olimpiadzie muszę znać C++ / umieć programować?
– na początku roku tridnością było wczytanie liczb
– jak wczytać milion liczb?
– na zajęciah nauczył się cin, pętla, for
– potrzebował 2-3 zajęc by ogarniać
https://youtu.be/gM6OMtY8ynQ?t=471
Olimpiada nie wymaga dużej znajomości C++
– nie jest to ciężkie ale wymaga czasu
– można uczyć się programowania o Olimpiady razem
– tu było łatwiej – był wcześniej kontakt
– ale można się uczyć na bieżąco
https://youtu.be/gM6OMtY8ynQ?t=523
Nie umiemy – pytajmy, rozmiwajmy!
– uczył się na bieżąco
– gdy potrzebował wczytać dużo liczb z spacjami, pytał się jak zrobić – funkcja getin
– warto dociekać
https://youtu.be/gM6OMtY8ynQ?t=559
Programowanie dla Olimpiady jest proste:
– 3-4 rzeczy
– pętle w których wczytujemy, obliczamy, wypisujemy
https://youtu.be/gM6OMtY8ynQ?t=584
Moment przełomyw – rozumiem, mogę sam, wierzę w swoje umiejętności
Jak potrzebna jest wiara we własne siły młodego człowieka
https://youtu.be/gM6OMtY8ynQ?t=628
Co będzie na zajęcia Olimpiada Poziom II?
https://youtu.be/gM6OMtY8ynQ?t=2873
Kto wygra bitwę – szukamy Lidera
Link do zajęć: https://youtu.be/fyRxKSGxFLs?t=50
https://youtu.be/fyRxKSGxFLs?t=50
https://youtu.be/fyRxKSGxFLs?t=326
https://youtu.be/fyRxKSGxFLs?t=1865
https://oki.org.pl/kto-wygra-bitwe
https://youtu.be/fyRxKSGxFLs?t=3042
https://youtu.be/fyRxKSGxFLs?t=7976
https://youtu.be/fyRxKSGxFLs?t=7775
– jeśli uda nam się to rozwiązać to czy jest większa radość?
https://youtu.be/fyRxKSGxFLs?t=7811
– nieważne czy zrobimy to zadanie czy nie
– pomyślmy, porysujmy tak jak Szymon dziś
– zastanówmy się ile operacji wykona komputer
– chodzi o nasze myślenie
https://youtu.be/fyRxKSGxFLs?t=7847
– poprowadzi Maciek Wiśniewski – przedstawienie Maćka Wiśniewskiego
-prostsze niż dziś
-dziś z grubego C++
– niesamowita sztuczka – liczymy w jednym ruchu sumę miliona liczb
https://youtu.be/fyRxKSGxFLs?t=7879
Dla kogo przeznaczone są zajęcia Olimpiada Informatyczna POZIOM II: https://youtu.be/fyRxKSGxFLs?t=9068
Pierwszy Program – Auto
2022.09.19
Link do zajęć: https://youtu.be/rN7NFTpGMiI?t=32
Zaczynamy!
– Programowanie to przygoda
– nic nie umiem – nie szkodzi
– każda podróż 1000 mil zaczyna się od pierwszego kroku
– poznamy tablice, klasy, sztuczną inteligencję
https://youtu.be/-_Yplxdir8s?t=31
Dlaczego warto programować?
Dlaczego uczymy się programować?
https://youtu.be/-_Yplxdir8s?t=31
Dlaczego programujemy w C++?
https://youtu.be/-_Yplxdir8s?t=335
Zadanie Auto – początek omówienie:
https://youtu.be/-_Yplxdir8s?t=1711
Kod / linki / omówienie:
https://oki.org.pl/auto
Początek rozwiązania zadania
– musimy narysować auto
https://youtu.be/-_Yplxdir8s?t=1841
Program C++ piszemy w przeglądarce Ideone:
– w Ideone możemy pisać programy w dowolnym języu programowania
– kod sekretny – ważne olimpiada
– mamy template który się uruchomi
https://youtu.be/-_Yplxdir8s?t=1854
Analiza template’u, schematu, kadłubka kodu C++
– iostream
– using namespace std;
https://youtu.be/-_Yplxdir8s?t=1980
Komendy w C++ kończą się średnikiem
– możemy dac polecenie w kilku linijkach – pokaz using namespece std;
https://youtu.be/-_Yplxdir8s?t=2120
Nasze zajęcia sa nagrywane – można wrócić i jeszcze raz wszystko zrobić!
https://youtu.be/-_Yplxdir8s?t=2216
Omówienie funkcji main
– Windows, Linux, przeglądarka wywołuje main – to co między nawiasami klawrowymi
https://youtu.be/-_Yplxdir8s?t=2259
Podsumowanie – krótkie omówienie schematu – template’u każdego programu w C++:
https://youtu.be/-_Yplxdir8s?t=2443
Jak wybrać C++ w ideone?
– dlaczego nie ma dwóch okienek w ideone – trzeba nacisnąć edytuje
https://youtu.be/-_Yplxdir8s?t=2522
Zaczynamy rysować samochód:
– z ilu linijek składa się samochód?
– od której linijki warto zacząć rysować samochód – od najdłuższej?
https://youtu.be/-_Yplxdir8s?t=2588
cout – wypisywanie na ekran w C++
– console out
– to co chcemy wypisywać musi być w podwójnym cudzysłowiu
– piszemy tekst “ala ma kota”
– przekierowanie czyli <<
https://youtu.be/-_Yplxdir8s?t=2812
Każda komendą kończymy średnikiem:
https://youtu.be/-_Yplxdir8s?t=2912
Rysujemy 3 linjkę – podwozie z kołami:
https://youtu.be/-_Yplxdir8s?t=2981
Znak nowej linii – zlewanie tekstu:
https://youtu.be/-_Yplxdir8s?t=3400
PIERWSZA RADOŚĆ!
– jest całe auto
– fantastico
– dach, maska, podłoga
https://youtu.be/-_Yplxdir8s?t=3927
Zapowiedź kolejnych Programowanie OD PODSTAW #2:
https://youtu.be/-_Yplxdir8s?t=4783
Opis naszego pierwszego challenge:
https://youtu.be/-_Yplxdir8s?t=4686
Jak będą wyglądały zajęcia?
https://youtu.be/CGosXlNrGTY?t=233
Co to jest challenge?
https://youtu.be/CGosXlNrGTY?t=286
Co jest motorem napędowym?
Challenge najważniejszy!
– motor napędowy
https://youtu.be/CGosXlNrGTY?t=306
Zadanie Krążki – XIII OI – I etap:
– rozwiązujemy na 2 sposoby
https://youtu.be/CGosXlNrGTY?t=1150
Jak ważne są obserwacje!
– prosta obserwacja
– niby nieistotny szczegół w zadaniu
– daje kluczowy efekt w zadaniu
https://youtu.be/CGosXlNrGTY?t=2150
Binary Search:
– wystarczy jeden – nie trzeba znać oddzielnie lewego i prawego
https://youtu.be/CGosXlNrGTY?t=2637
Kim to jest wartownik?
– coś co nie wystąpi w żadnym zapytaniu
– coś co zawsze będzie zawsze mniejsze albo zawsze większe od każdego wystąpienie
https://youtu.be/CGosXlNrGTY?t=3068
Pcha nas do przodu to co sami wymyślimy!
https://youtu.be/CGosXlNrGTY?t=3174
Dlaczego warto pisać samemu zamiast używać funkcji bibliotecznej?
– Jeśli sam umiem napisać alorytm i rozumiem go, to mogę zmodyfikować tak jak chcę!
– Inaczej jestem zależny od jakieś magii – funkcji bibliotecznej
– szczególnie, że zwykle to są 3 linijki
https://youtu.be/CGosXlNrGTY?t=3196
Jakich programów używa Mikołaj?
– czytnik pdf / beamer latex:
https://youtu.be/CGosXlNrGTY?t=3576
Czy Mikołaj poleca Informatykę na UW?
– jeśli programistyka bez matematyki to może niekoneicznie
– ale jeśli chodzi o statystykę, coś więcej to najlepsza uczelnia w Polsce
– dużo kontaktów – trzeba korzystać – staż w Finalndii
– jeśli pracować naukowo to też super
– działać w R&D – też super!
https://youtu.be/CGosXlNrGTY?t=3854
Szymon Hajderek – przedstawienie
– uczeń 2 klasy 3 LO w Gdyni:
– W OIJ Olimpiadzie Informatycznej Juniorów tytuł Laureata
https://youtu.be/SMRhtrbm20w?t=58
Historia Szymona Hajderka:
– zaczął w 8 klasie – dowiedział się o Olimpiadzie o kole w Gdynii od brata
– koło informatyczne w Gdyni
– fascynowało go gdy umiał rozwiązać zadanie, wpadł na pomysł, że wie coraz więcej
– jeśli ktoś jest w 8 klasie to warto
https://youtu.be/SMRhtrbm20w?t=142
Nigdy nie jest za późno na rozpoczęcie przygody z Olimpiadą! Jesteś w 8 klasie? Super!
– Szymon zaczął w 8 klasie
– trochę miał if, ASCI w 7 klasie
– jeśli jesteś w 8 klasie nic nie jest stracone, można mieć finalistę
– liczy się by się poświęcić…
– Szymon poświęcił dużo wysiłku, fascynowało go, wiele godzin na rozkminianie problemów
https://youtu.be/SMRhtrbm20w?t=228
– fenomenalny sukces!
https://youtu.be/SMRhtrbm20w?t=435
– były tygodnie że robił dużo były tygodnie że w ogóle się nie chce
https://youtu.be/SMRhtrbm20w?t=456Skąd Szymon brał zadania?
– Challenge OKI
– Koło w Gdynii
– Codeforces / ZWOJ / Skzopuł
https://youtu.be/SMRhtrbm20w?t=502
– 4 zadania wymagające
– czasami potrzeba przerwy / czytania książek
– każde z bardziej wymagających
https://youtu.be/SMRhtrbm20w?t=633
– jak zaczęło wychodzić to Olimpiada dawało motywację
– chodziło o samorozwój
– każdego dnia mocniejsi
– bez presji, cieszyć się każdym kolejnym zadaniem, że jestem mocniejszy
– jak już był na III etapie liczył na finalistę
https://youtu.be/SMRhtrbm20w?t=671
– każdy sukces dodaje paliwa
https://youtu.be/SMRhtrbm20w?t=792
– wymagająca szkoła z matematyką
– wymierny efekt
– nie po to to robimy, przy okazji to robimy
https://youtu.be/SMRhtrbm20w?t=831
– nic nie umiem, czy jest sens?
– dlaczego nie miałby nie mieć sensu?
– każdy – nawet najwięksi zwycięzcy kiedyś niczego nie umieli
– potrzeba czasu, zaangażowania, cierpliwości
– pytanie jak bardzo mocno będziemy chcieli się zaangażować?
– jeśli nie lubimy to odpuszczamy
– nie robić dla punktów, by dostać się do szkłoy – wtedy inna olimpiada
– chodzi o by robić to co nas interesuje, pasjonuje, daje satysfkację
– 100 punktów po wielu próbach
– uda się samemu wymyślić zadanie a okazuje się, że to jest znany algorytm
– wspólny czas spędzony z kolegami na obozach
– dyskusje, wymiana pomysłów – piękna przygoda!
https://youtu.be/SMRhtrbm20w?t=999
– Szymon sam wpadł na pomysł który okazał się algorytmem Find And Union / Silnie spójne / drzewo DFS
– część z Mikołajem Bulge
– jeśli sami odkrywamy i sami dochodzimy do algorytmu który ma swoją nazwę to piękna rzecz!
– odkrywanie samemu to najpiękniejsza nauka
https://youtu.be/SMRhtrbm20w?t=1119
Olimpiada zaawansowana – Mikołaj prowadzącym
– cel – bardzo dobry rezultat na finale OIJ / chcemy dostać się do finału OI
https://youtu.be/btN5PIn4eNU?t=70
Lista sukcesów Mikołaja
– laureat OIG
– brązowy medal EJOI
– laureat OI-u
– srebro BOI
– piękna historia
https://youtu.be/btN5PIn4eNU?t=131
Jak zaczęła się historia Mikołaja:
– Zachęcony przez kolegę
– Stacjonarne spotkania OKI
– Na początku mało umiał, przepisywał z tablicy
– Przełom grudnia / stycznia zaczął robić samodzielnie
– Startował w OIG
– Dojeżdżał do szkoły – coś musiał robić
– Zadanie które umiał zrobić napędzały kolejne
– Najpierw 2 tygodniowo potem 4/5
– Odnalazł radość w robieniu zajęć – wbijanie 100-tek – napędzały kolejne
https://youtu.be/btN5PIn4eNU?t=158
Ogromna radość z dostania się do finału
– próg 190 a Mikołaj 19
– po raz pierwszy widzi, że to co robi ma sens
– zaczął od października a już w tym roku piękny sukces – nie nastawiał się na jakis wielki sukces
https://youtu.be/btN5PIn4eNU?t=414
Dlaczgo warto być na filnał Olimpiady
– fantastyczni ludzie, wyjazd, przygoda
https://www.youtube.com/watch?v=btN5PIn4eNU&t=480
Adam Małysz – zrób to co możesz najleiej – oddaj- 2 dbre skoki – nie myśl o wyniku:
– Mikołaj zrobił 3 zadania na max swoich możliwości i był z tego zadowolony
– Miejsce nie ma znaczenia
https://youtu.be/btN5PIn4eNU?t=530
Dlaczego warto brać udział w zajęciach Mikołaja
– potrafi wykorzystać wiedzę na konkursie
– przekazuje tą wiedzą na zajęciach
– jak zdjąc stres
https://youtu.be/btN5PIn4eNU?t=675
Co daje Olimpiada?
– wybór szkoły dla finalistów
– to jest powód dla której większośc osób startuje w Olimpiadzie
– osoba która bierze udział w Olimpiadzie pokazuje hart ducha, skupienie na celu
– nie tylko lubi ale też robi
– żeby zrobić te zadania to pokazujemy bystrość umysłu
– umie sobie poradzić ze stresem na konkursie
– szczególnie ważne dla przyszłego pracodawcy
– część firm daje na interview problemy na poziomie olimpiady – giganci
– również olimpiada posługuje się problemami z interview
– Mikołaj nie miał punktów z matury by dostać się na Informatykę na Uniwerstytet Warszawski
– dostał się dzięki Olmpiadzie
– 100% z matury z Informatyki
– 6-tke z przedmiotu
– korzyści materialne – stypendia uniwersytetów, marszałka województwa, miasta, wótja, mistra edukacji
https://youtu.be/btN5PIn4eNU?t=766
Rozwiązywanie problemów na uczelni, prace naukowe, programy dla Olimpijczyków
– część uczelni ma program prac naukowych – dostają opiekuna z którym rozwiązują problem naukowy
– problemy podobne do tych na olimpiadzie
– problemy otwarte – nei wiemy cz wynik jest czy nie ma
– na olimpiadzie wiemy, że jest rozwiązanie – my musimy je zgadnąć
– różnica między życiem a olimpiadą jest taka, że w pracy naukowej nie wiemy cz istnieje rozwiązanie
– jeśli ktoś ma ochotę kontynuować przygodę z olimpiadą – zaprszamy!
– konkret konkretny – przygoda z olimpiadą się nie skończy
– satysfkacja z każdego rozwiązanego zadania, że jesteśmy każdego dnia mocmiejsi
– olimpiada nie kończy się na szkole średniej
– można pracować w R&D – Research and Development
– można pracować na uczelni
– można wymyślać rozwiązania problemów
– żeby wyszkiwarki działały szybciej
– szybciej i lepiej Google maps znajdpwał trasę
https://youtu.be/btN5PIn4eNU?t=1232
Olimpiada nas kształtuje – rozwiązywanie problemó, automatyzacja!
– uczy rozwiązywania problemów
– przydaje się nie tylko w Informatyce
– podzielimy na kawałki, spiszemy obserwacje
– to przyda się niekoniecznie w Informatyce!
– Olimpiada to sposób myślenia!
– automatyzujemy
– Excel który ręcznie wymaga 2 dni pracy
– po Olimpiadzie będziemy chcieli to zautomatyzować, napisać skrypt który to zrobi w 2h
– już na Olimpiadzie piszemy skrypty które sprawdzają weryfikują rozwiązania – dziesiątki tysięcy testów w ciągu minut
– szczególnie I etap zachęca do nauki debugowania, tego jak można coś zautomatyzowac
– póxniej jako pracownicy firmy wiemy jak znaleźć błąd, analizować
https://youtu.be/btN5PIn4eNU?t=1436
Kiedy Mikołaj zaczął programować?
https://youtu.be/btN5PIn4eNU?t=1588
Olimpiada to odkrywanie
– nie ma gotowej wiedzy
– potrzebujemy tablic – uczymy się tablic
– nie jesteśy nauczani a to my odkrywamy
– mamy swoje inspiracje, pomysły
– nie możliwości nauczyć się tego w szkole
– Mikołaj sam się tego nauczył
– Olimpiada nie ma swojego programu
– nie ma spisu tego co musi się pojawić na Olimpiadzie
– na maturze wiemy że bedzie Excel, bazy, programowanie – to się pojawi
– ktoś kto po raz pierwszy patrzy na zadanie – nie wie co ze sobą zrobić
https://youtu.be/btN5PIn4eNU?t=1666
Rola nauczyciela:
– ładnie się mówi, że ucze się sam
– robił Mikoaj zadania
– ale ktoś mu musiał pokazać jak do tego podejść
– jest nauczyciel, prowadzący, przewodnik – trochę z tych storżytnych czasów
– Mikołaj jest dziś takim nauczycielem
– uczeń się odkrywa,nauzyciel prowadzi
https://youtu.be/btN5PIn4eNU?t=1822
Ile czasu Mikołaj poświęcał na przygotowanie się do Olimpiady? Ile się uczył?
– robił prace domowe / challenge
– im trudniejsze tym więcej czasu
– średnio 1h do 2h dziennie
– nauczyciel wuznacza prace domowe, rozwiązuje prace domowe i każdego dnia staje się mocniejszy
https://youtu.be/btN5PIn4eNU?t=1912
Pierwsza motywacja – snickersy, słdycze, cukierki za 100% za zadanie
– na początku jest potrzebna taka motywacja
– to na początku
https://youtu.be/btN5PIn4eNU?t=2007
Rola nauczyczyciela jest ważna szczególnie na początku
– w liceum w wakacje działał sam – odkrywał
– robił zadania z poprzednich olimpiad / skzopuł
– średnio jedno zadanie dziennie
– już odkrywał sam
– ale wiedział o co chodzi
https://youtu.be/btN5PIn4eNU?t=2037
Ile czasu potrzeba spędzić nad jednym zadaniem?
– kilka godzin, około 3h
– trzeba pomyśleć, napisać, debugować
– potrzeba czasu
https://youtu.be/btN5PIn4eNU?t=2076
Liceum – moment gdy sam Mikołaj zaczyna się prowadzić
– nie do końca
– robi zadania z kółek ale się powtarzają
– szuka sam
– jest bardziej zaawansowany
– poświęca wakacje na przygotowanie do Olimpiady
– robi po kolei zadana z z Olimpiad na szkopule – od najstarszej
– podobnie przygotowywał się do Olimpiad europejskich – od najstarszej
https://youtu.be/btN5PIn4eNU?t=2094
Zadania na Olimpiadach, konkursach powtarzają się:
– wpadają w schematy
– im więcej przerobimy zadań, tym bardziej je poznamy
– zaprocentuje na konkursie
– Mikołaj przerabiał zadania
– zaczął w październiku i po roku miał srebrny medal EJOI
– robiąc po prostu prace domowe
– robiąc te zadania coraz więcej ścieżek odkrywamy
– nawet jeśli nie wpadliśmy na pomysł, to ileś ścieżek odkryliśmy – dokąd prowadzą, czy są dobre
– sami odkrywamy
– te wnioski nam przydadzą w kolejnych zadaniach – nieważne nawet czy rozwiązaliśmy to zadanie
– liczy się ile myśleliśmy, ile odkryliśmy – te 2h myślenia
– z każdym kolejnmy zadaniem jesteśmy mocniejsi
– po pół roku, nagle, okazuje się, że jesteśmy niesamowicie mocni
– ilość pomysłów, ścieżek wokół których obraca się Olimpiada jest skończona
– mamy mocne doświadczenie, mocną bazę do kolejncyh zadań i etapów
https://youtu.be/btN5PIn4eNU?t=2189
Ważne jest by myśleć samemu, nie zaglądać od razu do rozwiązania
– nie zaglądamy od razu do rozwiązania
– nie kopiujemy kodu, wklejamy by dostać setkę
– nawet jak nie umiem, to przeczytam rozwiązanie, rozumie, potem piszę samodzielne
– Przykład zadania Łuk Tryumfialny / XX OI – Mikołaj nie umiał zrobić – przeczytał, ale napisał sam
– 3 tygodnie później widzi zadanie Dynamit z XIX OI-a – widzi, że pomysł jest ten sam jak dla Łuku – zadział
– jak widzimy rozwiązanie kopiujemy kodu
– rozumiem, analizuję i piszę samemu
– jak piszemy samemu to pewne problemy wychodzą
– musimy sobie poukładać
– troszkę jak piszemy notatkę ze spotkania – więcej pamiętamy, układa się nam w głowie
– samo czytanie rozwiązań nic nam nie da – nieczego nie odkrywamy, poznajemy
https://youtu.be/btN5PIn4eNU?t=2313
Labirynt
– mamy szczura którego puszczamy w labiryncie
– jak dochodzi do ściany to się nie denerwuje ale wraca i idzie dalej
– Za każdmy kolejnym puszczeniem będzie coraz łatwiej znajdował drogę
– W końcu się nauczy i będzie wiedział od razu
– Rozwiązanie problemów to pewna wiedza w ramach której sie poruszamy
– Im więcje rozwiązemy problemów – nawet z pomocą ale jednak sami, jak najwięcej sami – tym bardziej ten obszar znamy
https://youtu.be/btN5PIn4eNU?t=2432
Jakie Mikołaj obecnie zna języki programowania?
– C++ – język Olimpiady
– logiczny, efektywny, wydajny, dobry do nauki programowania, a na końcu nawet prosty
– czyste C
– Java – może napisac projekt
– Python – miał doczynienia – nie do Olimpiad – oducza myślenia – mam na to bibliotekę
– zmodyfikowany problem już jest nie do rozwiązania bo korzystał z gotowej biblioteki a nie myślał sam
– jest to bardzo szkoldiwe
https://youtu.be/btN5PIn4eNU?t=2521
Róbmy coś dla siebie – nie dla ocen:
– dlaczego Mikołaj nie pisał rozszerzeń na maturze?
– robi coś tylko wtedy gdy w to wierzy
– w robienie zadań uwierzył
– maturę by napisał tylko dla wyniku
– nie podniosłoby to jego kompetencji, nie miałby satysfkacji
– robi dla siebie nie dla ocen
– po co mieć brzydki pozłacany zegarek?
– po prostu jest mieć sens pasję której dobrze się poświęcić, w którą wierzymy, sprawia satysfkację
https://youtu.be/btN5PIn4eNU?t=2704
Jak znaleźć motywację
– gdy mamy 40h w tygodniu?
– zacząc po kolei robić zadania
– od naprostszych – każego dnia mocniejsi
– nie oglądać się na innych tylko na siebie wczoraj
– Mikołaj robił to co sprawiało mu satysfakcję, potem zobaczył że to nie skończy się na szkole średniej
– to nie tylko dla Olimpiady to robił
https://youtu.be/btN5PIn4eNU?t=2812
Olimpiady motywatorem
– nie pisał jej po to by meić wynik
– to był motywator
https://youtu.be/btN5PIn4eNU?t=2865
Część 1: https://youtu.be/Q6f2-_-8U4I
Kto się uczy – uczeń czy nauczyciel?
– Cześć Rodziców ma przeświadczenie, że nauczyciel nauczyc
– To ja jako uczeń muszę się nauczyć
– Zawsze jest to sukces ucznia
– Wpisuj do CV / Linkedin
– Nie szkodzi że jedno zadanie / I etap
– Pokazałeś chęć, walkę, determinację
– To Twój sukces
https://youtu.be/Q6f2-_-8U4I?t=24
Korepetycje – jakie?
– nie polecam korepetycji typu poprawienie ocen
– jeśli to przygotowanie się do czegoś – matury
– strasznie rozlewnia
– jest delikatna różnica między pomocą a wykorzystaniem
– lepiej umówić się na dział – wytłumaczyć, uczeń robi zadania, korygujemy i jedziemy dalej
– jeden z większych sukcesów – doprowadzenie ucznia z braku umiejętności tabliczki mnożenia do 90% na maturze rozszerzonej
– ja jako uczeń się uczę
– nauczyciel prowadzi
https://youtu.be/Q6f2-_-8U4I?t=108
Mirosław Zelent lubi przygotowywać do matury:
– stymuluje
– przekazujemy cierpliwość dla błędów
– praca 1:1 jest inspriująca
https://youtu.be/Q6f2-_-8U4I?t=263
Ile trzeba godzin by być w czymś dobrym?
– nauka to nie jest zapamiętywanie
– historia ucznia który od razu znała wynik
– żeby nauczyć się programowania trzeba programować – to my się uczymy
https://youtu.be/Q6f2-_-8U4I?t=355
Link do zajęć: https://youtu.be/MF-R2qlOWRk?t=5aa
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ł Informatyczne:
– 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
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
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
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
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
Jędrzej Olkowski – przedstawienie:
https://youtu.be/djKP7RKPRC0?t=2324
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
https://youtu.be/j2iE4SotFZA?t=3372
https://youtu.be/j2iE4SotFZA?t=8198
– część prywatna
– cześc publiczna
– odpowiednie funkcje
https://youtu.be/j2iE4SotFZA?t=8469
Dlaczego nie dajemy dostępu do zmiennych w klasie?
https://youtu.be/j2iE4SotFZA?t=8620
https://youtu.be/j2iE4SotFZA?t=2818
https://youtu.be/j2iE4SotFZA?t=7951
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