
Autor: 19.04.2023
Jak ChatGPT może pomóc w nauce programowania
Chyba każdy z nas słyszał o ChatGPT. A nawet jak nie słyszał, to i tak wkrótce usłyszy. Ten model językowy jest przez wielu opisywany jako rewolucja na miarę wynalezienia druku. W Codenga najbardziej interesuje nas nauka programowania. Sprawdźmy więc jakie możliwości oferuje ChatGPT w tym zakresie.
W tym artykule będziemy używali starszej, dostępnej za darmo wersji - ChatGPT 3. Trzeba wziąć poprawkę na to, że algorytmy generowania języka cały czas się rozwijają. A to co pokażemy, może być już niedługo nieaktualne.
Python Developer
Opanuj najszybciej rosnący język programowania. Zdobądź umiejętności, które pozwolą ci zostać Python Developerem. Ta ścieżka kariery sprawi, że staniesz się pełnoprawnym kandydatem na Python Developera. Ścieżka zawiera dziesiątki zadań, ćwiczeń oraz projektów, które nauczą cię realnych, przydatnych na rynku pracy umiejętności. Dowiedz się więcej
Co ma ChatGPT do powiedzenia na temat nauki programowania?
Zapytajmy bezpośrednie pytanie do ChatGPT: “jak ChatGPT może pomóc w nauce programowania?”. Tak wygląda fragment odpowiedzi:
“Jako model językowy, mogę pomóc w nauce programowania poprzez udostępnienie informacji, wskazówek, sugestii i porad na temat różnych języków programowania, technik programowania, algorytmów i struktur danych.
Można mi zadawać pytania dotyczące programowania, a ja postaram się udzielić jak najlepszej odpowiedzi. Na przykład, jeśli potrzebujesz pomocy w zrozumieniu pewnych koncepcji programowania lub szukasz pomysłów na rozwiązanie konkretnego problemu, mogę Ci pomóc.”
Modele językowe, operują na…języku. Ich głównym przeznaczeniem jest generowanie tekstu. Dlatego największy potencjał tkwi właśnie w generowaniu wskazówek, podpowiedzi itp. Musisz sobie zdawać sprawę z tego, że ChatGPT nie uruchamia kodu. Nie jest kompilatorem czy interpreterem. Dość słabo też radzi sobie z matematyką. Skupmy się więc na jego mocnych stronach. Zadajmy mu kilka pytań, typowych dla początkujących programistów i przeanalizujmy odpowiedzi.
Przykład - objaśnianie koncepcji
Tak wygląda zapytanie do ChatGPT 3:
“Co to jest pętla w języku Python?”
A tak wygląda odpowiedź:
“Pętla w języku Python to struktura programistyczna, która pozwala na powtarzanie określonego fragmentu kodu przez określoną liczbę razy lub dopóki spełnione są określone warunki. Dzięki temu, programista może wykonywać powtarzalne zadania bez konieczności pisania tych samych linii kodu wielokrotnie.”
W wyjaśnieniem podstawowej koncepcji pętli, ChatGPT radzi sobie całkiem nieźle. Oprócz objaśnienia, ChatGPT wygenerował nam też przykłady użycia pętli for oraz while. Widać je wyraźnie na poniższym obrazku:

Wnioski
Przykłady oraz objaśnienia dotyczące pętli w języku Python są prawidłowe. ChatGPT wygenerował poprawny kod oraz poprawnie go opisał. Przykłady outputu zwróconego przez daną pętlę też są prawidłowe. Z merytorycznego punktu widzenia wszystko jest OK.
Można zaryzykować twierdzenie, że ChatGPT radzi sobie z objaśnieniem podstawowych koncepcji. A przynajmniej sobie poradził z prostymi pętlami w Pythonie.
Przykład - rozwiązywanie zadania
Teraz spróbujemy użyć ChatGPT do znalezienia rozwiązania prostego programistycznego problemu. Oto nasze zapytanie:
“Potrzebuję funkcję w języku Python, która wylicza silnię dla podanej liczby”
Taki kod zaproponował nam ChatGPT:
def factorial(n):
if n < 0:
raise ValueError("Liczba nie może być mniejsza od zera.")
result = 1
for i in range(2, n+1):
result *= i
return result
Kod wygląda na prawidłowy. Poprawnie oblicza silnię dla podanej liczby.
Wnioski
ChatGPT ma spory potencjał jako narzędzie do rozwiązywania problemów programistycznych. Trzeba jednak pamiętać o ważnej rzeczy. Kod obliczający silnię to bardzo prosty problem, które został już rozwiązany niezliczoną ilość razy. To jest standardowe zadanie dla początkujących programistów. Nie mu to więc wielkiego wyzwania dla modelu językowego.

Opanuj najszybciej rosnący język programowania. Zdobądź umiejętności, które pozwolą ci zostać Python Developerem.
Dowiedz się więcejPotencjalne problemy
Z prostymi zadaniami ChatGPT radzi sobie całkiem nieźle. Potrafi objaśnić podstawowe pojęcia i rozwiązać proste zadania. Internet jest jednak pełen przykładów, które trochę podważają zaufanie do tego narzędzia.
Zdarza się, że kod generowany przez model językowy zawiera poważne błędy. Dużym problemem są tzw. halucynacje czyli tendencja do generowania zmyślonych odpowiedzi. Polega to m.in na tym, że ChatGPT proponuje nam użycie nieistniejących narzędzi. Albo importuje nieistniejące biblioteki. Generalnie im bardziej złożony problem próbujemy rozwiązać tym więcej ostrożności potrzebujemy przy próbie użyciu kodu generowanego przez model.
Jednak na poziomie podstawowym, radzie sobie całkiem nieźle. Można w miarę mu zaufać gdy potrzebujemy wyjaśnienia prostych koncepcji np. działania pętli, użycia zmiennych itp. Może też się przydać gdy chcemy napisać prosty algorytm, tak jak w naszym przykładzie obliczającym silnię. Możemy więc traktować ChatGPT jako swego rodzaju wirtualnego asystenta, który pomaga nam w nauce programowania. Ale trzeba też mieć do niego troszkę ograniczone zaufanie.
Nie zapominaj też o tym, że modele językowe bardzo szybko się rozwijają. W artykule użyliśmy ChatGPT 3, a teraz jest już dostępna wersja 4 (płatna). Warto więc uważnie obserwować tą dziedzinę bo na pewno tkwi w niej olbrzymi potencjał.