PIĘKNO I RADOŚĆ PROGRAMOWANIA W SNAP! WARSZTAT

Podobne dokumenty
GIMNAZJALISTO, ZRÓB TO SAM PROGRAMOWANIE W SCRATCHU

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

Wymagania edukacyjne na ocenę z informatyki klasa 3

Modele i symulacje - Scratch i Excel

Spadające jabłuszka. licencja CC-BY-SA Uznanie autorstwa Na tych samych warunkach 3.0 Polska. Strona 51

Zakres treści Czas. 2 Określenie charakteru i tematyki strony. Rodzaje witryn. Projekt graficzny witryny. Opracowanie skryptów

Numer i nazwa obszaru: Temat szkolenia:

CZAS NA PROGRAMOWANIE

Grażyna Koba. Grafika komputerowa. materiały dodatkowe do podręcznika. Informatyka dla gimnazjum

WYMAGANIA EDUKACYJNE. Informatyka Szkoła Podstawowa Klasa 4 NA ŚRÓDROCZNĄ I ROCZNĄ OCENĘ KLASYFIKACYJNĄ

5-6. Struktura dokumentu html. 2 Określenie charakteru i tematyki strony. Rodzaje witryn. Projekt graficzny witryny. Opracowanie skryptów

Programowanie w języku C++ Grażyna Koba

Wymagania edukacyjne z informatyki w klasie V

Algorytmika i programowanie

Brain Game. Wstęp. Scratch

Opis środowiska Scratch

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

Cykl lekcji informatyki w klasie IV szkoły podstawowej. Wstęp

Wymagania edukacyjne niezbędne do uzyskania poszczególnych śródrocznych ocen klasyfikacyjnych z Informatyki. Kl. III (oddział gimnazjalny)

Temat 5. Programowanie w języku Logo

Opis środowiska Scratch

5.2. Pierwsze kroki z bazami danych

Numer i nazwa obszaru: Temat szkolenia:

11. Blok ten jest blokiem: a. decyzyjnym b. końcowym c. operacyjnym

Programowanie od pierwszoklasisty do maturzysty. Grażyna Koba

Warsztaty dla nauczycieli

SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD

Opis implementacji: Poznanie zasad tworzenia programów komputerowych za pomocą instrukcji języka programowania.

Przedmiotowy Konkurs Informatyczny LOGIA powołany przez Mazowieckiego Kuratora Oświaty

Scenariusz lekcji. opisać zasady programowania strukturalnego; wyjaśnić pojęcia: procedura własna, procedura z parametrem, lista, zmienna;

Fajerwerki. Wstęp. Krok 1: Stwórz rakietę, która leci w kierunku kursora myszki

FINCH PONG. Realizator: Partner: Patronat:

Wprowadzenie do programowania

INFORMATYKA KLASA VII Wymagania na poszczególne oceny

Programowanie i techniki algorytmiczne

2.1. Duszek w labiryncie

TWORZENIE PREZENTACJI MS POWERPOINT

Informatyka kl. 1. Semestr I

1. Informatyka - dyscyplina naukowa i techniczna zajmująca się przetwarzaniem informacji.

PROGRAMOWANIE DLA KAŻDEGO

Zastosowania Robotów Mobilnych

Scenariusz lekcji. nazwać elementy składowe procedury; wymienić polecenia służące do malowania wnętrza figur;

Zapisywanie algorytmów w języku programowania

Wirtualna tablica. Padlet: Padlet nazywany jest wirtualną tablicą, ścianą lub kartką strony internetowej.

KLASA 7 szk.podst. Stopień dostateczny Uczeń: wymienia cztery dziedziny,

PYTHON NA LEKCJACH INFORMATYKI W SZKOLE PONADGIMNAZJALNEJ

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

PLAN WYNIKOWY Z INFORMATYKI KLASA VI

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

Programowanie w języku Python. Grażyna Koba

Innowacja pedagogiczna Pasja programowania ZESPÓŁ SZKÓŁ W CHOROSZCZY

Wymagania edukacyjne

KARTA PRZEDMIOTU. 1. NAZWA PRZEDMIOTU: Technologia informacyjna. 2. KIERUNEK: Logistyka. 3. POZIOM STUDIÓW: I stopnia

2.8. Algorytmy, schematy, programy

Pokażę w jaki sposób można zrobić prostą grafikę programem GIMP. 1. Uruchom aplikację GIMP klikając w ikonę na pulpicie.

WYMAGANIA EDUKACYJNE Z PRZEDMIOTU ZAJĘCIA KOMPUTEROWE KLASA V. Wymagania podstawowe (dostateczna) Uczeń:

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

Wymagania edukacyjne z przedmiotu zajęcia komputerowe dla klasy VI

Wymagania na poszczególne oceny Informatyka kl. 4

Wymagania - informatyka

Podstawy programowania. Wykład PASCAL. Zmienne wskaźnikowe i dynamiczne. dr Artur Bartoszewski - Podstawy prograowania, sem.

Programowanie w środowisku Baltie

MIĘDZY BLOKAMI A KODEM PROGRAMU W POSZUKIWANIU ŚRODOWISKA DO UCZENIA PROGRAMOWANIA

Rozkład materiału do zajęć z informatyki. realizowanych według podręcznika

Simba 3D LOGO. Cele zajęć: - Poznanie zasad i sposobów tworzenia procedur z parametrami. - Poznanie zasad wywoływania procedur z parametrami.

INFORMATYKA MOŻE I TRUDNA ALE NIE NUDNA

Kryteria ocen z informatyki w klasie VII Uczeń musi umieć:

2.7. Zakręt za zakrętem

Języki programowania I - opis przedmiotu

Wymagania na poszczególne oceny z informatyki Szkoła Podstawowa Nr 40 we Wrocławiu

Wikispaces materiały szkoleniowe

SYSTEM ZARZĄDZANIA TREŚCIĄ (CMS) STRONY INTERNETOWEJ SZKOŁY PRZEWODNIK

Zastanawiałeś się może, dlaczego Twój współpracownik,

lekcja 8a Gry komputerowe MasterMind

Ćwiczenie 1 Galeria zdjęć

Scenariusz lekcji. scharakteryzować budowę procedury w języku Logo; rozróżnić etapy tworzenia i wykonania procedury;

Przedmiotowy system oceniania

Czym jest MIT App Inventor. App Inventor jest to zbiór bloków jako język programowania używany do tworzenia mobilnych aplikacji na androida.

Księgarnia internetowa Lubię to!» Nasza społeczność

Kl 7-8 Szkoła Podstawowa

e-sprawdzian instrukcja programu do sprawdzania wiedzy ucznia przy pomocy komputera (WINDOWS & LINUX)

Adobe InDesign lab.1 Jacek Wiślicki, Paweł Kośla. Spis treści: 1 Podstawy pracy z aplikacją Układ strony... 2.

Jak napisać program obliczający pola powierzchni różnych figur płaskich?

SYSTEMY ZARZĄDZANIA TREŚCIĄ WORDPRESS

Przykład animacji w Logo Komeniusz

Proporcje podziału godzin na poszczególne bloki. Tematyka lekcji. Rok I. Liczba godzin. Blok

Wymagania na poszczególne oceny w klasach 3 gimnazjum

ZAJĘCIA KOMPUTEROWE rok szkolny 2013/14 Wymagania i kryteria ocen w kl. V

Scratch pierwszy program

Schematy blokowe I. 1. Dostępne bloki: 2. Prosty program drukujący tekst.

WYMAGANIA EDUKACYJNE Z ZAJĘĆ KOMPUTEROWYCH W KLASIE 4 SZKOŁY PODSTAWOWEJ

PROGRAM NAUCZANIA DLA I I II KLASY GIMNAZJUM

PRZEDMIOTOWY SYSTEM OCENIANIA Z ZAJĘĆ KOMPUTEROWYCH dla uczniów klas IV Szkoły Podstawowej nr 47 im. Jana Klemensa Branickiego w Białymstoku

Zadania domowe. Ćwiczenie 2. Rysowanie obiektów 2-D przy pomocy tworów pierwotnych biblioteki graficznej OpenGL

Tematy lekcji zajęć komputerowych klasa 5b grupa 1 i grupa 2

narzędzie Linia. 2. W polu koloru kliknij kolor, którego chcesz użyć. 3. Aby coś narysować, przeciągnij wskaźnikiem w obszarze rysowania.

Autorski program nauczania

Temat 4. Programowanie w języku Scratch

Ocena. Stopień dopuszczający Uczeń: Stopień dostateczny Uczeń: Stopień dobry Uczeń: Stopień bardzo dobry Uczeń:

Wstawianie filmu i odtwarzanie go automatycznie

Transkrypt:

Informatyka w Edukacji, XV UMK Toruń, 2018 PIĘKNO I RADOŚĆ PROGRAMOWANIA W SNAP! WARSZTAT Ośrodek Edukacji Informatycznej i Zastosowań Komputerów 02-006 Warszawa, Nowogrodzka 73 witek@oeiizk.waw.pl Abstract. Some interesting examples of visual programming in Snap! taken from Advanced Placement Computer Science Principles course The Beauty and Joy of Computing. Snap! is an environment developed at Berkeley University, combining Scratch interface with Scheme capabilities. 1. O Snap! Snap! jest klonem Scratcha stworzonym przez Briana Harveya i Jensa Möniga. W pierwszej wersji środowisko zostało nazwane BYOB (Build Your Own Blocks). Nazwa zawierała główny powód powstania środowiska wprowadzenie możliwości tworzenia własnych bloków przez użytkownika gdyż w wersji Scratcha 1.4 nie było takiej możliwości. Twórcy zdecydowali się na zmianę nazwy ze względu na inne popularne rozwinięcie tego skrótu bring your own bottle (przynieś swoją własną butelkę), dopisywane na zaproszeniach na imprezy. Tak piszą o tym w podręczniku: Nazwa programu została zmieniona, ponieważ niektórzy nauczyciele nie mają poczucia humoru [3]. Od stycznia 2018 roku mamy w pełni spolszczoną wersją środowiska w serwisie edukator.pl [6]. Oprócz polskich nazw bloków, jest też spolszczona pomoc do każdego bloku oraz podręcznik użytkownika. Scratch nie doczekał się jeszcze takiego pełnego spolszczenia. Snap! jest oprogramowany w HTML5 i można go uruchomiać w dowolnym systemie, na dowolnym urządzeniu. Tworzenie nowych bloków jest znacznie bardziej rozbudowane niż w Scratchu. Można wybrać paletę dla nowego bloku oraz określić, czy będzie on komendą (fragmentem układanki z wypustką), funkcją (blokiem zaokrąglonym), czy predykatem (blokiem sześciobocznym). Jest również możliwość prefiksowego wstawiania parametrów. Oprócz zestawu bloków niemal identycznego jak w Scratchu, Snap! zawiera kilkanaście rozszerzeń bibliotek bloków dodatkowych. Jest tu również możliwość włączenia pracy krokowej śledzenia wykonywania skryptów. Znacznie rozszerzona została

238 paleta bloków obsługujących listy, co za tym idzie, możliwości wykorzystywania tej struktury danych (lista, jako zmienna, listy list ) [4]. 2. O kursie BJC Rysunek 1 Biblioteki dodatkowych bloków w Snap! Amerykański kurs informatyki The Beauty and Joy of Computing (Piękno i radość programowania), nazywany tutaj w skrócie BJC jest przeznaczony dla uczniów w wieku 16-18 lat, czyli na poziomie naszego liceum. Należy on do kursów Advanced Placement, kończy się egzaminem i daje możliwość uzyskania punktów, liczących się przy przyjęciach na wyższe uczelnie [5]. Odwołanie do kursu znajduje się na głównej stronie Snap! (snap.berkeley.edu, bezpośredni adres: bjc.berkeley.edu) [1, 2]. Kurs zawiera szczegółowe materiały w formie umożliwiającej uczniowi samodzielną pracę. Kurs składa się z 6 części obowiązkowych: 1: Wprowadzenie do programowania 2: Abstrakcja 3: Przetwarzanie danych i listy 4: Jak działa Internet Zadania badawcze (do zaliczenia) 5: Algorytmy i symulacje Zadania twórcze (do zaliczenia) 6: Jak działają komputery oraz dwóch części dodatkowych, do przerobienia po egzaminie: 7: Fraktale i rekurencja 8: Funkcje rekurencyjne

Piękno i radość programowania w Snap! 239 Autorzy piszą we wstępie (tłumaczenie autora): W tym kursie będziesz tworzyć programy używając języka programowania Snap!, poznasz największe idee informatyki, będziesz pracować twórczo, będziesz dyskutować społeczne implikacje informatyki i myśleć poważnie o tym, jak osobiście promować korzyści i zmniejszać możliwe szkody związane z rozwojem informatyki [1]. Rysunek 2 Ekran startowy kursu BJC 3. Wielokąt, wiatrak i pętla dla Pierwszy przykład nawiązuje do programowania w Logo. Jak narysować wielokąt? Możemy utworzyć nowy blok np. w palecie Ruch i w edytorze bloków zbudować skrypt komendy (czyli nowy blok będzie miał kolor niebieski i wypustkę układanki). Dodajmy wielokątowi trzeci parametr wystaje i blok, który spowoduje, że odcinek o takiej długości będzie wystawać z każdego boku. Nazwijmy ten twór wiatrakiem. Wielokąt uzyskamy w skrajnym przypadku, gdy parametr wystaje będzie równy zeru. A jaką figurę uzyskamy, gdy będzie on równy rozmiarowi? Rysunek 3 Skrypt bloku wiatrak

240 Teraz z menu Plik zaimportujmy narzędzia. Na dole w palecie Kontrola pojawi się blok dla wygodna pętla iteracyjna. W tej samej palecie znajdziemy nie występujący w Scratchu blok wykonaj błyskawicznie, powodujący włączenie trybu turbo tylko dla bloków w nim zawartych. Możemy już zbudować skrypt z animacją wiatraka, pokazującą zmiany rysunku, gdy zmienia się wartość parametru wystaje. Rysunek 4 Skrypt animacji wiatraka Za pomocą pętli dla można wykonać wiele interesujących rysunków. Oto dwa przykłady do wypróbowania (Rys. 5). Rysunek 5 Jakie obrazki powstaną? Jeszcze jeden przykład wykorzystania pętli dla odliczanie od 0 do 99. W skrypcie wykorzystujemy funkcję jeżeli, która pozawala nie wypisywać zera dziesiątek na początku odliczania.

Piękno i radość programowania w Snap! 241 4. Sygnały z listy Rysunek 6 Skrypt odliczania od 0 do 99 Rysunek 7 Projekt Sygnalista Kolejny przykład został przygotowany przez autorów Snap!, aby pokazać możliwości tego środowiska [2]. Zaczynamy niewinnie od kliku nowych bloków rysujących proste figury. Rysunek 8 Trójkąt i gwiazdka z parametrem

242 Teraz tworzymy zmienną kształty i nadajemy jej wartość pustej listy. Następnie na tej liście umieszczamy utworzone bloki tak, aby można je było wykonać, czyli w szarej obwiedni, która znajduje się w palecie Wyrażenia. Można to zrobić za pomocą bloku dodaj do, tak jak w skrypcie zielonej flagi na Rys. 9. Rysunek 9 Skrypt zielonej flagi tworzący listę bloków do wykonania Pora na utworzenie głównego bloku, który będzie rysował sygnał złożony z dwóch flag o losowych kształtach. Rysunek 10 Blok rysujący sygnał Uruchomienie tego bloku spowoduje narysowanie dwóch flag. Ale jak można uzyskać obrazek taki jak na Rys. 7, gdzie tych flag jest znacznie więcej? Wystarczy umieścić na liście kilka bloków syg w szarych obwiedniach. Dodawać je i usuwać można za np. pomocą skryptów pokazanych Rys. 11.

Piękno i radość programowania w Snap! 243 Rysunek 11 Dodawanie bloku syg do listy i usuwanie go No i mamy rekurencję bez przypadku bazowego i co za tym idzie, bez warunku zatrzymania! 5. Sufit Na koniec warto zauważyć, że Snap! nie jest zabawką dla dzieci. Został on stworzony, aby pomóc w nauce programowania rozumianego jako tworzenie i implementowanie algorytmów. I choć podłoga, podobnie jak w Scratchu, jest dość nisko, to sufit jest znacznie wyżej. W naszych realiach można go sensownie używać na poziomie klas 4-6, a w sposób pełniejszy na poziomie 7-8, choć można sobie wyobrazić kurs informatyki dla liceum bazujący na Snapie, jako głównym środowisku programistycznym [5]. Z pewnością warto spróbować pracy w tym środowisku. Literatura 1. Głowna strona kursu BJC, bjc.berkeley.edu, ostatni dostęp 11.06.2018 roku. 2. Główna strona Snap (Berkeley), snap.berkeley.edu, ostatni dostęp 11.06.2018 roku. 3. Harvey B., Mönig J., Snap! Podręcznik użytkownika, do pobrania ze strony Snap!, w wersji polskiej ze strony Snap! w serwisie Edukator: www.edukator.pl/tik_edukator/snap/snap.html, ostatni dostęp 11.06.2018 roku. 4. Kranas W., Piękno i radość programowania w Snap!, W cyfrowej szkole, Nr 2/2018, OEIiZK, 2018 (w przygotowaniu). 5. Kranas W., Snap! cudowne dziecko Scratcha, W cyfrowej szkole, Nr 1/2018, OEIiZK, 2018. 6. Polski serwer Snap! w serwisie Edukator, www.edukator.pl/tik_edukator/snap/snap.html, ostatni dostęp 11.06.2018 roku.