Programmeerimise algkursus: erinevus redaktsioonide vahel

Allikas: Lambda
Mine navigeerimisribale Mine otsikasti
Resümee puudub
 
Resümee puudub
22. rida: 22. rida:
== Aeg, koht  ==
== Aeg, koht  ==


Loengud: Igal esmaspäeval kell 12.00-13.30, ruumis ... <br>
Loengud: Igal esmaspäeval kell 12.00-13.30, ruumis 314 <br>
Semester: sügis<br>
Semester: sügis<br>
Tulemus: kirjalik eksam, mille eelduseks ja üheks punktiosaks on praktikumiülesanded.<br>
Tulemus: kirjalik eksam, mille eelduseks ja üheks punktiosaks on praktikumiülesanded ja kontrolltööd.<br>
Punkte: 3.5<br>
<!-- Punkte: 3.5<br> -->
Eeldusaine: IAG3103 Informaatika II<br>


Praktikum: kord nädalas a 2*45 minutit, AK arvutiklassides <b>IT-213</b>.  
 
Rühmadel on erinevad ajad ja juhendajad. Oktoobri teisest poolest juhendab praktikume lisaks Eleri Lambile ka Aivo Anier:
Praktikum: kord nädalas a 2*45 minutit.
Rühmadel on erinevad ajad ja juhendajad.  


Praktikumiajad:
Praktikumiajad:
* Teisipäev 8-9.30 IT213 A,B,C: IAPB3, IAPB32 (Eleri)
* Kolmapäev 8.15-9.45: paaritu nädal 11, paaris nädal 12
* Teisipäev 16-17.30 IT213A,B,C: IAPB33, IAPB34 (Aivo)
* Neljapäev 12.00-13.30: paaritu nädal 13, paaris nädal 14
* Neljapäev 8-9.30 IT213A,B: IABB37, IAPB37 (Eleri)
* Reede 10.00-11.30: 13 ja 14
* Neljapäev 14-15.30 IT213A,B,C: IABB31, IABB32 (Aivo)
* Reede 12.00-13.30: 11 ja 12
* Reede 10-11.30 IT213E: YABM11, YASM12, IANM11 (Aivo)
 


<!--
<!--
45. rida: 45. 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.
-->
<!--
== 2006 tulemused ==
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> 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.
-->
-->


== Kursuse eesmärk ==
== 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.
Õpetada programmeerimise aluseid ja tehnoloogiat üldiselt, eeldamata varasemat kokkupuutumist programmeerimisega. Rõhk on arusaamisel ning 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.  




76. rida: 58. rida:
(http://math.hws.edu/javanotes/ vt ka http://math.hws.edu/eck/cs124/downloads/javanotes5.pdf)
(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.
Kursus jätab käsitlemata keerulisemad osad õpikust. 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).
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).
83. rida: 65. rida:


== Praktikumiülesanded ja tähtajad ==
== Praktikumiülesanded ja tähtajad ==
Ilmuvad siia Antti Andreimanni poolt.


Alustuseks tee ära: [[java tutvustusülesanne]].  
Alustuseks tee ära: [[java tutvustusülesanne]].  
88. rida: 72. rida:
'''NB!''' Tutvustusülesannet ei juhendata ega kontrollita. See tuleks iseseisvalt ära teha esimese õppetöö nädala jooksul.
'''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]].
Käsureaga mugavamaks hakkamasaamiseks 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. [[Media:Ulesanne1_vene.rtf | 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)
Tähelepanek: 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
ü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
javac ja java välja koos classpathiga, milleks on kataloog, kus ise oled (seda tähistab punkt -cp järel), eeldusel
106. rida: 82. rida:




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 <b>2006 sügisel tehtud praktikumitööde kohta</b>: 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 <b>ainult</b>  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 ja materjalid ==
271. rida: 235. rida:
* Bruce Eckel: [http://www.pythoncriticalmass.com/downloads/TIJ-3rd-edition4.0.zip Thinking in Java] Vt ka http://mindview.net/Books.
* Bruce Eckel: [http://www.pythoncriticalmass.com/downloads/TIJ-3rd-edition4.0.zip 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 [[Media:ITI0010_eksam2_2005_pub.htm | leiad siit]]).
Näite-eksamiülesanded 2004 aastast leiad siit:
* [http://cs.ttu.ee/kursused/iti0010/progpohi7jan04a.doc vana eksam 1]
* [http://cs.ttu.ee/kursused/iti0010/progpohi7jan04b.doc vana eksam 2]
Peaasi on teha ise ja korralikult praktikumiülesandeid: see
ongi parim harjutus eksamiks.




[[Category:Kursus]]
[[Category:Kursus]]

Redaktsioon: 1. september 2008, kell 13:05

Ainekood: I200
Link: http://www.lambda.ee/index/Programmeerimise_algkursus ehk http://www.lambda.ee/index/I200
Võid vaadata ka iti0010 2006 arhiivi.

Lektor: Tanel Tammet blog
Kontakt: tammet@staff.ttu.ee, 6203457, TTÜ AK223
Praktikum ja harjutused: Antti Andreimann (antti.andreimann@itcollege.ee), Margus Ernits (mernits@itcollege.ee)

Klee: Higways and byways
Klee: Higways and byways


Aeg, koht

Loengud: Igal esmaspäeval kell 12.00-13.30, ruumis 314
Semester: sügis
Tulemus: kirjalik eksam, mille eelduseks ja üheks punktiosaks on praktikumiülesanded ja kontrolltööd.


Praktikum: kord nädalas a 2*45 minutit. Rühmadel on erinevad ajad ja juhendajad.

Praktikumiajad:

  • Kolmapäev 8.15-9.45: paaritu nädal 11, paaris nädal 12
  • Neljapäev 12.00-13.30: paaritu nädal 13, paaris nädal 14
  • Reede 10.00-11.30: 13 ja 14
  • Reede 12.00-13.30: 11 ja 12


Kursuse eesmärk

Õpetada programmeerimise aluseid ja tehnoloogiat üldiselt, eeldamata varasemat kokkupuutumist programmeerimisega. Rõhk on arusaamisel ning praktiliste kogemuste ja oskuste omandamisel: iseseisev töö praktikumis on olulisem, kui õpiku lugemine. Märgatava osa loenguaega kulutab lektor kohapeal ette-programmeerimiseks.


Õ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 keerulisemad osad õpikust. 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

Ilmuvad siia Antti Andreimanni poolt.

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 arvutiklassides loe neid soovitusi: AK arvutiklasside XP java käsurida.

Tähelepanek: 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


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:


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.
  • 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!):