PYTHON NA LEKCJACH INFORMATYKI W SZKOLE PONADGIMNAZJALNEJ



Podobne dokumenty
Nowa podstawa programowa przedmiotu informatyka w szkole ponadpodstawowej

Od programowania wizualnego do tekstowego¹

Autorski program nauczania

Scenariusz lekcji. potrafi podać formułę obliczającą wartość wielomianu stopnia n w punkcie wg schemat Hornera;

Zapisywanie algorytmów w języku programowania

Programowanie od pierwszoklasisty do maturzysty. Grażyna Koba

Scenariusz lekcji. rozpoznać prawidłową deklarację tablicy; podać odwołanie do określonego elementu tablicy.

Zapisywanie w wybranej notacji algorytmów z warunkami i iteracyjnych

Od programowania wizualnego do tekstowego

OD PROGRAMOWANIA WIZUALNEGO DO TEKSTOWEGO

Numer obszaru: 13. Jak pracować z uczniem uzdolnionym informatycznie? Od prostych do poważnych algorytmów w C++ Symbol szkolenia: PUZC++

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

SCENARIUSZ LEKCJI. Streszczenie. Czas realizacji. Podstawa programowa

PROGRAMOWANIE W PYTHONIE OD PIERWSZYCH KROKÓW

REGULAMIN ORGANIZATORZY KONKURSU

PRZYGOTOWANIE PRACOWNI INFORMATYCZNEJ

PRZEDMIOTOWY REGULAMIN I WOJEWÓDZKIEGO KONKURSU Z INFORMATYKI DLA UCZNIÓW SZKÓŁ PODSTAWOWYCH WOJEWÓDZTWA ŚWIĘTOKRZYSKIEGO W ROKU SZKOLNYM 2019/2020

REGULAMIN ORGANIZATORZY KONKURSU

Scenariusz lekcji. Scenariusz lekcji 1 TEMAT LEKCJI: 2 CELE LEKCJI: 2.1 Wiadomości: 2.2 Umiejętności: 3 METODY NAUCZANIA: 4 ŚRODKI DYDAKTYCZNE:

Scenariusz lekcji. podać przykłady zalet użycia takiej instrukcji; opisać algorytm obliczania średniej n liczb;

SCENARIUSZ LEKCJI. TEMAT LEKCJI: Projektowanie rozwiązania prostych problemów w języku C++ obliczanie pola trójkąta

Funkcje i instrukcje języka JavaScript

Scenariusz lekcji. Obliczanie NWD- algorytm Euklidesa.

Programowanie w języku Python. Grażyna Koba

Innowacja pedagogiczna dla uczniów pierwszej klasy gimnazjum Programowanie

Programowanie i techniki algorytmiczne

1 Wprowadzenie do algorytmiki

E-NAUCZANIE JAKO METODA PRACY Z UCZNIEM ZDOLNYM

Wstęp do programowania

- 1 - Liczba godzin. Nr lekcji. Nr punktu w podręczniku. Zagadnienia do realizacji według podstawy programowej (treści nauczania)

Grażyna Szabłowicz-Zawadzka CKU TODMiDN PROGRAMOWANIE

2.8. Algorytmy, schematy, programy

I. KARTA PRZEDMIOTU CEL PRZEDMIOTU WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI EFEKTY KSZTAŁCENIA

Teraz bajty. Informatyka dla szkół ponadpodstawowych. Zakres rozszerzony. Część 1.

Podstawy programowania.

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

KARTA KURSU. Wstęp do programowania

PRZEWODNIK PO PRZEDMIOCIE

Warsztaty dla nauczycieli

1 Podstawy c++ w pigułce.

1 Przygotował: mgr inż. Maciej Lasota

Program nauczania informatyki w gimnazjum Informatyka dla Ciebie. Modyfikacja programu klasy w cyklu 2 godzinnym

Języki programowania zasady ich tworzenia

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

SCENARIUSZ LEKCJI. Autorzy scenariusza: Krzysztof Sauter (informatyka), Marzena Wierzchowska (matematyka)

1 Podstawy c++ w pigułce.

Wykład IV Algorytmy metody prezentacji i zapisu Rzut oka na język PASCAL

Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja, - liczby losowe

Podstawy programowania

SCENARIUSZ LEKCJI. Dzielenie wielomianów z wykorzystaniem schematu Hornera

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 1. Karol Tarnowski A-1 p.

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

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA

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

Wstęp do programowania

Podstawy programowania Laboratorium. Ćwiczenie 2 Programowanie strukturalne podstawowe rodzaje instrukcji

Wybrane wymagania dla informatyki w gimnazjum i liceum z podstawy programowej

Wykład II Tablice (wstęp) Przykłady algorytmów Wstęp do języka C/C++

TEMAT: Podejmowanie decyzji w programie instrukcja warunkowa (IF).

Kwestionariusz kwalifikacyjny dla szkół

Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja cz. 1

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

Sortowanie danych. Jolanta Bachan. Podstawy programowania

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

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

KONSPEKT ZAJĘĆ KOŁA INFORMATYCZNEGO LUB MATEMATYCZNEGO W KLASIE III GIMNAZJUM LUB I LICEUM ( 2 GODZ.)

Lekcja 3: Pierwsze kroki z Pythonem. Pętle

Przegląd języka Python. Łukasz Anwajler

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

Wymagania Uczestnik szkolenia musi mieć możliwość korzystania z Internetu. Kurs nie zakłada znajomości podstaw programowania.

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

ZAŁOŻENIA OGÓLNE. Cele konkursu

1 TEMAT LEKCJI: 2 CELE LEKCJI: 3 METODY NAUCZANIA. Scenariusz lekcji. 2.1 Wiadomości: 2.2 Umiejętności: Scenariusz lekcji

Podstawy Programowania

Wybierz zawód, który lubisz. a nigdy nie będziesz musiał pracować. (Konfucjusz)

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

Zapis algorytmów: schematy blokowe i pseudokod 1

Programowanie w Baltie klasa VII

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44

Informatyka Szkoła podstawowa

Języki skryptowe w programie Plans

Podstawy Programowania Algorytmy i programowanie

Wstęp do programowania INP003203L rok akademicki 2016/17 semestr zimowy. Laboratorium 1. Karol Tarnowski A-1 p.

Programowanie I. O czym będziemy mówili. Plan wykładu nieco dokładniej. Plan wykładu z lotu ptaka. Podstawy programowania w językach. Uwaga!

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

Konferencja Innowacyjne metody nauczania matematyki we współczesnej szkole dla nauczycieli matematyki

SCENARIUSZ LEKCJI. Miejsca zerowe funkcji kwadratowej i ich graficzna prezentacja

KOŁO MATEMATYCZNE LUB INFORMATYCZNE - klasa III gimnazjum, I LO

PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy.

PROGRAMOWAĆ KAŻDY MOŻE

KARTA PRZEDMIOTU. Egzamin / zaliczenie na ocenę*

WYKORZYSTANIE PORTALU DYDAKTYCZNEGO W NAUCE JĘZYKÓW PROGRAMOWANIA

STANDARDY PRZYGOTOWANIA NAUCZYCIELI INFORMATYKI

Naukę zaczynamy od poznania interpretera. Interpreter uruchamiamy z konsoli poleceniem

Nazwa implementacji: Nauka języka Python wyrażenia warunkowe. Autor: Piotr Fiorek. Opis implementacji: Poznanie wyrażeń warunkowych if elif - else.

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Wstęp do programowania

Temat 20. Techniki algorytmiczne

Programowanie I C / C++ laboratorium 01 Organizacja zajęć

EGZAMIN MATURALNY 2011 INFORMATYKA

Transkrypt:

Informatyka w Edukacji, Toruń, 5-7 lipca 2013 PYTHON NA LEKCJACH INFORMATYKI W SZKOLE PONADGIMNAZJALNEJ Maciej Borowiecki Ośrodek Edukacji Informatycznej i Zastosowań Komputerów w Warszawie e-mail: maciej.borowiecki@oeiizk.waw.pl Abstract: The abstract must be written in English and limited to seven lines at most It should convey information concerning the most important points of the paper and the methodology used in it. It should focus on the essentials, omitting the details less important. 1. Wstęp Nowa podstawa programowa wprowadza nauczanie informatyki w szkole ponadgimnazjalnej w zakresie podstawowym (obowiązkowo dla wszystkich uczniów) oraz rozszerzonym (fakultatywnie). Minimalny wymiar obowiązkowych zajęć edukacyjnych dla informatyki wynosi 30 godzin, czyli o połowę mniej niż liczba godzin przedmiotu technologia informacyjna wg starej podstawy programowej. Na realizację zakresu rozszerzonego należy przeznaczyć co najmniej 180 godzin. Treści kształcenia dla zakresu podstawowego także obejmują zagadnienia dotyczące rozwiązywania problemów i podejmowania decyzji z wykorzystaniem komputera, z zastosowaniem podejścia algorytmicznego. Powyższe zagadnienia mogą być realizowane za pomocą odpowiedniego oprogramowania aplikacyjnego lub języka programowania. Uczeń wybierający przedmiot informatyka na poziomie rozszerzonym powinien sprawnie posługiwać się wybranym językiem programowania wysokiego poziomu. Niniejszy artykuł stanowi propozycję wykorzystania języka Python na lekcjach informatyki w zakresie podstawowym oraz rozważa możliwości stosowania go na poziomie rozszerzonym. 2. Geneza powstania języka Python Język Python został zaprojektowany przez holenderskiego programistę Guido van Rossum a w 1991 roku. Obecnie projekt jest rozwijany jako Open Source przez niedochodową organizację Python Software Foundation. W 1999 roku Guido van Rossum definiował cele Pythona następująco (http://pl.wikipedia.org/wiki/guido_van_rossum, ostatni dostęp 16 kwietnia 2013 roku): łatwy i intuicyjny język, ale jednocześnie równie potężny jak jego konkurenci; oparty na zasadzie open source, aby każdy mógł wnieść wkład do jego rozwoju; zapewniający zrozumiały kod w języku angielskim; przydatny do rozmaitych codziennych celów, chrakteryzujący się krótkim czasem programowania. Otwartość kodu powoduje, że mamy dostępne darmowe interpretery Pythona dla różnych systemów operacyjnych, w tym Windows, Mac OS X, Linux. Dużą zaletą środowiska zintegrowanego jest możliwość pracy w trybie bezpośrednim analogicznie jak w interpreterach języka Logo, którego część uczniów mogła używać na lekcjach informatyki w gimnazjum.

2 Maciej Borowiecki, Python na lekcjach informatyki w szkole ponadgimnazjalnej 3. Podstawowe instrukcje sterujące Do implementowania nieskomplikowanych algorytmów w Pythonie wystarczy, żeby uczeń posługiwał się instrukcjami pętli, warunkową oraz posiadał umiejętność definiowania własnej funkcji. Ich składnia jest w Pythonie prosta i intuicyjna. Składnia pętli for w najprostszej postaci jest następująca (gdy iterujemy po liczbach całkowitych począwszy od zera z krokiem jeden): for zmienna in range(zakres): Rysunek 1. Przykład działania instrukcji for Drugą najczęściej używaną pętlą jest while. Jej składnia jest następująca: while warunek logiczny: Rysunek 2. Ilustracja działania pętli while Warto zwrócić uwagę na ważną cechę języka Python, bardzo przydatną w kształtowaniu dobrych nawyków programistycznych. Które instrukcje będą wykonywane w pętli? W różnych językach oznaczamy to różnie np. w Pascalu przy pomocy słów kluczowych begin i end, w języku C++ przy pomocy nawiasów klamrowych. Stosowanie wcięć w Pascalu czy C++ to tylko bardzo dobry zwyczaj poprawiający czytelność pisanych programów. W języku Python, wcięcia decydują o tym, które instrukcje będą wykonane w pętli, czyli język ten wymusza stosowanie wcięć. To bardzo dobre rozwiązanie, które wyrabia u uczniów nawyk pisania czytelnego kodu. Do podstawowego zestawu instrukcji sterujących brakuje jeszcze instrukcji warunkowej. Jej składnia w Pythonie jest następująca: if warunek logiczny: elif warunek logiczny:

Maciej Borowiecki, Python na lekcjach informatyki w szkole ponadgimnazjalnej 3 # część elif jest opcjonalna, może nie występować, może też występować wielokrotnie else: # część else też jest ocjonalna Znakiem # oznacza się w Pythonie komentarze, tekst od znaku # do końca wiersza jest pomijany. Komentarz wielowierszowy zaznacza się za pomocą trzech znaków apostrofu lub cudzysłowu na początku i końcu tekstu. Rysunek 3. Ilustracja działania instrukcji warunkowej if Język Python nie wymaga deklarowania ani określania typów zmiennych. Podobnie definiując własną funkcję nie trzeba określać typów parametrów, jedynie ich nazwy formalne. def nazwa_funkcji(nazwy parametrów formalnych): Lista parametrów formalnych może być pusta. Jeśli funkcja ma zwracać wartość, to należy użyć instrukcji return. Rysunek 4. Definicja funkcji znajdującej największą z trzech liczb 4. Propozycje na lekcje informatyki w zakresie podstawowym Nie wszystkie podręczniki do przedmiotu informatyka w zakresie podstawowym proponują realizację algorytmu w wybranym języku programowania. Praktyczne uruchomienie programu jest jednak ćwiczeniem niezwykle pouczającym dla uczniów, pozwalającym im lepiej zrozumieć funkcjonowanie różnych urządzeń elektronicznych, z których korzystają na co dzień. Te podręczniki, które implementują algorytm w języku programowania, wybierają najczęściej język Pascal i/lub C++. Na realizację całego przedmiotu przewidzianych jest 30 godzin, z tego na zagadnienia związane z programowaniem i zapisem algorytmu w określonym języku programowania można poświęcić kilka godzin. Implementowanie algorytmów w Pascalu, a tym bardziej w C++, dla uczniów, którzy się wcześniej nie zetknęli się z tymi językami (i nie będą kontynuować przedmiotu w zakresie rozszerzonym) może okazać się zbyt trudne. Wybierając Pythona można się skoncentrować na algorytmie nie tracąc czasu na omawianie środowiska, czy wielu szczegółów

4 Maciej Borowiecki, Python na lekcjach informatyki w szkole ponadgimnazjalnej koniecznych do uruchomienia programu (choćby wejścia-wyjścia, deklaracji), a jednocześnie mamy możliwość uruchomienia i przetestowania programu. Poniżej kilka przykładów: Przykład 1: Znajdowania największego wspólnego dzielnika algorytmem Euklidesa w dwóch wersjach (!= oznacza różne, % oznacza resztę z dzielenia). Rysunek 5. Implementacja algorytmu Euklidesa Przykład 2: Obliczanie wartości dziesiętnej liczby zapisanej w innym systemie pozycyjnym oraz znajdowanie reprezentacji liczb dziesiętnych w innych systemach Rysunek 6. Obliczanie wartości dziesiętnej Rysunek 7. Znajdowanie rozwinięcia liczby dziesiętnej w systemie pozycyjnym o innej podstawie 5. Translatory online W sieci możemy znaleźć strony (np. http://ideone.com, http://codepad.org, ostatni dostęp 16 kwietnia 2013 roku), które udostępniają translatory online różnych języków programowania. Umożliwiają one pisanie i uruchamianie programów w przeglądarce internetowej. Nie trzeba wówczas instalować oprogramowania na komputerach w pracowni szkolnej. Na szczególną uwagę zasługuje serwis http://www.pythontutor.org. Umożliwia on nie tylko uruchamianie programów w Pythonie, ale także ich krokowe wykonanie. Znajdziemy tam też wiele przykładów.

Maciej Borowiecki, Python na lekcjach informatyki w szkole ponadgimnazjalnej 5 Rysunek 8. Wizualizacja algorytmu Euklidesa przy pomocy serwisu http://www.pythontutor.org 6. Zakres rozszerzony? Język Python można także z powodzeniem wykorzystywać realizując przedmiot informatyka w zakresie rozszerzonym. Jest językiem niezwykle uniwersalnym, oferując bogaty zestaw bibliotek standardowych oraz dynamiczne struktury danych. Na szczególną uwagę zasługują listy oraz możliwość operowania elementem listy analogicznie jak w Pascalu lub C++ odwołujemy się do elementu tablicy. Jako przykład rozważmy algorytm sortowania przez wstawianie. Rysunek 9. Przykład implementacji algorytmu sortowania przez wstawianie

6 Maciej Borowiecki, Python na lekcjach informatyki w szkole ponadgimnazjalnej Rysunek 10. Wizualizacja algorytmu sortowania przez wstawianie przy pomocy serwisu http://www.pythontutur.org Podejmując decyzję o wyborze języka programowania na przedmiocie informatyka realizowanym w zakresie rozszerzonym należy jednak pamiętać o dwóch aspektach. Część uczniów może być zainteresowana startem w olimpiadzie informatycznej i narzucającym tu wyborem języka programowania będzie C++. Brak jest również obecnie Pythona w wykazie języków programowania, które uczniowie mogą stosować na egzaminie maturalnym (wg wykazu na egzamin maturalny w 2013 roku). Literatura 1. Borowiecki M., Python w szkole od podstawówki do liceum, EduFakty Uczę Nowocześnie, nr 23 styczeń-luty 2013 2. Gurbiel E., Hardt-Olejniczak G., Kołczyk E., Krupicka H., Sysło M.M. Informatyka to podstawa, WSiP Warszawa 2012 3. Summerfield M., Python 3 Kompletne wprowadzenie do programowania, Helion Gliwice 2010 4. Podstawa programowa wychowania przedszkolnego oraz kształcenia ogólnego w szkołach podstawowych, gimnazjach i liceach, http://www.men.gov.pl, ostatni dostęp 16 kwietnia 2013 roku 5. http://www.python.org, ostatni dostęp 16 kwietnia 2013 roku 6. http://pl.python.org, ostatni dostęp 16 kwietnia 2013 roku 7. http://www.pythontutor.org, ostatni dostęp 16 kwietnia 2013 roku