Comprendere l'uso di GitHub Copilot da parte degli studenti del primo anno
Uno studio esplora come i principianti interagiscono con GitHub Copilot nei compiti di programmazione.
― 7 leggere min
Indice
Recenti avanzamenti nel deep learning hanno portato alla creazione di strumenti in grado di generare codice informatico a partire da istruzioni scritte. Questi strumenti stanno diventando popolari nelle scuole, soprattutto tra i principianti che imparano a programmare. Permettono agli Studenti di ricevere suggerimenti per risolvere rapidamente Compiti di Programmazione. Tuttavia, si sa poco su come i nuovi studenti interagiscono con questi strumenti. Questo studio esamina come gli studenti di primo anno all'università usano GitHub Copilot, uno strumento di suggerimento di codice, durante i loro compiti di programmazione.
Contesto
Nei corsi introduttivi di programmazione, gli studenti spesso affrontano sfide quando scrivono codice. Possono avere difficoltà a creare piani efficaci o a sviluppare le loro idee. Questo può portare a frustrazione, che può ostacolare il loro Apprendimento. Risorse tradizionali come libri di testo e tutorial non sempre forniscono il supporto necessario. I sistemi di tutoraggio intelligente sono stati progettati per offrire feedback individuale, ma di solito si concentrano su compiti specifici e non si adattano a una gamma più ampia di necessità di programmazione. I sistemi di suggerimento automatici possono generare suggerimenti utili, ma spesso si basano su dati di studenti passati per funzionare efficacemente.
Recentemente, sono emersi grandi modelli linguistici (LLM) come GitHub Copilot. Questi modelli possono dare suggerimenti di codice in tempo reale in base a ciò che l'utente sta scrivendo. Copilot è facile da usare e disponibile per gli studenti a costo zero, rendendolo accessibile ai principianti. Attorno a questi sviluppi ci sono domande su come gli studenti interagiscono con questi strumenti AI, in particolare le loro percezioni sui vantaggi e le preoccupazioni legate ad essi.
Metodologia
Questo studio si è concentrato sull'osservazione di studenti universitari che utilizzano Copilot in un corso introduttivo di programmazione. Volevamo capire le loro esperienze e raccogliere le loro opinioni sullo strumento. Lo studio ha coinvolto 19 studenti, tutti nuovi alla programmazione, e si è svolto durante un compito di programmazione regolare. Ogni partecipante è stato monitorato mentre lavorava sui propri compiti, e sono state condotte interviste dopo per discutere le loro esperienze.
Partecipanti
I partecipanti a questo studio erano studenti universitari di età compresa tra 18 e 22 anni, tutti iscritti a un corso di programmazione per principianti che utilizza C++. Non avevano esperienza precedente con GitHub Copilot prima dello studio. Ogni studente è stato osservato per 30 minuti mentre completava un compito di programmazione progettato per mettere alla prova le loro abilità a livello introduttivo.
Osservazioni e Interviste
Durante le sessioni di codifica, abbiamo notato diversi punti importanti su come gli studenti reagivano all'uso di Copilot. Dopo aver completato i compiti, gli studenti hanno partecipato a interviste, discutendo i loro pensieri sullo strumento e il suo impatto sul loro apprendimento.
Impressioni Iniziali
La maggior parte degli studenti ha sentito che Copilot li ha aiutati a scrivere codice più velocemente. Allo stesso tempo, molti hanno espresso preoccupazioni riguardo alla comprensione del codice generato dallo strumento. Erano preoccupati che affidarsi a Copilot potesse ostacolare il loro apprendimento e renderli dipendenti da esso. Questa dualità di percezione-vedere sia vantaggi che svantaggi-era comune tra gli utenti.
Modelli di Interazione
Abbiamo osservato due modelli principali di interazione durante le sessioni.
Shepherding: In questo modello, gli studenti guidavano Copilot digitando codice che corrispondeva ai suoi suggerimenti. Invece di costruire codice da zero, si affidavano ai suggerimenti di Copilot per arrivare a una soluzione. Questo comportamento suggerisce che gli studenti potrebbero concentrarsi di più sullo strumento piuttosto che sviluppare le proprie abilità di codifica.
Drifting: Questo modello descriveva gli studenti che accettavano suggerimenti da Copilot ma poi li modificavano o li eliminavano mentre cercavano di orientarsi tra le proposte. Passavano da un suggerimento all'altro, senza chiarezza e direzione nel loro processo di codifica. Questo portava a confusione e frustrazione, poiché spesso trovavano difficile decifrare i suggerimenti.
Risposte Cognitive ed Emotive
Gli studenti hanno vissuto una gamma di emozioni mentre usavano Copilot. Molti hanno espresso sentimenti di confusione e frustrazione quando non riuscivano a capire il codice generato da Copilot. Alcuni studenti hanno trovato lo strumento invadente, poiché il flusso costante di suggerimenti disturbava i loro processi di pensiero. Altri hanno riportato emozioni positive, come sorpresa ed eccitazione, quando Copilot produceva suggerimenti utili.
Il carico cognitivo era alto per molti partecipanti, poiché trascorrevano molto tempo ad analizzare suggerimenti lunghi da Copilot. Questo indicava che lo strumento doveva bilanciare tra fornire indicazioni e sommergere gli studenti con informazioni.
Vantaggi dell'Uso di Copilot
Nonostante le sfide, gli studenti hanno riconosciuto diversi vantaggi nell'utilizzare Copilot nei loro compiti di programmazione.
Velocità di Completamento: Molti studenti credevano che Copilot migliorasse la loro capacità di completare rapidamente i compiti. Apprezzavano avere uno strumento che potesse aiutarli a superare i blocchi tipici nella codifica, portando a un percorso più rapido verso il completamento.
Opportunità di Apprendimento: Alcuni partecipanti hanno menzionato che Copilot li ha aiutati ad apprendere nuovi concetti e tecniche di codifica. Esaminando i suggerimenti, potevano capire diversi modi per affrontare un problema, incluse strategie che non avevano considerato prima.
Riduzione degli Errori: I suggerimenti di Copilot tendono a essere sintatticamente corretti. Questo permetteva agli studenti di evitare errori di sintassi comuni e concentrarsi di più sulla logica dei loro programmi.
Preoccupazioni Riguardo a Copilot
Accanto ai vantaggi, gli studenti hanno anche espresso preoccupazioni riguardo all'uso di Copilot.
Eccessiva Dipendenza: Una preoccupazione principale era che utilizzare Copilot troppo frequentemente potesse ostacolare il loro apprendimento. Gli studenti riconoscevano che se diventavano troppo dipendenti dallo strumento, potrebbero perdere l'opportunità di sviluppare abilità di codifica essenziali.
Incomprensione del Codice Generato: Molti partecipanti erano preoccupati di non comprendere appieno il codice generato automaticamente. Temono di accettare suggerimenti senza sapere come funzionavano, portando a una mancanza di comprensione in futuri scenari di programmazione.
Sviluppo delle Competenze di Risoluzione dei Problemi: Gli studenti hanno espresso preoccupazione che affidarsi a Copilot potesse influenzare la loro capacità di pensare criticamente e risolvere problemi in modo indipendente. Temono che questa dipendenza potesse creare sfide a lungo termine nel loro percorso di apprendimento.
Considerazioni Etiche
Man mano che Copilot e strumenti simili continuano a guadagnare popolarità, stanno emergendo questioni etiche. Una preoccupazione principale è l'integrità accademica. La facilità di generare codice con Copilot potrebbe incoraggiare gli studenti a presentare lavori non propri o a utilizzare suggerimenti senza avere una solida comprensione dei concetti sottostanti.
Un'altra questione etica riguarda il potenziale di bias nei dati utilizzati per addestrare questi modelli. Se Copilot riflette qualche bias presente nei dati di addestramento, potrebbe portare a suggerimenti distorti o inappropriati che potrebbero non servire tutti gli utenti in modo equo.
Conclusione
Il nostro studio sottolinea la complessa relazione che i programmatori novizi hanno con strumenti come GitHub Copilot. Anche se questi strumenti offrono un potenziale significativo per assistere gli studenti nella codifica, ci sono considerazioni altrettanto importanti riguardo a come impattano lo sviluppo di abilità essenziali.
Implicazioni per l'Educazione
Con le istituzioni educative che adottano sempre più strumenti alimentati dall'AI nei loro curricula, è fondamentale garantire che gli studenti vengano insegnati a utilizzare questi strumenti in modo efficace. Gli istruttori dovranno fornire orientamenti su come integrare Copilot nel processo di apprendimento, affrontando nel contempo le implicazioni etiche e i potenziali problemi legati alla dipendenza.
Direzioni Future
La ricerca continua sarà essenziale per comprendere meglio come gli studenti interagiscono con strumenti guidati dall'AI nel loro apprendimento. Gli studi futuri dovrebbero esplorare l'uso a lungo termine di Copilot e tecnologie simili, monitorando come gli studenti si adattano e se le loro abilità migliorano o diminuiscono. Esaminando queste interazioni, gli educatori possono adattare meglio il supporto e le risorse per massimizzare i benefici di strumenti come Copilot mentre minimizzano i potenziali svantaggi.
In conclusione, l'introduzione di strumenti come GitHub Copilot rappresenta sia un'opportunità entusiasmante che una sfida nell'educazione alla programmazione. Essendo consapevoli delle esperienze e delle percezioni degli studenti, possiamo lavorare verso un approccio equilibrato che abbraccia l'innovazione mentre si promuovono abilità fondamentali nella codifica e nella risoluzione dei problemi.
Titolo: "It's Weird That it Knows What I Want": Usability and Interactions with Copilot for Novice Programmers
Estratto: Recent developments in deep learning have resulted in code-generation models that produce source code from natural language and code-based prompts with high accuracy. This is likely to have profound effects in the classroom, where novices learning to code can now use free tools to automatically suggest solutions to programming exercises and assignments. However, little is currently known about how novices interact with these tools in practice. We present the first study that observes students at the introductory level using one such code auto-generating tool, Github Copilot, on a typical introductory programming (CS1) assignment. Through observations and interviews we explore student perceptions of the benefits and pitfalls of this technology for learning, present new observed interaction patterns, and discuss cognitive and metacognitive difficulties faced by students. We consider design implications of these findings, specifically in terms of how tools like Copilot can better support and scaffold the novice programming experience.
Autori: James Prather, Brent N. Reeves, Paul Denny, Brett A. Becker, Juho Leinonen, Andrew Luxton-Reilly, Garrett Powell, James Finnie-Ansley, Eddie Antonio Santos
Ultimo aggiornamento: 2023-04-05 00:00:00
Lingua: English
URL di origine: https://arxiv.org/abs/2304.02491
Fonte PDF: https://arxiv.org/pdf/2304.02491
Licenza: https://creativecommons.org/licenses/by/4.0/
Modifiche: Questa sintesi è stata creata con l'assistenza di AI e potrebbe presentare delle imprecisioni. Per informazioni accurate, consultare i documenti originali collegati qui.
Si ringrazia arxiv per l'utilizzo della sua interoperabilità ad accesso aperto.
Link di riferimento
- https://www.acm.org/publications/taps/whitelist-of-latex-packages
- https://orcid.org/0000-0002-4279-6284
- https://dl.acm.org/ccs.cfm
- https://github.com/features/copilot
- https://openai.com/blog/openai-codex/
- https://www.deepmind.com/
- https://alphacode.deepmind.com/
- https://www.deepmind.com/blog/competitive-programming-with-alphacode
- https://github.com/deepmind/code
- https://aws.amazon.com/codewhisperer/
- https://pages.awscloud.com/codewhisperer-sign-up-form.html
- https://www.midjourney.com
- https://stability.ai/blog/stable-diffusion-announcement
- https://openai.com/dall-e-2/
- https://code4me.me/
- https://github.com/moyix/fauxpilot
- https://www.tabnine.com/
- https://arxiv.org/abs/2208.09727
- https://en.wikipedia.org/wiki/Ship
- https://githubcopilotlitigation.com/
- https://galactica.org/explore/
- https://openai.com/blog/chatgpt/
- https://github.blog/2022-11-01-preview-referencing-public-code-in-github-copilot/