wiki:k2013/demot/demo1
Last modified 5 years ago Last modified on 2013-05-28 15:25:54

Demot » Demo 1, 14.1.2013 - Kesällä ma 27.5.2013

Demot palautetaan viimeistään maanantaina klo 13:00 mennessä kurssin NettiDemoWWW:llä https://www.mit.jyu.fi/demowww/ohj2/. Voit palauttaa osan tai kaikki tehtäväsi etukäteenkin ja täydentää vastauksia määräaikaan mennessä.

Demotehtävän alussa tai muulla iso M ja linkki tarkoittaa että seuraava viittaus on luentomonisteeseen.

Tehtävien pisteistä

Jokaisella tehtäväkerralla voi olla tavallisia tehtäviä, Ville-tehtäviä (V=Ville) lisätehtäviä (B=bonus) ja harrastajien tehtäviä (G=Guru).

Tehtävät ovat yhden pisteen tehtäviä, ellei ole erikseen mainittu, että tehtävästä saa useamman pisteen (esim. Ville 1, Tehtävä 1 ja B2 eli Bonus 2 ovat maksimimissaan yhden pisteen tehtäviä, mutta G1-2 on maksimissaan kahden pisteen tehtävä). NettiDemoWWW:hen merkitään siis esim tehtävän 1 kohdalle maksimissaan 1 silloin kun vastaus on tekijän mielestä täysin oikein. Jos vastauksessa on puutteita, voi merkitä esim 0.7 (eli tekijän mielestä 70% on oikein) ja kirjoittaa NettiDemoWWW:hen rivin kommentiksi mitä vastauksessa on puutteellista.

"Mallipalautus":

TIEDOSTO       TEHTÄVÄ    PISTEET  KOMMENTTI
=====================================================================
ville.txt      V1         1        ville oli kiva
paaikkunak.png 1-4        4        https://trac.cc.jyu.fi/projects/ohj2k13/wiki/suunnitelmat/vesal
teht5-6.txt    5-6        1.8      ihan en osannut loppuun saakka
teht7.txt      7          1        tämähän on helppoo
teht8.txt      8          0.9      kävely ei ole täydellinen  
Juuret.java    B1         1        tulostui hyvin
=====================================================================

Prosentteja laskettaessa enimmäispisteet demokertaa kohti on tavallisten tehtävien lukumäärä (eli lähes poikkeuksetta 8 kpl). Siten Ville/bonus/GURU-tehtävillä voi "kerätä pisteitä varastoon". GURU-tehtävien tarkoitus on myös tarjota asiaa jo osaaville hieman haastavampia tehtäviä. Kuitenkin kultakin demokerralta lasketaan max. 10 p. Eli vaikka merkitsisi enemmän kuin 10 pistettä, siirtyy automaattisesti korkeintaan 10 pistettä Korppiin. Toisella jaksolla (demot 8-12) maksimi on 8.

Jokaiselta kerralta on minimissään kerättävä 2 pistettä (tämä ei vielä riitä minkään oppimiseen ja ennuste 2 tehtävää/kerta tekeville on erittäin huono), ja kunkin jakson minimiyhteispistemäärä on oltava vähintään 40 %.

Esimerkki arvolauseesta

Kurssin arvolause tulee kaavalla

pisteet = 3/5*vk + dp1 + 2*dp2 
max=32, josta 12p = 1/5, 27p = 5/5, dpn = demopisteet, ei prosentit, jaksosta n

Esim: 50% pistettä ensimmäisestä jaksosta, 70% pistettä toisesta jaksosta ja välikokeesta 16 pistettä

  dp1: 50% => 2p 
  dp2: 70% => 4p
  pisteet = 3/5*16 + 2 + 2*4 = 19.6  =>  3/5

Jos olisi toisesta jaksosta tehnyt vain minimin, eli 40% niin tulos olisi:

  dp1: 50% => 2p 
  dp2: 40% => 1p
  pisteet = 3/5*16 + 2 + 2*1 = 13.6  =>  1/5

Vanhat vastaukset tai kavereiden vastaukset

Tehtävistä saattaa liikkua edellisten vuosien vastauksia ja jos niiden tai kavereiden vastauksien käyttämisestä jää kiinni, ovat rangaistukset lunttaamiseen verrattavia! Tärkeintä kurssilla on OPPI­MINEN, ei demopisteiden kalastelu tai kopiointi. Kopiot saa jo demoissa valmiiksi painetussa muo­dossa.

Ryhmätyö on sallittua, mutta tämä ilmaistaan laittamalla aina tiedoksi - esimerkiksi ohjelman kommentteihin - kaikkien ryhmään osallistuneiden nimet.

Ville V1

Tee JAVA Villestä tehtävät 2.1-2.6. Muuttujat ja lausekkeet. Lue huolella kohta 1.4 Ville-tehtävien palautus NettiDemoWWW:llä.

Tehtävä 1-4, harjoitustyön vaihe 1

Harjoitustyön vaihe 1 (lue Wikistä ohjeet ja vaatimukset). Jokainen näyttää ohjaajalle (ajanvaraus Korpista) harjoitustyön vaihetta 1 viikkojen 3 ja 4 aikana. Suosittelen kirjoittamaan suunnitelman Wikiin. Ohjeet Demo 1-4 palauttamiseksi.

Tehtävä 5-6, erikoismerkit numeroksi

Haluat tehdä opettajalle ohjelman, jolla hän voi syöttää oppilaiden koenumeroja. Haluat että mm. seuraavat syötöt olisivat mahdollisia:

Koenumero >6.5[RET]
Koenumero >6½[RET]
Koenumero >6.25[RET]
Koenumero >6+[RET]
Koenumero >5.75[RET]
Koenumero >6-[RET]

Kuitenkin laskemisen kannalta koenumero kannattaa aina säilyttää reaalilukuna (eli merkki­jono 6+ reaalilukuna 6.25). Kirjoita selkeät säännöt (ei Java-ohjelmaa) siitä, miten mikäkin syötetty merkkijono muutetaan reaaliluvuksi. Kirjoita vastaavat säännöt tulostamista varten, eli 5.75 tulostetaan aina muodossa 6-.

Tehtävä 7, nimen osien järjestyksen vaihtaminen

Jos nimi olisi muodossa "Ankka Aku" ja se haluttaisiin tulostaa muodossa "Aku Ankka" (tai "Palo Jukka Pekka" muodossa "Jukka Pekka Palo"), niin mitä kohdan 2.6.2 Alemman tason aliohjelmat aliohjelmista eh­dottaisit käytettäväksi ja miten? TDD: Mieti mitä muita oleellisesti erilaisia vaihtotilanteita voisi tulla vastaan. Kirjoita esimerkkejä ja mitä pitäisi tulla.

Tehtävä jatkuu seuraavilla demokerroilla.

Tehtävä 8, kävelyalgoritmi

Ohjelmointi 2 -monisteen Tehtävä 3.1, molemmat kohdat

Tehtävä B1, neliöjuuret

Tee Java -ohjelma, joka tulostaa kaikki ne kokonaisluvut <= 1000, joiden neliöjuuri on ko­konaisluku. TDD: Kirjoita ennen koodaamista käsin lukuja ja niiden neliöjuuria.

Tehtävä G1-5, kombinaatiot

Etsitään mikä on todennäköisyys voittaa seuraavassa pelissä: On 3:n värisiä palloja. Niistä poimitaan 4 kappaletta. Sitten poimitaan vielä 2 kappaletta. Pelissä voittaa mikäli nämä 2 palloa löytyvät 4 pallon joukosta. Eli jos molemmat pallot ovat punaisia, pitää neljän pallon joukossa olla myös olla 2 punaista (yksi ei riitä).

Ratkaisu tehdään etsimällä ensin kaikki kuuden pallon mahdolliset joukot. Näistä lasketaan monellako kaksi ensimmäistä kuuluu loppuun joukkoon.

Tällä ensimmäisellä demokerralla tehtävänä on tehdä ohjelma joka tulostaa kaikki kuuden pallon kombinaatiot, missä kukin pallo voi olla mikä tahansa kolmesta väristä. Värejä kuvataan numeroilla 0-2. Luonnollisesti tuo luku 6 (eli 4+2) on voitava korvata millä luvulla tahansa (mutta jos se menee paljon yli 10, rupeaa kyllä kestämään :-) samoin kuin pallojen määrä 3. Kielenä Java.

Kaksi lisäpistettä sille, joka antaa pelin voittotodennäköisyydelle analyyttisen lausekkeen (parametrina nuo 4,2 ja 3).

Tehtävä jatkuu seuraavilla demokerroilla.