Programmeerimise põhikursus 2008
Ainekood: ITI0010
Link: http://www.lambda.ee/index/Programmeerimise_põhikursus ehk http://www.lambda.ee/index/iti0010
Eelmise aasta (2004 sügis) link: http://cs.ttu.ee/kursused/iti0010/
Lektor: Tanel Tammet
Kontakt: tammet@staff.ttu.ee, 6203457, TTÜ AK223
Praktikumijuhendajad: priit.potter@webmedia.ee, Kristjan.Haavik@seb.se (vt allpool praktikumiaegu!)
Aeg, koht, tulemus
Loengud: Igal esmaspäeval kell 10.00-11.30, ruumis VII-131
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
NB! Kaugõppe loeng laupäeval, 24. septembril asendatakse uue loenguajaga 24. oktoobril kell 14.00.
Praktikum: kord nädalas a 2*45 minutit, AK arvutiklassides IT-213. Rühmadel on erinevad ajad ja juhendajad:
- IAPB37, IABB32: Esmaspäev 12.00-13.30 ruumides A,B,H. Juhendaja: Priit Potter.
- IABB37, IABB31, YAGM11: Teisipäev 8.00-9.30 ruumides A,B,C. Juhendaja: Kristjan Haavik.
- IAPB31, IAPB33: Kolmapäev 8.00-9.30 ruumides A,B,E,I. Juhendaja: Kristjan Haavik.
- IANM11, IAPB32: Reede 8.00-9.30 ruumides E,I,D. Juhendaja: Priit Potter.
- YASM11: iga tudengi vaba valik eeltoodud aegadest
NB! Kui tunniplaanis on kirjas teistsugused ajad, siis kehtivad ikkagi siintoodud ajad/kohad: nimelt sellised on õppetalituses kokku lepitud, ning võib lihtsalt juhtuda, et üldises tunniplaanis on muutused veel sisse viimata või on mõni näpukas tehtud.
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.
- Esimene rakendus: tikumängu ülesanne, ainult tekstiliides. Tähtaeg: 24. september.
- Tekstifailidest mikroandmebaas, ainult tekstiliides. Tähtaeg: 22 oktoober.
- GUI-ga võrgurakendus (http-d kasutav klient). Tähtaeg: 19. november
- Mõtlemismäng (otsing mängupuust) koos statistikaga. Tähtaeg: 17. detsember
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.
Täpsustav info 2004 sügisel tehtud praktikumitööde kohta: kui oled 2004 sügissemestril saanud punkte (vt siit lehelt), siis saad neid 2005 sügissemestril kasutada ainult juhul, kui said 2004 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: 28 august.
- Loengumaterjal: Progpohi1.PPT,
- Lugeda: D.Eck ptk 1, 2.
- Tutvuda:
- 2. Juhtimiskonstruktsioonid ja tsüklid. Lihtandmed.
- Aeg: 5 september.
- Loengumaterjal: Progpohi2.PPT,
- Lugeda: D.Eck ptk 3, 4.
- 3. Funktsioonid, klassid. Kompleksandmed
- eeskätt stringid ja massiivid.
- Aeg: 12 september.
- Loengumaterjal: Progpohi3.PPT,
- Lugeda: D.Eck ptk 4, 5 algus, 8.
- 4. Massiivide jätk. Veatöötlus. Failid.
- Aeg: 19 september.
- Loengumaterjal: Progpohi4.PPT,
- Lugeda: D.Eck 8,9,10
Tarkvara ja käsiraamatud
Vajalik tarkvara kodus töötamiseks:
- Java J2SE SDK (Java 2 standard edition software deveopment kit).
Tõmba SUN-i lehelt http://java.sun.com/j2se/downloads.html vähemalt 1.3.1 või uuem versioon (soovitavalt 1.4.2 või 1.5).
NB! Vajalik on SDK, mitte JRE, ja nimelt J2SE (standard edition), mitte J2ME (micro edition) või J2EE (enterprise edition). Java 1.5 jaoks kasutatakse nime SDK asemel nime JDK, seega on Java 1.5 download lehelt soovitav variant "Download JDK 5.0 Update 4".
- Praktiline juhatus versiooni 1.4.2 installeerimiseks (versioon 1.5 analoogilise juhendi leiad siit).
- [Praktiline kiire juhatus eelmise kasutamiseks: windowsi jaoks, unixi jaoks
- Tekstiredaktor SciTE: põhileht, linuxi download, 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.4.2 jaoks ja 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, 2004 sügissemestri tulemused, samuti eksamiülesandeid veel varasematest aastatest leiad 2004 sügissemestri lehelt.
Peaasi on teha ise ja korralikult praktikumiülesandeid: see ongi parim harjutus eksamiks.