Zephyrnet-logo

Bedenk zelf of je wilt dat AI je leert coderen

Datum:

Kenmerk Leren programmeren is nu misschien gemakkelijker dan ooit met AI, hoewel de tools die broncode voor u voorstellen of genereren verstandig moeten worden gebruikt. 

Programmeren vereist geduld en doorzettingsvermogen, vooral aan het begin van het leerproces, wanneer niets veel zin heeft. De regels voor het schrijven van code lijken verwarrend. Er zijn allerlei soorten leestekens en symbolen die zorgvuldig moeten worden gebruikt. Het missen van een dubbele punt of komma, of het verpesten van de inspringing, kan tot fouten leiden, afhankelijk van de gebruikte taal. Na verloop van tijd, met voldoende oefening, klikt het op zijn plaats.

Zoals de meeste beginners die online leren coderen, begon ik met het bekijken van tutorials en het oplossen van problemen in reeksen programmeeroefeningen. Toen ik vastliep op een probleem, was het erg verleidelijk om naar ChatGPT te gaan, wat me gemakkelijk naar de juiste oplossing zou helpen. Dit soort assistenten zijn goed in het genereren van eenvoudige code, en sommige kunnen u zelfs een volledig antwoord geven, precies zoals u het beschrijft.

Ik besefte dit toen ik worstelde met de implementatie van een bepaalde functie, en schakelde de autocomplete-functie van GitHub Copilot in Visual Studio Code uit om te voorkomen dat ik vals speelde.

Kopieer en plak niet alleen

David Malan, hoogleraar computerwetenschappen aan de Harvard University, geeft CS50, een populaire inleidende cursus computerwetenschappen (die gratis kan worden gevolgd online.), was het ermee eens dat AI soms een beetje te behulpzaam kan zijn. 

Om leerlingen ervan te weerhouden tools als OpenAI's ChatGPT of Google's Bard te gebruiken om hun opdrachten te voltooien, boden docenten hen een alternatief aan: een virtuele badeend. De CS50 duck is een coderende chatbot die wordt aangedreven door GPT-4, maar heeft vangrails om te voorkomen dat studenten bedrog.

Debuggen van badeendjes, zoals u wellicht weet, is een ding bij softwareontwikkeling: als je vastzit aan bepaalde code, kan het praten over het probleem met speelgoed of een ander levenloos voorwerp je helpen om zelf de oplossing te vinden. Het is behoorlijk effectief.

De CS50 duck debugger is daar een eerbetoon aan: de bot is klaar om vriendelijk en ondersteunend te zijn, hij reageert alleen op vragen die verband houden met de cursus en geeft geen antwoorden op huiswerkproblemen, vertelde Malan. Het register

“Ons beleid aan het begin van de cursus is dat studenten geen software van derden zoals ChatGPT en Copilot mogen gebruiken; ze zijn simpelweg vaak te behulpzaam en maar al te bereid om leerlingen rechtstreeks oplossingen te bieden in plaats van hen daarheen te leiden, zoals een goede leraar zou kunnen doen. Maar studenten mogen en worden aangemoedigd om de eigen AI-gebaseerde software van CS50 te gebruiken, die over deze pedagogische vangrails beschikt”, zei hij.

De CS50-eend werd vorig jaar geïntroduceerd en de feedback was overwegend positief. Door een virtuele docent bij de hand te hebben, kunnen studenten op elk gewenst moment om hulp vragen. Maar net als alle AI-modellen kan het fouten maken en is het niet altijd accuraat. Uit de eerste tests bleek dat het ongeveer 88 procent van de vragen met betrekking tot het leerplan correct kon beantwoorden. 

De codeerbot is ook handig voor instructeurs; het geeft hen meer tijd om studenten op andere gebieden dan huiswerk te helpen. In een onderzoekspaper [PDF] Bij het analyseren van de impact van de Duck Debugger zeiden docenten van Harvard dat hun experiment met het bouwen van een virtuele AI-codeerassistent zijn vruchten heeft afgeworpen. Ze zijn van mening dat ‘generatieve AI het leerproces van studenten kan versterken, en niet alleen maar kan verstoren’, en onderzoeken manieren waarop de technologie in andere vakken kan worden toegepast.

Bespaar tijd door minder te Googlen

Voor wat het waard is: mijn academische achtergrond ligt in de natuurkunde en de wetenschapsjournalistiek, en niet in de informatica. Ik begon te leren coderen net voordat de nieuwste generatie chatbots van de grond kwam. Voorheen probeerde ik softwareconcepten te begrijpen of bugs op te lossen door, zoals veel mensen, blogposts te lezen of te zoeken naar voorbeelden van vergelijkbare code op sites als Stack Overflow. Met AI kan ik dit proces verkorten.

In plaats van veel informatie te doorzoeken om oplossingen te vinden die het beste bij mijn probleem passen, kan ik me nu tot een groot taalmodel wenden voor directe hulp. Ik leer zodat ik de technologieën die anderen gebruiken beter kan begrijpen; Deze digitale assistenten zorgen ervoor dat ik sneller op de hoogte ben dan dat ik meerdere artikelen over bijvoorbeeld slice versus arrays moet doornemen, of door de softwareprojecten van anderen moet bladeren.

Machinaal geschreven code is echter niet altijd nuttig, en dat kan ook wel verlaag de kwaliteit van een codebasis. Als ik de uitvoer van een AI-assistent in mijn bron kopieerde en plakte, introduceerde dit vaak nieuwe fouten omdat het niet bij de rest van mijn programma paste. Het kan lastig zijn om deze fouten te herstellen, vooral als u niet begrijpt wat er is gegenereerd. Als beginneling was het niet altijd duidelijk of de fouten te wijten waren aan het feit dat de code gewoon verkeerd was, of dat deze in de verkeerde context werd gebruikt.

“Ik denk dat als iemand wil leren coderen [met behulp van de huidige] reeks AI-tools, hij dit met twee doelen moet benaderen: neem de tijd om voldoende te leren coderen om te weten wat de tool genereert. [En] neem de rol aan van ‘code reviewer’ en bestudeer hoe je slechte code kunt identificeren en verbeteren”, zegt Zed Shaw, een softwareontwikkelaar en auteur van Leer Python op de moeilijke manier, Vertelde Het register

Programmeurs moeten fouten in machinaal gemaakte code kunnen opmerken en mogen de bots niet volledig vertrouwen. Ze moeten zeker uitkijken naar duidelijke auteursrechtelijk beschermde code die in de uitvoer van de modellen terechtkomt.

“Het feit dat ChatGPT sneller oplossingen biedt, verpakt in geruststellende zinnen als ‘Ik denk dat dit je probleem zou moeten oplossen…’ zorgt ervoor dat we ons kritisch denken uitschakelen en dat we de oplossingen niet zo zorgvuldig in twijfel trekken als zou moeten,” zei Charles Severance, hoogleraar computerwetenschappen aan de School of Information van de Universiteit van Michigan, die dat wel heeft gedaan uitgebracht gratis codeercursussen online.

“Ga er altijd van uit dat ChatGPT een minder vaardige programmeur is dan jij. De enige veilige manier om AI-tools te gebruiken is als je er zeker van bent dat de oplossing die het oplevert de juiste is”, voegde hij eraan toe. 

Je moet weten wat je doet

Om deze hulpmiddelen effectief te kunnen gebruiken, moet u uw probleem begrijpen en dit duidelijk uitleggen in uw prompt. De kwaliteit van de code die in de output wordt geretourneerd, hangt af van de manier waarop je je vragen in de input framet, vertelt Inbal Shani, Chief Product Officer bij GitHub. Het register.

Gebruikers moeten ermee communiceren GitHub-copiloot alsof ze met een collega praatten, opperde ze. “Hoe meer details je de assistent die naast je zit geeft over wat je bedoeling is, waar je heen gaat met het probleem dat je probeert op te lossen, hoe beter je antwoord krijgt omdat de AI meer context krijgt. Het weet hoe je een meer gedetailleerde zoekopdracht moet uitvoeren om het juiste stukje code te vinden of de juiste testinfrastructuur voor je aan te bevelen”, zegt ze. 

De programmeertalen die we gebruiken zijn meer afgestemd op de menselijke taal; chattools zijn slechts de volgende stap in deze evolutie

Phillip Compeau, een assistent-professor aan de Carnegie Mellon University, die de Rosalind platform Programmeren voor geliefden tutorial, voor mensen die geïnteresseerd zijn in computationele biologie, was het daarmee eens.

Wanneer hij studenten lesgeeft die beginnen met coderen, moedigt hij hen aan om weg te blijven van AI. Maar voor meer gevorderde studenten die de basis kennen, leert hij hen hoe ze de technologie kunnen gebruiken om productiever en efficiënter te zijn in hun werk.

“Een van de dingen die ik studenten laat zien is dat de beste manier om een ​​duidelijk, correct antwoord te krijgen van een AI-tool die code genereert, is als je duidelijk en correct kunt specificeren wat de computer precies moet doen. Dat is precies de definitie van het programmeren van een computer, en in de loop van de tijd zijn de programmeertalen die we gebruiken meer afgestemd op de menselijke taal; chattools zijn slechts de volgende stap in deze evolutie”, vertelde hij Het register

Uitzoeken wat je wilt dat je programma doet, hoe het zou moeten werken en waar het fout is gegaan, is cruciaal bij het coderen. Leerlingen kunnen deze kernvaardigheden alleen in de loop van de tijd opbouwen door consequent te oefenen. Als u een competente softwareontwikkelaar wilt zijn, kunt u dit proces niet overslaan door op AI te vertrouwen. Maar als je het verstandig gebruikt, kun je snel vooruitgang boeken en een goede programmeur worden – en misschien is het zelfs wel leuk. ®

spot_img

Laatste intelligentie

spot_img