Programmeerimise põhikursus: erinevus redaktsioonide vahel

Allikas: Lambda
Mine navigeerimisribale Mine otsikasti
Anier (arutelu | kaastöö)
Resümee puudub
Anier (arutelu | kaastöö)
61. rida: 61. rida:


Käsureaga mugavamaks hakkamasaamiseks AK arvutiklassides loe neid soovitusi: [[AK arvutiklasside XP java käsurida]].
Käsureaga mugavamaks hakkamasaamiseks AK arvutiklassides loe neid soovitusi: [[AK arvutiklasside XP java käsurida]].
<!--
 
----
<br/>
Ülesanded antakse veidi enne eelmise ülesande tähtaja lõppu, tähtajad on septembri, oktoobri, novembri ja kursuse lõpp. Esialgu (2009 sügis) on antud üks ülesanne:
Ülesanded antakse veidi enne eelmise ülesande tähtaja lõppu, tähtajad on septembri, oktoobri, novembri ja kursuse lõpp. Esialgu (2009 sügis) on antud üks ülesanne:
-->


# <b>Tikumäng</b> Esimene ülesanne on täpselt sama, kui eelmine aasta: [[tikumängu ülesanne]], ainult tekstiliides. Tähtaeg: 28.september.2009. [[Media:Ulesanne1_vene.rtf | venekeelne variant tikumängu ülesandest]]
# '''Tikumäng''' Esimene ülesanne on täpselt sama, kui eelmine aasta: [[tikumängu ülesanne]], ainult tekstiliides. Tähtaeg: 28.september.2009.
 
<font color=slategray>
Eelmise aasta ülesanded
Eelmise aasta ülesanded
# Teine ülesanne. [[Praktikumitöö: twitter]]
# Teine ülesanne. [[Praktikumitöö: twitter]]
# Kolmas ülesanne. [[Praktikumitöö: aktsiahinnad]]
# Kolmas ülesanne. [[Praktikumitöö: aktsiahinnad]]
# Neljas ülesanne. [[Praktikumitöö: reversi]]
# Neljas ülesanne. [[Praktikumitöö: reversi]]
</font>
<!--
<!--
Edaspidised ülesanded tulevad umbes sama keerukusega, kui järgmised 2007 aasta ülesanded, kuid kindlasti erinevad:
Edaspidised ülesanded tulevad umbes sama keerukusega, kui järgmised 2007 aasta ülesanded, kuid kindlasti erinevad:
76. rida: 80. rida:
# Vana neljas ülesanne. [[Praktikumitöö: Kalah]].  
# Vana neljas ülesanne. [[Praktikumitöö: Kalah]].  
-->
-->
<br/>
----


Tähelepanek AK arvutiklassides: päris paljudel masinatel ei leia java kompilaator ja interpretaator (javac ja java)
Tähelepanek AK arvutiklassides: päris paljudel masinatel ei leia java kompilaator ja interpretaator (javac ja java)

Redaktsioon: 9. september 2009, kell 15:07

Ainekood: ITI0010
Link: http://www.lambda.ee/index/Programmeerimise_põhikursus ehk http://www.lambda.ee/index/iti0010
Eelmise aasta kursuse leht: Programmeerimise_põhikursus_2008

Lektor: Aivo Anier
E-post: Aivo.Anier@ttu.ee
Praktikumi juhendajad: Ivor Lõõbas, Ago Luberg

Klee: Higways and byways
Klee: Higways and byways

Aeg, koht

Loengud: Reedeti kell 12.00-13.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-213A & IT-213B. Rühmadel on erinevad ajad ja juhendajad.

Praktikumiajad:

* Esmaspäev 16.00 - 17.30 IT-213A & IT-213B: IAPB32, IAPB33
* Kolmapäev  8.00 -  9.30 IT-213A & IT-213B: IABB31, IABB32
* Neljapäev 16.00 - 17.30 IT-213A & IT-213B: IABB33, IAPB31
* Reede      8.00 -  9.30 IT-213A & IT-213B: IABB37, IAPB37, IAPB38

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, tähtajad on septembri, oktoobri, novembri ja kursuse lõpp. Esialgu (2009 sügis) on antud üks ülesanne:

  1. Tikumäng Esimene ülesanne on täpselt sama, kui eelmine aasta: tikumängu ülesanne, ainult tekstiliides. Tähtaeg: 28.september.2009.

Eelmise aasta ülesanded

  1. Teine ülesanne. Praktikumitöö: twitter
  2. Kolmas ülesanne. Praktikumitöö: aktsiahinnad
  3. Neljas ülesanne. Praktikumitöö: reversi



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 21. 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 2007 sügisel tehtud praktikumitööde kohta: kui oled 2007 sügissemestril saanud punkte, siis saad neid 2008 sügissemestril kasutada ainult juhul, kui said 2007 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.

Eksamid ja 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. Eksam on kirjalik, paberil, ja koosneb ainult väikestest programmeerimisülesannetest.

Esimene järeleksam toimub eksamissessiooni järel, teine kevadsemestri lõpupoole, kolmas sügissemestri eelnädalal.

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: 3 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: 10 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: 17 september.
Loengumaterjal: Progpohi3_07.ppt, Progpohi3_07.pdf
Lugeda: D.Eck ptk 4, 5 algus
4. Sissejuhatus teise praktikumitöösse. Veatöötlus. Failid. Võrgust lugemine.
Aeg: 24 september.
Esialgsed praktikumimaterjalid: Praktikumitöö: twitter.
Loengumaterjal: Progpohi4_07.PPT, Progpohi4_07.pdf
Lugeda: D.Eck 8,11
5. Teise praktikumitöö, failide jätk.
Aeg: 30 september.
Praktikumimaterjalid: Praktikumitöö: twitter.
6. Objektid ja klassid.
Aeg: 7. oktoober.
Loengumaterjal objektidest: Progpohi7_07.PPT, Progpohi7_07.pdf
Lugeda: D.Eck 5
7. Graafika ja kasutajaliidese sissejuhatus.
Aeg: 14 oktoober
Korratakse objektide loengumaterjali põhipunkte, alustatakse graafika ja kasutajaliidesega.
Loengumaterjal, millega algust tehakse: Progpohi6_06.PPT, Progpohi6_06.pdf
Koodinäited: javagraphexamples.zip
Lugeda: D.Eck 6 ptk 1-4.
8. Graafika ja kasutajaliides. Materjali ja näidete jätk.
Aeg: 21 oktoober.
9. Kolmas praktikumitöö.
Aeg: 28 oktoober.
Spec: Praktikumitöö: aktsiahinnad
10. Praktikumiabi jätk. Seejärel binaarne otsing ja sorteerimine.
Aeg: 5 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: 12 november
Loengumaterjal: Progpohi11.PPT
Lisamaterjal: searchadditional2.ppt
Näiteprogramm paari optimeeringuga: tsp.java


12. Mõtlemismängud (male, reversi jne) ja neljas praktikum.
Aeg: 19. november
Neljanda praktikumitöö: reversi sissejuhatus.
Loengumaterjal: Progpohi12_06.PPT
Lisaks:


13. Neljanda praktikumi jätk.
Aeg: 26. november
Neljanda praktikumitöö: reversi jätk.


14. Listid, stack, queue, puud.
Aeg: 3. detsember.
Loengumaterjal: Progpohi14_08.PPT
Näide, mis teisendab massiivi listiks, lisab uue elemendi ja siis teisendab tagasi massiiviks: Listex
Õpikust lugeda: peatükk 9 osad 1,2,3,4.
15. Keerukamad puud.
Aeg: 10 detsember.
Loengumaterjal: Progpohi15_07.PPT, algus materjalidest Progpohithreads.PPT
Loengus tehtud näide puude kohta: Treex.java
Loengu Näiteprogramme parserite kohta Parse_examples.zip
Lugeda: D.Eck ptk 9 osa 5, samuti ptk 11 osa 5.



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 7".
    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!).
  • Alternatiivina Scitele on Windowsil sobiv kasutamiseks ka Notepad++

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).

Näite-eksamiülesanded 2004 aastast leiad siit:

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