Programmeerimise põhikursus 2008: erinevus redaktsioonide vahel

Allikas: Lambda
Mine navigeerimisribale Mine otsikasti
Resümee puudub
Resümee puudub
6. rida: 6. rida:
Kontakt: tammet@staff.ttu.ee, 6203457, TTÜ AK223<br>
Kontakt: tammet@staff.ttu.ee, 6203457, TTÜ AK223<br>
<!-- Praktikumijuhendajad: priit.potter@webmedia.ee, Kristjan.Haavik@seb.se (vt allpool praktikumiaegu!) -->
<!-- Praktikumijuhendajad: priit.potter@webmedia.ee, Kristjan.Haavik@seb.se (vt allpool praktikumiaegu!) -->
== <font color="red">Järeleksamid</font> ==
Siit leiad kolmanda, <font color="red">[[iti0010 2007 jareleksam 3|30 augusti järeleksami tulemused]]</font>.
Teine järeleksam toimus teisipäeval, 8 mail, algusega kell 14.00 ruumis VII-226 (uus, seitsmes korpus).
Järeleksami tulemused [[iti0010 2007 jareleksam 2|leiab siit]]
Esimene järeleksam toimus eelnädala lõpul: reedel, 26 jaanuaril, kell 15.00 aula taga, ruumis I-202.
Järeleksami tulemused [[iti0010 2007 jareleksam 1|leiab siit]]
Üks järeleksam tuleb veel sügissemestri eelnädalal.
== Tulemused ==
Praktikumide ja sessi jooksul toimunud eksamite järel olid
esialgsed tulemused järgmised: [[Media:progpohi2007_tulem.pdf|progpohi2007_tulem.pdf]]
<b>NB!</b> Parandamise, praktikumide arvestamise jms põhjustel toimunud vigade korrektuuri (mitte järeleksami!) käigus tekkisid
osadele tudengitele järgmised [[Progr põhikursuse 2007 sessi parandused | sessisisesed parandatud hinded]].
Hindamispõhimõtted: nagu varem nõutud, eeldas eksamil osalemine kolme sooritatud praktikumi. Eksami punktide arv alla 20 (60st) andis automaatselt tulemuseks 0. Muudel juhtudel liideti praktikumipunktid ja eksamipunktid ning hindevahemikud olid 50-59,60-69,70-79,80-89,90 ja enam.
== Võistluse tulemused ==
Võistlusele laekus (st sain need oma postkasti subject reaga KABE) viis programmi:
* Gavrilov ja Enokian
* Kiski ja Domova
* Nagel ja Rei
* Shumik ja Zhuikov
* Vares ja Soone
Kahjuks ei suutnud ma käima saada Gavrilov-Enokiani ja Nagel-Rei
programme. Seega jäid mängima ülejäänud kolm, kelle vahel korraldasin
turniiri: kõik mängisid kõigiga. Kiski ja Domova programm ei lubanud
arvutil punastega mängida, see-eest oli programmist kaks erinevat
versiooni: v1 ja v2.
Kõik kolm programmi mängisid päris kenasti, mingeid lihtsaid
vigu või selgeid rumalusi ei tehtud. Enam kui pooled partiid
sisaldasid ka efektseid kombinatsioone ja pikki lööke. Viike,
nagu näha, tuli ainult üks. Programmid mängisid kiirelt, keegi
ei kulutanud ühelegi käigule üle sekundi (enamik vähem).
Niisiis:
=== Turniiri tulemused ===
* Shumik-Zhuikov punane - Kiski-Domova v1 must: võidab punane Shumik-Zhuikov
* Shumik-Zhuikov punane - Kiski-Domova v2 must: võidab punane Shumik-Zhuikov
* Shumik-Zhuikov must - Vares-Soone punane: võidab Shumik-Zhuikov
* Shumik-Zhuikov punane - Vares-Soone must: viik
* Vares-Soone punane - Kiski-Domova v1 must: võidab punane Vares-Soone
* Vares-Soone punane - Kiski-Domova v2 must: võidab punane Vares-Soone
=== Turniiri lõpptulemus ja auhinnad ===
* Esikoht Shumik Zhuikov: kumbki 15 lisapunkti
* Teine koht Vares Soone: kumbki 10 lisapunkti
* Kolmas koht Kiski Domova: kumbki 5 lisapunkti
Tulemuste/hinnete pdf failis on auhinnalised tudengid
kollase joonega märgitud.
== Toimunud eksamid ==
* 12. jaanuar kell 9-12 ruumis I-202 (aula taga)
* 17. jaanuar kell 9-12 ruumis I-202 (aula taga)
<b>Ainult neile</b>, kes viimasel praktikumiülesannete esitamise päeval
ette ei jõudnud ning juhendaja poolt vastavasse nimekirja lisati: praktikumiülesannete
esitamise täiendavad ajad on kohe peale eksamiaegasid, vastavalt siis:
* kui teed eksamit 12 jaanuaril, siis ülesannete esitamise aeg on 12. jaanuar kell 12.30 AK arvutiklassides
* kui teed eksamit 17 jaanuaril (või üldse ei tee), siis  ülesannete esitamise aeg on 17. jaanuar kell 12.30 AK arvutiklassides
NB! Teistele tudengitele need ajad ei kehti, samuti ei tule mingeid täiendavaid
esitamisaegasid sessi sees.


== Aeg, koht, tulemus ==
== Aeg, koht, tulemus ==
96. rida: 16. rida:


Praktikum: kord nädalas a 2*45 minutit, AK arvutiklassides <b>IT-213</b>.  
Praktikum: kord nädalas a 2*45 minutit, AK arvutiklassides <b>IT-213</b>.  
Rühmadel on erinevad ajad ja juhendajad. Ajad on järgmised
Rühmadel on erinevad ajad ja juhendajad. Ajad lisan siia teisel nädalal, <b>esimesel nädalal</b> juhendajaga praktikume ei ole!
 
<!--
(kontrolli oma rühma üldisest tunniplaanist, et siinantud aeg on ikka õige):
(kontrolli oma rühma üldisest tunniplaanist, et siinantud aeg on ikka õige):


103. rida: 25. rida:
* Reede 14.30 - 16.00, ruumides A,B,C. IABB37, YABM11, YAGM11, YASM11. Juhendaja Liia Tammes.
* Reede 14.30 - 16.00, ruumides A,B,C. IABB37, YABM11, YAGM11, YASM11. Juhendaja Liia Tammes.
* Reede 16.00-17.30, ruumides A,B,C. IABB31, IABB32, IANM11, IAPB37. Juhendaja Liia Tammes.
* Reede 16.00-17.30, ruumides A,B,C. IABB31, IABB32, IANM11, IAPB37. Juhendaja Liia Tammes.
-->


Liia Tammese asemel on alates 1. novembrist juhendajaks Andres Puusepp.


Eri aegadel on praktikumidel erinevad juhendajad (õppejõud üldjuhul ei juhenda
== 2006 tulemused ==
praktikume, kuid vahel asendab juhendajat, aitab pingelisel hindamisperioodil jne).
 
Siit leiad kolmanda, <font color="red">[[iti0010 2007 jareleksam 3|30 augusti järeleksami tulemused]]</font>.
 
Praktikumide ja sessi jooksul toimunud eksamite järel olid
esialgsed tulemused järgmised: [[Media:progpohi2007_tulem.pdf|progpohi2007_tulem.pdf]]


<!-- <b>NB!</b> Kui tunniplaanis on kirjas teistsugused ajad, siis kehtivad ikkagi siintoodud
<b>NB!</b> Parandamise, praktikumide arvestamise jms põhjustel toimunud vigade korrektuuri (mitte järeleksami!) käigus tekkisid
ajad/kohad: nimelt sellised on õppetalituses kokku lepitud, ning võib lihtsalt juhtuda,
osadele tudengitele järgmised [[Progr põhikursuse 2007 sessi parandused | sessisisesed parandatud hinded]].
et üldises tunniplaanis on muutused veel sisse viimata või on mõni näpukas tehtud. -->


<!-- <font color="red">[[progpohi jareleksam 30. sept 2006 | järeleksami tulemused 30. sept 2006]]</font> -->
Hindamispõhimõtted: nagu varem nõutud, eeldas eksamil osalemine kolme sooritatud praktikumi. Eksami punktide arv alla 20 (60st) andis automaatselt tulemuseks 0. Muudel juhtudel liideti praktikumipunktid ja eksamipunktid ning hindevahemikud olid 50-59,60-69,70-79,80-89,90 ja enam.


== Kursuse eesmärk ==
== Kursuse eesmärk ==

Redaktsioon: 5. september 2007, kell 15:47

Ainekood: ITI0010
Link: http://www.lambda.ee/index/Programmeerimise_põhikursus ehk http://www.lambda.ee/index/iti0010
Võid vaadata ka iti0010 2006 arhiivi.

Lektor: Tanel Tammet
Kontakt: tammet@staff.ttu.ee, 6203457, TTÜ AK223

Aeg, koht, tulemus

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. Ajad lisan siia teisel nädalal, esimesel nädalal juhendajaga praktikume ei ole!


2006 tulemused

Siit leiad kolmanda, 30 augusti järeleksami tulemused.

Praktikumide ja sessi jooksul toimunud eksamite järel olid esialgsed tulemused järgmised: progpohi2007_tulem.pdf

NB! Parandamise, praktikumide arvestamise jms põhjustel toimunud vigade korrektuuri (mitte järeleksami!) käigus tekkisid osadele tudengitele järgmised sessisisesed parandatud hinded.

Hindamispõhimõtted: nagu varem nõutud, eeldas eksamil osalemine kolme sooritatud praktikumi. Eksami punktide arv alla 20 (60st) andis automaatselt tulemuseks 0. Muudel juhtudel liideti praktikumipunktid ja eksamipunktid ning hindevahemikud olid 50-59,60-69,70-79,80-89,90 ja enam.

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 4.1, 2004 (http://math.hws.edu/javanotes/ vt ka http://math.hws.edu/eck/cs124/downloads/javanotes4.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.

  1. Esimene rakendus: tikumängu ülesanne, ainult tekstiliides. Tähtaeg: 29. september.
  2. Tekstifailidest rdf-mikroandmebaasi päringud, ainult tekstiliides. Tähtaeg: 27 oktoober.
  3. GUI-ga graafiline võrgurakendus (http-d kasutav klient). Tähtaeg: 24. november
  4. Mõtlemismäng (inglise kabe). Tähtaeg: 22. 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 2005 sügisel tehtud praktikumitööde kohta: kui oled 2005 sügissemestril saanud punkte (vt siit leheltl), siis saad neid 2006 sügissemestril kasutada ainult juhul, kui said 2005 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, Java kasutamine, Java ja C võrdlus, lihtsad näited. Muutujad, andmetüübid.
Aeg: 6 september.
Loengumaterjal: Progpohi1_06.PPT,
Lugeda: D.Eck ptk 1, 2.
Tutvuda:
2. Juhtimiskonstruktsioonid ja tsüklid. Lihtandmed.
Aeg: 13 september.
Loengumaterjal: Progpohi2_06.PPT, Progpohi2_06.pdf,
Lugeda: D.Eck ptk 3, 4.
3. Funktsioonid, klassid. Kompleksandmed
eeskätt stringid ja massiivid.
Aeg: 20 september.
Loengumaterjal: Progpohi3_06.PPT, Progpohi3_06.pdf
Lugeda: D.Eck ptk 4, 5 algus, 8.
4. Sissejuhatus teise praktikumitöösse. Veatöötlus. Failid.
Aeg: 27 september.
Praktikumimaterjalid: rdf-mikroandmebaas
Loengumaterjal: Progpohi4_06.PPT, Progpohi4_06.pdf
Lugeda: D.Eck 8,9,10
5. Teine praktikumitöö
Aeg: 4. oktoober.
Õppejõud tegeleb loengus lahenduse osalise etteprogrammeerimisega.
6. Objektid ja klassid.
Aeg: 11. oktoober.
Loengumaterjal objektidest: Progpohi5_06.PPT, Progpohi5_06.pdf
Lugeda: D.Eck 5
Näited loengust: Puusepp_java_objektid.zip
7. Graafika ja kasutajaliidese sissejuhatus.
Aeg: 18 oktoober
Õppejõud tegeleb loengus praktikumiülesane lahenduse osalise etteprogrammeerimise jätkuga. Korratakse objektide loengumaterjali põhipunkte. Alustatakse graafikaga.
Loengumaterjal, millega algust tehakse: Progpohi6_06.PPT, Progpohi6_06.pdf
Koodinäited 2005 a loengust: javagraphexamples.zip
Lugeda: D.Eck 6 ptk 1-4.
8. Graafika ja kasutajaliidese jätk.
Aeg: 25 oktoober
Loengumaterjal: eelmise loengumaterjali Progpohi6_06.PPT, Progpohi6_06.pdf jätk. Kolmanda praktikumitöö sissejuhatus.
Koodinäited 2005 a loengust: javagraphexamples2.zip
Lugeda: D.Eck 6 ptk lõpuni, 7 ptk.
9. Graafika ja kasutajaliides
materjali ja näidete jätk. Kolmanda praktikumi osaline etteprogrammeerimine.
Aeg: 1. november.
10. Praktikumiabi jätk. Seejärel binaarne otsing ja sorteerimine.
Aeg: 8. november
Loengumaterjal: Progpohi10.PPT
Lugeda: D.Eck ptk 8.4: Searching and Sorting, analüüse ja seletusi.
Proovida: xsortlab, sorting demo, Sortingdemo.zip
11. Otsingualgoritmide algus. Travelling salesman problem.
Aeg: 15.november
Loengumaterjal: Progpohi11.PPT
Lisamaterjal: searchadditional2.ppt
Loengus kirjutatud näiteprogramm paari optimeeringuga: tsp.java
12. Mõtlemismängud
male, viis nuppu ritta jne.
Aeg: 22. november
Neljanda praktikumi sissejuhatus.
Loengumaterjal: Progpohi12_06.PPT
Lisaks:
13. Listid, stack, puud
Aeg: 29 november.

Loengu esimene pool sisaldas praktikumiabi: kabemängu üksikute algusosade etteprogrammeerimist, vt praktikumi lehte.

Loengumaterjal: Progpohi13_06.PPT
Lugeda: D.Eck ptk 11.
14. Stack, lihtsamad ja keerukamad puud.
Aeg: 6. detsember.
Loengumaterjal: alustame eelmise loengumaterjali teise poolega: Progpohi13_06.PPT, jätkame uue materjaliga Progpohi14_06.PPT
Loengus (varem) kirjutatud parser: parse1.java
Lugeda: D.Eck ptk 11 lõpuosa.
15. Süntaksianalüüsi jätk
hash ja puud. Threadid.
Aeg: 13. detsember.
Loengumaterjalid: jätkame Progpohi14_06.PPT, alustame Progpohithreads.PPT
Lugeda: D.Eck ptk 10 osa 5.
16. Plaanis
threadide jätk. Konsultatsioon eksamiks.
Aeg: 20 detsember.


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 5.0 Update 8".
    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 5.0 Update 7 with NetBeans 5.0" ja "JDK 5.0 Update 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.
  • Tekstiredaktor SciTE: põhileht, linuxi download (alternatiivina on distrotes enamasti oma scite package) windowsi download, mõnusam windowsi download (soovitav!).

Tehnilised käsiraamatud:

Lisa-lugemismaterjale

Lihtsad:

Keskmise keerukusega:

Keerukad (ära loe, kui kõik muu pole veel liiga-liiga lihtne!):



Harjutamist ja taustinfot eksamiks

Kuidas on tudengitel selles aines varem läinud? Vanad, 2005 sügissemestri tulemused leiad siit). Veel varasemate aastate tulemused, samuti näite-eksamiülesanded leiad 2004 sügissemestri lehelt.


Peaasi on teha ise ja korralikult praktikumiülesandeid: see ongi parim harjutus eksamiks.