Tallinna Pedagoogikaülikool
Informaatika osakond

Jaagup Kippar

Veebiprogrammeerimise ülesannete kogu

Mai 2002
Sissejuhatus
Õppimise juures on tarvilik teadmiste kinnitamiseks teoreetiliselt poolelt saadud tarkused praktikasse rakendada. Koostatud ülesanded on mõeldud abiks nii õpetajale kui iseõppijale, pakkudes mitmesuguseid lahendust nõudvaid probleeme ning andes mitme taseme tõttu ühe võimaliku tee lahenduse poole liikumiseks. Osa ülesannetest võib sobida otse üle võtta, kuid soovitav on arvata siinsest kirjutisest leitud idee aluseks ning vastavalt õpitud taustale lahendusteed lihtsustada või sellele nüansse juurde mõelda. Ideed on enamasti küllalt universaalsed ning sobivalt kohandades peaksid lahendamiseks sobima mitmesuguse ettevalmistuse korral. Mitmelgi puhul on pakutud enam võimalusi kui lihtsamaks oskuste harjutamiseks tarvilik. Kui ülesanne liialt keerulisena tundub, siis ei pea seda mitte kõrvale jätma, vaid tuleb vaadata, kas õnnestub mõne punkti eemaldamise või lahtiseletamise abil probleem õppijatele suupäraseks teha.   Enamik siin toodud ülesandeid pole seotud konkreetse keelega, vaid samu lahendusi on võimalik saavutada keelest sõltumata. 
Märgatav osa ülesandeid on jaotatud kolmeks alapunktiks, kus iga järgmine peaks eelmisest paar-kolm korda keerulisem olema. Tegevused on püütud jagada nõnda, et nii esimene punkt eraldi kui kaks alguspunkti koos annaksid terviku ning sinna pidama jäädes ei tekiks poolelijäämise tunnet. Koostamise ajal on püütud nii arvestada, et ülikooli 90-minutilise praktikumipaari ajal jõuaksid kõige tugevamad lahendada kogu kolmest punktist koosneva ploki. Enamik saaksid selle ajaga hakkama kahe astmega ja mõned neist jõuaksid raskeima taseme läbi mõelda. Ning ka kõige nõrgemad või lihtsalt õpilased, kel sel korral pea lahti pole, peaksid vähemasti esimese tasemega hakkama saama. Ülesanded, kus on rohkem alapunkte, on mõeldud kas algõppeks või siis väga erisuguse tasemega õppijate rühma tarbeks. Esimesel juhul on teemad võimalikult väikesteks osadeks jaotatud, et igaühel õnnestuks tunni jooksul vähemalt üks või kaks eduelamust saada. Teisel juhul on arvestatud, et tugevamad võivad mõne alumise taseme läbi katsetamata jätta (eeldusel, et nad mõtetes sellest üle on) ning siis raskemate etappide kallale asuda. 
Sisukord

Sissejuhatus	2
Sisukord	3
Graafika	9
Aknad	9
Liikuv raamaken	9
Aken	9
Põrkav aken.	9
Aknad	9
Aken ja käsurida	10
Juhuarvud	10
Paigutamine	10
Esemed	10
Ratas	10
Tool	10
Kastekann	11
Lamp	11
Pastapliiats	11
Maja	11
Televiisor	11
Lift	11
Kulgur	12
Margapuu	12
Valgusfoor	12
Kell	12
Kaalu mudel	12
Kuusk	12
Pudel	13
Põrkav pall	13
Liivakell	13
Jalgratas	13
Muusikainstrumendid	13
Mandoliin	13
Keelpill	13
Akordion	14
Vilepill	14
Protsessid	14
Veetase	14
Vaiade maasse löömine.	14
Lille kasvamine.	14
Autosõit	15
Kilpkonna juhtimine.	15
Värvimuusika.	15
Raudtee	15
Hammasrattad	15
Pendel	16
Kaldpind	16
Liikuv inimene	16
Liikuva auto mudel	16
Kriipsujuku kõnd	16
Joonistamine	16
Punktid	16
Joonistamine	17
Hiir	17
Ekraaniilustaja	17
Ekraaniilustused	17
Tulpdiagramm	17
Spiraal	17
Rakend	18
Punktid failist	18
Graphics2D	18
Mängud	18
Trips-traps-trull	18
Kabe	18
Tennis	19
Pokker	19
Ussimäng	19
Trilma	19
Tilgapüüdja	19
Mängukaardid	19
Kriipsumäng	20
Nooltega ralli.	20
Poomine.	20
Hiir ja ruut	20
Hiiremäng	20
Sirelasemäng	21
Rendzu	21
Klahvidega liigutamine.	21
Rakendused	21
Tekstikomponent	21
Tekstiredaktor	21
Statistikaga tekstiredaktor	22
Klahvivajutused	22
Sõnatrükk.	22
Kalkulaator	22
Nimede otsing	22
Geoinfosüsteem	23
Trükiharjutus	23
Swing	23
Swingi tabel	23
Swingi puu	23
Progressiriba	23
Slaider	24
Valikupaneel	24
Tekstiredaktor valikupaneelil	24
Menüüd	24
Sisemised raamid.	24
Swingi komponendid	25
Pilditöötlus	25
Ekraanipilt	25
Kopeeritud ekraanipilt	25
Pildi koostamine.	25
Joon pildil	25
Kurviline ekraaniilustus	26
Värviüleminek	26
Pildiredaktor	26
Pildiredaktori koostamine	26
Matemaatika	26
Palli lend	26
Joon	27
Kolmnurk	27
Graafik	27
Kujundid	27
Siinus	27
Jooned	27
Põrkamine sirgjoonel	28
Põrkamine tasandil	28
Põrkamine	28
Pall ekraanil	28
Pallivise	28
3D	29
3D kujundid	29
Ringid ja seinad	29
Ringid võrgus	29
3D võrgumäng	29
Rekursioon	29
Naerunägu	29
Ringide joonistamine	30
Riigipiir	30
Viisnurgad	30
Võrk	31
Pistikliides	31
Võrguühendus	31
Jututuba	31
Graafiline jututuba	31
Jututoa server.	31
Meldimine	32
Ühendused	32
Andmetalleti	32
Andmesalvesti	32
Võrgumärkmik	32
Võistkonnad	33
Aardeotsimise mängu veebiprotokoll	33
Aardeotsimise mäng	34
Laevade pommitamine	35
Rändurid võrgumaastikul	35
Liiklus võrgus	35
Veebilehtede lugemine	35
HTML lugeja	35
Viited HTML-failis	35
Veebilugeja	36
Programmeeritav veebiserver	36
Servlet	36
Sessioon servletiga	36
Võimaluste proovimine	36
Andmebaasiühendus	36
Andmetabelid	37
Külalisraamat.	37
Õpilaste nimekiri	37
Kursustele registreerimine	37
Ülesannete esitamine	38
Hinded veebis	38
Registreerimisvorm	38
Mitme tabeliga registreerimisvorm.	38
Teated andmebaasis	39
Teadete omadused	39
Autentimine	39
Sisestuskontroll	39
Elektrooniline küsitlus	40
E-kaart	40
Loendur	40
Kalender	40
JSP	40
JSP II	41
MySQLi konfigureerimine	41
Veebitehnoloogiad	41
RMI oksjon	41
RMI	41
CORBA	41
Kirjad	41
Tekst	42
Failid	42
HTML-looja	42
Tekstifail	42
Hinnetetabel	42
Sõnad tekstifailis	42
Tekstifail ja täht	43
Tekstifail ja tähe osakaal	43
Sünniaastad	43
Kalender	43
Tekst	43
Lause	43
Failiuuring.	44
Tekstifaili lugemine.	44
Tekstiekraan	44
Käsurida ja tekstiaken.	44
Sõnad	44
Sõnade võrdlus	44
Kuupäev	44
Arvamismäng.	45
Osta elevant ära.	45
Tekstiväljad	45
Teksti kerimine	45
Teksti kerimine II	45
Teksti kerimine III	45
Sõna uurimine	46
Sõnetöötlus	46
Keel	47
Alamprogrammid	47
Objektid	47
Punktid	47
Klassid ja isendid	47
Objektid	48
Paketid	48
Failinimed	48
Failide nimed	48
Rekursioon failinimedega	48
Andmed	49
Lõimed	49
Vormindamine	49
Andmekollektsioon	49
Täiendatud nimistu	49
Voogude filtreerimine	49
Turva	50
Signeerimine	50
Digitaalallkiri	50
Krüptograafia	50
Õigused	50
Nuputamist	51
Tähejärjestused.	51
Tähekombinatstioonid	51
Pakkija	51
Tee ruudustikul	51
Liitmine	52
Bussiplaan	52
Histogramm	52
Võrrand	52
Baidid ja bitid	53
Arvamine	53
Rooma numbrid	53
Numbrid sõnadena	53
Kolm kappi	53
Arvusüsteemid	54
Algarvud	54
Punktid	54
Kiirus	54
Söökla	54
URL	55
Põrkamine	55
Caesari siffer	55
Muusika	56
MIDI	56
Noodid	56
Ksülofon	56
MIDI sekventsid	56
MIDI fail	56
Kolmkõlad	56
Digitaaheli	57
Digitaalheli	57
Helifailid	57
Heliredaktor	57
Veebilehed	58
Veebilehtede genereerimine	58
Käsitsi kirjutatud HTML	58
Liitmisülesanded	58
Tekstülesanded	59
Aknad	59
Vormi elemendid	59
Arvutusülesanded	59
Tekstianimatsioon	60
Kalender	60
Kalkulaator	60
Navigeeritav veebileht.	60
Objektid	60
Andmed	61
Andmeotsing	61
Raamatumüük	61
Küpsised	61
Elektronpood	61
Regulaaravaldised	62
Asutuse telefoniraamat	62
Andmete esitamine	62
Tunniplaan	62
Javaskripti graafika	63
Punktpildid	63
Ruudustik	63
Inimeste pikkused	63
Ruutude püüdmine	63
Kihid	64
Liikuvad klotsid	64
Kiht	64
Trepp	64
Parkla	64
Sõiduväljak	64
Tetris	65
Kabe	65
Joonistamine	65
Ühe mängija tennis	65
Tennis	65
Mäluga menüü	65
Keeled	66
Veebileht PERLi abil	66
Ülesandeid VRMLiga tutvumiseks.	66
XML	67
XML sugupuu	67
XML andmetöötlus DOM-iga	67
SAX	67
XML ja DOM	68
XSL	68
Andmepuu loomine	68

Graafika
Aknad
Liikuv raamaken
•	Loo ekraanile raam
•	Liiguta raami ekraanil vasakult paremale
•	Liiguta raami ülalt alla ja tagasi. 
•	Pane raam vasakule-paremale pendeldama. 
•	Suurenda ning vähenda raami laiust. 
•	Alusta väikesest raamist ekraani üleval vasakul nurgas. Pane raam kasvama üle ekraani. Jäta parem alumine nurk paigale ning vähenda raam paremasse alla nurka pisikeseks tagasi.
Aken
•	Paiguta ekraani allserva sinise taustaga aken.
•	Lisaks eelmisele kirjutatakse akna päisesse juhuslikult valitud inimese nimi. 
•	Lisaks eelmisele nimed, mille vahel vailida, loetakse sisse failist. 
Põrkav aken.
•	Aken liigub ekraanil ülevalt alla. 
•	Aken liigub pidevalt alla-üles. 
•	Akna kiirus langemisel suureneb ning ülestõusmisel väheneb. 
Aknad
•	Ava korraga kaks akent.
•	Määra ühe akna taust roheliseks, teise oma punaseks.
•	Pane üks aken liikuma paremalt vasakule ning teine vasakult paremale. 
•	Näita akna pealkirjaribal koordinaate.
•	Aken liigub üle ekraani vasakult paremale. Kuni keskkohani akna kõrgus suureneb, edasi hakkab vähenema. 
•	Aken liigub üle ekraani vasakult paremale. Kuni keskkohani akna liikumise  kiirus suureneb, edasi hakkab vähenema.
•	Aken liigub üle ekraani paraboolikujulist trajektoori pidi.
Aken ja käsurida
•	Käsurealt saadud sõna paigutatakse akna pealkirjaks.
•	Lisaks eelmisele koosneb pealkiri kahest sõnast
•	Pealkirjaribale paigutatakse kahe käsureale kirjutatud arvu summa.
•	Akna kaugus vasakust servast määratakse käsurealt
•	Käsurealt teatatakse akna asukoht ning suurus.
•	Luuakse käsurealt määratud arv aknaid.
Juhuarvud
•	Väljasta akna pealkirjaribale juhuslik arv.
•	Määra akna kõrguseks juhuslik arv.
•	Loo juhusliku asukoha ja suurusega aken.
•	Loo viis juhusliku asukoha ja suurusega akent.
•	Loo juhuslik arv aknaid.
•	Määra akna taustaks juhuslik värv.
•	Määra akna taustaks juhuslik halltoon.
•	Määra akna taustaks juhusliku heledusega sinine.
•	Määra akna pealkirjaks juhuslikult üks käsurea parameeter.
Paigutamine
•	Paiguta BorderLayout-i abiga nupp ülaserva ning tekstiala keskele. 
•	Jaga ülaserv võrdselt kolme nupu vahel.
•	Paiguta allserva ühte ritta valik (choice) ja kerimisriba nii, et valik võtab tema jaoks hädavajaliku ruumi, riba aga ülejäänu.
•	Allserva teise ritta lisa märkeruut ning kolm üheskoos töötavat raadionuppu.
•	Koosta sama kujundus, kasutades Swingi komponente.

Esemed
Ratas
•	Joonista kaheteistkümne kodaraga ratas. 
•	Pane see ratas keerlema. 
•	Nii kodarate arvu kui keerlemise kiirust saab kerimisriba abil muuta. 
Tool
•	Joonista ekraanile tool nurga alt vaadatuna. 
•	Tooli seljatoe kõrgust ning jalgade kaldenurka saab määrata kerimisribaga. 
•	Lisaks eelmisele pannakse tool kasutaja silme ees keerlema. 
Kastekann
•	Joonista kõvera sangaga kastekann. Nupuvajutuse peale kukub kastekannu tilast välja piisk. 
•	Lisaks eelmisele lendab piisk tilast välja hooga, kukkudes vastavalt füüsikaseadustele. 
•	Lisaks eelmisele on hiire topeltklõpsu puhul lendamise kiirus suurem.  Arvestatakse ka kasutaja määratud kiirusega puhuvat tuult. 
Lamp
•	Joonista laualamp. Ühe nupuvajutuse peale värvub pirn/kuppel kollaseks, teise peale valgeks tagasi. 
•	Kerimisribaga saab määrata põlemise heledust. 
•	Failis on kirjas põlemise "muster": kui kaua põleb, kaua on pime. Kui  ring täis alustatakse taas algusest. 
Pastapliiats
•	Joonista pastapliiats. Pastapliiatsi suurust saab sujuvalt muuta. 
•	Lisaks eelmisele tuleb kord nupule vajutades süsi välja, teisel korral läheb tagasi. 
•	Lisaks eelmisele saab hiirega teravikust kinni võttes pastapliiatsit laual pöörata. 
Maja
•	Programm joonistab ekraanile maja. 
•	Programm küsib kasutajalt korruste ja trepikodade arvu ning joonistab vastavalt sellele katusega maja. 
•	Lisaks eelmisele paneb programm maja ekraanil pöörlema. Joonistamisel arvestatakse perspektiivi. 
Televiisor
•	Ekraanile joonistatakse televiisor. 
•	Nupuvajutusega saab teleris näidatavat pilti vahetada.
•	Näidatakse järjestikku kõiki jooksvas kataloogis leiduvaid .gif ja .jpg faile. 
Lift
•	Lift sõidab üheksakorruselises majas ülevalt alla. 
•	Liftil on numbrid ühest üheksani ning igal korrusel on kutsenupp. Lift sõidab vajutatud korrusele. 
•	Lisaks eelmisele on trepikojas lifte kaks. Kutse peale sõidab kohale lähim vaba lift. 
Kulgur
Ekraanil paistab plats pealtvaates. Kasutaja saab mänguasja platsil liigutada klahvidega.Mängukulgur väljakul olevast plangust läbi ei pääse, plangust saab vaid ringi ümber minna.
•	Kulgur on neljakandiline. Plank on keset platsi, veerand platsi pikkune ning  paralleelne platsi ühe servaga. 
•	Planke on platsil mitu ning mõni ei asetse täisnurga all. 
•	Kulgur on ümmargune ning plankude otspunktide andmed on failis. 
Margapuu
•	Ekraanile joonistatakse margapuu, kus saab raskuse asukohta määrata. 
•	Saab määrata jõu õlga ning raskuse asukohta. Sõltuvalt tasakaalust kaalutava esemega on  margapuu kas otse või kummalegi poole viltu. 
•	Lisaks eelmisele peab programm ka ilus välja nägema ning liikumised toimuma sujuvalt. 
Valgusfoor
•	Joonistatakse kolme tulega valgusfoor. Nupuvajutuse peale läheb foor järgmisesse asendisse. 
•	Foor paistab nurga alt, nii et näha on kahe külje tuled. Töötab iseeneseslikult. 
•	Ristmikul töötavad sünkroonis neli foori. Autod sõidavad teel, kus see on lubatud, teisel teel ootavad foori ees. 
Kell
•	Programm joonistab ekraanile kella 
•	Vastavalt kasutaja poolt määratud  ajale paigutatakse kellale tunni- ja minutiosuti. 
•	Ekraanil töötav kell näitab õiget aega. Saab määrata äratusaja ning selle saabumisel annab arvuti äratusest märku. 
Kaalu mudel
•	Ekraanile joonistatakse kaal. Hiirevajutusega saab kaaluvihte lisada ja eemaldada. 
•	Kummalegi poole saab panna kuni 3 100g. vihti. Raskem pool vajub alla. 
•	Kaalule saab hiirega mõlemale poole vedada ja eemaldada vihte ning pealtnäha tundmatu massiga esemeid. Programm õpetab, kuidas eseme massi kindlaks teha. 
Kuusk
•	Joonistatakse kolmnurkade abil kuusepuu. 
•	Kasutaja saab määrata "lülide" ning kuuskede arvu. 
•	Pane kuused niimoodi liikuma, et vaatajale jääks mulje, nagu ta liiguks pikal metsateel. 
Pudel
•	Joonista kasutaja määratud arv pudeleid. 
•	Pudelis on näha kasutaja määratud kogus jooki. Pudeli maht on 1 liiter. 
•	Lisaks eelmisele määrab kasutaja ka pudeli mahu. Pudeli kuju ei muutu, nähtav suurus aga vastavalt füüsika seadustele. Vedeliku kõrguse näitamisel arvestatakse ka pudeli kitsenemist ülalt. 
Põrkav pall
•	Ring liigub ekraani vasakus servas alla ja üles. Kukkumisel kiirus kasvab, tõusul kahaneb. 
•	Iga põrkega amplituud väheneb, korraga põrkab mitu palli. 
•	Lisaks eelmisele saab hiirevajutuse peale panna uusi palle põrkama. Pallideks on pildid. 
Liivakell
•	Ekraanile joonistatakse liivakell. 
•	Liivakella liiv kukub minuti jooksul ühtlaselt alla. 
•	Lisaks eelmisele saab liivakella hiire abil sujuvalt ümber keerata. 
Jalgratas
•	Joonista jalgratas. 
•	Näha on ratta küljes olevate helkurite pöörlemine. 
•	Hiirega saab väntasid ringi ajada. Rattad (koos kodaratega) liiguvad koos väntadega, arvestades, et suurel hammasrattal on 46 ning väikesel 23 hammast. 

Muusikainstrumendid
Mandoliin
•	Joonista ekraanile mandoliin. 
•	Kasutaja saab määrata joonistatavate krihvide arvu ning kaela laiust. 
•	Vajutades keele ja krihvi ristumiskohale, kõlab sellele vastav heli. 
Keelpill
•	Joonista ekraanile keelpilli kael. 
•	Luba kasutajal määrata krihvide ning keelte arv. Igal keelel on häälestusnupp. 
•	Iga keele puhul saab määrata, millisel kõrgusel vastav keel lahtisena kõlab. Vajutades keele ja krihvi ristumiskohale, kõlab sobiva kõrgusega heli. 
Akordion
•	Joonista klaviatuuri ja 36 bassiga akordion. 
•	Basside ridade ja veergude arvu saab kasutaja määrata. Samuti hiire abil lõõtsa lahti ja kokku vedada. 
•	Lisaks eelmisele kõlab bassinuppudele vajutades neile vastav heli. 
Vilepill
•	Joonista vilepill. Pillil on avatud tekstiväljas määratud hulk auke. 
•	Lisaks eelmisele teeb pillile vajutamisel viimane häält. 
•	Augule vajutamisel on augud lõpust kuni sinnani avatud. Kõlab sellisele sõrmede paigutusele vastav hääl. 
Protsessid
Veetase
•	Kasutaja sisestab basseini pikkuse, laiuse ja sügavuse ning basseinis oleva vee hulga. Programm näitab ristlõikes veetaset basseinis 
•	Lisaks eelnenule saab kasutaja basseini vett lisada või sealt võtta. Programm näitab, kuidas veetase tõuseb või alaneb. Tuleks arvestada ka võimalusega, et vesi on otsas või et ajab üle ääre 
•	Kasutaja sisestab kahe ühendatud anuma mõõtmed. Ta saab kummassegi anumasse vett lisada või sealt võtta. Programm näitab, kuidas vesi anumates ühtlustub ning kuidas vesi (nt õhumullid) anumaid ühendavas torus voolab. 
Vaiade maasse löömine.
•	Joonista suurte, majaehituseks tarvilike vaiade maasse löömiseks tarvilik raske haamriga masin koos kõrval asuva vaiaga. 
•	Nupuvajutuse peale kukub haamer vaiale peale ning vai vajub veidi sügavamale. 
•	Kasutaja annab ette vaia läbimõõdu, pikkuse ja vajaliku löömissügavuse. Jämedamad ja sügavamal asuvad vaiad liiguvad aeglasemalt. Algkäskluse peale töötab haamer kuni vai on õigele sügavusele löödud. 
Lille kasvamine.
•	Joonista kasutaja määratud pikkusega lill. 
•	Saab määrata ka õielehtede arvu ning on näha, kuidas lilleõis avaneb. 
•	Siledal maal tuleb hiirevajutuse kohal välja kaks idulehte, sealt vars, lehed, pung, lõpuks avanev õis. Saab lisaks määrata lehtede arvu ja kasvamise kiirust. 
Autosõit
•	Liiguta kriipsu ekraanil nooleklahvidega. 
•	Kriipsu saab liigutada piki oma sihti edasi ja tagasi. Teise klahvipaari abil saab kriipsu sihti muuta. 
•	Ühe klahvipaariga saab esirattaid pöörata, teise abil kiirust muuta. Auto sõidab nii nagu juhitakse. 
Kilpkonna juhtimine. 
•	Kilpkonna elupaigaks on 10x10 ruudustik. Lähteasend vasakul ülemises ruudus suunaga paremale. Talle saab anda sõnalisi käske "edasi" ja "tagasi".  Esimesel juhul liigutakse üks samm edasi, teisel juhul samm tagasi. 
•	 Lisatakse käsud "vasakule" ja "paremale". Nende puhul pööratakse kilpkonna vastavas suunas täisnurga jagu. Käsklused saab kirjutada tekstialasse käsujadaks, mis ühe hooga tööle pannakse. 
•	 Keelde lisatakse vahendid valikuks, edasiliikumisvõimaluse kontrolliks, kordamiseks (tööjärje suunamiseks) ning programmi töö katkestamiseks. Pane kilpkonn liikuma mööda seinaääri, s ning 8-kujuliselt.  
Värvimuusika.
•	Joonistatakse kolme tulega (punane, roheline ja sinine) värvimuusika.  Tuli, millele vajutatakse, jääb põlema, teised kustuvad. 
•	Hiirega vasakule poole vajutades kõlavad madalad, paremal kõrged ning keskel vahepealsed helid. Madalatega põleb koos punane, kõrgetega sinine ning vahepealsetega roheline tuli. 
•	Kõlanud helide mängimise ajad salvestatakse faili ning nupule vajutades mängitakse koos värvimuusikaga maha. 
Raudtee
•	Ekraanil paistab liikuv raudtee pealtvaates 
•	Programm demonstreerib pöörangu tööd. Kasutaja saab määrata, kumma  teeharu peale rong suundub. Ekraanil on näha, kuidas liigub rongi rattapaar.
•	Ekraanil on raudteede rägastik (näiteks neli kõrvuti olevat ovaali). Kasutaja saab muuta pöörangute asendit ning trammi kiirust. 
Hammasrattad
•	Joonistatakse kasutaja määratud hammaste arvuga hammasratas. 
•	Selliseid hammasrattaid joonistatakse kaks ning pannakse üksteisesse hambunult pöörlema. 
•	Kasutaja annab ette mõlema hambunult pöörleva ratta hammaste arvu. 
Pendel
•	Pendel liigub ühest servast teise. 
•	Pendel võngub vastavalt füüsikaseadustele 
•	Lisaks eelmisele saab pendli pikkust ning algnurka hiirega näidata. Pikem pendel võngub aeglasemalt. Lisaks on näha, kuidas võnkumine tasapisi sumbub. 
Kaldpind
•	Ekraanil on kaldpind ja sellele järgnev tasapind. Klots libiseb mööda pindu. 
•	Lisaks eelmisele arvestatakse liikumisel raskuskiirendust ja takistusjõudu. 
•	Klotsi asemel on pöörlev ratas. Kasutaja saab  ratta algse asukoha määrata hiirega. 
Liikuv inimene
•	Kujuta ekraanil liikuvate jalgadega külgvaates inimene 
•	Kujuta ekraanil programmi kasutaja poolt määratud kiirusega jalutav inimene, kel jalad maas ei libise. 
•	Sama mis eelmine, kuid kasutaja võib lisaks ka oma vaatekohta ja -suunda valida. 
(Lihtustuseks võib reaalse inimese asendada kriipsujukuga.)
Liikuva auto mudel
•	Auto sõidab üle ekraani 
•	Auto sõidab kasutaja poolt määratud kiirusega üle ekraani ning ta rattad pöörlevad vastavalt liikumiskiirusele 
•	Autot saab klahvidega juhtida (pöörata ning kiirust muuta). Vaataja on paigal. Arvesta auto kujutamisel ka perspektiivi. 
Kriipsujuku kõnd
•	Koos hiire vedamisega liigub ekraanil kriipsujuku. 
•	Kriipsujuku jalutab ekraanil nii, et käed ja jalad liiguvad nagu inimesel kõndides. 
•	Lisaks eelmisele jalutab kriipsujuku ekraanil edasi-tagasi, pöörates end ise ümber. Suurust ning kõndimise kiirust saab kerimisribade abil muuta. 
Joonistamine
Punktid
•	Kohta, kus hiirega ekraanile vajutada, tekib väike rist. 
•	Lisaks: teineteisest  kõige kaugemal asuvate punktide vahele tõmbab arvuti joone. Iga uue punkti lisamisel leitakse pikim vahe uuesti.
•	Kõigepealt ühendatakse kaks kõige lähemal asuvat punkti. Järgnevalt ühendatakse tekkinud võrku punkt, millel on selleni lühim ühendustee. Nii edasi, kuni kõik punktid on võrku ühendatud. Iga ühendusjoone keskele kirjutatakse tema järjekorranumber.
Joonistamine
•	Joonista raamile ring.
•	Joonista tsükli abil mitu ringi.
•	Joonista kasutaja poolt määratud arv ringe.
•	Joonista ritta kasutaja määratud arv puid (lihtne puu võib koosneda  joonest ja ringist).
•	Joonista hiirega vajutamise kohale puu.
•	Joonista lihtne maja.
Hiir
•	Hiirega vajutamise kohale joonistatakse ristkülik
•	Hiirega vajutamise kohale joonistatakse tekstivälja sisestatud sõna
•	Joonistatava sõna värvi saab määrata valikmenüüst
•	Hiirega lohistades jääb järele joon
Ekraaniilustaja
Programm joonistab ekraanile 
•	suvalisse kohta suvalise värviga punkte.  
•	suvalisse suunda minevaid ligikaudu kümne punkti pikkusi jooni. Joone algus ühtib eelmise lõpuga 
•	keerleva värviliste külgedega kuubi 
Ekraaniilustused
•	Joonista ekraanile ring.
•	Pane ekraanile tekkima suvalisse kohta väikseid ringe.
•	Ka ringi värv valitakse juhuslikult.
•	Suvalisse kohta tekib täpp ning suureneb ringiks.
•	Selliseid suurenevaid ringe tuleb üksteise järel palju.
•	Valmissaanud ring liigub ekraani allserva ja kaob. 
•	Kadumisel muutub ring taas väikseks täpiks.
Tulpdiagramm
•	Vastavalt sisestatud arvule joonistatakse ekraanile tulp.
•	Etteantud kolme arvu järgi (vahemikus 1-10) joonistatakse tulbad ning  skaala tulpade kõrvale.
•	Sama, kuid arvude vahemik pole ette teada.
•	Tekstifailis on inimeste sünniaastad. Tulpade abil näidatakse, millisest  aastakümnest kui mitu inimest on.
Spiraal
•	Programm joonistab ekraanile spiraali 
•	Kasutaja saab (näiteks kerimisriba abil) muuta spiraali keerdude vahet. 
•	Lisaks eelmisele saab muuta ka spiraali pöörlemiskiirust 
Rakend
•	Loo tervitav veebileht.
•	Paiguta sinna rakend, millele on joonistatud ring.
•	Pane programm töötama nii rakenduse kui rakendina.
•	Hiirevajutusega määratakse ringi asukoht.
•	Valikust määratakse, kas joonistatakse ring, ruut või kolmnurk. 
•	Paremas servas asuva kerimisribaga määratakse kujundi suurus.
•	Veendu, et programm töötab endiselt edukalt nii käsureal kui veebilehel.
Punktid failist
Tekstifaili igal real on ühe punkti koordinaadid
•	Programm joonistab iga punkti kohale ringikese. 
•	Ring liigub ekraanil, läbides järjestikku kõik punktid. 
•	Lisaks eelmisele  arvestatakse joonistamisel mõõtkava nii, et kõik punktid ekraanile parajasti mahuvad. Taustaks on koordinaatteljestik. 
Graphics2D
•	Joonista ring joone laiusega 25 punkti.
•	Määra joonistusvärviks üleminek punaselt kollasele
•	Määra taustamustriks väikesed kriipsujukud.
•	Muuda joon punktiiriks.
•	Määra joonistusala nii, et sinna jääb vaid osa ringjoont
•	Jäta taust ringi alt veidi läbi paistma.
Mängud
Trips-traps-trull
•	Ekraanil on #-kujuline mängu põhi. Hiirega vajutatud ruudu keskele joonistatakse rist.
•	 Lisaks eelnevale joonistatakse kordamööda riste ja ringe. Ühte ruutu mitut kujundit ei lubata panna.
•	Lisaks eelmisele teatatakse, kes võitis või jäi mäng viiki. 
Kabe
•	Ekraanile joonistatakse kabelaud ning tekstiväljas määratud ruutu paigutatakse kabenupp. 
•	Nuppude seis loetakse failist, nupud on piltidena. 
•	Lisaks eelmisele näidatakse täppide abil, kuhu valge käia/võtta võib. 

Tennis
•	Võrguga tenniseväljakul liigub pall (ring) vasakult paremale.
•	Samaaegselt ringi liikumisega saab ekraanil liigutada reketit. 
•	Kummalgi serval on liigutatav reket, mille tabamisel pall tagasi põrkab. Loetakse punkte. 
Pokker
•	Ekraanil on kolm tekstivälja. Nupuvajutuse peale pannakse igasse välja juhuslik arv vahemikus 1-5. Kui kõik kolm numbrit on ühesugused, siis joonistatakse ekraanile "Võit".
•	Eelmisega võrreldes on arvude asemel oma kohale liikuvad pildid. 
•	Lisaks eelmisele saab üheks korraks kaks pilti muutumatuks määrata. Loetakse punkte. Mängijate seisud on krüpteerituna failis. 
Ussimäng
•	10*10 ruudustikul asub vasakul ülaservas neljalüliline uss, keda saab  nooleklahviga paremale liigutada.
•	Uss liigub pidevalt, nooleklahvidega saab tema liikumise suunda määrata. Seinani jõudmisel uss seiskub. 
•	Ussiga püütakse juhuslikus kohas asuvat kuldmuna. Muna kättesaamisel uss pikeneb kahe lüli võrra ning muna tekib uude kohta. Seina või enese hammustamisel uss lüheneb nelja lüli võrra. 
Trilma
•	Ekraanile joonistatakse trilma mängulaud, kuhu saab hiirega nuppe paigutada. 
•	Mängulauale saab ka võrgu kaudu teate saata, kuhu nupp panna. 
•	Võrgu kaudu saab kahe- või kolmekesi trilmat mängida. 
Tilgapüüdja
•	All servas saab liigutada kaussi 
•	Ekraanil kukub tilk. Selle kaussi püüdmisel saab punkti. 
•	Tilku võib korraga kukkuda mitu. Mäng on meeldivalt kujundatud ning töötab märgatavate vigadeta. 
Mängukaardid
•	Osaliselt üksteise peale joonistatakse kolm juhuslikku mängukaarti. 
•	Kaarte saab üksteise peale hiirega vedada. 
•	Kaardid on segatuna laiali laua peal. Sealt saab välja lohistada kaks kaarti ning need ringi pöörata. Kui numbrid on ühesugused, võetakse see paar välja ning leidjale lisatakse punkt. 
Kriipsumäng
•	Ekraanil on 10x10 ruudustik. Kasutaja saab ruudu servi jämedamaks kriipsuks märkida. 
•	Lisaks eelmisele, kui ruudu neli külge on märgitud, joonistatakse ruut teise värviga. 
•	Kaks kasutajat saavad võrgu kaudu kordamööda serva kriipse märgistada. Kelle kriipsust ruut ümbritsetud saab, sellele lisatakse  punkt. 
Nooltega ralli.
•	Noolte abil saab muuta ekraanil liikuva ringi kiirust. 
•	Külgmiste nooltega saab muuta liikumise suunda, teiste nooltega kiirust. 
•	Korraga võib üle võrgu sõita kaks kasutajat. Aetakse taga juhuslikus kohas paiknevat aaret, mis selleni jõudmisel hüppab uude kohta. 
Poomine.
•	Arvuti väljastab failis olevatest sõnadest juhusliku. 
•	Lisaks eelmisele näidatakse sõna tähed kriipsudena. Iga kord, kui kasutaja sisestab tähe, näidatakse sinnamaani kirjutatud tähed sõnas välja, ülejäänud on endiselt kriipsudena. 
•	Lisaks eelmisele on mäng ilusti kujundatud, olematu tähe pakkumise eest lisandub pildike poomisahelas. 
Hiir ja ruut
Töö aluseks näide, kus ruut liigub hiirevajutuse kohale. 
•	Lisa ekraanile tekstiväli ning kirjuta sinna hiirevajutuse koordinaadid.
•	Programmi käivitamisel paigutatakse ruut juhuslikku kohta, hiirevajutuse  peale koht ei muutu.
•	Tekstiväljas teatatakse, kas hiirega saadi ruudule pihta.
•	Tabamuse korral leitakse ruudule uus juhuslik asukoht.
•	Mõõdetakse aega, palju kulus kümnel järjestikusel korral ruudu tabamiseks.
Hiiremäng
•	Programm mõõdab, kui palju kulub aega kümne hiirevajutuse tegemiseks.
•	Mängu algul tekib ekraanile ring. Kui sellele vajutada, siis ring sealt kaob ning tekib uude juhuslikku kohta. Teatatakse, kui palju kulus aega 10 ringi tabamiseks. 
•	Lisaks eelmisele salvestatakse ringide asukohad, mängu alguse ning ringide tabamise ajad faili. Eraldi programmi abil leitakse, kui palju keskmiselt iga ringi tabamiseks aega kulus, s.t. kui palju mängu esimese ringi, palju teise jne. tabamiseks. 
Sirelasemäng
Alustuseks on kasutada mängu põhi
•	Tutvu mänguga
•	Lae lähtekood, pildid ja helilõigud oma arvutisse, kompileeri ja käivita.
•	Otsi Internetist pilte ning kujunda nende abil mäng oma silma järgi. 
•	Lisa punktidearvutus.
•	Loo mängule lõpp.
•	Luba samaaegselt liikuda kahel mängijal
Rendzu
•	Joonistatakse 20*20 ruudustik. Vajutatava ruudu keskele joonistatakse kordamööda ruut või ring.
•	Lisaks eelmisele ei saa samasse ruutu korduvalt käia. 
•	Lisaks eelmisele kontrollitakse ja teatatakse, kui kellelgi õnnestus saada viis märki ritta (olgu siis püsti, pikali või kaldu). Võimalus alustada uut mängu. 
Klahvidega liigutamine.
•	Nooleklahvidega saab liigutada ekraanil olevat ringi.
•	Ekraanil juhuslikus kohas paikneb rist. Jõudes ringiga selleni, hüppab rist uude juhuslikku kohta.
•	Liigutatavaid ringe on kaks, kummalgi oma klahvid.
•	Risti asemel on pisike pilt. All servas on kirjas, mitu korda kumbki  mängija on ristini jõudnud.
Rakendused
Tekstikomponent
•	Graafikakomponent näitab enesel määratud teksti. Katseta loodud komponenti. 
•	Komponendil on 24 rida ja 80 tähte reas. Käsuga määratakse, millisest ruudust alates ning milline sõna kirjutatakse. Iga tähe jaoks on üks koht. 
•	Lisa komponendile kursor, võimalus kohtade arvu muuta ning Pascali tekstiekraanist tuttavad käsud: setColor, setBackground, gotoXY, write, writeln, clrscr. 
Tekstiredaktor
•	Paiguta ekraanille nupp ja tekstiala.
•	Nupule vajutamisel kirjutatakse alas olev tekst faili nimega "teated.txt".
•	Lisa teine nupp, millele vajutamisel loetakse failis olev tekst tekstialasse.
•	Paiguta nupud kõrvuti raami ülaserva ning venita tekstiala üle ülejäänud raami.
•	Lisa alla serva tekstiväli, kus saab määrata faili nime.
Statistikaga tekstiredaktor
•	Nupule vajutamisel salvestatakse tekstiallasse kirjutatud tekst faili.
•	Lisa teine nupp, millele vajutamisel loetakse failis olev tekst tekstialasse.
•	Lisa alla serva tekstiväli, kus saab määrata faili nime. 
•	Lisa paremasse serva tekstiala, kus jooksvalt näidatakse, palju on tekstis  tähti,  sõnu,  ridu ja lauseid.
Klahvivajutused
•	Klahvi alla vajutamisel tekib ekraanile ring, üles laskmisel see kaob. 
•	Ekraanil liigub allavajutatud klahvi täht. 
•	Ostsillogrammil on näha, millal milline kolmest klahvist viimase 20 sek. ajal all, millal üleval oli. 
Sõnatrükk.
•	Teatatakse, kas tekstivälja ilmunud sõnale kirjutati teise välja täpne vaste. 
•	Võetakse aega, palju kulub kümne sõna õigesti järele kirjutamiseks. 
•	Sõna tekib ning kui teda pole 7 sekundi pärast järele trükitud, siis kaob. Iga õigeaegselt kirjutatud sõna annab plusspunkti, kadunu miinuse. 
Kalkulaator
•	Koosta programm, mille abil saaks liita, lahutada, korrutada ja jagada. 
•	Numbrid ja tehted saab sisestada hiirevajutuste abil. 
•	Lisaks peab kalkulaator mõistma arvutada geomeetrilist keskmist ning täisnurkse kolmnurga hüpotenuusi pikkust. Vähemalt ühe käsu saab tagasi võtta. 
Nimede otsing
Mõningikord tuleb nimesid leida pikast loetelust, kus õige otsitava ette
kerimine võib hulga aega võtta.

•	Loo valik (Choice), kust kasutaja võib sobiva nime valida.
•	Loo tekstiväli ja lisa sellele kuular. Kui tekstivälja kirjutatakse  nimistus leiduv sõna, siis nimistust märgitakse vastav sõna.
•	Nimistus on sõnad tähestiku järjekorras. Keritakse ette sõna, mis  sissetipitule lähim on.
•	Kui sissetipitud tähtedega algab nimistust vaid üks sõna ning kasutaja  vajutab "Enter"it, siis täidetakse tekstiväli sobiva sõnaga.
•	Tippimisel võib olla eespool nii perekonna- kui eesnimi. Kirjutamise ajal  on nimistus näha kõik võimalikud kombinatsioonid, mis algavad sissetipitud  tähtedega.  
Geoinfosüsteem
•	Loo andmebaasi geograafiliste objektide hoidmiseks andmetabel väljadega id, nimi, x ning y. Hiirega ekraanile vajutades märgitakse vastavad kohad tabelis. 
•	Lisaks eelmisele joonistatakse tabelis olevate andmete järgi ekraanile ringid. Vajutades ringile, saab näha ning muuta koha juurde kuuluvat nime. 
•	Lisaks eelmisele loo kahe väljaga seosetabel sõlmede ühendamiseks. Kahele sõlmele järjestikku hiirega vajutades loetakse need seotuks. Seos joonistatakse välja joonena. Hiirega saab olemasolevaid sõlmi pinnal nihutada. Seosed jäävad püsima. 
Trükiharjutus
•	Ekraanile tekkinud täht kaob vastava klahvi vajutamisel. 
•	Sama, kuid tähti võib korraga olla mitu. 
•	Juhuslikud tähed kukuvad ülevalt alla. Pihtasaadud tähe eest saab plusspunkti, möödaläinu eest miinuse. 
Swing
Swingi tabel
•	Loo nulle ja x-e sisaldav 3x3 JTable.
•	Luba kasutajal andmeid muuta ning loe kokku, mitu risti on märgitud. 
•	Lase kasutajal andmed valida valikmenüüst.
Swingi puu
•	Loo puu, mille juure nimeks on "1" ning lehtedeks "2" ja "3".
•	Loo puu, mille lehtedeks on arvud ühest tuhandeni. Oksteks algarvud nii, et mööda okstest koosnevat teed pidi korrutades jõutaks lehe väärtuseni. Mitme teguri korral panna väiksem juure poole. 
•	Lisaks eelmisele peab saama määrata sisestatavate arvude vahemikku. Arvu küsimise peale avatakse puu tee soovitud leheni.
Progressiriba
•	Liiguta progressiriba väärtust algusest lõpuni. 
•	Ring liigub ühest servast teise. Ühes sellega kasvab progressiriba väärtus.
•	Ring liigub ekraanil kümme korda ühest servast teise ja tagasi. Ühe progressiriba väärtus kasvab kogu ulatuses paremale liikumise ajal, teise väärtus vasakule liikumise ajal ning kolmas kasvab tasapisi, jõudes maksimumi liikumise lõpuks. 
Slaider
•	Loo ekraanile Swingi slaider. 
•	Lisa slaiderile suured kriipsud 5 ning väikesed 3 ühiku järel. Lisa tekstiväli. Slaideri väärtust näidatakse tekstiväljas. Slaideri all on skaala.
•	Lisaks eelmisele muudetakse tekstiväljas oleva numbri muutmisel slaideri väärtust. Skaala väärtuse osa on tumedam (ClientProperty JSlider.isFilled), skaalaks on sõnad "külm", "leige", "soe", "tuline".
Valikupaneel
•	Loo valikupaneel Eesti suuremate linnade nimedega.
•	Lisa igale linnale ikoon ning vihjeks (ToolTip) ligikaudne rahvaarv. Iga paneeli sisuks kirjuta suure kirjaga seda linna läbiva jõe nimi.  Pane linnad automaatselt iga viie sekundi tagant vahetuma.
•	Iga linna puhul saab kasutaja anda viiepallisüsteemis hinnangu vaatamisväärsuste, toitlustuse ning teedevõrgu kohta. Kasutaja saab soovi korral linnu lisada. Valikute vastused salvestatakse faili.
Tekstiredaktor valikupaneelil
•	Loo kahe valikuga valikupaneel, kus kummalgi paneelil paikneb tekstiala. 
•	Lisa kummalegi paneelile nupud failist lugemise ning sinna salvestamise kohta. Esimene paneel on seotud failiga katse1.txt ning teine failiga katse2.txt.
•	Kasutaja saab avada ja salvestada soovitud tekstifaile. Kõik avatud failid on näha valikupaneeli paneelidena.
Menüüd
•	Loo raam menüüga "Tervitused" elementidega "Sünnipäev" ning  "Kooli lõpp"
•	Lisa alammenüü, valitav menüüelement ((J)CheckboxMenuItem) ning toimiv menüükäsk programmi töö lõpetamiseks. 
•	Lisa menüü "numbrid" alammenüüdega "0".."9", igaühes asuvad vastava kümne numbrid. Numbrile vajutamisel kirjutatakse vastav arv tekstivälja. Loo hüpikmenüü (PopupMenu) kolmega jaguvate menüüelementide lubamiseks/keelamiseks ning algarvuliste menüüelementide peitmiseks/näitamiseks. 
Sisemised raamid.
•	Loo aken kolme sisemise raamiga. 
•	Kasuta sisemisi raame pildifailide näitamiseks. Kasutaja valitud pildifail avatakse uues raamis. Raami suuruse muutudes muutub ka pilt. Sulgemisnupule vajutades raam kaob.
•	Lisaks eelmisele saab avatud pilti redigeerida ning jpeg-failina salvestada. 
Swingi komponendid
•	Loo JFrame.
•	Paiguta selle ülaserva pildiga nupp.
•	Nupule vajutades valitakse JColorChooseri abil nupu värv.
•	Raami vasakusse serva paigutatakse puu (JTree). Puu elementideks on arvud ühest kümneni
•	Igal esimese taseme elemendil on samuti alamelemendid ühest kümneni. 
•	Valitud elemendi väärtus kirjutatakse lehe allservas olevasse tekstivälja. 
•	Paremal servas olevale nupule vajutades avatakse JFileChooser, kust  valitud  pildifail joonistatakse raami keskele paigutatud paneelile.
Pilditöötlus
Ekraanipilt
•	Kopeeritud ekraanipildi parem alumine nurgatükk näidatakse suurendatuna üle ekraani.
•	Kopeeritud ekraanipildi nurgatükk liigub alaservas edasi-tagasi.
•	Kopeeritud ekraanipildi serv jagatakse mõnekümne punkti pikkuse küljega ruutudeks. Need ruudud liiguvad ekraani servas ringiratast ümber ekraani. 
Kopeeritud ekraanipilt
•	Programmi käivitamisel kopeeritakse parasjagu nähtav ekraanipilt mällu ning näidatakse kasutajale. 
•	Pilt kopeeritakse mällu kogu ekraani ulatuses ning näidatakse ekraanile klassi Window abil, seega ilma välimise raamita ning peaks näima tõetruu.
•	Loodud ekraanipildile hakkavad juhuslikesse kohtadesse tekkima täpikesed, kuni lõpuks on kogu pilt kirju.
•	Ekraanipilt salvestatakse vähendatuna jpeg-faili.
•	Väljastatakse, kas ja kus leidub ekraanil musta värvi täpp
•	Ekraanipildilt otsitakse üles ja tehakse topeltklõps akende ülanurgas olevatele sulgemisristikestele.
Pildi koostamine.
•	Loo MemoryImageSource abil rohekas pilt.
•	Pilt on ülalt servast tumedam ning alt heledam.
•	Kopeeri ekraanipilt ning keera see tagurpidi.
•	Saada loodud pilt võrgu kaudu teise arvutisse vaatamiseks.
Joon pildil
•	Loo MemoryImageSource abil pilt, kus mustal taustal oleks valge joon.
•	Loo joon keskelt valge, servad lähevad aga sujuvalt taustaks üle.
•	Pane eelmises punktis loodud joon horisontaalsuunas liikuma.
Kurviline ekraaniilustus
•	Ekraanil põrkavad kaks punkti ning nende vahele on tõmmatud joon.
•	Ekraanil põrkavad neli punkti ning nende abil moodustatud CubicCurve2D.
•	Liikumisel on näha ka kõverjoone eelmised asukohad, kuni need lõpuks taustaga ühte sulavad.
Värviüleminek
•	Loo MemoryImageSource abil värviüleminek punaselt sinisele. 
•	Kasutaja märgib pildil kolm punkti. Ühes neist on maksimumis punane, teises roheline ning kolmandas sinine värv. Värviüleminekud pildil on sujuvad.
•	Märgitud haripunktide asukohti saab kasutaja hiirega hiljem liigutada.
Pildiredaktor
•	Kasutaja võib ekraanile joonistada ringe ning neist moodustunud pildi kettale salvestada.
•	Saab parandada varem koostatud pilte, lisatud on vahendid joonte ning ristkülikute loomiseks. 
•	Pilti võib suurendada ning parandada ühe pikseli kaupa. Ühe käsu saab tagasi võtta.
Pildiredaktori koostamine
•	Joonista iga hiirevajutuse peale ekraanile ring.
•	Joonista ring mälus olevale pildile, nii et see ka raami suuruse muutumisel näha jääb
•	Ühest rippmenüüst valitakse joonistamise värv.
•	Teisest rippmenüüst valitakse joonistatav kujund (täidetud või tühi ring  või ruut).
•	Lisatakse joone tõmbamise võimalus.
•	Nupuvajutuse peale salvestatud loodud pilt .jpeg faili. 
•	Teise nupu vajutuse peale loetakse pilt valitud failist.
Matemaatika
Palli lend
•	Hiirega vajutamise kohast kukub alla pall. 
•	Hiirega vedades saab pallile anda algkiiruse. Edasine liikumine toimub vastavalt raskuskiirenduse ning õhutakistuse mõjule. 
•	Pallile saab hoogu anda vaid vasakult alt. Palle võib korraga lennata mitu. Programm arvestab aega, palju kulub esimese palli välja viskamisest viie palli sattumiseni paremal all asuvasse urni. 
Joon
Programm palub sisestada nelja punkti koordinaadid tasandil ning väljastab
•	kas läbi punktide 1-2 ja 3-4 tõmmatud jooned on paralleelsed 
•	kas punktist 1 punkti 2 tõmmatud lõik ning punktist 3 punkti 4 tõmmatud lõik puutuvad kokku 
•	Lisaks eelmisele kujutatakse olukorda graafiliselt koos koordinaattelgedega ning  lõikude kokkupuutumise korral joonistatakse kokkupuutekohale värviline ring. 
Kolmnurk
•	Hiirega vajutatud kolme punkti abil joonistatakse kolmnurk. 
•	Lisaks eelmisele kirjutatakse kolmnurga külgede juurde külgede pikkused ning nurkade juurde  nurga suurus kraadides. 
•	Lisaks eelmisele saab juba valminud kolmnurga nurkade asukohti hiirega liigutada. 
Graafik
•	Joonistatakse võrrandi y=ax graafik, koordinaatteljed ja skaala, kus kasutaja määrab kordaja. 
•	Võrrandiks on y=ax+b. Skaala valib rakendus nii, et ekraanil jäävad näha nii nullpunkt kui joone lõikumine y-teljega. Kasutaja määrab a ja b.
•	Lisaks eelmisele võib kasutaja suurendada ja vähendada graafiku mõõtmeid.
Kujundid
Pane ekraanil 
•	ring liikuma mööda kolmnurgakujulist orbiiti. 
•	kolmnurk veerema (parajasti maas olev nurk on paigal) 
•	kaks ringi juhusliku suuna ja kiirusega servade vahel põrgates liikuma, kusjuures ringid on ühendatud sinusoidi kujulise joonega. 
Siinus
•	Programm joonistab ekraanile siinusfunktsiooni graafiku. 
•	Ekraanil liigub siinuse laine. 
•	Lisaks eelmisele näidatakse siinusfunktsiooni tekkimist tiirleva punkti projektsioonina. Tiirlemise kiirust ning ringi raadiust saab kasutaja muuta. 
Jooned
•	Loo programm, kus saab hiire abil ekraanile jooni tõmmata .
•	Lisaks eelmisele peavad jooned püsima ekraanil ka siis, kui joonteekraan vahepeal tahaplaanile satub. Joonte alg- ning lõpppunktide koordinaadid salvestatakse faili. 
•	Lisaks eelmisele joonistatakse lühemad jooned tumedamalt ning pikemad heledamalt.  Ümber joonte on võimalikult väike ristkülik, mis pärast iga joone joonistamist uuesti luuakse. 
Põrkamine sirgjoonel
•	Üks veerev kuulike annab oma liikumisenergia edasi teisele samasugusele. 
•	Üks kuulike on kindla massiga ning algul paigal, teise massi ning algkiiruse saab määrata. 
•	Joonel asub hulk kehasid, mille massi saab määrata. Vedades hiirega neist esimesele hoo sisse, jätkub edasine liikumine vastavalt põrkamisseadustele. 
Põrkamine tasandil
•	Ring liigub ruudukujulisel pinnal, põrgates vastu servi. 
•	Lisaks eelmisele kui liikuv ring satub vastu pinna sees seisvat ringi, siis liikumine peatub. 
•	Kaks ringi liiguvad ristkülikukujulisel pinnal, põrgates nii vastu servi kui üksteist arvestades füüsikaseadusi. 
Põrkamine
•	Pall veereb nelinurksel väljakul ning põrkab servani jõudmisel sealt tagasi. 
•	Sama, kuid väljak on rohkem kui nelja (näiteks viie) servaga, st. tuleb arvestada olukorraga, kus servad pole täisnurga all.
•	Väljakul veereb kaks palli. Nad põrkavad nii väljaku servast kui ka teineteise vastu minemisel 
Pall ekraanil
•	Pane pall ekraanil liikuma nii, et ta servadest tagasi põrkaks.
•	Lisaks eelmisele on platsil ühest seinast keskkohani ulatuv vahesein, pall põrkab ka sealt. 
•	Lisaks eelmisele võib vaheseinu võib ise hiirega tõmmata. (Lihtsuse huvides võib lasta tõmmata vaid püst- ja pikalijooni) 
Pallivise
•	Pall lendab vastavalt etteantud viskenurgale. 
•	Lisaks arvestatakse viske ning tuule suunda ja tugevust ning näidatakse, kas saadi sihtmärgile pihta. 
•	Tulemuseks võrgu kaudu toimiv mäng, kus kasutajad saavad üksteist lumepallidega loopida. 

Pallivise II

•	Ring liigub üle ekraani.
•	Ring liigub nupuvajutuse peale üle ekraani.
•	Tekstiväljas etteantud algnurgaga liigub ring üle ekraani.
•	Etteantud viskenurgaga pall kukub raskusjõudu arvestades lõpuks kaarega maha.
•	Lisa teine tekstiväli teise heitja jaoks. Üksteisele pihta saamisest antakse teada.
3D
3D kujundid
•	Loo ekraanile mitmesse kohta mitmesuguseid kuupe
•	Koosta õu laternapostide, istepinkide, põrkava palli ning liigutatava  palliga. Luba kasutajal oma asukohta muuta. Katseta värve,  mustreid ja  interpolaatoreid. 
•	Anna palli koordinaadid ette tekstiväljast.
Ringid ja seinad
•	Liiguta klahvide abil ringi ekraanil.
•	Ekraanil on sein, millest ei saa läbi liikuda.
•	Seinu on ekraanil palju, nad moodustavad nurgelise koridori.
•	Liigutatavaid ringe on kaks. Kummagi tarbeks on oma klahvipaarid. 
•	Lisaks ringidele paikneb ekraanil aare (punane täpp). Esimesena aardeni  jõudnu saab punkti.
Ringid võrgus
•	Klahvivajutused saadetakse serverprogrammile.   Iga muutuse peale teatatakse ringi uus asukoht. 
•	Ringi liikumist on võimalik vaadata üle võrgu.
•	Kliente võib olla mitu, igaüks saab liigutada vaid oma ringi.
3D võrgumäng
•	Mängijate asukohad määratakse serverist tulevate andmete järgi.  Samaaegselt on seis näha nii kahe- kui kolmemõõtmelisel kujul.
•	Platsil on sein. Serveris olevate arvutuste järgi hoolitsetakse, et seda  ei saaks läbida. 
•	Kujunda eelnenu põhjal võimalikult tõelisena näiv võrgumäng.
Rekursioon
Naerunägu
•	Joonista naeratav nägu, kelle kummaski silmas oleks samuti naerunägu.
•	Joonise suurendamisel ilmub igast silmast jälle uus naerunägu välja.
•	Lisaks eelmisele saab kasutaja panna joonise pidevalt suurenema ning määrata näo kallet.
Ringide joonistamine 
•	Joonista üksteise sisse viis ringi
•	Muuda joonistatavate ringide arvu kerimisribaga
•	Suurenda koos kerimisriba liigutamisega ringide läbimõõte. Keskelt tuleb välimiste suurenedes pisikesi ringe üha juurde. 
•	Kuni on ruumi, joonista iga ringi sisse neli  omaette  väiksemat ringi. Neisse igaühte samuti neli väiksemat jne.
•	Pane sellised ringid ühtlaselt kasvama, nii et  seest üha pisemaid ringe nähtavale ilmub.
Riigipiir
•	Joonista kahe punkti vahele sakiline joon.
•	Joonise suurendamisel ilmuvad nähtavale üha uued ja uued jõnksud.
•	Suurendamisel tekkivad jõnksud jäetakse meelde. Lisaks saab kasutaja hiirega märkida piiril leiduvaid nurki. Uuesti sama piirkonna suurendamisel peavad jõnksud ning märgid samas kohas asuma.
Viisnurgad
•	Ekraanile joonistatakse viisnurk. 
•	Üha väiksemad erivärvilised seest täidetud viisnurgad on üksteise sees, kusjuures sisemise viisnurga tipp läheb välimise viisnurga serva keskkohta.
•	Üksteise sees on kuni 100 viisnurka. Kerimisribaga saab määrata, millise koha peal sisemise viisnurga nurk välimise serva puutub.
Võrk
Pistikliides
Võrguühendus
•	Koosta kasutajat tervitav serverprogramm.
•	Server küsib kasutajalt nime ning väljastab selle pikkuse
•	Lisaks eelmisele salvestatakse faili masinate aadressid, kust on ühendust võetud
•	Iga kasutaja tarvis luuakse omaette lõim.
•	Loo programm kahe kasutaja vaheliseks võrgukabemänguks. Nad saavad kordamööda üksteisele käike saata. Loetakse, mitmenda käiguga on tegemist ning kui palju on kummalgi mõtlemisaega kulunud.
Jututuba
Töö aluseks serveris töötav jututoa mootor, mis kõikidelt ühendusevõtjatelt  saabunud teated teistele edasi saadab.
•	Loo tekstiväljaga aken sinna teadete saatmiseks.
•	Loo tekstialaga aken jututoast tulevate teadete lugemiseks
•	Ühenda need programmid kokku, pannes teadete lugemise omaette lõime.
•	Jututoas on näha kasutaja nimi.
Graafiline jututuba
•	Hiirevajutuse koordinaadid saadetakse jututoa serverisse.
•	Programmis paigutatakse ekraanile ring vastavalt saabunud koordinaatidele.
•	Klient saadab jututuppa hiirevajutuse andmed kujul kasutajanimi : x y
•	Iga kasutaja viimase hiirevajutuse asukohal on klientprogrammis näha tema nimi. 
•	Lisaks oma asukohale saab üle kanda ka tavalist teksti. Võrguliikluses on   sellise rea ees hüüumärk.
Jututoa server.
•	Igalt kliendilt küsitakse jututuppa sisenemisel tema nime. Edaspidi  näidatakse seda   tema saadetud teksti ees.
•	Jututoas liikuvad teated logitakse tekstifaili koos ajatempliga. Lisa  analüüsivahend  ühe kasutaja teadete eraldamiseks.
•	Lisa vahend privaatteadete saatmiseks.
•	Üks kasutaja ei või kirjutada sagedamini kui viie sekundi tagant. Sama  teksti pole  võimalik kaks korda järjest saata.
Meldimine
•	Väratit kuulav programm teatab ühendusevõtjale tema järjekorranumbri 
•	Programm küsib ühendusevõtjalt nime. Juhul, kui sellist nime veel kirjas ei ole, siis lisatakse see nimi nimede faili. 
•	Programm küsib ühendusevõtjalt kasutajanime ning parooli. Kui sellise kasutajanime ning parooliga kasutaja leidub, siis  väljastatakse serverarvuti kellaaeg. Olemasoleva kasutajanime kuid vale parooli puhul antakse veateade. Puuduva kasutajanime puhul lisatakse kasutaja soovi korral koos sisestatava parooliga andmebaasi. Järgmisel korral selle nime ja parooliga sisse meldides väljastatakse talle kellaaeg. 
Ühendused
•	Serverprogramm trükib ekraanile ühendust võtva masina aadressi. 
•	Iga ühendusevõtja jaoks avatakse eraldi raam, mille pealkirjaks on masina nimi, kust ühendus võeti. Raamis on tekstiväli ühendusevõtjale kirjutamiseks ning tekstiala ühendusevõtja poolt saabuva teksti näitamiseks. 
•	Lisaks eelmisele tehakse ka kliendile graafiline kasutajaliides. Serveriprogramm kirjutab loodud ühedused logifaili. 
Andmetalleti
•	Serverprogrammiga ühendust võttes väljastatakse kasutajale serveris paikneva infofaili sisu. 
•	Serverprogramm küsib kasutaja käest faili nime ning väljastab vastava faili sisu. 
Faili puudumisel teatab sellest. 
•	Kasutaja saab graafilise liidese abil valida, millist serveris paiknevat faili ta vaadata soovib. 
Andmesalvesti
•	Serverprogramm salvestab kasutaja poolt saadetavad andmed faili.
•	Serverprogramm küsib kasutaja poolt salvestatava faili nime ning siis laseb tal oma andmed sinna kirjutada. Kui vastav fail serveris juba olemas on, siis lisatakse saabuvad andmed faili lõppu juurde.
•	Graafilise kasutajaliidese abil saab serveris paiknevat faili muuta (s.t. kohale tekstiaknasse laadida ning pärast uuesti serverisse salvestada). 
Võrgumärkmik
•	Kasutaja kirjutatud rida väljastatakse järgmisel ühendumisel. 
•	Salvestatav teade võib olla mitmerealine. Küsitakse salvestaja nime ning järgmisel korral väljastatakse nimele vastav teade. 
•	Igal kasutajal on nimi ja parool. Igal teatel on pealkiri ja sisu. Kasutaja saab omi teateid vaadata, lisada ja kustutada. 
Võistkonnad
•	Serverprogramm jagab ühendusevõtjad kahte võistkonda, väljastades võistkondade nimesid kordamööda.
•	Võistkondade nimed on failis. Serverprogramm annab ühendusevõtjatele failist kirjutatud nimesid järjest, igaühele ühe. Kui ollakse jõutud faili lõppu, hakatakse jälle algusest peale. 
•	Lisaks eelmisele on ühendusevõtjatel graafiline kasutajaliides. Serverprogramm küsib ühenduse võtmisel kasutajalt nime ning määrab tema võistkonna. Kasutaja saab oma ekraanilt jooksvalt näha, kes millisesse võistkonda kuulub. 

Aardeotsimise mängu veebiprotokoll

        Seintega eraldatud labürindis on mängijad ning aare. Kasutajad saavad enese asukohta nooleklahvide abil muuta. Kes jõuab aardeni esimesena, see saab punkti.  
        Et mängu kirjutajate osalistel oleks võimalik eraldi oma lõike kirjutada, selleks peab olema eelnevalt paika pandud, kuidas osapooled (klient ning server) omavahel suhtlevad. Tuleb kokku leppida, kumb pool alustab, millised teated on vaja edasi anda ning kuidas need käsud kirjapildis välja näevad. Teated peaksid olema selged, et ei tekiks segadust, kuidas mingit käsklust parajasti mõista ning oleks võimalik kontrollida, kas kogu suhtlus käib protokolli järgi või on mõnes osapooles viga tekkinud ning ta on oma ajaarvamisega üldisest süsteemist välja läinud. Samas siiski piisavalt lühidad, et neid jõuaks lugeda, kontrollimisel sisse tippida ning ka võrguliiklus parajalt väike püsiks. Protokoll esitada sellisel kujul, et programmeerijad võiksid selle alusel kirjutama hakata.          Side alustamise järel teatab server klientprogrammidele osalejate andmed järgmisel kujul:

osalejate arv: 3
osaleja1: Juku
osaleja2: Kati
osaleja3: Mari
otsimine algab

Ülesanne1: Side alustamine

        Etapi käigus peavad selguma mängus osalejad.
        Algtase: ette on teada, et mängijaid on 2. Protokolli abil peavad saama mängijad oma nimed sisestada. Seejärel saadetakse klientidele osalejate andmed eelmainitud kujul.
        Kesktase: mängijaid on korraga endiselt 2, kuid nad peavad olema registreeritud parooli ja kasutajanimega. Protokoll peab olema nii kasutajate registreerimiseks kui mängu sisenemiseks. Protokolli hulka kuuluvad ka veateated.
        Kõrgtase: kasutajaid võib olla piiramatu arv, registreerimine nagu eelmisel puhul. Tuleb leida moodus, mille järgi otsustada kunas kasutajate lisamine lõpetada. 

Ülesanne 2: mäng ise

        Mängu alguse tunnuseks on serverilt saabuvad andmed mängijate kohta eelpooltoodud kujul.
        Algtase: mängijaid on 2, kumbki peab saatma serverisse omi koordinaate ning saama sealt vastu andmeid mõlema kasutaja asukoha kohta.
        Kesktase: lisaks eelmisele hoolitsetakse serveris, et kasutaja ei saaks läbi seina minna. Aarde leidmise puhul teatatakse sellest kõigile.
        Kõrgtase: lisaks eelmisele võib mängijaid olla piiramatu arv. Serverist saab andmeid kogutud punktide kohta. Aarde leidmisel võib mängu jätkata. Kasutajad võivad saata tekstilisi teateid nii kellelegi otse kui kui kõikidele kasutajatele. 

Aardeotsimise mäng

        Seintega eraldatud labürindis on mängijad ning aare. Kasutajad saavad enese asukohta nooleklahvide abil muuta. 

Ülesanne 1

        Joonista seinte paigutus ning võimalik algne kasutaja ning aarde asukoht, arvestades, et aardeni jõudmiseks võiks keskmiselt kuluda umbes 1 minut. Kasutaja näeb kogu väljakut seal paiknevaga pealtvaates 

Ülesanne 2

        Joonista seinte paigutus ning võimalik algne kasutaja ning aarde asukoht, arvestades, et aardeni jõudmiseks võiks keskmiselt kuluda umbes 1 minut. Kasutaja näeb ruumi kolmemõõtmelisena ning vaid seda, mis tema vaatekohalt paistab

Ülesanne 3

        Mõtle, mitmest labürindist võiks mäng koosneda. Mille eest ja kui palju oleks mõistlik punkte anda, et mängijal oleks põhjust piisavalt paljudele asjadele tähelepanu pöörata. Loetle oskusi ja tööriistu, mis võiksid mängijal lisaks tavalisele liikumisele olla.

Ülesanne 4

        Koosta algoritm, kuidas hoolitseda, et kasutaja ei saaks läbi seina minna. Kuidas sama probleem lahendada seintega, mis ei asetse täisnurga all?

Laevade pommitamine
•	Serverprogramm mõtleb numbri ühest kümneni. Kasutaja võtab ühendust ning pakub numbri. Programm teatab, kas number pakuti õigesti või valesti. 
•	Serveriga saavad ühendust võtta kaks kasutajat. Nad võivad hakata teineteisele kordamööda andmeid saatma (nagu käike males või kuule laevade pommitamisel) 
•	Kaks kasutajat saavad graafilise liidese abil laevade  pommitamist mängida. Kumbki kasutaja saab algul hiire abil oma laevade asukohad märkida. Siis saavad kasutajad näidata, kuhu hiirega lasta, ülejäänud töö teeb arvuti mängijate eest ära. 
Rändurid võrgumaastikul
•	Kaks kasutajat saavad võrgu kaudu saata teineteisele oma koordinaate. 
•	Kummagi kasutaja asukoht on näha ekraanil. Kumbki saab klahvide abil oma asukohta muuta. 
•	Mängu alustamisel on mõlemad kasutajad vasakul alumises nurgas. Võidab see, kes jõuab rutem ümber akna keskel paiknevate tõkete paremasse ülemisse nurka. 
Liiklus võrgus
•	Iga kasutaja saab oma sõiduvahendit liigutada. 
•	Lisaks eelmisele peavad sõidukid liikuma mööda teid ning ei tohi sattuda üksteise peale. 
•	Teedel on eesõigusmärgid ning valgusfoorid eesõigusi seadmas, eeskirju rikkuda ei saa. 
Veebilehtede lugemine
HTML lugeja
Programmile antakse HTML-faili URL. 
•	Väljastatakse, mitu rida on failis.
•	Programm leiab, mitu pilti on sellel HTML-lehel. 
•	Programm salvestab faili koos selles sisalduvate piltidega kohalikku masinasse.
Viited HTML-failis
Programmile antakse HTML-faili aadress.
•	Programm väljastab, kas selles failis on viide 
•	Programm väljastab, mitu viidet on failis 
•	Viidete aadressid väljastatakse eraldi faili absoluutsete URLidena.
Veebilugeja
•	Trüki etteantud aadressiga veebilehe sisu ekraanile. 
•	Trüki sisu üheaegselt nii ekraanile kui faili. 
•	Trüki välja veebilehel leiduvate "<" märkide arv.
•	Teata, kas võrgusõnastikus leidub kasutaja sisestatud sõna.

Nupukamatele:
•	Tekstifailis on sõnade loetelu. Selle põhjal luuakse teine tekstifail, kuhu iga sõna kõrvale otsitakse vaste võrgusõnastikust või teatatakse vaste puudumisest.
Programmeeritav veebiserver
Servlet
•	Loo tervitav servlet.
•	Lühenda sisestatud nimi: Juku Kaalikas -> J. Kaalikas
•	Teata masina aadress, kust ühendust võeti.
Sessioon servletiga
•	Lehele esmaavamisel küsitakse kasutajalt nime. Igal järgneval avamisel väljastatakse leht kasutaja nime ning juhusliku taustaga.
•	Kasutaja saab pakkuda arvuti valitud sõnast kas ühte tähte või tervet sõna. Loetakse kokku, mitu korda arvamiseks kulus.
•	Sõnaks valitakse juhuslik sõna veebis olevast eestikeelsest ajalehest.
Võimaluste proovimine
•	Loo veebileht väljastamaks lihtsa liitmistehte tulemust.
•	Loenda arvud tsükli abil ühest kümneni.
•	Lase kasutajal määrata, mitmeni numbreid loendatakse. 
•	Loenda lambaid. Iga paarisarvulise loetelurea taust on muudetud värviga.
•	Uuri muutujate abil välja kasutaja IP, serveri versioon jm.
Andmebaasiühendus
•	Loo andmebaasi tabel väljaga kingapaaride arvu hoidmiseks.  
•	Tee programm viie paari lisamiseks
•	Väljasta, mitu kingapaari on tabelis.
•	Eemalda iga käivitamisega üks paar, kuni kingi jagub. 

•	Loo Servleti abil veebiliides samale baasile.
•	Täienda tabelit: üheks veeru elemendiks on jalanumber ning teiseks
•	vastavale jalanumbrile vastavate kingapaaride hulk.
Andmetabelid
•	Loo andmetabel inimeste nimede ning isikukoodidega.
•	Väljasta nimed sorteerituna isikukoodide järgi.
•	Baasis on 3 tabelit: |nimi, isikukood|, |Ametinimetus, ametikood| ning |isikukood, ametikood|. Väljasta inimeste nimed koos nende ametinimetustega.
Külalisraamat.
•	Loo lihtne külalisraamat. Teateid saab ühekaupa sisestada ning üheskoos vaadata.
•	Lisa teatele nimi ning sisestusaeg. Luba mõlemi järgi sortida. 
•	Näita korraga vaid 10 teadet ning vajadusel nooli neis edasi või tagasi liikumiseks.
Õpilaste nimekiri
•	Andmebaasis olevad inimeste ees-ja perekonnanimed näidatakse veebilehele. 
•	Hiirevajutuse peale saab sortida mõlemaid andmeid tähestiku järjekorras nii kasvavalt kui kahanevalt, samuti nimesid lisada ja muuta. 
•	Lisaks eelmisele on baasis eraldi tabelis kirjas koolis õpetatavad erialad. Iga inimese juures saab määrata, millist eriala ta õpib. Samuti annab lisada ja muuta eriala kirjeldust ning küsida iga eriala õppivate inimeste loetelu. 
Kursustele registreerimine
•	Kursusele registreerimiseks tuleb veebi kaudu sisestada nimi ja isikukood. Andmed talletatakse baasi. 
•	Lisaks eelmisele kontrollitakse isikukoodi korrektsust ning vigase isikukoodi korral palutakse see uuesti sisestada, kusjuures nimi on lehel näha, kuid seda uuesti kirjutada ei tule. 
•	Kursuste nimi, id ja kirjeldus on kirjas eraldi tabelis. Kasutaja kirjutab sisenemiseks isikukoodi, koodi korrektsust kontrollitakse. Kui koodile vastavat nime ei leita, palutakse sisestada nimi. Kasutaja näeb, millistele kursustele ta end registreerinud on. Rippmenüüst  saab omale kursusi juurde valida. Ühele kursusele samal inimesel end mitu korda registreerida ei õnnestu. 

Isikukoodi kontroll:

Isikukoodis peavad kõik sugu ning kuupäeva tähistavad väärtused olema
võimalikud ning viimane kontrollnumber arvutatakse järgneva algoritmi järgi:
  liidetakse kokku esimese kümne numbri korrutised igale arvule vastava
järjekorranumbriga ning leitakse saadud summa jääk jagamisel 11-ga. Kui jääk
on võrdne kümnega, siis tehakse arvutus uuesti ning võetakse teguriteks
vastavalt 3, 4, 5, 6, 7, 8, 9, 1, 2, 3. 
Näide: isikukoodi 37605030299 kontroll. Summa =
1*3 + 2*7 + 3*6 + 4*0 + 5*5 + 6*0 + 7*3 + 8*0 + 9*2 + 1*9 = 108
108 jääk jagamisel 11-ga on 9 => isikukoodi viimane number peab olema
üheksa. 
Ülesannete esitamine
•	Õpilane sisestab veebilehele isikukoodi ning saab vastu õpetaja poolt välja pandud ülesande või teate, et ülesanded on otsas. 
•	Lisaks eelmisele on loodud õpetajale veebiliides ülesannete sisestamiseks ja muutmiseks. Jäetakse meelde, millise koodiga õpilasele milline ülesanne anti. Samale õpilasele mitut ülesannet ei anta. 
•	Ülesanded on grupeeritud ainete kaupa. Õpetaja saab määrata, millised õpilased milliseid aineid kuulavad, samuti, kas vastavas aines saab õpilane enesele ise ülesande olemasolevate hulgast valida või antakse ülesanne juhuslikult. 
Hinded veebis
•	Õpetaja sisestab tabelisse nimed ja nendele vastavad hinded. Tippides veebilehele sisse oma nime saab teada hinde. 
•	Esmakordsel oma nime tippimisel antakse inimesele juhuslikult loodud parool. Edaspidi saab selle nime ja parooli abil teada oma hinde. 
•	Hinded ühes aines võib olla palju. Loo õpetajale parooliga kaitstud keskkond hinnete sisestamiseks ning õpilasele vaatamiseks. Iga hinde juures on näha ka selle panemise aega. 
Registreerimisvorm
Loo tabel väljadega id, nimi ja  linn.
•	Veebilehe vormil saab sisestada oma nime ning linna nime, kuhu soovitakse  ekskursioonile minna. Andmed talletatakse tabelisse.
•	Linnade nimed valitakse rippmenüüst.
•	Rippmenüüsse võetakse linna nimed eraldi tabelist.

•	Loo leht näitamaks, millised inimesed kuhu linna sõidavad.
•	Loo leht, kus on näha, millisesse linna mitu inimest sõidab ning  kas selleks on vaja autot (kuni 4 reisijat), mikrobussi (10 reisijat) või  suurt bussi (rohkem inimesi).
Mitme tabeliga registreerimisvorm.
Loo 3 tabelit:
•	inimese andmed: inimese_id, isikukood, eesnimi, perekonnanimi.
•	linnade loetelu: linna nimi, linna_id.
•	külastused: inimese_id, linna_id, kylastusaeg

 Lisa tabelitesse mõned andmed.
•	Meldimise aknasse sisestab inimene oma isikukoodi. Väljastatakse, kas selline kasutaja on olemas.
•	Olemasolu korral näidatakse, millistesse linnadesse ning millal on tal  kavas sõita. 
•	Võimalda külastusi lisada. 

•	Tabelist puuduva isikukoodi korral küsitakse, kas kasutaja soovib ennast lisada. Sel juhul küsitakse inimese andmeid. 
•	Kontrolli isikukoodi korrektsust

Teated andmebaasis

•	Loo tabel "teated", väljadega ID, vanem, pealkiri, sisu. Lisa kolm teadet, välja "vanem" väärtus jäta nulliks. Loo veebileht teadete näitamiseks.
•	Väli "vanem" näitab selle teate ID-le, millele vastati või on 0, kui alustati uut keskustelu. Loo veebileht teadete näitamiseks, kusjuures lihtsustusena võib vastus olla vaid esimese taseme teatel. 
•	Lisa leht teadete/vastuste lisamiseks ning näitamiseks, andmepuu sügavust ei piirata.

 Teadete omadused

•	Loo kolm tabelit:  teated |id, teade|, omadused|id, omadus| ning seosed |id, teate_id, omaduse_id|. Lisa tabelisse mõned andmed ning näita veebilehel esimene teade ning selle omadused. 
•	Loo leht teadete lisamiseks, omaduste lisamiseks, teate juurde kuuluvate omaduste määramiseks ning soovitud teate näitamiseks veebilehele koos omadustega.
•	Lisaks eelmisele võib teateid ja omadusi näha ja muuta tabelina veebilehel, kus märkeruudu abil näidatakse ja määratakse, millised omadused milliste teadete juurde käivad.

Autentimine
•	Hoolitse, et lehele pääseks vaid kasutaja "juku" parooliga "kala";
•	Kasutajanime ja parooli kontrollitakse andmebaasist:
•	Parool hoitakse andmebaasis krüptitult. 
•	Lisa kasutajale leht parooli vahetamiseks.
Sisestuskontroll
Kontrolli, et kasutaja oleks sisestanud
•	kaks sõna
•	kuupäeva kujul pp.kk.aaaa
•	Elektronposti aadressi
Elektrooniline küsitlus
•	Küsimus: kas tänane ilm on  ... 
  Variandid: palav, paras, jahe.
•	Loo statistikaleht, kus tulpadega näidatakse, palju iga varianti on  valitud.
•	Pane staatusereale põrkama sõna "Küsitlus".

•	Loo administreerimisleht uue küsitluse loomiseks.
•	Luba statistikalehel valida, millise küsitluse diagramme vaadata.
•	Näita statistikalehel küsitluse külastatavust ajas. 
•	Uuenda lehte iga minuti järel.
E-kaart
Salvesta veebist kümmekond pilti. 
•	Luba kasutajal valida enesele soovitud pilt. Väljastatakse kood, mille abil on seda pilti võimalik taas vaadata. 
•	Pildi juurde saab kirjutada tervituse. Loodud kaardist antakse teada saaja postkasti. 
•	Pildivalik luuakse vastavalt kataloogi paigutatud piltidele automaatselt.  Pilte on võimalik näha ka alamkataloogidest. 
Loendur
•	Väljasta, mitmendat korda leht avati. 
•	Väljasta number lehel oleva kujundatud pildina, Lisaks teata, mitmendat korda avati leht praeguse kasutaja masinast.  
•	Lisaks eelmisele luba samast masinast lehte minuti jooksul avada mitte rohkem kui kolm korda, loo eraldi lehele graafik, kus näidatakse, millisest masinast mitu korda on vastavat lehte vaadatud.  
Kalender
•	Moderaator saab vaatajatele üles panna ürituste teateid. Teate juurde kuulub toimumise aeg ning ülespanija nimi. Tähtsamad teated tõstetakse lehel esile. 
•	Kasutajal on näha jooksva ning järgmise kuu kalender. Teadetega päevad on kalendris viidetena vastava teksti juurde.
•	Moderaatori töö käib rakendi abil, mis omakorda suhtleb andmebaasiga  servleti kaudu. Paroole hoitakse andmebaasis SHA sõnumilühenditena.
JSP
•	Loo JSP lehekülg juhusliku liitmisülesandega.
•	Väljasta kasutaja poolt määratud arv juhuslikke liitmisülesandeid.
•	Väljasta kõik sõnad, mis kasutaja sessiooni jooksul lehele sisenemiseks sisestanud on. 
JSP II
•	Loo JSP leht kahe sisestatud arvu liitmiseks Kasuta liitmiseks oa teenuseid
•	Hoia sessioonioas meeles küsitud liitmistehted. Tehte kordumisel võta andmed mälust ning teata kordumisest.
•	Salvesta küsitud tehted andmebaasi, iga tehte juures on näha, mitu korda on sellele vastust küsitud.
MySQLi konfigureerimine
•	Installeeri MySQL. Loo andmebaas, tabel, lisa kirje, muuda,  päri ja kustuta.
•	Eemalda nimetu kasutaja andmebaasist mysql tabelist user.
•	Loo kasutaja, kes tohib kõikidest andmebaasidest vaid pärida.
•	Loo kasutaja, kes tohib vaid ühe andmebaasiga töötada.
Veebitehnoloogiad
RMI oksjon
•	Loo juhuslikke paarisarve väljastav RMI objekt. Katseta selle tööd kliendiabil.
•	Luba kliendil küsida ja muuta väljajagatud objektis paiknevat arvu.
•	Muuda kliendi kasutajaliides graafiliseks, kohanda see oksjonil osalemiseks. 
•	Panust saab ainult suurendada, iga kliendi ekraanil on jooksvalt näha väärtuse kasvamine.
RMI
•	Loo teenus tervituse väljastamiseks. 
•	Loo teenus kasutaja määratud arvule faktoriaali leidmiseks ning kliendipoolne kasutajaliides.
•	Lisa serveri poolele graafiline liides teenuse seiskamiseks ning käivitamiseks. 
CORBA
•	Loo kuupäevateenus.
•	Väljasta ettantud arvu numbrid tagurpidises järjekorras.
•	Vaheta inimese andmetes päris- ja hüüdnimi.
Kirjad
•	Saada telneti kaudu kiri SMTP abil ning loe POP3 abil. Saada kiri JavaMaili abil.
•	Loe kiri JavaMaili abil.
•	Lisa kirjale kasutaja valitud fail.
•	Loo graafiline liides kirjade saatmiseks ja lugemiseks.
Tekst
Failid
HTML-looja
•	Programm küsib kasutaja käest HTML-lehe pealkirja ning loob selle pealkirjaga tühja HTML lehe. 
•	Programm koostab kasutaja poolt määratud ridade ja veerugde arvuga korrutustabelt sisaldava HTML faili .
•	Programm loob HTML-failide kompleksi kuni 100*100 korrutise leidmiseks. Juhtlehe tabelist saab määrata, millises kümnes kumbki tegur asub. Hiirevajutusega satutakse vastavale korrutustabelile, kust leitakse soovitud korrutis . 
Tekstifail
•	Väljasta tervitus tekstifaili.
•	Väljasta tekstifaili arvud ühest sajani.
•	Väljasta tekstifaili arvude ruudud ühest sajani.
•	Väljasta tekstifaili viis juhuslike liidetavatega liitmisülesannet.
•	Väljasta tekstifaili kasutaja pool määratud arv juhuslike liidetavatega liitmisülesannet, mille vastus ei ületaks kümmet.
•	Väljasta tekstifaili esimesele reale tabulaatoritega eraldatult arvud ühest   viieni ning teisele reale nende arvude ruudud. 
•	Loe andmed Exceli tabelisse.
•	Väljasta sarnaselt 10x10 korrutustabel.
Hinnetetabel
•	Programm loob kasutaja poolt määratud värvi taustaga tühja tekstifaili. 
•	Tekstifailis on õpilaste nimed ning nende hinded. Programm loob nende põhjal HTML-faili, kus nimed ning nendele vastavad hinded on tabelis. 
•	Tekstifailis on igal real õpilase nimi ning hinded ainete kaupa. Ainete nimed on faili esimesel real. Igale õpilasele luuakse HTML leht, kus pealkirjaks on õpilase nimi ning tabelis ained ning nendes ainetes olevad hinded. Lisaks juhtleht viitega iga õpilase lehele.
Sõnad tekstifailis
Programm väljastab tekstifaili
•	pikima sõna pikkuse 
•	pikima sõna 
•	sõnad pikkuse järgi sorteeritult 
Tekstifail ja täht
Sisendiks tekstifail ning täht. 
•	Programm väljastab kõik seda tähte sisaldavad sõnad teise faili.
•	Programm väljastab teise faili sõnad, kus tähte leidub enam kui üks kord.
•	Programm väljastab tekstifaili sõnad vastava tähe esinemise kordade arvu järjekorras. 
Tekstifail ja tähe osakaal
Sisendiks tekstifail ning täht.
•	Väljastatakse sõnad, kus vastavat tähte pole. 
•	Programm leiab sõna, kus tähe osakaal (tähe esinemise arv sõnas jagatud sõna pikkusega) on suurim.
•	Sõnad väljastatakse vastava tähe osakaalu järgi sorteeritult teise faili. 
Sünniaastad
Tekstifailis on hulk sünniaastaid.
•	Leia, mitu korda esineb nende seas aasta 1959
•	Loe tekstifaili aastaarvud LinkedList-i
•	Väljasta need aastaarvud sorteerituna teise tekstifaili
•	Otsi, kas loetelus leidub kasutajalt küsitud aastaarv
•	Väljasta teise tekstifaili vaid erinevad aastaarvud
•	Sega aastaarvude järjekord
Kalender
•	Kasutaja sisestab nädalapäeva numbri, millal on esimene kuupäev. Trükitakse vastava kuu kalender. 
•	Kasutaja annab aasta ja kuu, trükitakse selle kalender. 
•	Kasutaja annab aastaarvu.  Luuakse sellele aastale vastav HTML-leheküljestik, kus iga kuu kalender on omaette failis, pühapäevad punastega trükitult. Pealehelt on viide iga kuu failini ning sealt tagasi pealehele. 
Tekst
Programmile antakse tekst failina. 
•	Programm loendab tekstis olevate sõnade arvu. 
•	Programm väljastab, millise tähega kui mitu sõna algas 
•	Programm väljastab tekstist sõnad nende esinemise arvu järjekorras. 
Lause
•	Väljastatakse sisestatud lause sõnade arv. 
•	Väljastatakse enim sulghäälikuid sisaldav sõna. 
•	Sõnad sorteeritakse sulghäälikute arvu järgi. 
Failiuuring.
•	Teata, kas faili esimene rida algab K-tähega. 
•	Teata tekstifaili K-ga algavate ridade arv. 
•	Kirjuta sulghäälikuga algavad read ümber teise tekstifaili. 
Tekstifaili lugemine.
•	Väljasta tähtede arv tekstifaili esimesel real.
•	Väljasta tekstifaili ridade arv.
•	Väljasta 10-st sümbolist pikemate ridade arv.
•	Väljasta suurim sõnade arv real.
•	Väljasta neljatäheliste sõnade arv tekstifailis.
•	Väljasta, kas tekstifailis leidus paarisarve.
Tekstiekraan
Käsurida ja tekstiaken.
•	Väljasta DOS-i aknasse tervitus.
•	Väljasta esimene käsurea parameeter.
•	Väljasta esimese käsurea parameetri tähtede arv.
•	Väljasta käsurea parameetrite arv.
•	Väljasta iga käsurea parameeter eraldi reale.
•	Väljasta viimase käsurea parameetri tähtede arv.
•	Väljasta pikima käsurea parameetri tähtede arv.
•	Väljasta pikim käsurea parameeter.
Sõnad
•	Ekraanile trükitakse viis korda "Tere". 
•	Trükitav sõna ja kordade arv määratakse käsurealt. 
•	Etteantud arv kordi trükitakse pikim käsureale kirjutatud sõna. 
Sõnade võrdlus
Programm küsib  kasutaja käest kahel korral sõna ning teatab
•	kas need sõnad on ühesugused 
•	erinevuse korral, kas erinevad vaid ühe valesti löödud tähe poolest 
•	lisaks eelnenule, kas on kusagilt täht puudu või on kaks kõrvuti olevat tähte vahetusse läinud 
Kuupäev

Kasutaja sisestab aja kujul päev.kuu.aasta, nt 24.12.02 ning programm väljastab
•	aasta numbri neljakohalisena (2002)
•	aja kujul aasta/kuu/päev (2002/12/24)
•	vastuse sõnaliselt (kahekümne neljas detsember aastal kaks tuhat kaks)
Arvamismäng.
•	Arvuti teatab, kas kasutaja sisestas arvu 7. 
•	Arvuti mõtleb arvu ning teatab, kas kasutaja sisestas sama. 
•	Lisaks eelmisele lastakse arvata kuni õige vastuseni, teatades, kas pakuti vähem või rohkem. 
Osta elevant ära.
•	Arvuti teatab, "osta elevant". Kasutaja vastuse peale öeldakse, et "kõik ütlevad nii". 
•	Küsimust korratakse seni kuni kasutaja sisestab "elevant". 
•	Rumalate sisestatud sõnade puhul manitsetakse kasutajat. Kasutaja vastused salvestatakse faili. Lõpetatakse pärast 20. korda või sõna "elevant" sisestust. 
Tekstiväljad
Teksti kerimine
•	Nupuvajutuse peale liigub tekstiväljas olev täht ühe koha võrra paremale. 
•	Tekstiväljas olev sõna põrkab edasi-tagasi. 
•	Etteantud sõna paarisarvulised tähed liiguvad kastis ringi vasakult paremale ning paarituarvulised  paremalt vasakule, minnes üksteisest vaheldumisi läbi. Kui sõna on parajasti kokku saadud, siis selle koha peal oodatakse veidi kauem. 
Teksti kerimine II
•	Nupuvajutuse peale kopeeritakse ühes kastis olev tekst teise. 
•	Nupuvajutuse peale kopeeritakse tekst kastist teise ühe tähe kaupa, vahepeal pause pidades. 
•	Kopeerimist alustatakse teksti lõpust. Kõigepealt hüppab viimane täht teise kasti algusse ning liigub tasapisi lõppu. Siis hüppab tagant teine täht kasti algusse ning liigub eelmise tähe ette jne, kuni kõik tähed on üle kantud. 
Teksti kerimine III
•	Tekstiväljas keritakse ühte tähte 
•	Tekstivälja kirjutatud kolm sõna pannakse iga natukese aja tagant uude juhuslikku järjekorda. 
•	Tekstiväljas oleva sõna tähti keritakse nii: Kõigepealt liigum esimene täht teiste vahelt taha, olles vahepeal igas vahes. Teise tähega samuti. Kui kogu sõna on keritud, peetakse väike paus, siis jätkub kerimine uuesti. 
Sõna uurimine
•	Väljastatakse, kas sisestatud sõnas on paarisarv tähti 
•	Väljastatakse, kas sõnas on korduvaid paarisarvulisi tähti 
•	Täishäälikute omavahel ning sulghäälikute omavahel vahetamise teel väljastatakse kõik sõnad, mis algsest saada võib. 
Sõnetöötlus
Ekraanil on kaks tekstivälja. Kasutaja tipib lause ühte neist ning arvutuse
tulemus väljastatakse teise. Teatatakse :
•	Sisestatud sõna tähtede arv
•	Täishäälikute arv sisestatud sõnas
•	Sisestatud lause sõnade esimesed tähed
•	Lauses esinenud numbrite summa
•	Lause pikim sõna
Keel
Alamprogrammid
•	Loo alamprogramm arvu korrutamiseks kahega.
•	Loo alamprogramm kahe arvu vahe leidmiseks.
•	Loo alamprogramm etteantud arvu faktoriaali leidmiseks.
•	Loo alamprogramm massiivi suurima elemendi leidmiseks.

•	Loo alamprogramm teksti sõrendatud väljatrükiks. 
•	Loo alamprogramm teksti tagurpidi väljatrükiks.
Objektid
Punktid
•	Loo klass Punkt väljadega x ja y.
•	Loo sellest klassist kaks isendit ja anna nende väljadele väärtused.
•	Trüki mõlema punkti väljade väärtused ekraanile.
•	Kopeeri ühe punkti andmed teise punkti andmeteks.
•	Paiguta loodud kaks punkti massiivi. 
•	Loo massiiv saja punkti ning juhuslike andmetega. 
•	Määra viiekümnenda punkti x-koordinaadi väärtuseks 243.
•	Kirjuta välja punkti andmed, mille x-koordinaadi väärtus on vähim.
Klassid ja isendid
•	Loo klass Loom väljaga "nimi" ning meetodid "tutvusta" ning "nimepikkus". 
•	Tee loomale alamklassid "Koer" ja "Lehm", kus tuleb katta üle meetod "tutvusta" nii, et selles väljastataks ka looma liik ning looma nime  pikkus.  Koosta kestprogramm loodud klasside katsetamiseks.
•	Lisa klassile Loom staatiline väli loomadeArv, mille väärtus suureneb iga  looma (ka koera ja lehma) lisamisel (st klassi Loom konstruktori  käivitamisel). Muuda klassi Loom meetodit "tutvusta" nii, et see  väljastaks loomade arvu. Kutsu klassi "Koer" meetodist "tutvusta" välja  klassi "Loom" meetod "tutvusta".
•	Muuda konstruktoreid nii, et isendi loomisel saaks talle koheselt ka nime  omistada. Loo staatiline meetod loomade arvu väljastamiseks ning käivita  see ilma isendit kasutamata.
Objektid
•	Loo klass Auto väljadega pikkus, mass ning mark. Koosta selle klassi objektidest massiiv.
•	Loo klassile alamklass LiikuvAuto, mis realiseeriks liidest Liikuja. Liideses on kaks meetodit "edasi" ning "tagasi". Üks neist suurendab välja "asukoht" väärtust, teine vähendab seda. Katseta loodud klassi isendit. 
•	Loo viimati loodud klassile alamklassid Veoauto ning Soiduauto, mis sobivad kasutada graafikakomponendina. Väljade muutmine kajastub auto väljanägemises. 
Paketid
•	Loo klass meetoditega komponendi näitamiseks raamis. Saab määrata raami suurust, akna sulguvust, pealkirja ning komponendi olemasolu, kuid kasutatavad parameetrid on valikulised. Püüa võimaikult vähe koodi korrata. 
•	Paiguta klass arhiivi. Proovi sealtkaudu meetodeid välja kutsuda olles nii kohalikus kui ka jre/lib/ext kataloogis.
•	Loo oma asutuse all omanimeline pakett. Paiguta loodud klass koos meetodeid katsetava käivitatava klassiga sinna paketti. Muuda arhiiv käivitatavaks. Proovi luua rakend, mis võimalikult palju klasse loeks arhiivist.
Failinimed
Failide nimed
•	Väljasta jooksvas kataloogis leiduvate failide arv
•	Teata a-tähega algavate failide nimed
•	Väljasta 100-st baidist lühemate failide nimed
•	Väljasta jooksva kataloogi tekstifailide nimed sorteerituna
•	Teata juurkataloogi alamkataloogide nimed
•	Teata masinas leiduva pikima ja lühima faili nimi.
Rekursioon failinimedega
•	Väljasta tekstifaili masinas paiknevate failide nimed, pannes alamkataloogide sisud taandesse 
•	Lisaks eelmisele paiguta masinas paiknevate failide nimed SWINGi puusse. Puu elemendile vajutades näidatakse vastava faili pikkus. 
•	Lisaks eelmisele paiguta masinas paiknevate failide nimed XML-puusse ning seejärel väljasta puu tekstifaili. 
Andmed
Lõimed
•	Pane üheaegselt tööle kaks lõime, mis loevad arve ühest miljonini ning iga saja tuhande juures teatavad, kui kaugele nad jõudnud on.
•	Ühes lõimes mõeldakse juhuarve ning saadetakse toruvoogu. Teises lõimes loetakse ühekaupa arve listi juurde. Iga tuhande arvu järel teatab kumbki lõim, kui kaugele ta jõudnud on.
•	Kolmas lõim väljastab iga viie sekundi järel nimistu keskel asuva elemendi väärtuse ning järjekorranumbri. Nimistuga seotud operatsioonid on sünkroniseeritud.
Vormindamine
•	Väljasta kasutaja sisestatud arv täpsusega kolm kohta peale koma.
•	Loo graafiline liides, kus kasutaja saab teada, mitu sekundit on möödunud tema sünnist. Numbrid grupeeritakse kolme kaupa.
•	Lisaks eelmisele teatatakse tulevikus paikneva sünniaja korral, palju sinnani sekundeid on. Kasutaja saab määrata, mitme kaupa numbreid grupeeritakse. 
Andmekollektsioon
•	Loo alamprogramm massiivi elementide väljatrükiks. 
•	Trüki selle abil käsurea parameetrid. 
•	Trüki käsurea parameetrid sorteerituna.
•	Trüki käsurea parameetrid segatud järjekorras.

•	Paiguta käsurea parameetrid loetellu (LinkedList)
•	Lisa teise sõna järele "kala" ning trüki loetelu. 
•	Trüki vaid erineva väärtusega käsurea parameetrid.
•	Trüki käsurea parameetrid pikkuse järjekorras.
Täiendatud nimistu
•	Loo klassile LinkedList alamklass, kus jäetakse meelde jooksva elemendi järjenumber. Lisatakse meetodid edasi (lõpust hüpatakse algusse) ning tagasi (algusest hüpatakse lõppu) liikumiseks ja jooksva väärtuse küsimiseks. Testi loodud objekti. 
Voogude filtreerimine
•	Koosta filtreeritud väljundvoog, kus sümboleid koodidega 32-255 nihutatakse etteantud arvu koodide võrra. Loo sisendvoog nõnda muudetud andmete taas paika nihutamiseks.
•	Loo filtreeriv voog, mis paarikaupa vahetab tähtede järjekorra.  kalake -> akalek
•	Paki jooksva kataloogi failid zip-arhiivi.
Turva
Signeerimine
•	Koosta enesele keytool'i abil sertifikaat
•	Loo lihtne programm, paki see jar-faili. Signeeri loodud arhiiv.
•	Anna oma avalikku võtit sisaldav sertifikaat pinginaabrile ja võta tema oma vastu.
•	Saada signeeritud arhiivifail naabrile ning kontrolli ise naabrilt saabunud arhiivifaili õigsust.
•	Kontrolli, et signeerimata või tundmata võtmega signeeritud arhiivi puhul antaks veateade. 
Digitaalallkiri
•	Tutvu näidetega. 
•	Loo enesele võtmepaar. 
•	Signeeri tekst salajase võtmega
•	Kontrolli allkirja sobivust.
•	Loo graafiline liides, kus saab luua võtmepaari, signeerimisel ning kontrollimisel valida võtmefaili , allkirjafaili ja andmefaili.

•	Lisa vahend sõnumilühendi loomiseks ning etteantud faili baitide 
•	esitamiseks kuueteistkümnendsüsteemis.
Krüptograafia
•	Installeeri JCE
•	Tutvu näidetega
•	Sifreeri arvude 0-15 ruute tähistavad baidid (0, 1, 4, 9, 16 ... 225) tähistavad baidid DES-i abil võtmega, mille 8 baiti on väärtused alates kahest (2, 4, 6 ...).
•	Kontrolli tulemust desifreerimise abil.
•	Sama võtmega krüpti kasutaja poolt määratud failis asuvad andmed.
•	Loo failide krüptimiseks/dekrüptimiseks graafiline liides. Parool ning failinimi küsi kasutaja käest.
Õigused
•	Määra oma programmile uus turvahaldur. 
•	Luba programmil kirjutada faili nimega "katse.txt".
•	Luba nimetatud faili kirjutada vaid kindlas kataloogis asuval rakendil.
Nuputamist
Tähejärjestused. 
Tekstifailis on 100 kahetähelist rida. 
•	Väljastatakse, kas esimene kombinatsioon ka kusagil mujal kordub. 
•	Väljastatakse, mitu korda iga kombinatsioon esineb.
•	Kasutajal lastakse järjest tippida teksti, kõrval on jooksvalt tähestiku järjekorras näha, millist kombinatsiooni mitu korda esines. 
Tähekombinatstioonid
•	100 kb pikkusest tekstifailist väljastatakse, millist tähte mitu korda a-le järgneb.  
•	Arvutil lastakse luua 100 kb pikkune juhuslik tekst, milles tühikud on 2-8 tähe tagant. Väljastatakse need a-ga algavad tähekombinatsioonid, mille sagedus arvuti loodud ning kopeeritud tekstis enam erinevad. 
•	Kasutaja sisestatud juhuslikust tekstist näidatakse iga tähekombinatsiooni osakaal (%), kõrvale võrdluseks sama kombinatsiooni osakaal kopeeritud tekstis ning arvuti abil loodud failis. 
Pakkija
•	Tekst kirjutatakse ümber teise faili jättes tühikud välja. 
•	Vähemalt kolmekordsed tähed asendatakse tähe ja numbri kombinatsiooniga. Näiteks eeeuuuuu tulemuseks oleks 3e5u. 
•	Tekstis olevad sõnad nummerdatakse. Pakitud faili algul on sõnadest tabel. Seejärel tulevad vaid sõnade numbrid ja kirjavahemärgid. 
Tee ruudustikul
Tekstifailis on 10*10 ruudustik, kus läbitavat ruutu tähistab . , läbimatut
ruutu X, teekonna algust A ning lõppu O. Liikuda saab vaid kõrvale, üles või
alla.  Uuri, kas õnnestub liikuda algusest lõppu, programmi vastuseks on kas "jah" või "ei". 

•	Iga sammuga märgi läbitavaks ruudud, mis asuvad vahetult ligipääsetava ruudu kõrval. 
•	Lisaks eelmisele lahenda ülesanne ka sellise algritmi järgi:  
Esimese sammuga paigutatakse loetellu punktid, kuhu saab liikuda algkohast ühe sammuga. Edasi hakatakse ühekaupa loetelust punkte võtma ning loetelu lõppu lisatakse läbimata punktid, kuhu on võimalik uuritavast punktist liikuda. 
•	Lisaks eelmisele: Vaata rekursiivselt läbi punkti neli külge alustades algpunktist. 

Sisendi näide:

.....X....
.....X....
.....XXXXX
..........
...XX.....
....X.....
....X.....
....X.....
.A..X..O..
....X.....

Vastus: jah
Liitmine
•	Programm küsib kasutajalt vastused kümnele programmi poolt mõeldud liitmisülesandele ning teatab, mitu protsenti vastustest olid õiged 
•	Lisaks eelnenule teatab, mitu sekundit kulus lahendamiseks aega. 
•	Kõikidele ülesannetele õigesti vastanu käest küsib nime ning hoiab kümmet paremat failis kiiruse järgi pingereas. 
Bussiplaan
•	Buss sõidab Tallinnast Tartusse kaks tundi ja 30 minutit. Programm küsib Tallinnast väljumise aja ning väljastab Tartusse jõudmise aja. 
•	Tekstifailis on kahe peatuse vahelise vahemaa läbimise ajad minutites. Programm küsib bussi väljumise kellaaja ning väljastab peatustes olemise kellaajad.
•	Tekstifailis on peatuste nimed ning kahe peatuse vahelise vahemaa läbimise ajad minutites. Teises tekstifailis on bussi algpeatusest väljumise ajad. Programm trükib tekstifaili iga peatuse kohta ajad, mil buss seal peatub.
Histogramm
•	Programm küsib inimeste vanused ning väljastab nende jaotumise histogrammi.
•	Programm joonistab 10000st väiksemate algarvude jaotumise histogrammi.
•	2x1 meetrise kasti põhjas veereb 5 cm läbimõõduga juhusliku algkoha, -suuna ning -kiirusega pall. Vastu serva sattudes põrkab ta sealt tagasi. Kasti  ühes nurgas on 15 cm läbimõõduga auk. Koosta histogramm, mis näitaks auku sattumiseni kulunud põrgete arvu jaotust. Hõõrdumist ei  arvestata.  
Võrrand
•	Programm lahendab kahe muutujaga lineaarvõrrandisüsteemi 
•	Programm arvutab kahe maatriksi korrutise 
•	Programm leiab proovimise teel kuupvõrrandi nullkoha(d) 
Baidid ja bitid
•	Kirjuta faili järjest baidid väärtustega 0 kuni 255. 
•	Leia failis olevate bittide arv, mille väärtus on 1. 
•	Koosta vahend faili muutuste kontrolliks: lisa faili iga 8 baidi järel bait, mille iga bitt vastab ühele baidile eelnevast kaheksast ning näitab, kas seal oli bittidena paarisarv ühtesid. Programm peab kontrollimisel suutma näidata, millist baiti failist on muudetud. 
Arvamine
•	Arvuti mõtleb kolmega jaguva arvu vahemikust 20-50 ning kontrollib, kas kasutaja sisestas sama. 
•	Arvuti loeb kokku, mitme korraga kasutaja selle arvu arvab, andes leidmiseks vihjeid. 
•	Sama mäng võrgus mängimiseks, kusjuures öeldakse ette vahemik ning millega arv jagub. Iga kord esimesena õigesti arvanu saab punkti, server peab edetabelit. 
Rooma numbrid
•	Etteantud arv vahemikus 1-10 väljastatakse rooma numbrina. 
•	Sama, kuid vahemikus 1-2000. 
•	Väljastatakse kahe sisestatud rooma numbri summa. 
Numbrid sõnadena
•	Sõnadena väljastatakse arvud ühest sajani. 
•	Sõnadena väljastatakse algarvud ühest kümne tuhandeni. 
•	Väljastatakse kahe sõnadena sisestatud numbri (1-100000) summa. 
Kolm kappi
Telemängus on kasutaja ees kolm suletud kappi, ühes neist paikneb auhind.
  Kasutaja valib ühe kapi. Järgnevalt teeb mängujuht lahti kapi ukse, mille
  taga ei ole auhinda. Kasutajal on õigus valitud kappi vahetada. 

•	Koosta programm, kus mõttes paigutatakse aare juhuslikku kappi ning  kasutaja avab juhusliku ukse. Teatatakse, kus oli auhind,  millise ukse  kasutaja avas, ning kas kasutaja leidis auhinna.
•	Lisaks eelmisele koosta programm, kus kasutaja valib kapi, mängujuht avab  tühja kapi ning kasutaja vahetab valitud kapi. Teatatatakse, kus oli auhind,  millise ukse valis kasutaja algul, millise avas mängujuht, millise kapi avas  kasutaja lõpuks ning kas sealt leiti auhind. 
•	Käivita kumbagi programmi sada korda ning leia, mitmel korral kummalgi  juhul leiti auhind.
Arvusüsteemid
•	Sisestatud arv väärtusega 0-15 väljastatakse kahendsüsteemis. 
•	Etteantud vahemikus korrutustabel väljastatakse kaheksandsüsteemis. 
•	Etteantud arvusüsteemis loetakse numbreid etteantud vahemiku algusest lõpuni mõõduka kiirusega. Numbriteks olevad sümbolid saab kasutaja ise joonistada. 
Algarvud
•	Koosta programm, mis kirjutaks faili sada esimest algarvu
•	Koosta programm, mis küsiks kasutajalt arvupiirkonna (vähima ning suurima arvu) ning väljastaks, kui suur on selles lõigus suurim vahe kahe algarvu vahel.
•	Kujuta graafiliselt, millises tuhandes esimese kümne tuhande arvu puhul kui palju algarve asub.
Punktid
•	Kasutaja sisestab kahe punkti asukoha tasandil ning programm väljastab nende vahekauguse.
•	Failis on punktide koordinaadid. Programm väljastab punktide paarid, mille vahekaugus on vähem kui 10.
•	Failis on punktide koordinaadid. Programm joonistab need punktid ekraanile ning ühendab omavahel need punktid, mille kaugus on väiksem kui 10. Üksinda asetsevad punktid värvitakse siniseks.
Kiirus
•	Programm küsib kasutajalt liikumiskiiruse km/h ning väljastab, kui palju aega kulub sellise kiirusega ühe kilomeetri läbimiseks.
•	Programm küsib kasutajalt kümne auto kiiruse, väljastab keskmise kiiruse ning suurima ja vähima kiiruse vahe.
•	Programm loeb failist päeva jooksul teelõiku läbinud autode kiirused ning küsib kasutajalt lõigul parajasti kehtiva piirkiiruse. Teise faili väljastatakse kiirust ületanud autode kiirused ning nende kiiruste geomeetriline keskmine.
Söökla
•	Programm küsib kümne toidu hinna ning väljastab kõige odavama ja kõige kallima hinna.
•	Programm küsib kümne toidu nimetuse ning hinna ja väljastab kõige odavama ning kõige kallima toidu nimetuse.
•	Programm küsib iga toidu nimetuse, hinna ning selle, kas tegemist on külma või kuuma roaga. Programm väljastab eraldi külmade roogade faili ning eraldi kuumade roogade faili, kummagi sorteerituna hindade kasvavas järjekorras.
URL
Kasutaja sisestab dokumendi asukohta Internetis määrava URL-i (näiteks http://www.tpu.ee/~esindus/ ning 
•	teatatakse, kas selles leidus tähekombinatsioon www
•	väljastatakse masina aadress
•	Programm leiab URL-ide failist erinevad eesti masinate nimed ning need kirjutatakse eraldi faili.
Põrkamine
•	Joonista ekraanili liikuv pall, mis vastu serva põrkamisel muudab oma liikumissuunda.
•	Kera hakkab veerema 10*10 meetri suurusel väljakul ühtlase kiirusega 1 m/s juhuslikust kohast ning juhuslikus suunas. Leia, kui aplju kulub aega, et kera satuks taas algkohast vähem kui meetri kaugusele. 
•	Kaks kera raadiustega kumbki 10 cm hakkavad veerema 20*20 meetri suurusel väljakul kumbki juhuslikust kohast ja juhuslikus suunas kiirusega 1 m/s. Kui kaua kulub keskmiselt aega esimese põrkeni. Kui suur oleks ligikaudne katsete arv, et keskmine aeg ei kõiguks oluliselt üle 15%?

Caesari siffer
•	Väljasta sisestatud sõna iga täht tähestikus ühe koha võrra paremale nihutatuna. 
(kala->lbmb)
•	Loo vahend tekstifaili tähtede soovitud arvu koodide võrra edasi või tagasi nihutamiseks arvestades ka täpitähti.
•	Programmi sisendiks on kaks tekstifaili: avatekst ning võti. Luuakse krüpteeritud fail, kus iga avateksti faili tähe koodi suurendatakse võtmefailist võetud vastava tähe koodi jagu. Lisa vahend ka deśifreerimiseks
Muusika
MIDI
Noodid
•	Püüa üheaegselt kõlama saada kolm nooti.
•	Luba arvuti klahvidel klaverit mängida.
•	Pane arvuti heliredelit mängima.
Ksülofon
•	Järjestikku mängitakse kaks nooti. 
•	Joonistatakse ksülofon ning temale vajutamisel mängitakse noot. 
•	Igale pulgale lüües kostub sellele vastav heli. Mängimise ajaks muudab pulk värvi. 
MIDI sekventsid
•	Loo sekvents kümne piiksuga ning mängi see.
•	Loo sekvents kromaatilise heliredeliga.
•	Loo sekvents C-duuri heliredeliga ning mängi see kaks korda.
•	Loo sekvents valitud duuri heliredeliga.
•	Salvesta loodud sekvents MIDI-faili
MIDI fail
•	Mängi MIDI fail
•	Väljasta radade arv
•	Kopeeri faili muusika iseendale sappa
•	Lisa rada, kus viisi mängitakse nihkega (kaanon)
Kolmkõlad
•	Mängi duurkolmkõla. 
•	Mängi valitud helistiku duurkolmkõla. 
•	Ekraanil on noodijoonestik. Vajutades hiirega, mängitakse selle helistiku duurkolmkõla ning näidatakse ekraanil vastavaid noote. 
Digitaaheli
Digitaalheli
•	Mängi signaali sagedusega 440 Hz.
•	Pane signaali kõrgus sõltuma hiire asukohast ekraanil.
•	Hoolitse, et kõrguse muutumine oleks sujuv.
•	Korraga kõlab kaks heli. Ühe kõrgus sõltub hiire x- ning teine y-koordinaadist.
Helifailid
•	Salvesta AU-fail WAV-failiks
•	Salvesta piiks helifaili
•	Mängi loodud fail
•	Loo server- ja klientprogramm, et 
•	loodud faili oleks võimalik üle võrgu kuulata.
•	Peida helifaili sisse oma nimetähed.

•	Salvesta faili sisu ümber poole vaiksemalt.
•	Sega kokku kahe helifaili sisu.
•	Lindista oma hääl faili.
Heliredaktor
•	Mängi helifail. 
•	Salvesta kahe helifailisisu kokku üheks, nii et nad koos kõlaksid. 
•	Loo graafiline liides, kus saab valida, millised failid kokku salvestada ning milline kui valjult loodavas failis kõlab. 
Veebilehed
Veebilehtede genereerimine
•	Loo Wordi abil lihtne lehekülg.
•	Salvesta see HTML-formaadis.
•	Vaata tulemust brauseriga.
•	Muuda lehte, vaata muutust brauseris.
•	Loo lehele viide ajalehele "Postimees" http://www.postimees.ee/
•	Loo samasse kataloogi teine veebileht.
•	Loo kummaltki lehelt teisele viited. 
•	Lisa teisele lehele pilt. Muuda kirja ning tausta.
•	Pane lehed üles veebiserverisse.
•	Tutvu lehtede lähtekoodidega. 
•	Proovi leht koostada Netscape Composeriga

Käsitsi kirjutatud HTML
•	Loo lühike tervitus.
•	Lisa lehele pealkiri.
•	Katseta rasvast ning kaldkirja.
•	Lisa viide ajalehele.
•	Pane viide avanema eraldi aknasse.
•	Loo kaks lehte, kummalgi on luuletusest üks salm.  Kümne sekundi pärast avaneb esimese salmi järel teine.
•	Salme on kolm, igaüks eraldi lehel. Pealehelt on viide esimesele  salmile. Sealt liigutakse iseenesest edasi teisele, sealt kolmandale  ning kolmandalt taas pealehele tagasi.

•	Loo loetelu viidetega ajalehtedele.
•	Jaga leht kahte raami, pannes loetelu vasakule ning avanevad lehed  paremale.
Liitmisülesanded
•	Kirjuta skripti abil lihtne tervitus.
•	Kirjuta juhuslik arv.
•	Loo kümme juhuslike liidetavatega liitmisülesannet. 
•	Loo ülesanded nii, et vastus ei ületaks 100.
Tekstülesanded
•	Koosta protsentülesanne, kus valitakse juhuslikult nii ained kui hulgad.
•	Lisa ülesandele vastus.
•	Ümarda vastus kaks kohta pärast koma.
•	Koosta ülesande loomiseks alamprogramm.
•	Kirjuta kümme ülesannet.
•	Kirjuta kasutaja määratud arv ülesandeid.
Aknad
•	Loo viide uude avanevasse aknasse.
•	Ava aken programmi abil.
•	Määra akna suuruseks 300*200.
•	Kirjuta programmi abil tervitus avanevasse aknasse.
•	Paiguta loodavad ülesanded ühte aknasse ning vastused teise.

•	Jaga leht kaheks raamiks.
•	Pane sisukorras olevad viited avanema teise raami.

Vormi elemendid
•	Loo nupuga vorm.
•	Nupule vajutamisel avatakse teateaken.
•	Lisa tekstiväli. Nupuvajutusel näidatakse väljas olevat teksti.
•	Lisa teine tekstiväli. Nupuvajutusel näidatakse teises väljas  esimeses väljas asuva teksti pikkust. 

•	Lehel on kaks tekstivälja andmete jaoks, nende vahel tehtevalik,   siis nupp võrdusmärgiga ning väli vastuse tarbeks. (Pane tööle)
•	Katseta märkeruutu, raadionuppe ja tekstiala.

Arvutusülesanded
•	Luuakse 10 muutuvate lähteandmetega tekstülesannet. 
•	Luuakse etteantud arv muutuvate lähteandmetega tekstülesandeid, eraldi väljastatakse ülesannete vastused. 
•	Õpetaja saab ruudukeste abil märkida, milliseid ülesandetüüpe ta kontrolltöösse soovib, samuti sisestab variantide arvu. Väljastatakse igale õpilasele nii ülesannete- kui vastusteleht.  

Tekstianimatsioon
•	Pane tekstivälja iga viie sekundi tagant tekkima juhuslik arv.
•	Liiguta tekstiväljas olevat teksti.
•	Pane väljas olev tekst põrkama.
•	Lehel on kaks tekstivälja. Seal olevad tekstid põrkavad peegelipildis.
•	Lisaks liigub tekst all staatusreal.

•	Etteantud sõna moodustub ükshaaval paika liikuvatest tähtedest.
Kalender

•	Teata lehele tänane kuupäev.
•	Joonista tabelina jooksva kuu kalender.
•	Võimalda valida näitamiseks aasta ja kuu. Kuu valimata jätmisel näidatakse terve aasta kalender
Kalkulaator
•	Lehel on võimalik kahte arvu korrutada.
•	Sisestatakse algne summa, panga aastaprotsent ning hoitud aastate arv. Väljastatakse lõppsumma.
•	Eelmisele lisatakse graafiline esitus.

Navigeeritav veebileht.
•	Loo veebilehestik, kus vasakus raamis oleks sisukord ning paremas väidataks valitud lehekülgi.
•	Lisa ülaserva kolmas raam, milles oleksid nupud sisukorra näitamiseks ning kaotamiseks. 
•	Lisaks eelmisele asuvad iga lisatava lehe päise skriptis  märksõnad. Lehestiku  avamisel luuakse sisukorras viidatud lehtede märksõnadest tähestikulises järjekorras loetelu, kust kaudu võib kasutaja jõuda sobivale lehele. 

Objektid
•	Koosta objekt inimese andmetega (eesnimi, perekonnanimi, synniaasta) ning katseta seda.
•	Koosta alamprogramm inimese objekti loomiseks, katseta. 
•	Loo massiiv viie inimese andmetega. 
•	Väljasta tekstialasse kasutaja antud aastal sündinud inimeste perekonnanimedega.

•	Lisa inimesele meetod enese andmete väljastamiseks teatekastis, katseta.
•	Lisa inimesele meetod andmete väljatamiseks kujul perekonnanimi, eesnimi. 
•	Väljasta etteantud aastal sündinute andmed tekstialasse, kasutades koostatud meetodit.

Andmed

Andmeotsing
Loo veebileht tekstiala, nupu ning tekstiväljaga.
Peida lehe sisse massiiv inimeste eesnimedega.
Nupule vajutades
•	Väljasta, kas leidub sissetipitud eesnimi.
•	Väljasta sissetipitud tähega eesnimed.
•	Väljasta sissetipitud pikkusega eesnimed.
•	Ette saab anda eesnime nii esimese kui viimase tähe.

•	Lisa märkeruut, mille seesolekul väljastatakse tulemused tagurpidises järjejorras

Raamatumüük
•	Ekraanil on nelja raamatu pealkirjad, igaühe ees märkeruut.  Nupuvajutuse peale teatatakse, mitu raamatut on valitud.
•	Raamatute hinnad on hoiul massiivis. Teatatakse valitud raamatute  hindade summa.
•	Massiivis on nii raamatute nimed kui hinnad. Kõigepealt koostatakse   nende põhjal leht ning edasi toimib see nagu eelmises ülesandes.
•	Eelmisega võrreldes on iga raamatu ees valik, millest saab valida  ostetavate raamatute arvu.
Küpsised
•	Küsi kasutajalt nimi. Uuesti samale lehele sisenemisel  tervita teda nimeliselt.
•	Lehel oleva tekstivälja ning märkeruudu väärtus talletatakse  küpsises kuni järgmise avamiseni.
•	Isikuandmete määramiseks kasutatakse võimalikult paljusid  graafikakomponente (Nimi-tekstiväli, sugu-raadionupud,   rahvus-valik, huvialad-tekstiala,   juhilubade olemasolu-märkeruut, õnnenumber-parool). Sisestatud andmete   põhjal luuakse uude aknasse nende andmetega kujundatud leht.
•	Graafikakomponentide väärtused talletatakse küpsises ning järgmisel   avamisel viimatine olukord taastatakse.
Elektronpood
•	Loo leht kaupade loeteluga. Lehe alla kuvatakse valitud kaupade hindade summa.
•	Lisaks eelmisele saab kasutaja valida, mitut igast kaubast ta soovib osta. Valitute nimekiri saadetakse koos kasutaja andmetega teele poepidaja välkpostiaadressile. 
•	Lisaks eelmisele hoitakse valitud andmeid järgmise korra tarvis meeles küpsistena ning kaupade nimekiri koosneb sisukorrast ja mitmest lehest.

Regulaaravaldised
•	Kontrolli, et kasutaja sisestaks viie tähe pikkuse sõna.
•	Kontrolli, et ei sisestataks täpitähti
•	Kontrolli, et tegemist oleks kuupäevaga, kus aasta on neljakohaline.
•	Asenda punktiga lõppevad arvud nelja x-iga.
•	Väljasta lause esimene viietäheline sõna.

Asutuse telefoniraamat
•	Lehe alguses massiivi kirjutatud nimed ja telefoninumbrid väljastatakse tabelina.
•	Kasutaja saab hiirevajutusega valida, kas andmed väljastatakse sorteeritult nimede või numbrite järgi.
•	Lisaks eelmisele tippides sisse osa nimest või osa numbrist, väljastatakse vaid need andmed, mis sissetipitule vastavad.
Andmete esitamine
•	Ekraanile joonistatakse etteantud arvu kõrgune tulp
•	Kasutaja sisestab kolm arvu ning igale neist joonistatakse vastavusse tulp. Pikim tulp on punane, keskmine kollane ning lühim roheline.
•	Kasutajal lastakse lahendada kümme liitmisülesannet saja piires. Tulpadega näidatakse, kui palju kulus keskmiselt aega õige, õigest  suurema ning väiksema vastuse leidmiseks. 

Tunniplaan
•	Sisestatakse arv ning väljastatakse, millist ainet 7B klass selles tunnis esmaspäeval õpib.
•	Valitakse päev ning eraldi aknasse väljastatakse 7B selle päeva tunnid.
•	Valitakse päev ning klass ning eraldi aknasse väljastatakse selle klassi selle päeva tunnid.

•	Saab väljastada nii ühe tunni, ühe klassi tunnid, ühe päeva tunnid kui kogu kooli tunniplaani.

Javaskripti graafika
Punktpildid
•	Paiguta ekraanile suureks venitatud roheline pilt.
•	Nupule vajutades muudetakse pilt punaseks.
•	Lisa teine nupp pildi taas roheliseks muutmiseks.

•	Punane ja roheline pannakse kordamööda vilkuma.
•	Pilte on 10 tükki reas. Kasutajale näib, nagu liiguks punane silm  rohelisel taustal vasakult paremale.
•	Lisaks eelmisele jääb silm põrkama.
Ruudustik
•	Koosta kollastest punktpiltidest 10*10 ruudustik.
•	Pane punane ruut liikuma mööda ülemist serva vasakult paremale.
•	Pane punane ruut liikuma mööda vasakut serva ülevalt alla.
•	Pane punane ruut liikuma ringlevalt mööda ruudustiku serva.
•	Pane punane ruut kaldu liikuma ja servadest põrkama.
•	Pane juhuslikesse kohtadesse tekkima ja kaduma värvilisi punkte.
•	Pane samaaegselt ringi liikuma punane ja roheline ruut, kusjuures üks on teisest pool ringi maas.
Inimeste pikkused

•	Lehel on meeles inimeste pikkused. Teatatakse nimele vastav pikkus.
•	Inimeste pikkused joonistatakse tulpadena lehele, nimi kirjutatakse iga tulba alla.
•	Lisaks eelmisele on võimalik kasutajal andmeid lisada või parandada, samuti järgmise vaatamiskorra jaoks talletada.
Ruutude püüdmine
•	Ekraanil on kollane ruut. Hiirega sellele vajutades muutub nupp punaseks.
•	Võrreldes eelmisega on ruute rohkem
•	Võrreldes eelmisega on ruudud 10*10 ruudustikus.

•	Üks ruut on ruudustikus punane. Vajutades sellele, muutub see kollaseks.
•	Lisaks eelmisele muutub selle peale uus ruut punaseks ja tundlikuks.
•	Loetakse kokku, mitmele ruudule on pihta saadud.
Kihid
•	Loo ekraanile kiht
•	Lisa nupp kihi peitmiseks
•	Lisa nupp kihi näitamiseks
•	Lisa nupp kihi liigutamiseks paremale
•	Lisa nupp kihil abiinfo näitamiseks.
•	Loo lehe vasakusse serva viidete loetelu. Igale viitele vajutades hüppab kihina välja alammenüü.
Liikuvad klotsid
•	Kihist moodustatud klots liigub lehel edasi-tagasi. 
•	Klots põrkab lehel vastavalt füüsikaseadustele.
•	Mõttelise kummipaelaga on ühendatud kolm klotsi. Kasutaja saab hiirega nihutada esimest, ülejäänud liiguvad, arvestades ligikaudu elastsust ning inertsi.
Kiht
•	Loo lehele kiht ning kaks nuppu. Ühele nupule vajutades kiht peidetakse, teisele vajutades näidatakse taas.
•	Loo peamenüü ning kihtide abil kolm alammenüüd. Hoolitse, et alammenüüsid saaks sulgeda. 
•	Kolm sekundit pärast hiirevajutust ilmub peamenüü hiire alla. Alammenüüd avanevad peamenüü kõrvalt.
Trepp
•	Ristkülikute abil on moodustatud mitmekorrruselise trepi ristlõige
•	Roheline kujund liigub mööda trepiastmeid üles.
•	Kasutaja saab hiirega määrata, milliselt astmelt millisele liigutakse. 
Parkla
•	Koosta ruutudest parkla, kus autod paiknevad mitmes reas.
•	Näidatatakse, kuidas liikuda sissepääsust parkla tagumisse nurka.
•	Iga nupuvajutuse peale liigub järjekordne auto sissepääsust esimese sel hetkel vaba kohani. 
Sõiduväljak
•	Ekraanil on ruutudest koosnev väljak. All olevate nuppudega saab teisevärvilist ruutu nihutada üles, alla, vasakule ja paremale.
•	Liigutatava pildi peal on nool. Ühe nupupaariga saab noolt keerata, teisega edasi-tagasi liigutada.
•	Lisaks eelmisele on platsil märgitud kaks ruutu (postid). Võetakse aega, palju kulub aega ümber postide 8 sõitmiseks.
Tetris

•	Pane ruut kukkuma ülalt alla
•	Ruutu saab kukkumise ajal vasakule ja paremale liigutada. 
•	Lisaks eelmisele jäävad ruudud  püsima üksteise otsa, täissaanud rida kaob.

Kabe

•	Joonista ruutudest kabelaud.
•	Paiguta lauale nupud ning võimalda kasutajatel kordamööda käia. 
•	Kontrolli käikude korrektsust ning teata mängu lõpust.

Joonistamine
•	Ruutudest koosneval platsil saab hiirega ruutude värve muuta.
•	Kõrvalt ribalt saab valida, millise värvi abil hiirega joonistatakse.
•	Lisaks eelmisele on vahendid ka soovitud suurusega ringi ja ruudu joonistamiseks.
Ühe mängija tennis
•	Pall liigub ekraanil edasi-tagasi.
•	Ühe seina asemel on kasutaja liigutatav reket. Selle vastu põrgates jätkab pall liikumist, muul juhul läheb alast välja ja seiskub.
•	Lisaks eelmisele on mäng korralikult kujundatud. Arvestatakse aega, punkte. Tasemete tõustes lisandub kiirus ning esemed, mille pihta on pall võimeline ala sees põrkama.
Tennis
•	Liiguta klahvide abil reketit.
•	Kummalgi kasutajal on oma reket. Platsil liigub pall, põrgates nii seintest kui reketitest.
•	Mängida saab 1-4 osalejat (igaühel oma sein). Loetakse punkte. 
Mäluga menüü
•	Pilt muudab sinna hiirega vajutamisel värvi.
•	Lehe vasakul servas on piltidega menüü, ülejäänud osa katab menüüst valitud sisu. Valitud ja valimata menüüelementide pildid erinevad.
•	Lisaks eelmisele hoitakse külastatud lehtede aadresse küpsiste abil meeles, nii et ka uuest lehele naasmisel on näha, millised kohad on külastatud.

Keeled
Veebileht PERLi abil
•	Loo kasutaja määratud elementide arvuga nummerdamata loetelu, mille elementideks on arvud.
•	Linnade nimed, mida loetellu panna, võetakse ühest failist, tulemus väljastatakse teise.
•	Lisaks eelmisele tehakse sisseloetava HTML-kujul näitamiseks sobivad asendused.
Ülesandeid VRMLiga tutvumiseks.
•	Proovi mitmeid VRML Tutoriali ning muid võrgu pealt leitud näiteid.
•	Koosta silindrist ja kerast puu.
•	Muuda silinder rohekaks ning puu pruunikaks. 
•	Lisa taevasse päike ja pane valgustama. 
•	Päiksele vajutades kukub see veidi allapoole.
XML
XML sugupuu
•	Loo inimeste loetelu. Isikuandmeteks eesnimi, perekonnanimi ja sünniaasta.
•	Loo sugupuu alates (oma) vanaisast. 
•	Koosta eespool loodud dokumente kirjeldavad DTD-d ning kontrolli esituse vastavust sellele.
•	Väljasta andmed IE lehele, muutes CSS-i abil sünniaasta rasvaseks.
•	Koosta puu nii, et seal oleks näha ka väljastpoolt tulnud lapsevanem.
XML andmetöötlus DOM-iga
XML-failis on sugupuu alates vanaisast. Väljasta:
•	Mitu last oli vanaisal.
•	Mitu last oli vanaisa teisel lapsel.
•	Kas sugupuus leidub Kalle nimelist isikut
•	Kalle isa/ema nimi

•	Lisa Kallele Martini-nimeline poeg, eemalda Kalle ema sünniaasta ning trüki uus puu XML-ina välja.
SAX 
(Simple Api for XML parsing)

•	Lappa SAX-i abil sugupuu ning väljasta, kas alati järgneb eesnimele perekonnanimi
•	Väljasta kõik eesnimed eraldi real.
•	Leia pikim eesnimi.
XML ja DOM
Aluseks on sugupuuna paigutatud andmed.
•	Teata vanaisa eesnimi
•	Teata vanaisa laste arv
•	Teata sugupuus olevate inimeste arv.
•	Teata vanaisa teise lapse laste arv.

•	Leia ühe inimese eesnime järgi tema perekonnanimi
•	Leia selle inimese laste arv
•	Leia selle inimese sugupuud pidi tuleva esivanema eesnimi.

•	Küsi otsitava inimese nimi veebilehelt.
•	Leia selle nimega inimeste arv sugupuus
•	Teata, kui otsitavat inimest ei leitud.

•	Trüki välja kõikide inimeste eesnimed
•	Trüki välja kõik nimed nummerdamata loetelus.
XSL
•	Loo XSL leht, mis sõltumata sisendandmetest väljastab "Tere".

Loetelus on vähemalt viie inimese andmed: eesnimi, perekonnanimi ning sünniaasta.

•	Väljastatakse teise inimese sünniaasta
•	Andmed väljastatakse tabelina nii mallide (template) kui for-each tsükli abil.
•	Luuakse SQL-laused inimeste andmete lisamiseks baasi.
•	Väljastatakse semikoolonitega eraldatud loetelu vanuste järjekorras. 
•	Parameetrina antakse ette käesoleva aasta number. Iga inimese kohta väljastatakse nimi ja vanus.

Sugupuu

Sugupuus on vähemalt kolme põlve andmed, iga inimese kohta vähemalt ees- ja perekonnanimi ning sünniaasta.

•	Trükitakse välja inimeste nimed ning nende laste arv.
•	Väljastatakse nimed, kel on vähemalt kaks last.
•	Väljastatakse nimed, kellel on sugupuus vanavanem.
•	Andmepuus muudetakse sünniaasta atribuudiks.
Andmepuu loomine
•	Koosta linnanimede loetelu ja väljasta xml-ina
•	Loe sugupuust eesnimed uude loetellu