python na lekcjach informatyki w szkole

Transkrypt

python na lekcjach informatyki w szkole
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: [email protected]
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
3.
Maciej Borowiecki, Python na lekcjach informatyki w szkole ponadgimnazjalnej
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):
instrukcje do wykonania
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:
instrukcje do wykonania
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:
instrukcje do wykonania
elif warunek logiczny:
instrukcje do wykonania
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:
instrukcje do wykonania
# 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):
instrukcje do wykonania
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

Podobne dokumenty