Programmeerimise põhikursus 2008

Allikas: Lambda
Redaktsioon seisuga 29. august 2005, kell 00:07 kasutajalt Tammet (arutelu | kaastöö)
Mine navigeerimisribale Mine otsikasti

...ajalugu, suunad, põhialused, paradigmad, äri.

Ainekood: ITI0010
Eelmise aasta (2004 sügis) link: http://cs.ttu.ee/kursused/iti0010/

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

Praktikumide läbiviijad, samuti praktikumiajad ja -arvutisaalid selguvad esimese õppetöönädala käigus.

Aeg, koht, tulemus

Loengud: Igal esmaspäeval kell 10.00-11.30, ruumis VII-131 (kohe fuajee kõrval)
Semestri teisel poolel (9. - 16. nädal) toimuvad loengud ruumis VI-229. 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 IT213. Rühmadel on erinevad ajad ja juhendajad.

Praktikumide läbiviijad, samuti praktikumiajad ja -arvutisaalid selguvad esimese õppetöönädala käigus.


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

Tutvustusülesanne: tutvustus.txt. NB! Tutvustusülesannet ei juhendata ega kontrollita. See tuleks iseseisvalt ära teha esimese õppetöö nädala jooksul.

  1. Esimene rakendus: tikumäng, ainult tekstiliides. Tähtaeg: 24. september.
  2. Tekstifailidest mikroandmebaas, ainult tekstiliides. Tähtaeg: 22 oktoober.
     See on ülesande lõplik versioon.
  3. GUI-ga võrgurakendus (http-d kasutav klient). Tähtaeg: 19. november
     See on ülesande lõplik versioon.
  4. Connect-four mäng (otsing mängupuust) koos statistikaga. Tähtaeg: 17. detsember
     NB! See on ülesande lõplik versioon.

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

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
Programmeerimine ja arvuti tööpõhimõtted.
Loengumaterjal: itsissejuhatus1o.PPT, itsissejuhatus1o.pdf.
Lisaks: loe juttu ja mängi andmete esitamise appletiga siin.

Harjutamist eksamiks/arvestuseks

Tee iseseisvalt vanad eksamid:

Kohustuslikud lugemismaterjalid

Järgnevate materjalide läbilugemine on kursuse läbimisel kohustuslik.

Väga kasulikud lugemismaterjalid: loe neid!

Kui kõik tundub liiga lihtne, siis:

  • Loe läbi Steven Raymondi raamat (NB! algajatel raske õieti mõista :-) The Art of Unix Programming
  • Loe läbi väga lõbus ja hariv raamat: Philip Greenspuni Guide to Web Publishing. Kui meeldis, uuri järgi, mida Greenspun veel teeb (sh loe teisi raamatuid ka) ja kuidas sündis ja suri tema kuulus firma.
  • Vaata, mis võrgust (loodetavasti) edaspidi saab: Semantic Web
  • Loe hoolega läbi (ei ole üldse kohustuslik ja algajatele mittesoovitav) ja tee harjutusi ka: [http:/materjalid/csapp.beta.11.16.pdf Computer Systems: a programmers perspective] toorikvariant.
  • Proovi õppejõu tehisintellektisüsteem Gandalf installeerida (Unix või Windows+cygwin) ja mängi sellega. Proovi ka Otterit (lihtsam, aga nõrgem klassikaline süsteem). Kuidas, loe siit ja siit ja siit.
  • Tee omal käel ette läbi terve programmeerimise põhikursus (peaasi: tee kõik harjutustööd: programmeerimise õppimiseks ainus viis on palju programmeerida :-)
  • Õpi assembleris programmeerima (üpris ebapraktiline oskus, aga hästi hariv :-)