Iti0010 2007
NB! Käesolev leht on 2007 arhiiv, mitte aga kehtivad kursusematerjalid!!
Lektor: Tanel Tammet blog |
Sisukord
Järeleksam augustis 2008
25 august (esmaspäev) kell 13.00-16.00 ruumis V-103.
Esialgsed eksamid ja järeleksamid
Eelnädala järeleksam: reedel, 25. jaanuaril kell 10.00 ruumis I-202 (aulatagune). NB! Järeleksamile tulekuks peab eelnevalt registreeruma: ruumis IT-224 (it maja) instituudi sekretäri Varje Vainu juures, hiljemalt neljapäeval kella 16.00-ks.
Siit leiad esimese järeleksami kogutulemused!
Järgmine järeleksam toimub kevadsemestri teises pooles (aprill-mai), viimane järeleksam toimub sügissemestri eelnädalal.
Siit leiad sessi kogutulemused! Kui sul on probleeme selle faili avamisega, saad tulemuse kätte ebamugavast csv-failist. Tabel on sorteeritud perekonna- ja eesnime esitähe järgi, esimeses tulbas initsiaalid, viimases hinne. Meeldetuletuseks: eksamile pääsemiseks peab olema arvestatud (mistahes punktidega) vähemalt kolm praktikumi.
Vaata ka: Kalahi võistluse tulemused!
NB! Kui avastad, et sinu tulemuste märkimisel on juhtunud näpuviga, anna e-postiga teada: [[1]]. Seejuures kirjuta e-posti pealkirjaks PRAKTIKUM ja märgi kirjas täpselt ära, mis on sinu nimi ja matriklinumber, mis täpselt on valesti märgitud, kellele ja umbes millal näitasid valesti märgitud praktikumi tulemused, mis sinu teada peaks tulemus olema.
Eksamid eksamissessiooni jooksul (kaks alternatiivset aega, teine aeg ei ole järeleksam):
- 7 jaanuar kell 14.00 ruumis I-202 (aula taga)
- 14 jaanuar kell 10.00 ruumis I-202 (aula taga)
NB! Võta eksamile kindlasti kaasa pildiga dokument (id-kaart, juhiluba, pass,ülõpilaspilet vms)!
Esimene järeleksam toimub eksamissessiooni järel, teine kevadsemestri lõpupoole, kolmas sügissemestri eelnädalal.
Hindamispõhimõtted: eksamil osalemine eeldab vähemalt kolme sooritatud praktikumi. Eksamil saab punkte 0-60. Eksami punktide arv alla 20 (60st) annab automaatselt tulemuseks 0. Muudel juhtudel liidetakse praktikumipunktid ja eksamipunktid ning hindevahemikud on 50-59,60-69,70-79,80-89,90 ja enam.
Aeg, koht
Loengud: Igal kolmapäeval kell 14.00-15.30, ruumis VII-131
Semester: sügis
Tulemus: kirjalik eksam, mille eelduseks ja üheks punktiosaks on praktikumiülesanded.
Punkte: 3.5
Eeldusaine: IAG3103 Informaatika II
Praktikum: kord nädalas a 2*45 minutit, AK arvutiklassides IT-213. Rühmadel on erinevad ajad ja juhendajad. Oktoobri teisest poolest juhendab praktikume lisaks Eleri Lambile ka Aivo Anier:
Praktikumiajad:
- Teisipäev 8-9.30 IT213 A,B,C: IAPB3, IAPB32 (Eleri)
- Teisipäev 16-17.30 IT213A,B,C: IAPB33, IAPB34 (Aivo)
- Neljapäev 8-9.30 IT213A,B: IABB37, IAPB37 (Eleri)
- Neljapäev 14-15.30 IT213A,B,C: IABB31, IABB32 (Aivo)
- Reede 10-11.30 IT213E: YABM11, YASM12, IANM11 (Aivo)
Kursuse eesmärk
Õpetada programmeerimise aluseid ja tehnoloogiat üldiselt, eeldades kerget varasemat kokkupuutumist programmeerimisega vähemalt eeldusaine Informaatika II mahus. Rõhk on praktiliste kogemuste ja oskuste omandamisel: iseseisev töö praktikumis on olulisem, kui õpiku lugemine. Märgatava osa loenguaega kulutab lektor kohapeal ette-programmeerimiseks.
Kursus on sisuliselt (kuid mitte tingimata formaalselt) vajalik eeldus kõigile spetsiifilisematele programmeerimiskursustele, nagu "algoritmid ja andmestruktuurid", "süsteemprogrammeerimine", "objektorienteeritud programmeerimine" jms. Baaskeelena kasutatakse Javat, vältides samas eriliselt Java-päraseid meetodeid, teeke jms. Praktikumides loodavad rakendused on reeglina käsurea ja omaette akendega rakendused, mitte apletid.
Õpik
Tasuta e-book: David Eck, Introduction to Programming Using Java , version 5, 2006 (http://math.hws.edu/javanotes/ vt ka http://math.hws.edu/eck/cs124/downloads/javanotes5.pdf)
Kursus jätab käsitlemata mõned osad õpikust, kuid lisab õpikule mitmeid täiendavaid peatükke ja osi. Viited vajalikele peatükkidele ja täiendavatele materjalidele on kas juba võrgus antud või lisatakse võrku loengute käigus.
NB! Raskuste ja probleemide korral on soovitav iseseisvalt lugeda läbi kogu David Ecki raamat ja teha iga peatüki juures mõned iseseisvad harjutused (raamatus on toodud ka näitelahendused).
Käesoleva lehe lõpuosas on antud ka täiendavaid lugemismaterjale.
Praktikumiülesanded ja tähtajad
Alustuseks tee ära: java tutvustusülesanne.
NB! Tutvustusülesannet ei juhendata ega kontrollita. See tuleks iseseisvalt ära teha esimese õppetöö nädala jooksul.
Käsureaga mugavamaks hakkamasaamiseks AK arvutiklassides loe neid soovitusi: AK arvutiklasside XP java käsurida.
Ülesanded antakse veidi enne eelmise ülesande tähtaja lõppu. Praegu (2007 sügis) on antud kaks ülesannet:
- Esimene rakendus. See ülesanne on täpselt sama, kui eelmine aasta: tikumängu ülesanne, ainult tekstiliides. Tähtaeg: septembri lõpp. venekeelne variant tikumängu ülesandest
- Teine rakendus. Praktikumitöö: Raamatute hinnavaatlus. Tähtaeg: oktoobri lõpp.
- Kolmas rakendus. Praktikumitöö:graafiline rakendus. Tähtaeg: novembri lõpp.
- Neljas rakendus. Praktikumitöö: Kalah. Tähtaeg: 21 detsember.
Tähelepanek AK arvutiklassides: päris paljudel masinatel ei leia java kompilaator ja interpretaator (javac ja java)
üles vajalikke klasse, isegi siis, kui asud kompileerides kataloogis, kus need vajalikud klassid on. Sellisel juhul kutsu
javac ja java välja koos classpathiga, milleks on kataloog, kus ise oled (seda tähistab punkt -cp järel), eeldusel
muidugi, et oled ise selles kataloogis, kus vajalikud klassid:
- javac -cp . minuprogramm.java
- java -cp . minuprogramm
NB! Arvesta järgmist:
- Eksamile pääsemiseks peavad olema sooritatud vähemalt kolm neljast praktikumi-ülesandest.
- Juhul, kui üks neljast ülesandest jääb realiseerimata, saab selle eest eksamil 10 trahvipunkti (eksami maksimumpunktid on 100)
- Iga hilinenud ülesanne annab 5 trahvipunkti.
- Pärast 22. detsembrit ei aktsepteerita enam ühtegi ülesannet.
- Iga ülesanne tuleb programmeerida iseseisvalt ja näidata praktikumi juhendajale praktikumi ajal ette. E-postiga saadetud lahendusi ei aktsepteerita!
- Ülesande arvestamiseks ütle juhendajale praktikumi ajal ise, kui soovid lahendatud ülesannet näidata: juhendaja ei hakka reeglina ise õigeagselt uurima, et kas on ülesanne ikka tehtud.
Täpsustav info 2006 sügisel tehtud praktikumitööde kohta: kui oled 2006 sügissemestril saanud punkte, siis saad neid 2007 sügissemestril kasutada ainult juhul, kui said 2006 eksami edukalt sooritatud (hinne vähemalt 1). Vastasel korral pead praktikumitööd uuesti tegema. Teiste sõnadega: vanad praktikumitulemused kehtivad ainult juba olemasoleva hinde parandamiseks, mitte aga olukorras, kus sa pole eksamil läbi saanud. Viimasel juhul pead lihtsalt tegema nullist selle aasta praktikumitööd.
Praktikumide vahetulemused hakkavad semestri jooksul siia lehele ilmuma, kuid märgatava viivitusega.
Loengute plaan ja materjalid
Loengute plaan on esialgne, töö käigus ilmub siia kindlasti muutusi. Seega, täpselt adekvaatsed ja õiged on need materjalid, mille loeng on kas juba läbi või tuleb järgmisena: kõik tuleviku-loenguid puudutavad materjalid on vanad, ning saavad loengu kättejõudmise ajaks mingil määral modifitseeritud ja täiendatud.
- 1. Sissejuhatus, meeldetuletus, kursuse ülevaade.
- Aeg: 5 september.
- Loengumaterjal: Progpohi1_07.ppt, Progpohi1_07.pdf
- Lugeda: D.Eck ptk 1
- Tutvuda:
- 2. Muutujad, lihtandmed, juhtimiskonstruktsioonid ja tsüklid. Laboratoorne töö 1.
- Aeg: 12 september.
- Loengumaterjal: Progpohi2_07.ppt, Progpohi2_07.pdf,
- Lugeda: D.Eck ptk 2, 3
- Lugeda Peter Norvig: Teach yourself programming in ten years
- Lugeda Paul Graham: Hackers and Painters
- 3. Funktsioonid, klassid. Kompleksandmed
- eeskätt stringid ja massiivid.
- Aeg: 19 september.
- Loengumaterjal: Progpohi3_07.ppt, Progpohi3_07.pdf
- Lugeda: D.Eck ptk 4, 5 algus
- 4. Sissejuhatus teise praktikumitöösse. Veatöötlus. Failid.
- Aeg: 26 september.
- Praktikumimaterjalid: Praktikumitöö: Raamatute hinnavaatlus.
- Loengumaterjal: Progpohi4_07.PPT, Progpohi4_07.pdf
- Lugeda: D.Eck 7,8
- 5. Java arendusmetoodika hansapangas, extreme programming ja test-driven arendus
- Aeg: 3. oktoober.
- Loengu annavad Marek Kusmin ja Erik Jõgi Hansapanga arendusmeeskonnast.
- T.Tammet on NATO RTO IST koosolekul
- 6. Täiendavat teisest praktikumitööst
- Aeg: 10. oktoober.
- Õppejõud tegeleb loengus lahenduse osalise etteprogrammeerimisega.
- 7. Objektid ja klassid.
- Aeg: 17. oktoober.
- Loengumaterjal objektidest: Progpohi7_07.PPT, Progpohi7_07.pdf
- Lugeda: D.Eck 5
- Näiteid eelmise aasta Puuseppa loengust: Puusepp_java_objektid.zip
- 8. Graafika ja kasutajaliidese sissejuhatus.
- Aeg: 24 oktoober
- Korratakse objektide loengumaterjali põhipunkte, alustatakse graafika ja kasutajaliidesega.
- Loengu annab Aivo Anier.
- Loengumaterjal, millega algust tehakse: Progpohi6_06.PPT, Progpohi6_06.pdf
- Koodinäited: javagraphexamples.zip
- Lugeda: D.Eck 6 ptk 1-4.
- 9. Kolmas praktikumitöö, graafika ja kasutajaliidese jätk.
- Aeg: 31 oktoober
- Jätkatakse graafilise kasutajaliidesega, antakse kolmas praktikumitöö.
- Loengumaterjal: eelmise loengumaterjali Progpohi6_06.PPT, Progpohi6_06.pdf jätk. Kolmanda praktikumitöö sissejuhatus.
- Koodinäited: javagraphexamples2.zip
- Lugeda: D.Eck 6 ptk lõpuni, 7 ptk.
- 10. Graafika ja kasutajaliides
- materjali ja näidete jätk. Kolmanda praktikumi osaline etteprogrammeerimine.
- Aeg: 7. november
- 11. Praktikumiabi jätk. Seejärel binaarne otsing ja sorteerimine.
- Aeg: 14 november.
- Loengumaterjal: Progpohi10.PPT
- Lugeda: D.Eck ptk 8.4: Searching and Sorting, analüüse ja seletusi.
- Proovida: xsortlab, sorting demo, Sortingdemo.zip
- 12. Otsingualgoritmide algus. Travelling salesman problem.
- Aeg: 21 november
- Loengumaterjal: Progpohi11.PPT
- Lisamaterjal: searchadditional2.ppt
- Loengus kirjutatud näiteprogramm paari optimeeringuga: tsp.java
- 13. Mõtlemismängud
- male, viis nuppu ritta jne.
- Aeg: 27. november
- Neljanda praktikumi (Kalahi programm) sissejuhatus.
- Loengumaterjal: Progpohi12_06.PPT
- Lisaks:
- Kalah: http://en.wikipedia.org/wiki/Kalaha.
- Minimax & alpha-beta: http://sern.ucalgary.ca/courses/CPSC/533/W99/presentations/L2_5B_Lima_Neitz/search.html
- Minimax & alpha-beta: http://www.ocf.berkeley.edu/~yosenl/extras/alphabeta/alphabeta.html
- Alpha-beta: http://www.emunix.emich.edu/~evett/AI/AlphaBeta_movie/sld001.htm
- Chinook: http://www.cs.ualberta.ca/~chinook/
- Hea tasuta raamat (disser) mängude programmeerimisest: http://web.archive.org/web/20040607185428/www.cs.vu.nl/~victor/thesis.html
- 14. Listid, stack, puud
- Aeg: 5. detsember.
- Loengu annab Aivo Anier.
- Loengumaterjal: Progpohi13_06.PPT
- Lugeda: D.Eck ptk 11.
- 15. Keerukamad puud.
- Aeg: 12 detsember.
- Loengumaterjal: Progpohi15_07.PPT
- Loengus (varem) kirjutatud parser: parse1.java
- Lugeda: D.Eck ptk 9 losad 4 ja 5.
- 16. Threadid ja konsultatsioon.
- Aeg: 19 detsember.
- Loengumaterjalid: Progpohithreads.PPT
- Lugeda: D.Eck ptk 8 osa 5.
- Näiteprogrammid:
Tarkvara ja käsiraamatud
Vajalik tarkvara kodus töötamiseks:
- Java J2SE JDK (Java 2 standard edition java development kit).
Tõmba SUN-i lehelt http://java.sun.com/javase/downloads/ versioon "JDK 6 update 2".
NB! Vajalik on JDK, mitte JRE, ja nimelt J2SE (standard edition), mitte J2ME (micro edition) või J2EE (enterprise edition). Infoks: enne Java 1.5 versiooni kasutati nime JDK asemel nime SDK.
Versioone "JDK 6 with NetBeans" ja "JDK 6 with Java EE" ei ole soovitav tõmmata, kui sa just ise nende vastu spetsiaalset huvi ei tunne. Kui sinu masinas juba on Java JDK ehk SDK (kontrolli, kas leiad programmi nimega javac), siis on ta OK, kui versioon on vähemalt 1.3.1. Vanemaid, kui 1.3.1 versioone ei ole soovitav kasutada.- Praktiline juhatus versiooni 6 installeerimiseks
- Praktiline kiire juhatus eelmise kasutamiseks: windowsi jaoks, unixi jaoks
- Eclipse ja Java 1.5 Ubuntu Linuxi jaoks
- Tekstiredaktor SciTE: põhileht, linuxi download (alternatiivina on distrotes enamasti oma scite package) windowsi download, mõnusam windowsi download (soovitav!).
Tehnilised käsiraamatud:
- Sun'i tehniliste Java käsiraamatute üldleht: leiad siit
- Sun'i Java teekide ja teegifunktsioonide kataloog: otselink versiooni 1.5 jaoks
Lisa-lugemismaterjale
Lihtsad:
- Bradley Kjell: Computer Science I, using Java
Keskmise keerukusega:
- Sun'i Java tutorial: algus on siin
- Sun'i kataloog erinevatest õppematerjalidest
Keerukad (ära loe, kui kõik muu pole veel liiga-liiga lihtne!):
- Bruce Eckel: Thinking in Java Vt ka http://mindview.net/Books.
Harjutamist ja taustinfot eksamiks
Kuidas on tudengitel selles aines varem läinud? Vanad, 2005 sügissemestri tulemused leiad siit).
Näite-eksamiülesanded 2004 aastast leiad siit:
Peaasi on teha ise ja korralikult praktikumiülesandeid: see ongi parim harjutus eksamiks.