Siirry suoraan sisältöön

Fullstack-ohjelmointi (5op)

Toteutuksen tunnus: 4A00HB49-3001

Toteutuksen perustiedot


Ilmoittautumisaika
24.11.2025 - 11.01.2026
Ilmoittautuminen toteutukselle ei ole vielä alkanut.
Ajoitus
01.01.2026 - 31.07.2026
Toteutus ei ole vielä alkanut.
Laajuus
5 op
Toteutustapa
Lähiopetus
Yksikkö
Tietojenkäsittely
Toimipiste
TAMK Pääkampus
Opetuskielet
suomi
Paikat
0 - 50
Koulutus
Tietojenkäsittelyn tutkinto-ohjelma
Opettajat
Jussi Pohjolainen
Vastuuhenkilö
Jussi Pohjolainen
Ryhmät
24TIKOOT1
2024 Tietojenkäsittely, ohjelmistotuotannon opintosuunta, ryhmä 1
24TIKOOT2
2024 Tietojenkäsittely, ohjelmistotuotannon opintosuunta, ryhmä 2
Opintojakso
4A00HB49

Osaamistavoitteet (Opintojakso)

Opintojakson tavoitteena on antaa opiskelijalle taidot palvelinpuolen tekniikoista, joilla toteutetaan moderneja full-stack web-sovelluksia. Opintojakson aikana tutustutaan dynaamisten web-sovellusten suunnitteluun, rakentamiseen ja toteuttamiseen. Opintojakson aikana opiskelijat tutustuvat hyväksi havaittuihin ohjelmistokehityksen ja julkaisuihin liittyviin tekniikoihin.

Opintojakson suoritettuaan opiskelija
• osaa toteuttaa full-stack web-sovelluksia.
• osaa käyttää moderneja web-kehityksen teniikoita.
• osaa toimia projektimuotoisessa ohjelmistokehityksessä.
• osaa julkaista ohjelmistoja käyttäen hyväksi esim. pilvipalveluja.

Sisältö (Opintojakso)

• Dynaamiset full-stack web-sovellukset
• Projektimuotoinen ohjelmistokehitys
• Ohjelmistojen julkaisu

Esitietovaatimukset (Opintojakso)

Johdatus ohjelmointiin
Tietokantojen jatkokurssi

Arviointikriteerit, tyydyttävä (1-2) (Opintojakso)

Opiskelija
• osaa rakentaa pienimuotoisia full-stack -sovelluksia.
• osaa toimia projektissa ja julkaista ohjelmistoja.

Arviointikriteerit, hyvä (3-4) (Opintojakso)

Opiskelija
• osaa rakentaa monipuolisia full-stack -sovelluksia, jotka käyttävät teknologioita monipuolisesti.
• osaa toimia projektissa aktiivisessa roolissa kehittäen toimintatapoja.
• osaa vastata ohjelmiston julkaisujen suunnittelusta ja toteuttamisesta.

Arviointikriteerit, kiitettävä (5) (Opintojakso)

Opiskelija
• osaa rakentaa laaja-alaisia full-stack -sovelluksia, jotka käyttävät erittäin laajasti ja monipuolisesti erilaisia teknologioita autentikoinnista tietovarantojen käsittelyyn (esim. ORM).
• osaa arvioida ja ottaa käyttöön laaja-alaisesti eri teknologioita projektin tarpeisiin liittyviin toimintoihin (esim. versionhallinta, testaus, julkaisu, virtualisointi, kontit).

Aika ja paikka

Ks. kalenteri

Tenttien ja uusintatenttien ajankohdat

Opintojaksolla exam.tuni.fi tentti joka aukeaa viikolla 10 ja päättyy viikkoon 14. Opiskelija voi tästä aikaikkunasta valita itselleen sopivan tenttiajan.

Arviointimenetelmät ja arvioinnin perusteet

Arviointi koostuu seuraavista osa-alueista

- Harjoitukset
- Projekti
- Tentti

Kokonaisarvio keskiarvo harjoituksista, projektista ja tentistä.

HARJOITUKSET

Arvosanan 1 saa, kun vähintään 40 % harjoituksista on tehty.
Arvosanan 2 saa, kun vähintään 55 % harjoituksista on tehty.
Arvosanan 3 saa, kun vähintään 65 % harjoituksista on tehty.
Arvosanan 4 saa, kun vähintään 75 % harjoituksista on tehty.
Arvosanan 5 saa, kun vähintään 90 % harjoituksista on tehty.

Harjoitukset otetaan vastaan ainoastaan jos opiskelija on ajoissa koodikatselmuksessa ja osallistuu koodikatselmukseen.

TENTTI

Tentti tehdään exam.tuni.fi palvelussa ja tentti koostuu monivalintakysymyksistä.

Arvosanan 1 saa, kun vähintään 40 % tehtävistä on oikein.
Arvosanan 2 saa, kun vähintään 55 % tehtävistä on oikein.
Arvosanan 3 saa, kun vähintään 65 % tehtävistä on oikein.
Arvosanan 4 saa, kun vähintään 75 % tehtävistä on oikein.
Arvosanan 5 saa, kun vähintään 90 % tehtävistä on oikein.

PROJEKTITYÖ

Itsenäisesti tehtävä fullstack - sovelluksen toteutus.

Hylätty (0)
- Ei täytä minimivaatimuksia.
- Sovellus ei käänny tai käynnisty. Toteutuksessa on merkittäviä virheitä.

Tyydyttävä (1 - 2)
- Vähimmäistasoinen toteutus, joka perustuu harjoituksissa tehtyyn työhön.
- Puutteellinen dokumentaatio.
- Selkeitä bugeja toteutuksessa.
- Heikot Git-commitit (vähän ja/tai epäselvät viestit).
- Puutteelliset julkaisut.

Hyvä (3 - 4)
- Hyvin kommentoitu ja dokumentoitu koodi.
- Huomio käyttökelpoisuudessa (usability).
- REST-rajapinta noudattaa hyvää käytäntöä, sisältäen selkeät virheilmoitukset ja statuskoodit.
- Riittävä määrä laadukkaita Git-commitointeja.
- Sovellus hyödyntää npm workspaces -rakennetta frontin ja backin hallinnassa.
- Hyvät julkaisut.

Erinomainen (5)
- Sovellus on julkaistu pilveen (esim. AWS, Google Cloud, Azure, Heroku, Render.com, Railway).
- Erinomainen käyttökokemus ja viimeistelty käyttöliittymä.
- Erittäin laadukkaat Git-commitit (tiheä tahti ja selkeät viestit).
- Kokonaisuudessaan siisti, ylläpidettävä ja loppuun asti rakennettu ratkaisu.
- Ympäristön hallinnassa käytetään npm workspaces + Docker -yhdistelmää.
- Toteutuksessa on testausratkaisu REST-rajapinnalle (esim. Jest + Supertest tai Mocha + Chai-http).
- Erittäin hyvä dokumentaatio, mukana myös README ja screencast.
- Erittäin laadukkaat julkaisut.

Arviointiasteikko

0-5

Opiskelumuodot ja opetusmenetelmät

Opintojakson opetuksessa yhdistyvät luennot, kotiharjoitukset, projekti ja tentti. Luennoilla käsitellään fullstack - ohjelmoinnin keskeisiä käsitteitä ja periaatteita esimerkkien avulla. Viikoittaisissa kotiharjoituksissa opiskelijat tekevät ohjelmointitehtäviä ja harjoittelevat koodikatselmointia vertaisarvioinnin periaatteiden mukaisesti. Koodikatselmointi tukee laadukkaan ja luettavan koodin tuottamista sekä parantaa ongelmanratkaisutaitoja. Kurssi päättyy tenttiin, joka mittaa keskeisten periaatteiden ja käytäntöjen ymmärtämistä. Projektityön toteutus antaa opiskelijalle kokonaiskuvan fullstack - sovelluksen tuottamisesta ja julkaisusta.

Oppimateriaalit

Ensisijaisena oppimateriaalina luennot (ja näiden tallenteet).

Referenssit:

- Node.js Documentation: https://nodejs.org/en/docs
- Express.js Guide: https://expressjs.com/en/guide/
- MySQL Reference Manual: https://dev.mysql.com/doc/
- Docker Docs: https://docs.docker.com/
- Render.com Documentation: https://render.com/docs

Täydentävä kirjallisuus:

Node.js Design Patterns (3rd edition), Mario Casciaro & Luciano Mammino
Linkki: https://www.oreilly.com/library/view/nodejs-design-patterns/9781839214110/

Opiskelijan ajankäyttö ja kuormitus

Yhteensä 5 op * 27h = 135h

Jakautuminen esimerkiksi seuraavsti:

- Viikot 03 - 07 (tekniikan opettelu): 8–10 h / viikko
- Viikko 08 (vierasluento + projektin aloitus): 8 h
- Viikko 09 (itsenäinen viikko): 11–12 h
- Viikot 10–14 (projekti): 12–14 h / viikko

Sisällön jaksotus

Viikko 03: Node.js Database Connection
Viikko 04: Node.js Restful API using Express.js
Viikko 05: Node.js RESTful and Databases
Viikko 06: Connection Pool, CORS, Frontend Implementation
Viikko 07: Docker, Continuous Delivery (CD), Deploying to Render.com
Viikko 08: Vierasluennoitsija, Project Work Introduction
Viikko 09: Itsenäisen opiskelun viikko
Viikko 10: Projektityön toteutus,
Viikko 11: Projektityön toteutus, julkaisu 1
Viikko 12: Projektityön toteutus, julkaisu 2
Viikko 13: Projektityön toteutus
Viikko 14: Projektityön toteutus, julkaisu (3)

Toteutuksen valinnaiset suoritustavat

Ei valinnaisia suoritustapoja

Harjoittelu- ja työelämäyhteistyö

Tämä opintojakso on suunniteltu fullstack - perusteiden opetteluun, eikä se sisällä varsinaista työharjoittelua tai suoraa yhteistyötä työelämän kanssa. Kurssin sisältö kuitenkin heijastaa alan nykyvaatimuksia. Luennoissa ja kotiharjoituksissa keskitytään käytännönläheisiin ohjelmointitehtäviin, jotka kehittävät opiskelijoiden ongelmanratkaisutaitoja ja tarjoavat valmiuksia jatkokoulutukseen sekä työelämän haasteisiin. Opetuksessa painotetaan alan parhaita käytäntöjä ja työelämässä käytössä olevia ohjelmointikonsepteja, mikä tukee opiskelijoiden sujuvaa siirtymistä työelämään.

Kansainvälisyys

Tällä opintojaksolla ei ole käytössä erityisiä kansainvälisiä yhteistyökuvioita tai ulkomaan harjoittelumahdollisuuksia. Kurssin sisältö perustuu kuitenkin kansainvälisesti tunnustettuihin ohjelmointikäytäntöihin ja -standardeihin, mikä valmentaa opiskelijoita työympäristön vaatimuksiin. Opiskelijoita kannustetaan myös hyödyntämään kansainvälisiä resursseja ja verkostoja oman osaamisensa laajentamiseksi.

Lisätietoja opiskelijoille

Opintojakso edellyttää hyvää JavaScript - kielen hallintaa.

Siirry alkuun