Od programowania wizualnego do tekstowego Krzysztof Chechłacz Nowa podstawa programowa z informatyki w świetle reformy oświaty - Konferencja w ramach XII edycji Akademii Technologii Informacyjnej i Komunikacyjnej Ośrodek Edukacji Informatycznej i Zastosowań Komputerów w Warszawie
Nauczanie programowania -początki we wczesnych etapach edukacyjnych zwykle rozpoczynamy od programowania wizualnego, unikamy problemów związanych z zawiłościami składni, szybko uzyskujemy efekt w postaci działającego projektu, i w ten sposób zachęcamy uczniów do kolejnych aktywności.
Nauczanie programowania -problemy Programowanie wizualne nie widać wszystkich elementów jednocześnie na ekranie: - są one pogrupowane w wiele kategorii, - trzeba wykonać wiele operacji myszą, aby te potrzebne wyłuskać i użyć, Inne podejście programowanie tekstowe: - zakłada znajomość składni przez piszącego program, - pojawiają się błędy składniowe, - uczniowie zniechęcają się i wyrażają chęć powrotu do programowania wizualnego, - nie pomagają racjonalne argumenty.
Nauczanie programowania -propozycja przejście od programowania wizualnego do tekstowego w sposób łagodny i akceptowalny dla naszych uczniów, najważniejszy jest sam algorytm rozwiązania postawionego zadania, a sposób zapisu jest mniej istotny, istnieją narzędzia, które umożliwiają przełożenie kodu na inny język niż oryginalny.
Podstawa programowa akcentuje podejście algorytmiczne, wymienia z nazwy niektóre obowiązujące algorytmy, przykład algorytm Euklidesa: - umożliwia wyliczenie największego wspólnego dzielnika dwóch liczb naturalnych; - w najprostszej wersji polega na tym, że póki liczby są różne, od większej z nich odejmujemy mniejszą; gdy się zrównają, oznacza to, że otrzymaliśmy - rozwiązanie należy zapisać w wybranym języku programowania.
Algorytm Euklidesa w Scratchu Przykładowy kod w Scratchu, dla liczb 180 i 42
i w Google Blockly środowisko dostępne na stronie https://blockly-demo.appspot.com/static/demos/code/index.html jeden z demonstracyjnych projektów inicjatywy Google Blockly, w której powstała m.in. szeroko znana Godzina kodowania, podobnie jak w Scratchu, możemy używać języka polskiego, mamy elementy-bloczki, które możemy łączyć tworząc własny projekt, a następnie taki projekt zapisać i uruchomić.
i w Google Blockly wygląda dość podobnie
i w Google Blockly mamy możliwość obejrzenia tego, jak wyglądałoby rozwiązanie zapisane w kilku innych językach wystarczy wybrać jedną z zakładek kilka ostatnich dotyczy dość rzadko używanych języków lub kod jest mało czytelny, zajmiemy się językami z dwóch pierwszych zakładek: Python i JavaScript.
Python kod jest krótki, kod jest czytelny, nie daje wątpliwości co do sposobu działania.
Python instalujemy wersję 3.* języka Python do pobrania z www.python.org i wywołujemy Idle, w którym otwieramy nowe (puste) okno:
Python W pustym oknie powielamy uprzednio uzyskany kod:
Python koloruje składnię, widzimy, czy słowa kluczowe wpisane zostały poprawnie, program można uruchomić wystarczy wybrać Run Module (F5) z menu Run, zanim program zostanie uruchomiony, środowisko poprosi o jego zapisanie na dysku, po zapisaniu na dysku i kompilacji, program zostanie uruchomiony i wypisze wynik w głównym oknie.
Python nie znając Pythona, udało się nam napisać i uruchomić program w tym języku, uczniowie poznali składnię najważniejszych instrukcji przypisania wartości, warunkowej, pętli, a także zobaczyli sposób tworzenia wyrażeń i warunków logicznych.
Dalsza rozbudowa w Google Blockly można zbudować funkcję, nie jest to możliwe w Scratchu, algorytm Euklidesa można zmodyfikować tak, by zamiast odejmowania używał reszty z dzielenia:
Dalsza rozbudowa kod w Pythonie będzie zawierał nowe informacje o tym, jak wygląda struktura funkcji i jak zapisywać resztę z dzielenia:
Dalsza rozbudowa wywołanie funkcji wymaga użycia nazewnika funkcji oraz podania parametrów wywołania, warto dać uczniom do wykonania inne zadanie polegające na zapisie pewnego algorytmu w wybranym przez siebie języku programowania, praktyka pokazuje, że mając do wyboru Scratch i Python, średnio połowa uczniów wybierała Python.
JavaScript wykorzystajmy kod JavaScript, który został wygenerowany z użyciem Google Blockly dla algorytmu Euklidesa:
JavaScript kod JavaScript zanurzymy w dokumencie html, tak utworzony dokument przekażemy przeglądarce internetowej do zinterpretowania, dla utworzenia dokumentu html użyjemy programu Notatnik++, w pierwszym kroku tworzymy szablon opisu strony internetowej.
JavaScript w miejscu pustego wiersza wklejamy kod skryptu:
JavaScript dokument zapisujemy i przekazujemy przeglądarce do zinterpretowania:
JavaScript przeglądarka zinterpretuje kod i wypisze wynik:
Podsumowanie automatyczna zamiana kodu zapisanego w środowisku programowania wizualnego na kod w języku programowania tekstowego zachęca do podjęcia trudu programowania tekstowego, wysiłek związany z nauczeniem się składni kolejnego języka jest nagradzany możliwością szybszego i wygodniejszego tworzenia aplikacji w trybie tekstowym, kod źródłowy programu w poszczególnych językach jest podobny, najważniejszy jest algorytm rozwiązania problemu.
Dziękuję za uwagę. Krzysztof Chechłacz Ośrodek Edukacji Informatycznej i Zastosowań Komputerów w Warszawie http://www.oeiizk.waw.pl e-mail: kch@oeiizk.waw.pl