TLO-32400 Ohjelmallinen sisällönhallinta (5 op)

7.1.2020

Mistä on kysymys? 1/2

Traffic Management Finlandin avoin rajapinta ja sen ympärille kasvaneet palvelut

Rajapinta
https://rata.digitraffic.fi/
Asemanäyttöjen tiedot
Junat.net ja "Ajattelin, että tämä on tehty aiemminkin, mutta ei"
Graafinen aikataulu todellisen liikenteen mukaan
Julia.dy Ylivieska-Iisalmi-rata 8.1.2019
Kulkuhistoria
IC25 IC23
Bonus
Lippukauppa 2.0 - tee se itse!

Mistä on kysymys? 2/2

Avoimen datan ympärille on syntynyt yhteisöjä
Avoindata.net
Ja kaikkea ei aina kannata toteuttaa alusta asti itse
Bot Code Examples
Esimerkiksi paikkatietoja yhdistämistä muihin datalähteisiin
Cartodb.com Geotagged Tweets mentioning #JeSuisCharlie, Paris time zone, January 7, 2015

Lisää esimerkkejä ja hyödyllistä materiaalia: Ohjelmallisen sisällönhallinnan tila 2018

Yksinkertaisen asiointipalvelun toteuttamisesta kohti ohjelmallista sisällönhallintaa ja "eleganttia Web-ATK:ta"

Ohjelmallinen sisällönhallinta, kevät 2020

Vastuuopettaja: Jukka Huhtamäki (@jnkka)

Yhteystiedot: jukka.huhtamaki@tuni.fi

Huone: FB321

Luennot: tiistaisin kello 10.15-11.45 ja perjantaisin 9.00-9.45 SJ204 - ensimmäiset luentoviikot virtuaalisesti!

Harjoitukset: ei harjoituksia

Kotisivu: ohsiha.github.io/2020

Twitter: #ohsiha

Suorittaminen: harjoitustyö ja luentopäiväkirja (tai tentti)

Liity opintojakson Slack-alustalle

Muodolliset esitiedot

Opintojakson tarkoituksenmukainen suorittaminen edellyttää ymmärrystä sekä Web-hypermedian keskeisistä periaatteista että ohjelmoinnin perusteista:

Opintojakson sisältö ja vaatimustaso asettuu mukavasti opiskelijan omien taitojen mukaiseksi - suorittaminen toki edellyttää tietyn minimitason saavuttamista.

Opiskelusta - mitä opintojaksolla oppii?

Näkökulma on erityisesti asioiden sovelluksista riippumattomien perusteiden opiskelu: ohjelmistot ja teknologiat tulevat ja menevät, ideat pysyvät.

Opintojakson tavoitteena on vastata muun muassa seuraaviin kysymyksiin:

Esimerkiksi mukautuvien järjestelmien toteuttaminen edellyttää käytännössä aina ohjelmointia.

Haluatko datatieteilijäksi?

Web yleensä, ja sosiaalinen media erityisesti, tuottavat joka päivä valtavan määrän uutta dataa, jota analysoimalla on mahdollista tuottaa uutta tietoa ihmisistä - esimerkiksi heidän tarpeistaan arvonluonnin tueksi.

Ammattinimike data scientist on ilmestynyt laajempaan käyttöön viime aikoina. Haussa on yhdistelmä taitoja:

Esimerkiksi datajournalistit soveltavat vastaavanlaista osaamista uudenlaisten journalististen ratkaisujen kehittämisessä.

Entä Web-ohjelmoijaksi?

Myös tekniikkaa

Toimintojen ja prosessien ohella kevään aikana käydään läpi myös teknisempiä kysymyksiä:

Suoritusvaatimukset

  1. Luentopäiväkirja tai tentti 9-18p
  2. Harjoitustyö 0-12p + porkkana 6p

Opintojakson arvosana muodostuu seuraavasti:

Oppimispäiväkirja tai tentti 18p

Oppimispäiväkirja

Tentti

Suorittaminen edellyttää vähintään 9 pisteen keräämistä tentistä tai oppimispäiväkirjasta ja yhteensä vähintään 15 pisteen keräämistä.

Harjoitustyö 18p

Opintojakson suorittaminen

Ajantaiset tiedot opintojakson sisällöstä löytyvät aina luentopäiväkirjasta.

Palaute on erittäin tervetullutta

Huomioitavaa ohjelmallista sisällönhallintaa käsiteltäessä

Vinkkejä menneiltä vuosilta

Kannattaa muistaa, että opintojakso suoritetaan siksi, että asioita opiskeltaisiin ja opittaisiin, eli:

Rikkaus: informaatiojärjestelmien kehittäminen on tämän päivän käsityöläisyyttä: tekemällä oppii eikä osaaminen ole ikinä valmis.

Opintojakson opetusmuoto ja materiaali

Oppimateriaalin rungon muodostaa luentopäiväkirja, joka jäsentää otsikkotasolla kokonaisuuden hallittavaan muotoon ja toimii muistilappuna luentojen sisältöön. HUOM! Luentorunko ei missään tapauksessa sisällä koko oppimateriaalia, vaan ainoastaan jäsentää sitä!

Luentopäiväkirjan lisäksi opintojakson sisältöön kuuluvat

Esimerkkejä verkkomateriaalista

W3C:n määrittelevät teknologiat ovat keskeisessä roolissa:

Django-sovellusten kehittäjille ja Python-ohjelmointiin suunnattua materiaalia tarjoavat esim.

Myös HTML5-kieleen ja muihin ajankohtaisiin Web-teknologioihin perehtymiseen löytyy tukimateriaalia pilvin pimein.

1. Ohjelmallinen sisällönhallinta

Ohjelmointi mahdollistaa sisällönhallinnan (kerääminen, jalostaminen) automatisoinnin, toteutustyön automatisoinnin, monikanavajulkaisemisen sekä vuorovaikutuksen ja hajautuksen toteuttamisen. Nyt ohjelmallista sisällönhallintaa käsitellään lähinnä Web-pohjaisten informaatiojärjestelmien näkökulmasta:

Ohjelmoinnilla on keskeinen rooli myös multimediaan tai tiedon visualisointiin kallellaan olevissa informaatiojärjestelmissä (Flash, Visual Basic, MS Silverlight, Java, Delphi, ...). Näissä ohjelmointi keskittyy erityisesti vuorovaikutuksen toteuttamiseen.

Mekaanisen työn automatisointi

Esimerkkejä mekaanisen työn automatisoinnista:

Monikanavajulkaiseminen

Nykyaikainen Web-arkkitehtuuri erottaa toisistaan URI-tunnisteen yksilöimän resurssin ja sen representaation. Representaatio räätälöidään päätelaitteen, käyttäjän ja käyttötilanteen (=käyttökontekstin) perusteella.

Edellisen toteutus monikanavajulkaisemisen keinoin:

Sekä räätälöity että joustava julkaiseminen on syytä toteuttaa ohjelmallisesti.

Vuorovaikutuksen toteuttaminen

Käyttäjän syötteeseen reagointi edellyttää (navigointia lukuun ottamatta) aina ohjelmointia. Esimerkiksi lomakkeen käsittely tapahtuu aina ohjelmallisesti. Esimerkkejä toiminnoista:

Hajautetut informaatiojärjestelmät

API-talouteen ja Web 2.0 -ilmiöön usein liitetyt Web-rajapinnat (Web API) antavat kehittäjälle aidon mahdollisuuden hajautettujen informaatiojärjestelmien toteuttamiseen.

Muistatko vielä Hälytykset kartalla? Edelleen kuuma mashup-skene tuottaa uusia toinen toistaan mehukkaampia esimerkkejä Webissä tarjolla olevan tiedon yhdistelemiseen perustuviin palveluihin.

Roy Fieldingin (2000) väitöskirjasta Architectural Styles and the Design of Network-based Software Architectures liikkeelle lähtenyt Webin ja HTTP-protokollan uusi arvostus antaa lisää tukea työlle.

Perehdymme opintojakson lopulla REST/RESTful-ajattelun perusteisiin ja käytännön soveltamiseen käytännön API-taloudessa.

Visuaalinen analytiikka

Informaation visualisointi on onnistunut Web-teknologioilla jo vuosia (esimerkiksi Highcharts ja D3.js)

Visuaalinen analytiikka (Heer ja Shneiderman, 2012) viittaa prosessiin, jossa dataa kerätään, jalostetaan, visualisoidaan ja analysoidaan - yksin ja yhdessä

Kevään mittaan mietimme muun muassa ryömijöitä, raapijoita, datan siivoamista ("tunkkaamista"?) (ehdotuksia paremmista käsitteistä otetaan vastaan!) ja visualisointia

Ohjelmointi: asiakas vai palvelin?

Asiakas-palvelin –mallin mukaan toimivassa sovelluksessa ohjelmointiin perustuvia ratkaisuja voidaan yleensä toteuttaa sekä selaimessa että palvelimella:

Web mahdollistaa sekä älykkään että yksinkertaisen asiakkaan toteuttamisen. Viimeisten vuosien aikana kehitystyö on siirtynyt asiakaspainoitteiseksi.

"Palvelin on ystävä"?

Selaimeen tai muuhun asiakassovellukseen toteutettujen ratkaisuiden toimintavarmuus on Webissä edelleen vaihteleva ja erilaiset toteutustekniikat (AJAX, JavaScript/ECMAScript, Java-sovelmat, Flash, MS Silverlight, ...) ovat vahvasti sidoksissa käyttöympäristöön:

Lopuksi

Näe metsä puilta: