Hypermedian ohjelmointi (2 ov) kevät Yleisiä tietoja kevään kurssista. Kurssin sisältö ja suorittaminen

Samankaltaiset tiedostot
Hypermedian ohjelmointi (2 ov) kevät Luentorunko. Jukka Huhtamäki Hypermedian ohjelmointi (2 ov)

MATHM Hypermedian ohjelmointi (4 op) kevät Yleisiä tietoja kevään toteutuskerrasta. Haluatko Web-ohjelmoijaksi?

MATHM Hypermedian ohjelmointi (4 op) kevät 2007

3 Verkkopalveluarkkitehtuuri

3 Verkkopalveluarkkitehtuuri

IT-OSAAJA, TIETOJENKÄSITTELYN ERIKOISTUMISOPINNOT

5 Verkkopalvelun sisällön hallinta

10 Nykyaikainen WWW-arkkitehtuuri

3 Verkkopalveluarkkitehtuuri

Semanttinen Web. Ossi Nykänen Tampereen teknillinen yliopisto (TTY), DMI / Hypermedialaboratorio W3C Suomen toimisto

9 Edistynyt PHP-ohjelmointi

Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tehdään sähköisesti mikroluokan Windows-koneilla.

Kurssin hallinta -työväline

Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tehdään sähköisesti mikroluokan Windows-koneilla.

Kurssijärjestelyt. ME-C2300 Verkkojulkaisemisen perusteet (5 op) Mari Hirvi Informaatioverkostot / Mediatekniikan laitos

Verkkopalveluiden saavutettavuus

Tietokoneverkot. T Tietokoneverkot (4 op) viimeistä kertaa CSE-C2400 Tietokoneverkot (5 op) ensimmäistä kertaa

Kurssijärjestelyt. CS-1180 Verkkojulkaisemisen perusteet (5 op) Hanna Hämäläinen Informaatioverkostot / Mediatekniikan laitos

T Hypermediadokumentin laatiminen. Sisältö. Tavoitteet. Mitä on www-ohjelmointi? Arkkitehtuuri (yleisesti) Interaktiivisuuden keinot

Projektinhallintaa paikkatiedon avulla

XML johdanto, uusimmat standardit ja kehitys


Kurssin aloitus. AS XML-kuvauskielten perusteet Janne Kalliola

Järjestelmäarkkitehtuuri (TK081702) Avoimet web-rajapinnat

Hajautettujen sovellusten muodostamistekniikat, TKO_2014 Johdatus kurssiin

Kurssiesite Lausekielinen ohjelmointi I Kesä Jorma Laurikkala Tietojenkäsittelytieteet Luonnontieteiden tiedekunta Tampereen yliopisto

Järjestelmäarkkitehtuuri (TK081702) Järjestelmäarkkitehtuuri. Järjestelmäarkkitehtuuri

VYPEdit verkkosivualusta SVY-toimijoille

T harjoitustyö, kevät 2012

5 Sisällönhallinta- ja julkaisujärjestelmät


PLA Mobiiliohjelmointi. Mika Saari

VisualStudio Pikaopas, osa 1: WEB sivujen suunnittelu

Verkkosisällön saavutettavuusohjeet 2.0: hyviä ohjeita monimuotoisen sisällön suunnitteluun ja arviointiin

ELEC-C1210 Automaatio 1 ELEC-C1220 Automaatio 2. Kurssien esittely lukukausi

Web sovelluksen kehittäminen sähkönjakeluverkon suojareleisiin

Tähtitieteen käytännön menetelmiä Kevät 2009

Paikkatiedot ja Web-standardit

Tervetuloa! Matematiikka tutuksi

031075P MATEMATIIKAN PERUSKURSSI II 5,0 op

Kurssiesite Lausekielinen ohjelmointi II Syksy Jorma Laurikkala Tietojenkäsittelytieteet Informaatiotieteiden yksikkö Tampereen yliopisto

Uutisjärjestelmä. Vaatimusmäärittely. Web-palvelujen kehittäminen. Versio 1.3

T harjoitustehtävät, syksy 2011

3 Verkkosaavutettavuuden tekniset perusteet

HAHMONTUNNISTUKSEN PERUSTEET

ecome Markkinoiden kehittynein julkaisujärjestelmä

T Harjoitustyöluento

Tiedonlouhinta rakenteisista dokumenteista (seminaarityö)

T Johdatus tietoliikenteeseen 5 op. Kevät 2013

Digitaalisen median tekniikat Luento 1: Intro

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

031075P MATEMATIIKAN PERUSKURSSI II 5,0 op

Ohjelmointi II. Erkki Pesonen Luennot ja harjoitukset. Itä-Suomen yliopisto Tietojenkäsittelytieteen laitos 2015

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS CT10A Kandidaatintyö ja seminaari

EDUBOX opetusvideopalvelu

Käyttäjien tunnistaminen ja käyttöoikeuksien hallinta hajautetussa ympäristössä

4 Verkkopalvelun toteuttaminen

8 Hypermedian suunnitteleminen

HAHMONTUNNISTUKSEN PERUSTEET

Written by Administrator Monday, 05 September :14 - Last Updated Thursday, 23 February :36

PLA Mobiiliohjelmointi. Mika Saari

7 Mukautuvat verkkopalvelut

W3C ja alueellinen standardointi

Laajuus 5 op Luennot: 12 x 2t Harjoitukset: 7 viikkoharjoitusta harjoitusten tekemiseen saatavissa apua 2 ryhmää / harjoitus

Tieto- ja viestintätekniikka. Internetistä toimiva työväline, 1 ov (YV10TV2) (HUOM! Ei datanomeille)

6 Mukautuvat verkkopalvelut

A4.1 Projektityö, 5 ov.

TIE Tietorakenteet ja algoritmit 1. TIE Tietorakenteet ja algoritmit

811393A JOHDATUS TUTKIMUSTYÖHÖN

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS Ti Kandidaatintyö ja seminaari

Tietokoneen rakenne (2 ov / 4 op) Syksy 2006

Kurssin sisältö. Kurssilla vähemmän. Johdatus ohjelmistotekniikkaan. Mitä on ohjelmistotekniikka? Miten ohjelmistoja suunnitellaan ja toteutetaan?

Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista

Järjestelmäarkkitehtuuri (TK081702) Web Services. Web Services

Tietokoneen rakenne (2 ov / 4 op) Syksy 2007 Liisa Marttinen. Helsingin yliopisto Tietojenkäsittelytieteen laitos

HELIA 1 (11) Outi Virkki Tiedonhallinta

W3C ja Web-teknologiat

11 Valmiit ratkaisut. 11 Valmiit ratkaisut

Tietokantasovellus (4 op) - Web-sovellukset ja niiden toteutus

XPages käyttö ja edut Jarkko Pietikäinen toimitusjohtaja, Netwell Oy

ELEC-C1210 Automaatio 1 ELEC-C1220 Automaatio 2. Kurssien esittely lukukausi

Kurssiesite Lausekielinen ohjelmointi Syksy Jorma Laurikkala Tietojenkäsittelytieteet Informaatiotieteiden yksikkö Tampereen yliopisto

W3C: teknologia ja (tieto)yhteiskunta

Tervetuloa opiskelemaan DIGITAALI- TEKNIIKKAA! Digitaalitekniikan matematiikka Luku 0 Sivu 1 (9)

T Harjoitustyöluento

Harri Eskelinen, puh , Konetekniikan koulutusohjelman johtaja Tekniikan tohtori vuonna 1999 Dosentti

OHJ-5201 Web-palveluiden toteutustekniikat. Kurssisisällöstä. Tarja Systä

Tervetuloa jatkamaan DIGITAALI- TEKNIIKAN opiskelua! Digitaalitekniikka (piirit) Luku 0 Sivu 1 (8)

MATEMATIIKAN PERUSKURSSI b

Tietoturva. 0. Tietoa kurssista P 5 op. Oulun yliopisto Tietojenkäsittelytieteiden laitos Periodi / 2015

1. Olio-ohjelmointi 1.1

Johdatus rakenteisiin dokumentteihin

Akateemiset taidot. 2. tapaaminen

Ohjelmistotekniikan menetelmät, kesä 2008

031010P MATEMATIIKAN PERUSKURSSI I 5,0 op

Järjestelmäarkkitehtuuri (TK081702) Lähtökohta. Integroinnin tavoitteet

Vastuuopettaja. Kurssiesite Lausekielinen ohjelmointi I Syksy Lausekielinen ohjelmointi I (5 op) Lausekielinen ohjelmointi I (5 op)

Järjestelmäarkkitehtuuri (TK081702)

Tieto- ja viestintätekniikka. Internetistä toimiva työväline 1,5 osp (YV10TV2) (HUOM! Ei datanomeille)

-projekti. Pasi Häkkinen TTY/hypermedialaboratorio

Transkriptio:

kevät 2005 Yleisiä tietoja kevään kurssista Opettaja: Jukka Huhtamäki Sähköposti: jukka.huhtamaki@tut.fi Huone: Td309, matematiikan laitos / hypermedialaboratorio Puhelin: (03) 3115 2418 (vastaanotto: to 13-14) Luennot: keskiviikko 14-16 (S3) Harjoitukset: ma 14-16, ke 8-10 ja ke 10-12 (Sb204) Harjoitusassistentti: Osmo Haapaniemi Luentorunko Jukka Huhtamäki Esitiedot: Hypermedian perusteet tai vastaavat tiedot (pakollinen) Ohjelmointitaito välttämätön (~ Ohjelmointi II tai Laaja ohjelmointi) Suositeltavia: Seittiohjelmointi, Johdatus tietokantajärjestelmiin ja Rakenteiset dokumentit Kotisivu: http://matriisi.ee.tut.fi/hmopetus/hm-ohj/2005/ Uutisryhmä: tut.mat.hypermedia Suorittaminen: harjoitustyö ja tentti 7307010 Hypermedian ohjelmointi (kevät 2005) 1 7307010 Hypermedian ohjelmointi (kevät 2005) 2 Kurssin sisältö ja suorittaminen Opiskelusta - mitä kurssilla oppii? Hypermedian ohjelmointi jatkaa siitä mihin Hypermedian perusteissa jäätiin. Kurssilla käsiteltävät asiat voidaan jakaa kolmitasoiseksi rakenteeksi: Menetelmät: Hypermediasovelluksen ominaisuudet, joiden toteuttaminen edellyttää ohjelmointia. Verkkopalveluiden yleiset periaatteet ja toiminnallisuus. Mahdollisuudet ja rajoitteet. Sovellukset: Hypermedian yleisten ideoiden toteuttaminen WWW-pohjaisissa verkkopalveluissa. Verkkopalvelun toteuttaminen template-kielen ja relaatiotietokannan avulla. Tekniikka: PHP: Hypertext Preprocessor (PHP) -kieli ja MySQL-tietokanta. Tarkempi tekninen rajaus: Linux/Apache/MySQL/PHP (LAMP). Hypermedian ohjelmointi vs. Seittiohjelmointi: Hypermedian ohjelmoinnissa verkkohypermediaa lähestytään käyttöliittymän ja sovelluksen toiminnallisuuden näkökulmasta. Seittiohjelmoinnissa pääpaino on verkkopalveluiden teknisessä toteuttamisessa (Java-teknologialla). Kurssien suorittaminen rinnakkain on mahdollista. Kurssin suoritus koostuu tentistä ja osana harjoituksia toteutettavasta harjoitustyöstä. 7307010 Hypermedian ohjelmointi (kevät 2005) 3 Näkökulma on erityisesti asioiden sovelluksista riippumattomien perusteiden opiskelu - esim. ohjelmistojen yksityiskohtiin ei kurssilla yksityiskohtaisesti puututa. Motivaatio tälle on esitetyn asian pysyvyys: ohjelmistot ja toteutustekniikat tulevat ja menevät, ideat pysyvät. Kurssin tavoitteena on vastata mm. seuraaviin kysymyksiin: Mitkä ovat ohjelmoinnin tuomat lisäarvot hypermediasovelluksen toteuttamisessa? Mitä keinoja hypermediasovelluksen käyttäjän toiminnan tukemiseen on olemassa? Mitä yleisiä ominaisuuksia verkkopalveluissa on? Miten ominaisuudet voidaan toteuttaa? Miten ne toteutetaan käytännössä? Minkälainen on tietokantapohjaisen verkkopalvelun arkkitehtuuri? Kurssin aikana on tavoitteena käydä läpi joukko yleisiä hypermedian ideoita ja periaatteita, joiden toteuttaminen on mahdollista ainoastaan ohjelmointiin perustuvien ratkaisujen avulla. Esimerkiksi mukautuvan hypermedian toteuttaminen edellyttää käytännössä aina ohjelmointia. 7307010 Hypermedian ohjelmointi (kevät 2005) 4

Mistä tällä kurssilla puhutaan? Mistä tällä kurssilla puhutaan? (jatkuu) Kurssin asiasisältö näyttää kutakuinkin seuraavalta (käsittelyjärjestys ja painotus tarkentuvat kurssin edetessä): Perusteet: asiakas/palvelin-malli, HTML-lomakkeet, Web-ohjelmointi, Xforms? Verkkopalveluarkkitehtuuri: sovellus + tietokanta, yleiset toiminnot (navigaatio, käyttäjän tunnistus, rekisteröityminen, käyttäjänhallinta, ostoskori, vahtipalvelu, uutiset, käyttäjien seuranta,...) Template-kielten perusteet, PHP Tiedon tallentaminen: toteutusvaihtoehdot, tietokannat (tallentaminen, lukeminen, päivittäminen & poistaminen), tiedon siirtäminen järjestelmien välillä Koodin uudelleenkäyttö, sivupohjan erottaminen, modulaarisuus,..., => työn automatisointi ohjelmointikielen avulla Käyttäjä: tunnistaminen, istunto (sovelluksen tila, ostoskori), oikeudet, roolit & profiilit, toiminnan tukeminen (opasteet, virheilmoitukset, sijainti),... Tiedonhaku (Information Retrieval): hakeminen, selaaminen ja suodattaminen, tiedon visualisointi 7307010 Hypermedian ohjelmointi (kevät 2005) 5 Verkkkopalvelun laadukas tekninen toteutus: MVC-mallin idea, suunnittelumalleja PHP:lle,... Sovelluksen räätälöinti: kansainvälistäminen (i18n) ja paikallistaminen (l10n), versiointi,... Tietoturva Monikanavaisuus, laiteriippumattomuus Mukauttaminen (adaptiivisuus) Valmiit ratkaisut: Mambo? Tuleeko muuta mieleen? Huomaa, että yo. lista luettelee kysymyksiä, joihin paneudutaan - ei suoraan luentojärjestystä. Huomattava osa kurssin sisällöstä avautuu harjoitusten, itseopiskelun ja harjoitustyön kautta. 7307010 Hypermedian ohjelmointi (kevät 2005) 6 Harjoitukset ja harjoitustyö Kurssin kuluessa toteutetaan henkilökohtainen harjoitustyö. Harjoitustyön tekeminen ja ohjaus on olennainen osa kurssin harjoituksia. Harjoitustyön aihe on vapaavalintainen: työlle määritellään joukko ominaisuuksia, jotka sen on ainakin toteutettava. Kurssin alussa harjoituksissa käsitellään PHP-kieleen perustuvan verkkopalvelun teknisiä perusteita: HTML-lomakkeet ja lomakkeiden käsittely PHP:lla, PHP-kielen perusteet, relaatiotietokannan käsittely PHP:lla,... Taitojen karttuessa harjoitustehtävät suunnataan harjoitustyön toteuttamiseen: käyttäjän tunnistaminen, kieliversiointi ja paikallistaminen, opasteet ja virheilmoitukset,... Harjoitustyöhön liittyvistä perustoiminnoista jaetaan yhteensä kuusi (6) pistettä, jotka lasketaan mukaan kurssin suoritukseen. Pisteiden kerääminen edellyttää läsnäoloa harjoituksessa: ominaisuuden toteuttaneet opiskelijat laittavat listaan merkinnän ja muutama opiskelija pääsee esittelemään toteutuksensa muille. Perustoimintojen lisäksi opiskelijat voivat toteuttaa harjoitustyöhönsä haastavampia lisäominaisuuksia, joista saaduilla pisteillä voi korvata tentin huonoimman tehtävän. Kurssin suorittaminen numeroina Kurssin päätteeksi järjestetään neljä tehtävää sisältävä tentti, josta voi kerätä korkeintaan (4 x 6 =) 24 pistettä. Kurssin harjoitustyöhön liittyvistä perustoiminnoista ja -ominaisuuksista jaetaan yhteensä (6 x 1 =) 6 pistettä. Lisäominaisuuksista on jaossa yhteensä (3 x 2 =) 6 pistettä. Siis: Kurssista voi kerätä yhteensä 30 pistettä, joista 24 pistettä tulee tentistä ja 6 pistettä harjoitustyöstä. Kurssin suorittaminen edellyttää vähintään 15 pisteen keräämistä. Tentin huonoimman tehtävän pisteet korvataan lisäominaisuuksista kerätyillä pisteillä, mikäli korvaaminen on opiskelijan kannalta edullista. Pisterajat: 0 < 15 1 >= 15 ja < 18 2 >= 18 ja < 21 3 >= 21 ja < 24 4 >= 24 ja < 27 5 >= 27 7307010 Hypermedian ohjelmointi (kevät 2005) 7 7307010 Hypermedian ohjelmointi (kevät 2005) 8

Muistettavaa & käytännön vinkkejä opiskeluun (Kertausta Hypermedian perusteista) Hypermedia WWW. Hypermediaa on mahdollista toteuttaa eri tavoin ja eri menetelmin (Director, Flash, Hypercard, ToolBook, ) Hyvän hypermedian tekeminen edellyttää aina sen sovellusalueen sisällöllistä osaamista, jonka parissa työskennellään. Koska kukaan ei osaa kaikkea, on hypermedian tekeminen ryhmätyötä Käytännön vinkkejä itse opiskeluun: - muista että kaikki hypermedia ei tähtää sähköiseen WWW-sivujen tekemiseen julkaisutoimintaan tai kaupankäyntiin - hypermediaan liittyy myös oikeaa tutkimustyötä, jota tehdään osin itsensä vuoksi (jota ei tällä kurssilla tosin sen kummemmin esitellä) - suhtaudu sovelluksiin, menetelmiin ja teoriaan kriittisesti: kysy koko ajan: miksi näin? mitä tämä tarkoittaa? miten tätä voisi käyttää? mikä tässä on olennaista? - muista että hypermedia & tietokoneet ovat ihmisen ihmiselle tekemiä asioita & kapistuksia: suhtaudu niihin sen mukaisesti (hyvässä ja pahassa) 7307010 Hypermedian ohjelmointi (kevät 2005) 9 Hypermediaa miettiessä kannattaa pitää mielessä teorian suhde käytäntöön, tutkia erikoistapauksia ja miettiä yleistyksiä (esim. mitä tämä merkitsee minulle tai miten tämä ilmenee hypermedian sovelluksissa jotka jo tunnen tai tiedän) Osa kurssilla käsiteltävästä asiasta - ainakin HTML:n auttavat perusteet - lienevät useimmille tietokonetaitoisille tuttuja. Kannattaa kuitenkin muistaa, että kurssilla ollaan, jotta asioita opiskeltaisiin ja opittaisiin, eli: - paikkaa tiedon reiät: yhden hypermedian osa-alueen hallitseminen on hyvä asia, mutta kannattaa yrittää laajentaa näkökulmaansa ja pohtia josko hypermedia olisi muutakin kuin vain X:n tekemistä - ole oma-aloitteinen: jos jokin asia on jo tuttua, syvennä oma-aloitteisesti tietojasi siitä etsimällä itse lisämateriaalia! On virhe on lopettaa aiheen opiskelu vain sillä perusteella, että alku on tuttua. Parempi on käyttää aikansa rakentavasti ja opiskella tasonsa mukaisesti - älä ylenkatso noviiseja: jokainen opiskelee asioita joskus ensimmäistä kertaa. Vaikka vierustoveri kysyisikin mielestäsi turhan helppoja kysymyksiä, vastaa asiallisesti. Tarpeettoman jargonin käyttö ei ole merkki asiantuntevuudesta (pätee myös luennoitsijaan!) Hypermedia on 2000-luvun käsityöläisyyttä: tekemällä oppii 7307010 Hypermedian ohjelmointi (kevät 2005) 10 Kurssin opetusmuoto ja materiaali Kurssin rungon muodostaa tämä käsillä oleva luentorunko. Luentorungon idea & tavoitteet ovat seuraavat: - jäsentää hajanainen asia, erityisesti otsikot, hallittavaan muotoon - toimia muistilappuna siinä, mitä asioita kurssin luennoilla käsiteltiin HUOM! Luentorunko ei missään tapauksessa sisällä koko kurssimateriaalia, vaan ainoastaan jäsentää sitä! Luentorungon lisäksi kurssin sisältöön kuuluvat - luentojen yhteydessä vapaamuotoisesti (esim. taululla, kalvojen tai tietokoneesimerkkien avulla) käsitellyt asiat (otsikkojen sisältö) - luentojen yhteydessä läpikäydyt esimerkit - luentorungossa ja kotisivulla mainitut lähteet (soveltuvin osin, totta kai) - kurssin harjoitukset ja harjoitustyö Luentorunkoa julkaistaan kurssin edetessä kurssin kotisivuilla PDF-muodossa 7307010 Hypermedian ohjelmointi (kevät 2005) 11 Kirjallisuus, oheismateriaali & verkkoaineisto Kurssin rungon muodostavia kalvosarjaa julkaistaan verkossa kurssin edetessä, eikä kurssikirjan ostaminen ole välttämätöntä. Aiheeseen liittyvää kirjallisuutta ovat esim. Lowe, D. & Hall, W., Hypermedia and the Web: An Engineering Approach, John Wiley & Sons, 1999. (*) Wellingin, L. & Thomson, L., PHP And MySQL Web Development (Third Edition), Sams Publishing, 2004. (*) Lowen ja Hallin kirja on harkitsemisen arvoinen vaihtoehto etenkin hypermedian sivu- tai pääaineopiskelijalle. Wellingin ja Thompsonin opus on hyödyllinen, jos tarkoituksena on oppia PHP-ohjelmointia ja verkkopalveluiden toteuttamista PHP-kielellä laajemmin. PHP-ohjelmoinnista löytyy myös materiaalia myös suomeksi: Rantala, A. PHP - web-ohjelmoinnin peruskirja, Docendo, 2002. Heinisuo, R. PHP ja MySQL: Tietokantapohjaiset verkkopalvelut, Talentum, 2004. Rantalan kirja käsittelee aihetta laajemmin ja on myös edullisempi. Heinisuon kirja jää kurssin näkökulmasta turhan yleiselle tasolle myös PHP-ohjelmoinnin osalta. Huomaa, että yksikään kirjoista ei kata kaikkia kurssilla käsiteltäviä asioita. 7307010 Hypermedian ohjelmointi (kevät 2005) 12

World Wide Web Consortium (W3C) on edelleen keskeisessä roolissa kurssilla: The World Wide Web Consortium (ks. http://www.w3.org/ ) PHP-sovellusten kehittäjille suunnattua materiaalia tarjoavat esim. PHP-kielen kotisivut: php.net (http://www.php.net/) Johdanto PHP-kieleen: PHP Tutorial (http://www.w3schools.com/php/) Suunnittelumalleja PHP-sovelluksiin: :: phppatterns() (http://www.phppatterns.com/) Kurssilla käytettävä tekniikkapatteri (LAMP) on vapaasti jaossa verkossa: Linux: maun mukaan esimerkiksi Fedora (http://fedora.redhat.com/) tai Debian (http://www.debian.org/) Apache: http://httpd.apache.org/download.cgi MySQL: http://dev.mysql.com/downloads/ PHP: http://www.php.net/downloads.php Asennusohje: http://www.php.net/manual/en/install.php Kurssin suorittaminen ei edellytä sovellusten asentamista tai konfiguroimista, koska käytössä on valittuja tekniikoita tukeva palvelinkone, johon opiskelijat saavat tunnukset. 7307010 Hypermedian ohjelmointi (kevät 2005) 13 Ohjelmointiin perustuvien ratkaisujen käyttöön hypermediasovellusten toteuttamisessa on useita perusteita, esim. mekaanisen työn automatisointi, aito monikanavajulkaiseminen ja vuorovaikutuksen toteuttaminen Kurssi hypermedian ohjelmointia käsitellään lähinnä Web-pohjaisten verkkopalvelujen näkökulmasta. Syitä: WWW on olennaisilta osiltaan tekstimuotoista hypermediaa (erityisesti HTMLkieli), joten näkymien ohjelmallinen tuottaminen ja muokkaaminen on helppoa esimerkiksi perinteisiin graafisiin käyttöliittymiin verrattuna Valtaosa hypermediasta on tällä hetkellä WWW-pohjaista: kurssin opit voidaan siirtää suoraviivaisesti tuotantokäyttöön (vrt. C++ vs. Scheme ohjelmointikursseilla) WWW-soveltajien käytössä on joukko ilmaisuvoimaisia teknologioita, joiden avulla voidaan helpommin toteuttaa hypermedian edistyneitä ideoita Ohjelmoinnilla on keskeinen rooli myös multimediaan kallellaan olevassa hypermediassa (Toolbook, Flash, Visual basic, jne.). Näissä ohjelmointi keskittyy erityisesti vuorovaikutuksen toteuttamiseen. 7307010 Hypermedian ohjelmointi (kevät 2005) 14 Mekaanisen työn automatisointi Monipuolisten navigoinnin apuvälineiden toteuttaminen voidaan tehdä ohjelmallisesti: Rakenteelliset linkit (murupolku, lineaarinen navigaatio, käyttäjän sijainnin esittävä valikko) voidaan kaikki tuottaa yhden rakennekuvauksen perusteella ohjelmallisesti Myös assosiatiivisten linkkien tuottaminen voidaan automatisoida määrittelemällä säännöt näkymien yhdistämiseen ohjelmointikielen avulla (vrt. RMM-malli) Tietosisällön uudelleenkäyttö onnistuu esimerkiksi siten, että tiedot tallennetaan tietokantaan tai määrämuotoiseen tekstitiedostoon ja julkaistaan halutuissa muodoissa ohjelmointikielen avulla Hypermediasovelluksen tietosisällön päivittämiseen voidaan rakentaa lomakkeisiin perustuvat toiminnot Tarkoitukseen soveltuvan ohjelmointikielen hallinta antaa mahdollisuuden prototypoinnin tai Rapid Application Development (RAD) -menetelmän hyödyntämiseen hypermediasovelluksen kehitystyössä 7307010 Hypermedian ohjelmointi (kevät 2005) 15 Monikanavajulkaiseminen Nykyaikainen WWW-arkkitehtuuri erottaa toisistaan resurssin ja sen representaation. Ajatuksena on se, että resurssin yksilöivä URI-tunniste säilyy samana päätelaitteesta, käyttäjästä tai käyttötilanteesta (=julkaisukonteksti) riippumatta. Resurssin erilaiset representaatiot voidaan toteuttaa kustannustehokkaasti monikanavajulkaisemisen periaatteiden mukaisesti Monikanajulkaisujärjestelmä voidaan toteuttaa kahdella tavalla: Räätälöity julkaiseminen (Tailored Publishing): resurssista julkaistaan kiinteä joukko representaatiota, joista valitaan tiettyyn julkaisukontekstiin parhaiten sopiva vaihtoehto. Joustava julkaiseminen (Flexible Publishing): resurssin representaatio räätälöidään pyynnön mukana välitettävän julkaisukontekstin kuvauksen perusteella Sekä räätälöity että joustava julkaiseminen voidaan toteuttaa ohjelmointikieleen perustuvan ratkaisun avulla. Joustavan julkaisemisen toteuttaminen edellyttää aina ohjelmointia. Räätälöity julkaiseminen voidaan toteuttaa esimerkiksi XML-kielen ja XSL-muunnosten avulla (=> Rakenteiset dokumentit) 7307010 Hypermedian ohjelmointi (kevät 2005) 16

Vuorovaikutuksen toteuttaminen Käyttäjän syötteeseen reagointi edellyttää linkkien avulla tapahtuvaa navigointia lukuun ottamatta aina ohjelmointia. Esimerkiksi WWW-lomakkeen käsittely tapahtuu aina jonkin ohjelmointikieleen perustuvan ratkaisun avulla. Esimerkkejä toiminnoista: Hypermediasovelluksen keskeisiä ominaisuuksia ovat esimerkiksi hakutoiminto ja mahdollisuus sisällön kommentointiin (annotointiin) Verkkopalvelun yleisiä toimintoja ovat esimerkiksi rekisteröityminen, käyttäjän tunnistaminen sekä istunnon luominen ja hallinta. Tieto sovelluksessa tapahtuvista muutoksista voidaan välittää käyttäjälle uutisvirtojen avulla. Käyttäjä voi asettaa verkkopalveluun vahdin, joka raportoi muutoksista käyttäjän määrittelemien ehtojen perusteella. Mukautuvassa (adaptiivisessa) hypermediassa käyttäjästä luodaan malli, jonka perusteella sovelluksen sisältö ja navigaatio mukautetaan käyttäjälle sopivaksi. Käyttäjän mieltymykset voidaan selvittää joko esittämällä suoria kysymyksiä tai seuraamalla käyttäjän toimintaa. Käyttäjän toimintaa voidaan myös verrata muihin käyttäjiin ja ohjata käyttäjää vertailun perusteella. Käyttäjän tukeminen opasteiden ja virheilmoitusten avulla. Ohjelmointi: asiakas vai palvelin? Asiakas-palvelin mallin mukaan toimivassa sovelluksessa ohjelmointiin perustuvia ratkaisuja voidaan yleensä toteuttaa sekä asiakas- että palvelinpäässä: Tukeva asiakas (Fat/Thick/Smart client): suuri osa sovelluksen toiminnoista on toteutettu osana asiakassovelluksen toiminnallisuutta Laiha asiakas (Thin client): sovelluksen toiminnallisuus on toteutettu osana palvelinsovellusta, asiakkaalle ainoastaan välitetään näkymiä sovelluksesta WWW mahdollistaa teoriassa sekä tukevan että laihan asiakkaan toteuttamisen. Asiakaspään ratkaisuiden toimintavarmuus on WWW:ssä kuitenkin erittäin huono ja erilaiset toteutustekniikat (JavaScript, ECMAScript, Java-sovelmat, Flash, ActiveX,...) poikkeavat toisistaan merkittävästi. Ongelmien takia kurssilla keskitytään palvelimella toteutettaviin ratkaisuihin. Asioita pyritään mahdollisuuksien mukaan käsittelemään niin yleisellä tasolla, että ratkaisut ovat siirrettävissä teknologiasta toiseen. 7307010 Hypermedian ohjelmointi (kevät 2005) 17 7307010 Hypermedian ohjelmointi (kevät 2005) 18 Lopuksi Viime vuosituhannen loppupuolella hypermedia kehitettiin tieteenä erittäin pitkälle. Mukautuvan hypermedian tutkimuksessa tuotettiin joukko tekoälyn ideoihin perustuvia malleja ja ratkaisuja, joiden vieminen tuotantokäyttöön ei sen aikaisilla välineillä ollut mahdollista eikä edes tarpeellista: vasta WWW:n räjähdysmäinen kehitys on tuonut hypermediasovellukset suuren yleisön ulottuville. Lieneekö syynä NIH-ilmiö vai mikä, mutta WWW-maailmassa on nähtävissä valitettava suuntaus keksiä pyörä uudestaan: olemassa olevien ideoiden soveltamisen sijaan sovelluksien toimintoja ja ominaisuuksia suunnitellaan alusta asti uudestaa. WWW-soveltajien käytössä olevat ilmaisuvoimaiset ohjelmointikielet, erilaiset sovellusten toteuttamista helpottavat sovelluskehykset ja W3C:n Semanttinen Web antavat todellisen mahdollisuuden hypermedian unohdettujen ideoiden toteuttamiseen. Kurssin keskeisenä tavoitteena on tutustua joukkoon hypermedian tutkimuksessa kehitettyjä ideoita ja kertoa myös se, miten ideat voidaan toteuttaa käytössä olevien tekniikoiden avulla. 7307010 Hypermedian ohjelmointi (kevät 2005) 19