Infotehnoloogia / Rakenduste loomise ja programmeerimise alused

Õpetaja: Inga Petuhhov
Toimumisaeg: 2011/2012 õppeaasta
Kontakt: e-mail inga[at]tlu.ee
NB! Õpetajate toast teil mind leida ei õnnestu. Kui on muresid, siis kurtke neid tunni lõpus või kirjutage e-kiri.

Lehekülg on mõeldud Tallinna Reaalkooli 10. klassi õpilastele, kes on valinud õppimiseks infotehnoloogia/programmeerimise kursuse.

Programmeerimise õppimisel ei ole esimesed sammud kerged. Ise peab tahtma ja püüdma. Kuhugi maani on võimalik jõuda näidete järgi samalaadseid ülesandeid lahendades. Aga varsti tuleb piir ette, sest kõikvõimalikke probleeme ei saa näideteks jaotada ja üles kirjutada.
Et edasi jõuda tuleb näidetest kuni viimase lause ja sõnani aru saada ja osata selle pealt midagi uut luua. Ka enda koostatud programmide kohta kehtib tõde: saa täpselt aru, mida Sa teed. Siis tuleb ka tarkus ise midagi uut ja kasulikku kokku panna.
Ja kui Sa esimeste tundidega veel pihta ei saa, siis ära kaota lootust. Võib olla käib "prõks" Sinu jaoks alles kursuse keskel. Kui ikka ise tahad. :)

Sel aastal osaleb Reaalkool gümnaasiumi uues õppekavas esitatud valikkursuse Rakenduste loomise ja programmeerimise alused materjalide piloteerimisel ehk lihtsamalt öeldes katsetamisel. Seega kõik me oleme katsejänesed. Loodame, et meil läheb hästi ja et teil on huvitav (ja minul ka :) ) Siin lehel on:

Kodutöödest
Kodutöödena tuleb ära teha tunnis pooleli jäänud ülesanded ja lisaks antud kodutööd, mis siin lehel kirjas. Seda ka juhul, kui sellekohane info e-kooli lisada ununeb. Järgmise tunni alguses arutame läbi kodused tööd. Kui tekib küsimusi, siis minu postkast on avatud. St kirjutage murest jms
Tundide materjalid
Esimese kursuse tunnitabel on siin peidus

Kuupäev Teemad ja materjalid Tunnitööd Kodutööd
23.01.12 Tekstifailide kasutamine.
Räägime ka jälle indeksitest.
Tunnimaterjal
Palindroomi testid
Kodus loe tekstifailide materjali
Lõpeta tunnis poolelijäänu
30.01.12 Veel palindroomist ja listide ringipööramisest.
Aga ka otsimisest ja muutujate väärtuste ringivahetamisest.
Tunnimaterjal
Kodutöö
06.02.12 Tegeleme veel listi ja tema indeksitega. Tunnimaterjal
Kohtumise testid
Kodutöö kommentaar
13.02.12 List listis - hoiame koos andmeid ühe andmeobjekti kohta. Tunnimaterjal
palga_vordlus.txt
Tunniülesanded lõpetada!
20.02.12 Kahemõõtmeline struktuur (sissejuhatus). Tunnimaterjal
Kodutööd
27.02.12 List listis ehk kahemöötmeline massiiv Tunnimaterjal
t1.rar (3. ül. testid)
Kodutööna lahenda tunnitööde 2. ülesanne. 3. ülesandes võib muret tekitada failist lugemine.
05.03.12 List listis - ülesanded kahemöötmelise massiiviga Tunnimaterjal
Lõpeta tunnis olnud ülesanded ja saada mulle e-mailile!
12.03.12 Veelkord listide kasutamise ülesanded. Tunnimaterjal
domino.rar (1. ül. testid)
t1.rar (2. ül. testid)
Töid kodus lõpetamiseks jätkub.
26.03.12 Harjutame kontrolltööks Tunnimaterjal
punktitabel.zip (1. ül. testid)
 
02.04.12 Kontrolltöö linnuvaatlus.txt
maakonnad.txt
 
09.04.12 Funktsioonid: programmikoodi jaotamine osadeks. Tunnimaterjal
Katsu Newtoni meetodiga hakkama saada. Kui alguses funktsiooni kasutamine segab, proovi ilma (kogu tegevus ühes koodis koos). Tahan kindlasti tunnis näha!!
16.04.12 Funktsioonid ja moodulid.
NB! 18.04 peale 7. tundi järeltöö
Tunnimaterjal
felix.txt
Tee palun valmis vähemalt kolm funktsiooni: 1. Loeb andmed etteantud nimega failist
2. Leiab keskmise etteantud listist
3. Leiab maksimaalse saba ehk suurima väärtuse etteantud listist. Tegevus võib lõppeda nii sellega, et funktsioon tagastab kassi järjekorranumbri kui ka sellega, et tagastatakse kiisu nimi ja sabapikkus.
Esmaspäeval eeldan, et funktsioonid on olemas!
23.04.12 Funktsioonid ja moodulid. Tunnimaterjal
Lõpeta alustatud "kassisabade" tööd ja saada mulle vaatamiseks.
30.04.12 Mida teate teistest arvusüsteemidest?
Lühidalt arvusüsteemidest
Andmete hoidmine mälus programmi töö ajal.
Slaidid
Tunnimaterjal
Miks ei ole ujukomaarvud täpsed
07.05.12 Sorteerimine
Sorteerimise materjalid
Vaatame üle mõned meetodid.
Samuti paar sõna algoritmide keerukusest.
Kasuta materjalis olevaid näiteid, et sorteerida "kassisabade programmis" kassid sabade kasvamise ja samuti sabade kahanemise järjekorda.
14.05.12 Otsimine
Jutustusi otsimisest
Täienda kuulsusrikast kassisabade programmi kahendotsimisega (enne sorteeri)
21.05.12 Uurimistööde kaitsmine jms. Tundi ei toimu.    
28.05.12

Näiteprojektid Scratchiga ja muud vajalikku

Näiteprogrammid Pythonis

Kodu- ja tunnitööde lahendusi. Täiendatud 30.03.2012

Programmide dokumenteerimisest loe siit ja siit.!

Materjale Scratchist
Materjalid lisanduvad vastavalt nende ilmumisele.
Alusta algusest ehk Getting Started (eesti keeles)
Scratch 1.4 kasutusjuhend (HTML, eesti keeles)
Scratch 1.4 kasutusjuhend (PDF, eesti keeles)
Algoritmimisest
Modelleerimisest
Rakendustest
Algoritmimisest, programmeerimisest ja Python'ist - eestikeelset materjali
Creative Commons License
Järgnevatele eestikeelsetele materjalidele kehtib Creative Commons Attribution-Share Alike 3.0 litsents.

Vooplokkskeemid
Sissejuhatus Pythonisse
Python'i sisend ja väljund
Aritmeetika-, loogika- ja stringavaldised
Muutujad ja omistamine
Valikulaused
Vead ja erindid
Tsüklid
Stringid, listid ja ennikud
Funktsioonid
Tekstifailide kasutamine
Sõnastik
Andmete hoidmine arvuti mälus: slaidid
Positsioonilised arvusüsteemid: slaidid

Materjale Pythonist võõras keeles
Järgnevad raamatud kasutavad paraku Python 2.x keelereegleid.
Raamat How to Think Like a Computer Scientist. Täpsemalt saab raamatu elektroonse versiooni erinevates vormingutes (pdf, html) kätte siit, pealkirjaga "Think Python"
Muudatustest Python 3.x-s: Whats New In Python 3.0

The Python Language Reference
The Python Tutorial
The Python Standard Library
Style Guide for Python Code
Docstring Conventions
Pythoni grammatika

Informaatika viktoriin Kobras
7.-11. novembril toimub koolinoorte informaatikaviktoriini "Kobras" esimene voor, mis viiakse läbi kolmes vanuserühmas: benjaminid (6.-8. klass), juuniorid (9.-10. klass) ja seeniorid (11.-12. klass). Võistlus toimub Miksikese keskkonnas. Ülesannete lahendamiseks on aega üks koolitund (45 minutit).

Parimad lahendajad kutsutakse veebruaris Tartus toimuvale õppepäevale ja viktoriini teise vooru.

Viktoriin "Kobras" ei eelda programmeerimisalaseid eelteadmisi. ülesannete temaatika hõlmab arvutikasutusoskust, arvutitega seonduvat matemaatikat, arvutite ajalugu, riistvara, tarkvara, arvutieetikat jmt. Sellisena toimub võistlus Eestis kuuendat korda. Varasemate võistluste ülesanded asuvad aadressil http://www.math.olympiaadid.ut.ee/kobras/Kd

NB! Kui vähegi võimalik, siis registreeri end palun miksikeses kasutajaks, et esmaspäeval Kobrase ülesandeid lahendada. Vaata infot miksikese lehel: http://www.miksike.ee/?showurl=/docs/projektid/kobras/kobras_infoleht_2011.html
Lisainfoks - seal on juhis, et tuleb end mingi klassiga seostada ja selleks klassiks on RKA10.
Kui seal peaks ka kuidagi õpetaja nimi näha olema, siis minu nime te ei leia, vaid selle asemel on Kailit Taliaru.

Informaatika olümpiaadiinfo
Mõned materjalid
The Algorithm Design Manual (Steven Skiena)
Programming Challenges

Üks hea harjutamissait on nn USACO lehekülg. Ta on (kahjuks) inglisekeelne (suunatud USA õpilastele), kuid meie lapsed on seda ka varem edukalt kasutanud. Vikipeediast saab asjast üldiselt lugeda: siin. Esialgu on mõttekas uurida harjutamisülesandeid ja seal on ka teooriat.
USACO TRAINING

Registreeri end olympiaadid-listi lugejaks. Seda peab üleval Tartu Ülikooli listserver (lists.ut.ee)

Veidi nõuandeid.

Esmane materjalide soovitus.

Näited dünaamilse programmeerimise ülesannetest.

EIO koduleht: juhend, ülesanded ja muud vajalikku infot

Nii palju, kui teda praegu teada on:
?? Sügisene loengupäev
7.-13. november 2011 Informaatika lahtine võistlus (ülesandeid lahendatakse kodus, osaleda võivad kõik)
17. detsember 2011 Informaatikaolümpiaadi eelvoor (4-tunnine lahendusvoor koolis, arvatavasti RKs, osaleda võivad kõik)
?? Kevadine loengupäev
18.-19. veebruar 2012 Informaatikaolümpiaadi lõppvoor (Tartus, kutsututele, eelmise kahe vooru põhjal)

Kindlasti tasub ise uurida eelmiste aastate materjale, mida ka allolevatelt linkidelt leida võib. Viimaste aastate materjalide hulgas on lahenduste ideed pikemalt lahti seletatud. See on eriti tore, sest valmis lahendusest on raskem aru saada ning peale idee lugemist ja mõistmist saab proovida ise midagi kokku meisterdada.

Olümpiaadide vana leht. Seal on rohkem vanemat materjali!

Kindlasti proovi lahendada neid ol-ülesandeid, mida tunnitööde juurde lisan!!

Tarkvara
Algoritmist ja rakenduste koostamist alustame graafilise vahendiga Scratch. Selle leiab allalaadimiseks aadressilt: http://scratch.mit.edu/

Programmeerimiseks kasutame Python'i interpretaatorit, mille viimane püsiv versioon on 3.1. Python'it jagatakse vastavalt avatud lähtekoodiga tarkvara litsentsile (open source license).

Python'i ametlik veebilehekülg on www.python.org
Sealt leiad interpretaatori oma maitsele (st arvutile) sobiva platvormi/operatsioonisüsteemi jaoks. Esindatud on Windows, Linux/Unix, MacOS jne. Samuti dokumentatsiooni jms.
Windowsi jaoks vali näiteks Download'i alt Python 3.1.2 Windows x86 MSI Installer (Windows binary -- does not include source)

Lisamaterjale
Viiteid teistele materjalidele
Ahto Truu koostatud Tartu Ülikooli Teaduskooli materjalid "Programmeerimise alused"
Indrek Jentsoni koostatud programmeerimise algõpetuse materjal
Linke Sinu klassi poolt
NB! Kui leiad ise midagi huvitavat, mis võiks ka teistele huvi pakkuda, siis anna mulle teada. Lisan selle siia nimekirja.

Valid HTML 4.01 Transitional