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


Näytä suurempi kartta

Vastuuvapauslauseke (Disclaimer)

Ohjelmallinen sisällönhallinta järjestetään nyt neljättä kertaa. Kokonaisuus elää edelleen voimakkaasti

Materiaalit ovat jaossa tässä Github-kokonaisuudessa. Lisäksi otamme käyttöön Yammer-alustan harjoitustöistä raportoimiseen.

Mistä on kysymys?

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

Esimerkki 1
Ian Mullan: Johnny Cash Has Been EVERYWHERE (Man)!
Esimerkki 2
Avoindata.net
Esimerkki 3
Junat.net ja "Ajattelin, että tämä on tehty aiemminkin, mutta ei"
Esimerkki 4
Cartodb.com Geotagged Tweets mentioning #JeSuisCharlie, Paris time zone, January 7, 2015
Esimerkki 5
Bot Code Examples
Bonus
Lippukauppa 2.0 - tee se itse!

Ohjelmallinen sisällönhallinta, kevät 2018

Luennoitsija: Jukka Huhtamäki (@jnkka)

Tuntiassistentti: Samuli Määttä

Yhteystiedot: jukka.huhtamaki@tut.fi (040-5854771 - suosin sähköpostia)

Huone: FB321, Tuotantotalous ja tietojohtaminen

Luennot: tiistaisin kello 10-12 ja perjantaisin 9-10 SJ204.

Harjoitukset: ei harjoituksia

Kotisivu: ohsiha.github.io/2018

Twitter: #ohsiha

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

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.

Opintojakson sisältö ja suorittaminen

Ohjelmallisen sisällönhallinnankeskiössä on sisällönhallinnan automatisointi sekä vuorovaikutteisten (Web-) informaatiojärjestelmien (hypermediasovellusten) toiminnallisuus ja teknisesti laadukas toteuttaminen.

Opintojakson teemakokonaisuudet:

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:

Kasvuyrittäjyyspotentiaalia: Which department is educating data scientists in Finland? Startups NEED these folks (hard-core CS pros with UX skills)., kysyi Petteri Koponen jo muutama vuotta sitten ja asia on edelleen ajankohtainen.

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

Entä Web-ohjelmoijaksi?

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.

Myös tekniikkaa

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

Tiivistetään sisältöä

Keväällä 2018 opintojakson sisältöä tiivistetään vastaamaan 5 opintopisteen laajuutta:

Valtaosa luennoista pidetään 3. opetusjaksolla. Harjoitustyön toteutusta voi jatkaa 4. jaksolla.

Käsiteltävät asiat ja painotukset muuttuvat vuosittain. Huomattava osa opintojakson sisällöstä avautuu harjoitusten, itseopiskelun ja harjoitustyön kautta.

Prujun lisäksi luennoilla käydään läpi paljon käytännön esimerkkejä ja muuta asiaan liittyvää.

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

Mistä opintojaksolla puhutaan?

Katso luentosuunnitelma.

Harjoitustyö

Suorittaminen numeroina - yksityiskohdat vielä mietinnässä

Luentopäiväkirja - vaihtoehto tentille

Pisterajat

Opintojakson arvosana muodostuu seuraavasti:

Muistettavaa & vinkkejä opiskeluun

Vielä pari vinkkiä

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 toimia 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

Olisi hienoa jos keksimme järkevän tavan automatisoida toteutuskerran tiedotusta ohsihan hengessä.

Keskeinen kirjallisuus

O'Reilly Medialla riittää tarjontaa Web Development -teeman alla.

Muutamia esimerkkejä

TTY:n Kirjasto tarjoaa pääsyn kattavaan kokoelmaan sähköisiä kirjoja ja julkaisuja - jaetaan kirjavinkkejä kevään edetessä!

Jukan kirjakokoelmassa on joukko teemaan liittyviä opuksia.

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.

Teknologiat

Opintojaksolla käytettävä tekniikkapatteri (LAMP) on vapaasti jaossa:

Eri käyttöjärjestelmiin löytyy valmiiksi paketoituja kokonaisuuksia (WampServer, MAMP, XAMPP), joiden tuella asentaminen on suoraviivaista.

Cloud9 IDE, Heroku ja muut verkossa (pilvipalveluina) tarjolla olevat kehitys- ja tuotantoympäristöt tarjoavat kilpailukykyisen vaihtoehdon oman palvelimen ylläpitämiselle.

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.

Javascriptin merkitys korostuu kaikessa ohjelmistokehityksessä.

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

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.

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: