MAT-81000 Ohjelmallinen sisällönhallinta (7 op)


Näytä suurempi kartta

Vastuuvapauslauseke (Disclaimer)

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

Myös verkko-oppimisympäristöalusta on edelleen pohdinnassa. Aikaisemmin käytössä oli TTY-Piiri ,vrt. kevään 2016 luentopäiväkirja.

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 2017

Luennoitsija: Jukka Huhtamäki (vastaanotto: to 13-14)

Yhteystiedot: jukka.huhtamaki@tut.fi (040-5854771 - sähköpostilla tavoitat todennäköisemmin)

Huone: FB321, Tuotantotalous ja tietojohtaminen

Luennot: maanantaisin kello 14-16 ja keskiviikkoisin 9-10 Sähkötalon salissa SJ204.

Harjoitukset: ei harjoituksia (ellei tarvetta ilmene)

Kotisivu: työn alla!

Twitter: #ohsiha

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

Muodolliset esitiedot

Opintojakson tarkoituksenmukainen suorittaminen edellyttää ymmärrystä sekä 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

Ohjelmallinen sisällönhallinta jatkoi aikaisemmin siitä mihin Johdatus hypermediaan päätti (muutoksia!). Keskiössä on sisällönhallinnan automatisointi sekä vuorovaikutteisten (Web-) informaatiojärjestelmien (hypermediasovellusten) toiminnallisuus ja sen 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.

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ä:

Kaksi pääteemaa

Keväällä 2017 opintojakson sisällöt kahteen keskeiseen kokonaisuuteen:

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 - jahka sen toteutus selviää.

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 tämä käsillä oleva luentopruju, jonka on jäsentää hajanainen asia, erityisesti otsikot, hallittavaan muotoon ja toimia muistilappuna luentojen sisältöön. HUOM! Luentorunko ei missään tapauksessa sisällä koko oppimateriaalia, vaan ainoastaan jäsentää sitä!

Luentorungon lisäksi opintojakson sisältöön kuuluvat

Luentorunkoa julkaistaan luentojen edetessä toteutuskerran kotisivuilla.

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:

PHP-sovellusten kehittäjille 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 verkkopalvelujen 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.

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 muutamia 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 asikaspainoitteiseksi.

"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: