Võrgurakendused I 2011
Ainekood: ITV0110 |
See leht on varemloetud kursuse arhiiv, siin ei ole värsket informatsiooni! Otsi üles kursuse hetkel aktiivne leht.
Järelkontrolltöö 2012 kevad
Järelkontrolltöö: 25. mai (reede) kell 12.00-15.00, ruum II-102
NB! Palun ennast järelkontrolltööle ÕIS-s registreerida.
Kursuse tulemused
Tulemustega üldse mitte seotult: vaata cooli värsket projekti http://www.sightsmap.com, mis tekkis kaasnähtusena uurimis/arendusprojektile http://www.sightsplanner.com
Kontrolltöö ajad
Kontrolltöö aegu on kaks:
- Laupäeval, 7 jaanuaril ruumis II-102 kell 11.00.
- Kolmapäeval, 18 jaanuaril ruumis VI-229 kell 10.00.
Sa võid ise valida, kas tulla 7 või 18 jaanuari kontrolltööle. Mõlemile tulla ei saa.
Kontrolltöö teemad ja arvestuse põhimõtted:
Kontrolltöö on kirjalik ning paberil, materjale kasutada ei või.
Kontrolltöö edukaks läbimiseks peab kontrolltööst saama 40% maksimumpunktidest. Kursuse edukaks läbimiseks peab saama arvestatud kõik neli praktikumi, läbima edukalt kontrolltöö ja saama kokku 45% maksimumist.
Enne jõule ilmuvad prakside punktiseisud kursuse lehele.
Teemad vastavad neljale praksile pluss täiendavale materjalile kursuse lõpus:
- HTML
- CSS ja Javascript
- Serverirakendused failidega, python.
- Serverirakendused andmebaasiga, PHP, SQL
- Täiendav: cookied, sessionid, ajax
Apache serveri konfimine, cgi eri keeltes (C, bash) jne teemaks ei tule. Kõik küsimused on praksidega seotud tehnoloogiate teemadel.
Millised on küsimused ja ülesanded:
- Etteantud näidetest arusaamine: peab selgitama, mida näide teeb/kuidas kuvatakse.
- Väikeste etteantud koodijuppide täiendamine, et nad teeks nõutud asja.
- Päris ei ole välistatud ka mõne pisikese tervikülesande andmine.
Pigem on küsimusi rohkem ja lihtsamaid, mitte vähe ja suuri.
Ei ole vaja pähe õppida mitte-elementaarseid tage, css atribuute, javascripti funktsioonide nimesid, pythoni ja php funktsioonide nimesid, SQL täpset süntaksit.
Võimalikud variandid (nimedena) antakse kontrolltöös ette (kui on tegu ise kirjutamist vajava ülesandega), või siis (arusaamise ülesande korral) on nimed reeglina sellised, mis on tõenäoliselt meelde jäänud või on ise-selgitavad a la p, font-size, XmlHTTPRequest jne.
Igasuguseid süntaksi-hooletusvigu jne ei arvestata miinusena.
Aeg, koht, tulemus
Loenguid nädalas: 2 tundi (üks loeng) teisipäeviti 16:00-17:30 ruumis VII-131
Praktikume nädalas: 2 tundi (üks praktikum). Kui pole teisiti märgitud, toimuvad praktikumid:
- kolmapäeval 10:00-11:30 ruumides IT-213E, IT-213I rühmadele IABB37, IAPB37 (Antti)
- neljapäeval 08:00-09:30 ruumides IT-213D, IT-213H rühmadele IABB31, IABB32, IAPB31, IAPB32 (Tanel)
- neljapäeval 14.00-15:30 ruumis IT-213D rühmale IAPB33 ja IAPB38 (Tanel)
Kursus lõpeb hindelise arvestusega. Hinne sõltub kursuse jooksul tehtud praktikumide tulemustest (60%) pluss kursuse lõpus toimuva kontrolltöö tulemustest (40%).
Küsimuste küsimiseks ja omavaheliseks suhtlemiseks on avatud kursuse "Üldfoorum" aadressil:
https://moodle.e-ope.ee/mod/forum/view.php?id=200854
Kursuse eesmärk
Lihtsamate veebirakenduste põhimõtted ja nende kirjutamise oskus nii brauseri kui serveri poolel. Konkreetsemalt:
- html-i kirjutamise oskus, esmane tutvus CSS-i ja javascriptiga.
- serveripoolse rakenduse kirjutamise põhimõtted, cgi protokoll, erinevate keelte (sh C, php, python, java) kasutamise sissejuhatus serverirakendustes.
- lihtsamad SQLi kasutamise oskused.
Kursusel eeldatakse elementaarsete programmeerimisoskuste olemasolu. Kes programmeerimisega üldse kokku puutunud ei ole või seda paralleelselt ei õpi, ei suuda kursust läbida.
Analoogilised kursused
TTÜ-s on sama kursust varem lugenud K. Kikkas (vt loengumaterjale) ja I. Liiv (vt praksimaterjale), ITK-s luges analoogilist kursust esialgu T. Tammet (vt vanu materjale), praegusajal loeb A. Andreimann (vt vabalt kättesaadavaid materjale).
Praktilised tööd
Praktilisi töid juhendavad esialgu Tanel ja Antti, hiljem võib lisanduda veel juhendajaid.
Kursusel on neli kohustuslikku praktilist ẗööd. Iga töö annab 0-15 punkti. Hilinenud tööd annavad poole punktidest. Töid võib (ja on soovitav) esitada enne tähtaega.
Kõik tööd tuleb esitada ise TTÜ arvutiklassis: emailiga saadetud töid ei arvestata. Kasutada võib nii klassi arvuteid kui oma arvutit, brauser ja operatsioonisüsteem on vabalt valitavad. Serverirakenduste tööde jaoks on võimalik kasutada ülikooli serverit, soovi korral ka oma serverit.
NB! Antti rühmadele IABB37, IAPB37 kehtivad erinõuded. Loe siit ...
Kaugõppele kehtivad teised tähtajad, kui alltoodud, vaata kaugõppe tähtaegu siit.
- Html põhioskused. Tähtaeg neljapäev, 15. september.
- ITV0110 2. töö: CSS, javascript, veebiserver. Tähtaeg neljapäev, 13. oktoober.
- Lihtne serverirakendus: vormid ja cgi. Tähtaeg neljapäev, 24. november.
- Andmebaasiga serverirakendus. Tähtaeg neljapäev, 15. detsember.
Kursuse edukaks läbimiseks peavad kõik praktilised tööd olema tehtud.
Lehtede kujundamise ja stiili osas lähtu sellest juhendist.
Loengute plaan ja materjalid
Alltoodud teemad kaetakse igaüks ühe-kahe loenguga. Suur osa loengutest on pühendatud näidete läbitegemisele ning seletamisele, ette-programmeerimisele ja praktikumide osalisele realiseerimisele.
- Sissejuhatus ja meeldetuletus
Tutvuda lühidalt:
- Interneti baastehnoloogia IT sissejuhatusest: Itsissejuhatus10o08.ppt, Itsissejuhatus10o08.pdf.
- Raggetti mikrotutorial algajatele
- head eestikeelsed sissejuhatused Innar Liivilt (pdf) ja Kaido Kikkaselt (html)
- http://www.w3schools.com/.
- http://www.w3c.org/.
- HTML põhioskused
Lugeda ja proovida läbi (st vaja põhimõtted selgeks õppida):
Loe lisaks läbi ka
Tutvu lisaks kasuliku tagide nimistuga:
- CSS põhioskused
Lugeda ja proovida läbi (st vaja põhimõtted selgeks õppida):
- First CSS intro
- w3schools'i css tutorial: : kindlasti "basic" ja "styling" blokid, huvi korral loe edasi ("box model", "advanced) ka, kuid need viimased ei ole kohustuslikud.
Tutvu lisaks listide+CSS-i kasutamisega menüüde jms jaoks:
- listikasutus ja sealtsamast listikasutuse tutorialid
- Javascript põhioskused
Kaks loengut: (a) sissejuhatus (b) reaalne kasutamine brauseris (html ja css muutmine, evendid jne)
Vaata soenduseks/demoks Google kogutud näiteid.
Seejärel loe läbi ja proovi järgi selles järjekorras:
- Wikipedia javascripti üldartikkel: ülevaade, ajalugu jne. Keelt siit ei õpi!
- W3schools javascripti sissejuhatus: JS Basic ja JS Objects osad. Mõned asjad jäävad siin veidi ebaselgeks!
- Wikipedia Javascripti keele kiirõpetus: loe ja proovi paralleelselt w3schools-ga. Siit saab mõned asjad selgemaks kui ainult w3schoolsist.
NB! Selle tulemusena on sul baasettekujutus javascripti keelest, aga mitte reaalsest kasutusest (seda vaatame järgmises loengus).
Javascripti kasutamine brauseris: alustuseks on hea vaadata põhjalikku näidete loetelu
- html dom objektid: põhiasjad
- form validation: klassikaline rakendus
- brauseriobjektid: vahel kah kasulikud
ja tingimata lugeda sinna juurde teegijuhendeid:
- Praktilist teisest praktikumist
Kuidas ja kuhu faile serverisse üles laadida jms: loe teise praktikumi materjalidest
- Cgi töötlemine eri keeltes (C, python, bash, java, ...)
Kõigepealt loe ja proovi tingimata ise läbi teha: pythoni cgi-d dijkstra serveris: kiire sissejuhatus
Tutvu linuxi shelli elementaarsete käskudega sellest lühiõpetusest ja täiendavalt selle tutoriali peatükkidest üks kuni viis. Iga käsu juures on abiks man, näiteks man ls. Huvi korral googelda lisaks.
Seejärel loe neid materjale CGI protokollist ja CGI programmidest serveris:
ning siis vaata lisaks loengus tehtud/proovitud lihtsaid cgi programminäiteid eri keeltes.
Cgi jaoks on olemas ka nö rfc-standard, mille lugemine on aga pisut vaevarikas (nagu enamikel standarditel) ja üldjuhul on praktilisem lugeda hoopis ülaltoodud õpetusi ja vaadata näiteid.
- Veebiserveri ehitusest ja konfigureerimisest
Kõigepealt tutvu või tuleta meelde http protokolli põhimõtteid:
Veebiserverist paremaks arusaamiseks tasub veidi eksperimenteerida pisikese veebiserveriga.
Enimkasutatav veebiserver Apache:
Apache konfigureerimisest:
- Python ja näiteid kasutamisest serverirakendustes
Tutvumine kolmanda praktikumiga: vormid ja cgi. Praksi jaoks vajaliku koodi kirjutamise harjutamine (loengus etteprogrammeerimine).
Sealt leiad ka soovitused esmatutvuseks Pythoniga (praktikumi jaoks piisab kõige lihtsamatest Pythoni konstruktsioonidest ja cgi teegist, keerukamaid asju pole otseselt vaja):
- loe tutoriali algust (keerulised andmestruktuurid, moodulite ja klasside värgi võid esialgu lugemata jätta)
- lisaks cgi teegi õpetust.
- Hea mõte on paralleelselt teha lahti Pythoni interpretaator ja katsetada kõrvale asju otse Pythoni käsureal. Kui su masinas Pythonit pole, siis installeeri!
- Paljud kasulikud asjad on kirjas Pythoni teegi dokumentatsioonis.
- Kasulikke pythoni näitejuppe cgi jaoks
- Konkreetsete küsimuste korral aitab tihti googeldamine.
- Serverirakendused PHP-s, näited
- Väikese ajaloolise ülevaate leiad wikipeediast
- Põhiõpetus on php oma saidil: loe sealt kõigepealt sissejuhatavat tutoriali
- W3school-si php tutorial on samuti päris OK.
- SQL
Loe selles järjekorras:
- SQL serverirakendustes
- Vaata lihtsaid php ja mysql näiteid loengust.
- mysql PHP-s: ppt
- mysql PHP-s: veebitutorial
- SQL injection vt ka seda ja seda ja seda
- w3schools PHP tutorial all vasakul Mysql blokk
- Vorgurakendused 1 SQL naited loengust
- Sessioonid, cookied, sisselogimine, autentimine
Mõned lingid:
- basic authentication wikipedias, apache manuaalis ja basic authentication näited
- cookie wikipedias, php cookie handling w3schools-st ja php manuaalist
- ok sessiooniõpetus
- php sessioonihandling w3schools ja siit php mahukas sessiooni-manuaal ja siit eraldi tutorial
- väike ok sessioonihalduse tutorial
- autentimise näide php sessiooniga
- Ajax
- Loe seotud tehnoloogiatest: wikipedia ajax, wikipedia xmlhttprequest, wikipedia json
- xmlhttprequest ja jsonile rakendatud eval näited
Vajalikud tööriistad
Oma arvutiga töö tegemiseks peab seal olema vähemalt
- Notepad++ või scite.
- Mozilla Firefox
Lugemismaterjale
Üldist:
- Mitu head tutoriali eri teemadel
- suur kogu häid tutoriale, artikleid ja soovitusi
- Lisamaterjale kursusest Kasutajaliidesed võrgutehnoloogia baasil
HTML:
- Raggetti tutorial algajatele
- Kaido Kikkase hea eestikeelne sissejuhatus
- Innar Liivi hea eestikeelne sissejuhatus
- w3schools'i põhjalik html tutorial
- tore tagide nimistu
- HTML 4.01 ametlik standard
- HTML 5.0 ametlik draft
HTML+CSS+Javascript:
- First CSS intro
- w3schools'i css tutorial
- w3schools'i javascripti tutorial
- A list apart
- listikasutus
- Javascript, mashup ja ühe-lehe-sait sightsmap: http://www.sightsmap.com/
HTTP
- http wikipedias
- http://www.jmarshall.com/easy/http/
- T. Berners-Lee leiutatud esimene HTTP spec
- hea väike HTTP ja CGI tutorial
- headerite jms vaatamise veebiabivahend
CGI programmid serveris
- lihtne sissejuhatus cgi-desse
- cgi.pdf: detailsem juhend
- cgi esmane sissejuhatus Bashi näidetega
- cgi C keeles
- cgi Pythonis
- cgi Bashis
- Tiny www server ja lihtsaid cgi programminäiteid
PHP ja MySQL
- http://www.php.net/ sh http://www.php.net/tut.php või http://www.php.net/manual/en/tutorial.php
- http://www.mysql.org, alustuseks http://dev.mysql.com/doc/refman/5.1/en/tutorial.html
Veebiserverid: