ProjectEuler.net - z czym to się je?

środa, 22 grudnia 2010
Leonard Euler
Wracasz do domu po zajęciach i nie masz co robić, a chętnie byś pogłówkował? Chciałbyś sprawdzić swoje matematyczno-informatyczne umiejętności? A może po prostu masz ochotę pograć w wymagający logicznego myślenia RPG? Przeczytaj!








Wstępniak
Project Euler rozpoczął Colin Hughes w październiku 2001 r. w podsekcji na mathschallenge.net. Któż mógł przewidzieć, jak popularne okażą się tego typu problemy? Od tego czasu liczba członków nadal rosła i Project Euler przeniósł się do własnej domeny w 2006 roku. Wydaje mi się, że nazwa projektu jest wyrazem szacunku dla jednego z najwybitniejszych matematyków Leonarda Eulera.

Daty już znam, ale o co chodzi?
Screen1: Sygnatura generowana przez serwis.
Jednym słowem www.ProjectEuler.net to serwis z ponad trzystoma zadaniami do rozwiązania. Rejestrujemy się na stronie, wypełniamy podstawowe dane (kraj i email(opcjonalnie)) oraz wybieramy preferowany przez nas język programowania, a dokładniej narzędzie jakim posłużymy się do odnajdywania poprawnych odpowiedzi(jest ich 51, w tym również Ołówek & Papier :D). Następnie wybieramy dowolne zadanie, czytamy polecenie, rozwiązujemy je na kartce lub krótkim programem, podajemy do pola tekstowego wynik i zaliczamy zadanie. Do zabawy zaprosił mnie znajomy. Obecnie mam 23 rozwiązanie zadania z 315, niestety brakuje mi czasu na kolejne.  Cały pomysł ma więcej zalet i postaram się je wymienić w postaci listy.

Zalety
  • Ciągły rozwój projektu: co tydzień w niedzielę dodawane jest nowe zadanie + co kilka miesięcy większe zmiany
  • Konkurencja: strona prowadzi statystyki (ilu jest programistów z jakiego kraju, jaki jest procent rozwiązanych zadań itp), co motywuje do działania, by piąć się w górę rankingów
  • Jakość programowania: nie chodzi tylko o to, by rozwiązać problem, lecz by zrobić to także efektywnie
  • Statystyki i poziomy: poprzez statystyki oraz nadawanie poziomów doświadczenia (max 6 + 2 specjalne), strona zachęca do rozwiązywania kolejnych i kolejnych zadań (mi to przypomina trochę tryb RPG (nabijanie poziomów itp., dlatego pochłonęło mnie na początku bez reszty, w pewnym momencie tak się wczułem, że zacząłem myśleć nad własną wersją, gdzie za każde zadanie dostawalibyśmy losowe przedmioty do ubierania swojego bohatera ;))
  • Różnorodność zadań: od najprostszych nadających się na wejściówki na laboratoria, po trudniejsze, gdzie rozwiązanie należy znaleźć np. poprzez przeszukiwanie drzewa binarnego
  • Rozwija, uczy, bawi: proste hasło, ale jakże prawdziwe - nie dość, że samo rozwiązywanie jest ciekawe, a satysfakcja z kolejnej poprawnej odpowiedzi jest ogromna, to projekt uczy nas ważnej rzeczy: podejścia, które jest nam wpajane na studiach, a mianowicie: czytamy problem, ZASTANAWIAMY SIĘ NAD NIM, kodujemy (a nie odwrotnie), jeśli wynik sie nie zgadza, to problem zostawiamy na następny dzień, by na świeżo spróbować go rozwiązać (sam miałem kilka razy takie olśnienia po czasie, gdy pierwsze próby kończyły się niepowodzeniem)
  • Mało-wiele funkcji: projekt mimo wielu funkcji jest prosty i to jego ogromna zaleta: nie skupiamy się na dodawaniu przyjaciół, werbowaniu nowych ludzi, przeglądaniu wpisów na tablicy innych użytkowników, czy ich nowych zdjęć, bo tego tu po prostu nie ma, w zamian całą naszą uwagę pochłaniają zadania do rozwiązania
  • Dedykowana sygnatura: udostępnia dla każdego ciekawy obrazek z ksywką i liczbą rozwiązanych zadań, który można wkleić na przykład na forum jako sygnaturę
  • Forum: po rozwiązaniu zadania mamy dostęp do forum, gdzie użytkownicy dzielą się efektywnymi rozwiązaniami

Screen 2: Lista państw.
Wady
  • Słabo opisane zadania: niektóre polecenia opisane są tak prosto, że więcej czasu zajmuje mi zrozumienie o co chodzi (a właściwie odpowiedzenie np. na pytanie: "Czy elementy macierzy mogę dodawać przechodząc z krawędzi prawej strony na lewą krawędź?" itp.)
  • Brak wyszukiwania użytkowników: to dla mnie jedyny minus, gdyż jeśli rozwiązujemy zadania ze znajomym, muszę się przebijać przez kilkanaście stron polskich użytkowników, by go znaleźć i sprawdzić jego statystyki ;)
Podsumowanie
ProjectEuler.net to świetna zabawa, którą polecam każdemu programiście. Uczymy się wiele, odkrywamy, testujemy, próbujemy, a satysfakcja jest niesamowita. Uwaga, Uzależnia!

1 komentarze:

Anonimowy pisze...

Hmmm... wygląda fajnie.
Chętnie bym podszkolił swoje umiejętności Python'a, może się czegoś nowego nauczę, a jeśli nawet nie to znajdę przynajmniej praktyczne zastosowanie dla mojej wiedzy, bo ostatnio pomysłów na nowe programy nie mam.

Swoją drogą fajny blog ;] Będę go odwiedzał (a może bardziej przeglądał RSS)

Prześlij komentarz