Kodning och programmeringsfärdigheter i åldern av GenerativeAI: en djupdyk

10 Januari 2024, 09:33 Fullt papper i PDF

Generativ AI, en underdisciplin av artificiell intelligens handlar om applikationer där en dator simulerar människans förmåga att skapa och producera – oavsett om det är mänskligt språk eller mänskliga kreativa uttryck (som teckning, komponera musik, etc.). Det bästa exemplet på en Generativ AI som har gjort vågor nyligen är ChatGPT, en Large-Language Model (LLM) som användare kan interagera med på naturligt språk. Ett område där Generativ AI är särskilt lovande döljer sig i hur vi skriver vår programvarukod. Denna artikel fördjupar sig i de möjligheter som Generative AI skapar för att stödja denna mjukvaruutvecklingsprocess – och dess potential att öppna vägar för att skriva programkod till fler människor än någonsin tidigare. Tillsammans med de möjligheter som öppnar upp, tittar detta dokument också på riskerna med att använda GENAI-stödda verktyg med minskad mänsklig tillsyn, och pekar på potentiella horisonter för att undersöka om vi vill komma till en mer balanserad användning som tar hänsyn till våra grundläggande EU-värden.

Inledning

Generativ AI, en underdisciplin av artificiell intelligens (AI), handlar om applikationer där datorn simulerar, eller försöker efterlikna, människans förmåga att skapa och producera på mänskligt språk och mänskligt kreativt uttryck – som teckning eller komponerande musik (Stokel-Walker & Van Noorden, 2023). Ett exempel på Generativ AI som har gjort vågor nyligen är ChatGPT, en Large-Language Model (LLM) som användare kan interagera med genom att skriva. Resultatet av denna LLM har förvånat många forskare och allmänheten, hur ”riktiga” interaktionerna kan vara (Maslejet al, 2023).

Intresset för denna form av AI har redan ökat i flera decennier, med grundforskning välutvecklad (Reiter & Dale, 1997; Kandhasamy & Xie, 2004). Tillämpningarna var dock fortfarande begränsade, med liten algoritm som bevis på koncept främst inom forskningen – till stor del på grund av bristen på beräkningskraft eller otillräckliga mängder utbildningsdata, som krävs för att få till liv kvalitetsteknik(Maslej m.fl., 2023). Detta har förändrats de senaste åren. Under perioden 2015–2016 skedde rörelser för att samla resurser och bygga systematiska stora dataset och modeller, med samordnade ansträngningar inom industrin som OpenAI (grundad 2015) och HuggingFace (grundad 2016). Sedan slutet av 2022 har mognadsgraden för dessa tekniker genomgått en enorm ökning på grund av anpassningen mellan datorkraft, mogna algoritmer och tillräcklig data.

Ett av de områden där Generative AI är mycket lovande är när det gäller att skriva programvarukod. GENAI är redan anställd av många ingenjörer för att hjälpa dem i deras kodning (Sharma, 2021). Enkel mänsklig text gör det möjligt för dem att skriva komplex kod på några sekunder, vilket potentiellt påskyndar deras kodning och programmering (Brady, 2023). I Generative AI-verktyg kan textinstruktioner (prompts) ges för att instruera AI att skriva kod för att skapa vissa funktioner. Som ett resultat kan användaren av ett sådant verktyg kommunicera i mer specifika naturliga språkmeddelanden, utan att behöva veta detaljerna i kodningsspråket. På ett begränsat sätt och med relevanta uppmaningar skulle Generativ AI – också kunna generera stegen i logiken bakom en applikation och definiera den allmänna strukturen för en algoritm.

Naturligtvis ger detta upp många frågor om hur vi kommer att skriva vår programvara i framtiden, och vad kommer att vara de färdigheter som krävs för detta. Detta nästa avsnitt av denna artikel dyker djupare in i denna fråga.

Programvaruutvecklare för EU:s arbetsmarknad

I många år har det varit brist på kvalificerad arbetskraft inom den digitala industrin. I en studie från 2021 av European Software Skills Alliance identifieras rollen som ”utvecklare” som den mest efterfrågade programvarurollen, och den ständigt föränderliga karaktären hos denna roll är orsaken till denna brist. De viktigaste färdigheterna hos utvecklare är programmering och kodning, två discipliner där jobbinnehållet fortsätter att förändras, vilket utgör ett problem för organisationer och gör det svårt att hålla medarbetarnas färdigheter uppdaterade. Det växande behovet av IKT-experter inom olika sektorer innebär risker för det europeiska digitala decenniets mål att nå 20 miljoner IKT-specialister i Europa fram till 2030.

Kod, kod, kod: terminologi och grundläggande begrepp

En del förklarande terminologi är användbar här. Programvaruutveckling avser datavetenskapsbaserade aktiviteter, dvs. processen att skapa, utforma, distribuera och stödja programvara (IBM, 2023). Utvecklingsfasen i mjukvaruutvecklingen sker när programmeraren börjar definiera och skriva instruktionerna för datorn att följa, på önskat datorspråk.

Vad är programmering? Programmering hänvisar till aktivitetsutvecklare utför för att definiera logiken i datorprogrammet, inklusive de enheter som programmet behöver manipulera och de algoritmer det behöver implementera. Programmeringsförmåga är därmed nära kopplad till logiskt och analytiskt, konceptuellt och abstrakt, samt beräkningstänkande. När utvecklare kodar skriver de instruktionerna för datorn att genomföra vissa åtgärder som datorn behöver utföra. Utvecklare skriver på olika datorspråk, som ger dem olika funktioner beroende på deras struktur eller syfte. Dessutom fortsätter datorspråken att utvecklas, vilket gör det till en komplex uppgift för utvecklare att hålla sig uppdaterade med de senaste stilarna och trenderna. När vi talar om kompetensbrist på arbetsmarknaden kan vi hänvisa både till programmeringsfärdigheter och till kodning.

Stöd till EU:s arbetsmarknad

Eftersom denna kompetensbrist har varit oroande i flera år har beslutsfattare och forskare investerat mycket energi i att utveckla stöd till arbetsmarknadens aktörer för att identifiera och utveckla dessa färdigheter hos sina (potentiella) anställda. Några viktiga initiativ omfattar standardiserade kompetensramar särskilt för den digitala kontexten. Ramen för digital kompetens för medborgarna, DigComp 2.2, (Vuorikari, Kluzer och Punie, 2022) är den viktigaste allmänt accepterade ramen i EU som identifierar och strukturerar de digitala färdigheter som medborgarna behöver för att delta i ett modernt digitalt samhälle. Den europeiska e-kompetensramen (e-CF) är en standardiserad referensram med 41 kompetenser som är relevanta och nödvändiga i ett IT-yrkesmässigt arbete. Ramen identifierar också 30 yrkesprofiler inom IKT som spänner över olika aspekter av den digitala industrins landskap. I EU är det ett flaggskeppsramverk som erbjuder ett gemensamt språk mellan IT-rekryterare och IT-experter.

Det finns också mer allmänna ramar med relevanta profiler. Sektorsspecifika kompetensramar genom kompetenspakten sammanför olika branschaktörer i olika sektorsspecifika allianser för att identifiera och strukturera de färdigheter som behövs för att utveckla sin sektor ytterligare. Till stor del omfattar dessa också komplexa digitala färdigheter eftersom den digitala industrin påverkar alla sektorer. För entreprenörskap omfattar EntreComp ramverket (McCallum, Weicht, McMullan och Price, 2018) kompetenser som överväger effektiv resursanvändning, som också omfattar bedömning och insikt i behoven hos digitala resurser och utveckling av digitala resultat. Det föränderliga tekniska sammanhanget integreras kontinuerligt i dessa ramar, med de senaste versionerna, inklusive färdigheter i att arbeta med AI-teknik. Till exempel, DigComp i sin senaste upplaga, 2.2., innehåller nu också kunskap om AI-relaterade system.

EU-åtgärder för att främja programmerings-/kodningsfärdigheter

Förutom att ge stöd i namngivning, identifiering och utveckling av färdigheter relaterade till mjukvaruutveckling, fokuserar politiska initiativ också på att göra karriärer inom den digitala sektorn mer populära och kända. För att öka intresset för programplanering och kodning finns det flera återkommande EU-åtgärder. EU:s kodvecka främjar gräsrotsinitiativ för att uppmuntra fler medborgare att använda och utveckla sina programmeringsfärdigheter. Samarbete med volontärer omfattar informationskampanjer, workshoppar, konferenser osv. som anordnas i hela Europa, på lokala språk och tillgodoser regionala behov och sammanhang. Under 2021 deltog mer än 4 miljoner människor i över 80 länder från hela världen i initiativet, och merparten av de aktiviteter som äger rum i skolorna (Europeiska kommissionen, 2023).

Europeiska institutet för teknik och innovation (EIT) erbjuder en plattform för branschaktörer att komma samman för att innovera i relevanta branscher i en säker och öppen miljö. EIT Digital fokuserar särskilt på att stödja innovation och entreprenörskap inom den digitala industrin (EIT Digital, 2020). Dessutom fokuserar många EU-finansierade program på att förbättra den europeiska arbetskraftens digitala kompetens för den digitala industrin: titta bara på de massiva investeringarna bakom programmet DIGITAL Europe (7,5 miljarder euro går till den digitala omvandlingen av Europas ekonomi och samhälle). En annan ledtråd är tröskeln på 20 % för digitala investeringar i EU-medlemsstaternas återhämtnings- och resiliensplaner, som har överskridits.

Kommer GENAI att förbättra kompetensbristen på arbetsmarknaden?

Införandet av Generativ AI öppnar upp en värld av möjligheter till programmering och kodning inom ramen för arbetsmarknaden. Å ena sidan skulle GENAI kunna göra mer avancerade färdigheter (som kodning) mer tillgängliga för människor: och 2023 kan visa sig vara vattendelare ögonblick – en som ser AI öka människors kodning färdigheter, snabbt, så att vi kan skapa digitala verktyg på ett mer effektivt och effektivt sätt. Å andra sidan kan GENAI också minska kunskaperna i kodningsfärdigheter, eftersom det minskar djup kunskapsuppbyggnad och expertis om detta. Punkterna nedan undersöker det sammanhang i vilket GENAI kan ha en inverkan på mjukvaruutveckling, och de konsekvenser det har för kompetensutveckling.

Ett visst sammanhang

Innan du undersöker vilka färdigheter som kommer att vara relevanta i detta nya utrymme, är det bra att överväga något sammanhang av vilka aspekter av kodning kan påverkas av Generativ AI.

Kodningens position i programvaruteknikprocessen

Programvaruteknik – liksom andra former av teknik – är en designvetenskap och följer i stort en process med forsknings-, idé-, design-, utvecklings- och testfaser för att gå från konceptuell idé till konkret produkt (Davis, Bersoff & Comer, 1988). Genom att gå igenom denna process, kunskap och know-how förvärvas och genom iteration – går igenom processen flera gånger – problemdefinitionen och kraven kan förfinas, ytterligare bakgrundsforskning kan göras, etc. Även om det, som Despa, 2014 beskriver, kan det finnas olika tillvägagångssätt (inkrementella, vattenfall, spiral, prototyper etc.) till hur dessa faser tar form (t.ex. skillnader i fasernas varaktighet eller förväntade mellanliggande resultat, etc.). Varje designprocess har väsentliga komponenter. Se figur 1 nedan för en illustration av de viktigaste komponenterna i en programvarudesignprocess.

I denna process sker kodning – processen för att skriva egentlig programvarukod – främst i utvecklings- och testfasen. Vid denna tidpunkt i designprocessen har problemet och den potentiella lösningen redan definierats, och designbeslut på hög nivå har fattats. Programvaran produceras sedan i utvecklingsfasen och testas i teststadiet. Jämfört med andra tekniska discipliner är produktionskostnaderna i programvara relativt låga. Även här har vi ”industrialisering” av mjukvaruproduktion, där ansträngningar kontinuerligt görs för att bli ännu snabbare och mer tidseffektiva i utvecklingen, samtidigt som det producerade materialet är av viss kvalitet (Humphrey, 1988). Vissa sätt att göra detta är t.ex. genom effektiv delning av kodblock (t.ex. plattformar av typen GitHubs databas) och på senare tid plattformar med låg kod/no-kod, där återanvändbara byggstenar används som utgångspunkt för att närma sig utformningen på ett mer abstrakt sätt och påskynda hela processen (No-Code.tech, 2023; Adalo, 2023). Detta öppnar i huvudsak upp kodning för människor, som inte är skickliga (eller möjligen har intresse av att vara skickliga) i mekaniken för att skriva kod.

På motsatt sida av denna dimension är ”mjukvaruhantverk”,där den tekniska skickligheten eller hantverket att skapa kod blir ännu en gång viktigt. Närmar sig mjukvaruskapande genom ögonen på en lärling, stimulerar denna rörelse stolthet i skapandet av programvara, värdesätter tradition i programvaruskapande och lägger fokus på det individuella geniet (Software Craftmanship Manifesto, 2009). Du kan även jämföra det med hur vi närmar oss matlagning hemma och matlagning i ett professionellt kök. I våra hem ser vi främst på matlagning som processen för att producera god mat. När matlagning blir en ”hantverk” innebär det disciplin, kvalitet, tidseffektivitet och en fokuserad ansträngning för att nå höjder i kvalitetsprodukter. ”Hantverk” i matlagning innebär att finslipa de produktionsfärdigheter och resurser som finns tillgängliga för att nå denna nivå av excellens (som man skulle finslipa sina matlagningsfärdigheter – genom att använda kvalitetsingredienser, finslipa knivfärdigheter, skapa nya tekniker för att uppnå olika smaker och erfarenheter etc.)

Vi kan ta dessa exakt samma idéer, och extrapolera dem till det hantverk som är involverat i skrivandet och produktionen av kvalitetskod.

Spridning av kodning i kunskapsintensiva arbetstillfällen

Så komplext som det låter, är kodning inte begränsad till utrymmena för professionell programvara eller IKT-industrin. Ett underskattat faktum är att någon form av kodning krävs för många specialiserade professionella tekniker inom kunskapsarbete. Om du till exempel gör någon statistisk analys, eller till och med använder grundläggande Excel-funktioner, måste du redan förstå att skriva kod i någon minimal form åtminstone. I detta sammanhang har kodning blivit som andra kompetenser och litteracies (tänk: mänskligt språk och matematik), där alla behöver ha grundläggande förståelse och produktionsfärdigheter för att delta i samhället (Burke, O’Byrne och Kafai, 2016). Skillnaden ligger i det faktum att vår förståelse av kodning som läskunnighet ännu inte är lika avancerad, eller så inbäddad i vårt skolsystem som dessa andra litteracies (Rea, 2022). Grundskolesystemet är uppbyggt kring dessa litteracies och de är avgörande för att bygga på toppen av de senare åren. Men den digitala omställningen förändrar detta snabbt, vilket gör kodning och beräkningstänkande precis så som behövs från en tidig ålder som andra litteracies.

Tekniskt stöd vs vår allmänna förståelse

Detta skapar en missmatchning: å ena sidan har vi ännu inte förstått komplexiteten i att hantera kodning som en läskunnighet, och vi har inte heller integrerat den helt i våra utbildningssystem (Vee, 2017). Å andra sidan har vi nu mycket sofistikerade verktyg till vårt förfogande, vilket gör det möjligt för oss att skapa, designa och skriva kod. Dessutom är det digitala rummets natur sådan att alla dessa verktyg till största delen är tillgängliga (mot en avgift) för en bred allmänhet.
För att illustrera denna obalans, överväga applikationer av ChatGPT och hur de uppfattas av människor:

När du ber ChatGPT att skriva en text, kommer nästan alla att kunna säga om det är en välskriven text (inte med tanke på innehållet i det för tillfället, men rent formen av texten på naturligt mänskligt språk).

När du ber ChatGPT att slutföra en matematisk beräkning, kommermånga i allmänheten att kunna säga om det var korrekt gjort eller åtminstone om det korrekta tillvägagångssättet för att lösa frågan valdes.

Men… när du ber ChatGPT att skriva en bit kod, kommer inte många i allmänheten att kunna (ännu) säga om det är korrekt.  

Hur GENAI kan lindra kompetensbristen på arbetsmarknaden

Punkten ovan visar ett av de områden där Generative AI kan visa sig vara en game changer. Vi kommer nu att fördjupa oss i de aktuella frågorna om kompetensbristen och titta på potentialen hos GENAI för att lindra dem.

En första fråga gäller de stora skillnaderna i kunskapsnivå när det gäller kodning av färdigheter mellan människor. Olika människor har olika nivåer av kunskaper i skriftlig kod, och det finns ingen allmänt accepterad grundläggande nivå i kodning kompetens. Det finns flera skäl till detta:

  1. Eftersom kodning och programmering inte är placerad som en läskunnighet, är det inte inbäddat i formell utbildning genom hela läroplanen. Detta innebär att det inte finns någon allmän tillgång till kodning och programmeringsmöjligheter, inte heller en allmän förväntan gentemot varje individ att utveckla en grundläggande kompetensnivå.
  2. Utvecklingen av skickligheten beror till stor del på personliga individuella intressen och personlig disciplin. Om du vill utveckla dina färdigheter inom detta område, måste du söka formella och icke-formella möjligheter online och offline genom workshops, bootcamps etc. Eftersom detta är till stor del utanför formell utbildning, kräver det extra ansträngning och tid att investera i denna form av kompetensutveckling.
  3. Bottom-line handlar här: kompetensutveckling i kodning beror på att investera tid och pengar i relevanta möjligheter att utveckla kodning färdigheter. Denna investering kanske inte är möjlig generellt för alla i samhället, eftersom det finns ett behov av infrastruktur (hårdvara och internet), tid (utanför formell utbildningstid) och potentiella extra kostnader för relevant programvara eller licenser.

Liksom i många frågor om digital integration finns det en stor klyfta i samhället mellan de som har och inte har på detta område, med utsatta människor, kvinnor, äldre och personer med låg socioekonomisk bakgrund som har stor effekt (FN, 2023).

Generativ AI för kodning kan till stor del minska tröskeln för människor att investera i att lära sig koda. Eftersom det gör det möjligt att interagera med datorn på naturligt språk, kan vem som helst som kan formulera sina idéer för programvara på mänskligt språk, i teorin skriva koden för att göra denna programvara. Tillgänglighetsfrågorna (i tid och ansträngningar) kvarstår dock: även här finns det en möjlighet att GENAI vidgar klyftan mellan dem som kan och de som inte kan koda.

En andra fråga gäller omedelbarheten av de färdigheter som behövs för personer i arbetslivet. Arbetsmarknaden behöver dessa digitala färdigheter idag och inom en snar framtid. Cedefop förutspår ett behov av nästan 979,600 IKT-tekniker och ytterligare 2,977,600 IKT-personal under perioden 2022–2035 (Cedefop, 2023). Men att bygga fördjupade kunskaper och utveckla dessa färdigheter till högre kompetensnivåer tar tid, vilket också kan vara ett hinder för kodning i första hand. Bootcamps och andra kortsiktiga men intensiva typer av lärande är effektiva men kräver tid och resurser som inte alla nödvändigtvis har (Thayer & Ko, 2017). Dessutom behöver de anställda inte bara uppnå en grundläggande kompetensnivå – de behöver också vara beroende av sig själva för att kontinuerligt förbättra dessa färdigheter.

GENAI har potential att lindra denna fråga i viss utsträckning. Tillgängligheten av tekniken i naturligt språk kan sänka tröskeln för många och ge just-in-time stöd för att hitta vad som behövs, vilket gör kodning och kodgenerering mer effektiv och eventuellt motivera människor att använda den. Tekniken kan stödja själveffektivitet, vilket gör det enklare och snabbare att hitta svar när de sitter fast, och skapa en miljö där eleverna vill kontinuerligt utveckla sina färdigheter i kodning och programmering. Men även här finns det en möjlighet att dessa tekniker kommer att öka klyftan mellan dem som redan kan och de som inte kan. I detta sammanhang fungerar dessutom ett GENAI-baserat stödverktyg på ett effektivt sätt som ett expertsystem ( dvs. den mänskliga frågan, GENAI skapar). Det är viktigt att här överväga vilken nivå av mänsklig tillsyn som är nödvändig.

En tredje fråga handlar om hur kompetensutveckling inom kodning och programmering för närvarande organiseras. I formella sammanhang passar kodningsfärdigheter in i workshops eller bootcamps – potentiellt kring specifika kodningsspråk eller mer generiska problembaserade aktiviteter. Icke-formella sammanhang beror på att individer skapar sina egna inlärningsvägar genom olika onlineresurser, blandat med alternativa offline-upplevelser.

GENAI-verktyg kan öka dessa aktiviteter med låg tröskel just-in-time-stöd för att hitta vad som behövs och därmed göra kodgenereringen mer effektiv och effektiv. Men användningen av dessa verktyg är fortfarande beroende av den mänskliga bestämmande korrektheten av svaren och acceptansen av programvarans resultat. Risken här är att GENAI-verktyg kan bli ett go-to-system, där den mänskliga eleven bara använder den för att uppnå ett omedelbart mål, utan att utveckla fördjupad kunskap om kodning.

Konsekvenser för kompetensutveckling i kodning och programmering i en ålder av GENAI

Det är tydligt att GENAI erbjuder många möjligheter att sänka tröskeln till många i allmänheten för att inte bara börja designa programvara, utan att effektivt använda programvara i dagliga sammanhang. Faktum är att för många elever kan den låga tröskeln också vara en motiverande faktor för att engagera sig i kodning i första hand. Men för att säkerställa att människor fortfarande utvecklar fördjupad kunskap om kodning – och inte bara ser GENAI som ett verktyg som kan ta över det röriga jobbet med kodning – måste vissa försiktighetsåtgärder vidtas.

För det första är det nödvändigt att närma sig kodning som en läs- och skrivkunnighet som kan integreras i hela det formella utbildningssystemet. Även om det redan finns insatser för att införliva kodning i lektionsplaner och läroplaner, krävs det en mer systematisk förändring (Rea, 2022, Vee, 2017). De viktigaste ramarna för digitala färdigheter som anges ovan ger större inblick i komplexiteten i dessa färdigheter och erbjuder sätt att utveckla dem på ett mer nyanserat sätt.

För det andra måste människor också vara medvetna om gränserna för AI – vad den kan och inte kan göra, och ännu mer, vad den bör och inte bör göra. Till sin natur tar AI-tekniken över en del beslutsfattande aktiviteter från människor. Även om denna kreativa många positiva möjligheter (till exempel att kunna hantera mycket mer data än en människa) medför det också allvarliga risker, som människor måste vara medvetna om när de använder dessa system. På politisk nivå är detta den väg som betonas. Den senaste versionen av DigComp innehåller kunskap om AI-system som kompetens för varje medborgare. EU:s AI-lag placerar skyddsräcken i denna miljö och klargör vad som är låga, höga och oacceptabla risker i arbetet med AI-verktyg.

För det tredje, för att koda specifikt, är det lämpligt att utforska några av de bästa metoderna och riktlinjerna. GENAI kommer utan tvekan att ha en enorm inverkan på kodningsmetoderna. I teorin sänker detta tröskeln och öppnar upp en möjlighet för fler människor att lära sig kodning – och särskilt de som kan ha förlorat motivationen på grund av de tekniska detaljerna och mekaniken kring att skriva kod. För att kunna använda dessa GENAI-verktyg på ett effektivt sätt måste vi först fastställa lämpliga riktlinjer och överenskommelser om hur och när dessa verktyg kan användas.

Vid all användning av GENAI för kodning är det tydligt att en dator kommer att skriva kod som folk kommer att använda. Men hur kan vi se till att vi kan lita på denna kod? I detta scenario finns det ingen absolut mänsklig tillsyn längre. Vilka kvalitetskontroll- och kvalitetsprocesser har införts för att säkerställa att GENAI-koden förblir tillförlitlig? Behövs nya testförfaranden i detta nya sammanhang, och hur skulle de se ut? Det är lika bra att öppna upp debatten om vad förtroende innebär och vad som är markörer för att indikera denna trovärdighet hos AI. En möjlighet är att använda nya kvalitetsmärkningar eller specificera användningen av AI i etiska koder såsom inom journalistiksektorn där användningen av GENAI-skrivverktyg ökar(Raad van Journalistiek, 2023).

Slutligen är det viktigt att fortsätta att erkänna och värdesätta hantverk i kodning och programmering av programvara. För många skapare är kodning språket i deras hantverk som ger dem intellektuella utmaningar och kognitiv tillfredsställelse när de uppnår sina mönster, men deras prestationer är till stor del dolda. Hur gör du dessa mer synliga och erkänner deras prestationer? I dessa fall bör vi inte begränsa vår vision till det utilitaristiska värdet av kodning, utan uppskatta skickligheten och hantverket i den också. Dessutom är det genom engagemang i att skriva kod som människor utvecklar fördjupade kunskaper om kodning, vilket ger dem grunden för att förbättra språket i kodning och skapa nya och förbättrade språk för kodning. Med andra ord, om vi vill fortsätta att göra programvarukodning bättre, behöver vi tillräckligt med människor som skriver kod själva. En ny bedömning av den mänskliga skickligheten här är viktigt.

Framtida vägar

Generativ AI erbjuder många möjligheter inom programvarukodning och programmering, vilket kan göra det lättare för fler människor att engagera sig i kodning och skapa sina egna applikationer. Detta är en enorm potential för demokratisering av programvaruskapande, det vill säga att öppna den för dem som kanske inte har varit motiverade att lära sig eller se det som en möjlighet för sig själva. GENAI kan också göra processen att skriva kod mer tids- och ansträngningseffektiv. En nackdel är dock att förlita sig för mycket på automatiserad utveckling av koder utan tillräcklig mänsklig tillsyn kan innebära förlust av kvalitet, och att missa möjligheter att förbättra kodning praxis.

Med tanke på framtiden kan man se några allmänna vägar för prospektering.

Passande programvara kommer från mänsklig insikt, som anpassar upplevda behov, tekniska krav, med teknisk design, tillämpning och eventuell användning. Programvara behöver fortfarande arbeta i en komplex mänsklig miljö, och människor är mest kapabla att hantera denna komplexitet. Det är dock viktigt att vi hittar en balans mellan automatiserade kodningsmöjligheter med GENAI och mänskligt skrivande av kod eller andra former av tillsyn, som kommer att säkerställa tillräcklig mänsklig insikt i denna process och göra det möjligt att förbättra den effektivt i framtiden. Kvalitetssäkringsprocesser i mjukvaruutveckling blir redan mer produktiva, med en övergång till ”Shift Left”, dvs engagera sig med kvalitetssäkring tidigare i mjukvaruutvecklingsprocessen och fortsätta detta under hela processen. Med andra ord skulle många kvalitetsgarantier kunna förutses innan en effektiv kodskrivning uppnås. GENAI-stöd för att skriva kod är sedan inbäddat i en bredare kvalitativ utvecklingsprocess, där dess styrkor används optimalt.


Nyckelord

Generativ AI, ChatGPT, kompetensbrist, kodning, programmering, mjukvaruutveckling

Nedladdning

Ladda ner hela papperet ”Coding and programming skills in the age of GenerativeAI” och en bibliografi över dess referenser här och nedan.


Om författaren

Dr. Kamakshi Rajagopal är en tvärvetenskaplig forskare och frilanskonsult inom pedagogisk design och teknik, med omfattande erfarenhet av nätverksbaserat lärande och sociala inlärningsformat, med stöd av innovativ teknik. Hon har en Masters in Linguistics (2003) och Artificial Intelligence (2004) från KU Leuven (BE). Hon avslutade sin doktorandforskning vid Open Universiteit (NL) 2013, och undersökte personliga inlärningsnätverk och deras värde för kontinuerlig professionell utveckling. Hennes nuvarande forskning handlar om att studera komplexiteten i inlärningsmiljöer och mer specifikt om hur lärare och elever kan stödjas i hanteringen av denna komplexitet. Rajagopal har utvecklat flera (nationellt finansierade och europeiska) samarbetsprojekt inom grund-, gymnasie- och högre utbildning med partners från den offentliga sektorn, industrin och det civila samhället. Några exempel på hennes projekt handlar om lärarnätverkens roll i pedagogisk innovation, avhandlingscirklar inom högre utbildning, multimodal mätning i samverkande hybridutbildningsutrymmen och integrering av virtuell mobilitet vid högre utbildningsanstalter. Sedan 2023 har hon arbetat med Learning and Development inom IT & Business Consulting.

INFORMATION
Geografiskt område Europeiska unionen
Ämne Mjukvara, Utveckling av mobila applikationer, Webbutveckling
Svårighetsgrad Grundläggande, Medelsvår, Avancerad, Digital Expert
Typ av initiativ EU:s institutionella initiativ