Kiedy warto rozpocząć naukę programowania w trybie tekstowym? Nauczyciele i przedstawiciele środowiska akademickiego w swoich analizach próbują określić moment, który jest odpowiedni na wprowadzenie do programu edukacji takiego rodzaju programowania z jakim mamy styczność w przedsiębiorstwach z branży IT. Czy podczas rozwiązywania zaawansowanych problemów programistycznych, czyli programowania w trybie tekstowym. Na całym świecie specjaliści z branży IT i środowiska akademickiego zauważyli, że potrzebujemy młodych programistów, którzy posiadają kompetencje w ramach programowania, znajomości systemów operacyjnych, baz danych, czy także bardziej zaawansowanej informatyki. Kiedy więc powinno się wprowadzać język tekstowy? Warto popatrzeć jakie obecnie trendy występują na świecie.
Na świecie widoczny jest silny trend
USA jest jednym ze światowych liderów nauki programowania. Siedemnaście stanów przyjęło informatykę jako przedmiot możliwy do wybrania przez uczniów w ramach grupy przedmiotów ścisłych. Inne kraje także przyjęły podobne programy mające na celu rozszerzanie nauki przedmiotów informatycznych. W Singapurze wprowadzono do szkół dodatkowe kursy z informatyki w celu pobudzenia gospodarki krajowej. Efekty tych działań oczekiwane są jednak dopiero w przyszłości, ponieważ prognozuje się, że za kilka lat osoby, które będą miały takie kompetencje jak Computer Thinking i Logical Thinking w kluczu informatycznym będą mogły być podstawą do budowania krajowej gospodarki opartej na nowoczesnych technologiach. Także Wielka Brytania podjęła działania mające na celu poprawę jakości nauczania informatyki. Zmodyfikowany został program nauczania, w którym zostało jasno określone, że bardziej specjalistyczne zagadnienia programistyczne mają się pojawiać już w szkołach podstawowych. Analizując światowe trendy możemy stwierdzić, że warto rozpocząć nauczanie programowania a także innych bardziej zaawansowanych przedmiotów informatycznych najwcześniej jak jest to możliwe.
Kiedy zatem jest odpowiedni czas na wprowadzenie języka tekstowego?
Na całym świecie zostało przyjęte, że w ramach szkoły podstawowej uczymy programowania na podstawie języków blokowych czy wizualnych. Najbardziej popularny na świecie jest program Scratch, który został utworzony przez MIT Media Lab w Stanach Zjednoczonych. Oczywiście w użyciu istnieją inne programy takie jak [Greenfoot] czy inne podobne języki programowania albo systemy do wizualnego programowania blokowego. Odpowiedzi wymagają pytania: czy rzeczywiście warto rozpocząć naukę programowania od blokowych języków, czy może od razu zacząć naukę w trybie tekstowym? Jeżeli nie od samego początku to, kiedy rozpocząć naukę programowania w trybie tekstowym takim jak np. Python?
Na to pytanie odpowiedzi szukali naukowcy z Carnegie Mellon University
Sprawdzili, czy warto rozpocząć naukę programowania od języków programowania w trybie tekstowym (w tym przypadku Python), czy może lepiej od języków blokowych takich jak Scratch. Akademicy przeprowadzili eksperyment mający na celu odpowiedzenie na to pytanie. W ramach badania przygotowali programy nauczania dla przedmiotu uczącego podstaw programowania na bazie wytycznych stosowanych w Wielkiej Brytanii (zwiększenie nacisku na naukę programowania). Opracowany program nauczania był przeznaczony dla poziomu klas 7 i 8 w Stanach Zjednoczonych. Mówiąc o poziomie 7 i 8, nie zawsze musi to być związane z polskimi odpowiednikami tzn., że jest to 7 czy 8 klasa podstawowa bowiem mamy różne systemy edukacji. Czasami może być tak, że te dwa stopnie będą realizowane podczas jednego roku edukacji. Niemniej jednak zazwyczaj możemy to rozumieć tak, że poziom 7 jest odpowiednikiem klasy 7 w Polsce, poziom 8 jest to odpowiednikiem klasy 8. W ramach nauczania na poziomie 7 przygotowano dwa osobne, różniące się od siebie programy nauczania. Pierwszy program (Grupa A – 70 uczniów) – zakładał rozpoczęcie nauki programowania od języka tekstowego, czyli uczniowie uczyli się od razu w języku Python. Drugi program (Grupa B –71 uczniów) – zakładał rozpoczęcie nauki programowania na bazie blokowego, wizualnego języka (w tym przypadku języka [alice]). Nauczanie na poziomie 7 zostało przeprowadzone w ramach piętnastotygodniowego kursu. Nauczanie na poziomie 8 zostało ustandaryzowane i obie grupy uczyły się już wyłącznie programowania w języku tekstowym. Obie grupy otrzymały ten sam zestaw materiałów. Etap 8 został zorganizowany w formie dwunastotygodniowego kursu.
Wyniki wskazują na jednoznaczne rezultaty
Po zakończeniu kursów na poziomie 7 i 8 naukowcy sprawdzili umiejętności przyswojone przez uczniów przy użyciu testu. Test zakładał sprawdzenie i ocenienie uczniów na podstawie skali punktowej, z najwyższym wynikiem wynoszącym 25 punktów. Średnia ocen uczniów z grupy A (rozpoczynających naukę od języka tekstowego) wynosiła 15,67, zaś najwyższa ocena 23 na 25 możliwych punktów (wynik 23 na 25 uzyskał tylko jeden uczeń). Grupa B (rozpoczynająca od języka blokowego) uzyskała średnią na poziomie 19,94, a także niektórzy uczniowie z tej grupy zdobyli maksymalną liczbę punktów na teście (warto zaznaczyć, że liczba osób osiągających wynik powyżej 20 punktów była znacznie wyższa niż w przypadku grupy A). Wyniki badania obrazują różnicę w jakości stosowanych programów nauczania; w grupie B ogólna średnia była wyższa niż w grupie A, a także ilość osób osiągających wyniki bliskie maksymalnej liczbie punktów w grupie B była wyższa niż w grupie A. Ponadto nauczyciele nadzorujący pracę badanych uczniów stwierdzili, że widzieli bardzo dużą różnicę pomiędzy grupami. Grupa B, która rozpoczęła programowanie przy pomocy języków wizualnych, blokowych zdecydowanie łatwiej rozumiała nowe struktury w języku Python. Analizując wnioski można stwierdzić, że warto wprowadzić język blokowy, wizualny jako ten pierwszy, gdyż blokowe języki programowania lepiej wprowadzają ucznia w podstawy programowania. Kolejne spostrzeżenie, grupa A, czyli ta, która rozpoczęła naukę od razu od trybu tekstowego przy pomocy Pythona nie umiała analizować kodu, nie umiała szukać błędu, czyli nie umiała tzw. Debuggingu. Może się to wydawać dziwne, zważając na fakt ich wcześniejszej znajomości języka Python. Warto zaznaczyć, że podczas kursu na poziomie 8, kiedy ponownie programowali w języku Python, radzili sobie gorzej od uczniów z grupy B dla których Python stanowił nowość. Uczniowie z grupy A gorzej radzili sobie zarówno z rozumieniem kodu w tym z logicznym budowaniem algorytmów jak i z wyszukiwaniem błędów w kodzie. Czym mogło być to spowodowane? Odpowiedzią wydaje się być brak zrozumienia działania programu. Uczniowie umieli wykonywać automatycznie pewne zadania, ale nie wiedzieli co się dzieje, nie potrafili sobie zwizualizować działania kodu. Natomiast grupa B zdecydowanie lepiej umiała poprawiać kod nawet bez pomocy nauczyciela, wiele błędów, które się pojawiały podczas uruchamiania programów były poprawiane przez uczniów bez pomocy nauczycieli. Uczniowie byli w stanie odnajdywać i korygować błędy właśnie dzięki znajomości sposobu w jaki funkcjonuje kod.
Wnioski z badań sugerują dalsze działania
Wyniki badań jednoznacznie pokazują, że warto rozpocząć programowanie od języków wizualnych, blokowych. Nauka programowania w językach blokowych, wizualnych nie może jednak trwać zbyt długo. Jej celem powinno być zrozumienie podstaw programowania, wykształcenie pewnej logiki programowania. Zazwyczaj na przyswojenie tych treści wystarcza rok. Przez rok edukacji możemy zbudować te kompetencje np. w oparciu o wykorzystanie Scratcha, który pozwala tworzyć animacje oraz interaktywne gry 2D. Po upływie tego okresu warto zająć się programowaniem tekstowym takim jak Python, który nie jest trudnym językiem i nie powinien stanowić problemu dla uczniów.
Najważniejsza jest motywacja
Zagadnieniem wartym rozważenia jest także aspekt motywacji uczniów. Element ten również został dowiedziony przez naukowców w toku prowadzonych badań. Badania wykazały, że uczniowie, którzy wcześniej mieli doświadczenie z językiem wizualnym, blokowym odczuwali znacznie większą satysfakcję z programowania. Jest to ważny element, ponieważ uczniowie muszą zdobyć motywację, najlepiej tą wewnętrzną, pozwalającą im na dalszy rozwój w tym zakresie. Czyli nie tylko motywacja zewnętrzna w postaci ocen z danego przedmiotu ma znaczenie, ale przede wszystkim motywacja wewnętrzna. Uczniowie muszą mieć satysfakcję z programowania, z procesu tworzenia. Ważnym czynnikiem jest ukierunkowanie uczniów na właściwe postrzeganie sektora IT, co często nie jest łatwe. Jeżeli uczniowie nie odczuwają satysfakcji z procesu nauki np. spowodowanej zbyt trudnym materiałem, nie będą w stanie przyswajać informacji optymalnie. Jeżeli zadanie jest zbyt trudne prowadzi to do zniechęcenia uczniów, gdyż nie będą go rozumieli, będą coś robić, przepisywać z różnych źródeł, ale nie będą rozumieli co się dzieje. Więc w tym momencie istotne jest to, żeby nabrać takiego zrozumienia, co zostało podkreślone w opisywanych badaniach, że uczniowie, którzy wcześniej mieli naukę blokową rozumieli co się dzieje w tym programie, a w efekcie mieli większą satysfakcję z procesu uczenia się.
Podsumowanie
Czy warto rozpocząć naukę programowania od języków blokowych? Z przedstawionych badań wynika, że jest to wskazane. Ale warto pamiętać o tym, żeby nauka języków blokowych nie trwała zbyt długo. Rok takiej edukacji wystarczy, aby zbudować w uczniach potrzebne kompetencje. Następnie należy jak najszybciej przejść do nauki w języku tekstowym. Kiedy warto rozpocząć naukę programowania? Języki blokowe powinny być wprowadzane już w 5 czy 6 klasie szkoły podstawowej, zaś w 7 czy 8 klasie powinny być już wprowadzone języki tekstowe takie jak python. Możemy to już obserwować w wielu szkołach. Wtedy po zakończeniu edukacji w 8 klasie uczeń ma już podstawową wiedzę na temat programowania, wie na czym to polega i będzie czerpał dużą satysfakcję z tworzenia kolejnych programów a także z innych możliwości jakie daje znajomość języka programowania.

Zapisz się do Newslettera CyberSkiller i otrzymuj informacje o nowym wpisie bezpośrenio na Swoją skrzynkę e-mail