Lepsza nauka

Nauka Javy z ChatGPT: jak sprawić, żeby coś zostało w głowie

Opublikowano 22 października 20264 min czytania

Wklejasz zadanie do ChatGPT, dostajesz gotowy kod i on działa. Przyjemne uczucie, dopóki nie siedzisz na kolokwium i nie potrafisz samodzielnie napisać ani linijki. ChatGPT sam w sobie nie jest problemem w nauce Javy. Liczy się to, jak go używasz. Tutaj dostajesz jasne zasady, prompty do skopiowania i test, który pokaże, czy naprawdę czegoś się nauczyłeś.

Dlaczego gotowe rozwiązania prawie nie uczą

Programowanie jest jak pływanie. Patrzenie trochę pomaga, ale nauczysz się tylko w wodzie. Kiedy czytasz gotowe rozwiązanie, zwykle je rozumiesz. To wygląda jak umiejętność, ale jest tylko rozpoznawaniem. Na sprawdzianie musisz sam znaleźć rozwiązanie: jaka pętla? jaki warunek? gdzie ma trafić zmienna?

Właśnie te decyzje zabiera ci gotowa odpowiedź. Do tego wiele sprawdzianów w szkole i w technikum oraz kolokwiów na studiach piszesz na kartce, bez czatu i bez podpowiadania kodu.

Do czego ChatGPT naprawdę się przydaje

Bądźmy uczciwi: ChatGPT robi niektóre rzeczy bardzo dobrze.

  • Wyjaśnia pojęcia: czym różni się static od elementu bez static? Możesz dopytywać, aż zrozumiesz, nawet o północy.
  • Tłumaczy cudzy kod linijka po linijce: choćby fragment z wykładu albo z lekcji.
  • Tłumaczy komunikaty błędów: najważniejsze znajdziesz też we wpisie 10 najczęstszych błędów kompilacji w Javie.
  • Wymyśla dodatkowe zadania: do tematu, który chcesz przećwiczyć.

Ma też słabe strony, które warto znać:

  • Odpowiedzi mogą być błędne. Mimo to brzmią pewnie.
  • Rozwiązania często nie pasują do zajęć. ChatGPT chętnie sięga po narzędzia, których jeszcze nie przerabiałeś.
  • Nie widzi, co dzieje się u ciebie. Kopiujesz kod i błędy tam i z powrotem, aż tracisz orientację.

Typowy przykład. Zadanie: policz liczby parzyste w tablicy. Na zajęciach właśnie przerabiasz pętle w Javie. ChatGPT może odpowiedzieć tak:

long count = Arrays.stream(numbers).filter(n -> n % 2 == 0).count();

To jest poprawne, ale używa lambd i strumieni, czyli materiału z końca kursu Javy. Nauczyciel albo prowadzący oczekuje raczej czegoś takiego:

int count = 0;for (int n : numbers) {    if (n % 2 == 0) {        count++;    }}

Kto odda pierwszą wersję, zwykle nie umie wyjaśnić drugiej. A właśnie ona pojawi się na kolokwium. W takiej sytuacji poproś ChatGPT: „Rozwiąż to tylko pętlą for i wyjaśnij każdą linijkę”. Potem porównaj obie wersje. Przy okazji zobaczysz, że jest kilka poprawnych dróg.

Pięć zasad, żeby uczyć się samemu

  1. Najpierw spróbuj sam. Co najmniej 15 minut, zanim zapytasz. Zapisz, w którym miejscu dokładnie utknąłeś.
  2. Proś o wskazówki, nie o kod. Napisz wprost, że nie chcesz rozwiązania.
  3. Nigdy nie kopiuj, zawsze pisz sam. Nawet jeśli dostaniesz kod: przepisz go linijka po linijce i przy każdej zastanów się, co robi. Jeszcze lepiej: zamknij okno i napisz z pamięci.
  4. Wytłumacz z powrotem. Opisz rozwiązanie własnymi słowami. Jeśli się nie da, jeszcze go nie rozumiesz.
  5. Następnego dnia powtórz bez pomocy. Rozwiąż to samo zadanie jeszcze raz, bez czatu. Dopiero gdy się uda, to naprawdę siedzi w głowie.

Prompty, które dają wskazówki zamiast rozwiązań

Te sformułowania możesz od razu skopiować i dopasować:

Uczę się Javy i ćwiczę teraz pętle for. Oto moje zadanie i mój kod.
Nie podawaj mi rozwiązania, tylko wskazówkę, nad którą linijką
powinienem się zastanowić.
Wyjaśnij mi ten komunikat błędu prostym językiem. Powiedz, co znaczy
i gdzie mam szukać, ale nie poprawiaj mojego kodu.
Zadaj mi trzy krótkie pytania, którymi sprawdzę, czy rozumiem wartości
zwracane przez metody. Odpowiedzi pokaż dopiero, gdy sam odpowiem.
Używaj tylko tego, co jest w kursie dla początkujących do rozdziału
o tablicach: zmienne, if, pętle, tablice. Bez strumieni i bez list.

Ostatni prompt chroni cię przed kodem, który nie pasuje do twojego poziomu. Jeśli właśnie przerabiasz metody i rekurencję, podaj dokładnie to jako granicę.

Jeszcze jedno, jeśli studiujesz i oddajesz zadania na zaliczenie: czy i jak możesz używać AI przy listach zadań, ustalają twoja uczelnia i prowadzący przedmiot. Na co uważać, opisuje wpis AI a plagiat na studiach.

Sprawdź się: czy umiesz to bez pomocy?

Uczciwy test po każdej sesji nauki. Czy bez czatu i bez wzoru potrafisz…

  • otworzyć pusty plik i napisać szkielet z main, jak w artykule o wejściu i wyjściu?
  • rozwiązać zadanie tego samego typu, tylko z innymi liczbami?
  • wyjaśnić, dlaczego twoja pętla wykonuje się dokładnie tyle razy?
  • przewidzieć, co wypisze krótki program, zanim go uruchomisz?

Ostatni punkt to typowe zadanie z kolokwium. Jak ćwiczyć je celowo, pokazuje wpis „Co wypisze program?”. Każde „nie” mówi ci, co powtórzyć jutro.

Co Jario robi inaczej

Jario też ma tutora AI, ale z innym zadaniem. Zna treść zadania, twój kod i wynik testów. Nie musisz niczego kopiować tam i z powrotem. Daje wskazówki małymi krokami i celowo nie pisze za ciebie rozwiązania. Kod piszesz sam, w edytorze obok.

Ponieważ tutor zna wynik testów, może odnieść się do przypadku, który właśnie nie przechodzi, zamiast zgadywać ogólnikami. O tym, czy twój kod jest dobry, nie decyduje czat, tylko testy: po kliknięciu „Sprawdź” widzisz na przykład „Zaliczone testy: 3 z 4”. Zadania mają poziomy „Łatwe”, „Średnie” i „Trudne” i trzymają się materiału danego rozdziału. Z darmowym kontem masz 5 pytań do tutora AI dziennie. To wystarczy, jeśli trzymasz się zasady nr 1. Do ogólnych pytań spoza zadań ChatGPT nadal jest przydatnym źródłem wiedzy.

W skrócie

ChatGPT dobrze wyjaśnia, ale jest kiepskim nauczycielem, jeśli każesz mu pisać kod za siebie. Pytaj o wyjaśnienia i wskazówki, wszystko pisz sam i każde zadanie powtórz raz bez pomocy. Wtedy na kolokwium umiesz to, co ćwiczyłeś.

Powiązane artykuły do nauki

Więcej wpisów