Zastanów się, czy chcesz, aby sztuczna inteligencja nauczyła Cię kodować

Zastanów się, czy chcesz, aby sztuczna inteligencja nauczyła Cię kodować

Węzeł źródłowy: 3087147

Cecha Nauka programowania jest teraz być może łatwiejsza niż kiedykolwiek dzięki sztucznej inteligencji, chociaż narzędzi, które sugerują lub generują kod źródłowy, należy używać mądrze. 

Programowanie wymaga cierpliwości i wytrwałości, szczególnie na początku procesu uczenia się, kiedy nic nie ma większego sensu. Zasady pisania kodu wydają się mylące. Istnieje wiele rodzajów znaków interpunkcyjnych i symboli, których należy używać ostrożnie. Brak dwukropka lub przecinka albo nieprawidłowe wcięcie może prowadzić do błędów, w zależności od używanego języka. Z biegiem czasu, przy wystarczającej praktyce, wskoczy na swoje miejsce.

Jak większość początkujących osób uczących się kodowania online, zacząłem od oglądania tutoriali i rozwiązywania problemów w zestawach ćwiczeń programistycznych. Kiedy utknąłem z problemem, bardzo kuszące było zwrócenie się do ChatGPT, co z łatwością pomogło mi znaleźć właściwe rozwiązanie. Tego typu asystenci są dobrzy w generowaniu prostego kodu, a niektórzy z nich mogą nawet udzielić pełnej odpowiedzi w takiej postaci, w jakiej ją opisujesz.

Zdałem sobie z tego sprawę, zmagając się z implementacją określonej funkcji, i wyłączyłem funkcję autouzupełniania GitHub Copilot w Visual Studio Code, aby powstrzymać się od oszukiwania.

Nie tylko kopiuj i wklejaj

David Malan, profesor informatyki na Uniwersytecie Harvarda, prowadzący popularny kurs wprowadzający do informatyki CS50 (z którego można skorzystać bezpłatnie Online), zgodził się, że sztuczna inteligencja może czasami być zbyt pomocna. 

Aby zniechęcić uczniów do korzystania z narzędzi takich jak ChatGPT firmy OpenAI czy Bard firmy Google do wykonywania zadań, nauczyciele zaproponowali im alternatywę: wirtualną gumową kaczkę. Kaczka CS50 to chat-bot kodujący zasilany przez GPT-4, ale ma barierki zabezpieczające uczniów przed oszukiwanie.

Jak zapewne wiesz, debugowanie gumowej kaczki jest rzeczą w tworzeniu oprogramowania: jeśli utkniesz z jakimś kodem, omówienie problemu z zabawką lub innym nieożywionym przedmiotem może pomóc ci samodzielnie znaleźć rozwiązanie. To całkiem skuteczne.

Debuger kaczy CS50 jest hołdem dla tego: bot został przygotowany tak, aby był przyjazny i pomocny, odpowiada tylko na zapytania związane z kursem i nie zapewnia odpowiedzi na problemy z pracą domową, powiedział Malan Rejestr

„Nasza polityka na początku kursu stanowi, że studentom nie wolno używać oprogramowania innych firm, takiego jak ChatGPT i Copilot; po prostu wydają się być zbyt pomocni, zbyt chętni do bezpośredniego dostarczania uczniom rozwiązań, zamiast kierować ich w ich stronę, jak mógłby to zrobić dobry nauczyciel. Jednak uczniowie mogą i są zachęcani do korzystania z własnego oprogramowania CS50 opartego na sztucznej inteligencji, które zapewnia poręczenia pedagogiczne” – powiedział.

Kaczkę CS50 wprowadzono na rynek w zeszłym roku i opinie były w większości pozytywne. Posiadanie wirtualnego nauczyciela pod ręką oznacza, że ​​uczniowie mogą poprosić o pomoc w dowolnym momencie. Jednak podobnie jak wszystkie modele sztucznej inteligencji może popełniać błędy i nie zawsze jest dokładny. Wstępne testy wykazały, że był w stanie poprawnie odpowiedzieć na około 88 procent pytań związanych z programem nauczania. 

Bot kodujący jest przydatny także dla instruktorów; daje im to więcej czasu na pomoc uczniom w innych obszarach niż prace domowe. W artykule badawczym [PDF] analizując wpływ debuggera kaczego, nauczyciele z Harvardu stwierdzili, że ich eksperyment polegający na zbudowaniu wirtualnego asystenta kodowania AI opłacił się. Wierzą, że „generatywna sztuczna inteligencja [może] wspierać naukę uczniów, a nie tylko ją zakłócać” i szukają sposobów zastosowania tej technologii w innych przedmiotach.

Oszczędność czasu przy mniejszej liczbie googlowania

Jeśli to ma znaczenie, moje wykształcenie akademickie dotyczy fizyki i dziennikarstwa naukowego, a nie informatyki. Zacząłem uczyć się kodowania tuż przed pojawieniem się najnowszej generacji chatbotów. Wcześniej próbowałem zrozumieć koncepcje oprogramowania lub naprawić błędy, podobnie jak wiele osób, czytając posty na blogu lub szukając przykładów podobnego kodu w witrynach takich jak Stack Overflow. AI pozwala mi skrócić ten proces.

Zamiast przeszukiwać mnóstwo informacji w celu znalezienia rozwiązań, które najlepiej pasują do mojego problemu, mogę teraz zwrócić się do modelu o dużym języku, aby uzyskać bezpośrednią pomoc. Uczę się, aby lepiej rozumieć technologie, z których korzystają inni; dzięki tym cyfrowym asystentom szybciej łapię tempo niż przeglądanie wielu artykułów na temat, powiedzmy, plasterków i tablic lub przeglądanie projektów oprogramowania innych osób.

Jednak kod napisany maszynowo nie zawsze jest przydatny, a wręcz może obniżyć jakość bazy kodu. Jeśli skopiowałem i wkleiłem dane wyjściowe asystenta AI do mojego źródła, często wprowadzało to nowe błędy, ponieważ nie pasowało do reszty mojego programu. Próba naprawienia tych błędów może być trudna, szczególnie jeśli nie rozumiesz, co zostało wygenerowane. Jako nowicjusz nie zawsze było jasne, czy błędy wynikały z tego, że kod był po prostu błędny, czy też był używany w niewłaściwym kontekście.

„Myślę, że jeśli ktoś chce nauczyć się kodować [przy użyciu obecnego] zestawu narzędzi AI, powinien podejść do tego z dwoma celami: poświęcić czas na nauczenie się kodowania na tyle, aby wiedzieć, co generuje to narzędzie. [I] przyjmij rolę „recenzenta kodu” i naucz się, jak identyfikować i ulepszać zły kod” – Zed Shaw, programista i autor książki Dowiedz się Python the Hard Way, powiedziała Rejestr

Programiści powinni być w stanie wykryć błędy w kodzie tworzonym maszynowo i nie powinni całkowicie ufać botom. „Fakt, że ChatGPT dostarcza rozwiązania szybciej, opakowane w uspokajające frazy, takie jak «Myślę, że to powinno rozwiązać Twój problem...» sprawia, że ​​wyłączamy krytyczne myślenie i nie kwestionujemy jego rozwiązań tak uważnie, jak powinniśmy” – powiedział Charles Severance, profesor informatyki w School of Information na Uniwersytecie Michigan, który ma wydany bezpłatne kursy kodowania online.

„Zawsze zakładaj, że ChatGPT jest mniej wykwalifikowanym programistą niż ty. Jedynym bezpiecznym sposobem korzystania z narzędzi AI jest pewność, że opracowane przez nie rozwiązanie jest prawidłowe” – dodał. 

Musisz wiedzieć, co robisz

Aby skutecznie korzystać z tych narzędzi, musisz zrozumieć swój problem i jasno go wyjaśnić w monicie. Jakość kodu zwracanego na wyjściu zależy od sposobu, w jaki formułujesz pytania na wejściu, powiedział Inbal Shani, dyrektor ds. produktu w GitHub Rejestr.

Użytkownicy powinni wchodzić w interakcję Drugi pilot GitHub jakby rozmawiali z kolegą – zasugerowała. „Im więcej szczegółów podasz asystentowi, który siedzi obok ciebie, na temat Twoich zamiarów i tego, dokąd zmierzasz, aby rozwiązać problem, który próbujesz rozwiązać, tym lepszą reakcję otrzymasz, ponieważ sztuczna inteligencja uzyska więcej kontekstu. Wie, jak przeprowadzić bardziej szczegółowe wyszukiwanie, aby znaleźć odpowiedni fragment kodu lub polecić odpowiednią infrastrukturę testową” – powiedziała. 

Języki programowania, których używamy, są bardziej dostosowane do języka ludzkiego; narzędzia czatu to tylko kolejny krok w tej ewolucji

Phillip Compeau, adiunkt na Uniwersytecie Carnegie Mellon, który stworzył Rosalind platforma i Programowanie dla miłośników tutorial, dla osób zainteresowanych biologią obliczeniową, zgodził się.

Kiedy uczy uczniów, którzy zaczynają programować, zachęca ich, aby trzymali się z daleka od sztucznej inteligencji. Ale bardziej zaawansowanych uczniów, którzy znają podstawy, uczy ich, jak korzystać z technologii, aby być bardziej produktywnym i wydajnym w swojej pracy.

„Jedną z rzeczy, które pokazuję uczniom, jest to, że najlepszym sposobem na uzyskanie czystej i poprawnej odpowiedzi z narzędzia generującego kod AI jest jasne i prawidłowe określenie, dokładnie, co ma zrobić komputer. Taka jest sama definicja programowania komputera i z biegiem czasu używane przez nas języki programowania coraz bardziej zbliżają się do języka ludzkiego; narzędzia do czatowania to tylko kolejny krok w tej ewolucji” – powiedział Rejestr

Ustalenie, co chcesz, aby program robił, jak powinien działać i gdzie wystąpił błąd, ma kluczowe znaczenie w kodowaniu. Uczniowie mogą rozwijać te podstawowe umiejętności jedynie poprzez konsekwentną praktykę. Jeśli chcesz być kompetentnym programistą, nie możesz pominąć tego procesu, polegając na sztucznej inteligencji. Jeśli jednak użyjesz go mądrze, możesz szybko się doskonalić i zostać dobrym programistą – a może nawet będzie to zabawne. ®

Znak czasu:

Więcej z Rejestr