Moja twórczość
Książki
Byłem redaktorem kilku książek zawierających rozwiązania zadań z polskich konkursów programistycznych. Poniżej znajduje się lista książek z opisem mojego wkładu w każdą z nich:
- W poszukiwaniu wyzwań (Warszawa 2012, 2018) — redakcja, opis zadań Ploter i Termity,
- W poszukiwaniu wyzwań 2 (Warszawa 2015, 2019) — redakcja, skład, opis zadań Drzewo i mrówki, Generator bitów, Krzyżak, Formuła 1, Generał kontra gawiedź, Hydra, Cieśla, Egzamin, Fotoradary, Janosik, Filary i Globalne ocieplenie,
- Przygody Bajtazara (WN PWN, Warszawa 2018) — redakcja, skład, opis zadań Szeregowanie czynności i Zapiekanki, dodatek do zadania Kurierzy, artykuły Drzewa przedziałowe i Kolejka minimów,
- niebieskie książeczki Olimpiady Informatycznej (od 2011) — redakcja, opis zadań Konkurs programistyczny, Odległość, Hurtownia, Labirynt, Kinoman, Modernizacja autostrady, Arkanoid i Wcale nie Nim,
- Matematycy, szpiedzy i hakerzy. Kody i szyfry (RBA, Warszawa 2012) — tłumaczenie.
Artykuły w popularnonaukowym czasopiśmie Delta
Od 2008 roku piszę artykuły dla popularnonaukowego czasopisma Delta wydawanego przez Uniwersytet Warszawski. Część z nich można przeczytać na mojej stronie autorskiej w internetowej wersji tego miesięcznika. Poniżej jest lista wszystkich artykułów, które napisałem:
- artykuły z cyklu Informatyczny kącik olimpijski, który zawiera opisy rozwiązań zadań z konkursów programistycznych: Plan zajęć (5/2009), Gra w kółko (7/2010), Ploter (7/2011), Neon (8/2011), Godzilla (12/2011), Monety (2/2012), Jaskinia (4/2012), Dziurawa szachownica (8/2012), Odśnieżanie (2/2013), Kliki (3/2013), Czworokąty wypukłe (4/2013), Plecak (6/2013), Dwa torty (9/2013), Opóźnione wyszukiwanie (10/2013), Dwóch generałów (11/2013), Świetliki (2/2014), Dwa zadania z Potyczek (3/2014), Trasowanie (6/2014), Jakie to proste (7/2014), Smok i owce (9/2014), Skarb (10/2014), Wybrakowany ciąg (11/2014), Fotoradary (1/2015), Filary (3/2015), Podział grafu (4/2015), Kuglarz (5/2015), Wiercenia (6/2015), Więzienie (7/2015), Sklep ze słodyczami (8/2015), Jeszcze dwa zadania do plecaka (9/2015), Zliczamy puste prostokąty (11/2015), Wykładzina (12/2015), Darmowe rozmowy (1/2016), Zapis wieżowy (2/2016), Kolorowanie cyklu (3/2016), Wieża z siana (5/2016), Optymalna trasa łazika (7/2016), Oblodzone drogi (8/2016), Świąteczny łańcuch (10/2016), Kosmita (11/2016), Równoważność palindromiczna (12/2016),
- cykl Bestiariusz informatyczny dotyczący informatycznych akronimów: siedem artykułów (12/2015, 4/2016, 2/2018, 4/2018, 9/2018, 11/2018, 3/2019),
- artykuły matematyczne: Kolorowanie wielomianów (10/2008), Fraktalny świat papierowej tasiemki (7/2011), O kapeluszach i pewnym pewniku (12/2011),
- artykuły algorytmiczne: Śledzenie promieni (4/2009), Gra o wielu obliczach (7/2010), O wieżach, permanencie i parzystości (10/2010), Współczynniki dwumianowe modulo m (11/2010), Dwadzieścia ruchów zawsze wystarczy (5/2011), Zawieramy wielokąty (5/2013), Informatyk gra na giełdzie (10/2013), Skojarzenia... (11/2013), Zliczamy skojarzenia (1): O układaniu domina i permanencie (10/2015), Zliczamy skojarzenia (2): O planarności i algorytmie FKT (11/2015), Odwracamy, obracamy... (2/2016), Zliczamy podciągi (7/2020), Zliczamy nadciągi (6/2023),
- artykuły dotyczące architektury i historii komputerów: Kolejność ma znaczenie (9/2011), Cyfrowy dźwięk i wojna na decybele (10/2011), O sierotce, co chciała się mózgiem elektronowym wyręczyć (8/2012), Krzaczki na ekranie (6/2013), Turing kontra spamboty (2/2014), Burzliwe początki cyfrowego tysiąclecia (7/2015), Pamięć w komputerze (5/2016), Współbieżność jest nieituicyjna (12/2023),
- artykuły dla młodszych czytelników z cyklu Mała Delta: Numizmatyka dla zachłannych (12/2012), O tym, jak Puchatek podzbiory permutował (2/2015), Architekci i algorytmy (2) (8/2015),
- recenzje książek: W poszukiwaniu prawdy (3/2012), E-mailem z Doliny Krzemowej (7/2012).
Zadania z konkursów programistycznych
Poniżej znajduje się lista prawie wszystkich zadań, które stworzyłem na różne konkursy programistyczne. Większość z nich jest dostępna publicznie na portalach z zadaniami.
- Olimpiada Informatyczna — zadania Konkurs programistyczny (XVIII OI), Hurtownia (XIX OI), Labirynt (XX OI), Kinoman, Modernizacja autostrady (XXII OI), Arkanoid, Wcale nie Nim, Żywopłot (XXIII OI), Flappy Bird, Kontenery, Zamek, Zapiekanki (XXIV OI), Plan metra, Prawnicy, Drogi rowerowe, Konduktor, Przekaźniki telekomunikacyjne, Tomik poezji (XXV OI), Klubowicze 2, Robocik (XXVI OI), Drzewo czwórkowe (XXVII OI), Gang Biciaków, Licznik długu, Projekt planszy, Plażowicze, Surowa zima (XXVIII OI), Impreza krasnali, Montażysta, Bomberman, Impreza krasnali 2, Wybredny Bajtazar (XXIX OI), Płytkie nawiasowania, Wyprzedzanie (XXX OI), Budowa lotniska, CzatBBB (XXXI OI),
- Potyczki Algorytmiczne — zadania Słowa, Gra (2006), Klikowce, Klikowce kontratakują, Smok Mlekopij, Powrót klikowców (2008), Gra w kółko, Prawie szablon, Maszyna Fibonacciego (2009), Monety, Koza, Termity, Ślepy Nim (2010), Ploter, Szlaczki, Laserowy bilard, Luneta (2011), Mecze, Tanie linie, Korniki, Dwójkowy zbijak, Inwazja kosmitów (2012), Kryształ, Kamyki (2013), Wykładzina (2014), Kontrmanifestacja (2015), Bilard Hilberta (2016), Zapiekanki 2, Carcassonne, Giewont, Wielokąt (2017), Podobieństwo genetyczne (2018), Iloczyny Fibonacciego (2019), Elektrownie i fabryki (2020), Ciekawe ścieżki (2021),
- Akademickie Mistrzostwa Polski w Programowaniu Zespołowym — zadania Generator bitów, Herbata z mlekiem (2011), Formuła 1, Generał kontra gawiedź, Hydra, Jutro, Króliki (2012), Cieśla, Fotoradary, Heros, Inżynieria genetyczna, Janosik (2013), Euklidesowy Nim, Filary, Globalne ocieplenie, Jaskinia (2014),
- Międzynarodowa Olimpiada Informatyczna — zadania Mechanical Doll (2018), Broken Line (2019),
- Bałtycka Olimpiada Informatyczna — zadania Demarcation (2014), Editor (2015), Spiral (2016), Railway (2017), Viruses (2020),
- konkurs Yandex.Algorithm — zadania Kingdom Division, Bees (2013),
- konkursy na platformie Topcoder — zadania Gangsters, CommonPalindromicSubsequences, RearrangingBoxes, BuildTheRoads (TCO 2018), Depot (TCO 2019),
- Obóz Naukowo-Treningowy im. Antoniego Kreczmara — zadania Mityng, Żołędzie, Hokus-pokus (2007), Listonosze, Światłowody, Godzilla, Płotki (2009), Skojarzenia, Nawiasy, Autostrady, Szachownica, Generator, Białe prostokąty, Neon (2010), Czekolada, Tramwaje, Darmowe rozmowy, Elektrownia szczytowo-pompowa (2011), Tramwaje, Spedycja (2012), Nadciągi (2019), Projekt planszy 2, Zamek (2021), Piasek, Spotkanie (2023),
- obóz czesko-polsko-słowacki — zadania Giełda (2007), Dzielenie Fibonacciego, Świąteczny łańcuch 2, Liczenie podciągów (2019),
- kwalifikacje do AMPPZ na Uniwersytecie Warszawskim — zadania Plan zajęć (2005), DNA (2007),
- Indeed Prime Challenge (konkurs na platformie Codility) — zadanie Hilbert Maze (2016),
- Asseco Programming Marathon24 — zadania Game of Fifteen, Pizzerias, QR Codes, Wombat (2013), Film Editor, Paperboy, Passing Loop, Rainfall (2014),
- Mistrzostwa Wielkopolski w Programowaniu Zespołowym — zadanie Autostrada (2019).
Nagrania wideo
Poniżej znajduje się lista nagrań wideo z niektórych moich wykładów i objaśnień zadań z konkursów programistycznych:
- wykłady i omówienia zadań na obozie Brazilian ICPC Summer School EN — wykład na temat programowania dynamicznego, rozwiązania zadań część 1, część 2, część 3, część 4 (2015), wykład na temat problemu plecakowego, rozwiązania zadań część 1, część 2, część 3, część 4 (2018),
- wykłady na Obozie Naukowo-Treningowym im. Antoniego Kreczmara — Trik z wypukłością w programowaniu dynamicznym (2020),
- wykłady w ramach Szkoły Programowania Jacka Tomasiewicza i Bartka Łukasiewicza — Najkrótsze ścieżki w grafie z metryką Manhattan, Podstawy rekurencji, Omówienie zadań ze sparingu przed OIJ, Otoczka wypukła z dynamicznym dodawaniem punktów (2021),
- omówienia zadań z platformy Codility EN — The Matrix Challenge, The Doge Challenge, The Great Code Off Challenge, May the 4th Challenge, The Fellowship of the Code Challenge, Fast & Curious Challenge, The Coder of Rivia Challenge, National Coding Week Challenge, Spooktober Challenge, Gamer's Challenge (2021), Code Alone Challenge, Pair a Coder Challenge, Year of the Tiger Challenge (2022),
- omówienia zadań z Olimpiady Informatycznej — zadanie Kinoman (2014), Układ scalony, Pomniejszenie (2019), Cukiernia, Licznik długu, Gra platformowa, Tablica binarna, Gang Biciaków (2020), Rozliczenia, Gwiazdy, Kolacje, Osiedla, Przesunięcie cykliczne, Przelewy, Drogi rowerowe, Konduktor, Tomik poezji, Zdjęcia krasnali, Pakowanie plecaka, Plażowicze, Szablon Bajtogrodu, Metro, Wyścigi, Zjazd obieżyświatów, Gra w dzielniki, Ornitolog, Dwa pionki, Trzy wieże 2, Liczby kompletne, Turniej trójinformatyczny, Ogrodzenie, Wielomian (2021), Armia klonów, Agenci, Liczby względnie pierwsze, Bomberman, Konkurs tańca towarzyskiego, Kolekcjoner Bajtemonów 2, Droga do domu, Les Bitérables, Suma liczb pierwszych, Komunikacja międzyplanetarna, Nawiasowania, Surowa zima, Zera i jedynki, Impreza krasnali 2, Wybredny Bajtazar, Głosowanie, Rzeki, Meteory, Szablon 2 (2022),
- omówienia zadań z Potyczek Algorytmicznych — zadania Tanie linie (2012), Kryształ (2013), Muzeum (2014),
- odcinki z serii Algorithms Live!, w których brałem udział jako zaproszony gość EN — odcinek Looking for a Challenge? (2019; mówiłem o książce W poszukiwaniu wyzwań, Potyczkach Algorytmicznych i zadaniu Termity).