Chatbotin rakentaminen kurssiprojektina: kokemuksia Aalto-yliopiston IT-opinnoista
Kun syksyn kurssivalinnat julkaistiin, huomasimme, että tarjolla oli projektikurssi, jossa yhdistyivät ohjelmointi ja palvelumuotoilu. Päätimme tarttua tilaisuuteen ja rakentaa chatbotin osana tietotekniikan opintojamme Aalto-yliopistossa. Odotimme pääsevämme kokeilemaan moderneja työkaluja käytännössä, oppimaan tiimityöstä ja saamaan konkreettisen artefaktin portfolioon. Emme arvanneet, kuinka paljon oppisimme matkan varrella – niin teknisestä toteutuksesta kuin käyttäjien ymmärtämisestä.
Miksi chatbot-projekti valittiin osaksi opintoja?

Kurssi oli suunniteltu niin, että se integroi palvelumuotoilun ja ohjelmoinnin yhdeksi kokonaisuudeksi. Tavoitteena ei ollut pelkästään koodata toimivaa bottia, vaan ymmärtää, millaisen ongelman se ratkaisee ja kenelle. Aalto-yliopiston kesäkoulu tarjosi tähän täydellisen ympäristön: intensiivinen aikataulu, selkeät välitavoitteet ja jatkuva ohjaus loivat puitteet, joissa uskalsimme kokeilla uutta teknologiaa ilman pelkoa epäonnistumisesta.
Palvelumuotoilun näkökulma chatbotin suunnitteluun
Palvelumuotoilu oli kurssin kantava teema alusta asti. Ennen kuin kirjoitimme riviäkään koodia, haastattelimme potentiaalisia käyttäjiä ja kartoitimme heidän tarpeitaan. Huomasimme nopeasti, että moni opiskelija kamppaili samojen kysymysten kanssa: mistä löytää kurssimateriaalit, miten ilmoittautua tenttiin ja kenelle esittää lisäkysymyksiä. Näistä havainnoista syntyi chatbotin ensimmäinen konsepti.
Kesäkoulun tarjoamat puitteet ja aikataulu
Kesäkoulu järjestettiin kolmen viikon intensiivijaksona Otaniemen kampuksella. Päivät koostuivat aamuluennoista, työpajoista ja itsenäisestä projektityöstä. Aikataulu oli tiukka mutta realistinen: ensimmäisellä viikolla keskityimme suunnitteluun, toisella toteutukseen ja kolmannella testaukseen sekä viimeistelyyn. Kesäkoulun rakenne pakotti meidät priorisoimaan ja tekemään päätöksiä nopeasti – taito, joka on osoittautunut arvokkaaksi myöhemmissä projekteissa.
Projektin suunnittelu ja teknologiavalinnat
Teknologiavalinnat tehtiin kurssin ohjaajien kanssa käytyjen keskustelujen pohjalta. Halusimme työkaluja, jotka olisivat riittävän yksinkertaisia nopeaan prototypointiin mutta silti skaalautuvia. Päädyimme Pythoniin ja Dialogflow’hun, ja hyödynsimme Aallon tarjoamia resursseja, kuten Otaniemen kampuslaboratorioita, joissa pystyimme testaamaan integraatioita reaaliajassa.
Vaatimusten määrittely ja käyttäjätarinat
Kirjoitimme käyttäjätarinat muotoon ”opiskelijana haluan…, jotta voin…”. Tämä auttoi meitä rajaamaan ominaisuudet ja välttämään ylilaajentamista. Priorisoimme tarinat kolmeen kategoriaan:
- Pakolliset: kurssitietojen haku, aikataulukyselyt, yhteystietojen välitys
- Tärkeät: muistutukset deadlineista ja tenttipäivistä
- Nice-to-have: henkilökohtaiset suositukset kurssivalinnoista
Työkalut ja alustat: Python, Dialogflow ja REST-rajapinnat
Python toimi backendin selkärankana: kirjoitimme logiikan, joka käsitteli käyttäjän syötteitä ja haki tietoa Aallon rajapinnoista. Dialogflow puolestaan hoiti luonnollisen kielen ymmärtämisen ja intenttien tunnistamisen. REST-rajapintojen kautta yhdistimme chatbotin kurssitietokantaan ja Slack-työtilaan. Vaikka aluksi kamppailimme autentikoinnin kanssa, Aallon kurssiassistentit auttoivat meidät yli ensimmäisistä kompastuskivistä.
Toteutusvaihe: koodausta ja testausta
Toteutusvaihe oli projektin intensiivisin jakso. Rakensimme chatbotin logiikan moduuli kerrallaan, integroimme sen Slackiin ja testasimme sitä oikeilla käyttäjillä. Vertaispalaute osoittautui kultaakin arvokkaammaksi: kun annoimme botin testattavaksi kurssikavereille, saimme nopeasti selville, mitkä vastaukset olivat epäselviä ja mitkä kysymykset toistuivat.
Chatbotin arkkitehtuuri ja komponentit
Arkkitehtuuri koostui kolmesta pääkomponentista:
- Dialogflow-agentti, joka tunnisti intentit ja poimi entiteetit
- Python-palvelu, joka käsitteli liiketoimintalogiikan ja kutsui REST-rajapintoja
- Slack-integraatio, joka välitti viestit käyttäjän ja botin välillä
Tämä rakenne mahdollisti sen, että pystyimme testaamaan komponentteja erikseen ja vaihtamaan niitä tarvittaessa ilman, että koko järjestelmä kaatui.
Iteratiivinen kehitys ja käyttäjätestaus
Noudatimme iteratiivista kehitysmallia: jokaisen sprintin jälkeen julkaisimme uuden version ja keräsimme palautetta. Käyttäjätestauksessa havaitsimme muun muassa, että botin vastaukset olivat liian muodollisia ja että käyttäjät toivoivat nopeampia vastauksia yksinkertaisiin kysymyksiin. Korjasimme nämä seuraavassa iteraatiossa ja huomasimme, että käyttäjätyytyväisyys parani selvästi.
Palvelumuotoilun rooli chatbotin kehityksessä
Palvelumuotoilun menetelmät olivat keskeisiä koko projektin ajan. Ilman niitä olisimme todennäköisesti rakentaneet botin, joka toimii teknisesti mutta ei palvele ketään. Käyttäjäpersoonat ja palvelupolut auttoivat meitä ymmärtämään loppukäyttäjiä ja parantamaan chatbotin vuorovaikutusta merkittävästi.
Käyttäjäymmärrys ja empatiakartat
Loimme kolme käyttäjäpersoonaa: kiireinen kandiopiskelija, vaihto-opiskelija ja maisterivaiheen opiskelija. Jokaiselle piirsimme empatiakartat, joissa kuvasimme heidän ajatuksiaan, tunteitaan ja toimintaansa. Nämä työkalut auttoivat meitä tunnistamaan, että eri käyttäjäryhmät tarvitsivat erilaista sävyä ja eri tasoista tietoa.
Prototypointi ja nopeat kokeilut
Ennen varsinaista koodausta rakensimme paperiprototyyppejä ja testasimme niitä nopeasti. Tämä oli ratkaisevaa: huomasimme jo varhaisessa vaiheessa, että käyttäjät halusivat keskustella botin kanssa luonnollisesti eivätkä valita vaihtoehdoista valikoista. Tämä oivallus ohjasi koko toteutusta kohti vapaampaa keskustelumallia.
Oivallukset ja opit kurssiprojektista
Projektin päätyttyä kävimme läpi, mikä meni hyvin ja mitä tekisimme toisin. Kokonaisuus vahvisti tietotekniikan opintojamme merkittävästi: pääsimme soveltamaan teoriaa käytäntöön ja ymmärsimme, miten palvelumuotoilu ja ohjelmointi täydentävät toisiaan.
Tekniset haasteet ja ratkaisut
Suurimmat tekniset haasteet liittyivät rajapintojen autentikointiin ja Dialogflow’n intenttien hallintaan. Ratkaisimme nämä jakamalla vastuut selkeästi ja dokumentoimalla jokaisen rajapintakutsun huolellisesti. Jälkikäteen ajateltuna olisimme voineet aloittaa autentikoinnin testaamisen aikaisemmin, jotta olisimme välttäneet kiireen projektin loppuvaiheessa.
Yhteistyö ja projektinhallinta
Tiimityö oli projektin paras osa. Käytimme viikoittaisia sprinttikokouksia ja jaettua tehtävälistaa, mikä piti meidät kartalla. Opimme, että selkeä vastuunjako ja avoin viestintä ovat yhtä tärkeitä kuin tekninen osaaminen. Suosittelemme tuleville opiskelijoille, että he valitsevat projektin, joka haastaa sekä teknisesti että käyttäjälähtöisesti – juuri sellainen oli tämä chatbot-kurssi.
Chatbot-projekti oli arvokas osa tietotekniikan opintojamme Aalto-yliopistossa. Se yhdisti palvelumuotoilun, ohjelmoinnin ja tiimityön tavalla, jota emme olleet aiemmin kokeneet. Rohkaisemmekin muita tarttumaan vastaaviin haasteisiin: kesäkoulu ja kurssiprojektit tarjoavat ainutlaatuisen mahdollisuuden oppia tekemällä.
Usein kysytyt kysymykset
Mitä teknologioita käytitte chatbotin rakentamisessa?
Käytimme Pythonia backend-logiikkaan, Dialogflow’ta luonnollisen kielen ymmärtämiseen ja REST-rajapintoja tietojen hakemiseen. Slack toimi käyttöliittymänä, jossa testasimme botin toimintaa.
Oliko palvelumuotoilusta oikeasti hyötyä teknisessä projektissa?
Ehdottomasti. Ilman palvelumuotoilun menetelmiä, kuten käyttäjäpersoonia ja empatiakarttoja, olisimme rakentaneet botin, joka ei vastannut todellisiin tarpeisiin. Palvelumuotoilu ohjasi meidät keskittymään oikeisiin ongelmiin.
Kuinka paljon aikaa projekti vei?
Kesäkoulu kesti kolme viikkoa, ja työskentelimme sen aikana täysipäiväisesti. Lisäksi käytimme muutaman päivän ennen kurssia suunnitteluun ja taustatutkimukseen.
Voiko vastaavan projektin tehdä ilman aiempaa ohjelmointikokemusta?
Perustason ohjelmointitaidot auttavat, mutta kurssi on suunniteltu niin, että motivaatio ja halu oppia ovat tärkeämpiä kuin aiempi kokemus. Aallon kurssiassistentit ja vertaispalaute tukevat aloittelijoita.
Mitä suosittelisitte tuleville opiskelijoille?
Suosittelemme valitsemaan projekteja, joissa yhdistyvät tekniikka ja käyttäjälähtöinen suunnittelu. Aloittakaa suunnittelusta, testatkaa nopeasti ja kerätkää palautetta koko projektin ajan – se tekee lopputuloksesta merkittävästi paremman.



Post Comment