Pensa tu stesso se vuoi che l'intelligenza artificiale ti insegni a programmare

Pensa tu stesso se vuoi che l'intelligenza artificiale ti insegni a programmare

Nodo di origine: 3087147

caratteristica Imparare a programmare è forse ora più facile che mai con l'intelligenza artificiale, anche se gli strumenti che suggeriscono o generano codice sorgente devono essere usati con saggezza. 

La programmazione richiede pazienza e tenacia, soprattutto all'inizio del processo di apprendimento, quando nulla ha molto senso. Le regole per scrivere il codice sembrano confuse. Ci sono tutti i tipi di segni di punteggiatura e simboli che devono essere usati con attenzione. Mancare i due punti o la virgola oppure sbagliare il rientro può portare a errori, a seconda della lingua utilizzata. Col tempo, con sufficiente pratica, scatta in posizione.

Come la maggior parte dei principianti che imparano a programmare online, ho iniziato guardando tutorial e risolvendo problemi in serie di esercizi di programmazione. Quando rimanevo bloccato su un problema, ero molto tentato di rivolgermi a ChatGPT, che mi avrebbe aiutato facilmente a trovare la soluzione giusta. Questi tipi di assistenti sono bravi a generare codice semplice e alcuni di loro possono persino darti una risposta completa proprio mentre la descrivi.

Me ne sono reso conto mentre lottavo con l'implementazione di una particolare funzione e ho disattivato la funzionalità di completamento automatico di GitHub Copilot in Visual Studio Code per impedirmi di imbrogliare.

Non limitarti a copiare e incollare

David Malan, professore di informatica all'Università di Harvard che insegna CS50, un popolare corso introduttivo all'informatica (che può essere frequentato gratuitamente online), ha convenuto che l'intelligenza artificiale a volte può essere un po' troppo utile. 

Per dissuadere gli studenti dall'utilizzare strumenti come ChatGPT di OpenAI o Bard di Google per completare i loro compiti, gli insegnanti hanno offerto loro un'alternativa: una papera di gomma virtuale. Il duck CS50 è un chatbot di codifica basato su GPT-4 ma dotato di guardrail per impedire agli studenti di frode.

Il debug della papera di gomma, come forse saprai, è una cosa nello sviluppo di software: se sei bloccato su qualche codice, parlare del problema con qualche giocattolo o altro oggetto inanimato può aiutarti a trovare la soluzione da solo. È abbastanza efficace.

Il duck debugger CS50 è un omaggio a questo: il bot è stato preparato per essere amichevole e di supporto, risponde solo alle domande relative al corso e non fornisce risposte ai problemi dei compiti, ha detto Malan Il registro

“La nostra politica all'inizio del corso prevede che gli studenti non possano utilizzare software di terze parti come ChatGPT e Copilot; tendono semplicemente ad essere troppo utili, fin troppo disposti a fornire agli studenti soluzioni definitive piuttosto che guidarli verso di loro, come potrebbe fare un buon insegnante. Ma gli studenti sono autorizzati e incoraggiati a utilizzare il software basato sull’intelligenza artificiale del CS50, che dispone di tali barriere pedagogiche”, ha affermato.

La papera CS50 è stata introdotta l'anno scorso e il feedback è stato per lo più positivo. Avere un tutor virtuale a portata di mano significa che gli studenti possono chiedere aiuto in qualsiasi momento lo desiderino. Ma come tutti i modelli di intelligenza artificiale, può commettere errori e non è sempre accurato. I test iniziali hanno dimostrato che era in grado di rispondere correttamente a circa l'88% delle domande relative al curriculum. 

Il bot di codifica è utile anche per gli istruttori; dà loro più tempo per aiutare gli studenti in altre aree oltre ai compiti. In un documento di ricerca [PDF] analizzando l'impatto del duck debugger, gli insegnanti di Harvard hanno affermato che il loro esperimento di creazione di un assistente di codifica virtuale basato sull'intelligenza artificiale ha dato i suoi frutti. Credono che “l’intelligenza artificiale generativa possa rafforzare l’apprendimento degli studenti, non semplicemente interromperlo” e stanno esaminando i modi in cui la tecnologia può essere applicata in altre materie.

Risparmiare tempo con meno ricerche su Google

Per quello che vale, il mio background accademico è nel campo della fisica e del giornalismo scientifico, e non dell'informatica. Ho iniziato a imparare a programmare poco prima che decollasse l'ultima generazione di chat bot. In precedenza provavo a comprendere i concetti del software o a correggere i bug, come molte persone, leggendo post di blog o cercando esempi di codice simile su siti come Stack Overflow. L’intelligenza artificiale mi consente di abbreviare questo processo.

Invece di vagliare molte informazioni per trovare le soluzioni che meglio si adattano al mio problema, ora posso rivolgermi a un ampio modello linguistico per ottenere un aiuto diretto. Sto imparando per poter comprendere meglio le tecnologie utilizzate dagli altri; questi assistenti digitali mi mettono al corrente più velocemente che leggere attentamente più articoli su, ad esempio, fette rispetto a array o sfogliare progetti software di altre persone.

Il codice scritto dalla macchina, tuttavia, non è sempre utile e può esserlo abbassare la qualità di una base di codice. Se copiassi e incollassi l'output di un assistente AI nel mio sorgente, spesso introdurrei nuovi errori perché non si adattava al resto del mio programma. Cercare di correggere questi errori può essere complicato, soprattutto se non capisci cosa è stato generato. Da principiante, non era sempre chiaro se gli errori fossero dovuti al fatto che il codice era semplicemente sbagliato o se veniva utilizzato nel contesto sbagliato.

“Penso che se qualcuno volesse imparare a programmare [utilizzando l’attuale] raccolta di strumenti di intelligenza artificiale, dovrebbe avvicinarsi con due obiettivi: prendersi il tempo per imparare a programmare abbastanza da sapere cosa sta generando lo strumento. [E] adottare il ruolo di "revisore del codice" e studiare come identificare e migliorare il codice dannoso", Zed Shaw, sviluppatore di software e autore di Impara Python nel modo più duro, Ha detto Il registro

I programmatori dovrebbero essere in grado di individuare gli errori nel codice creato dalla macchina e non dovrebbero fidarsi completamente dei bot. "Il fatto che ChatGPT offra soluzioni più rapide racchiuse in frasi rassicuranti come 'Penso che questo dovrebbe risolvere il tuo problema...'" fa sì che spegniamo il nostro pensiero critico e non mettiamo in discussione le sue soluzioni con la dovuta attenzione come dovremmo", ha affermato Charles Severance, professore di informatica presso la School of Information dell'Università del Michigan, che ha rilasciato corsi di programmazione gratuiti online.

“Presumi sempre che ChatGPT sia un programmatore meno esperto di te. L’unico modo sicuro per utilizzare gli strumenti di intelligenza artificiale è quando si è sicuri che la soluzione che produce sia corretta”, ha aggiunto. 

Devi sapere cosa stai facendo

Per utilizzare questi strumenti in modo efficace, è necessario comprendere il problema e spiegarlo chiaramente nel prompt. La qualità del codice restituito nell'output dipende dal modo in cui inquadrate le domande nell'input, ha detto Inbal Shani, chief product officer di GitHub Il registro.

Gli utenti dovrebbero interagire con Copilota GitHub come se stessero parlando con un collega, suggerì. “Più dettagli fornisci all'assistente seduto accanto a te su quali siano le tue intenzioni, dove stai andando per il problema che stai cercando di risolvere, migliore sarà la risposta che otterrai perché l'intelligenza artificiale ottiene più contesto. Sa come eseguire una ricerca più dettagliata per trovare la parte di codice giusta o consigliare la giusta infrastruttura di test per te", ha affermato. 

I linguaggi di programmazione che utilizziamo sono diventati più allineati al linguaggio umano; gli strumenti di chat sono solo il passo successivo in questa evoluzione

Phillip Compeau, assistente professore alla Carnegie Mellon University, che ha creato il Rosalind piattaforma e Programmazione per gli amanti tutorial, per persone interessate alla biologia computazionale, concordato.

Quando insegna agli studenti che stanno iniziando a programmare, li incoraggia a stare lontani dall'intelligenza artificiale. Ma per gli studenti più avanzati che conoscono le basi, insegna loro come utilizzare la tecnologia per essere più produttivi ed efficienti nel loro lavoro.

“Una delle cose che mostro agli studenti è che il modo migliore per ottenere una risposta chiara e corretta da uno strumento di intelligenza artificiale che genera codice è essere in grado di specificare in modo chiaro e corretto esattamente cosa deve fare il computer. Questa è la definizione stessa di programmazione di un computer e, nel tempo, i linguaggi di programmazione che utilizziamo sono diventati più allineati al linguaggio umano; gli strumenti di chat sono solo il passo successivo in questa evoluzione”, ha detto Il registro

Capire cosa vuoi che faccia il tuo programma, come dovrebbe funzionare e dove è andato storto, è fondamentale nella codifica. Gli studenti possono sviluppare queste competenze fondamentali solo nel tempo con una pratica costante. Non puoi saltare questo processo affidandoti all'intelligenza artificiale se vuoi essere uno sviluppatore di software competente. Ma se lo usi saggiamente, puoi migliorare rapidamente e diventare un buon programmatore – e forse sarà anche divertente. ®

Timestamp:

Di più da Il registro