Tenk selv om du vil at AI skal lære deg hvordan du koder

Tenk selv om du vil at AI skal lære deg hvordan du koder

Kilde node: 3087147

Trekk Å lære å programmere er kanskje nå enklere enn noen gang med AI, selv om verktøyene som foreslår eller genererer kildekode for deg må brukes med omhu. 

Programmering krever tålmodighet og utholdenhet, spesielt i starten av læringsprosessen når ingenting gir mye mening. Reglene for å skrive kode virker forvirrende. Det er alle slags skilletegn og symboler som må brukes forsiktig. Manglende kolon eller komma, eller rot til innrykk kan føre til feil, avhengig av språket som brukes. Over tid, med nok trening, klikker den på plass.

Som de fleste nybegynnere som lærte å kode på nettet, begynte jeg med å se opplæringsprogrammer og løse problemer i sett med programmeringsøvelser. Når jeg ble sittende fast på et problem, var det veldig fristende å henvende seg til ChatGPT, som lett ville hjelpe meg med å hoppe til riktig løsning. Denne typen assistenter er flinke til å generere enkel kode, og noen av dem kan til og med gi deg et fullstendig svar akkurat slik du beskriver det.

Jeg innså dette da jeg kjempet med implementeringen av en bestemt funksjon, og slo av GitHub Copilots autofullføringsfunksjon i Visual Studio Code for å stoppe meg selv fra å jukse.

Ikke bare kopier og lim inn

David Malan, en professor i informatikk ved Harvard University som underviser i CS50, et populært introduksjonskurs i informatikk (som kan tas gratis på nett), var enig i at AI kan være litt for nyttig noen ganger. 

For å fraråde elevene å bruke verktøy som OpenAIs ChatGPT eller Googles Bard for å fullføre oppgavene sine, tilbød lærerne dem et alternativ: en virtuell gummiand. CS50 duck er en kodende chat-bot drevet av GPT-4, men har rekkverk på plass for å hindre studenter fra å juks.

Gummi duck debugging, som du kanskje er klar over, er en ting i programvareutvikling: hvis du sitter fast på en eller annen kode, kan det å snakke om problemet med et leketøy eller et annet livløst objekt hjelpe deg med å finne ut løsningen helt selv. Det er ganske effektivt.

CS50 duck debugger er en hyllest til det: boten har blitt klargjort for å være vennlig og støttende, den svarer bare på spørsmål som er relatert til kurset, og gir ikke svar på lekseproblemer, fortalte Malan Registeret

«Vår policy ved kursstart er at studenter ikke kan bruke tredjepartsprogramvare som ChatGPT og Copilot; de har rett og slett en tendens til å være for hjelpsomme, alt for villige til å gi elevene løsninger direkte i stedet for å veilede dem mot dem, slik en god lærer kan. Men studenter får lov og oppmuntres til å bruke CS50s egen AI-baserte programvare, som har de pedagogiske rekkverkene på plass, sa han.

CS50-anden ble introdusert i fjor, og tilbakemeldingene har stort sett vært positive. Å ha en virtuell veileder for hånden betyr at studentene kan be om hjelp når som helst de vil. Men som alle AI-modeller kan den gjøre feil og er ikke alltid nøyaktig. De første testene viste at den var i stand til å svare på omtrent 88 prosent av spørsmålene knyttet til læreplanen riktig. 

Koderoboten er også nyttig for instruktører; det gir dem mer tid til å hjelpe elever på andre områder utover lekser. I en forskningsartikkel [PDF] ved å analysere andefeilsøkerens innvirkning, sa lærere ved Harvard at eksperimentet deres med å bygge en virtuell AI-kodingsassistent har lønnet seg. De mener «generativ kunstig intelligens [kan] styrke elevenes læring, ikke bare forstyrre den», og ser på hvordan teknologien kan brukes i andre fag.

Spar tid med mindre google

For hva det er verdt, er min akademiske bakgrunn innen fysikk og vitenskapsjournalistikk, og ikke informatikk. Jeg begynte å lære å kode rett før den siste generasjonen chat-bots tok av. Tidligere ville jeg prøve å forstå programvarekonsepter eller fikse feil ved, som mange mennesker, å lese blogginnlegg eller søke etter eksempler på lignende kode på nettsteder som Stack Overflow. AI lar meg snarveie denne prosessen.

I stedet for å sile gjennom masse informasjon for å finne løsninger som passer best til mitt problem, kan jeg nå henvende meg til en stor språkmodell for direkte hjelp. Jeg lærer slik at jeg bedre kan forstå teknologiene som andre bruker; disse digitale assistentene får meg raskere opp i fart enn å studere flere artikler om for eksempel skiver versus arrays, eller bla gjennom andres programvareprosjekter.

Maskinskrevet kode er imidlertid ikke alltid nyttig, og kan senk kvaliteten av en kodebase. Hvis jeg kopierte og limte inn en AI-assistents utdata i kilden min, ville den ofte introdusere nye feil fordi den ikke passet med resten av programmet mitt. Å prøve å fikse disse feilene kan være vanskelig, spesielt hvis du ikke forstår hva som har blitt generert. Som nybegynner var det ikke alltid klart om feilene var fordi koden rett og slett var feil eller om den ble brukt i feil kontekst.

"Jeg tror at hvis noen ønsket å lære å kode [ved å bruke den nåværende] avlingen av AI-verktøy, burde de nærme seg det med to mål: Ta deg tid til å lære å kode nok til å vite hva verktøyet genererer. [Og] ta rollen som 'kodeanmelder' og studere hvordan du identifiserer og forbedrer dårlig kode,» Zed Shaw, en programvareutvikler og forfatter av Lær Python den harde veien, Fortalte Registeret

Programmerere bør kunne oppdage feil i maskinlaget kode og bør ikke stole helt på robotene. "Det faktum at ChatGPT gir løsninger raskere pakket inn i betryggende setninger som "Jeg tror dette burde løse problemet ditt ..." gjør det slik at vi slår av vår kritiske tenkning, og vi stiller ikke spørsmål ved løsningene så nøye som vi burde, sa Charles Severance, en professor i informatikk ved University of Michigan's School of Information, som har utgitt gratis kodekurs på nett.

"Anta alltid at ChatGPT er en mindre dyktig programmerer enn du er. Den eneste sikre måten å bruke AI-verktøy på er når du er sikker på at løsningen den produserer er riktig, la han til. 

Du må vite hva du gjør

For å bruke disse verktøyene effektivt, må du forstå problemet ditt og forklare det tydelig i spørsmålet. Kvaliteten på koden som returneres i utdataene avhenger av måten du setter inn spørsmålene dine på i inndataene, fortalte Inbal Shani, produktsjef hos GitHub, Registeret.

Brukere bør samhandle med GitHub Copilot som om de snakket med en kollega, foreslo hun. "Jo flere detaljer du gir den assistenten som sitter ved siden av deg om hva intensjonen din er, hvor du går for problemet du prøver å løse, jo bedre respons vil du få fordi AI får mer kontekst. Den vet hvordan den skal gjøre et mer detaljert søk for å finne den rette kodebiten eller anbefale den riktige testinfrastrukturen for deg,» sa hun. 

Programmeringsspråkene vi bruker har blitt mer på linje med menneskelig språk; chat-verktøy er bare neste steg i denne utviklingen

Phillip Compeau, en assisterende lærer ved Carnegie Mellon University, som opprettet Rosalind plattform og Programmering for elskere veiledning, for folk som er interessert i beregningsbiologi, enig.

Når han underviser elever som begynner å kode, oppfordrer han dem til å holde seg unna AI. Men for mer avanserte studenter som kan det grunnleggende, lærer han dem hvordan de kan bruke teknologien for å være mer produktive og effektive i arbeidet.

"En av tingene jeg viser elevene er at den beste måten å få et rent, riktig svar fra et AI-verktøy som genererer kode, er hvis du er i stand til å tydelig og korrekt spesifisere nøyaktig hva datamaskinen må gjøre. Det er selve definisjonen av å programmere en datamaskin, og over tid har programmeringsspråkene vi bruker blitt mer på linje med menneskelig språk; chat-verktøy er bare neste steg i denne utviklingen, sa han Registeret

Å finne ut hva du vil at programmet skal gjøre, hvordan det skal fungere, og hvor det har gått galt, er avgjørende for koding. Elever kan bare bygge disse kjerneferdighetene over tid med konsekvent praksis. Du kan ikke hoppe over denne prosessen ved å stole på AI hvis du ønsker å være en kompetent programvareutvikler. Men hvis du bruker det klokt, kan du forbedre deg raskt og bli en god programmerer – og kanskje det til og med blir morsomt. ®

Tidstempel:

Mer fra Registeret