Kodutöö I

Kodutöö I: Funktsiooni y= f(x) tabuleerimine

Kodutöö I raames tuleb koostada algoritm ja sellele vastav programm C keeles. Lahendus peab võimaldama ettemääratud kitsenduste põhjal leida funktsiooni y = f(x) väärtusi ning kuvama tulemused leitud punktides. Tulemused peavad olema joondatud tabeli kujul [ vt printf() kasutamise vihjeid ], mille veergudeks on argumendi x ja funktsiooni y = f(x) väärtused, st:

Argument (xi) Funktsiooni väärtus kohal xi
x1 y1
x2 y2
xn yn

Funktsiooni väärtus kuvatakse ainult siis, kui see eksisteerib. Kui funktsiooni väärtus pole antud argumendi x korral määramispiirkonnas, tuleb y veergu väljastada ‘puudub’. Kompleksarvulise väärtuse võib soovi korral esitada kujul: reaalosa + i imaginaarosa, kuid võib piirduda samuti märkusega y tulbas ‘kompleksarvuline’. Maksimaalselt tuleb leida 20 tulemust.

Töö raames tuleb koostada ja esitada programmi kood, algoritm ja aruanne.

Kodutöö variant

Aruanne

Kodutöö raames tuleb esitada põhjalik aruanne tehtud töö kohta. Aruanne peab olema korrektselt struktureeritud ja põhjalik.  Aruande kvaliteet on üks osa kodutöö hindest.

Aruande kohandatud mall (MS Word)

Aruanne tuleb vormistada vastavalt Infotehnoloogia teaduskonna Lõputöö koostamise ja vormistamise juhendile.

Viide juhendile: ITT_loputoode_juhend_EST.pdf

Oleme koostanud sinu jaoks ka kodutöö malli koos mõningate juhistega. Oma töö dokumenteerimist peaksid just alustama sellest. Malli leiad siit: mall_et_pr1_kodu1.dotx

Mallis on loodud erinevad stiilid mis vastavad vormistusnõuetele, kasuta neid!

Mallis olevad pealkirju on tohib ümber struktureerida, samuti on soovitatav lisada täiendavaid (alam)pealkirju sisu paremaks struktureerimiseks. Olemasolevad pealkirjad on eelkõige suunavad.

Malli on lisatud kirjeldused pealkirjade alla oodatava sisu kohta. Eemalda need kommentaarid enne esitamist!

Aruande üldine mall (MS Word, OpenOffice)

Kui soovid kasutada üldist malli ja seda ise kohandada, leiad selle siit:

http://www.tud.ttu.ee/im/Aila.Lainurm/ITT_Autorikomplekt/

Aruande üldine mall (LaTeX)

Neile kes soovivad kasutada LaTeXis loodus malli saavad selle siit: https://gitlab.cs.ttu.ee/thesis/latex-template

Tegu on üldise malliga, mis tuleb kohandada sobivaks kodutöö nõuetega (vt Wordi mall).

Aruande sisu

Aruandes peaksid olema kajastatud järgmised komponendid:

  • Tiitelleht
  • Autorideklaratsioon
  • Lühendite ja mõistete sõnastik (vajadusel)
  • Sisukord
  • Jooniste ja tabelite loetelu (vajadusel)
  • Ülesande püstitus
  • Funktsiooni analüüs
    • Kirjelda funktsiooni ja selle määramispiirkonda
    • Visualiseeritud funktsiooni graafik(ud)
      Selleks võid kasutada näiteks [google’it], [wolfram alphat], excelit või mõnda teist meelepärast tööriista.
  • Lahenduse kirjeldus
    • Tekstiline kirjeldus. Juhindu mallis olevatest pidepunktidest. Tekstilise kirjeldus vähemalt 3/4 A4 lehekülge. Maksimaalselt 2 A4 lehekülge. Kirjeldus peab olema arusaadavalt struktureeritud. Kasutada tuleks tabeleid, loetelusid jt struktuurseid elemente. Kirjeldus ei tohi olla üks suur müür teksti!
    • Programmi tööd kirjeldav algoritm UMLis.
  • Kokkuvõte
  • Ekraanitõmmis(ed) töötavast programmist
    • Ekraamitõmmised peaksid illustreerima erinevaid situatsioone millega sinu programm toime tuleb
    • Ekraanitõmmised võivad olla pandud lisana, kuid võivad olla ka põimitud lahenduse kirjelduse sisse.

Olulised märkused aruande vormistamisel

Tegu on loeteluga tüüpilistest vigadest esitamisel:

  • Tiitellehele ülaossa tuleb märkida kuhu aruannet esitatakse, mitte kus õpitakse. St näiteks kus kohas töötab see inimene, kellele aruanne lugemisele läheb. Minimaalselt ülikooli ja instituudi nimi.
  • Aruande vormistamisel tuleb kasutada mallis kirjeldatud stiile ja automaatselt genereeritavaid elemente (sisukord, tabelite ja jooniste loetelu, kasutatud kirjandus)
  • Puuduva sisuga pealkirju ja tühju lehekülgi aruandes olla ei tohi.
  • Kõikide pealkirjade all peab olema teksti. Pealkiri, mille alla kuulub vaid joonis, pole piisav!
  • Tabelitel ja joonistel peavad olema pealkirjad.
  • Tabelid ja joonised peavad olema tekstis viidatud. Vajadusel täiendavalt kommenteeritud.
  • Selgitus on korralikult struktureeritud – st ei ole üks monoliitne tekstiplokk! Kasuta alampealkirju, tabeleid, loetelusid jne.
  • Algoritm peab olema loetav. Soovitatav on lisada oma dokumenti eksporditud vektorgraafika.
  • Aruandesse tohib koodi panna vaid minimaalselt oma teksti illustreerimiseks. Aruanne ei tohi sisaldada kogu programmikoodi. Programmikood esitatakse eraldi failina.
  • Aruandes on vaid välja lõigatud pildid jooksvast programmist, mitte tekstiredaktorist ega tervest tööekraanist.

Nõuded koodile

Programmi kood peab vastama järgnevatele nõuetele:

  • Kood peab lähtuma seni õpitud praktikatest.
  • Kood peab vastama kas C90 või C99 standardile.
  • Peab kasutama standardteeke.
  • Peab olema operatsioonisüsteemist sõltumatu.
  • Koodis ei tohi olla kasutatud GOTO lauseid.
  • Koodis ei tohi olla kasutatud globaalmuutujaid.
  • Koodis puuduvad kasutamata komponendid (nt teegifailid, muutujad mida ei kasuta).
  • Kõik leitavad tulemused tuleb salvestada ja kuvada selleks sobiliku massiivi või massiivide kaudu.
  • Maksimaalselt arvutatakse välja ja kuvatakse 20 tulemust, olenemata variandist.
  • Kõik sisendid peale sammude arvu peavad toetama murdarve.
  • Kood vastab esitatud koodimisstiilile, muuhulgas (kuid mitte ainult!)
    • failil on korrektne päis koos autori andmete, kuupäeva ja lühikirjeldusega.
    • Kood on kommenteeritud.
    • Muutujate nimed on arusaadavad ning kirjutatud korrektses stiilis.
    • Kood on trepitud, koodiread on lubatud maksimaalse pikkusega ja tühikud vajalikes kohtades.
    • Koodis puuduvad maagilised numbrid.

Nõuded algoritmile

Üldised nõuded algoritmile:

  • Algoritm on vormistatud korrektse UML diagrammiga
  • Algoritm tükeldab programmi loogilisteks tükkideks kasutades ujumisradu / eraldisi (swim lane)
  • Algoritmis on kajastatud massiivide indekseerimist.

Muuhulgas tasub kontrollida ka, et puuduksid järgnevad tüüpvead:

  • Kõigil sõlmedel on juures tingimus (mille alusel valitakse sõlmest väljuv tee)
  • Kõigil sõlmedest väljuvatel kaartel on märgitud mis olukorras programmivoog antud kaare valib (true/false, switch case väärtused)
  • Kui mitu voogu koonduvad pärast tingimust, peab selleks olema kasutatud koondumise sõlme (merge node)
  • Kõikidesse kaartesse on võimalik saada – st tingimused peavad olema reaalsed.
  • Puuduvad tupikud – st kõikjalt on võimalik saada lõppu.
  • Kõigist tsüklitest on võimalik väljuda

Tähtajad, punktid ja boonused

Esimese kodutöö väärtuseks on 15p.

Terviklik kodutöö tuleb esitada hiljemalt 17.10.2021 23:59:59 (kohalik aeg)

Tähtaja ületamisel iga hilinetud nädal võtab 1p maksimumist alla kuni 10p piirini. Miinuspunktid lukustuvad vaid juhul, kui töö on esitatud täismahus.

Kodutöö eest saadud punkte on võimalik parandada punktide lukustamise kuupäevani. Sellisel juhul on töö ja sooritatud paranduste kaitsmine kohustuslik.

Esitades korrektselt lahendatud ja vormistatud töö ennetähtaegselt on võimalik saada kuni 2 boonuspunkti.

  • Enne 06.10.2021 23:59 esitatud töö: 2p
  • Enne 12.10.2021 23:59 esitatud töö: 1p

Boonuspunktide saamiseks peavad olema kõik esitatud nõuded täidetud. Poolikute või vigaste lahenduste eest boonuspunkte pole võimalik saada. Juhul kui esitatud töö ei täida kõiki nõudeid esmakordsel esitamisel kaob õigus selle töö eest boonuspunkte saada.

Kui kodutöö kohta tekib täiendavaid küsimusi või esineb kahtlusi autorluses, hinnatakse kodutöö tulemusega 0 punkt. Sellisel juhul tuleb punktide saamiseks kodutöö kaitsta.

Vajadusel rakendatakse [Vääritu käitumise menetlemise korda].

Viimane päev kodutöö esitamiseks ja kaitsmiseks on märgitud sissejuhatavatel slaididel. Pärast antud kuupäeva kodutöid esitada ei ole võimalik!

Esitamine

Esitada tuleb dokumentatsioon Adobe PDF formaadis ning kõik vajalikud koodifailid programmi kompileerimiseks.

Failide nimed peavad algama Kodutoo_I_Eesnimi_Perenimi_üliõpilaskood.
Näiteks:

Kodutoo_I_Anti_Tiib_112211IACB_kood.c
Kodutoo_I_Anti_Tiib_112211IACB_aruanne.pdf

Kodutöö tuleb esitada Moodle kaudu: https://moodle.taltech.ee/course/view.php?id=3347

Tulemused ja tagasiside

Pärast töö kontrollimist lisatakse Moodlesse töö eest saadud punktid. Töö juurest leiad tagasiside kommentaarina juhul, kui oled ühel või teisel põhjusel punkte kaotanud. Tagasiside võib esineda ka juhul kui töö eest saadi maksimumpunktid.