MATHM Hypermedian ohjelmointi (4 op) kevät 2007

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

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

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

3 Verkkopalveluarkkitehtuuri

3 Verkkopalveluarkkitehtuuri

IT-OSAAJA, TIETOJENKÄSITTELYN ERIKOISTUMISOPINNOT

3 Verkkopalveluarkkitehtuuri

5 Verkkopalvelun sisällön hallinta

9 Edistynyt PHP-ohjelmointi

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

10 Nykyaikainen WWW-arkkitehtuuri

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

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

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

Kurssin hallinta -työväline

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

VYPEdit verkkosivualusta SVY-toimijoille

Hajautettujen sovellusten muodostamistekniikat, TKO_2014 Johdatus kurssiin

T harjoitustyö, kevät 2012

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

A4.1 Projektityö, 5 ov.

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

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

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

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

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

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

Projektinhallintaa paikkatiedon avulla

T Harjoitustyöluento

Kurssin aloitus. AS XML-kuvauskielten perusteet Janne Kalliola


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

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

VisualStudio Pikaopas, osa 1: WEB sivujen suunnittelu

T Harjoitustyöluento

7 Mukautuvat verkkopalvelut

6 Mukautuvat verkkopalvelut

T harjoitustehtävät, syksy 2011

Digitaalisen median tekniikat Luento 1: Intro

Ohjelmistoarkkitehtuurit. Kevät

Kurssin tavoitteista uennot. 4.1 Projektityö, 5 ov. Esitietovaatimukset

Paikkatiedot ja Web-standardit

HAHMONTUNNISTUKSEN PERUSTEET

T Johdatus tietoliikenteeseen 5 op. Kevät 2013

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

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

Tervetuloa! Matematiikka tutuksi

Ohjelmistoprosessit ja ohjelmistojen laatu Ohjelmistoprosessit ja ohjelmistojen laatu (4op)

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

2 Web-lomakkeet. HTML-lomakkeet. Lomakkeiden perusteet

HELIA 1 (11) Outi Virkki Tiedonhallinta

EDUBOX opetusvideopalvelu


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

T Ohjelmistojen määrittely- ja suunnittelumenetelmät

Web sovelluksen kehittäminen sähkönjakeluverkon suojareleisiin

Ohjelmoinnin perusteet Y Python

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

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

Tieto- ja viestintätekniikan opinnot Jyväskylän yliopistossa

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

Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista

ohjelman arkkitehtuurista.

PLA Mobiiliohjelmointi. Mika Saari

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

Ohjelmoinnin peruskurssi Y1

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. FT Ari Viinikainen

Tämän lisäksi listataan ranskalaisin viivoin järjestelmän tarjoama toiminnallisuus:

Ohjelmistotekniikan menetelmät, kesä 2008

HAHMONTUNNISTUKSEN PERUSTEET

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

WebOodin opinto-opas ja ilmoittautuminen

P e d a c o d e ohjelmointikoulutus verkossa

XML johdanto, uusimmat standardit ja kehitys

1. Olio-ohjelmointi 1.1

ecome Markkinoiden kehittynein julkaisujärjestelmä

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

MS-C2128 Ennustaminen ja Aikasarja-analyysi, 5 op Esittely

W3C ja Web-teknologiat

Myös opettajaksi aikova voi suorittaa LuK-tutkinnon, mutta sillä ei saa opettajan kelpoisuutta.

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

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

811393A JOHDATUS TUTKIMUSTYÖHÖN

Luennot vuorovaikutuskeinona Peda-Forum

031075P MATEMATIIKAN PERUSKURSSI II 5,0 op

Ohjelmistojen mallintaminen. Luento 11, 7.12.

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

Ohjelmistoarkkitehtuurit. Syksy 2008

OPISKELUTYÖN MITOITUS Opetuksen suunnittelun työväline, jolla arvioidaan opiskelijan työmäärää suhteessa 1 PERUSTIEDOT

Työkalujen merkitys mittaamisessa

4 Verkkopalvelun toteuttaminen

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

DEE Aurinkosähkön perusteet (Foundations of Solar Power) Sali SE211 Keskiviikkoisin ja perjantaisin klo

YRITYSVASTUU JA -ETIIKKA: KNOWING, DOING, BEING

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

MATEMATIIKAN PERUSKURSSI b

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

Transkriptio:

MATHM-57100 Hypermedian ohjelmointi (4 op) kevät 2007 Luentorunko Jukka Huhtamäki MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 1

Yleisiä tietoja kevään toteutuskerrasta Opettaja: Jukka Huhtamäki (vastaanotto: to 13-14) Sähköposti: jukka.huhtamaki@tut.fi Huone: TD309, matematiikan laitos / hypermedialaboratorio Puhelin: (03) 3115 2418 Luennot: tiistai 10-12 ja keskiviikko 12-13 (S3) Harjoitukset: ma 12-14, ke 8-10 ja te 12-14 (SB204) Harjoitusassistentti: Jaakko Salonen (VOA: ke 10-11 TD310) Esitiedot: Hypermedian perusteet tai vastaavat tiedot (pakollinen) Ohjelmointitaito välttämätön (~ Ohjelmointi II tai Laaja ohjelmointi) Suositeltavia: Seittiohjelmointi, Johdatus tietokantoihin ja Rakenteiset dokumentit Kotisivu: http://matriisi.ee.tut.fi/hmopetus/hm-ohj/2007/ Blogi: http://matriisi.ee.tut.fi/hypermedia/blogs/hm-ohj2007/ (Uutisryhmä: tut.mat.hypermedia) Suorittaminen: harjoitustyö ja tentti MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 2

Opintojakson sisältö ja suorittaminen Hypermedian ohjelmointi jatkaa siitä, mihin Hypermedian perusteissa lopetetaan. Keskiössä on vuorovaikutteisten (Web-)hypermediasovellusten toiminnallisuus, jota tarkastellaan teknisellä painotuksella. Opintojakson voidaan jakaa kolmeen eritasoiseen kokonaisuuteen: Menetelmät: Hypermediasovelluksen ominaisuudet, joiden toteuttaminen edellyttää ohjelmointia. Verkkopalveluiden yleiset periaatteet ja toiminnallisuus. Hajautettu hypermedia. Mahdollisuudet ja rajoitteet. Sovellukset: Hypermedian yleisten ideoiden toteuttaminen WWWteknologiaan perustuvissa verkkopalveluissa. Verkkopalvelun toteuttaminen sivupohjakielen (template-kieli) ja relaatiotietokannan avulla. Tekniikka: PHP: Hypertext Preprocessor (PHP) -kieli ja MySQL-tietokanta. Tarkempi tekninen rajaus: Linux/Apache/MySQL/PHP (LAMP). Vaihtoehtoisesti Ruby on Rails tai Python. Suoritus koostuu tentistä ja osittain osana harjoituksia toteutettavasta harjoitustyöstä. MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 3

Haluatko Web-ohjelmoijaksi? Opiskelijoita, jotka haluavat ottaa Web-ohjelmoinnin perusteet ja periaatteet kerralla hallintaan, kannustetaan suorittamaan Hypermedian ohjelmoinnin ohella myös opintojakso Seittiohjelmointi. Opintojaksot tarkastelevat suurelta osin samoja teemoja, mutta näkökulmat ja painotukset eroavat toisistaan: Hypermedian ohjelmointi lähestyy verkkohypermediaa käyttöliittymän, tietosisällön ja sovelluksen toiminnallisuuden näkökulmista Seittiohjelmoinnissa pääpaino on verkkopalveluiden teknisesti laadukkaassa totetuksessa (Java-teknologialla) Opintojaksojen sisältö on pyritty jäsentämään ja tahdistamaan siten, että niiden suorittaminen rinnakkain on mahdollista ja ennen kaikkea hyödyllistä. Työskentelyn tueksi on koottu kehitysympäristö (IDE), joka tukee sekä Javalla että PHP-kielellä tapahtuvaa kehitystyötä Ota kuitenkin huomioon Seittiohjelmoinnin esitietovaatimukset: Olio-ohjelmointi (pakollinen) ja Tietokantajärjestelmien suunnittelu ja toteutus (suositeltava) sekä oletettavasti suureksi nouseva työmäärä. MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 4

Opiskelusta - mitä opintojaksolla oppii? Näkökulma on erityisesti asioiden sovelluksista riippumattomien perusteiden opiskelu - esim. ohjelmistojen yksityiskohtiin ei opintojakson aikana yksityiskohtaisesti puututa. Motivaatio tälle on esitetyn asian pysyvyys: ohjelmistot ja toteutustekniikat tulevat ja menevät, ideat pysyvät. Opintojakson tavoitteena on vastata mm. seuraaviin kysymyksiin: Mitkä ovat ohjelmoinnin tuomat lisäarvot hypermediasovelluksen toteuttamisessa? Mitä vaihtoehtoisia toteutusteknologioita on olemassa? Miten teknologia valitaan? Mitä yleisiä ominaisuuksia verkkopalveluissa on? Miten ominaisuudet voidaan toteuttaa? Miten ne toteutetaan käytännössä? Mitä keinoja hypermediasovelluksen käyttäjän toiminnan tukemiseen on olemassa? Mitä toteutuksessa on otettava huomioon? Minkälainen on tietokantapohjaisen verkkopalvelun arkkitehtuuri? Opintojakson 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. MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 5

Mistä tällä opintojaksolla puhutaan? Opintojakson asiasisältö näyttää kutakuinkin seuraavalta: Perusteet: asiakas/palvelin-malli vs. kolmikerrosmalli, HTML-lomakkeet, Webohjelmointi, 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,...) Sivupohjakielten perusteet, PHP-ohjelmoinnin perusteet 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 (hakeminen, selaaminen ja suodattaminen) ja tiedon visualisointi MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 6

Mistä tällä opintojaksolla puhutaan? (jatkuu) Verkkkopalvelun laadukas tekninen toteutus: Model-View-Controller -mallin idea, suunnittelumalleja PHP:lle, valmiit sovelluskehykset ja niiden soveltaminen,... Räätälöinti: kansainvälistäminen (i18n) ja kotoistaminen (l10n), versiointi,... Tietoturva Monikanavaisuus, laiteriippumattomuus Mukauttaminen (adaptiivisuus) Ohjelmointi Semanttisessa Webissä Toteutustyön tehostaminen, ketterä ohjelmistokehitys Hajautettu Web-hypermedia: hypermedia as the engine of application state (Fielding 2000) Lisäksi paljon käytännön esimerkkejä ja muuta asiaan liittyvää Huomaa, että yo. lista luettelee kysymyksiä, joihin paneudutaan - ei suoraan luentojärjestystä. Käsiteltävät asiat ja painotukset muuttuvat vuosittain. Huomattava osa opintojakson sisällöstä avautuu harjoitusten, itseopiskelun ja harjoitustyön kautta. MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 7

Harjoitukset ja harjoitustyö Toteutuskerran kuluessa opiskelijat tekevät henkilökohtaisen harjoitustyön. Harjoitustyön tekeminen ja ohjaus on olennainen osa harjoituksia. Harjoitustyön aihe on vapaavalintainen: työlle määritellään ainoastaan joukko ominaisuuksia, jotka sen on vähintään toteutettava. Opintojakson 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 ominaisuuksien (käyttäjän tunnistaminen, istunnonhallinta, kieliversiointi, opasteet ja virheilmoitukset,...) toteuttamiseen. Harjoitustyöhön liittyvistä perusominaisuuksista jaetaan yhteensä kuusi (6) pistettä, jotka lasketaan mukaan 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 tai erikoistapauksena perusominaisuuksista jaettavat pisteet. MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 8

Suorittaminen numeroina Opintojakson toteutuskerran päätteeksi järjestetään neljä tehtävää sisältävä tentti, josta voi kerätä korkeintaan (4 x 6 =) 24 pistettä. Harjoitustyöhön liittyvistä perustoiminnoista ja -ominaisuuksista jaetaan yhteensä (6 x 1 =) 6 pistettä. Lisäominaisuuksista on jaossa yhteensä 6 pistettä. Siis: opiskelija voi kerätä yhteensä 30 pistettä, joista 24 pistettä tulee tentistä ja 6 pistettä harjoitustyöstä. Suorittaminen edellyttää vähintään 12 pisteen keräämistä tentistä ja yhteensä 15 pisteen keräämistä. Pienimmät yksittäisestä tehtävästä kerätyt pisteet korvataan lisäominaisuuksista jaetuilla pisteillä, mikäli korvaaminen on opiskelijan kannalta edullista. Pisterajat: 0 < 15 (ja >= 12 tentistä) 1 >= 15 ja < 18 2 >= 18 ja < 21 3 >= 21 ja < 24 4 >= 24 ja < 27 5 >= 27 MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 9

Muistettavaa & käytännön vinkkejä opiskeluun (Kertausta Hypermedian perusteista) Hypermedia WWW. Hypermediaa on mahdollista toteuttaa eri tavoin ja eri menetelmin (Flash, Visual Basic, Delphi) Hyvän hypermedian tekeminen edellyttää aina sen sovellusalueen sisällöllistä osaamista, jonka parissa työskennellään. Tieteenalan laajoista osaamisvaatimuksista johtuen hypermedian tekeminen on aina 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ä opintojaksolla 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) MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 10

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) Kannattaa muistaa, että opintojakso suoritetaan siksi, että 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. MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 11

Opintojakson opetusmuoto ja materiaali Oppimateriaalin 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 oppimateriaalia, vaan ainoastaan jäsentää sitä! Luentorungon lisäksi opintojakson 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) - harjoitukset ja harjoitustyö Luentorunkoa julkaistaan luentojen edetessä opintojakson toteutuskerran kotisivuilla PDF-muodossa. Materiaali on lisäksi kopiotavissa TiTe-kiltaan sijoitettavasta mapista. MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 12

Kirjallisuus, oheismateriaali & verkkoaineisto Oppimateriaalin rungon muodostavaa kalvosarjaa julkaistaan verkossa toteutuskerran edetessä. Oppikirjan ostaminen ei ole välttämätöntä. Aiheeseen liittyvää kirjallisuutta: 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. Web-ohjelmointi, Docendo, 2005. Heinisuo, R. PHP ja MySQL: Tietokantapohjaiset verkkopalvelut, Talentum, 2004. Rantalan kirja käsittelee aihetta laajemmin ja on myös edullisempi. Heinisuon kirja jää opintojakson näkökulmasta turhan yleiselle tasolle myös PHP-ohjelmoinnin osalta. Huomaa, että yksikään kirjoista ei kata opintojakson koko sisältöä. MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 13

W3C on Hypermedian perusteiden tavoin keskeisessä roolissa: 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/) MATHM-57100 Hypermedian ohjelmointi (4 op) Johdanto PHP-kieleen: PHP Tutorial (http://www.w3schools.com/php/) Suunnittelumalleja PHP-sovelluksiin: hae php design pattern Opintojaksolla käytettävä tekniikkapatteri (LAMP) on vapaasti jaossa verkossa: Linux: maun mukaan esimerkiksi Fedora (http://fedora.redhat.com/), Debian (http://www.debian.org/) tai Ubuntu (http://www.ubuntu-fi.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 Suorittaminen ei edellytä sovellusten asentamista tai säätämistä, koska käytössä on valittuja tekniikoita tukeva palvelinkone, johon opiskelijat saavat tunnukset. MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 14

1 Hypermedia ja ohjelmointi 1 Hypermedia ja ohjelmointi Ohjelmointiin perustuvien ratkaisujen käyttöön hypermediasovellusten toteuttamisessa on useita perusteita, esim. mekaanisen työn automatisointi, aito monikanavajulkaiseminen ja vuorovaikutuksen toteuttaminen Tällä opintojaksolla 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: opintojakson opit voidaan siirtää suoraviivaisesti tuotantokäyttöön (vrt. C++ vs. Scheme ohjelmointikursseilla) WWW-soveltajien käytössä on joukko ilmaisuvoimaisia teknologioita, joiden avulla voidaan aikaisempaa helpommin toteuttaa edistynyttä hypermediaa Ohjelmoinnilla on keskeinen rooli myös multimediaan tai tiedon visualisointiin kallellaan olevassa hypermediassa (Toolbook, Flash, Visual basic, Java). Näissä ohjelmointi keskittyy erityisesti vuorovaikutuksen toteuttamiseen. MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 15

1 Hypermedia ja ohjelmointi 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 ohjelmointikielellä toteutettujen rutiinien avulla Hypermediasovelluksen tietosisällön päivittämiseen voidaan rakentaa lomakkeisiin perustuvat toiminnot Tarkoitukseen soveltuvan ohjelmointikielen hallinta antaa mahdollisuuden prototypointiin, Rapid Application Development (RAD) menetelmän hyödyntämiseen tai ketterän ohjelmistokehityksen periaatteiden noudattamiseen hypermediasovelluksen kehitystyössä => suunnittelu- ja tuotantotyön tehostaminen MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 16

1 Hypermedia ja ohjelmointi 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) MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 17

1 Hypermedia ja ohjelmointi 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 ohjelmointikielellä X toteutetulla ratkaisulla. 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 ohjelmallisesti koostettujen 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. MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 18

1 Hypermedia ja ohjelmointi Ohjelmointi: asiakas vai palvelin? Asiakas-palvelin mallin mukaan toimivassa sovelluksessa ohjelmointiin perustuvia ratkaisuja voidaan yleensä toteuttaa sekä asiakas- että palvelinpäässä: Älykäs asiakas (Fat/Thick/Smart client): suuri osa sovelluksen toiminnoista on toteutettu osana asiakassovelluksen toiminnallisuutta Yksinkertainen asiakas (Thin client): sovelluksen toiminnallisuus on toteutettu osana palvelinsovellusta, asiakkaalle välitetään ainoastaan näkymiä sovelluksesta WWW mahdollistaa sekä älykkään että yksinkertaisen asiakkaan toteuttamisen. Asiakaspään ratkaisuiden toimintavarmuus on WWW:ssä kuitenkin erittäin huono ja erilaiset toteutustekniikat (Ajax, JavaScript/ECMAScript, Java-sovelmat, Flash, ActiveX,...) poikkeavat toisistaan merkittävästi. Ongelmien takia kurssilla keskitytään palvelimella toteutettaviin ratkaisuihina, unohtamatta kuitenkaan asiakaspäässä toteutetun vuorovaikutuksen mahdollisuuksia käyttäjän tukemiseen Asioita pyritään mahdollisuuksien mukaan käsittelemään niin yleisellä tasolla, että ratkaisut ovat siirrettävissä teknologiasta toiseen. MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 19

1 Hypermedia ja ohjelmointi Lopuksi Hypermedia kehitettiin tieteenä viime vuosituhannen loppupuolella erittäin pitkälle. Mukautuvan hypermedian tutkimuksessa tuotettiin joukko tekoälyn tutkimukseen 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 uudestaan. 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. Opintojakson keskeisenä tavoitteena on tutustua joukkoon hypermedian tutkimuksessa kehitettyjä ideoita ja kertoa myös se, miten ideat voidaan käytännössä toteuttaa nykyaikaisten ilmaisuvoimaisten teknologioiden avulla. MATHM-57100 Hypermedian ohjelmointi (kevät 2007) 20