Kwestia przygotowania ośrodków edukacyjnych na integrację z technologią sztucznej inteligencji jest sprawą palącą. Kluczowe jest jednak nie tylko zrozumienie samej technologii, ale również dostosowanie do niej procesu edukacji – zarówno na poziomie nauczycieli, jak i uczniów. W szczególności chodzi o zrozumienie „inteligencji” ChatGPT, która bazuje na mechanizmach uczenia maszynowego, wykorzystywanych w większości aktualnych rozwiązań opartych na AI. Bez zrozumienia modelu obliczeniowego (ang. computational model) leżącego u podstaw AI/ML, jakakolwiek interakcja czy współpraca z ChatGPT lub innymi narzędziami tej klasy będzie jedynie powierzchowna, niekompletna i skazana na niepowodzenie.
ChatGPT ma zdolność do rozumienia naszego myślenia, ponieważ operuje wszelkimi tekstami stworzonymi i utrwalonymi przez ludzi. Dlatego tak ważne jest dla użytkowników tego narzędzia zrozumienie mechanizmów jego działania, jeśli chcemy wykorzystywać go jako partnera w dyskusji czy rozwiązywaniu problemów. Podobnie jak w każdej dyskusji, warto znać swojego rozmówcę – jakie argumenty może podać, skąd je czerpie i jak je przetwarza. A co jeśli ChatGPT nas oszuka, korzystając z naszych własnych tekstów?
Uwaga Umberto Eco jest tutaj bardzo aktualna: obawiając się, że dzisiejszy przemysł IT, pomnażając informacje, przestanie dostarczać cokolwiek istotnego. ChatGPT jest dziś określany mianem „stochastycznego papugującego”, który generuje informacje za pomocą sztucznych sieci neuronowych opartych na wnioskowaniu statystycznym.
Zwracamy teraz uwagę na programowanie i tworzenie programów komputerowych spełniających konkretną specyfikację, która opisuje problem do rozwiązania. Student może samodzielnie napisać i uruchomić swój program w Pythonie lub poprosić o to ChatGPT. Oba te programy mogą być identyczne, ale tu kończy się ich podobieństwo. Pierwszy z nich student będzie prawdopodobnie rozwijał w lokalnym lub zdalnym środowisku języka Python. Drugi natomiast zostanie wygenerowany jako odpowiedź na prośbę (prompt) skierowaną do ChatGPT, który oparty jest na środowisku uczenia maszynowego. Można by pomyśleć, że oba te rozwiązania mają jeszcze jedno podobieństwo – zostały utworzone na tym samym laptopie. Jest to jednak złudne podobieństwo. Laptop jest tutaj jedynie interfejsem do środowiska Pythona, które znamy i rozumiemy, oraz do środowiska ChatGPT, opartego na sieci neuronowej składającej się z bilionów węzłów i bilionów parametrów, przetwarzających biliony zgromadzonych informacji (dane są tutaj przybliżone i mogą być nieaktualne). Ważniejszy jest jednak model rozumowania w obu tych środowiskach, co jest tematem dalszej części tekstu.
Jeśli spojrzymy na praktyczny aspekt tej kwestii i zastanowimy się jak powinien postąpić nauczyciel informatyki, gdy w odpowiedzi na polecenie napisania programu spełniającego konkretną specyfikację, uczeń przynosi gotowy program. Taka sytuacja zdarza się od dawna – wyszukiwarki internetowe mogą dostarczyć studentowi dziesiątki, setki czy nawet tysiące kodów dotyczących danego problemu. Jak radzić sobie w takich sytuacjach? W moim przypadku preferuję podejście polegające na dekonstrukcji rozwiązania – uczniowie muszą uruchomić u mnie swój program na wybranych danych i wyjaśnić działanie zastosowanego algorytmu. Tak samo postępuję z programami generowanymi przez ChatGPT. Podobnie można postępować z każdym zadaniem ucznia (swoim lub z ChatGPT) z dowolnego przedmiotu. Stany Zjednoczone od dawna promują takie podejście, określane jako „show your work” – pokaż, jak pracowałeś, jak uzyskałeś prezentowane wyniki. Pozostaje jeszcze jedno ważne zagadnienie, które poruszał Jean Piaget – sprawdzenie, czego uczeń faktycznie nauczył się z danego zadania – sukces, produkt, rozwiązanie (np. w formie programu) nie są bowiem dowodem na to, że uczeń nauczył się tego, co było celem zadania. Ten temat jest jednak na tyle obszerny, że wymaga osobnego artykułu. Piszę o tym tutaj, strony 16-29.
ChatGPT może również posłużyć do wprowadzenia nowej metodologii – konstrukcji rozwiązania zamiast dekonstrukcji gotowego rozwiązania. Nowe podejście polega na nauce formułowania odpowiednich pytań (poleceń, promptów) do modelu generującego kod. Formułowanie pytań lub poleceń jest jednak znacznie bardziej zaawansowaną umiejętnością niż odpowiadanie na nie. Dotyczy to nie tylko uczniów na różnych etapach edukacji. Prawdopodobnie każdy użytkownik ChatGPT doświadczył sytuacji, w której otrzymał odpowiedź, która go nie zadowoliła. Zazwyczaj w takich przypadkach okazuje się, że problem leży… w pytaniu, które było zbyt ogólne, niedokładne, używało niewłaściwej terminologii itp. Zamiast sprawdzania, czy uczeń/student rozumie gotowy kod otrzymany z ChatGPT, kierujemy go na drogę formułowania właściwych pytań systemowi, aby ten generował prawidłowy kod dla konkretnego problemu. W pewnym sensie jest to odwrócenie wspomnianego wyżej podejścia – zamiast wyjaśniać jak działa program, uczeń poznaje działanie programu (i algorytmu) podczas jego tworzenia. Przeprowadzone badania pokazały, że w tym podejściu uczniowie aktywnie korzystają z myślenia obliczeniowego i w naturalny sposób poznają nowe struktury programistyczne.
Zaproponowane podejście do nauki programowania może być odpowiednio dostosowane do zadań z innych dziedzin/tematów edukacyjnych. Teraz wyzwaniem dla nauczycieli jest tworzenie kolekcji pytań dla poszczególnych problemów jako materiału wspierającego proces uczenia się uczniów. To także wyzwanie dla wydawców podręczników, aby zrezygnowali z podawania gotowych rozwiązań na papierze.