Hur går det till att lära sig datavetenskap?
Projektet "Lärande, läranderesurser och lärandemiljöer inom datavetenskap"
Vad har projektet handlat om?
På senare år har det kommit många rapporter, från olika länder,
om att datavetenskap tycks vara svårt att lära sig. Exempelvis har
studenter svårt att klara kurser i datorprogrammering. Går det att
göra något för att förbättra situationen? Ett första steg är att
försöka förstå hur studenterna själva upplever de datavetenskapliga
studierna. En sådan förståelse kan sedan tas till utgångspunkt för
överväganden om hur undervisningen skulle kunna förändras.
Det är mot denna bakgrund vi har valt att undersöka hur
universitetsstudenter i datavetenskap uppfattar lärandemiljön och
förstår ämnet. Med lärandemiljön menar vi universitetsmiljön och de
resurser som studenterna kan finna där för att lära sig om
ämnet. Sådana resurser kan vara exempelvis läroböcker, föreläsningar,
samarbete med andra studenter, WWW-dokument, olika former av
datorstöd, övningsuppgifter och laborationer. En del av projektet har
varit att få en inblick i vad studenterna uppfattar som användbara
resurser för lärandet. Vi har också velat förstå på vilka sätt olika
resurser används. Slutligen har vi undersökt hur studenterna uppfattar
själva ämnesinnehållet.
Det senare, hur studenterna uppfattar ämnesinnehållet, utgör
resultatet av deras lärande. Särskilt spännande har det varit att
studera om detta utfall beror på hur studenterna uppfattar
lärandemiljön och på hur de använder olika resurser för att lära sig.
Datavetenskap är ett brett ämnesområde. De datavetenskapliga
ämnen som vi har koncentrerat oss på är dels grundläggande
datorprogrammering, dels datakommunikation på avancerad nivå.
I undersökningarna av programmeringsämnet har vi inriktat oss på
studenter i traditionellt upplagda kurser i objektorienterad
programmering, det numera vanligaste sättet att programmera datorer. I
ämnet datakommunikation har vår forskning gällt studenter i en
projektkurs, där studenterna fick arbeta i grupper om sex personer.
Hur har vi gått tillväga?
Vi har samlat data framförallt genom att intervjua studenter. I viss
utsträckning har vi också använt oss av videoinspelningar. För att
kunna dra slutsatser har vi analyserat dessa data i ljuset av
projektets frågeställningar. Den grundläggande formen av analys har
gått ut på att beskriva hur studenterna uppfattar eller upplever olika
fenomen i lärandesituationen, såsom centrala begrepp i ämnesinnehållet
och olika resurser i lärandemiljön. Resultaten av analysen presenteras
i form av beskrivningar av de olika sätt som studenterna uppfattar
dessa fenomen på. Detta sätt att vetenskapligt studera lärande kallas
fenomenografi.
Efter att ha formulerat dessa beskrivningar gick vi vidare och
gjorde ytterligare analyser med beskrivningarna som utgångspunkt. En
typ av analys innebar att vi undersökte hur variation i presentationen
av ämnesinnehållet kan bidra till att studenterna kan uppnå en djup
förståelse. En annan typ av analys innebar att vi ställde studenternas
upplevelser av olika läranderesurser i relation till begrepp från en
teori om de sociala och kulturella villkoren för lärande inom ramen
för organiserad utbildningsverksamhet.
Vilka blev slutsatserna?
Programmering. Beträffande programmeringsämnet har vi funnit olika
typer av uppfattningar hos studenterna om några centrala begrepp i
objektorienterad programmering. Alla dessa uppfattningar är riktiga,
men några innebär en djupare eller rikare förståelse än de andra. Den
allra mest elementära uppfattningen innebär att studenterna bara har
uppmärksammat programmeringsspråket. Därnäst kommer studenter som
uttrycker uppfattningar med innebörd att de även har uppmärksammat att
olika program får datorn att göra olika saker. Slutligen finns de
studenter som också uppmärksammat att datorprogrammen konstruerats för
att hantera olika uppgifter: sköta bokföring, boka hotellrum, eller
beräkna väderprognoser, för att ta några exempel.
Genom att undersöka vad studenternas uppmärksamhet inriktats på när de
arbetat med att lära sig programmering, har vi åstadkommit ett
underlag för att diskutera hur man skulle kunna få studenterna att
uppmärksamma ytterligare aspekter, så att de får en djupare
förståelse. För en lärare ligger det exempelvis nära till hands att ta
för givet att studenterna uppmärksammar att olika program får datorn
att göra olika saker. Men våra resultat visar att så inte behöver vara
fallet, trots att studenterna i vår undersökning sett många olika
exempel på program under kursens gång. En slutsats blir att exemplen i
sig inte räcker. Det gäller att ge studenterna tillfälle att se olika
sådana exempel, som får att datorn göra olika saker, och att göra
detta på ett systematiskt vis, så att studenterna blir uppmärksamma på
just det faktum att det händer olika saker när olika program
används. Detta kan åstadkommas på olika sätt.
Poängen med våra resultat är att de visar vad studenterna har svårt
att uppmärksamma. Ur lärarsynpunkt blir detta en signal om vad som
kräver extra omsorg och inte får tas för givet.
Vi har också undersökt vad studenterna uppfattar att det innebär
att lära sig programmera. Därvid framkom ytterligare nyanser i
uppfattningarna. Även i detta fall fann vi att vissa studenter
huvudsakligen uppmärksammade programmeringsspråket. Andra hade även
blivit uppmärksamma på att olika program får datorn att göra olika
saker, och ytterligare några studenter hade fått upp ögonen för att
program används för att hantera uppgifter i olika sammanhang. Men nu
fann vi även exempel på studenter som dessutom hade uppmärksammat att
programmering innebär att lösa problem. Som en konsekvens av detta
uttryckte några studenter också att de genom att lära sig programmera
tillägnade sig en färdighet som de skulle ha nytta av även i andra
sammanhang, som inte behövde ha med datorer att göra.
Vi undersökte även studenternas användning av resurser vid
lärandet av programmering. Vi har här bl a fokuserat på olika
inriktningar och motiv som studenterna visade vid val av resurser. De
preliminära resultaten av analysen visar på att vissa motiv, som
traditionellt har klassats som ytinriktade, dvs förknippade med ytligt
lärande, ändå verkar kunna ge en djupinriktning. Dessa motiv är
karriärmotiv och sociala motiv. Studenterna kan använda resurser för
att lära sig på djupet, eftersom de inser att de kommer att ha nytta
av kunskaperna i senare studier eller kommande arbetsliv. Upplevelsen
av att det är roligt att umgås med studiekamraterna, t ex när man
samarbetar om en programmeringsuppgift, har också visat sig kunna ge
en djupinriktning, trots att sociala motiv traditionellt förknippats
med en ytinriktning. Båda dessa resultat ger implikationer för
undervisningen. Att sätta programmeringen i ett sammanhang vad gäller
studenternas utbildning och kommande arbete, och att uppmuntra
arbetsformer där olika typer av samarbete förekommer är mycket viktigt
för motivationen.
Sammanfattningsvis kan säjas att några resurser verkar bidra till
djupinriktning bättre än andra. Där kan nämnas läraren, datorn samt
andra studenter och kamrater. Studenternas berättelser pekar på att
dessa resurser understödjer ett aktivt lärande och främjar djup
förståelse. Däremot beskriver studenterna att de ofta använder lärobok
och anteckningar ytligt, för att slå upp detaljer eller för att skriva
av utan eftertanke. Bilden av studenternas resursanvändning är dock
mycket blandad och de individuella variationerna är stora.
En av våra delstudier har handlat om hur studenter klarar att lösa
realistiska programmeringsproblem. Studenter gavs i uppgift slutföra
ett nästan färdigt programutvecklingsprojekt. Arbetet dokumenterades
på videofilm och efteråt intervjuades studenterna. Några av
frågeställningarna var på vilket sätt studenterna löste uppgiften och
hur studenterna uppfattade vissa centrala begrepp inom
objektorientering, begrepp som hade betydelse för funktionen och
uppbyggnaden hos den programvara som skulle färdigställas. I
programmeringsspråket Java finns exempelvis interface, ett mångbottnat
och viktigt begrepp som används på ett avgörande sätt i den
programvara som studenterna skulle arbeta med. Resultaten visar att
studenternas förståelse av detta begrepp kan delas in i fyra skilda
kategorier, där interface kunde uppfattas som
(1) en text att kopiera
och utgå ifrån när man ska programmera, (2) något som anger vilka
ramar som gäller för programmet som ska skrivas, (3) ett sätt att
hantera olika typer av data, eller (4) någonting som låter sinsemellan
främmande objekt kommunicera med varandra när programmet körs.
Det fanns samband mellan å ena sidan förmågan att slutföra
programutvecklingsprojektet och å andra sidan de olika typer av
begreppsförståelse som studenterna gav uttryck för. Vår forskning
visar att det är viktigt att studenterna får en rik och varierande
begreppsförståelse för att kunna använda ett begrepp på rätt sätt i
ett givet sammanhang.
Datakommunikation. Ett tredje delprojekt gällde en kurs som
gavs i projektform och där varje projektgrupp inbegrep tre svenska och
tre amerikanska studenter. Projektarbetet bedrevs med olika former av
datorstött samarbete. Vi undersökte hur dessa studenter uppfattade ett
begrepp som är väsentligt i samband med datakommunikation och hur
deras uppfattning om detta begrepp hängde samman med hur studenterna
upplevde sin läromiljö.
Begreppet som stod i fokus, nätverksprotokoll, var
viktigt i studenternas projekt. Det innebär att vi kan utgå ifrån att
det diskuterades bland studenterna. Vår forskning visar att det finns
olika sätt att förstå nätverksprotokoll. Studenterna har beskrivit
termen som (1) ett sätt att kommunicera mellan två datorer, (2) en
förbindelse (ungefär som en telefonförbindelse) över ett nätverk, (3)
en uppsättning regler som beskriver datakommunikation och (4) som en
standard för hur datorer kommunicerar. Samtliga dessa fyra sätt är
riktiga, men har olika tillämpningar. Till exempel är det värdefullt
att se ett nätverksprotokoll som ett sätt att kommunicera mellan två
datorer när man programmerar, medan att se protokollet som en standard
fyller en funktion när man utvecklar nya protokoll.
Vi har också
studerat hur studenterna uppfattar sin läromiljö, och där belyst
aspekter som hur beslut tas i en grupp, vilken roll de veckovisa
mötena med lärarna fyller i undervisningen och hur studenterna
uppfattar att få betyg på denna kurs. För att sätta studenternas
upplevelser av läromiljön i ett vidare sammanhang har även andra
frågor analyserats, däribland frågan om vilka mål studenterna strävar
mot. Här har tre olika mål identifierats: akademiska resultat, lära
sig arbeta i projekt och social kompetens. Dessa mål kan i sin tur
uppfattas på flera sätt. Till exempel kan en student arbeta mot
akademiska resultat i form av betyg, medan en annan student strävar
efter att lära sig någonting nytt.
Vi frågade också studenterna hur
de gick tillväga när de studerade datavetenskap i den aktuella
projektkursen. Medan vissa lärde sig enstaka orelaterade begrepp,
sökte andra att lära sig genom att studera färdiga program och
ytterligare några strävade efter att skapa helheter. Vi har funnit
sammanlagt sju sätt att gå tillväga för att lära sig datavetenskap,
där vissa är mer eftersträvansvärda än andra, eftersom de ger bättre
möjligheter att förstå datavetenskapliga begrepp på olika sätt.
Generella slutsatser.
Delprojekten beskriver tillsammans viktiga
aspekter av hur studenter kan uppleva universitetsutbildning i
datavetenskap: vad de lär sig, hur
de uppfattar lärandemiljön och
utnyttjar dess resurser för att försöka lära sig, samt mot
vilka mål
studenterna strävar.
Alla dessa aspekter av lärandet är
sammanflätade. Genom att påvisa konkreta, ämnesspecifika förhållanden
har vårt projekt bidragit till att tydliggöra hur denna sammanflätning
kan yttra sig i ämnet datavetenskap. Sammantaget ger projektresultaten
underlag för lärare att förstå hur studenter uppfattar de
datavetenskapliga studierna och ämnesinnehållet. Därmed har projektet
skapat förutsättningar för att finna vägar till förnyelse av
datavetenskaplig utbildning.