Internet-pohjaisen oppimisympäristön laadinta. Luento 3

Samankaltaiset tiedostot
Internet-pohjaisen oppimisympäristön laadinta. Luento 3

Internet-pohjaisen oppimisympäristön laadinta. Luento 4

Javascript 2: Ohjelmointikielen ominaisuudet. Jaana Holvikivi Metropolia

Alkuun HTML5 peliohjelmoinnissa

HTML5 video, audio, canvas. Mirja Jaakkola

JWT 2016 luento 11. to klo Aulikki Hyrskykari. PinniB Aulikki Hyrskykari

Digitaalisen median tekniikat. Luento 4: JavaScript

Hot Potatoes Korvaava tehtävä koulutusteknologian perusopintojen luennosta ja taitotyöpajasta

HTML & CSS. HTML (HyperText Markup Language) Antti Koivisto. ! HTML on sivujen kuvauskieli.

Verkkosivut perinteisesti. Tanja Välisalo

Lisätehtävät. Frantic 2015 sivu 1

XHTML - harjoitus. Tehtävä1: Tee xhtml tiedosto käyttäen notepad (muistio) ohjelmaa. Tiedoston tallennus notepad (muistio) ohjelmassa:

ELM GROUP 04. Teemu Laakso Henrik Talarmo

4. Lausekielinen ohjelmointi 4.1

AJAX-konsepti AJAX. Asynkronisuus. Nykyisten web-ohjelmien ongelmia. Asynchronous JavaScript And XML

WWW-ohjelmoinnin kokonaisuus. WWW-OHJELMOINTI 1 Merkkauskielet. Merkkauskielten idea. Merkkauskielet (markup languages) Merkkauskielten merkitys

Järjestelmäarkkitehtuuri (TK081702) AJAX, Asynchronous JavaScript And XML. AJAX, Asynchronous JavaScript And XML

Näin järjestän ohjelmointikurssin, vaikka en ole koskaan ohjelmoinut

Verkkosivujen toiminnallisuus (JavaScript)

Suvi Junes Tietohallinto / Opetusteknologiapalvelut 2012

Ohjelmoinnin perusteet Y Python

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python

Entiteetit erotetaan muusta tekstistä & ja puolipiste. esim. copyright-merkki näkyy sivulla

Digitaalisen median tekniikat. Luento 3: CSS

P e d a c o d e ohjelmointikoulutus verkossa

Ohjelmointikielet ja -paradigmat 5op. Markus Norrena

(JavaScript) Aleksi O Connor DI Informaatioverkostot. Markku Laine Mediatekniikan laitos

C-ohjelmoinnin peruskurssi. Pasi Sarolahti

Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python

JavaScript alkeet Esimerkkikoodeja moniste 2 ( Metropolia)

WWW-Sivustojen suunnittelu. Miten WWW toimii. Suunnittelun lähtökohdat

WWW-Sivustojen suunnittelu

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

CSS - tyylit Seppo Räsänen

Tyylien käyttö. <LINK href="mystyle.css" rel="stylesheet" type="text/css"> 5 WWW-hypermedian perusta: HTML

11/20: Konepelti auki

Visma Fivaldi. Ohjeet Java web startin ja HTML5-työkalun aktivointiin

Luento 3. Jouni Ikonen - Jouni.Ikonen lut.fi

,QWHUQHWVHODLPHQNl\WWlPLQHQ±,QWHUQHW([SORUHU

Harjoitustyö 3: Verkkosivujen toiminnallisuus (JavaScript)

Ohjelmoinnin perusteet Y Python

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö

Harjoitustyö 5: 2D-animointi verkkosivuilla (HTML5 Canvas)

HTML5 & CSS3 perusteet

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

Harjoitustyö: virtuaalikone

JavaScript alkeet. Intro Muuttujat Dialogi boxit. Metropolia 2011

C-ohjelmointikielen perusteet, osa 1

Taustaa. CGI-ohjelmointi

815338A Ohjelmointikielten periaatteet Harjoitus 5 Vastaukset

Pedacode Pikaopas. Java-kehitysympäristön pystyttäminen

Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin.

Internetin hyödyt ja vaarat. Miten nettiä käytetään tehokkaasti hyväksi?

Selaimen asetukset. Toukokuu (7) Selaimen asetukset Tikon Oy. All rights reserved.

Kirjaudu sisään palveluun klikkaamalla Omat kartat -painiketta.

ARVO - verkkomateriaalien arviointiin

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

Internet-pohjaisen oppimisympäristön laadinta

PROJEKTIDOKUMENTAATIO MONIPALVELU HALONEN

Luento 12: XML ja metatieto

JS-kehitys - yleiskuvaus. TIEA255 - Juho Vepsäläinen

Järjestelmäarkkitehtuuri (TK081702)

Aulikki Hyrskykari. JWT Hyrskykari, SIS, Tampereen yliopisto 4/23/2014

Ohjelmointi 2 / 2010 Välikoe / 26.3

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

OHJE Jos Kelaimeen kirjautuminen ei onnistu Mac-koneella Sisällys

Java-kielen perusteet

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti

PLA Mobiiliohjelmointi. Mika Saari

MOODLE 2.5 OPISKELIJAN PIKAOPAS. Hyvinkään lukiot. Versiota päivitetään myöhemmin

ITKP102 Ohjelmointi 1 (6 op)

Erittäin nopea tapa saada kehitysympäristö php:lle pystyyn Voidaan asentaa muistitikulle

Digitaalisen median tekniikat JavaScript Harri Laine 1

Digitaalisen median tekniikat JavaScript

Dart. Ryhmä 38. Ville Tahvanainen. Juha Häkli

Hieman linkkejä: lyhyt ohje komentoriviohjelmointiin.

Ohjelmoinnin peruskurssien laaja oppimäärä

Kylänetti projektin sivustojen käyttöohjeita Dokumentin versio 2.10 Historia : 1.0, 1.2, 1.6 Tero Liljamo / Deserthouse, päivitetty 25.8.

Tikon Web-sovellukset

Ohjelmoinnin perusteet Y Python

Se mistä tilasta aloitetaan, merkitään tyhjästä tulevalla nuolella. Yllä olevassa esimerkissä aloitustila on A.

KÄYTTÖOHJE. Servia. S solutions

Sisällys. 11. Javan toistorakenteet. Laskurimuuttujat. Yleistä

Ohjelmoinnin peruskurssien laaja oppimäärä

Sähköiset sisällöt yleisiin kirjastoihin - hanke Turku Aija Laine aija.laine@turku.fi

XML prosessori. XML prosessointi. XML:n kirjoittaminen. Validoiva jäsennin. Tapahtumaohjattu käsittely. Tapahtumaohjattu käsittely.

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo

H T M L eli kuinka laadin itselleni päheät kotisivut. Janne Käki

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2

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

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

TIE PRINCIPLES OF PROGRAMMING LANGUAGES Eiffel-ohjelmointikieli

Muistutus aikatauluista

Tutkitaan sitten HTML-dokumenttien anatomiaa, jotta päästään käsiksi rakenteisten dokumenttien käsitteistöön esimerkkien kautta.

Tikon Web-sovellukset

Digitaalisen median tekniikat. JSP ja XML

HTML ja CSS. Tästä se lähtee: portfolio-sivusto. Sivuston pääkansio, jonka sisällä on kaikki sivustoon kuuluvat alikansiot ja tiedostot.

ASM-kaavio: reset. b c d e f g. 00 abcdef. naytto1. clk. 01 bc. reset. 10 a2. abdeg. 11 a3. abcdg

HTML5 -elementit jatkuu

WWW-sivut HTML-kielellä esitettyä hypertekstiaineistoa

Transkriptio:

Internet-pohjaisen oppimisympäristön laadinta Luento 3

Aiheena tänään Toteutustekniikoista yleisesti Selainriippumattomuudesta Hot Potatoes -ohjelmasta JavaScriptin perusteista 31.01.2013 IPOPPLA 2

Toteutustekniikoista yleisesti Kurssilla suositeltavat toteutustekniikat: JavaScript PHP CGI (Perl, Python, tmv.) Java Hot Potatoes HTML5 JavaScript näistä helpoin, ei tarvita erillistä suoritusympäristöä tai apuohjelmia 31.01.2013 IPOPPLA 3

31.01.2013 IPOPPLA 4 Toteutustekniikoista yleisesti Valmiita koodinpätkiä voi käyttää, mutta työssä ilmoitettava, mitkä osat on lainattu muualta Harjoitustyössä oma panos oleellista, oli se sitten itse tehtyä koodia, tekstisisältöä tai kuvia Ei kannata yrittää tehdä liian monimutkaista. Yksinkertaisetkin ratkaisut voivat olla hienoja, jos ne sulautuvat sujuvasti muuhun toteutukseen

Toteutustekniikoista yleisesti Lähde: Reichert, R. and Hartmann, W. (2004). On the Learning in E-Learning. Proceedings of EDMEDIA 2004. June 23-26, 2004, Lugano, Switzerland, AACE 31.01.2013 IPOPPLA 5

Toteutustekniikoista yleisesti Kurssilla oletetaan, että kaikki osaavat ennalta ainakin HTML: n (esitietovaatimuksena JWT) Javascript Oletettavasti useimman työn toteutustapa Helppo, kohtuullisen suoraviivainen menetelmä Luennoilla käydään läpi perusteita, erilaisia valmiita ratkaisumalleja ja -esimerkkejä harjoitustöiden lähtökohdiksi 31.01.2013 IPOPPLA 6

Toteutustekniikoista yleisesti Mahdoton tehtävä: Ohjelmointikielen opettaminen täysin kahdessa luennossa Pyritään käymään läpi tietyt perusasiat, joista on helppo jatkaa eteenpäin Kurssin koodiesimerkkisivustolta löytyy linkkejä erilaisiin hyödyllisiin lähteisiin Ohjelmointi on siis opeteltava itsenäisesti, netti on tulvillaan oppaita ja esimerkkejä 31.01.2013 IPOPPLA 7

Selainriippumattomuus Yksi hyvän suunnittelun lähtökohdista Yksi harjoitustyön arviointikriteereistä Saavutetaan noudattamalla standardeja Voidaan nähdä kuuluvaksi WWW-sivustoissa osaksi käytettävyyttä Mahdoton tavoite? 31.01.2013 IPOPPLA 8

Selainriippumattomuus Tärkeitä seikkoja: Kuinka nopeasti WWW-tekniikat kehittyvät Selainohjelmat ja -versiot tulevat ja menevät Kehityksen seuraavia askelia on vaikea ennustaa Olennaista eivät ole vuosiluvut Helpointa on tukeutua standardeihin, jotta oppimisympäristön elinikä ei jää hyvin lyhyeksi 31.01.2013 IPOPPLA 9

31.01.2013 IPOPPLA 10 Selainriippumattomuus Validaattorit apuna standardien noudattamisessa, esimerkiksi W3C:n validaattorit: HTML-validointi, http://validator.w3.org/ CSS-validointi, http://jigsaw.w3.org/css-validator/ Lukuisia muita tarjolla Selainten lisäosat Chrome Firefox Opera

W3C - http://www.w3c.org Vastaa WWW:n kehityksestä ja siten esim. HTML- ja CSS-standardeista Perustettu lokakuussa 1994 Koostuu erilaisista työryhmistä Tavoitteena esimerkiksi: Verkko maailmanlaajuiseen käyttöön Semanttinen verkko Luotettava verkko 31.01.2013 IPOPPLA 11

Merkitys harjoitustyön kannalta Tekijöiden itse varmistettava sivustonsa toimivuus Valitkaa jokin tietty suosittu selainohjelma, jolle hiotte työnne Testatkaa, että sivut toimivat myös muilla moderneilla selaimilla (IE, Firefox, Safari, Chrome, Opera) ja raportoikaa mahdolliset ongelmat, joita ette saaneet korjatuksi Valittava käytettävät standardit sen mukaan, millaisilla koneilla ja ohjelmilla ympäristöä tullaan käyttämään Vanhat selaimet tukevat standardeja huonommin kuin uudet, jne. HTML-editorit eivät aina tuota oikeaoppista koodia tarkistettava itse! 31.01.2013 IPOPPLA 12

Hot Potatoes Helppo ratkaisu yksinkertaisiin tarpeisiin 31.01.2013 IPOPPLA 15

Hot Potatoes Ohjelma vuorovaikutteisten osioiden luomiseen WWWsivuille Tarkoitettu opetussivustojen tekoon Oma versionsa useammalle eri käyttöjärjestelmälle (Windows, OS X, Linux, ) Kotisivu: http://hotpot.uvic.ca/ Ohjelma on nykyisin maksuton ja vapaasti käytettävissä 31.01.2013 IPOPPLA 14

Hot Potatoes Sisältää kuusi osaa: Monivalinta ja tekstinsyöttö (short-answer, JQuiz) Lauseen rakentaminen (jumbled-sentence, JMix) Ristisana (crossword, JCross) Raahaus (matching/ordering, JMatch) Aukkotehtävät (gap-fill, JCloze) Erilaisten osioiden yhdisteleminen (Masher) Perustuu JavaScriptiin: ohjelma generoi tarvittavan ohjelmakoodin käyttäjän puolesta Koodi voi olla jossain määrin bugista Muista testaus! 31.01.2013 IPOPPLA 17

Hot Potatoes Esimerkkejä... 31.01.2013 IPOPPLA 18

Hot Potatoes - Huomioita Ohjelman kotisivuilta löytyy oppaita ja esimerkkejä Verkosta löytyy myös suomenkielisiä oppaita ohjelman käyttöön (esimerkkien kera) Googlaa esim. Hot Potatoes opas Ohjelmaan on valittavissa suomenkielinen käyttöliittymä Mikäli harjoitustyön vuorovaikutteiset osiot tehdään pelkästään Hot Potatoes -ohjelmalla, ei harjoitustyöstä voi kovin helposti (jos ollenkaan) saada arvosanaksi 5. 31.01.2013 IPOPPLA 19

JavaScript Lyhyt oppimäärä JavaScriptin käyttöön WWW-sivulla 31.01.2013 IPOPPLA 20

31.01.2013 IPOPPLA 19 JavaScript Yleistä Prototyyppipohjainen olio-ohjelmointikieli Kurssin näkökannasta oliot taustalla, keskitytään JavaScriptin valmiiden olioiden käyttämiseen Tulkattava (eli skriptikieli); ei vaadi erillistä kääntämistä suorittamista varten Perustuu löyhästi C-kieleen Dynaamiset tietotyypit Tapahtumaohjautunut Tyylioppaita olemassa

JavaScript ja HTML JavaScript-koodi voidaan kirjoittaa joko suoraan HTML:n sekaan (upotus): <script type= text/javascript > ohjelmakoodi </script> tai erilliseen tiedostoon, joka liitetään HTML-tiedostossa (tuonti): <script type= text/javascript src= tiedostonnimi.js > </script> 31.01.2013 IPOPPLA 20

JavaScript ja HTML Koodia voi olla lähes missä tahansa HTML:n seassa JavaScript:llä voidaan esimerkiksi tulostaa sivulle sisältöä (myös HTML:ää) tai muuten muokata sivun rakennetta 31.01.2013 IPOPPLA 21

JavaScript Ohjelmakoodin suorittaminen Sivulle upotettu / tuotu JavaScript-koodi suoritetaan siinä järjestyksessä ja kohdassa, missä se sivulla esiintyy Selain käsittelee sivun HTML:n alusta loppuun ja samassa suorittaa JavaScriptin Jos halutaan liittää ohjelmakoodia, joka suoritetaan vasta myöhemmin, on käytettävä funktioita 31.01.2013 IPOPPLA 22

JavaScript Yksinkertainen esimerkki Perinteinen Hello world -esimerkki: <script type= text/javascript > alert( Hei maailma! ); </script> 31.01.2013 IPOPPLA 23

JavaScript Muuttujat JavaScriptissä on muuttujille myös kaksi erikoisarvotyyppiä: undefined muuttujan tyyppi silloin, kun muuttujalle ei ole vielä asetettu arvoa null (pätemätön) muuttujan tyyppi silloin, kun muuttujan arvo on epäkäypä JavaScript-kieli sisältää joukon varattuja sanoja, joita ei voi käyttää muuttujien niminä 31.01.2013 IPOPPLA 24

JavaScript Muuttujat Muuttujilla voi olla kaksi vaikutusaluetta: Globaali muuttuja; funktion ulkopuolella esitelty muuttuja, jota voidaan käsitellä ilman rajoituksia Lokaali muuttuja; funktion sisäpuolella esitelty muuttuja, jota voidaan käsitellä vain funktiossa itsessään 31.01.2013 IPOPPLA 25

JavaScript Kielen perusrakenteista Silmukat (for, while, do-while) break, continue Ehtolausekkeet (if, switch) Funktiot Perusoppaita löytyy verkosta laajalti, esim. http: //www.w3schools.com/js/default.asp Oppaista ja googlaamalla yleensä aina löytyy vastaus ongelmiin 31.01.2013 IPOPPLA 26

JavaScript Tapahtumat Tapa liittää JavaScript toiminnalliseksi osaksi WWW-sivua Useimpiin HTML-elementteihin voidaan liittää erilaisia tapahtumia Voidaan esimerkiksi suorittaa jokin koodinpätkä, kun käyttäjä klikkaa jotakin elementtiä Tapahtumatyyppejä: onclick, onmouseover, onfocus, http://www.w3schools.com/js/js_htmldom_events.asp 31.01.2013 IPOPPLA 27

JavaScript Sisällön tuottaminen sivulle ohjelmakoodista Ohjelmakoodilla voidaan halutessa tuottaa sivulle sisältöä sivun lataamisen yhteydessä: <script type= text/javascript > document.writeln( Hei maailma! ); </script> 31.01.2013 IPOPPLA 28

JavaScript Esimääritellyt oliot JavaScriptissä on käytettävissä joukko esimääriteltyjä olioita, joiden avulla voidaan vaikuttaa sivun rakenteeseen ja sisältöön. Esimerkiksi: document parhaillaan näytettävää sivua kuvaava olio, jonka avulla voidaan muokata sivun rakennetta ja sisältöä window selainikkunaa kuvastava olio, jonka avulla voidaan esimerkiksi avata uusia ikkunoita Ikkunoiden avaaminen usein estetty selaimissa 31.01.2013 IPOPPLA 29

JavaScript DOM-malli Document Object Model (DOM) on standardoitu oliomalli HTML:n käsittelemiseen Pyrkimys kehittää alusta- ja kieliriippumaton tapa WWWsivun sisällön ja rakenteen käsittelemiseen Monitasoinen standardi (Level 0, 1, 2 ja 3), jota selaimet tukevat hieman eri tavoin DOM Level 1 standardoitiin 1. lokakuuta 1998 Laajempi tuki standardille selaimien puolesta tuli vasta paljon myöhemmin, nykyään lähes de facto http://www.w3schools.com/htmldom/default.asp 31.01.2013 IPOPPLA 30

JavaScript DOM-malli Helpoin tapa saada käsiteltäväksi jonkin HTMLelementin olio: document.getelementbyid() Vaatii, että elementille asetetaan id-attribuutti, jonka arvo on sivulla yksilöllinen Parametriksi annetaan elementin id-arvo Palauttaa olion, joka on HTML-elementtiä vastaava, esim. HTMLDivElement 31.01.2013 IPOPPLA 31

JavaScript DOM-malli DIV-elementin sisällä olevan tekstin värin muuttaminen punaiseksi: <div id= teksti > </div> mustaa tekstiä <script type= text/javascript > </script> var elementti = document.getelementbyid( teksti ); var tyyli = elementti.style; tyyli.color = red ; 31.01.2013 IPOPPLA 32

JavaScript Ongelmat Virheen löytäminen koodista usein vaikeaa Kannattaa toteuttaa pieniä kokonaisuuksia ja testata http://www.jslint.com/ 31.01.2013 IPOPPLA 33

jquery jquery-kirjasto on yksi JavaScript-tiedosto, johon viitataan HTML:n head-osassa: <head> <script src="jquery-1.9.0.min.js"></script> </head> Tai esim. jqueryn hostaamana <head> <script src="http://code.jquery.com/jquery-1.9.0.min.js"></script> </head> Perussyntaksi: $(selector).action() 31.01.2013 IPOPPLA 34

jquery Valitsimia (selectors) voidaan käyttää samoin kuin tyylitiedostoissakin elementti: $("p") luokka: $(".testi"), $("p.testi") id: $("#esimerkki") Valitsimilla päästään myös käsiksi elementteihin DOM-mallin mukaisesti Ensimmäisen kappaleen valinta: $("p:first") Jokaisen listan ensimmäisen listaelementin valitseminen: $("ul li:first-child") 31.01.2013 IPOPPLA 35

jquery jquery sisältää mm. runsaasti erilaisia tapahtumankäsittelijöitä HTML:n manipulaatioon tarkoitettuja metodeja AJAX:in hyödyntämiseen tarkoitettuja funktioita jne. Lisää tietoa esimerkkeineen löytyy kattavasta jqueryn API-dokumentaatiosta http://api.jquery.com/ Hyvä tutoriaali esimerkkeineen löytyy W3Schools-sivustolta http://www.w3schools.com/jquery/default.asp 31.01.2013 IPOPPLA 36