Ohjelmoinnin opetusta yhteiskuntatieteilij√∂ille Helsingiss√§ – jotain ajatelmia

English version available at Science & Industry, Matti’s personal blog.

Ensimm√§inen Helsingin yliopiston Programming for social science¬†kurssi pidettiin¬†syksyll√§ 2014. Silloin ei ollut kovinkaan monia kursseja, joista katsoa mallia¬†suunnittelun avuksi. 2014 j√§lkeen olen muuttanut kurssia ja yritt√§nyt mielest√§ni parantaa sit√§. Esimerkiksi kurssin harjoitusteht√§vi√§ on muokattu¬†yhteiskuntatieteit√§ k√§sitteleviksi (kev√§t 2015,¬†syksy 2016). Nykyisin ohjelmointi, yhteiskuntatiede ja ¬īdata science’ on paljon trendikk√§√§mp√§√§ kuin vuonna 2014. Esimerkiksi SAGE Publishing on¬†SAGE Campuselleen¬†luonut kurssin ohjelmoinnista videomateriaaleineen ja kertomuksineen (selkeyden vuoksi: p√§√§sin k√§ytt√§m√§√§n materiaalia ilmaiseksi arviointitarkoituksissa).

Koska ohjelmointi ja ‘data science’ ovat t√§ll√§ hetkel√§ trendikk√§it√§, ajattelin, ett√§ nyt voisi olla hyv√§ hetki v√§h√§n kelata¬†omaa opetustani ja sen kehittymist√§. Uskon, ett√§ on olemassa (v√§hint√§√§n) kaksi erilaista tapaa opettaa ohjelmointia: tietojenk√§sittelytieteellinen ja soveltava. Tietojenk√§sittelytieteellinen l√§hestymistapa n√§kyy parhaiten eri yliopistojen “Johdatus ohjelmointiin”-kursseilla, miss√§ koko tematiikkaa l√§hestytet√§√§n tietojenk√§sittelytieteen perinteest√§. Soveltava tyyli sen sijaan yritt√§√§ integroida ohjelmoinnin¬†jonkin oppiaineen soveltavaan kontekstiin. Esimerkiksi¬†Guzdialin (2003)¬†kurssi keskittyi ohjelmoinnin opettamiseen media-alalle ja keskittyikin esimerkiksi kuvien automaattiseen k√§sittellyn. Samalla tavalla¬†Sullivanin (2013)¬†datavetoinen kurssi painotti laskennallista aineiston k√§sittely√§.

Ensimmäinen, syksyn 2014, kurssi oli ehdottomasti tietojenkäsittylytieteellinen. Teimme kaikki perinteiset tietojenkäsittelytieteen tehtävät, mukaanlukien Fizz-Buzz ja alkulukutestaus. Ovat samoja tehtäviä, millä minut on aikanaan opetettu. Jo silloin käytössä oli artikkeleita, jotka yrittivät vähän taustoittaa siitä, miten laskennallisia menetelmiä voidaan soveltaa yhteiskuntatieteissää. Kuitenkin, kurssin lopulla kuulin palautteessa, ettei ohjelmoinnin ja yhteiskuntatieteen välinen yhteys ollutkaan niin selvää, kun ajattelin sen olevan.Vähän kerrallaan, usean vuoden aikana kasvatin soveltavien tehtävien määrää. Soveltavat tehtävät pohjautuvat jotenkin yhteiskuntatieteellisiin ongelmiin, mutta yksinkertaistetussa muodossa. Tänä vuonna kokeilen liittää kaikki tehtävät yhteiskuntatieteen kannalta kiinnostavaan aineistoon ja kontekstiin. Kuten aiempinakin vuosina, luemme myös useita empiirisiä tapaustutkimuksia.

Katsotaan mit√§ tapahtuu t√§ll√§ kertaa ja opitaan taas seuraavaan kertaan.Ja miten t√§m√§ kaikki liittyi SAGE Publishingingiin? Heid√§n uusi materiaalinsa¬†pyrkii samaan tavoitteeseen kuin min√§: tukemaan¬†yhteiskuntatieteilij√∂iden ohjelmointia. Raktenteensa osalta kurssi on selke√§sti rakennettu tietojenk√§sittelytieteellisest√§ perspektiivist√§. Rakenne seuraa hyvin perinteist√§ ohjelmointikurssia: ohjelmointiymp√§rist√∂n k√§ytt√∂, muuttujien toiminta, kontrollirakenteet¬†ja huomioita hyvist√§ toimintatavoista. Lis√§ksi on selv√§sti on enemm√§n soveltajille¬†mielenkiintoista¬†sis√§lt√∂√§, erityisesti verkkosivujen k√§sittely. Tekij√∂ill√§ on kuitenkin ollut mieless√§ yhteiskuntatietelj√§t ja yhteiskuntatiedett√§ on koitettu tuoda osaksi sis√§lt√∂√§ erillisill√§ “Application to Social Science”-laatikoilla. Valitettavasti ne eiv√§t mielest√§ni olleet sis√§ll√∂llisesti mitenk√§√§n mullistavia:

Ohjelmoinnin osalta materiaali on erittäin hyvätasoista. Videot ovat hyvin tehtyjä ja selkeän oloisia. Kuitenkaan mielestäni valmis itsenäiseksi materiaaliksi, vaan toimii yhteiskuntatieteellisen kurssin rinnalla jossa

  • on enemm√§n k√§yt√§nn√∂n harjoituksia ohjelmoinnista, jotta yleisen tason ymm√§rrys ohjelmoinnista muuttuisi osaamiseksi
  • enemm√§n kertomusta laskennallisen tutkimusprosessin yhteydest√§ yhteiskuntatieteisiin ja sen k√§sitteisiin ja tukea ohjelmoinnin k√§ytt√∂√§ tutkimusmenetelm√§n√§

Tämän kaltaisella kurssilla on kuitenkin Рkokemukseni mukaan Рusein jonkun käsikirjan ohjelmoinnin opettamisesta. Internet toki on pullollaan näitä materiaaleja, mutta niistä tulee herkästi tilkkukäkkimäinen kokoelma erilaisia lähestymistapoja. Ja tämä ei toki ole systemaattinen ja myös aika sekava. SAGEn kurssi voisi toimia systemaattisempana mateiraalina tälläiselle kurssille.

Computational Social Science at the University of Helsinki

There are two courses at the University of Helsinki that might be interesting for the readers of Rajapinta (or their students):

Lauri Eloranta has an introduction course to computational social science, where students get to know big data, applications of social networks, tools for modelling social complexity and simulation as a research method.

Matti Nelimarkka runs an introduction to programming for social scientists. In this course they will get to know basics of computational thinking and Python  to simple data analysis purposes.