Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

Kojo - programowanie w LOGO z użyciem języka Scala

W jaki sposób skutecznie i wygodnie uczyć programowania od podstaw? Ten problem staje przed tobą, jeśli próbujesz nauczyć programowania własne dziecko lub siebie samego. Jeśli jesteś nauczycielem to zapewne zdajesz sobie sprawę z konieczności nieustannego doskonalenia własnego warsztatu pracy i poszukiwania lepszych narzędzi temu służących. Istnieje szereg świetnych aplikacji pomagających w tym zadaniu, jednak jedną z niedogodności przy ich wykorzystaniu jest fakt, że na różnych etapach nauczania, musimy wymieniać te narzędzia, aby dostosować je do poziomu osiągniętego przez naszego podopiecznego. To z kolei wymaga od niego nauki nowego środowiska pracy i języka programowania.

Bardzo często zaczynamy naukę od LOGO, które jest uznawane za skuteczny sposób wprowadzenia młodego człowieka do świata programowania. Następnie przechodzimy do innych języków, które można już wykorzystywać w realnych projektach. Jednakże już tutaj pojawia się problem składni dla dzieci, wykorzystywanej platformy oraz możliwości, jakie oferują różnego rodzaju środowiska programistyczne. Idealny program tego typu powinien działać na dowolnej platformie, mieć prostą składnie dla dzieci oraz duże możliwości, aby zabawa nie kończyła się zbyt prędko i uczenie nie wymagało zmiany narzędzia na inne. Założenia te spełnia Kojo, które uczy realnego języka programowania, nadającego się nie tylko do sterowania żółwiem po ekranie.

Program składa się z modułów takich jak rysowanie 2D i 3D, nauka arytmetyki oraz wbudowana Geogebra. W tym artykule skupimy się tylko na rysowaniu 2D.

Program jest otwarto-źródłowy na licencji GPLv2 i pracuje na maszynie wirtualnej Javy. Oznacza to, że jest dostępny na każdej popularnej platformie i do tego można go używać bezpłatnie zarówno w szkole jak i w domach. Dzięki temu uczniowie mogą ćwiczyć w domu i odrabiać prace domowe jeśli tylko posiadają dostęp do komputera, niezależnie od posiadanego systemu operacyjnego. Program jest w dużym stopniu spolszczony. Poza polskim menu, można używać polskich komend. Wielką zaletą tego programu jest coś czego nie ma żaden inny program tego typu. Otóż w programie tym korzystamy z pełnego języka programowania nazywanego Scalą. Jest to język funkcyjny, kompilowany statycznie, działający na JVM. (Główny język używany przez inżynierów w takich projektach jak Twitter czy Foresquare, umożliwia korzystanie z kodu napisanego w Javie).

Uczeń może więc rozpocząć naukę od bardzo prostych poleceń podobnych do tych z innych wersji LOGO, służących do sterowania żółwiem. Jednak z czasem po osiągnięciu większych umiejętności w razie chęci i potrzeby dalszego uczenia się, może zacząć korzystać z coraz bardziej zaawansowanych elementów programowania. Dzięki temu, aby przejść na wyższy etap nauki, nie musi zmieniać środowiska, do którego się przyzwyczaił. Naukę można kontynuować w wyższym etapie kształcenia, a z czasem można zmienić IDE i zacząć korzystać z całej gamy narzędzi dostępnych w środowisku Javy.

Przykładowy program w Kojo: czyść() skoczDo(-360, 100) tło(niebieski) ustawWypełnieKolorem(żółty) kolor(żółty) ustawKąt(0) powtarzaj(5) { naprzód(200) prawo(144) } podnieśPisak() skoczDo(-350, -50) kierunek(-350, 0) opuśćPisak() rozmiarCzcionki(40) pisz("Witaj w Kojo")

Wynik działania programu:

Standardowo tak jak w klasycznych IDE po napisaniu kilku liter i wciśnięciu Ctrl+Spacja pojawiają się podpowiedzi do funkcji. W programie jest w opcjach dokumentacja, przykładowy kod i tutorial, ale niestety tylko w języku angielskim. Starszym można polecić używanie oryginalnych poleceń w języku angielskim.

Składnia podstawowych poleceń w Kojo po polsku: epodrecznik.edu.pl

Strona domowa Kojo: kogics.net

oprogramowanie programowanie inne

Komentarze

0 nowych
cyryllo   16 #1 08.04.2014 08:56

Pamiętam jak w podstawówce mieliśmy LOGO :) To były czasy :P Pisaliśmy różne animacje już w 8 klasie Zegar itp.
Tutaj widzę że Kojo ma więcej możliwości.

mikolaj_s   13 #2 08.04.2014 09:39

@Cyryllo W Kojo można napisać aplikację użytkową :-)

cyryllo   16 #3 08.04.2014 09:48

@mikolaj_s skoro mamy możliwość pisania w Scala to czemu nie, ale nie dla mnie ;)

bigmac72   1 #4 08.04.2014 12:06

Panie Mikołaju, dziękuję za wpis. Jest on szczególnie cenny, gdyż wiele osób szuka prostych języków do nauki dla dziecka. Ja akurat skorzystałem z biblioteki 'turtles' w pythonie.

Kojo jest o tyle ciekawym językiem, gdyż o ile rozumiem, można następnie przeskoczyć na języki obiektowe, jak Java, C#, itd.

Sam osobiście szukam, rozglądam się, za prostym zestawem do programowania robota dla dziecka.
Język + model samochodu, robota, który można programować w którymś z prostszych języków jak np python.

StawikPiast   10 #5 08.04.2014 15:13

Lego ma jakieś takie zestawy z robotami.

mikolaj_s   13 #6 08.04.2014 17:44

@bigmac72:
"Kojo jest o tyle ciekawym językiem"
Kojo jest środowiskiem, a w rzeczywistości językiem programowania jest Scala. Ma tylko przygotowany tzw. DSL umożliwiający łatwy start dzieciom. W dalszym toku nauki można korzystać z bardziej zaawansowanych opcji języka w tym programowania obiektowego.
Przykładowy prosty kod:
class Prostokąt (x:Int, y:Int) {
def rysuj {
repeat(2) {
naprzód(x)
lewo(90)
naprzód(y)
lewo(90)
}
}
}


val prostokąt = new Prostokąt(100,200)
prostokąt.rysuj

Definiujemy klasę Prostokąt i metodę rysuj. Po czym tworzymy obiekt z klasy i wykonujemy na nim metodę rysuj.
Możliwości tego oprogramowania są olbrzymie. Proponuje sprawdzić wersję uruchamianą jako aplet w przeglądarce: http://www.kogics.net/webkojo i wybieramy: Run Kojo (niezbędna wtyczka Javy do przeglądarki)
Jedynym minusem tego rozwiązania jest fakt, że chcąc przejść z dzieckiem na nieco wyższy poziom trzeba samemu poznać podstawy Scali.

"Sam osobiście szukam, rozglądam się, za prostym zestawem do programowania robota dla dziecka."

Najprościej jest użyć Lego Mindstorm i do tego Enchanting czyli przerobiony Scratch (do Mindstorma dołączony jest program dla dzieci, ale mi osobiście się nie podoba. Są też inne programy ale komercyjne. Opisałem to na moim blogu: http://mikolajsochacki.blogspot.com/2014/03/programowanie-lego-minestorm-nxt-z-l...
Niestety Lego jest dość drogie. Taniej jest kupić jakiś zestaw do budowy robota oraz arduino i samemu zaprogramować w czymś podobnym do C. Arduino programuje się w miarę łatwo i jest sporo przykładów. Tylko takie rozwiązania wymaga więcej pracy i wiedzy od rodzica.

bigmac72   1 #7 11.04.2014 08:49

@mikolaj_s - dziękuję za wyczerpującą odpowiedź. Muszę przyznać, że Lego Mindstorm spodobało mi się najbardziej. Z tego co przeglądałem, to obecnie dostępna wersja to EV3. Podoba mi się, tym bardziej, że istnieje możliwość wgrania alternatywnego softu. Bardzo dobry artykuł na Twoim blogu. Po kupnie LEGO, napewno skorzystam z informacji w nim zawartych.

pozdrawiam
Maciek