OD PROGRAMOWANIA WIZUALNEGO DO TEKSTOWEGO

Podobne dokumenty
Od programowania wizualnego do tekstowego

Od programowania wizualnego do tekstowego¹

Środowiska programistyczne dla szkoły podstawowej Jak zachęcić uczniów do startu w konkursach informatycznych

PYTHON NA LEKCJACH INFORMATYKI W SZKOLE PONADGIMNAZJALNEJ

Zapisywanie algorytmów w języku programowania

Temat 5. Programowanie w języku Logo

SCENARIUSZ LEKCJI. Streszczenie. Czas realizacji. Podstawa programowa

Funkcje i instrukcje języka JavaScript

Programowanie w języku Python. Grażyna Koba

OD TABLICZKI MNOŻENIA DO LICZB PIERWSZYCH MATEMATYKA ZE SCRATCHEM

Temat 20. Techniki algorytmiczne

Programowanie od pierwszoklasisty do maturzysty. Grażyna Koba

2.8. Algorytmy, schematy, programy

Scenariusz lekcji Ozobot w klasie: Tabliczka mnożenia

Scenariusz zajęć. Moduł VI. Projekt Gra logiczna zgadywanie liczby

Innowacja pedagogiczna

Dokument komputerowy w edytorze grafiki

Przedmiotowy system oceniania z informatyki

Programowanie i techniki algorytmiczne

PROGRAMOWANIE GRAFIKI I ELEMENTÓW INTERAKTYWNYCH NA STRONY WWW W P5.JS

Wymagania edukacyjne z informatyki w klasie VIII

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

Grażyna Szabłowicz-Zawadzka CKU TODMiDN PROGRAMOWANIE

Warunki i sposoby realizacji podstawy programowej kształcenia ogólnego w klasie IV i VII szkoły podstawowej z informatyki.

PROGRAMOWANIE ROBOTÓW NA EKRANIE KOMPUTERA ZGODNE Z NOWĄ PODSTAWĄ PROGRAMOWĄ.

Scenariusz lekcji. Obliczanie NWD- algorytm Euklidesa.

Czy udało się wam kiedyś przeprowadzić taką lekcję? Oto krótki ilustrowany przepis.

INFORMATYKA KLASA IV

Teraz bajty. Informatyka dla szkoły podstawowej. Klasa IV

Temat 1. Więcej o opracowywaniu tekstu

WYKORZYSTANIE PLATFORMY KHAN ACADEMY W TWORZENIU PROJEKTU. ZEGAR BINARNY ZA POMOCĄ JĘZYKA JAVASCRIPT

Teraz bajty. Informatyka dla szkoły podstawowej. Klasa 4 Wymagania edukacyjne na poszczególne oceny szkolne dla klasy 4

WYMAGANIA EDUKACYJNE NIEZBĘDNE DO UZYSKANIA POSZCZEGÓLNYCH ŚRÓDROCZNYCH OCEN KLASYFIKACYJNYCH Z INFORMATYKI. KLASA IVa SZKOŁA PODSTAWOWA

Nie święci garnki lepią. czyli wprowadzenie do programowania

ŁAMIEMY SZYFR CEZARA. 1. Wstęp. 2. Szyfr Cezara w szkole. Informatyka w Edukacji, XV UMK Toruń, 2018

SZCZEGÓŁOWE WYMAGANIA EDUKACYJNE Z INFORMATYKI DLA KLASY IV SP ROK SZKOLNY 2017/2018

Wymagania edukacyjne z informatyki dla uczniów klas IV SP nr 53 w Krakowie w roku szkolnym 2019/2020

SCENARIUSZ LEKCJI. Czas realizacji. Podstawa programowa

Wymagania edukacyjne i kryteria oceniania w klasie VI 2013/2014 OBSZARY AKTYWNOŚCI UCZNIA PODLEGAJĄCE OCENIE

Algorytm. a programowanie -

Temat: Programujemy historyjki w języku Scratch tworzymy program i powtarzamy polecenia.

Wstęp do poradnika metodycznego Przykładowy rozkład materiału 13 I rok nauczania...13 II rok nauczania...13 Rozkład materiału:...

Klasa 2 INFORMATYKA. dla szkół ponadgimnazjalnych zakres rozszerzony. Założone osiągnięcia ucznia wymagania edukacyjne na. poszczególne oceny

Łączenie liczb i tekstu.

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

z poradni pedagogicznej

Wiadomości i umiejętności

Edytor materiału nauczania

PROGRAMOWAĆ KAŻDY MOŻE

Informatyka- wykład. Podstawy programowania w Pythonie. dr Marcin Ziółkowski

PROGRAMOWANIE DLA KAŻDEGO

edycja szablonu za pomocą programu NVU

Algorytmy i struktury danych

Wymagania edukacyjne z informatyki w klasie IV

Lubię to! Przedmiotowy system oceniania z informatyki Klasa 8 Aneta Czajkowska

Innowacja pedagogiczna na zajęciach komputerowych w klasach 4e, 4f, 4g. Nazwa innowacji Programowy Zawrót Głowy

Języki programowania zasady ich tworzenia

Programowanie w środowisku Baltie

SCENARIUSZ LEKCJI. Dzielenie wielomianów z wykorzystaniem schematu Hornera

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

epuap Archiwizacja w Osobistym Składzie Dokumentów

WYMAGANIA EDUKACYJNE Z ZAJĘĆ KOMPUTEROWYCH KLASA 4:

PROGRAMOWANIE DLA KAŻDEGO. Rewolucja w nauczaniu informatyki. Programowanie od pierwszych klas, sterowanie robotami i co jeszcze?

SKRYPT TIK. Nauczycieli

Scenariusz lekcji opartej na programie Program nauczania informatyki w gimnazjum DKW /99

Autorski program nauczania

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu.

Makropolecenia w Excelu

Pętle. Dodał Administrator niedziela, 14 marzec :27

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE

Podstawy programowania 2. Temat: Funkcje i procedury rekurencyjne. Przygotował: mgr inż. Tomasz Michno

WYMAGANIA EDUKACYJNE Z ZAJĘĆ KOMPUTEROWYCH / EDUKACJI INFORMATYCZNEJ KLAS I III

WYMAGANIA EDUKACYJNE Z ZAJĘĆ KOMPUTEROWYCH DLA KLASY SZÓSTEJ W ZAKRESIE WIADOMOŚCI I UMIEJĘTNOŚCI UCZNIÓW

Temat 21. Programowanie w języku Scratch

Wymagania edukacyjne z zajęć komputerowych klasa 4:

Tematy lekcji informatyki klasa 4a luty/marzec 2013

1 Wprowadzenie do algorytmiki

Wymagania edukacyjne z zajęć komputerowych dla klas czwartych w roku szkolnym 2016/2017

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

Wymagania edukacyjne do przedmiotu

Praktyczny Excel. 50 praktycznych formuł na każdą okazję

Makropolecenia w PowerPoint Spis treści

Wymagania edukacyjne z informatyki w klasie 8 szkoły podstawowej

Temat 4. Programowanie w języku Scratch

DZIELENIE SIĘ WIEDZĄ I POMYSŁAMI SPOTKANIE ZESPOŁU SAMOKSZTAŁCENIOWEGO

INFORMATYKA MÓJ SPOSÓB NA POZNANIE I OPISANIE ŚWIATA.

WYMAGANIA EDUKACYJNE NA POSZCZEGÓLNE OCENY Z INFORMATYKI KLASA IV

Wymagania edukacyjne z informatyki w klasie 8 szkoły podstawowej

WYMAGANIA EDUKACYJNE: ZAJĘCIA KOMPUTEROWE KLASA 4. Oznaczenia występujące w tabeli:

Programowanie. Pascal - język programowania wysokiego poziomu. Klasa 2 Lekcja 9 PASCAL

CZAS NA PROGRAMOWANIE

Czynności Wychowawców

Pierwszy projekt. Na początku warto wspomnieć, że program WebSite X5 dostępy jest w 3 wariantach: Start, Evolution oraz Professional

Tematy lekcji informatyki klasa 4a styczeń 2013

Czym są właściwości. Poprawne projektowanie klas

Wymagania Uczeń zna zasady bezpiecznej pracy z komputerem. Uczeń stosuje się do regulaminu szkolnej pracowni komputerowej.

kodowanienaekranie.pl

Przedmiotowy System Oceniania z zajęć komputerowych w klasach IV - VI

Transkrypt:

OD PROGRAMOWANIA WIZUALNEGO DO TEKSTOWEGO Ośrodek Edukacji Informatycznej i Zastosowań Komputerów 02-006 Warszawa, ul. Nowogrodzka 73 maciej.borowiecki@oeiizk.waw.pl, kch@oeiizk.waw.pl Abstract. In this paper we discuss some problems of teaching programming. We will show four types of programming languages, and how to easy transform from one of them to the other. The focus is on the methods for transforming from visual programming languages to the text ones. In our opinion there is a need to start teaching text languages in older primary school classes. We will also show that the most important is to solve the problem by creating the right algorithm, implementing of solving is a more technical skill. 1. Wstęp Nauczanie programowania we wczesnych etapach edukacyjnych zwykle rozpoczynamy od programowania wizualnego. Podczas tworzenia projektu unikamy w ten sposób problemów związanych z zawiłościami składni języka programowania. Gdy próbujemy połączyć elementy, które do siebie nie pasują, mechanizm bloczków nie pozwala nam na to. Ponadto szybko uzyskujemy efekt w postaci działającego projektu i w ten sposób zachęcamy uczniów do kolejnych aktywności. Środowiska wizualne dostarczają zwykle dużą liczbę bloczków, jednak są one pogrupowane na kategorie i nie są widoczne wszystkie jednocześnie na ekranie. Uczeń rozwiązując bardziej skomplikowane zadania musi wykonać wiele operacji myszką, by wyszukać potrzebne bloczki i je użyć. Im więcej skomplikowanych zadań rozwiązujemy, tym łatwiej jest nam znaleźć potrzebne elementy (bo zapamiętujemy ich lokalizację), ale straty czasu wynikające z konieczności znalezienia i osadzenia w przestrzeni roboczej żądanego elementu stają się znaczące. Pisząc program w środowisku tekstowym musimy znać składnię języka i sprawnie posługiwać się klawiaturą. Jest to podstawowym źródłem problemów, z jakimi spotykają osoby stawiające pierwsze kroki w programowaniu tekstowym. W sposób naturalny pojawiają się błędy składniowe. Wielu uczniów zniechęca się i wyraża chęć powrotu do programowania wizualnego. Często nie pomagają argumenty, że

50 programując tekstowo mamy większy wybór narzędzi (środowisk, języków mających większe możliwości) i choćby dlatego warto się tym zainteresować. W dalszej części pokazujemy propozycje przejścia od programowania wizualnego do tekstowego w sposób łagodny i akceptowalny dla uczniów. Co więcej, w ten sposób pokazujemy, że najważniejszy jest sam algorytm rozwiązania postawionego zadania, a sposób zapisu jest mniej istotny. Wykorzystamy narzędzia, które umożliwiają napisanie programu w pewnym języku, a następnie automatyczne przełożenie kodu na inny język. 2. Algorytm Euklidesa W nowej podstawie programowej znajdujemy wiele odwołań do różnych algorytmów. Niektóre z nich są nawet wymienione z nazwy. Przykładowo, weźmy algorytm Euklidesa. Umożliwia on wyliczenie największego wspólnego dzielnika dwóch liczb naturalnych. W najprostszej wersji polega on na tym, że póki liczby są różne, od większej z nich odejmujemy mniejszą. Gdy są równe, oznacza to, że otrzymaliśmy wynik. Rozwiązanie należy zapisać w języku programowania. Na razie nie zastanawiamy się nad kwestią eleganckiego przekazania danych do programu, wrócimy do tego później. Przykładowe rozwiązanie, dla liczb 180 i 42, w najbardziej popularnym w Polsce środowisku programowania wizualnego Scratch może wyglądać następująco: Rysunek 1 Algorytm Euklidesa w Scratchu Podobnie będzie ono wyglądać w środowisku Blockly dostępnym na stronie https://blockly-demo.appspot.com/static/demos/code/index.html. Środowisko to jest jednym 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ży-

Od programowania wizualnego do tekstowego 51 wać języka polskiego, mamy elementy bloczki, które możemy łączyć tworząc własny projekt, a następnie taki projekt zapisać i uruchomić. Rysunek 2 Algorytm Euklidesa w Google Blockly W obu przypadkach otrzymujemy wynik 6. W istocie dzielnikami 180 są 1, 2, 3, 4, 5, 6, 9, 10, 12, 15, 18, 20, 30, 36, 45, 60, 90 oraz 180, dzielnikami 42 są 1, 2, 3, 6, 7, 14, 21 oraz 42 liczba 6 jest największą, która występuje w obu przypadkach. W Blockly mamy możliwość obejrzenia, jak wyglądałoby rozwiązanie zapisane w kilku innych językach. Wystarczy wybrać jedną z zakładek: Rysunek 3 Wybór języka docelowego Kilka ostatnich zakładek daje możliwość obejrzenia kodu w dość rzadko używanych językach lub kod jest mało czytelny. Zajmiemy się językami z dwóch pierwszych zakładek: Python i JavaScript. 3. Python Kod w języku Python jest krótki i czytelny, nie pozostawia wątpliwości co do sposobu działania; poniżej z pominiętymi dwoma pierwszymi wierszami (warto przedyskutować z uczniami dlaczego tak jest). Rysunek 4 Kod w Pythonie wygenerowany automatycznie

52 Instalujemy wersję 3.* języka Python do pobrania z http://www.python.org i wywołujemy IDLE, w którym otwieramy nowe (puste) okno: Rysunek 5 Okna w Pythonie W tym oknie wklejamy uprzednio uzyskany kod. Rysunek 6 Kod źródłowy w Pythonie Od razu widać, jak elegancko Python koloruje składnię dzięki temu wiemy, że 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 (warto przedyskutować z uczniami zalety i wady takiego rozwiązania). Po zapisaniu na dysku i translacji, program zostanie uruchomiony i wypisze wynik w głównym oknie. Rysunek 7 Po uruchomieniu programu w Pythonie

Od programowania wizualnego do tekstowego 53 Tak więc nie znając Pythona udało się nam napisać i uruchomić program w tym języku. W sposób oczywisty, bez większej trudności, 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. Warto w tym miejscu przeprowadzić dyskusję na temat znaczenia wcięć stosowanych w kodzie programu Python wymusza ich stosowanie. Jest to sytuacja korzystna i nie rodzi dyskusji, bo to nie nauczyciel poleca stosowanie wcięć, ale jest to formalny wymóg składni języka. Uczniowie uczą się na podstawie przykładu i dzięki temu ich wiedza będzie trwalsza i użyteczniejsza. W dalszej części zajęć z uczniami można rozbudowywać program. Na przykład korzystając z Google Blockly budujemy funkcję znajdującą największy wspólny dzielnik, a sam algorytm Euklidesa modyfikujemy tak, by zamiast odejmowania używał reszty z dzielenia. Budowanie funkcji jest możliwe w Google Blockly, natomiast Scratch nie dysponuje takimi możliwościami. Rysunek 8 Kod funkcji w Google Blockly Kod otrzymany w Pythonie będzie zawierał nowe informacje o tym, jak wygląda struktura funkcji i jak zapisywać resztę z dzielenia. Rysunek 9 Kod funkcji automatycznie wygenerowany i przeniesiony do Pythona

54 Wywołanie funkcji wymaga użycia nazewnika funkcji i podania parametrów wywołania. Efekt jest identyczny, jak poprzednio. Rysunek 10 Wywołanie funkcji Warto dać uczniom do wykonania inne zadanie polegające na zapisie pewnego algorytmu w wybranym przez siebie języku, np. algorytmu wyznaczenia dzielników zadanej liczby naturalnej bądź wyodrębnienia cyfr danej liczby. Praktyka pokazała, że mając do wyboru Scratch i Python, około połowy uczniów wybierała Python. Argumentowali to prostotą zapisu i stosunkowo niewielką ilością czynności do wykonania. 4. JavaScript Spróbujmy teraz skorzystać z kodu JavaScript, który został wygenerowany z użyciem Google Blockly dla algorytmu Euklidesa: Rysunek 11 Kod w JavaScript wygenerowany automatycznie Najprościej będzie kod JavaScript zanurzyć w dokumencie html, a następnie tak utworzony dokument przekazać przeglądarce internetowej do zinterpretowania. Dla utworzenia dokumentu html możemy użyć programu Notatnik++ z możliwością bezpośredniego przejścia uruchomienia kodu html w przeglądarce internetowej.

Od programowania wizualnego do tekstowego 55 Można też użyć systemowego notatnika, ale wówczas niektóre czynności będą bardziej złożone. W pierwszym kroku tworzymy szablon opisu strony internetowej. Utworzony skrypt będzie działać także wówczas, gdy ograniczymy się do piątego i siódmego wiersza, ale nie polecamy takiego rozwiązania, ponieważ tworzy to złe intuicje co do budowy plików opisujących strony internetowe. Rysunek 12 Szablon opisu strony internetowej W miejscu pustego, szóstego wiersza umieszczamy kod z Google Blockly. Dokument zapisujemy (to ważne, bo program edycyjny komunikuje się z przeglądarką używając wersji pliku html zapisanej na dysku) i przekazujemy przeglądarce do zinterpretowania wybierając Uruchom i Launch in (tu-nazwa- przeglądarki). Rysunek 13 Opis strony internetowej po umieszczeniu w nim kodu Przeglądarka zinterpretuje kod i wypisze wynik.

56 5. Podsumowanie Rysunek 14 Wynik działania JavaScript Wyżej przedstawiono rozwiązanie dotyczące automatycznej zamiany kodu zapisanego w środowisku programowania wizualnego na kod w języku programowania tekstowego. Pokazuje ono, że dość łatwo można zachęcić uczniów, nawet tych którzy przez długi czas programowali wizualnie, do podjęcia trudu tworzenia własnych programów z użyciem narzędzi 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. Literatura 1. Borowiecki M., Python w szkole od podstawówki do liceum, EduFakty Uczę Nowocześnie, nr 23 styczeń-luty 2013. 2. Borowiecki M., Python na lekcjach informatyki w szkole ponadgimnazjalnej, Informatyka w Edukacji, Toruń 2013. 3. Polewczyński A., Nauka kodowania z Google Blockly, Informatyka w Edukacji, Toruń 2014. 4. Summerfield M., Python 3 Kompletne wprowadzenie do programowania, Helion, Gliwice 2010. 5. Zając K., Python jako alternatywa dla Pascala, Informatyka w Edukacji, Toruń 2012. 6. Podstawa programowa kształcenia ogólnego dla szkoły podstawowej, http://www.dziennikustaw.gov.pl/du/2017/356, ostatni dostęp 21.05.2017. 7. https://scratch.mit.edu, ostatni dostęp 21.05.2017. 8. https://blockly-demo.appspot.com/static/demos/code/index.html?lang=pl, ostatni dostęp 21.05.2017. 9. https://www.python.org, ostatni dostęp 21.05.2017