Olimpiada Informatyczna krok po kroku – Tutorial – Przygotuj się sam!

Wstęp
Chcesz wystartować w Olimpiadzie Informatycznej lub w Olimpiadzie Informatycznej Juniorów?

Nic nie umiesz? Nawet programować?
Nie wiesz jak zacząć? Nie wiesz co robić? Jak się przygotować?
A może już trochę umiesz, ale nie wiesz czy ten materiał wystarczy.

Ten tutorial jest dla Ciebie!
Poprowadzi Cię od samego początku – od pierwszego programu do osoby która nie tylko będzie walczyć o finał i najwyższe miejsca w OIJ / OI, ale w przyszłości rozwiąże problemy tego świata!
Tu znajdziesz całość materiału – krok po kroku – jak przygotować się do Olimpiady Informatycznej Szkół Podstawowych oraz Licealistów.

Oczywiście zachęcam także do bezpłatnych zajęć Olimpijskiego Koła Informatycznego:
https://oki.org.pl/harmonogram-zajec/
W grupie, rozwiązując quizy, challenge – dużo łatwiej!

Ile potrzebuję czasu by opanować materiał?
Od kilku miesięcy do 3 lat.
Średnio zajmuje około 1 roku by opanować wiedzę potrzebną do Olimpiady Informatycznej Juniorów i około 2 lat by opanować wiedzę potrzebną do Olimpiady Informatycznej Licealistów.
Ale można szybciej. W miesiąc opanować programowanie. w kolejny miesiąc podstawowe techniki, podejścia algorytmiczne.

Jakie tempo?
3-4 zadania tygodniowo.
Jeśli masz wakacje, ferie, weekend, poświęć więcej czasu.

Chciałbym więcej zadań robić niż w tym tutorialu. Gdzie znajdę zadania?
Wejdź na stronę:
https://oki.org.pl/lista-zadan-materialy.php
Znajdziesz tam setki zadań które możesz sortować i wyszukiwać po poziomie trudności, wymaganej wiedzy (kliknij “Pokaż dodatkowe informacje w tabeli”) . Ostatnia kolumna to link do omówienia i kodu.

=
Programowanie
Rekomenduje naukę i wykorzystanie języka C++

  • Używany na wszystkich konkursach – Olimpiady: polska, amerykańska, międzynarodowe , Wszystkie konkursy informatyczne
    Co do pozostałych języków nie ma takich gwarancji
  • Najlepiej pozwala zapisać nasze pomysły algorytmiczne
  • Najszybszy

No i pozwala zrozumieć jak działa nasz komputer. A to powoduje, że reszta staje się prosta…

Co muszę umieć z języka C++ by startować w Olimpiadzie Informatycznej / Olimpiadzie Informatycznej Juniorów?
Rekomenduje byś poznał pełna wersję. Ale by wystartować w Olimpiadzie wystarczy:

  • Wypisywanie (cout)
  • Wczytywanie (cin)
  • Warunek (if)
  • Pętla (for)
  • Funkcje
  • Tablice

Niezależnie rekomenduję przejście całego kursu C++.  Aż do zasad czystego kodu.
Dlaczego?

  • Będziesz pisać kod bez błędów.
  • Pisanie kodu na konkursie zajmie Ci mniej czasu
  • Będziesz mieć radość z programowania!

1. Pierwszy program – wypisujemy dane na ekran
A. Zadanie Serce
Omówienie: https://youtu.be/zN3CApegsSY?t=1682
Kod / linki / rozwiązanie: https://oki.org.pl/serce/

=
Algorytmika
Zakładam, że umiesz programować. W C++ (preferowane) kub Python. Jeśli nie – zachęcam do lekcji powyżej.
Poniżej zbiór problemów wymaganych podczas OIJ oraz OI wraz ze szczegółowymi omówieniami.
Pamiętaj, by najpierw pomyśleć samemu pomyśleć min 4h: https://youtu.be/QgLyXYmFQeU?t=2019
I nie zaglądać do rozwiązania więcej niż raz: https://youtu.be/pkLXuuOe_qA?t=3625

1. Pomysł
By startować w Olimpiadzie Informatycznej / Olimpiadzie Informatycznej Juniorów nie potrzeba gigantycznej wiedzy. Często nie potrzeba żadnej wiedzy. Wystarczy prosty pomysł, obserwacja…

Rekomenduję następujące zadania wymagające jedynie umiejętności programowania i prostego pomysły
1a. Pionki (finał Olimpiady Informatycznej Juniorów)
Treść: https://szkopul.edu.pl/problemset/problem/ZhrqkG9W7TYF2VPrIuR1Ufry/site
Rozwiązanie: https://oki.org.pl/pionki/
Zadanie z finału Olimpiady Informatycznej Juniorów. Tym niemniej niesamowicie proste.