• Nie Znaleziono Wyników

Programowanie może być ciekawe

W dokumencie MN www.mlodzinaukowcy.com Poznań (Stron 46-51)

Programming can be interesting Dawid Karpiński

Wydział Nauk Ścisłych i Przyrodnicznych, Uniwersytet Jana Kochanowskiego w Kielcach Opiekun naukowy: dr inż. Przemysław Ślusarczyk

Dawid Karpiński: contact@dawmagoo.com

Słowa kluczowe: edukacja, informatyka, technologia, zainteresowania

Streszczenie

Programowanie – dla wielu czarna magia, dla innych codzienność – skomplikowane języki programowania, trudny do zrozumienia kod ale czym tak naprawdę jest programowanie? Czy programować może nauczyć się każdy? Czy programowanie jest trudne?

Otóż nie!

Programistami jesteśmy my wszyscy – przecież każdy z nas kiedy kładzie się wieczorem ustawia budzik aby nie zaspać na zajęcia czy do pracy – Tak, to jest właśnie programowanie. Dodajmy do tego np. kolorowe ikonki o różnych znaczeniach (tj. puzzle), pojazd zdalnie sterowany, trochę kolorowych światełek, podłączmy to wszystko do komputera i mamy fajne środowisko programistyczne składające się z puzzli (które lubią dzieci).

Dzięki takiej prostej metodzie programowania – układania puzzli nie musimy pisać przecież ciężkiego do zrozumienia kodu – wystarczy przeciągnąć kilka puzzli o różnych znaczeniach, alby zaprogramować sekwencję kolorowych światełek. Dzieci w szkołach od najmłodszych lat powinny zaczynać się uczyć programować właśnie od tak banalnych rzeczy aby z czasem zacząć logicznie myśleć i podejmować bardziej złożone decyzje.

1. Wstęp

W dzisiejszych czasach z programowaniem mamy do czynienia niemal codziennie – począwszy od ustawienia budzika aby nie zaspać do pracy (tak, ustawienie budzika jest programowaniem) aż po skomplikowane kody pisane przez specjalistów. Ludzie, którzy programują, mogą komunikować się z komputerami, co staje się coraz ważniejsze, gdy komputery mają prawie wszystko. Osoby, które znają się na informatyce powinniśmy biegle posługiwać się edytorem tekstu i arkuszami kalkulacyjnymi. Kolejnym logicznym krokiem jest możliwość programowania. Młodsze pokolenie jest już narażone na działanie komputerów niemal od dnia narodzin. Istnieje wiele języków komputerowych do różnych celów. C i C ++ pozostają najszybszymi do uruchomienia i są używane na przykład w branży gier. W erze Internetu znaczna część projektu strony jest wykonywana przy użyciu JavaScript lub PHP. Tymczasem Python szybko zyskuje reputację łatwego do nauczenia się kodu ogólnego przeznaczenia.

Istnieje wiele podobieństw między językami naturalnymi a takimi językami programowania.

Musisz nauczyć się wyrażać siebie zgodnie z zasadami języka. Jest gramatyka do zrozumienia. A to, co piszesz, musi być interpretowane przez innego człowieka. (Tak, musi to być interpretowane przez komputer).

Obecnie coraz to mniej osób jest zainteresowanych nauką programowania ze względu na pisanie trudnego do zrozumienia kodu, co jest nieciekawe dla młodych osób w wieku szkolnym. Aby rozwijać zainteresowania przyszłych programistów należy ich zachęcać do wczesnej nauki programowania ale nie zawsze się to udaje. Wiele młodych osób poddaje się już na starcie widząc trudny do zrozumienia kod, który muszą napisać. Ważnym więc jest aby zachęcić młode osoby do nauki za pomocą języków wizualnych takich jak np. Scratch. Człowiek widząc kolorowe obrazki, puzzle szybciej zwróci uwagę, zapamięta poszczególne funkcje niż osoba, która patrzy na linijki kodu (ciągi znaków), które wiele osób zaczynających przygodę z programowaniem nazywa je nauką języka chińskiego.

Scratch może być stosowany do nauki nie tylko przez młode osoby, które dopiero zaczynają zapoznawać się z komputerem ale także przez osoby, które już są dojrzałe lecz nie radzą sobie nadal z pisaniem trudnego do zrozumienia kodu.

2. Opis zagadnienia

Zanim rozpoczniemy przygodę z programowaniem, musimy się zastanowić, czy obrana przez nas droga jest właściwa. Na początku (choć może nie dla wszystkich) programowanie będzie trudne, ponieważ wiąże się to z innym myśleniem niż dotychczas. Nie ma jednego schematu dotyczącego nauki programowania. Jest to dla każdego indywidualna sprawa. Jeżeli na początku nie wychodzi – nie zrażaj się. Musisz być ciągle na bieżąco z nowościami. Im dłużej programujesz, tym bardziej prawdopodobne jest, że zdobędziesz ważne doświadczenie. Programowanie polega na rozwiązywaniu problemów. To nie tyle kwestia zapamiętywania wszystkich funkcji, które generują różne wiersze kodu (chociaż jest to oczywiście przydatne). Możesz sprawdzić funkcje, jeśli zapomnisz jak coś zrobić. Twoje umiejętności rozwiązywania problemów będą się rozwijać z czasem.

Kilka godzin nie wystarczy, aby zostać od razu profesjonalnym programistą.

Dla wielu programowanie to umiejętność trudna, której nie da się pojąć – nic bardziej mylnego! Podczas nauki programowania musisz zrozumieć kilka rzeczy, które poprowadzą cię w dalszą drogę. Warto zacząć od nauki podstaw Informatyki. Ważne jest aby wiedzieć, jak działa komputer, jak mogą one współgrać ze sobą z sieciach – ułatwia to zrozumienie koncepcji, która pojawia się później. Programowanie zwykle odbywa się całkowicie w języku angielskim.

Podstawowa znajomość języka angielskiego pomoże Ci zrozumieć poszczególne polecenia. Na przykład, jeśli spojrzysz na kod źródłowy witryny, zauważysz wiele pojedynczych angielskich słów, takich jak „body”, „paragraph”, „style” lub „script”. Ponadto, jeśli szukasz rozwiązania problemu programistycznego w języku angielskim, znajdziesz rozwiązanie szybciej niż np. w języku polskim.

Nie zaczynaj programowania od rzucania się na głęboką wodę, zacznij od podstaw i je rozwijaj. Informatycy lubią porównywać programowanie z budowaniem domu: zanim zbudujesz ściany i ułożyć kable, należy najpierw zbudować fundament. Niezależnie od tego, czy jest to przedmiot w szkole, czy na uniwersytecie, uczestnictwo w kursie online lub korzystanie z książki do nauki: wspólny wątek musi tam być. Zaletą takiej podstawy uczenia się jest to, że programowanie jest wyjaśnione krok po kroku i możesz sprawdzić swój postęp. Na przykład, jeśli pracujesz z książką do nauki, zwykle uczysz się programowania na podstawie szczegółowych zadań. Na przykładzie programowania w HTML oznacza to, że projektujesz stronę internetową i radzisz sobie z każdym rozdziałem z rozszerzeniem i opracowaniem. W ten sposób uczysz się stosować fakty w praktyce, a jednocześnie monitorujesz swoje postępy. Jeśli napotkasz problem i nie wiesz, co zrobić, ponieważ nie rozumiesz sprawy lub nie jesteś w stanie poradzić sobie ze swoim fragmentem kodu, istnieje duża szansa, że znajdziesz rozwiązanie, przeszukując Internet. Istnieje niezliczona liczba forów, portali z poradami i stron wiki online specjalizujących się w programowaniu. Fora internetowe są dobrym punktem wyjścia do znalezienia rozwiązań. Możesz tworzyć własne posty na forach i opisywać swoje problemy. Inni członkowie forum mogą pomóc w rozwiązaniu problemu. Ponadto mogła istnieć osoba z podobnym problemem i mogła znaleźć już rozwiązanie twojego problemu. Fora mogą być również dobrym miejscem do testowania własnych umiejętności programistycznych. Może są inni początkujący, którzy mają problemy, z którym możesz pomóc. Jeśli nie chcesz cały czas pracować z tekstem, możesz także oglądać filmy na ten temat. Można znaleźć wiele klipów na popularnych portalach wideo, które mogą pomóc w programowaniu. Od profesjonalnych programistów, którzy rozpoczęli szkolenie, po programistów hobbystycznych, istnieje wiele osób, które mogą ułatwić Ci codzienne programowanie. Bardzo pomocne może być oglądanie programów innych osób. Możesz wyciągnąć z tego pomocne wnioski. Zasadniczo pomaga również zobaczyć, jak różne osoby podchodzą do problemów i znajdują rozwiązania.( Martin 2014).

Bez względu na to, co chcesz kodować, musisz opanować co najmniej jedno narzędzie. I to jest język programowania. Język programowania jest narzędziem umożliwiającym wydawanie poleceń komputerowi. Jeśli uruchomisz kilka poleceń z rzędu , jest to program . Program jest przetłumaczony na język maszynowy. Składa się on z wielu operacji arytmetycznych, które są wykonywane jeden po drugim. Kiedy komputery były tak duże jak szafy, były obsługiwane za

pomocą prostych przełączników i kart dziurkowanych. Zasadniczo komputer nie może dodać niczego innego niż kod binarny (przykład kodu binarnego: 010111110101), robi to jednak tak szybko i skutecznie, że cała nasza dzisiejsza technologia komputerowa jest na tym oparta.

Kolejnym problemem, z którym każdy początkujący programista musi się zmierzyć, jest to, że musi nauczyć się języka programowania. Język programowania jest tylko narzędziem. Problem polega na tym, że uczysz się używania młotka, a następnie jesteś proszony o wykorzystanie swojej wiedzy do budowy własnego domu. Nie byłbyś w stanie? Właśnie dlatego wielu zniechęca się na początku. Jest jeszcze kilka rzeczy, które powinieneś wiedzieć, zanim zbudujesz dom. Nie można projektować programów za pomocą samego języka programowania. Musisz także dowiedzieć się, jakie prace związane z myśleniem i planowaniem musisz wykonać.

Programowanie dla najmłodszych i nie tylko

Programowanie komputerowe przeszło niesamowitą ewolucję w ciągu ostatnich 20 lat.

Kiedy uczyłem się programowania komputerowego, BASIC był językiem, którego się nauczyłem i napisałem swój pierwszy program w DOS. Od tego czasu wymyślono ponad 100 różnych języków programowania. Chociaż może istnieć wiele różnych języków programowania, wszystkie wymagają pisania kodu, którego większość ludzi nie rozumie. Jednak jedną szczególną innowacją, która moim zdaniem zasadniczo zmieni to zjawisko, jest Scratch . Opracowany przez MIT, Scratch to system open source, który umożliwia programowanie interaktywnych historii, gier i animacji. Zamiast pisać kod, Scratch używa wizualnych bloków, takich jak elementy układanki, do tworzenia programu.

Scratch jest bardzo podobny do Lego, ponieważ liczba sposobów układania klocków jest nieograniczona. Chociaż Scratch jest w dużej mierze wykorzystywany do wprowadzania dzieci do kodowania, może także tworzyć wyrafinowane programy.

 Scratch NIE wymaga składni

Aby zbudować własny program, wystarczy przesuwać bloki. Jest manipulowany za pomocą środków wizualnych, a nie przez pisanie kodu. Bloki wizualne są bardziej zrozumiałe. Chociaż dzisiejsze narzędzia programistyczne zawierają funkcje pomagające zmniejszyć liczbę błędów pisarskich, takie jak autouzupełnianie, czasami programiści wciąż spędzają wiele godzin na debugowaniu zwykłej literówki.

 Scratch może służyć do tworzenia wyrafinowanych programów

Nie tylko dla dzieci! Do wyboru jest wiele bloków konstrukcyjnych do tworzenia złożonych programów.

 Scratch jest rozszerzalny

Wielu użytkowników Scratch może nie zdawać sobie sprawy, że może dodawać zmienne, wyświetlać listy, a nawet tworzyć własne bloki w programie! Użytkownicy mogą nawet podłączyć Scratch do sprzętu takiego jak PicoBoard i LEGO WeDo. Ta możliwość rozszerzenia sprawia, że możliwość ta jest nieograniczona.

Scratch to idealne narzędzie do uczenia dzieci kodowania. Cały materiał jest bezpłatny i istnieje wiele zasobów, które pomogą nauczycielom zintegrować kodowanie z ich programem nauczania.( Porzycki i Łukasik 2015)

Jedną z ciekawszych opcji nauki Pythona jest możliwość programowania jednej z ulubionych gier dla dzieci, czyli Minecrafta. Wszystko za sprawą książki “Nauka programowania z Minecraftem“, dzięki której Twoje dziecko nauczy się pisać programy, umożliwiające im modyfikowanie gry w celu osiągnięcia natychmiastowych, robiących niesamowite wrażenie efektów.

Kolejnym ciekawym materiałem edukacyjnym jest książka „Python dla dzieci. Programowanie na wesoło”, będąca dla Twojego dziecka atrakcyjnym wprowadzeniem do świata programowania. Jej autor omawia podstawy Pythona, bazując na programach pełnych tajnych agentów, głodnych potworów, chciwych kruków i wielu innych. Dzięki tej książce, Twoje dziecko dowie się m.in. jak rysować wzory i kształty za pomocą modułu turtle, jak tworzyć animacje i gry za pomocą modułu tkinter i wiele, wiele innych przydatnych rzeczy.(Wiszniewski 2017).

Rys.1 – Scratch jako programowanie dla najmłodszych.

Co jest nie tak z programowaniem?

Świadomość i zrozumienie rodziców i nauczycieli odgrywa ważną rolę w podejmowaniu decyzji. Wszelkie zajęcia pozalekcyjne dla dzieci odnoszą sukces, ale nie są to najważniejsze czynniki. Najważniejsze jest to, jak dzieci znajdują temat aktywność i jak blisko są z nim związani.

Jeśli chodzi o programowanie, języki używane w IOI (i wiele innych typowych języków) na pierwszy rzut oka wyglądają jak język Chiński. Nawet zwykły prosty start z programem „Hello World” rodzi kilka pytań, na które nie można odpowiedzieć w pierwszych kilku sesjach kursu programowania. To niezbyt interesujący początek, dzieci muszą skoncentrować się na zapamiętywaniu szczegółów składni, takie jak średniki i nawiasy, więc kompilator nie jest na nich zły jedynie trzeba się skoncentrować na nauce podczas uczenia się składni (np. zmiennych, warunków, pętli, itp.) oprócz logiki. Okazuje się, że „uczniowie muszą wcześniej zostać mistrzami składni czy też rozwiązywania problemów ”(Malan i Leitner 2007).

Kiedy dzieci przychodzą na kurs programowania, mają szerokie oczekiwania i pytania, takie jak „Kiedy stworzymy naszą pierwszą grę (lub wirusa)?”, I ci, którzy są wystarczająco cierpliwi, aby nauczyć się podstaw języka, wkrótce się sfrustrują kiedy odkryją, że nie mogą zrobić więcej niż proste operacje na bezsensownych danych ustawia za pomocą interfejsu tekstowego. Można więc to powiedzieć jednym zdaniem: „Programowanie komputerowe zostało wprowadzone za pomocą języków programowania, które są trudne w użyciu, z proponowanymi działaniami, które nie łączą się z zainteresowaniami młodych ludzi oraz w kontekstach”. Z tych powodów programowanie odbywa się za pomocą powszechnie używanych języków tekstowych, które są nieodpowiednie na start dla szerokiego grona odbiorców dzieci, co utrudnia wczesne wykrycie potencjalnych młodych programistów.

Aby rozwiązać ten problem, należy wprowadzić język wizualny jakiem jest na przykład opisywany Scratch co pozwoli nam określić jakie wymagania będą nam stawiane przez osoby, które chcą zostać programistami.

3. Przegląd literatury

Programowanie to dość popularna dziedzina ostatnich lat. Brak dobrych specjalistów programowania na rynku to powolny rozwój nowych technologii. Już jako najmłodsi powinniśmy być zachęceni do nauki programowania, a co za tym idzie logicznego myślenia, rozwiązywania różnych problemów czy też dobrej zabawy. Jedną z bardzo dobrych książek do nauki młodych osób programowania jest „Scratch bez tajemnic”, lektura jest dedykowana najmłodszym. Znajdziemy w niej dużo fajnych i edukacyjnych rzeczy, z których nie tylko młoda osoba coś wyniesie ale także dużo starsza chcąca poznać tę dziedzinę nauki.

4. 4. Podsumowanie

Programowanie zaczyna stanowić nieodzowny element współczesnego świata. Coraz to większa liczba urządzeń doprowadza do tego, że ktoś musi je wszystkie zaprogramować czy też nimi sterować. Programista to też jeden z lepiej płatnych zawodów na świecie. Nauka kodowania nie jest łatwym zadaniem. Jest to szerokie pole o wielu specyfikacjach. Skoncentruj się na swoich postępach.

Nikt nie rodzi się z umiejętnościami programowania, musisz je zdobyć od zera. Staniesz w obliczu wyzwań i prawdopodobnie doświadczysz chwil, gdy utkniesz. Ważne jest, aby stale zajmować się tym tematem. Ciesz się z niewielkich postępów. Nie stawiaj sobie zbyt dużych celów i pamiętaj, że uczysz się czegoś zupełnie nowego.

Programowania powinni uczyć się dzieci w szkołach od najmłodszych lat dzięki czemu zaczną myśleć bardziej logicznie, zaczną rozwijać swoje zainteresowania a także będą się przy tym świetnie bawić korzystając przy tym z różnych zabawek edukacyjnych służących do nauki programowania najmłodszych dzieci.

5. Literatura

C. Martin Robert (2014) Czysty kod. Podręcznik dobrego programisty: 24-25 Porzycki J, Łukasik U (2015) Scratch bez tajemnic: 11-52

Wiszniewski M (2017) Język Python dla nastolatków Zabawa w programowani: 9-19 Malan DJ and Leitner H (2007) Scratch for budding computer scientists: 5-30

W dokumencie MN www.mlodzinaukowcy.com Poznań (Stron 46-51)