Målsætninger for et nyt introforløb i programmering

Som del af min nye ansættelse på DIKU skal jeg stå for at afholde et nyt to ugers kickstart kursus i programmering for de nye datalogistuderende, der starter efter sommerferien. Kurset placeres lige inden studiestart, og bliver et gratis frivilligt tilvalg til de nye studerende der har størst behov.

Nedenfor vil jeg beskrive nogle af målsætningerne med det nye kursus. I opfølgende blogposts vil jeg komme ind på den didaktik jeg har tænkt mig at følge, og de konkrete projekter vi kommer til at arbejde med.

Erfaringsspænd blandt de studerende

Da det nye hold studerende startede på datalogi sidste sommer, startede 47% af dem uden nogen programmeringserfaring og yderligere 15% havde kun programmeret relativt små programmer (<50 linjer). I kontrast dertil starter der også studerende, som har lavet både større og mindre softwareprojekter som hobby i årene op til, og som derfor er væsentlig på forkant når studiet starter. De er både på forkant rent fagligt, men også i at udvikle en passion for faget.

Formålet med kurset er blandt andet at udglatte spændet i erfaring, og udvikle lidt mere intrinsisk motivation hos de studerende, der måske har valgt datalogistudiet uden det store forhåndskendskab til hvad det vil sige at være datalog. Kickstart kurset vil forhåbentligvis gøre det semester lange introducerende programmeringskursus mere spiseligt for alle, og i sidste ende mindske frafaldet fra studiet.

Hvis vi har succes med at øge den intrinsiske motivation hos de studerende, håber jeg at det også giver dem viljen til at kæmpe lidt ekstra med de dele af datalogiuddannelsen som måske virker svære eller uden for deres interesser. Ikke alle kurser kan være lige interessante for alle, og det kan være hårdt arbejde at kæmpe sig igennem noget man ikke brænder for. Jeg håber at vi ved at give de studerende nogle succesoplevelser tidligt, vil kunne give dem blod nok på tanden til at de vil tage kampen op.

Paraderne ned

Et af de vigtigste ting når man skal begynde at programmere er at turde begå fejl. Kickstart kurset i datalogi kommer derfor i høj grad til at handle om at få paraderne ned hos de nye studerende, så de tør kaste sig ud i programmering og datalogi generelt i de første kurser. Når man programmerer er det en del af processen at man begår fejl, fejlsøger, retter fejl, om og om igen. Man skal derfor lære ikke at være bange for at begå fejl, og at det er en naturlig del af processen. Man skal lære at det ikke er farligt at begå en fejl, men man rent faktisk kan lære noget af det. Samtidig skal man huske at fejre hver gang man har regnet en fejl ud og dermed er blevet klogere, så det bliver en positiv vane.

Derfor vil jeg også have nogle dogmer, som for eksempel at de studerende selv skal skrive al den kode de bruger, i stedet for at jeg udleverer programskeletter, og som et andet eksempel at vi ikke har afleveringsopgaver, men stiller opgaver hvor eleven selv kan vurdere om den er løst. Det er vigtigt at de selv skriver al koden, for at de føler at de har selv har lavet de færdige programmer, og for at undgå “impostor syndromet” og det er vigtigt at vi ikke har fokus på bedømmelse af deres præstation, for ikke at skræmme dem fra at turde kaste sig ud i programmeringen.

Jeg vil også forklare dem lidt om den didaktik jeg følger, så de selv kan replikere den måde at lære på, når de går i gang med at lære på egen hånd, eller står på bar bund midt i et andet kursus.

Bredt perspektiv på datalogi

Kurset skal samtidig give de studerende et bredt perspektiv på datalogi, sådan at de studerende der ikke er optaget af fx algoritmik/computer systemer, også kan se at det er en uddannelse der er noget for dem, selv om første semester har fokus i den retning. De skal vide det er vigtigt at kunne disse grundlæggende ting, også selvom det måske ikke er det der optager dem, men de skal samtidig vide at de kan trække deres uddannelse i helt andre retninger efterfølgende.

I kurset kommer vi derfor til at arbejde med projekter der kan kobles til virkelige problemstillinger, hvor de studerende kan se et formål og vi kommer til at arbejde med teknikker fra makerbevægelsen, der viser dem at det ikke bare kan blive til computerspil og apps, men også fysiske produkter. Temaet for projekterne bliver Citizen Science, eller mere generelt hvordan man kan bruge programmering til at forstå verden, både ved at skrive små simulationer, men også via dataindsamling fx via forurenings/indeklima sensorer der kobles til microcontrollere.

Foto: Martin Dybdal - Sensorer til måling af partikelforurening og indeklima.

Det var lidt om formålet med kurset, jeg skriver om mine planer for indholdet på et senere tidspunkt, når jeg er nået lidt længere med det.