JavaBlock to program do tworzenia i symulowania (interpretowania, wykonywania) schematów blokowych. Schematy blokowe pomagają młodym programistom zrozumieć sposób tworzenia algorytmów. W przestrzeni dwuwymiarowej łatwiej analizuje się działanie samego algorytmu, aniżeli sam kod. Początkujący programista widzi od razu, co jest wykonywane i w jakim momencie.

Sam program udostępniony będzie na licencji GPL, dzięki czemu każdy doświadczony programista będzie mógł w łatwy sposób rozszerzyć możliwości programu i przysłużyć się jego rozwojowi, na razie kod jest zamknięty i intensywnie rozwijany.

Program ma być nie tylko lekki, ale i prosty w obsłudze, pozwalać na programowanie zarówno bardziej doświadczonym programistom jak i tym kompletnie początkującym. Schematy blokowe pozwalają dowolnie projektować algorytmy.

Bloki niekodowe zwalniają niemal całkowicie początkującego programistę z konieczności poznania składni przed rozpoczęciem programowania. Sam program nie musi być używany tylko do programowania, można w nim tworzyć również schematy blokowe z programowaniem nie mające nic wspólnego.

Cechy programu:

  • Tworzenie schematów blokowych
  • Symulacja schematów przy użyciu JavaScript, lub Python (opcjonalnie)
  • Śledzenie wartości zmiennych
  • Generowanie skryptów (niezbyt optymalnych) Python i JavaScript ze schematu (trzeba jeszcze ręcznie dopisać klasę obsługującą wejście/wyjście)
  • “Ułatwiacze” i uniwersalizacja składni JavaScript i Python (np. i++ w Pythonie zamieniane na i+=1)
  • Rysowanie niskopoziomowe (canvas2d) i prosta implementacja poleceń LOGO
  • Definiowanie struktur (w przyszłości klas i ich metod)
  • Działa jako aplet
  • Tryb Pascala (np. można używać := do przypisania, = do porównywania, <> zamiast !=)
  • Bezpośrednie wysyłanie i pobieranie schematów do i z pastebin.com
  • “Niekodowe” edytory bloków – niewymagające znajomości składni (np. wejście/wyjście, blok startowy, bloki obsługujące dodatki)
  • Schemat jako funkcja – możliwość potraktowania schematu jak funkcji (również rekurencja)
  • Aplikacja “sędziego” do sprawdzania poprawności wielu schematów jednocześnie (w przygotowaniach)
  • Ładowanie skryptów dla poszczególnych silników
  • Ładowanie klas Java do użytku w schematach

Wymagania:

  • Rozdzielczość 1024×600 (obcina lewy panel), zalecana wyższa niż 1024×800
  • 256 MB RAM, zalecane 1GB
  • 20 MB na HDD
  • System dowolny z Javą SE 1.6
  • Połączenie z internetem (sprawdzanie wersji, wysyłanie/ściąganie schematów z internetu, instalacja modułów dodatkowych)

Nie jest to oczywiście jedyne takie narzędzie. Innymi popularnymi narzędziami są:

  • ELI – Stary, ale dobry edytor schematów blokowych. Datuje się go na 1994, więc jest bardzo stary. Nie używałem go zbyt wiele. Oferuje oprócz tworzenia i symulowania schematów także obsługę urządzeń typu czujnik temperatury, natężenia światła itd., które mogą posłużyć za źródła danych do przetwarzania w algorytmie. Wygląda jednak niezbyt estetycznie.
  • Magiczne Bloczki – mały, wydajny, o sporych możliwościach. Tworzy również pseudokod, który można nazwać tekstową wersją schematu blokowego. Używałem go do nauki schematów blokowych. Szczerze przyznam się że wzorowałem się na nim nieco, ale o tym później. Język interpretowany przypomina Basic.

JavaBlock posiada bardzo obszerny manual, w którym dowiemy się wszystkiego o działaniu programu i jego funkcjach.

  • Greg

    Szkoda, że program nie jest Open Source. Nie wiecie kiedy planują wydać wersję na GPLu?

  • Klakier

    uczymy się na tej aplikacji w szkole ;) :) fajna jest

  • Wstępnie autor planuje w czerwcu, jednakże termin jeszcze nie jest znany dokładnie :) Bynajmniej damy o tym znać i postaramy się opisać troszkę więcej w jakimś artykule :D

    • Kenji

      Bynajmniej damy znać? :| Oj, oj…

    • Greg

      Super! Czekam na info.

      @Kenji, co się Tobie nie podoba. Ja zrozumiałem treść przekazu. Jak szukasz portalu o ortografii to pomyliłeś linki :]

  • Kenji

    Treść przekazu "my bynajmniej dać o to znać" też jest zrozumiała, ale kole w oczy i ja osobiście nie zamierzam przechodzić nad tym do porządku dziennego.

  • Pingback: Flood fill – rozwiązywanie labiryntu z użyciem algorytmu zalewania | OSWorld.pl()