Naucz się popularnego języka programistów - Java od podstaw

fot. Mistrzowie Kodowania

Typografia
  • Smaller Small Medium Big Bigger
  • Default Helvetica Segoe Georgia Times

Większość młodych osób zaczynających swoją przygodę z programowaniem wybiera na początek graficzne środowiska programistyczne, w których tworzy się program przy pomocy graficznych elementów (np. bloków). Prym wiedzie tu Scratch, który wyróżnia się ładną, kolorową grafiką. Dzięki przyjaznemu i intuicyjnemu interfejsowi początkujący programiści mogą skupić się na planowaniu swoich pierwszych algorytmów bez konieczności jednoczesnego poznawania nowego języka.

Przez jakiś czas takie środowisko bardzo pomaga, ale z czasem zaczyna się dostrzegać jego ograniczenia. Trudno stworzyć w nich bardziej rozbudowane programy, ponieważ klocki zajmują za dużo miejsca na ekranie, ciężko też objąć wzrokiem całość większej funkcji. Drugim problemem na który można natrafić jest stosunkowo trudne wykorzystanie cudzych bibliotek czy fragmentów innych programów.

Kiedy adept programowania stworzy kilkanaście projektów w środowisku blokowym, być może nawet nie zdając sobie do końca sprawy, zaczyna docierać do niego rewolucyjna myśl, że tak naprawdę w programowaniu nie chodzi o bloczki czy kod. To są tylko narzędzia, aby przenieść swoje myśli, swój algorytm do pamięci komputera. To, co jest samym sednem programowania, to znajdowanie wzorców w rozwiązywanych problemach oraz zajmowanie się szczegółami problemów. Kiedy to nastąpi, okazuje się, że kod programu w postaci tekstu nie jest problemem. W porównaniu do bloczków jest bardziej zwięzły, można go czytać prawie jak opowieść, a jednocześnie jest bardziej elastyczny.

Przykładem takiego języka jest Java. Jest to język obiektowy. Co to oznacza? Aby odpowiedzieć na to pytanie musimy się chwilę zastanowić nad tym jak wygląda nasza interakcja z fizycznym światem. Wszystkie rzeczy mają swój typ oraz posiadają cechy i zachowania. Jeśli weźmiemy na przykład jakiś konkretny samochód, to możemy stwierdzić że jest to egzemplarz pewnego modelu samochodu, że ma jakiś kolor, wagę, prędkość maksymalną, 4 koła oraz 4 drzwi. Możemy te cechy zaobserwować (czyli w nomenklaturze programistycznej: odczytać), natomiast tylko część z tych cech możemy zmienić (czyli zmodyfikować), na przykład możemy pomalować samochód na nowy kolor. Oprócz tego na obiekcie można wykonywać pewne czynności, np. otworzyć drzwi samochodu, uruchomić go, jechać nim. Twórcy programowania obiektowego postanowili przenieść taki model świata do języków programowania. Stąd też w Javie wszystko jest obiektem pewnej klasy (czyli typu), posiada pola (cechy) które możemy odczytywać oraz modyfikować oraz metody (czynności), które możemy wykonać na konkretnym obiekcie (czyli np. naszym samochodzie).

Programowanie obiektowe pozwala nam intuicyjnie opisać fizyczny świat, dzięki czemu możemy efektywnie rozwiązywać zadane problemy. Taka organizacja kodu skutkuje drugą ważną cechą Javy i ogólnie języków obiektowych. Poprzez opisywanie obiektów jako całości, zamykamy ich model (czyli nasze wyobrażenie o tym bycie) w jednej klasie (w uproszczeniu pliku) dzięki czemu mamy ułatwione budowanie modułów (bibliotek), które potem możemy opublikować i współdzielić między różnymi projektami. Jest to kolejna bardzo ważna cecha Javy. Ma jeden z najbogatszych ekosystemów bibliotek. Możemy znaleźć gotową bibliotekę praktycznie do każdego zadania, dodatkowo większość z nich jest dostępna za darmo, często open-source, czyli z kodem dostępnym do wglądu i modyfikacji.

Powyższe zalety Javy spowodowały, że zdecydowaliśmy się na wykorzystanie jej do stworzenia scenariuszy nauki programowania w "prawdziwym" języku. Nie bez znaczenia jest też fakt, że jest jednym z najpopularniejszych języków programowania używanym przez zawodowych programistów.

Poznawanie nowego języka oraz środowiska programistycznego (IDE) mogłoby być zbyt trudne dla początkujących adeptów programowania, dlatego też szukaliśmy IDE, w które byłoby ewolucyjną zmianą w stosunku do Scratcha. Takie wymaganie najbardziej spełniał Greenfoot. Z jednej strony mamy graficzny, klikalny edytor do prostego budowania świata i aktorów, a z drugiej kod Javy do oprogramowania zachowania poszczególnych elementów. Edytor Javy posiada typowe ułatwienia tworzenia kodu, takie jak podświetlanie składni języka, podpowiadanie nazw metod czy wyświetlanie ich dokumentacji. Dodatkową zaletą Greenfoota, jak i Javy w ogóle, jest ich przenośność między systemami. Można tworzyć kod na Windowsie, Linuksie czy Mac OS X i potem odpalić go na zupełnie innej platformie. Nie do przecenienia jest też fakt możliwości używania wszystkich bibliotek javowych w naszym Greenfootowym programie!

Naukę podstaw Javy w Greenfoocie podzieliśmy na 8 scenariuszy, które można znaleźć na stronie wiki Mistrzów Kodowania. Każdy scenariusz tworzy zamkniętą całość, nie ma więc konieczności przejścia wszystkich po kolei, aczkolwiek warto, gdyż w poszczególnych scenariuszach akcenty są rozłożone na różne elementy języka. Zaczynamy od prostych projektów, w których poznajemy podstawy składni Javy i pracy w tym środowisku, poznajemy różnicę między klasą a obiektem. Następnie pokazujemy proste biblioteki istniejące w Greenfoocie pozwalające na współpracę z myszką i obsługę naciskanych klawiszy na klawiaturze. Gdy już potrafimy stworzyć proste gry, przechodzimy do troszkę bardziej zaawansowanej koncepcji ze świata obiektowego programowania, takich jak dziedziczenie i konstruktory. Jednocześnie poznajemy podstawy obsługi multimediów takich jak animacje czy dźwięki oraz podstawy tworzenia aplikacji z “prawdziwymi” kontrolkami, takimi jak: przyciski, listy, pola tekstowe.

Scenariusze zawierają część podstawową, która jest stosunkowo prosta i powinna być wykonana przez każdego bez większych problemów. Jeśli okaże się, że komuś poszła bardzo szybko i chciałby zrobić coś więcej, to może znaleźć w scenariuszach zaawansowaną część dla chętnych lub wskazówki, w którym kierunku można rozbudować swoją aplikację, np. dodać zapisywanie danych do pliku, bądź też integrację z portalem społecznościowym czy zewnętrzną bazą danych. Powodzenia mistrzowie!

 

Materiał przygotowany w ramach współpracy partnerskiej pomiędzy Edunews.pl oraz programem Mistrzowie Kodowania firmy Samsung Electronics Polska.

 

Jesteśmy na facebooku

fb

Ostatnie komentarze

Gość napisał/a komentarz do Oceniajmy rzadziej!
Przeczytałam z dużym zainteresowaniem. Dziękuję za ten artykuł.
Ppp napisał/a komentarz do Oceniajmy rzadziej!
Terada i Merill mają CAŁKOWITĄ rację. Jak ktoś chce i może - nauczy się i bez oceniania. Jeśli ktoś ...
Marcin Zaród napisał/a komentarz do Szkolna klasa - dobre miejsce do współpracy
Mój syn będąc w liceum w klasie mat-info-fiz prosił z kolegami o ustawienie takich tablic na korytar...
Marcin Polak napisał/a komentarz do Szkolna klasa - dobre miejsce do współpracy
Świetny przykład, że każdą przestrzeń klasy da się łatwo zreorganizować, aby pobudzić aktywne uczeni...
Robert Raczyński napisał/a komentarz do Informacja zwrotna dla przyszłości
O informacji zwrotnej można długo... Przedstawione tu wskazówki są cenne. Niestety, problem w tym, ż...
Andrzej napisał/a komentarz do Informacja zwrotna dla przyszłości
Bardzo proszę o przykład idealnie napisanej informacji zwrotnej.
Ppp napisał/a komentarz do Informacja zwrotna dla przyszłości
Jeśli jestem w czymś dobry - wiem o tym, dodatkowy komentarz nie jest potrzebny.Jeśli jestem w czymś...
Piotr napisał/a komentarz do Déjà vu
Codziennie z ulgą odkrywam, że jestem emerytowanym nauczycielem

E-booki dla nauczycieli

Polecamy dwa e-booki dydaktyczne z serii Think!
Metoda Webquest - poradnik dla nauczycieli
Technologie są dla dzieci - e-poradnik dla nauczycieli wczesnoszkolnych z dziesiątkami podpowiedzi, jak używać technologii w klasie