Chatbotin rakentaminen kurssiprojektina

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?

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:

  1. Dialogflow-agentti, joka tunnisti intentit ja poimi entiteetit
  2. Python-palvelu, joka käsitteli liiketoimintalogiikan ja kutsui REST-rajapintoja
  3. 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

You May Have Missed