Võrgurakendused I 2010

Allikas: Lambda
mootor

Ainekood: ITV0110
Link: http://www.lambda.ee/index.php/V%C3%B5rgurakendused_I ehk http://www.lambda.ee/index/itv0110
Punkte: 3.5 AP ehk 5 EAP
Lektor: Tanel Tammet
Kontakt: tammet@staff.ttu.ee, 6203457, TTÜ AK223


See leht on varemloetud kursuse arhiiv, siin ei ole värsket informatsiooni! Otsi üles kursuse hetkel aktiivne leht.

Järelkontrolltöö

Kontrolltöö saab kevadsemestril järgi teha neljapäeval, 19 mail kell 12 IT majas ruumis IT-140. Järelkontrolltöö tulemused:

  • K. Bannov: 20 p, hinne kokku 2.
  • M. Potisepp: 18p, hinne kokku 1.

Sügissemestri kursuse tulemused:

Siit leiad kursuse tulemused!


Kontrolltöö teemad ja põhimõtted:

Kontrolltöö on kirjalik ning paberil, materjale kasutada ei või.

Teemad vastavad neljale praksile pluss täiendavale materjalile kursuse lõpus:

  • HTML
  • CSS ja Javascript
  • Serverirakendused failidega, python.
  • Serverirakendused andmebaasiga, PHP,
  • 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 (pluss täiendav, veidi seotud osa cookied jne).

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). Kui pole teisiti märgitud, toimuvad loengud (kaks varianti, st sama loeng kaks korda):

  • esmaspäeval 10:00-11:30 ruumis X-414 (rühmad IABB31, IABB32, IAPB31, IAPB32, IAPB33)
  • teisipäeval 10:00-11:30 ruumis X-211C (rühmad: IABB37, IAPB37)

Praktikume nädalas: 2 tundi (üks praktikum). Kui pole teisiti märgitud, toimuvad praktikumid:

  • esmaspäeval 08:00-09:30 ruumides IT-213A, IT-213B rühmadele IABB37, IAPB37
  • esmaspäeval 12:00-13:30 ruumis IT-213C rühmale IAPB33 (juhendaja Kristjan Haavik)
  • teisipäeval 08:00-09:30 ruumides IT-213A, IT-213B rühmadele IABB31, IABB32, IAPB31, IAPB32 (juhendaja Kristjan Haavik)

NB! Kaugõppel lisa-praktikumi-ajad:

  • 4 detsember peale 14.00 tunniplaaniaega kuni 17.30 alumise korruse arvutiklassis.
  • 8 jaanuar laupäeval kell 12-18: kõigepealt arvestustöö, siis praktikum.


Kursus lõpeb hindelise arvestusega. Hinne sõltub kursuse jooksul tehtud praktikumide tulemustest (60%) pluss kursuse lõpus toimuva kontrolltöö tulemustest (40%).

Kursuse eesmärk

Lihtsamate veebirakenduste põhimõtted ja nende kirjutamise oskus. Konkreetsemalt:

  • veebirakenduste loomine: klient ja server.
  • 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.

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

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.

  • Html põhioskused. Tähtaeg teisipäev, 28. september. Kaugõppele tähtaeg 23 oktoober.
  • CSS, javascript, veebiserver. Tähtaeg neljapäev, 28. oktoober.
  • Lihtne serverirakendus: vormid ja cgi. Tähtaeg teisipäev, 23. november.
  • Andmebaasiga serverakendus. Sisuks on väga lihtsakoelise "mini-facebooki" ehitamine. Programmeerimiskeeleks on PHP ja andmebaasiks mysql või postgresql. Tähtaeg päevasele õppele reede 17 detsember (esitada tuleb siiski praktikumis, st viimane kuupäev 14 dets: järgnevad paar päeva on varuks juhul, kui näiteks ei jõua praksis kõiki üle vaadata vms), kaugõppele 8 jaanuar (vt ülalt ajaplaani).

Kursuse edukaks läbimiseks peavad kõik praktilised tööd olema tehtud.

Loengute plaan ja materjalid

Alltoodud teemad kaetakse igaüks ühe-kahe loenguga


Sissejuhatus ja meeldetuletus


Tutvuda lühidalt:


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

Tutvu lisaks listide+CSS-i kasutamisega menüüde jms jaoks:


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:

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

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


SQL

Loe selles järjekorras:


SQL serverirakendustes


Sessioonid, cookied, sisselogimine, autentimine

Mõned lingid:


Ajax

Lugemismaterjale

Üldist:

HTML:

HTML+CSS+Javascript:

HTTP

CGI programmid serveris

PHP ja MySQL

Veebiserverid: