Zagadnienia poruszane na zajęciach Olimpijskiego Koła Informatycznego

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

Omówienie zadania Gołębie pocztowe:
https://youtu.be/55KbGr2LDwQ?t=5401
Programowanie OD PODSTAW #11 – 2022.12.06
Teksty
Link do zajęć: https://youtu.be/uAv2AzDzLOc?t=9

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

Olimpiada ZAAWANSOWANA #10 – 2022.12.01
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

 

 

Olimpiada Informatyczna POZIOM II – zajęcia #10 – 2022.11.30
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

 

Olimpiada Informatyczna OD PODSTAW #10 – 2022.11.29
Maski bitowe – Zadanie Gołębie pocztowe
Link do zajęć: https://youtu.be/55KbGr2LDwQ?t=19
POKAZAĆ
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
POKAZAĆ
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
OIJ trwa, OI czekamy na wyniki
– W SP? weż udział
https://youtu.be/55KbGr2LDwQ?t=155
POKAZAĆ
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
Przed nami USACO – 16-19 grudnia
– 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 
Remi mówi że wie już jak zoptymalizować:
– no własnie o to chodzi
– małymi kroczkami
– pierwsza wersja przechodzi jakieś testy
– poprawiamy i poprawiamy
https://youtu.be/55KbGr2LDwQ?t=451
Pokazać
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
Liczby dziesiętnie – system pozycyjny:
https://youtu.be/55KbGr2LDwQ?t=1168
Zamiana 83 dziesiętnej na dwójkową przez odejmowanie potęg dwójek:
– konwersja jest zachłanna
– czym są bity
https://youtu.be/55KbGr2LDwQ?t=1446 
Czym różni się system dwójkowy od dziesiętnego?
– 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?
Operacje bitowe:
– tak jak dodawanie i odejmowanie
– możemy dodawać swoje!
https://youtu.be/55KbGr2LDwQ?t=1820
OR / Lub:
– przykład z życia – słońce i dzwoni kolega
– na dwójkowych i dziesiętnych
https://youtu.be/55KbGr2LDwQ?t=1938
AND / I:
– przykład z życia – słońce i dzwoni kolega
– na dwójkowych i dziesiętnych
https://youtu.be/55KbGr2LDwQ?t=2349
Sprawdzanie czy bit jest zapalony?
– 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
Jak szybko podnieść dowolną liczbę do dowolnej potęgi w C++?
– przesunięcie bitowe
– przykład w ideone
– najszybsze operacje – jedna instrukcja
https://youtu.be/55KbGr2LDwQ?t=2874
Quiz
XOR:
– przykład
– dwójkow dziesiętnie
– ideone przykład
https://youtu.be/55KbGr2LDwQ?t=3346
Właściwości XOR:
a ^ a = 0
a ^ 0 = a
https://youtu.be/55KbGr2LDwQ?t=3572
Zagadka – wino i król!
– 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ą
Omówienie zadania Gołębie pocztowe:
https://youtu.be/55KbGr2LDwQ?t=5401
Programowanie OD PODSTAW #9 – 2022.11.28
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

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

Olimpiada Informatyczna POZIOM II – zajęcia #8 – 2022.11.23
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

Olimpiada Informatyczna OD PODSTAW #9 – 2022.11.22
Zadania z Challenge – Duże liczby / Usuwanka
Link do zajęć:
Mundial? To informatyka!
Mistrzostwa? To informatyka!
Trwają Mistrzostwa Świata w Piłce Nożnej
– 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

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

Programowanie OD PODSTAW #9 – 2022.11.21
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

 

Olimpiada ZAAWANSOWANA #8 – 2022.11.17
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

Olimpiada Informatyczna POZIOM II – zajęcia #8 – 2022.11.16
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

 

Olimpiada Informatyczna OD PODSTAW #8 – 2022.11.15
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

 

Programowanie OD PODSTAW #8 – 2022.11.15
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

Olimpiada ZAAWANSOWANA #7 – 2022.11.10
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

 

Olimpiada Informatyczna OD PODSTAW #7 – 2022.11.08
Razem piszemy kod NWD
Link do zajęć:
Przygotowujemy się do Olimpiady!
– 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
Historia Alicji Kruczek – uczestniczki Olimpiad:
– 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
 – żeby znaleźć drogę dla 1000 sklepów – 2^1000 operacji
https://youtu.be/gEgsWnMbBNs?t=65
Pokazać! WOW! – przyspieszamy działanie komputera
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
WOW POKAZAĆ
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
Napiszemy NWD / NWW
– 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 
Wolny Euklides:
Programowanie OD PODSTAW #7
Tablice
2022.11.7
Link do zajęć: https://youtu.be/IxwQcOkKY30?t=16

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

Dobry punkt startowy do zrozumienia i nauki tablic:
– 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

Olimpiada ZAAWANSOWANA #6 – 2022.10.27
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

 

Olimpiada Informatyczna POZIOM II – zajęcia #6 – 2022.10.26
Drzewa przedziałowe część 1 – pierwsze zajęcia
Link do zajęć: https://youtu.be/vg_g0zTxUVo?t=20
Umiemy hashe!
Do tej pory hashe
– jak znajdować wzorce w tekstach
– problemy w hashach – kolizje
– zadanie z Olimpiady Informatycznej
https://youtu.be/vg_g0zTxUVo?t=20
OKI #7
– 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
Do czego przydają się drzewa przedziałowe?
– 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
Minimum na przedziale – kahoot
– 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

Ile wynosi suma potęg dwójki? 1+2+4+
– kolejna potęga dwójki – 1
Zarys naszego rozwiązania:
https://youtu.be/vg_g0zTxUVo?t=1917
Brakuje nam szybkiego brania max na przedziale!
https://youtu.be/vg_g0zTxUVo?t=2148
Poprawiamy Pythona!
CHCEMY PODWAŻYĆ ALGORYTM KTÓRY MA PYTHON!
– krótkie ale fajne!
https://youtu.be/vg_g0zTxUVo?t=2242
Wytłumaczenie idei drzew przedziałowych!
– bez żadnej matematyki, numerów, przedziałów
 – max na przedziale
– odpowiedzi na pytania o max na poszczególnych przedziałach
– za co odpowiadają wierzchołki
https://youtu.be/vg_g0zTxUVo?t=2364
Drzewo z korzeniem na dole
Piękne drzewo Tomka!
Drzewa informatyczne
Drzewa które podobają się informatykom
– nasze drzewa mają korzeń na górze
– korzeń i liście
 – dobrze że nie jesteśmy ogrodnikami – klientowi by się nie podobały
– nawet te drzewa będa sie podobały
https://youtu.be/vg_g0zTxUVo?t=2694
Co się wydarzyło?
– policzyliśmy dodatkowe wartości
– możemy szybciej odpowiadac na zapytania
https://youtu.be/vg_g0zTxUVo?t=2765
Dokładne omówienie drzewa przedziałowego
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

Olimpiada Informatyczna OD PODSTAW #6 – 2022.10.25
Gąsienica
Link do zajęć: https://youtu.be/TMgFEpTuBvQ?t=18
Informatyka i natura!
Algorytm inspirowany naturą czy kojarzący się z naturą
– 2 pointers
https://youtu.be/TMgFEpTuBvQ?t=18
Inspirujemy się naturą!
– 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
Ile punktów trzeba na II etap OI-a?
– 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 
OKI #7 – 8 listopada
– razem piszemy nowy algorytm
https://youtu.be/TMgFEpTuBvQ?t=579

Zachęta #2
https://youtu.be/TMgFEpTuBvQ?t=6649
OKI#9 – 22 listopada
– zadania z naszych challenge!
https://youtu.be/TMgFEpTuBvQ?t=623

Zachęta #2:
https://youtu.be/TMgFEpTuBvQ?t=6675
Challenge #6
Ile operacji może wykonać program by mieć 100 punktów:
https://youtu.be/TMgFEpTuBvQ?t=703
Spodziewana złożoność rozwiązania – na Olimpiadzie:
https://youtu.be/TMgFEpTuBvQ?t=778
Przeczytanie zadania jest ważne!
– to już jest początek robienia zadania!
– początek myślenia nad zadaniem
– przeczytajmy zadania
https://youtu.be/TMgFEpTuBvQ?t=1033
Na Olimpiadzie musimy wykonać minimalnie tyle operacji ile danych na wejściu – wczytać:
https://youtu.be/TMgFEpTuBvQ?t=1169
Co to jest złożoność?
– jak bardzo wzrośnie czas obliczeń
https://youtu.be/TMgFEpTuBvQ?t=1257
Omówienie zadania Count Distinct Slices:
https://youtu.be/TMgFEpTuBvQ?t=1577
Rozwiązanie najbardziej brutalne:
https://youtu.be/TMgFEpTuBvQ?t=2149
Złożoność brutalnego bruta!
Jak poprawić brutalne rozwiązanie n^3 do n^2?
https://youtu.be/TMgFEpTuBvQ?t=2543
Może użyć w zadaniu tablicy – nie musimy użyć set / map – mniejsza złożoność:
https://youtu.be/TMgFEpTuBvQ?t=2700
Początek rozwiązania optymalnego:
https://youtu.be/TMgFEpTuBvQ?t=3058
Symulacja działania naszego algorytmu!
https://youtu.be/TMgFEpTuBvQ?t=3940Hurra! Radość Pokazać
– Jedynka nam bruździła i ją usunęliśmy!!!
https://youtu.be/TMgFEpTuBvQ?t=4967
Dlaczego nasz algorytm jest gąsienicą?
https://youtu.be/TMgFEpTuBvQ?t=5215
Złożoność naszego algorytmu!
– przejdziemy 1-2-3
– liniowa
https://youtu.be/TMgFEpTuBvQ?t=5286
Omówienie kodu – mamy podać tylko funkcję:
– inaczej niż jesteśmy przyzwyczajeni
https://youtu.be/TMgFEpTuBvQ?t=5459
Omówienie kodu:
https://youtu.be/TMgFEpTuBvQ?t=5505Jak wkleić kod / rozwiązanie do Codility?
https://youtu.be/TMgFEpTuBvQ?t=6172
Dostajemy SETKE 100! – POKAZAĆ
https://youtu.be/TMgFEpTuBvQ?t=6286
Rozwiązanie problemu – najdłuższy przedział o sumie 4 – kahoot:
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

Mini pięknie spojleruje
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
Gratulacje dla nas wszystkich!
– 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
Programowanie OD PODSTAW #5
Team – Codeforces – pętla w pętli
2022.10.24
Link do zajęć:
Zadanie platformy numer 1!
Jak dołączyć do projektów programistycznych?
Zadanie z Codeforces – najpopularniejsza platforma programistyczna
– 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
Zmienne – otwieramy ideone
– definiowanie zmiennej int, podstawienie wartości
https://youtu.be/fk04apHH4SQ?t=372
Czy zmienne są nieskończone?
Przekraczamy zakres int:
 – wypisujemy po kolei 3 liczby aż przekroczymy 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
long long  – większe pudełko
– program wypisuje dobrze
 – jak pamiętać int jak pamiętać long long
https://youtu.be/fk04apHH4SQ?t=934
rzutowanie typów
– int na long long
https://youtu.be/fk04apHH4SQ?t=1226
RADOŚĆ POKAZAĆ
– 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
Chodzi o to byśmy rozumieli!
– 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
Cieszę się że wnikasz i walczysz!
– 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
Wytłumaczenie pętli
– 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
Dokładne wytłumaczenie += – kahoot:
 – to jest wow wow wow
https://youtu.be/fk04apHH4SQ?t=2587Przekroczenie int, suma liczb od 2mld do 2mld10 – kahoot:
https://youtu.be/fk04apHH4SQ?t=2654
Omówienie zadanie Team – Codeforces – pętla w pętli
https://youtu.be/fk04apHH4SQ?t=3156
Kod / linki:
https://oki.org.pl/team
Jaki jest nasz pomysł na zadanie?
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ą
Struktura naszego rozwiązania:
– musimy przejść po zapytaniach
– druga pętla sprawdza jedynki
– mamy 2 pętle
https://youtu.be/fk04apHH4SQ?t=3561
Zaczynamy pisać kod
– 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
Czemu zmienna która przechodzi po pętli nazywa się i?
https://youtu.be/fk04apHH4SQ?t=4321
Podsumowanie dwóch pętli:
– pętla po problemach
– dla danego problemu wczytijemy 3 liczby
https://youtu.be/fk04apHH4SQ?t=4965
Codeforces – CV – WIELKA RADOŚĆ ? POKAZAĆ!
https://youtu.be/fk04apHH4SQ?t=5649
Olimpiada ZAAWANSOWANA
Maski bitowe
2022.10.13
Link do zajęć: https://youtu.be/pz9AIfZ81H8?t=1166

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

Olimpiada Informatyczna POZIOM II – zajęcia #5 – 2022.10.19
Hashe – Zadanie Korale – Olimpiada Informatyczna
Link do zajęć:
Już są!
– 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?
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
Olimpiada Informatyczna OD PODSTAW #5 – 2022.10.18
Binary Search w akcji  – szukamy pierwiastka
Link do zajęć: https://youtu.be/pzPACXcSuss?t=5
Gdzie wykorzystuje się Binary Search?
Witam w deszczowy wieczór!
– wyszukiwarka
 – debugowanie
– przydzielanie zasobów
Uczymy się by być w ośrodkach naukowych, Reserach & Development:
– będziemy naszym podstawowym narzędziem
https://youtu.be/pzPACXcSuss?t=61
Jak się motywujemy by poznawać
– 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
Warto wziąć udział w Olimpiadzie
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
 – jeleń i las
 – jest sens wystartować!
– 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
Maciek Wiśniewski
 – dużo zabawy
– przyjemne w rozwiązywaniu
 – nie zniechęcajmy się jak jesteśmy w SP
– warto zrobić te zadania
– nie porównujemy się do innych, porównujemy się do siebie
Test OIJ – jak się zapisać?
https://youtu.be/pzPACXcSuss?t=399
Zadania OI:
– gdzie są?
– przeczytajmy, pomyślmy przed snem
– Maciek myśli wszędzie, na lekcji, przed zaśnięciem
https://youtu.be/pzPACXcSuss?t=421
OIJ – co trzeba zrobić – szczegółowy opis:
– test
– zadania
– niezależne rzeczy
https://youtu.be/pzPACXcSuss?t=561
Programowanie #6
Gąsienica
– warto się poczołgać jak gąsienica
– jej ruch jest bardzo sprytny
– inspirujący dla algorytmiki
https://youtu.be/pzPACXcSuss?t=6424
Programowanie OD PODSTAW #5
Pętla – dyskusja, quizy
2022.10.17
Link do zajęć: https://youtu.be/rZb8EsSnHU8?t=3
Kot lubi nudę?
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

Wnikajmy!
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
Wartość zmiennej za pętlą:
– symulacja że i jest poza pętlą 70 a w pętli do 68
https://youtu.be/rZb8EsSnHU8?t=3273
Jak dojść do challenge Programowanie OD PODSTAW?
Przykład pętli która leci w dół – inkrement –i:
https://youtu.be/rZb8EsSnHU8?t=3613
Pokazać Radość
– pięknie nam wypisał 100 liczb!
– zgodzicie się ze to jest bardzo fajne
Pętla for powtarza jedną instrukcję!
Radość – zlały nam się liczby bo for powtarza jedną instrukcję, nie powtarza spacji
Reszta w C++:
– dokładne wyjaśnienie reszty
 – dokładne wyjaśnienie dzielenia w liczbach całkowitych – bez reszty
https://youtu.be/rZb8EsSnHU8?t=3961
Co to jest liczba pierwsza?
https://youtu.be/rZb8EsSnHU8?t=4270
Jak kazać komputerowi sprawdzić czy liczba jest pierwsza?
– dzielimy przez wszystko od 2 do n-1
https://youtu.be/rZb8EsSnHU8?t=4367
Olimpiada ZAAWANSOWANA
Dijkstra
2022.10.13
Link do zajęć: https://youtu.be/pz9AIfZ81H8?t=1166

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

Olimpiada Informatyczna POZIOM II – zajęcia #4 – 2022.10.12
Hashe – Zadanie Repeating Substring – paradoks urodzin
Link do zajęć: https://youtu.be/dfpERcmogNM?t=18
Hashe #2 – kontynuacja
https://youtu.be/dfpERcmogNM?t=18
Zaczyna się Olimpiada Informatyczna!
– weź udział
– nic nie kosztuje
– wstęp na studia
– początek pięknej przygody?
https://youtu.be/dfpERcmogNM?t=142
Ile czasu trzeba się uczyć by być w II etapie OI-a?
– 3-4 zadania tygodniowo, parę miesięcy
https://youtu.be/dfpERcmogNM?t=540
Czy duża jest różnica między OIJ oa OI?
– I etap OIJ jest łatwy
https://youtu.be/dfpERcmogNM?t=612
Czy można się włamać na konto?
– nie tylko hash wystarczy
– prawdopodobieństwo złamania hasha
https://youtu.be/dfpERcmogNM?t=1369
Omówienie zadania Repeating Substring:
https://youtu.be/dfpERcmogNM?t=1504
CSES – Ulubiona platforma Tomka – krótka konkretna treść:
https://youtu.be/dfpERcmogNM?t=1512
Początek omówienia zadania Repeating Substring:
https://youtu.be/dfpERcmogNM?t=1543
Czy jeśli istnieje powtarzające podsłowo o długości 101 to istnieje powtarzające się podsłowo o wielkości 29?
Czy powtarzanie się podsłowa jest monotoniczne? -> można użyć Binary Search
https://youtu.be/dfpERcmogNM?t=2280
Czy istnieje magiczna wróżka która powie nam czy 2 słowa są równe?
https://youtu.be/dfpERcmogNM?t=2699
Stosujemy hashe!
– 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
Czy nie łatwiej porównać od razu stringi?
– 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
Jakie jest prawdopodobieństwo kolizji hashy?
Bawimy się! – Paradoks urodziny na żywo
– czy wśród osób na czacie są 2 które mają ten sam dzień i miesiąc urodzin?
Paradoks dnia urodzin – na czym polega?
https://youtu.be/dfpERcmogNM?t=3571
Jakie jest prawdopodobieństwo, że 2 hashe się powtórzą?
Szansa na wywalenie się – powtórzenie hashy jest ponad 99% – mamy prawie pewność!
– jak to rozwiązać, zwiększyć liczbę hasy z 10^9 do 19^18
https://youtu.be/dfpERcmogNM?t=3930 
Jak zwiększyć liczbę hashy?
– 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
Jakie jest prawdopodobieństwo czy w klasie są 2 osoby o tym samy dniu urodzin?
– 50% dla klasy 23 osobowej
– dla klasy 30 osobowej to już około 70%
https://youtu.be/dfpERcmogNM?t=4287
Dlaczego to jest paradoks dnia urodzin?
– 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
Podsumowanie jak wybierać hashe
https://youtu.be/dfpERcmogNM?t=4445
Jak będzie działać funkcja Check dla dwóch różnych hashy?
– podwójne hashe – zamiast jednej liczby będziemy mieć dwie różne liczby
https://youtu.be/dfpERcmogNM?t=4534
Jak wygląda rozwiązanie zadania do tej pory?
– wymyślona funkcja check
– szukamy ostatniej jedynki – najdłuższe powtarzające się słowo
https://youtu.be/dfpERcmogNM?t=4599
Jak działa funkcja Check?
https://youtu.be/dfpERcmogNM?t=4635 
Jak jest złożoność funkcji Check dla słowa o długości n?
– O(n*Log^2)
https://youtu.be/dfpERcmogNM?t=4706
Podsumowanie rozwiązania zadania:
https://youtu.be/dfpERcmogNM?t=4948
Kiedy możemy użyć pojedynczego hasha a kiedy musimy użyć podwójnego hasha?
https://youtu.be/dfpERcmogNM?t=5509
Hashe działają na prawdopodbieństwie
– mamy praktycznie pewność, ale nie jest to 100%
https://youtu.be/dfpERcmogNM?t=5611
Dobijmy to zadanie!
– poznajmy hashe!
– zadania tekstowe to często hashe!
https://youtu.be/dfpERcmogNM?t=5659
Warto!
– jest binary search, hashe
– ciężkie zadania – da statyfkację!
https://youtu.be/dfpERcmogNM?t=6822
Czy hashe mogą się pojawić w OIJ?
– może będzie można wykorzystać
– algorytm bardziej pod OI-a
https://youtu.be/dfpERcmogNM?t=5756
Hashe w quizie:
– co wynika, że 2 hashe są różne?
https://youtu.be/dfpERcmogNM?t=6020
Ile minimalnie razy muszę rzucić kostką by mieć 50% szans że będę miał dublet?
– wytłumaczenie paradoksu urodzin
https://youtu.be/dfpERcmogNM?t=6266

Olimpiada Poziom II – zajęcia #5:
https://youtu.be/dfpERcmogNM?t=100

Olimpiada Informatyczna OD PODSTAW #4 – 2022.10.11
Binary Search
Link do zajęć: https://youtu.be/81P5ZalDPoc?t=10
Przygotowujemy się do fascynującej przygody na całe życie!
– 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
 – nieustannie zadziwia
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

Olimpiada to wymyślanie!
– zastanawianie się czy komputer musi to wszystko liczyć?
Każde rozwiązanie jest dobre:
– 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
Czy zaczynając na początku października od zera można przejść do II etapu?
– 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ć
Wyjaśnienie logarytmu:
– log2 z 32
https://youtu.be/81P5ZalDPoc?t=484
Nasz prowadzący Michał Szeliga – przedstawienie
https://youtu.be/81P5ZalDPoc?t=790
Ma pomysł ale nie wie jak przekuć w kod – co robić?
– więcej kodować
– praktyka czyni mistrza
– poszukiwać w necie, odkrywamy
https://youtu.be/81P5ZalDPoc?t=840
Binary Search:
– nasz temat
– najczęstszy algorytm, najważniejsza technika
https://youtu.be/81P5ZalDPoc?t=950
Początek zadania
– czy wartość występuje w ciągu?
– znajdź indeks o wartości
Omówienie rozwiązania brutalnego:
– dla danego zapytania sprawdzamy po kolei z wartościami w tablicy
https://youtu.be/81P5ZalDPoc?t=1538
Złożoność rozwiązania brutalnego:
https://youtu.be/81P5ZalDPoc?t=1786
Binary Search wymaga ciągu posortowanego:
https://youtu.be/81P5ZalDPoc?t=2056
Omówienie Binary Search – od tego zacząć!
– zgadywanie w połowie
– odrzucamy połowę nie sprawdzając
https://youtu.be/81P5ZalDPoc?t=2155
Piękno Binary Search – wyjaśnienie od początku:
https://youtu.be/81P5ZalDPoc?t=2333
To daje RADOŚĆ!
Pokazać RADOŚĆ braku sprawdzania prawej połowy!
– pół miliarda nie sprawdzamy!
Binary Search to wyszukiwanie słownikowe:
– otwieramy słownik w połowie i tak dalej…
https://youtu.be/81P5ZalDPoc?t=2606
Binary Search występuje w wielu problema olimpijskich i w życiu:
– warto zrozumieć
https://youtu.be/81P5ZalDPoc?t=2769
Złożoność Binary Search:
https://youtu.be/81P5ZalDPoc?t=2798
Co to jest duże O – złożoność?
https://youtu.be/81P5ZalDPoc?t=3151
Piękna rzecz!
Zamiast miliona operacji wykonujemy 17 operacji!
– z miliardów lat zmniejszamy liczbę operacji do ułamka sekundy!
https://youtu.be/81P5ZalDPoc?t=3304
Do czego przydaje się Binary Search:
– coś najmniejszego / coś największego
– wyszukiwanie po wyniku
https://youtu.be/81P5ZalDPoc?t=3505
Jak wejść do treści zadania – zadanie jest z kursu i trzeba się
– być zalogowanym na Codeforces
– zapisać się do kursu edukacyjnego
https://youtu.be/81P5ZalDPoc?t=3883
Symulacja działania kodu Binary Search:
– odrzucenie polega na przesunięciu początku lub końca
https://youtu.be/81P5ZalDPoc?t=4460
RADOŚĆ pokazać brawa – mamy 100!
– 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
Podsumowanie kodu Binary Search:
https://youtu.be/81P5ZalDPoc?t=5546
Jak często pojawia się Binary Search na Olimpiadzie?
https://youtu.be/81P5ZalDPoc?t=5784
Kahoot – wyjaśnienie Binary Search:
https://youtu.be/81P5ZalDPoc?t=6446 
Programowanie OD PODSTAW #4
Animacja spadającej piłki
2022.10.10
Link do zajęć: https://youtu.be/rN7NFTpGMiI?t=32
Informatyka to piękno!
– 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
Omówienie zadania Piłka – animacja spadającej piłki:
https://youtu.be/m_sSmhvS1RQ?t=1048
Lepiej jest pisać gry niż w nie grać!
https://youtu.be/m_sSmhvS1RQ?t=1070Rozszerzenia plików – robimy by były widoczne:
https://youtu.be/m_sSmhvS1RQ?t=1237
Tworzymy plik index.html w dowolnym katalogu:
– otwierany domyślnie przez przeglądarkę
https://youtu.be/m_sSmhvS1RQ?t=1347
Rozszerzenia naszego pliku musimy być *.html
Plik index.html otwieramy na 2 sposoby:
– w przeglądarce
– w edytorze tekstowym
https://youtu.be/m_sSmhvS1RQ?t=1537
Otwieramy plik index.html Visual Studio Code?
https://youtu.be/m_sSmhvS1RQ?t=1668
Podsumowanie naszych działań:
– 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.
Opis najprostszej strony www / index.html z prostym tekstem:
https://youtu.be/m_sSmhvS1RQ?t=2058

Nasz cytat z zajęć:

Logika zaprowadzi Cię z punktu A do punktu B.
Wyobraźnia zaprowadzi Cię wszędzie.
Cytat Einstein – podziękowanie dla Adama
Pokazujemy białe płótno:
– nie chcemy tekstu w części body
– chcemy płótno / canvas
https://youtu.be/m_sSmhvS1RQ?t=2656
Płótno nam się narysowało na biało – nie widać:
– czy narysował się?
https://youtu.be/m_sSmhvS1RQ?t=2902
Zamalowujemy canvas na żółto:
– współrzędne planszy
– parametry wypełniania, rysowanie prostokąta
https://youtu.be/m_sSmhvS1RQ?t=2954
WIELKA RADOŚĆ z prostego żółtego prostokąta
– nawet zwykły żółty prostokąt narysowany przez nam może dać nam radość!
– pięknie nam narysował
Podsumowanie – czego potrzebujemy by mieć piękny, żółty prostokąt?
– 3 rzeczy
– index.html a nie index.txt
– otworzyć w edytorze tekstu / przeglądarce
– wpisać w notatniku tekst strony www
Rysujemy podłogę – niebieski prostokąt:
https://youtu.be/m_sSmhvS1RQ?t=3266
RADOŚĆ z niebieskiej podłogi!
https://youtu.be/m_sSmhvS1RQ?t=3573
Podsumowanie kodu do niebieskiej podłogi:
https://youtu.be/m_sSmhvS1RQ?t=3682
Bawmy się! Eksperymentujmy!
– 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
RADOŚĆ – pokazać – eksperymentowania!
– w programowaniu fajnie się eksperymentuje, psuje, można wrócić do przedniego kodu!
https://youtu.be/m_sSmhvS1RQ?t=3772
Rysujemy piłkę!
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
Na czym polega ruch?
– jest rysowany kilkadziesiąt kilkaset razy na sekundę…
https://youtu.be/m_sSmhvS1RQ?t=4340
JavaScript – tworzymy animację:
– funkcja Animacja
https://youtu.be/m_sSmhvS1RQ?t=4364
POKAZAĆ – dzieje się magia:
– 100 razy na sekundę wywołuj kod Animacja
– nie ma ruchu
https://youtu.be/m_sSmhvS1RQ?t=4464
Ależ RADOŚĆ
RADOŚĆ ze spadającej piłki!
– WIELKA RAROŚĆ
– pokazać
– leci, przebija ziemie!
https://youtu.be/m_sSmhvS1RQ?t=4601
W JavaScript jedna rzecz źle – jeden znak – i już wszystko nie działa!
– jak znajdować błąd?
https://youtu.be/m_sSmhvS1RQ?t=4856
Wytłumaczenie kodu animacji:
– następne rysowanie przesunięte o prędkość
– to cała animacja
https://youtu.be/m_sSmhvS1RQ?t=4828
Kolizja – piłka odbija się od Ziemi:
– 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:
Olimpiada ZAAWANSOWANA
Grafy I
2022.10.06
Link do zajęć: https://youtu.be/LeTSxzf0XuI?t=2015

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

Olimpiada Informatyczna POZIOM II – zajęcia #3 – 2022.09.28
Hashe – Zadanie Caps Lock
Link do zajęć: https://youtu.be/WZojS2DHEK0?t=21
Poprzednie zajęcia – Potyczki Algorytmiczne
Na zajęciach pomysł który ma nazwę!
Pomysł który ma nazwę!
– hashe
– użyliśmy hashowania logując się do librusa, banku, dowolnego serwisu
https://youtu.be/WZojS2DHEK0?t=41
Zaproszenie na zajęcia #4:
– Hashe rozdzielone na 3 zajęcia!
https://youtu.be/WZojS2DHEK0?t=106
Co się dzieje gdy logujesz się do banku?
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
Co to jest hashowanie?
Przypisanie napisowi liczby
Gdzie jest potrzebne hashowanie?
– 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
Czy hashe mogą się powtórzyć?
– 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
Dlaczego hashowanie – podsumowanie:
– bezpieczeństwo – trudno odtworzyć hasło z hasha
– szybkie porównywanie
– na zajęciach szybkie porównywanie
https://youtu.be/WZojS2DHEK0?t=757
Czy mając hash możemy go rozszyfrować?
Omówienie zadania Caps Lock:

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

Olimpiada Informatyczna OD PODSTAW #3 – 2022.10.04
Jak wykorzystać Sumy prefiksowe – zadanie Dziwne Cząsteczki
Link do zajęć: https://youtu.be/jsaVtx5WQv0?t=14
Co jest naszym celem?
Dlaczego odkrywamy?
– by gigancie tego świata – facebooki, google chcieli nas do rozwiązania problemów
Dlaczego się spotykamy?
– przygotowujemy się do olimpiady informatycznej
– komputery wolne
– chcemy by komputer znalazł lek, ekologiczny plastik, najlepszą strategię inwestycyjną
https://youtu.be/jsaVtx5WQv0?t=14
Olimpiada kontra życie!
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
Ten który daje szczęście innym sam na pewno jest szczęśliwy!
Mamy pierwsze narzędzie do przyspieszania komputera!
– 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
Do czego przydają sumy prefiksowe?
– 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
Potrzeba nas!
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
Ośrodki Reserach and Development powstają też w Polsce!
– 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
Zadanie Dziwne cząsteczki jest bardzo mocne!
– 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
Przedstawienie Patryka Bulińskiego
https://youtu.be/jsaVtx5WQv0?t=1038
Omówienie zadania Dziwne Cząsteczki:
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
Zadanie z Olimpiady!
Oddziaływania możemy podzielić na 2 rodzaje:
https://youtu.be/jsaVtx5WQv0?t=2450
Wyjaśnienie 2:
https://youtu.be/jsaVtx5WQv0?t=4085
Oddziaływania liczymy tylko raz – dla danej cząsteczki z poprzednimi w lewo:
https://youtu.be/jsaVtx5WQv0?t=2892
Oddziaływanie z mocą k – jak liczymy
Oddziaływanie z mocą k – jak tworzymy sumy prefiksowe

https://youtu.be/jsaVtx5WQv0?t=3187

Podsumowanie liczenia oddziaływania z mniejszymi równymi k:
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
Jak liczymy tablicę zlicz?
https://youtu.be/jsaVtx5WQv0?t=4171
Liczymy sumę oddziaływań z cząsteczkami dalszymi niż k:
https://youtu.be/jsaVtx5WQv0?t=5018
Analiza działania algorytmu na przykładzie:
https://youtu.be/jsaVtx5WQv0?t=5632
Analiza kodu który rozwiązuje nasze zadanie:
https://youtu.be/jsaVtx5WQv0?t=6990
Mamy kłopot – przeanalizujemy sami przykład
https://youtu.be/jsaVtx5WQv0?t=8042Złożoność naszego rozwiązania:
– sortowanie w c++ jest szybkie
https://youtu.be/jsaVtx5WQv0?t=8133
Zapowiedź Olimpiada OD Podstaw #4:
https://youtu.be/jsaVtx5WQv0?t=9190
Programowanie OD PODSTAW #3
Uczymy komputer decyzji
2022.10.03
Link do zajęć: https://youtu.be/rN7NFTpGMiI?t=32
Decyzje!
– 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
Jak nauczyć się programować?
Żeby nauczyć się programować trzeba pisać programy!
– 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
Jeśli sami będzie sami pisać challenge, robić challenge:
– 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
Gdzie są informacje o zajęciach?
– na górze strony http://oki.org.pl/ jest link do zajęć, challenge
– są quizy
Lista wszystkich zadań
– Zajęcia -> Challenge -> Lista zadań
– to najważniejsze – dziękuję
58 osób wrzuciło przynajmniej jedno zadanie
– 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
Dogłębna analiza błędu
– brak przekierowania i cudzysłowu
– dokładny opis programu
– zmienne, wejście, wyjście – dokładny opis
https://youtu.be/lxiIPZvPgKI?t=774
Wprowadzanie danych z klawiatury – cin:
– zapamiętywanie w zmiennej
– wprowadzanie danych z klawiatury w ideone
https://youtu.be/lxiIPZvPgKI?t=1580
Komputer podejmuje decyzje – początek zajęć
– 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
 – dokładne omówienie if
https://youtu.be/lxiIPZvPgKI?t=2194Po warunki if w nawiasach nie dajemy średnika:
https://youtu.be/lxiIPZvPgKI?t=2435
Dlaczego dajemy spacje po komendach zależnych od if?
– 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

Warunek tyczy się tylko jednej instrukcji
– Samo mięso
Jak działa klamra – Chcemy by były 2 instrukcje wypisane
– 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

Nie podstawiamy kilku znaków pod char
https://youtu.be/lxiIPZvPgKI?t=3688
Różnica między tekst i znak
– do char podstawiony znak w podwójmy cudzysłowuw pojedynczym cudzysłowie
https://youtu.be/lxiIPZvPgKI?t=3731
C++ bardzo mocno rozróżnia znak od tekstu
– pokazanie błędu w kompilatorze
– oszukaliśmy C++
Podwójny warunek I jednocześnie AND &&
– 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
Podwójny warunek OR lub
– 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

Zapowiedź OKI #4
– 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
 – możemy wysłać Pani od fizyki, informatyki
–  będzie satysfakcja
– te 3 kroki, challenge zaprocentują
https://youtu.be/lxiIPZvPgKI?t=5160
Olimpiada ZAAWANSOWANA
Dynamik
2022.09.29
Link do zajęć: https://youtu.be/dZTcFGECpyY?t=1403

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

Olimpiada Informatyczna POZIOM II – zajęcia #3 – 2022.09.28
Pomysł – zadanie Monety
Link do zajęć: https://youtu.be/dpedTv7MvAI?t=35
Kim jest Tomek Kwiatkowski?
– student I roku UW Informatyki
– Staszic
– prowadził Olimpiada Informatyczna OD PODSTAW
Zajęcia poziom II:
Co oznacza poziom II
https://youtu.be/dpedTv7MvAI?t=95
Zapowiedź zajęć #3 – Hashe:
– 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

Challenge #2
– fajna forma rozwijania się
– zobaczymy progres po 2m – 6m
https://youtu.be/dpedTv7MvAI?t=8982
Olimpiada Informatyczna OD PODSTAW #2 – 2022.09.27
Sumy prefiksowe
Link do zajęć: https://youtu.be/K4QtM9ycYl8?t=23
Co jest naszym celem?
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!
Ulepszajmy / negujmy
– 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
Efekt po roku?
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!
Maciek Wiśniewski – przedstawienie:
Omówienie zadania Rewolucja ciapongowa 1:
https://youtu.be/K4QtM9ycYl8?t=1082
Czym są sumy prefiksowe:
https://youtu.be/K4QtM9ycYl8?t=2489
Jak policzyć sumy prefiksowe?
https://youtu.be/K4QtM9ycYl8?t=2725 
Jak policzyć sumę liczb przy pomocy sum prefiksowych?
https://youtu.be/K4QtM9ycYl8?t=3661 
Jedna operacja zamiast miliona!
Dlaczego sumy prefiksowe?
– wykonujemy jedną operację zamiast 1000 czy liniona operacji!
https://youtu.be/K4QtM9ycYl8?t=3869

Zajęcia numer #3 Olimpiada OD PODSTAW:
https://youtu.be/K4QtM9ycYl8?t=6424

Programowanie OD PODSTAW #2
Zmienne, wejście – program potęga
2022.09.19
Link do zajęć: https://youtu.be/rN7NFTpGMiI?t=32
Nasz poprzedni krok prowadzi do…
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
Jak nauczyć się wymyślać?
– 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
Wprowadzanie danych z klawiatury:
https://youtu.be/vkLBq7S2yC8?t=1652

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

 

Olimpiada Informatyczna OD PODSTAW #1 – 2022.09.21
Kto wygra bitwę – szukamy Lidera
Link do zajęć: https://youtu.be/fyRxKSGxFLs?t=50
Dlaczego Olimpiada Informatyczna?
https://youtu.be/fyRxKSGxFLs?t=50
Link do powyższego omówienia zadania Kto wygra bitwę?
https://youtu.be/fyRxKSGxFLs?t=1865
Kod / linki / omówienie:
https://oki.org.pl/kto-wygra-bitwe
Złożoność rozwiązania brutalnego – ile operacji musi wykonać komputer?
https://youtu.be/fyRxKSGxFLs?t=3042
Quiz – ile operacji na Olimpiadzie? – złożoność:
https://youtu.be/fyRxKSGxFLs?t=7976
Challenge Olimpiada OD PODSTAW #1
https://youtu.be/fyRxKSGxFLs?t=7775
Mamy zadanie z rozmowy kwalifikacyjnej Microsoft / Amazon:
– jeśli uda nam się to rozwiązać to czy jest większa radość?
https://youtu.be/fyRxKSGxFLs?t=7811
Ważne by pomyśleć nad każdym zadaniem!
– 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
Zapowiedź Olimpiada OD PODSTAW #2
– 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

 

Programowanie OD PODSTAW #1
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

Olimpiada ZAAWANSOWANA
Pierwszy program
2022.09.22
Link do zajęć: https://youtu.be/rN7NFTpGMiI?t=32

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

Olimpijska droga – rozmowa z Szymonem Hajderkiem – prowadzący Olimpiada OD PODSTAW

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

Szymon startuje we wrześniu od zera i w tym samym roku zdobywa srebro Olimpiady Informatycznej Juniorów – czołowa 12-tka:
– fenomenalny sukces!
https://youtu.be/SMRhtrbm20w?t=435
Czasami jest tak, że nam się nie chce – to normalne!
– 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
Szymon robił około 4-5 zadania tygodniowo:
– 4 zadania wymagające
– czasami potrzeba przerwy / czytania książek
Każde kolejne zadanie nas napędza!
– każde z bardziej wymagających
https://youtu.be/SMRhtrbm20w?t=633
Szedł do Olimpiady na zajęciach bo ciekawe, by się pouczyć
– 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
Potrzebujemy potwierdzenia, że jesteśmy dobrzy
– każdy sukces dodaje paliwa
https://youtu.be/SMRhtrbm20w?t=792
Lauerat daje możliwośc pójścia do wybranej szkoły:
– wymagająca szkoła z matematyką
– wymierny efekt
– nie po to to robimy, przy okazji to robimy
https://youtu.be/SMRhtrbm20w?t=831
Czy warto zacząć wchodzić w Olimpiadę?
– 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ę
Co daje satysfakcję Szymonowi?
– 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
Odkrywanie to najpiękniejsza nauka!
– 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=999
Olimpijska droga – rozmowa z Mikołajem Bulge – prowadzący Olimpiada dla zaawansowanych

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

Stwórz wartościowy zawodowo rok! Rozmowa Daniel Olkowski i Mirosław Zelent  poniedziałek, 5 września 2022, 16:00

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

Zakończenie Olimpijskiego Koła Informatycznego czwartek, 26 maja 2022, 18:00

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

 

Programowanie od podstaw #31 – wtorek 17 maja 2022, 18:00

Link do zajęć:
Temat: Co dalej?

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

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

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

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

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

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

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

 

Olimpiada od Podstaw #31 czwartek, 19 kwietnia 2022

Temat: Quick sort – zadanie Miś Uszatek 2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

Olimpiada dla zaawansowanych #31 poniedziałek, 16 maja 2022, 18:30

Temat: 2-SAT

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

Olimpiada dla zaawansowanych #30 poniedziałek, 9 maja 2022, 18:30

https://youtu.be/7ZI1Hm5VBSE?t=368
Temat: Teoria gier v2

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

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

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

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

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

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

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

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

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

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

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

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

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

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

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

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

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

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

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

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

 

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

 

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

 

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

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

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

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

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

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

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

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

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

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

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

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

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

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

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

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

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

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

 

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

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

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

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

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

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

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

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

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

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

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

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

 

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

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

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

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

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

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

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

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

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

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

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

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

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

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

 

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

 

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

W mapie indeksy to klucze
– na przykład indeksy jako napisy to raczej lepiej nazwać kluczami
https://youtu.be/gnHaRSZ1tIo?t=2275

Dla danego klucza przechowujemy jedną wartość – jak w tablicy
https://youtu.be/gnHaRSZ1tIo?t=2357

Możemy indeksować ujemnymi wartościami!
https://youtu.be/gnHaRSZ1tIo?t=2476

Map – ulepszony set – set z indeksami (set nie ma indeksów):
https://youtu.be/gnHaRSZ1tIo?t=2571

Złożoność map
– koszt
– logarytmiczna
https://youtu.be/gnHaRSZ1tIo?t=2720

Logarytmy, matematyka – to nasz przyjaciel
– złożoność
– algorytmy logarytmiczne są uważane za super szybkie
https://youtu.be/gnHaRSZ1tIo?t=2886

Challenge #21
https://youtu.be/gnHaRSZ1tIo?t=5981

Zadania Challenge #21:
https://oki.org.pl/challenge-programowanie-od-podstaw-21

 

Olimpiada OD PODSTAW #21 – czwartek, 2 marca 2022, 18:00
Link do zajęć: https://youtu.be/jOqGMOGJQ1s?t=17
Temat: Find and Union

LeetCode czyli zadania z interview do Google’a Facebook’a, ….
Platforma LeetCode
– zawiera zadania z interview Google’a, Facebook, Amazon, …
https://youtu.be/jOqGMOGJQ1s?t=17

Za tydzień quizy!
Zapraszam na zajęcia za tydzień!
– algorytmy, techniki, podejścia
– strategia
– quizy
– co robić czego nie robić
https://youtu.be/jOqGMOGJQ1s?t=49

WARSZTATY OIJ!
Zdalne warsztaty olimpijskie
https://youtu.be/jOqGMOGJQ1s?t=97

Dlaczego proste pytanie?
– co to jest klika?
https://youtu.be/jOqGMOGJQ1s?t=590

Co to jest klika?
https://youtu.be/jOqGMOGJQ1s?t=630

Każdy kij ma dwa końce!
– jak to wpływa na krawędzie?
https://youtu.be/jOqGMOGJQ1s?t=767

Czy liczba krawędzi będzie całkowita?
https://youtu.be/jOqGMOGJQ1s?t=816

Omówienie zadania Min Cost to Connect All Points
https://youtu.be/jOqGMOGJQ1s?t=1117

Kod / omówienie zadania Min Cost to Connect All Points
https://oki.org.pl/min-cost-to-connect-all-points

Jak nazywa się graf który nie ma cykli i jest spójny?
https://youtu.be/jOqGMOGJQ1s?t=1820

Zadanie pokazuje algorytm Find And Union:
https://youtu.be/jOqGMOGJQ1s?t=2036

Omówienie kodu:
https://youtu.be/jOqGMOGJQ1s?t=4744

CHALLENGE #21 Olimpiada OD PODSTAW!
https://youtu.be/jOqGMOGJQ1s?t=5576

Zadania Challenge #21:
https://oki.org.pl/challenge-olimpiada-od-podstaw-21

 

Olimpiada DLA ZAAWANSOWANYCH #20 – poniedziałek, 28 lutego 2022, 18:30
Link do zajęć: https://youtu.be/hxWriRiRNcM?t=260
Temat: Drzewa przedział – przedział

Drzewo przedział-przedział:
https://youtu.be/exw_IXzDxVI?t=1088
Punkt przedział / przedział punkt – czy możemy połączyć?
https://youtu.be/exw_IXzDxVI?t=1120
Podejście przedział-przedział:
https://youtu.be/exw_IXzDxVI?t=1234
Co przekazujemy wierzchołkom poniżej
https://youtu.be/exw_IXzDxVI?t=1765
Złożoność drzew przedział – przedział:
https://youtu.be/exw_IXzDxVI?t=2372
Operacja query:
https://youtu.be/exw_IXzDxVI?t=2640
Koleje – IX etap Olimpiady Informatycznej
https://youtu.be/exw_IXzDxVI?t=2914
Drzewa przedział-przedział  – kod:
https://youtu.be/exw_IXzDxVI?t=3520
Fajnie mieć możliwość startować w Olimpiadzie!
– fajnie się pisze / fajnie się ma
– jakie błędy pominął Mikołaj
– wiedza z Olimpiady procentuje
– nie nastawiajmy się na finał – liczą się zadania które zrobiliście, debugowania
– ułatwienie do matury
https://youtu.be/exw_IXzDxVI?t=4397

Co robić przed konkursem / w trakcie konkursu:
https://youtu.be/hxWriRiRNcM?t=3725

 

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

Edytor wersja v 2.0
– kończymy edytor z poprzedniego tygodnia
https://youtu.be/EXENvWJLI5k?t=10

Funkcje naszego edytora
– rozmiar / wielkość pędzla
– czyscie, zrestotować, zapisać
https://youtu.be/EXENvWJLI5k?t=31

Nasz edytor ma bug-a!
– Daria go znalazła
https://youtu.be/EXENvWJLI5k?t=49

– wydaje się że bugi są niedobre
https://youtu.be/EXENvWJLI5k?t=67

Bugi mogą być pożyteczne
– lista firm które płacą za znalezienie buga
– kwoty jakie płacą za znalezienie buga
https://youtu.be/EXENvWJLI5k?t=81

Dlaczego firmy płaca za znalezienie bugów?
– bezpieczeństwo
– firmy proszą o nas pomoc w znalezieniu bugów
https://youtu.be/EXENvWJLI5k?t=153

Zachęcam do konkursu Mistrz Programowania:
– strona aktualności
– runda 5 – zadanie ale bug
– bugi i podatki pewne
– ilośc bugów per linia kodu
– co powodują bugi – zawieszenie gier, zawładnięcia komputerem, katastrofy w kosmosie
– co trzeba zrobić
https://youtu.be/EXENvWJLI5k?t=203

Runda 7 – zadanie koczkodan:
– figura szachowa
– co trzeba zrobić
https://youtu.be/EXENvWJLI5k?t=310

Dziękuję Emilowi Makalowi
– ułożył fantastyczne zadanie
– VII klasa
– Zachęcam do układania zadań
– układanie zadań bardzo nas rozwija
– musimy wymyśleć rozwiązanie, zastanowić się czy istneje
– jesteśmy jak naukowcy
– starają się znaleźć problem, rozwiązać, nie wiedzą czy rozwiązanie istnieje
– my mając zadanie na konkursie wiemy, że rozwiązanie istnieje
– bardziej frapujące, bardziej ciekawe
– gdzie wysyłać pomysły na zadanie
– zachęcam do układania zadań – jeszcze bardziej frapująca przygoda
https://youtu.be/EXENvWJLI5k?t=336

Czy coś Wam kojarzy z data 22.02.2022
– palindrom
– zachęcam do quizu – kiedy następna daty
– inny palindrom
– Jan Kochanowski mistrz palindromów
– łączy matematykę i informatykę
https://youtu.be/EXENvWJLI5k?t=405

Skończył się II etap OI-a Olimpiady Informatycznej
– odkrywanie, poznawanie, bycie mocniejszym
– nie chodzi o żadne punkty
– wycieczka rowerowa
– satysfakcję nam sprawia bycie w drodze – pedałowanie, robienie zadań
– Tomek 330 punktów – w III etapie
– mam nadzieję, że powtórzy sukces laureata
– ale najważniejsze że się dużo nauczy, będzie miał fun z drogi
https://youtu.be/EXENvWJLI5k?t=477

Pokazujemy bug-a w naszym kodzie:
– ciekawy
– rysuje bez naciśniećia
https://youtu.be/EXENvWJLI5k?t=672

Jak mam na imię?
https://youtu.be/EXENvWJLI5k?t=730

Jak zaczynałem się uczyć programowania?
– VI klasa SP
– Commodore 64
– pozdrawiam Atarowców
– Tak jak teraz jest wojna Windows/Linux tak wtedy wojna C64/Atari
– Pozdrawiam wszystkich Atarowców!
https://youtu.be/EXENvWJLI5k?t=736

Tworzymy edytor graficzny – główna część – początek:
– treść – co zrobiliśmy
https://youtu.be/EXENvWJLI5k?t=1334

Kod / linki:
https://oki.org.pl/edytor-graficzny

Otwieramy pusty plik index.html:
– zwracamy uwagę na rozszerzenie
– rozszerzenie *.html
– jak sprawdzić
– Visual Studio Code – edytor tekstowy
– dwa okna – edytor tekstowy VSC + przeglądarka
https://youtu.be/EXENvWJLI5k?t=1393

Kod z poprzedniej lekcji
– udostępniamy / wklejamy
– pokazujemy co robi
– omówienie poprzednie kodu
https://youtu.be/EXENvWJLI5k?t=1632

Czy nazwa strony może być inna?
– index.html – domyślna strona która jest wyświetlana z katalogu zdalnego serwera http
– ale nazwa może być dowolna lokalnie – rozszerzenia *.html
https://youtu.be/EXENvWJLI5k?t=2111

Usuwamy bug-a
– podniesienie mysz poza canvas nie jest odnotowane – dalej rysuje przy powrocie na canvas
– zmieniamy miejsce gdzie podniesienie / opuszczenie myszy – na documencie – poprzednio na canvas
https://youtu.be/EXENvWJLI5k?t=2211

Bardzo ważna uwaga Persiego
– wersja 1.4
– usunięty poważny bu
– powinniśmy pisać dokumentację – jakie bugi usunięte
– super dlaczego nie wersja 2.0?
– sami możemy nazywać jak chcemy – to my tworzymy edytor
https://youtu.be/EXENvWJLI5k?t=2525

Challenge #20 – opis:
https://youtu.be/EXENvWJLI5k?t=6809

Zmieniamy wielkość pędzla:
https://youtu.be/EXENvWJLI5k?t=2657

Malowanie daje fun!
Zmieniamy wielkośc pędzla
– to już nie jest rysowanie – to jest malowanie!
https://youtu.be/EXENvWJLI5k?t=3014

Nasz program ma bug-a
Po odświeżeniu nie rysuje
Ustawiamy wartości początkowe
Wywołujemy je również na samym początku.
– resetujemy ustawienia, wartość domyślna pędzla
https://youtu.be/EXENvWJLI5k?t=3239

 

Olimpiada OD PODSTAW #20 – czwartek, 2 marca 2022, 18:00
Link do zajęć: https://youtu.be/tO1WjVAICMs?t=15
Temat: Zadanie z EJOI – Europejskiej Olimpiady

EJOI – Europejska Olimpiada Informatyczna Juniorów:
– dasz radę rozwiązać zadanie!
https://youtu.be/tO1WjVAICMs?t=15

II etapu Olimpiady – przygotowania
Jak się przygotowujemy do II etapu OIJ?
– zadania z poprzednich OIJ, zadania z USACO
– To najlepsze, robić zadania!
– Sprawdzić się pod presją czasu – znaleźć czas taki jak na OIJ i zrobić jeden etap
– zadania z Codeforces – inny typ zadań ale warto, presja czasu
https://youtu.be/tO1WjVAICMs?t=98

Dlaczego system dwójkowy?
– podstawa komputerów
– my widzimy więcej cyfr.
https://youtu.be/tO1WjVAICMs?t=770

Liczby dwójkowe:
– zamiana liczb dwójkowych na dziesiętne:
– ile to 100 dwójkowo?
– na czym polega system dziesiętny?
– na czym polega system dwójkowy?
https://youtu.be/tO1WjVAICMs?t=830

Omówienie zadania Hanging Rack:
https://youtu.be/tO1WjVAICMs?t=1257

Kod / linki:
https://oki.org.pl/hanging-rack/

Wierzchołek na samej górze – jak schodzą kurtki w lewo i w prawo
https://youtu.be/tO1WjVAICMs?t=2144

Numerujemy kurtki od 0:
– patrzymy na zapis dwójkowy
– kurtki z zerem na końcu dwójkowo (parzyste) idą na lewo, z jedynką na końcu idą na prawo (nieparzyste)
https://youtu.be/tO1WjVAICMs?t=2220

Jak kurtki rozdzielają się na poziomie o jeden niżej głównego:
– decyduje druga cyfra od końca dwójkowo
https://youtu.be/tO1WjVAICMs?t=2450

Analizujemy jeszcze jeden poniżej wierzchołek:
– decyduje trzecia cyfra od końca dwójkowo
https://youtu.be/tO1WjVAICMs?t=2637

Jak rozmieszczą się płaszcze?
https://www.youtube.com/watch?v=tO1WjVAICMs&t=2684

Ostatnia cyfra dwójkowo mówi nam gdzie iść – rozwiązanie:
https://youtu.be/tO1WjVAICMs?t=2720

Czy możemy zrobić graf z wierzchołków?
– ilość wierzchołków szybko rośnie.
https://youtu.be/tO1WjVAICMs?t=2928

Jak rozwiązać nasze zadanie?
– numerujemy wieszaki
– mając numer łatwo odtworzyć płaszcz
– syn po lewej to 2*ja, syn po prawej to 2*ja+1
– mając reprezentację dwójkową wiemy jak chodzić po drzewie – wiemy do którego wierzchołka dojdziemy
https://youtu.be/tO1WjVAICMs?t=3057

Jak sprawdzamy czy idziemy w lewo czy w prawo?
– dzielimy na 2, bierzemy resztę, wynik zaokrąglamy w dół
https://youtu.be/tO1WjVAICMs?t=3518

Mamy pierwszy wierzchołek – ostatnia cyfra dwójkowa
Co z drugim wierzchołkiem?
– dzielimy na dwa zaokrąglając w dół
https://youtu.be/tO1WjVAICMs?t=3610

Omówienie kodu:
https://youtu.be/tO1WjVAICMs?t=4360

Challenge #20 – opis – Olimpiada OD PODSTAW
https://youtu.be/tO1WjVAICMs?t=5648

 

Olimpiada DLA ZAAWANSOWANYCH #17 – poniedziałek, 24 stycznia 2022, 18:30
Link do zajęć: https://youtu.be/hxWriRiRNcM?t=260
Temat: Przed II etapem

Czego nie ma drzewo?
https://youtu.be/hxWriRiRNcM?t=292

Co gdy przekroczymy int?
https://youtu.be/hxWriRiRNcM?t=555

Historia pewnego int-a:
– przekręcamy int a a zmienia się wartość d
– to jest undefinined behaviour
– może sformatować komputer
– u Mikołaja przekręcony int c zmieniał wartość d
https://youtu.be/hxWriRiRNcM?t=657

Złożoność programu – O(n):
https://youtu.be/hxWriRiRNcM?t=847

Co to jest algorytm online?
https://youtu.be/hxWriRiRNcM?t=970

Przesunięcie bitowe:
https://youtu.be/hxWriRiRNcM?t=1090

Co to jest algorytm dynamiczy?
https://youtu.be/hxWriRiRNcM?t=1625

Zasady techniczne / ustalenia / co robić na II etapie
https://youtu.be/hxWriRiRNcM?t=2358

 

Programowanie OD PODSTAW #19 – wtorek, 15 lutego 2022, 18:00
Link do zajęć: https://youtu.be/Ck6k19b7FVU?t=4
Temat: Tworzymy Edytor graficzny – część 1

Tworzymy edytor graficzny!
– możemy zmieniać kolor / wielkość pędzla
https://youtu.be/Ck6k19b7FVU?t=17

Olimpiada matematyczna:
– Dlatego nie mieliśmy zajęć – Tomek miał II etap 5/6 zadań
https://youtu.be/Ck6k19b7FVU?t=57

II etap OI-a
– start
– podstawówki też
– życzenia dla Tomka
– okazja by zapytać Tomka
https://youtu.be/Ck6k19b7FVU?t=90

Zachęcam do udziału w konkursach matematycznych
– serce rozwiązywanie problemów
– młotki, wiertarki – atakujemy problem, problem rozwiążemy za sekundę a nie za miliard mialiardów lat
– jesteśmy w stanie zrobić magię
https://youtu.be/Ck6k19b7FVU?t=122

Zachęcam do udziału w Olimpiadzie Informatycznej:
– nieważne czy w SP czy liceum
– nie chodzi o punkty / przejście do etapów
– liczy się to co wymyślisz
– liczy się wiedza która zdobędziesz / wyszukasz / wynajdziesz
– liczą się problemy które będziesz potrafić rozwiązać
– konkursy USACO, codeforces
https://youtu.be/Ck6k19b7FVU?t=149

Konkurs Mistrz Programowania – aktualności
– runda 6
– mistrz programowania / aktualności
– Zadanie Informatyk – czym różni się początkujący od zaawansowanego
– każdy to zadanie zrobi / zachęcam do wspólnej zabawy / przekazania kolegom koleżankom
– zadanie 210 – jest 10 rodzajów ludzi
https://youtu.be/Ck6k19b7FVU?t=202

– dziękuję Natalii Mietelskiej / Patrykowi Bulińskiemu za przygotowanie zadań
https://youtu.be/Ck6k19b7FVU?t=296
– pokazują wiedzę o świecie – Bitwa pod Wiedniem – historycznie możemy się odnaleźć
– bug – ile można zarobić na bugach – zadanie ale bug

OKI jest na Tik Toku – OKI_Kolo
– jeden z uczniów pomaga – dziękuję
– krótkie filmiki / fragmenty zajęć
https://youtu.be/Ck6k19b7FVU?t=377

Dlaczego OKI na Tik Toku?
– przez tik toka staramy się trafi do większej grupy osób
– by nasza społeczność rosła!
– projekt Mateusza – sprawne miasto – pisze w grupie
– jesteśmy dla siebie wsparciem, inspiracją
– im więcej nas, pomysłów, każdy patrzy inaczej, tym lepiej
https://youtu.be/Ck6k19b7FVU?t=483

Czy OKI uczy Pythona?
– uczymy narzędzi do Olimpiad / przyspieszania działania komputera – lepszy C++
– Python jest dobry do skryptów, by coś zrobić z plikami na dyskach
– Python jest fantastyczny
https://youtu.be/Ck6k19b7FVU?t=441

Omówienie zadania – Tworzymy edytor graficzny – część 1:
https://youtu.be/Ck6k19b7FVU?t=848

Skrócone omówienie kodu edytora graficznego – część 1:
https://youtu.be/Ck6k19b7FVU?t=5222

Otwieramy pusty plik index.html
– pokazuj rozszerzenia plików
– rozszerzenie html
https://youtu.be/Ck6k19b7FVU?t=886

Używajmy Visual Studio Code do edytowania naszego kodu w index.html
– możemy w notepadzie
– preferuje w Visual Studio Code
https://youtu.be/Ck6k19b7FVU?t=994

Strona html z canvas do rysowania:
– dokładne omówienie
https://youtu.be/Ck6k19b7FVU?t=1276

Rysujemy koło/punkt na płótnie canvas:
– punkt/koło procedura
https://youtu.be/Ck6k19b7FVU?t=2033

Umiemy narysować punkt – chcemy rysować myszą
– czego nam brakuje
– musimy reagować na zdarzenie
– przechwytujemy zdarzenia
https://youtu.be/Ck6k19b7FVU?t=2536

Rysujemy przy ruchu myszy!
– Hurra!
– Możemy się pobawić
– grubaśny pędzel
https://youtu.be/Ck6k19b7FVU?t=2830

DRŻYJ ŚWIECIE – POWSTAJE SUPEREDIT
– dajemy soczysty tytuł
– powstaje edytor graficzny SuperEdit
– drżyj świecie – to będzie najlepszy edytor
– rzucam wyzwanie światu
– na razie tylko rysuje smugi – ale w przyszłości zmiecie inne edytory z runku
https://youtu.be/Ck6k19b7FVU?t=3240
https://youtu.be/Ck6k19b7FVU?t=3245

Nasz program źle rysuje
– jest przesunięty
– mamy buga – nasz pierwszy bu!
– trzeba przesunąć rysowany punkt o offset canvas
https://youtu.be/Ck6k19b7FVU?t=3335

Tworzymy guzik do czyszczenia:
https://youtu.be/Ck6k19b7FVU?t=3990

Pierwszy element menu i zmieniamy na wersje 1.1 (usuniecie buga) i na wersje 1.2 (dodanie guzika czysc)
https://youtu.be/Ck6k19b7FVU?t=4003

Obsługa zdarzeń mysz wciśnięta / mysz podniesiona
https://youtu.be/Ck6k19b7FVU?t=5102

Majka koryguje brak zmiany wersji przy kolejnych istotnych wersjach edytora graficznego SUPEREDITa który zawładnie światem
https://youtu.be/Ck6k19b7FVU?t=5031

Jak zrobić okrąg zamiast koła?
– omówienie definiowania kształtu
– omówienie wypełniania kształtu (fill) vs rysowanie konturu (stroke)
https://youtu.be/Ck6k19b7FVU?t=6921

Jak rysować łuki?
– arc – definicja fragmentu okręgu / koła
https://youtu.be/Ck6k19b7FVU?t=7231

Challenge #19 – omówienie:
https://youtu.be/Ck6k19b7FVU?t=6201

 

Programowanie OD PODSTAW #18 – wtorek, 1 lutego 2022, 18:00
Link do zajęć: https://youtu.be/j2iE4SotFZA?t=13
Temat: Programowanie obiektowe – Zadanie Miasto

Programowanie obiektowe
– wchodzimy w programowanie profesjonalne programowanie
https://youtu.be/j2iE4SotFZA?t=13

Co nam daje programowanie obiektowe?
– bezpieczeństwo
– minimalizacja dziwnego stanu
– minimalizacja buga
– łatwo rozbudowywać
– wszystko co się tyczy miasta, gra w jednym miejscu
– upraszcza program
https://youtu.be/j2iE4SotFZA?t=34

Dlaczego stosujemy programowanie obiektowe
– mamy wszystko w jednym miejscu
– możemy użyć gracza,. miasto w wielu projektach
– za darmo pisze skomplikowane kody
– przyspiesza tworzenie aplikacji
– łatwo rozbudowywać – zmieniamy sposób implementacji metod
– interfejs zostaje
– dokładnie wiemy co klasa robi (public)
– porządek przy dużych projektach – nikt nie zmienia wwartosci zmiennych, minimalizacja bugów, stan klasy okreslony
https://youtu.be/j2iE4SotFZA?t=7185

Czy mając 15 lat mogę brać udział w projektach?
– licealiści stworzyli własny projekt – sprawne miasto
– 8 osób: grafik, programiści, osoba od marketingu
https://youtu.be/j2iE4SotFZA?t=137

Zachęcam do własnego projektu
– zbierzmy się w kilka osób
– popatrzmy czego brakuje
– może coś brakuje w edytorze graficznym – stwórz własny
– może plan zajęć dla szkoły
– wszędzie są braki, wystarczy się rozejrzeć
– jesteśmy jako programiści by pomagać
– znamy C++ / Python
– projekt napisany w JavaScript który tez znamy
https://youtu.be/j2iE4SotFZA?t=217

Konkursy nadają sens naszym działaniom
– jak się zarjestrować
– Opisy zadania: Route 66
– ranking
https://youtu.be/j2iE4SotFZA?t=284

Śmiało mówimy swoje opinie, wątpliwości – odkrywamy:
https://youtu.be/j2iE4SotFZA?t=2714

Omówienie zadania Miasto:
https://youtu.be/j2iE4SotFZA?t=1525

Skrót omówienia zadania Miasto:
https://youtu.be/j2iE4SotFZA?t=6895

Programowanie obiektowe:
– tworzymy miasto przy pomocy programowania obiektowego
– interfejs, część prywatna, część publiczna
https://youtu.be/j2iE4SotFZA?t=1674

Domyślnie całość jest prywatna w klasie (quiz):
https://youtu.be/j2iE4SotFZA?t=8198
Poprawna struktura klasy (quiz):
– część prywatna
– cześc publiczna
– odpowiednie funkcje
https://youtu.be/j2iE4SotFZA?t=8469
Dostęp do stanu klasy:
Dlaczego nie dajemy dostępu do zmiennych w klasie?
https://youtu.be/j2iE4SotFZA?t=8620

Olimpiada OD PODSTAW #18 – czwartek, 2 lutego 2022, 18:00
Link do zajęć: https://youtu.be/8m6_bOKvzqI?t=6
Temat: BFS, wszystko może być grafem – Zadanie Milk Pails

Od trzech zajęć grafy
-> Reprezentacja / DFS / Preorder
https://youtu.be/8m6_bOKvzqI?t=6

Dziś BFS
https://youtu.be/8m6_bOKvzqI?t=58

Grafem może być wszystko!
https://youtu.be/8m6_bOKvzqI?t=64

Omówienie zadania Milk Pails:
https://youtu.be/8m6_bOKvzqI?t=1001
Kod / linki:
https://oki.org.pl/milk-pails

Początek rozwiązania zadania Milk Pails:
https://youtu.be/8m6_bOKvzqI?t=1668

Tworzymy graf z wiader
– stany wiader staja się wierzchołkami
https://youtu.be/8m6_bOKvzqI?t=1754

Przekształciliśmy wiadra, przelewanie mleka na graf!
https://youtu.be/8m6_bOKvzqI?t=2368

Jak działa BFS?
– przechodzimy warstwami
– odległość 0, odległość 1
https://youtu.be/8m6_bOKvzqI?t=2384

Na czym polega BFS?
Przeszliśmy graf BFS-em
– ogólnie na czym polega BFS
https://youtu.be/8m6_bOKvzqI?t=3115

Czy jakiś wierzchołek może dać lepszy wynik w przyszłości w BFS?
https://youtu.be/8m6_bOKvzqI?t=3325

Co jest ważne w BFS?
https://youtu.be/8m6_bOKvzqI?t=3461

Czy można liczyć odległości DFS-em?
https://youtu.be/8m6_bOKvzqI?t=3608

Ja implementujemy BFS-a?
– szczegółowy opis
https://youtu.be/8m6_bOKvzqI?t=3820

Jak działa kolejka w C++?
– złożoność kolejki
https://youtu.be/8m6_bOKvzqI?t=4602

Jak  działa kolejka w Pythonie:
– skorzystajmy z collections (deque, append, poleft, popright, len)
– lista – będzie bardzo wolna
https://youtu.be/8m6_bOKvzqI?t=4823

Jak zrobić graf z dwóch liczb, graf stanów?
– u nas wierzchołkami nie sa liczby tylko pary liczb
– w wierzchołkach możemy przechowywać cokolwiek! – liczby, pary, napisy, wektory
– będziemy przechowywać wektor par
https://youtu.be/8m6_bOKvzqI?t=4969

Nie musimy trzymać naszego grafu!
https://youtu.be/8m6_bOKvzqI?t=5053

Złożoność BFS-a:
– O ( krawedzie + wierzcholki )
https://youtu.be/8m6_bOKvzqI?t=5242

Omówienie kodu, który rozwiązuje zadanie:
https://youtu.be/8m6_bOKvzqI?t=5350

Kod BFS-a:
https://youtu.be/8m6_bOKvzqI?t=5454

Challenge #18 – omówienie:
https://youtu.be/8m6_bOKvzqI?t=6762

 

Olimpiada DLA ZAAWANSOWANYCH #17 – poniedziałek, 24 stycznia 2022, 18:30
Link do zajęć: https://youtu.be/a27eXSugdPQ?t=932
Temat: Testowanie

Plan zajęć:
https://youtu.be/a27eXSugdPQ?t=932

Bruty przydają się w testowaniu:
https://youtu.be/a27eXSugdPQ?t=947

Najbardziej brutalny brut:
https://youtu.be/a27eXSugdPQ?t=982

Brut dla problemów wyboru:
https://youtu.be/a27eXSugdPQ?t=1268

Brut dla zadań z kolejnością:
https://youtu.be/a27eXSugdPQ?t=1564

Piszemy bruty – Linux rekomendowany!
https://youtu.be/a27eXSugdPQ?t=1758

Co potrzeba by przetestować rozwiązanie?
https://youtu.be/a27eXSugdPQ?t=1952

Jak losować?
https://youtu.be/a27eXSugdPQ?t=2234

Piszemy sprawdzarkę:
https://youtu.be/a27eXSugdPQ?t=3120

Po co testować?
– strategie na II etap:
https://youtu.be/a27eXSugdPQ?t=4057

Co robić przed II etapem?
https://youtu.be/a27eXSugdPQ?t=4949

 

Olimpiada OD PODSTAW #17 – czwartek, 27 stycznia 2022, 18:00
Link do zajęć: https://youtu.be/R4FOYOblSNE?t=89
Temat: Preoder / postorder – Zadanie Dyrektor patrzy

Weź udział w USACO!
https://youtu.be/R4FOYOblSNE?t=89

Co to jest drzewo
– spójny graf bez cykli
– jedna ścieżka między wierzchołkami
https://youtu.be/R4FOYOblSNE?t=274
Czy graf o jednym wierzchołku jest drzewem?
https://youtu.be/R4FOYOblSNE?t=553
Przykład – czy graf jest drzewem?
https://youtu.be/R4FOYOblSNE?t=711

Omówienie zadania Dyrektor patrzy:
https://youtu.be/R4FOYOblSNE?t=1755

Kod / linki:
https://oki.org.pl/dyrektor-patrzy/

Rozwiązanie brutalne zadania:
– sprawdzamy wszystkie wierzchołki nad naszym wierzchołkiem
– nie potrzebujemy nawet DFS
– odpowiednio numerując po prostu ojciec to wierzchołek podzielony przez 2
– złożoność takiego rozwiązania (ilosc_pytan razy liczba_osob)
https://youtu.be/R4FOYOblSNE?t=2490

Nasz problem rozwiązujemy DFS-em
– jest przewidywalny
– wytłumaczenie DFS-a
https://youtu.be/R4FOYOblSNE?t=2743

Preorder / Postorder:
– wytłumaczenie
– przykład – wartości preorder/ postorder
https://youtu.be/R4FOYOblSNE?t=2901
Co wynika z Preorder / Postorder?
https://youtu.be/R4FOYOblSNE?t=3350
Prorder/postorder pozwala na sprawdzenie czy dany wierzchołek jest przodkiem innego
– porównujemy preorder / postorder
https://youtu.be/R4FOYOblSNE?t=3515
Jak zrobić nasze zadanie korzystając z Preorder/Postorder?
https://youtu.be/R4FOYOblSNE?t=3780
Złożoność rozwiązania z Preorder / Postorder:
https://youtu.be/R4FOYOblSNE?t=3937
Omówienie kodu który rozwiązuje zadanie:
https://youtu.be/R4FOYOblSNE?t=4104
Implementacja Preorder / Postorder w kodzie programu:
https://youtu.be/R4FOYOblSNE?t=4571
Jak pamiętać znaki nierówności w preorder / postorder?
– narysujmy mały graf
– nie warto się uczyć na pmiaęć
– warto wiedzieć co sie dzieje
https://youtu.be/R4FOYOblSNE?t=4648

Co to jest poddrzewo:
https://youtu.be/R4FOYOblSNE?t=3477

Dlaczego Tomek lubi drzewa?
– chodząc DFS-em nie trzeba zaznaczać że wierzchołek jest odwiedzony
– ale trzeba pamiętać kto jest moim ojcem/dyrektorem by nie wywołać się w ojcu
https://youtu.be/R4FOYOblSNE?t=4178

Najpierw napiszmy nasze zadanie sami!
– nie umiemy – narysujmy na kartce drzewo z preorder / posrorder
– zobaczmy czy program liczy tak samo
https://youtu.be/R4FOYOblSNE?t=4947

Doświadczenie Tomka:
– piszmy najpierw zadanie sami
– na II / III etapie nie będziemy mieli omówienia ani kodu
https://youtu.be/R4FOYOblSNE?t=4991

Co trzeba znać na II Olimpiady?
– DFS, Binary Search, Gąsienica, Sumy Prefiksowe, Sito Eratostenesa
https://youtu.be/R4FOYOblSNE?t=5014

Jak wygląda wizyta u cioci?
– odwiedzamy DFS-em ciocie
https://youtu.be/R4FOYOblSNE?t=5350
DFS tworzy drzewo rozpinające na grafie:
– tworzy krawędzie drzewowe
– można łatwo policzyć ilość takich krawędzi
https://youtu.be/R4FOYOblSNE?t=5472

Challenge #17 – omówienie:
https://youtu.be/R4FOYOblSNE?t=5693

Krążki – Olimpiada Informatyczna – odwagi, nie ma się czego bać
– jest w naszym zasięgu
https://youtu.be/R4FOYOblSNE?t=5716

Jak być mistrzem DFS-a?
https://youtu.be/R4FOYOblSNE?t=6070

Za tydzień algorytm BFS!
https://youtu.be/R4FOYOblSNE?t=5844

 

Programowanie OD PODSTAW #17 – wtorek, 25 stycznia 2022, 18:00
Link do zajęć: https://youtu.be/AMouETtFmhg
Temat: Set – ćwiczenia / quiz

Wchodzimy w profesjonalne, ciekawe programowanie!
SET!
– tablica bez indeksów
https://youtu.be/V_vDDNdjP1U?t=13

Czy jest sens wnikać?
– kto używa C++
– Facebook / Microsoft / …
– C++ tam gdzie szybkość, grafika, medycyna
– tam gdzie potrzebna jest bliskość sprzętu
– dzięki C++ rozumiemy architekturę komputera
– świetnie sprawdza się na konkursach – jest szybki!
https://youtu.be/V_vDDNdjP1U?t=45

Czy jest sens wnikać?
– historia ucznia
– aplikacja do firmy, modelowanie rynków
– interview przeszedł bez problemów
– jako osoba która miała 20 lat dostał ofertę 6 000 funtów
– świetny programista / umie rozwiązywać problemy przy pomocy komputer
– co mam robić by w przyszłości mieć ciekawą pracę?
– wnikać!
– wykorzystywać w konkursy
https://youtu.be/V_vDDNdjP1U?t=146

Aktualne informacje dotyczące Mistrz Programowania:
– 350 użytkowników / 3 rundy
– zadania proste, które każdy zrobi
– są zadania które wymagają pomyślenia
– jak dołączyć / wysyłanie po rejestracji
– ranking
– statystyki – które zadanie łatwe, które trudne
https://youtu.be/V_vDDNdjP1U?t=226

Zadanie Bambus Happy 2
– na podstawie interview do firmy Google
– nieważne na ile punktów zrobicie
– po dwóch tygodniach setka? – motywacja – nie tylko możesz pracować u największych ale to oni o Ciebie będę się bili
– zachęcam do zrobienia!
–  można zrobić na 30 punktów, pomyśleć i mieć 100
– zachęcam by myśleć – to jest ta droga która zaprowadzi nas do przyłóżcie
– odwagi, warto mieć marzenia, warto każdego dnia robić krok w stronę naszych marzeń
https://youtu.be/V_vDDNdjP1U?t=317

Ile rund w konkursie?
https://youtu.be/V_vDDNdjP1U?t=402

Rozpoczynamy set
– od początku, od wytłumaczenia przeglądarki
– chcemy trzymać stopnie harcerskie
“trzy piora” – opis sprawnosci
“ons
– dołączamy set/string
https://youtu.be/V_vDDNdjP1U?t=413

Sprawność harcerska “trzy pióra” – na czym polega
– trzy dni milczenia, głodu i samotności
https://youtu.be/V_vDDNdjP1U?t=571

Ile tych samych sprawności może mieć harcerz?
– albo mam obserwatora, albo nie mam
– trzymamy sprawności w secie stringów
https://youtu.be/V_vDDNdjP1U?t=598

Jaki własności ma set?
– trzyma elementy raz
– uporządkowanie
– bez indeksów, indeksowanie zawartość, asocjacyjna
– struktura coś trzyma
https://youtu.be/V_vDDNdjP1U?t=676

Wypisujemy rozmiar zbioru:
https://youtu.be/V_vDDNdjP1U?t=720

Jak dodać element do zbioru?
https://youtu.be/V_vDDNdjP1U?t=853

Zbiór przechowuje zawsze jeden element / jedną instancję:
https://youtu.be/V_vDDNdjP1U?t=993

Co jest pojedyncze?
– harcerz ma jedną sprawność
– miasta są jedne
https://youtu.be/V_vDDNdjP1U?t=1023

Jak męczy się komputer?
Złożoność insert w set:
– porównanie z tablicą (czas stały)
– wyjaśnienie że złożoność to zależność od liczby danych wejściowych
– wykona potęgę dwójki która daje liczbę danych na wejściu
– set nie jest aż tak szybki jak tablica
https://youtu.be/V_vDDNdjP1U?t=1222

find /set – znajdowanie elementów w zbiorze:
https://youtu.be/V_vDDNdjP1U?t=1423

Co to jest end() w zbiorze?
– wskazuje na koniec
https://youtu.be/V_vDDNdjP1U?t=1509

Złożoność find:
– co to jest logarytm?
https://youtu.be/V_vDDNdjP1U?t=1655

Czym różni się tablica od zbioru?
https://youtu.be/V_vDDNdjP1U?t=1782

Jak chodzi po set – zbiorze?
– przejść po tablicy
– wylistować elementy w zbiorze
– nie ma indeksów – jak chodzić po zbiorze?
– jest iterator
– idziemy po zbiorze
– co to jest begin() end()
https://youtu.be/V_vDDNdjP1U?t=1832

Set trzyma wartości uporządkowane!
– wypisujemy wartości setu
– trzyma wszystko raz
– domyślnie trzyma uporządkowane rosnąco
https://youtu.be/V_vDDNdjP1U?t=2088

Nie ma indeksów, a wypisaliśmy wartosci!
– indeksowanie wartością
– więcej wartości uporządkowane
https://youtu.be/V_vDDNdjP1U?t=2193

Mam coś co zawsze jest posortowane
– lepsze od tablicy
– tablica jest nieposorotwana
https://youtu.be/V_vDDNdjP1U?t=2376

Złożoność przechodzenia po secie – liniowa:
https://youtu.be/V_vDDNdjP1U?t=2426

Usuwanie elementy ze zbioru:
https://youtu.be/V_vDDNdjP1U?t=2446

Czy możemy utworzyć set od intów?
– set może być złożony z elementów dowolnego typu
https://youtu.be/V_vDDNdjP1U?t=2562

Kolejne zajęcia
– własna klasa
– system dla miast
– klasa – certyfikat zaawansowanego programisty
https://youtu.be/V_vDDNdjP1U?t=2707

Szczegółowy opis kolejnych zajęć – klasa / miasta:
https://youtu.be/V_vDDNdjP1U?t=5840

Ostatnie zajęcia – sieci neuronowa / uczenie masyznowe
https://youtu.be/V_vDDNdjP1U?t=5904

Znajdowanie elementów w set:
– jest uporządkowany – wykorzystajmy to!
– szuka elementu lub kolejnego
https://youtu.be/V_vDDNdjP1U?t=4639

Co oznacza lower_bound w set?
– wyjaśnienie, przykłady
https://youtu.be/V_vDDNdjP1U?t=4806

Jak działa upper_bound?
– znajdź następny
– podobnie do lower_bound
https://youtu.be/V_vDDNdjP1U?t=5082

Po co wymyślono lower_bound / upper_bound?
– można sie iterować
– bo jest szybki
– czas przeszukiwania jest log (potęga dwójki)
https://youtu.be/V_vDDNdjP1U?t=5218

lower_boud / upper_bound w quizie:
https://youtu.be/V_vDDNdjP1U?t=6108

Set daje szybkość, błyskawicę
– 1000/10 lub milion/20 lub miliard / 30
– błyskawicznie znajdujemy miasto
– przyda nam się to w pracy zawodowej (Google, start-up) ale też na konkursach
– w tablicy mamy kłopot ze znalezieniem elementu, dodawaniem, usuwaniem w środku
– tu mamy to od razu!
https://youtu.be/V_vDDNdjP1U?t=5297

Jak znaleźć poprzedni element w set?
https://youtu.be/V_vDDNdjP1U?t=6620

Dlaczego czas w set jest logarytmiczny?
– drzewa czerwono czarne / binarne
– zajęcia Olimpiada od podstaw
– super, że wnikamy!
https://youtu.be/V_vDDNdjP1U?t=7144

Dlaczego uczymy się C++?
– pokazuje architekturę komputera
– głębiej wnikamy
– jest szybszy
– wiele języków ma strukturę podobną do C++
https://youtu.be/V_vDDNdjP1U?t=7180

Opis Challenge #17:
https://youtu.be/V_vDDNdjP1U?t=5810

 

Olimpiada OD PODSTAW #16 – czwartek, 20 stycznia 2022, 18:00
Link do zajęć: https://youtu.be/P4xemLnkDFc?t=770
Temat: DFS – chodzimy po grafie

Omówienie zadania Cyclic Components:
https://youtu.be/P4xemLnkDFc?t=770
Kod / linki: https://oki.org.pl/cyclic-components/

Co to jest DFS – od początku wyjaśnienie
– rysowanie grafu i dyskusja
https://youtu.be/P4xemLnkDFc?t=1157

Jak chodzić po grafie używając algorytmu DFS?
– samo mięso:
https://youtu.be/P4xemLnkDFc?t=1243

Pseudokod DFS-a:
– rekurencja
https://youtu.be/P4xemLnkDFc?t=1669

Co robi DFS?
– przechodzi po spójnej części grafu
– musimy go zmodyfikować, coś dodać by rozwiązywał nasze zadanie
https://youtu.be/P4xemLnkDFc?t=1872

Kluczowa obserwacja w zadaniu
– cykl w sensie zadania istnieje wtedy gdy każdy wierzchołek ma stopień 2
https://youtu.be/P4xemLnkDFc?t=1912

Jak cofamy się w DFS-ie?
Kiedy DFS wychodzi z wierzchołka?
– szczegółowe omówienie DFS-a z kodem
https://youtu.be/P4xemLnkDFc?t=2030

Opis rozwiązania zadania:
https://youtu.be/P4xemLnkDFc?t=2320

Jak szybki jest DFS?
– jaka jest złożoność DFS-a?
https://youtu.be/P4xemLnkDFc?t=2673

Kod zadania Cyclic Components:
https://youtu.be/P4xemLnkDFc?t=2964

Kod DFS-a:
https://youtu.be/P4xemLnkDFc?t=3015

DFS animacja
Wyjaśnienie DFS – animacja / symulacja youtube.
– Kiedy zawraca?
https://youtu.be/P4xemLnkDFc?t=3489

Opis naszego challenge:
https://youtu.be/P4xemLnkDFc?t=3757

Quiz graf:
https://youtu.be/P4xemLnkDFc?t=228

Sprytne pytanie
– ile wynosi suma stopni wszystkich wierzchołków grafu?
– można zauważyć ze stopień musi być parzysty
https://youtu.be/P4xemLnkDFc?t=318

Spójne składowe – co to jest – quiz:
https://youtu.be/P4xemLnkDFc?t=543

Dlaczego testować?
– nie ma odsłonięć
– testy w zadaniu mogą wprowadzać w błąd, nie rozpatrywać wszystkich przypadków
– warto przygotować skrypty testujące
– warto testować
https://youtu.be/8I7N35IgYuM?t=6083

 


Olimpiada DLA ZAAWANSOWANYCH #17 – poniedziałek, 24 stycznia 2022, 18:30
Link do zajęć: https://youtu.be/8I7N35IgYuM?t=1160
Temat: Geometria analityczna

Geometria analityczna – co to jest?
https://youtu.be/8I7N35IgYuM?t=1160

Odległość między punktami – długość odcinka:
https://youtu.be/8I7N35IgYuM?t=1218

Unikajmy double, float jeśli można:
– porównujmy kwadraty odległości, są całkowite
– int – nieograniczona precyzja
https://youtu.be/8I7N35IgYuM?t=1480

Iloczyn skalarny / iloczyn wektorowy:
https://youtu.be/8I7N35IgYuM?t=1573

Iloczyn wektorowy:
https://youtu.be/8I7N35IgYuM?t=1907

Do czego się przydaje iloczyn wektorowy?
https://youtu.be/8I7N35IgYuM?t=2223

Wzajemne położenie wektorów:
https://youtu.be/8I7N35IgYuM?t=2408

Sortowanie kątowe:
https://youtu.be/8I7N35IgYuM?t=2773

Zadanie gąsienice – miotła:
https://youtu.be/8I7N35IgYuM?t=3670

Otoczka wypukła:
https://youtu.be/8I7N35IgYuM?t=4378

Co robić na ostatniej proste?
– biblioteczka
– 2-3 dni przed zawodami nic nie robić
– spacer
https://youtu.be/8I7N35IgYuM?t=5769

OKI #18 – jak testowa?:
https://youtu.be/8I7N35IgYuM?t=5860

Skąd brać pomysły na rozwiązania:
– poprzednie olimpiady, usaco, codeforces – są omówienia
– najbardziej nas pcha do przodu własna praca, własne rozwiązania
– omówienie – jeśli potrzebujemy popchnięcia, hinta
https://youtu.be/8I7N35IgYuM?t=5920

Ile czasu myśleć nad jednym zadaniem?
https://youtu.be/8I7N35IgYuM?t=6005

 


Programowanie OD PODSTAW #16 –
wtorek, 18 stycznia 2022, 18:00

Link do zajęć: https://youtu.be/AMouETtFmhg
Temat: Zadanie Antykwariat – własne sortowanie

Pomagamy stworzyć system dla sklepu z książkami
– wszędzie jesteśmy potrzebni (piłka nożna, medycyna, …)
– odwagi w sięganiu po najciekawsze projekty
– każdy ma umysł, potencjał by marzyć
– potrzebne jest dogłębne zrozumienie tematu
https://youtu.be/AMouETtFmhg?t=35

Konkursy – nadają sens programowaniu, wnikaniu
– motywują nas już teraz do wnikania
– będziemy w stanie to wykorzystać!
– już teraz
– nie musimy sie motowywać, że gdy będziemy mieć 25 lat to fajny projekt
https://youtu.be/AMouETtFmhg?t=102

Gratulacje dla wszystkich uczestników Olimpiady
– ukłony dla wszystkich uczestników
– za poświęcony czas
– za debugowanie
– pokazaliście wartość
– każdy pracodawca pożąda takie osoby
– przygotowujmy się za rok
https://youtu.be/AMouETtFmhg?t=140

Zachęcam do walki o III etap – nie jest ciężko się dostać
– 4 zadania tygodniowo!
– będzie dobrze
– to moja obietnica!
https://youtu.be/AMouETtFmhg?t=262

Mistrz Programowania
– ranking
– proste zadanie Smiech Matematyka
– Bambus Happy – liczby regularne – bambus zna je dłużej – rozsiewa nasiona co odpowiedni czas
– Duże liczby – zadanie Darii

https://youtu.be/AMouETtFmhg?t=281

Omówienie zadania Antykwariat: https://youtu.be/AMouETtFmhg?t=2215

Własne sortowanie: https://youtu.be/AMouETtFmhg?t=3973
Jak przechowywać książki?
– własny typ do przechowywania książek / struct
https://youtu.be/AMouETtFmhg?t=2650

resize zamiast push_back dla vector-a:
– automatyczna alokacja pamięci
https://youtu.be/AMouETtFmhg?t=3072

Wypisywanie vectora:
– jeśli coś bardziej skomplikowanego zrobimy to wypisujmy wartości!
https://youtu.be/AMouETtFmhg?t=3638

Sortowanie książek / własnego typu / struct
– potrzebna własna funkcja sortująca
https://youtu.be/AMouETtFmhg?t=3974

Opis challenge #16:
– ćwiczymy własne sortowanie – potrzebne w konkursach / projektach
https://youtu.be/AMouETtFmhg?t=5969

Co na OKI #17?
– Set
https://youtu.be/AMouETtFmhg?t=6005


Olimpiada DLA ZAAWANSOWANYCH #16 – poniedziałek, 17 stycznia 2022, 18:30
Link do zajęć: https://youtu.be/Praei9aI8-8?t=1200
Temat: Programowanie dynamiczne v2

EDIST – problem odległości edycyjnej:
https://youtu.be/Praei9aI8-8?t=1200

Klasyczny żart – przykład z życia codziennego:
– jak zamienić pieniądze na jedzenie w jak najmniejszej liczbie ruchów?
https://youtu.be/Praei9aI8-8?t=1490

Zadanie Dynamik – finał 18-stej Olimpiady Informatycznej
https://youtu.be/Praei9aI8-8?t=2626

Dynamik – podsumowanie rozwiązania zadania:
https://youtu.be/Praei9aI8-8?t=5027

 


Olimpiada OD PODSTAW #15 – czwartek, 13 stycznia 2022
, 18:00

Link do zajęć: https://youtu.be/NDp4nZnqtEo
Temat: Jak przechowywać grafy?

Jakie wrażenia po I etapie OIJ?
https://youtu.be/NDp4nZnqtEo?t=68

Czym są grafy?
– prosta rzecz
– niepotrzebnie grafy są uważane za trudne
https://youtu.be/NDp4nZnqtEo?t=297

Czym sa grafy? – quiz:
https://youtu.be/NDp4nZnqtEo?t=804

Omówienie zadania Stumilowa Puszcza:
https://youtu.be/NDp4nZnqtEo?t=1325

Omówienie kodu zadania Stumilowa puszcza:
https://youtu.be/NDp4nZnqtEo?t=3526

Co jest problemem w naszym zadaniu?
– jak przechować graf?
– jak go wypisać
https://youtu.be/NDp4nZnqtEo?t=1776

Jak przechowujemy grafy?
– tablica vectorów
– lista sąsiedztwa
– dodajemy krok po kroku wierzchołki do listy sąsiedztwa
https://youtu.be/NDp4nZnqtEo?t=1824

Jak zaimplementować graf w C++ / Python?
– dodanie elementu na koniec vectora
– tablica vectorów
– jaki indeks ma sąsiad w grafie?
– przechodzenie po sąsiadach grafu?
https://youtu.be/NDp4nZnqtEo?t=2470

Jak wczytujemy graf w programie?
https://youtu.be/NDp4nZnqtEo?t=3105

Jaka jest złożoność wczytywania / wypisywania grafu? https://youtu.be/NDp4nZnqtEo?t=3219

Graf -kod/implementacja w C++
https://youtu.be/NDp4nZnqtEo?t=3536

Dlaczego Tomek poleca by zrobić zadanie Stumilowa Puszcza?
– dalej też będa grafy
– będa algorytmy
– reprezentacja to podstawa / dalej nie damy rady
https://youtu.be/NDp4nZnqtEo?t=3884

Co potrzeba na finale OIJ?
– wystarczy często pomysł
– na przykładzie zadania Skrzyżowanie z III etapu
https://youtu.be/NDp4nZnqtEo?t=4755

Omówienie naszego Challenge #15:
https://youtu.be/NDp4nZnqtEo?t=4740

Ile czasu i jak Tomek się przygotowywał do zdobycia laureata Olimpiady Informatycznej?
– od Logomocji
–  II klasa gimanzjum – mocno – 4 zadania tygodniowo
– sporo sie nie udwało – ale był upór
https://youtu.be/NDp4nZnqtEo?t=5110

Co na OKI #16?
https://youtu.be/NDp4nZnqtEo?t=4809

Jakie wrażenia po I etapie OIJ?
– tura ukryta była trudna
https://youtu.be/NDp4nZnqtEo?t=68

Jak zapisać się do konkursu Mistrz Programowania?
https://youtu.be/NDp4nZnqtEo?t=203

Co to jest Mistrz Programowania?
https://youtu.be/NDp4nZnqtEo?t=252

 


Programowanie OD PODSTAW #15 – wtorek, 11 stycznia 2022, 18:00
Link do zajęć: https://youtu.be/V4LQxUvVqVQ

Po co są zajęcia OKI?
Dlaczego warto rozwijać swoją pasję?
– przygotowujemy się by w przyszłości uczestniczyć w fantastycznych projektach
– zabka nano – pierwszy sklep
– ile tu jest programowania
– sieci neuronowe – rozpoznawanie
– algorytmika, inżyniera oprogramowania
– w przyszłości chcemy brac udział w takich projektach
– jako jeden z członków zespołu
– życzenia siły ognia
– jak się przygotowujemy?
https://youtu.be/V4LQxUvVqVQ?t=32

Konkurs Mistrz Programowania
– weź udział
– zadania w różnej kolejności
– zachęcam by zacząć od Śmiech Matematyka
– jak powstał konkurs?
– poćwiczyć programowanie, algorytmika
– by weszło w krew
– niech beda to wiertarki, młotki które po prostu używamy
https://youtu.be/V4LQxUvVqVQ?t=170

Ile tur będzie w konkursie?
https://youtu.be/V4LQxUvVqVQ?t=347

Czy zadania są na poziomie programistycznym?
https://youtu.be/V4LQxUvVqVQ?t=355

Czy jeśli zrobimy część zadań to ok?
https://youtu.be/V4LQxUvVqVQ?t=399

Struct / własne sortowanie w C++
– od początku
– od wytłumaczenia online’owego kompilatora
https://youtu.be/V4LQxUvVqVQ?t=417

Własny typ danych w C++
– struct
– dokładne wytłumaczenie
https://youtu.be/V4LQxUvVqVQ?t=659

Jak trzymać dane o 100 / 1000 uczniach?
– vector (roszerzona tablica)
https://youtu.be/V4LQxUvVqVQ?t=990

Jak umieszczamy dane w vectorze?
– umieszczamy cały typ danych / całą zmienna
https://youtu.be/V4LQxUvVqVQ?t=1221

Jak wypisywać dane z vectora?
– wypisujemy dane z vectora z własnym typem danych
https://www.youtube.com/watch?v=V4LQxUvVqVQ&t=1521

Rozpoczęcie sortowania
– sortowanie w vector
– begin początek
– end kooniec
https://youtu.be/V4LQxUvVqVQ?t=1849

Własne sortowanie – własna funkcja sortująca
– sortujemy swój typ danych
– dlaczego normalny sort nie działa
– własna funkcja sortująca
https://youtu.be/V4LQxUvVqVQ?t=2020

cin wczytuje do białego znaku
getline wczytuje całą linię
– nie da rady wczytać całej linii?
https://youtu.be/V4LQxUvVqVQ?t=3259

Siła ws – pomijania nowych znaków
getline po int wczytuje pusta linię a nie tekst w linii
przed getline dajemy ws
https://youtu.be/V4LQxUvVqVQ?t=3452

struct / getline w quizie:
https://youtu.be/V4LQxUvVqVQ?t=3990


Olimpiada DLA ZAAWANSOWANYCH #14 – poniedziałek, 10 stycznia 2022, 18:30
Link do zajęć: https://youtu.be/9cp7bGNoXAc?t=1352
Temat: Algorytmy pierwiastkowe

Zadanie konterenry
– wyjaśniamy czym są algorytmy pierwiastkowe
https://youtu.be/9cp7bGNoXAc?t=1352
Idea algorytmu pierwiastkowego:
https://youtu.be/9cp7bGNoXAc?t=1660
Dlaczego warto zrobić zadanie kontenery?
– podział problemu / podział algorytmu
https://youtu.be/9cp7bGNoXAc?t=3818

Trudniejszy problem tekstowy:
10^5 wzorców – znaleźć ich wszystkie wystąpienia w tekście
https://youtu.be/9cp7bGNoXAc?t=4023
Kiedy używać algorytmów pierwiastkowych?
https://youtu.be/9cp7bGNoXAc?t=4512
Podział problemu na segmenty wielkości pierwiastek – drzewa pierwiastkowe:
https://youtu.be/9cp7bGNoXAc?t=4846
Jakie zadania występują najczęściej na II etapie OI?
– pomysł, zachłanne
– silne spójne ostatnio
– drzewa przedziałowe
– lca
– podproblemy
– gąsienica, sumy prefiksowe / binary search
– dfs /bs
– algorytmy pierwiastkowe
– trzeba szybko pisać / szybko wymyślać
https://youtu.be/9cp7bGNoXAc?t=5583
Jak długo Mikołaj przygotowywał się do Olimpiady Informatyczne?
– niekoniecznie pod OI-a
– od października 2016 do finalisty w 2020 roku
https://youtu.be/9cp7bGNoXAc?t=5897
Jak przygotowuje się Mikołaj do Olimpiad?
– plik tekstowy zadania to do zrobione
– zrobione przez Mikołaja zadania z poprzednich OI – 150, całkowicie samodzielnie 123
https://youtu.be/9cp7bGNoXAc?t=6082
Jakie zadania robić przygotowując do OI-a?
– zadanie które robisz bez problemu nie daje Ci nic w sensie rozwoju
– USACO
– Codeforces proste na czas by nie bugować
https://youtu.be/9cp7bGNoXAc?t=6192
Czy zadania na II etapie OI-a są trudniejsze od zadań z I etapu?
– pisanie mniej czasu
– trzeba znać więcje archetypów
https://youtu.be/9cp7bGNoXAc?t=6296


Olimpiada OD PODSTAW #14A – czwartek, 30 grudnia 2021
, 18:00

Link do zajęć: https://youtu.be/rhz5sEdxHQE

Czym jest zwykłe Sito Eratostenesa?
– pozwala stwierdzić czy liczba pierwsza czy nie
– wykreślamy wielokrotności liczb pierwszych
https://youtu.be/rhz5sEdxHQE?t=30
Robimy ambitne zadanie – Cute Chef Gift!
https://youtu.be/rhz5sEdxHQE?t=111

Omówienie zadania Cute Chef Gift
– rozszerzone sito Eratostenesa
https://youtu.be/rhz5sEdxHQE?t=760
Kod / linki / omówienie:
https://oki.org.pl/cute-chef-gift/
Początek wytłumaczenia treści zadania:
https://youtu.be/rhz5sEdxHQE?t=791
Jaki jest informatyczny prezent dla dziewczyny?
Informatyczny prezent dla dziewczyny
czy dziewczyna chciałaby dostać ciąg liczb jako prezent
ciąg liczb jako prezent dla dziewczyny?
https://youtu.be/rhz5sEdxHQE?t=793
Skąd wiemy jaki jest przedział dla danej liczby pierwszej?
https://youtu.be/rhz5sEdxHQE?t=4628
Poszczególne kroki naszego algorytmu:
https://youtu.be/rhz5sEdxHQE?t=4196
Złożoność naszego rozwiązania
https://youtu.be/rhz5sEdxHQE?t=4448
Kod naszego rozwiązania:
https://youtu.be/rhz5sEdxHQE?t=4751

Rozszerzone Sito Eratostenesa:
https://youtu.be/rhz5sEdxHQE?t=2409
Rozszerzone Sito Eratostenesa trzyma jeden, dowolny dzielnik pierwszy liczby:
https://youtu.be/rhz5sEdxHQE?t=2809
Jak rozłożyć liczbę na czynniki pierwsze przy pomocy rozszerzonego Rozszerzonego Sita Eratostenesa:
https://youtu.be/rhz5sEdxHQE?t=2948
Złożoność rozkładu liczby na czynniki pierwsze przy pomocy Rozszerzonego Sita Eratostenesa:
https://youtu.be/rhz5sEdxHQE?t=3087
Kod Rozszerzonego Sita Eratostenesa
https://youtu.be/rhz5sEdxHQE?t=4815

Technika Na później:
https://youtu.be/rhz5sEdxHQE?t=3764

Jak Tomek lubi rozwiązywać zadania?
– Funkcja która rozwiązuje pojedynczy przypadek testowy gdy jest ich wiele
– Minimalizujemy błędy inicjalizacji (zerowanie tablic)
https://youtu.be/rhz5sEdxHQE?t=4947
Kod jest na stronie https://oki.org.pl/cute-chef-gift/
– Napiszmy samemu
– Uczymy się na błędach!
https://youtu.be/rhz5sEdxHQE?t=5275

Dlaczego 1 nie jest liczbą pierwszą?
https://youtu.be/rhz5sEdxHQE?t=5582

Co na zajęciach 13 stycznia?
– zaczynamy grafy!
– ulubiona dziedzina Tomka
https://youtu.be/rhz5sEdxHQE?t=5922

Życzenia!
Życzenia Noworoczne:
– wytrwałości w dążeniu do celu
– radości z tego co robicie
https://youtu.be/rhz5sEdxHQE?t=5960

Noworoczny Challenge:
https://youtu.be/rhz5sEdxHQE?t=5825


Programowanie OD PODSTAW #14 – wtorek, 21 grudnia 2021, 18:00
Link do zajęć: https://youtu.be/qGpkqQ44tBk

Wizualizacja naszej choinki
Nasza choinka w akcji:
https://youtu.be/qGpkqQ44tBk?t=7054
Omówienia zadania Świąteczna choinka:
https://youtu.be/qGpkqQ44tBk?t=164
Skrócone omówienie kodu:
https://youtu.be/qGpkqQ44tBk?t=7505
Kod / linki do poszczególnych etapów rysowania choinki
https://oki.org.pl/swiateczna-choinka/
Opis Challenge Programowanie OD PODSTAW:
https://youtu.be/qGpkqQ44tBk?t=8513
Świąteczne i noworoczne życzenia:
– czasu z najbliższymi
– ognia w Nowym Roku – rozwijania swojej pasji – to ma sens!
https://youtu.be/qGpkqQ44tBk?t=8653
Noworoczne życzenia – Nowy Rok 2022:
https://youtu.be/qGpkqQ44tBk?t=8676

Krótkie życzenia z początku zajęć:
https://youtu.be/qGpkqQ44tBk?t=10

Tablice dwuwymiarowe w JavaScript – jak utworzyć?
https://youtu.be/qGpkqQ44tBk?t=7110

Święta – też okazja powiedzieć że przyszłość jest nasza, że jesteśmy potrzebni!
– dron który kładzie linę
– pasja – to jest najważniejsze
– możemy brać udział w takich projektach!
– warto się bawić, warto by było trudno!
https://youtu.be/qGpkqQ44tBk?t=58

Czy trójkąt to już choinka?
– narysowaliśmy trójkąt i jak z tego zrobić choinkę
https://youtu.be/qGpkqQ44tBk?t=2034
Cztery trójkąty to już choinka!
https://youtu.be/qGpkqQ44tBk?t=2161

Skąd pochodzi cytat?
Pewnego przyjaciela poznaje sie w niepewnym momencie.
Z Małego Księcia
https://youtu.be/qGpkqQ44tBk?t=487
Cytaty z naszego quizu!
Nasze cytaty!
https://youtu.be/qGpkqQ44tBk?t=8309

Warto się pobawić!
– bawimy się spłaszczaniem okręgu
https://youtu.be/qGpkqQ44tBk?t=4887


Olimpiada OD PODSTAW #14 – czwartek, 23 grudnia 2021
, 18:00

Link do zajęć: https://youtu.be/btHSRzo4KMQ

Omówienie zadania T-primes – sito Eratostenesa:
https://youtu.be/btHSRzo4KMQ?t=1264
Kolejne kroki naszego algorytmu:
https://youtu.be/btHSRzo4KMQ?t=3210
Złożoność algorytmu:
https://youtu.be/btHSRzo4KMQ?t=3541
Kod zadania T-primes:
https://youtu.be/btHSRzo4KMQ?t=3732
Sito Eratostenesa:
https://youtu.be/btHSRzo4KMQ?t=1749
Złożoność sita Eratostenesa:
https://youtu.be/btHSRzo4KMQ?t=2508
Kod sita Eratostenesa:
https://youtu.be/btHSRzo4KMQ?t=3764
Dlaczego zaczynamy wykreślać od i*i w sicie Eratostenesa?
https://youtu.be/btHSRzo4KMQ?t=3807
Quiz sito Eratostenesa:
https://youtu.be/btHSRzo4KMQ?t=4345
Jak obliczyć pierwiastek z danej liczby?
– Binary Search
https://youtu.be/btHSRzo4KMQ?t=3332
Quiz liczby pierwsze:
https://youtu.be/btHSRzo4KMQ?t=318
Na ile sposobów można przedstawić daną liczbę jako iloczyn liczb pierwszych?
– dowód, że na jeden sposób
https://youtu.be/btHSRzo4KMQ?t=5210
Opis Challenge Olimpiada od podstaw:
https://youtu.be/btHSRzo4KMQ?t=5384
Świąteczne życzenia:
https://youtu.be/btHSRzo4KMQ?t=5446


Olimpiada DLA ZAAWANSOWANYCH #14 – poniedziałek, 20 grudnia 2021, 18:30
Link do zajęć: https://youtu.be/vai2MQzARq0

Świąteczny nastrój i quiz!
https://youtu.be/vai2MQzARq0?t=185
Początek quizu:
https://youtu.be/vai2MQzARq0?t=334
Pomoc naukowa w sortowaniu topologicznym:
– maskotka na tablicy:
https://youtu.be/vai2MQzARq0?t=1095
Sortowanie topologiczne:
https://youtu.be/vai2MQzARq0?t=1135
Kto jest pierwszy w sortowaniu topologicznym?
– który wierzchołek jest pierwszy?
https://youtu.be/vai2MQzARq0?t=1573
Implementacja sortowania topologicznego:
https://youtu.be/vai2MQzARq0?t=1800
Zadanie “Nierówności”:
https://youtu.be/vai2MQzARq0?t=2225
Zadanie “Sklepy”:
https://youtu.be/vai2MQzARq0?t=2935

Silnie Spójne Składowe:
https://youtu.be/vai2MQzARq0?t=3525

Gambit i dowód nie wprost
Gambit czy dowód nie wprost?
– dowód nie wprost to najpotężniejszy gambit – zaczynamy od podania całej partii
https://youtu.be/vai2MQzARq0?t=3879

Jak Mikołaj uczył się silnie spójnych składowych?
– Algorytm na silnie spójnych składowe to DFS na grafy transponowane w kolejności malejących postorderów
https://youtu.be/vai2MQzARq0?t=4386

Czy silnie spójne występują na Olimpiadzie Informatycznej?
https://youtu.be/vai2MQzARq0?t=6195

Świąteczne życzenia!
https://youtu.be/vai2MQzARq0?t=6685

 


Programowanie OD PODSTAW #13 – wtorek, 14 grudnia 2021, 18:00
Link do zajęć: https://youtu.be/VvJhOAXIQOk

Dokąd prowadzi nasza droga?
Autonomiczne samochody!
– warto wnikać
– takie projekty są dostępne dla nas
– mnóstwo programowania i algorytmiki
https://youtu.be/VvJhOAXIQOk?t=12

Zadanie z Amerykańskiej Olimpiady USACO! https://youtu.be/VvJhOAXIQOk?t=156
Pozwala stworzyć fantastyczne CV! https://youtu.be/VvJhOAXIQOk?t=5449

Co nas motywuje? Konkursy
W weekend USACO – amerykańska Olimpiada
– zarezerwujmy sobie 4h weźmy udział!
– podział na dywizje – od programistycznej do międzynarodowej olimpiady!
– jesteśmy w stanie robić te zadania
– super motywacja do pięknej przyszłości
– mierzymy się z całym światem – możemy konkurować z anglikami, amerykanami
– nieważne czy mieszkam w Mławie czy Kudowie
– a w przyszłości brać udział w tych najciekawszych projektach
– robimy cv – gotowe do zespołów programistycznych
– zobaczmy jak wielki jest to fun!
https://youtu.be/VvJhOAXIQOk?t=156

Tworzymy fantastyczne CV na podstawie zadania Daisy Chains:
https://youtu.be/VvJhOAXIQOk?t=5449

Opis naszego challenge #13:
https://youtu.be/VvJhOAXIQOk?t=6960

Omówienie zadania Daisy Chains:
https://youtu.be/VvJhOAXIQOk?t=2646
Skrót omówienia rozwiązania:
https://youtu.be/VvJhOAXIQOk?t=5144

Kod linki zadania Daisy Chains:
https://oki.org.pl/daisy-chains/

vector w C++ vs tablica:
https://youtu.be/VvJhOAXIQOk?t=484
vector w C++:
https://youtu.be/VvJhOAXIQOk?t=660
vector – quiz:
https://youtu.be/VvJhOAXIQOk?t=1781

Przekazywanie przez wartość vs przekazywanie przez referencję
https://youtu.be/VvJhOAXIQOk?t=5966
Przekazywanie przez wartość vs przekazywanie przez referencję – quiz
https://youtu.be/VvJhOAXIQOk?t=7211

Czy programiści są leniwi?
– leniwi wymyślają!
– programiści automatyzują – może są leniwi?
https://youtu.be/VvJhOAXIQOk?t=8666

 


Olimpiada OD PODSTAW #13 – czwartek, 16 grudnia 2021
, 18:00

Link do zajęć: https://youtu.be/evtnTwRKtkE

Zadanie GCD on Blackboard – jak wykorzystać Najwiekszy Wspólny Dzielnik?
Omówienia zadania GCD on Blackboard:
https://youtu.be/evtnTwRKtkE?t=986
Złożoność rozwiązania / kroki algorytmu rozwiązania GCD on Blackboard:
https://youtu.be/evtnTwRKtkE?t=4331
Omówienie kodu zadania GCD on Blackboard:
https://youtu.be/evtnTwRKtkE?t=4557
Link do treści zadania GCD on Blackboard:
https://atcoder.jp/contests/abc125/tasks/abc125_c

NWD – Największy Wspólny Dzielnik:
https://youtu.be/evtnTwRKtkE?t=725
Jak liczyć NWD – Klasyczny algorytm Euklidesa:
https://youtu.be/evtnTwRKtkE?t=1330
Klasyczny algorytm Euklidesa jest wolny! https://youtu.be/evtnTwRKtkE?t=1928
Szybki algorytm Euklidesa – długie wyjaśnienie:
https://youtu.be/evtnTwRKtkE?t=1929
Szybki algorytm Euklidesa – krótkie wyjaśnienie:
https://youtu.be/evtnTwRKtkE?t=2405
Złożoność szybkiego algorytmu Euklidesa:
https://youtu.be/evtnTwRKtkE?t=2598
Kod szybkiego algorytmu Euklidesa:
https://youtu.be/evtnTwRKtkE?t=4581

Jak policzyć NWD wielu liczb?
https://youtu.be/evtnTwRKtkE?t=2915
Czy złożoność O(2n) jest różna od O(n)? https://youtu.be/evtnTwRKtkE?t=4947
Warto poćwiczyć NWD: https://youtu.be/evtnTwRKtkE?t=5521

Jak się zarejestrować do USACO?
https://youtu.be/evtnTwRKtkE?t=5681

Dlaczego Tomek lubi AtCoder?
– krótkie treści!
https://youtu.be/evtnTwRKtkE?t=5829

Nasz Challenge #13!
https://youtu.be/evtnTwRKtkE?t=5521

 


Olimpiada DLA ZAAWANSOWANYCH #13 – poniedziałek, 13 grudnia 2021, 18:30
Link do zajęć: https://youtu.be/i8-GLKoW-Xc?t=1137

Hashe – najnowszy wynalazek obecnej epoki!
Hashe – najnowszy odkrycia w Olimpiadzie!
https://youtu.be/i8-GLKoW-Xc?t=1137

Kolizja czy jaka szansa, że dwie osoby maja urodziny tego samego dnia:
https://youtu.be/i8-GLKoW-Xc?t=2046

Jak policzyć hash?
https://youtu.be/i8-GLKoW-Xc?t=2735

Czy 2 podslowa są równe?
https://youtu.be/i8-GLKoW-Xc?t=3379

Jak znaleźć wszystkie wystąpienie wzorca w tekście?
https://youtu.be/i8-GLKoW-Xc?t=3478

Na czym polegają skróty – skrót:
https://youtu.be/i8-GLKoW-Xc?t=3578

Uwaga na liczby ujemne!
https://youtu.be/i8-GLKoW-Xc?t=3670

Czy w ciągu istnieją dwa takie same podsłowa?
– mapa vs rozwiązanie kwadratowe
https://youtu.be/i8-GLKoW-Xc?t=3800

Kolizja hashy – wyjaśnienie
https://youtu.be/i8-GLKoW-Xc?t=4022

Gdzie wykorzystuje się hashe?
– logowanie
https://youtu.be/i8-GLKoW-Xc?t=4694

Co trzeba znać na II etap OI-a?
https://youtu.be/i8-GLKoW-Xc?t=4985

Hashe – rozwiązują większość problemów tekstowych!
https://youtu.be/i8-GLKoW-Xc?t=5119

 


Programowanie OD PODSTAW #12 – wtorek, 7 grudnia 2021, 18:00
Link do zajęć: https://youtu.be/JCEifYJT1VY
Sortowanie – ciekawe i pożyteczne – programowanie konkursowe
Robimy zadania z II etapu OIJ!
– programowanie konkursowe
– zadania są do zrobienia dla każdego – można zawalczyć
– w życiu sortujmy książki, śmieci
https://youtu.be/v_UzAyr1A-4?t=10
Piękny projekt naszego kolegi! Warto programować!
Piękny projekt Mateusza – dokąd prowadzi nasza droga?
Dokąd prowadzi nasza droga – projekt Sprawne Miasto naszego kolegi Mateusza
– zgłaszanie problemów
– poszukiwanie osób
– już w szkole średniej możemy pomóc
https://youtu.be/v_UzAyr1A-4?t=82
Zadanie Zespoły – II etap OIJ
https://youtu.be/v_UzAyr1A-4?t=1986
Omówienie kodu zadania Zespoły:
https://youtu.be/v_UzAyr1A-4?t=5818
Sortowanie!
https://youtu.be/v_UzAyr1A-4?t=4310
Sortowanie – quiz:
https://youtu.be/v_UzAyr1A-4?t=6420
Nasz challenge #12 Programowanie od podstaw:
https://youtu.be/v_UzAyr1A-4?t=6251


Olimpiada OD PODSTAW #12 – czwartek, 9 grudnia 2021
, 18:00

Link do zajęć: https://youtu.be/OJtDgY3dPlY
Rozwiązujemy prawdziwy problem szefa firmy!
https://youtu.be/x9mQ4zs410g?t=128
Nasz challenge #12 Olimpiada OD PODSTAW:
https://youtu.be/x9mQ4zs410g?t=6417
The Meeting Place Cannot Be Changed – zadanie z naszych zajęć:
https://youtu.be/x9mQ4zs410g?t=1468
Binary Search po wyniku:
https://youtu.be/x9mQ4zs410g?t=2435
Omówienie kodu zadania The Meeting Place Cannot Be Changed: https://youtu.be/x9mQ4zs410g?t=5210
Co na kolejnych zajęciach?
https://youtu.be/x9mQ4zs410g?t=6496
Złożoność Binary search po wyniku:
https://youtu.be/x9mQ4zs410g?t=4820
Kod algorytmu Binary Search po wyniku:
https://youtu.be/x9mQ4zs410g?t=5391
Potyczki algorytmiczne!
https://youtu.be/x9mQ4zs410g?t=60


Olimpiada DLA ZAAWANSOWANYCH #12 – poniedziałek, 6 grudnia 2021, 18:30
Link do zajęć: https://youtu.be/sjWy91fl6eE
Zadanie Montażysta – I etap OI-a:
https://youtu.be/sjWy91fl6eE?t=1377
Układanie Kart – zadanie z I etapu OI-a:
https://youtu.be/sjWy91fl6eE?t=2805
W poniedziałek hashe!
https://youtu.be/sjWy91fl6eE?t=5292


Programowanie OD PODSTAW #10 – wtorek, 23 listopada 2021, 18:00
Link do zajęć: https://youtu.be/JCEifYJT1VY
Bezpieczeństwo, szyfrowanie i polscy matematycy:
Szyfrowanie!
– Kto wygrał Bitwę Warszawską?
– czwartkowe zajęcia nas przygotowują
– czym się zajmuje
https://youtu.be/JCEifYJT1VY?t=14
Dziękuję za Olimpiadę!
https://youtu.be/JCEifYJT1VY?t=182
Napisy – od początku!
https://youtu.be/JCEifYJT1VY?t=386
Napisy – esencja:
https://youtu.be/JCEifYJT1VY?t=508
Napisy – kahoot v1:
https://youtu.be/JCEifYJT1VY?t=2085
Napisy – kahoot v2:
https://youtu.be/JCEifYJT1VY?t=6962
Napisy vs tablice w C++ – różnice:
https://youtu.be/JCEifYJT1VY?t=901
Zadanie Szyfr Cezara – z naszych zajęć!
https://youtu.be/JCEifYJT1VY?t=3092
Kod, omówienie, link do zadania:
https://oki.org.pl/szyfr-cezara
Skrót omówienia zadania:
https://youtu.be/JCEifYJT1VY?t=5939
Spadające gwiazdy – nasze piękne animacje! – Dziękuję!
https://youtu.be/JCEifYJT1VY?t=6384
Co oznacza hasło Każdego dnia mocniejsi? O co chodzi?
https://youtu.be/JCEifYJT1VY?t=7704
Wytłumaczenie v2:
https://youtu.be/JCEifYJT1VY?t=7215
Co w naszym challenge?
https://youtu.be/JCEifYJT1VY?t=6833
Za tydzień zadanie Team z Codefroces:
https://youtu.be/JCEifYJT1VY?t=6889
+= co oznacza?
https://youtu.be/JCEifYJT1VY?t=7213
Szachowe wyzwanie?
https://youtu.be/JCEifYJT1VY?t=7961
Konkurs Mistrz Programowania
– tez będą napisy
– zachęcam do układania zadań!
https://youtu.be/JCEifYJT1VY?t=6120


Olimpiada OD PODSTAW #10 – czwartek, 25
 listopada, 18:00

Link do zajęć: https://youtu.be/OJtDgY3dPlY
Co nas świecie?
Rozpoczęła się tura zamknięta OIJ!
https://youtu.be/OJtDgY3dPlY?t=23
Omówienie zadania Zakup Działki:
https://youtu.be/OJtDgY3dPlY?t=1198
Omówienie kodu zadania Zakup działki:
https://youtu.be/OJtDgY3dPlY?t=4448
Kod algorytmu Binary Search – omówienie:
https://youtu.be/OJtDgY3dPlY?t=4466
Kod:
https://oki.org.pl/zakup-dzialki/
Potęgowanie, logarytm – wyjaśnienie w kahoot:
https://youtu.be/OJtDgY3dPlY?t=348
Złożoność algorytmów – wyjaśnienie w kahoot:
https://youtu.be/OJtDgY3dPlY?t=918
Wprowadzenie do Binary Search:
https://youtu.be/OJtDgY3dPlY?t=1001
Binary Search i encyklopedia:
https://youtu.be/OJtDgY3dPlY?t=5309
Potrzebna wróżka!
https://youtu.be/OJtDgY3dPlY?t=1840
Sami zrobimy wróżkę – szukamy najbliższej działki!
Algorytm naiwny – brutalny, liniowy:
https://youtu.be/OJtDgY3dPlY?t=1940
Przyspieszamy wróżkę – algorytm Binary Search:
https://youtu.be/OJtDgY3dPlY?t=2247
Złożoność Binary Search:
https://youtu.be/OJtDgY3dPlY?t=3791
Kiedy jest fun?
Policzyć cyfrę 40!
https://youtu.be/OJtDgY3dPlY?t=5430
Omówienie Challenge:
https://youtu.be/OJtDgY3dPlY?t=5806
Za tydzień Binary Search po wyniku:
https://youtu.be/OJtDgY3dPlY?t=5910
Binary Search jest prosty i szybki!
https://youtu.be/OJtDgY3dPlY?t=6005


Olimpiada DLA ZAAWANSOWANYCH #9 – poniedziałek, 22 listopada 2021, 18:30
Quiz – grafy, BFS, DFS, maski bitowe, :
https://youtu.be/bwO_8BzLTdg?t=709
Algorytm Dijkstry:
https://youtu.be/bwO_8BzLTdg?t=1670
Zadanie Wiedźmak – finał XVIII OI-a:
https://youtu.be/bwO_8BzLTdg?t=2843
Zadanie Przemytnicy – 10 Olimpiada Informatyczna:
https://youtu.be/bwO_8BzLTdg?t=4021
Challenge:
https://youtu.be/bwO_8BzLTdg?t=5338
Discord OKI – dyskusje, wsparcie:
https://youtu.be/bwO_8BzLTdg?t=5427
Link, dlaczego:
https://youtu.be/bwO_8BzLTdg?t=6390
Korzyści z Olimpiady Informatycznej:
– fun
– zwolnienie z matury
– studia
– stypendia
https://youtu.be/bwO_8BzLTdg?t=5713
Najważniejszy jest udział w Olimpiadzie:
– bez względu na wynik jesteś mocny!
https://youtu.be/bwO_8BzLTdg?t=5775
Różnica między w przygotowaniu – laureat vs finalista:
https://youtu.be/bwO_8BzLTdg?t=5999
Ile zadań robi Mikołaj?
https://youtu.be/bwO_8BzLTdg?t=6103
Medale Mikołaja!
https://youtu.be/bwO_8BzLTdg?t=6352


Programowanie OD PODSTAW #9 – wtorek, 16 listopada 2021, 18:00
Link do zajęć: https://youtu.be/fHBNQyMf-Tc|
Warto programować:
– medycyna (znajdowanie leku, analiza DNA)
– astronomia (wizualizacja galaktyk)
https://youtu.be/fHBNQyMf-Tc?t=13
Bądź seniorem!
Czy warto być informatykiem:
– senior czyli osoba która wnika
– challenge  quizy
– jak najwięcej błędów
https://youtu.be/fHBNQyMf-Tc?t=93
Olimpiada – prowadzi nas bycia seniorem – wartościową osobą na rynku
https://youtu.be/fHBNQyMf-Tc?t=229
Trudności i postęp:
– każdego dnia mocniejsi
– nie porównujemy się do innych
https://youtu.be/fHBNQyMf-Tc?t=282
Tablice w quizie – wyjaśnienie:
https://youtu.be/fHBNQyMf-Tc?t=381
Tablice w JavaScript:
https://youtu.be/fHBNQyMf-Tc?t=3229
Tworzymy animację – Gwiazdozbiór!
Omówienie zadania Gwiazdozbiór:
https://youtu.be/fHBNQyMf-Tc?t=1573
Skrócone omówienie kodu animacji:
Skrócone omówienie kodu – z boku nasza piękna animacja:
https://youtu.be/fHBNQyMf-Tc?t=6600
Kolory RGB – krótkie omówienie na przykładzie:
https://youtu.be/fHBNQyMf-Tc?t=6143
Jak zrobić kółko na ekranie?
Skrócona instrukcja tworzenia programu w JavaScript – kółko na ekranie:
https://youtu.be/fk2wGqeiVBY?t=653
Jak zrobić kreskę na ekranie?
Kreska na ekranie:
https://youtu.be/fk2wGqeiVBY?t=8042
Co we wtorek?
https://youtu.be/fHBNQyMf-Tc?t=8655


Olimpiada OD PODSTAW #9 – czwartek, 18
 listopada, 18:00

Link do zajęć: https://youtu.be/OJtDgY3dPlY
Przed nam tura ukryta Olimpiady Informatycznej Szkół Podstawowych:
https://youtu.be/Jir3J__TIQs?t=73
Gąsienica w kahoot:
https://youtu.be/Jir3J__TIQs?t=347
Quiz – co zrobi gąsienica – wyjaśnienie działania:
https://youtu.be/Jir3J__TIQs?t=4804
Omówienie zadania Diamond Collector
https://youtu.be/Jir3J__TIQs?t=1056
Omówienie kodu zadania Diamond Collector – Amerykańska Olimpiada Informatyczna:
https://youtu.be/Jir3J__TIQs?t=3732
Złożoność algorytmu omówionego w zadaniu:
https://youtu.be/Jir3J__TIQs?t=3572
Kod / linki:
https://oki.org.pl/diamond-collector
Program który działa wolno – bez gąsienicy – złożoność n^2:
https://youtu.be/Jir3J__TIQs?t=4545
I szybka gąsienica:
https://youtu.be/Jir3J__TIQs?t=4972
Opis Challenge #9:
https://youtu.be/Jir3J__TIQs?t=5170
Co w czwartek:
Binary Search – mocny algorytm
Dlaczego warto
10% zadań można rozwiązać
https://youtu.be/Jir3J__TIQs?t=5429


Olimpiada DLA ZAAWANSOWANYCH #9 – poniedziałek, 15 listopada 2021, 18:30

Find And Union w quizie:
https://youtu.be/1YZGyc2ODPU?t=365
Operacje bitowe:
https://youtu.be/1YZGyc2ODPU?t=1077
Problemy z dynamikami:
https://youtu.be/1YZGyc2ODPU?t=1744
Jak przedstawić zbiór? – Maski bitowe
https://youtu.be/1YZGyc2ODPU?t=1811
Zadanie kwiatki:
https://youtu.be/1YZGyc2ODPU?t=2679
Zadanie Współczesna Komunikacja:
https://youtu.be/1YZGyc2ODPU?t=3939

 


Programowanie OD PODSTAW #8 –
wtorek, 9 listopada 2021, 18:00

Link do zajęć: https://youtu.be/gAeRdK2Bsxg
Jakie problemy rozwiązujemy?
Dlaczego tablice?
– trzymamy dużo podobnych informacji -> jak?
https://youtu.be/gAeRdK2Bsxg?t=11
Dlaczego potrzebujemy tablic?
Tablice? Gry, przyszłość, misja
https://youtu.be/gAeRdK2Bsxg?t=90
Programowanie? Misja!
Dlaczego? Po co się uczymy?
– chcemy pisać aplikacje bankowe, edukacyjne, medyczne
– programowanie to jest misja
– Steve Wozniak
– przed nami misja!
– idealnie się przygotować przez olimpiadę!
https://youtu.be/gAeRdK2Bsxg?t=132
Tablice – wyjaśnienie od samego początku?!
https://youtu.be/gAeRdK2Bsxg?t=354
Pojedyncze zmienne są niewygodne:
https://youtu.be/gAeRdK2Bsxg?t=480
Tablice – czym są?
https://youtu.be/gAeRdK2Bsxg?t=554
C++ jest piękny!
– możemy zajrzeć do komputera!
– do pamięci
– daje wolność oraz odpowiedzialność
https://youtu.be/gAeRdK2Bsxg?t=1743
Hakujemy!
https://youtu.be/gAeRdK2Bsxg?t=1849
Tablice w pytaniach i odpowiedziach:
https://youtu.be/gAeRdK2Bsxg?t=1895
Tablice w pytaniach i odpowiedziach 2:
https://youtu.be/gAeRdK2Bsxg?t=6341
Zadanie oceny – omówienie:
https://youtu.be/gAeRdK2Bsxg?t=2881
Skrót omówienia zadania Oceny:
https://youtu.be/gAeRdK2Bsxg?t=5481
Zadanie Oceny – Kod / linki / rozwiązanie:
https://oki.org.pl/oceny-tablice
Wymyśl zadanie!
https://youtu.be/gAeRdK2Bsxg?t=7209


Olimpiada OD PODSTAW #8 – czwartek, 11 listopada 2021, 18:00
Gąsienica – quiz wprowadzający:
https://youtu.be/JggX75UKThc?t=226
Film/video o gąsienicy:
Jak się porusza gąsienica?
Małe nózki duże kroki!
Gąsienica w ruchu
Co fascynuje Tomka?
Natura inspiruje
https://youtu.be/JggX75UKThc?t=1000
Zadanie Books – platforma codeforces:
https://youtu.be/JggX75UKThc?t=1086
Kod / linki / rozwiązanie:
https://oki.org.pl/books/
Rozwiązanie brutalne zadania Books:
https://youtu.be/JggX75UKThc?t=1461
Algorytm gąsienicy – usprawniamy algorytm brutalny
https://youtu.be/JggX75UKThc?t=1830
Algorytm gąsienicy
https://youtu.be/JggX75UKThc?t=2004
Z czego wynika algorytm gąsienicy?
https://youtu.be/JggX75UKThc?t=2163
Złożoność algorytmu gąsienicy:
https://youtu.be/JggX75UKThc?t=2990
Kod zadania Books:
https://youtu.be/JggX75UKThc?t=3210
Czy Tomek zapominał użyć long long?
https://youtu.be/JggX75UKThc?t=4036
Dowód nie wprost = Jeśli a*b=400 to czy a i b mogę być jednocześnie większe od 20?
https://youtu.be/JggX75UKThc?t=4060
Czy komputer nas potrzebuje – metoda brutalna vs optymalna – czas działania komputera
Szukamy dzielników liczby 900
https://youtu.be/JggX75UKThc?t=4221
Challenge – opis:
https://youtu.be/JggX75UKThc?t=4778

Olimpiada DLA ZAAWANSOWANYCH #8 – poniedziałek, 8 listopada 2021, 18:30
Link do zajęć: https://youtu.be/1YZGyc2ODPU
Quiz:
https://youtu.be/yvEDfGKN8Bo?t=322
Problem #1 – czy istnieje droga?:
https://youtu.be/yvEDfGKN8Bo?t=1080
Na jakie pytania odpowiada Find And Union?
https://youtu.be/yvEDfGKN8Bo?t=1175
Złożoność Find And Union:
https://youtu.be/yvEDfGKN8Bo?t=1772
Gdzie przepisujemy informacje o reprezentantach?
Czy z większego do mniejszego?
https://youtu.be/yvEDfGKN8Bo?t=1930
Utrata funkcjonalności i małe komplikacje
https://youtu.be/yvEDfGKN8Bo?t=2465
Algorytm Find And Union:
https://youtu.be/yvEDfGKN8Bo?t=2531
Zadanie Tunele:
https://youtu.be/yvEDfGKN8Bo?t=3629
Obserwacja Kaliny – co jeśli likwidujemy krawędź z cyklu?
– dwuspójne
https://youtu.be/yvEDfGKN8Bo?t=4647
Olimpiada – nie ociągajmy się!
https://youtu.be/yvEDfGKN8Bo?t=5052
Nie wolno ściągać!
https://youtu.be/yvEDfGKN8Bo?t=5140
Na czym polega poprawne rozwiązanie w Olimpiadzie?
https://youtu.be/yvEDfGKN8Bo?t=5367