TTP I: ViLLE syksy 2015



Viikoittaisissa harjoitustehtävissä käytetään havainnollistamisohjelmaa ViLLE, jota tulee käyttää kaikkien viikon asioiden omaksumisessa ensimmäiseksi. Harjoitustehtävistä osa on ViLLE-tehtäviä ja ne tulee tehdä samalla aikataululla kuin muutkin ko. viikon tehtävät. Tehtävät ovat auki vuoden loppuun saakka, mutta hyvityksiä saa vain jos ne on tehty aikataulun mukaisesti. Tarkastan tilanteen jokaisen viikon jälkeen.Kullakin viikolla ViLLE-tehtävät vastaavat yleensä kahta tehtävää ja lasken ne mukaan bonuksiin kuten muutkin tehtävät.

 

Ohjelmaa ei tarvitse asentaa koneeseesi, vaan se käynnistyy selaimessa uuteen ikkunaan. Ensimmäisellä kertaa tulee menetellä seuraavasti:

  1. Käytä linkkiä http://ville.cs.utu.fi/ohje/?r=3413&haka=true
  2. Rekisteröi itsesi kurssille: paina linkkiä Register yourself into this course.
  3. Valitse Turun yliopisto
  4. Sen jälkeen annetaan utu-tunnukset
  5. Sen jälkeen annetaan kurssiavain (se on sama kuin Moodlen avain, joka annettiin sinulle Aloituskirjeessä, jonka sait sähköpostitse)

Nyt olet kurssilla. Tervetuloa toivotuksen saat pois klikkaamalla sitä. Seuraavalla kerralla kun menet ViLLEen, niin valitse https://ville.utu.fi . Älä kirjoita kirjautumissivun tekstikenttiin mitään, vaan klikkaa HAKA-login painiketta ja anna utu-tunnukset.

Jos sinulla on ongelmia systeemin suhteen, ota yhteyttä boberg@utu.fi
Jos sinulla on utu-tunnukset hukassa, niin katso tämä

Valitse ensin tehtävä. Alussa on muutama tehtävä, joissa vastaat kysymyksiin. Loput ovat visualisointitehtviä, joissa seurataan algoritmien toimintaa. Tehtävän aluksi paina Aloita-painiketta. Villessä ohjelmaa suoritetaan aina yksi rivi kerrallaan. Ohjelma näyttää aina algoritmin tilan eli esim. muuttujien sen hetkiset arvot ja mahdollisen tulostuksen. Klikkaamalla Seuraava painketta ohjelman suoritus etenee seuraavalle riville. Kun ohjelma kysyy sinulta jotain, niin sinun tulee vastata tähän monivalintakysymykseen, ennen kuin voit jatkaa ohjelman suoritusta. Jos siirryt suorituksessa taaksepäin, niin ohjelma ei kysy enää samaa kysymystä toistamiseen. Jos kuitenkin haluat vastata kysymykseen uudestaan, niin sinun tulee aloittaa tehtävä uudestaan (klikkaa Nollaa). Huomaa myös alla olevat ikkunat Selitys ja Tulostus. Mieti tarkkaan jokaisen lauseen suorituksen vaikutus ohjelman tilaan! Kun pääset ohjelman loppuun, Lähetä vastauksesi. Voit suorittaa saman tehtävän uudestaan ja parantaa aiemmin lähettämääsi vastausta. Näin ollen tehtävä kannattaa suorittaa aina loppuun vaikka vastaisitkin väärin johonkin kysymykseen. Nimittäin seuraavalla yrityksellä saatat vastata ko. kysymykseen oikein. Suorita algoritmeja Muuttujien tila näkymässä. Huomaa kuitenkin moduulien yhteydessä moduulien Kutsupino (eli siis mikä moduuli on nyt aktiivinen ja mistä moduulista kutsu tapahtui). Rinnakkaisnäkymä-tilassa näet algoritmin eri kielillä: Python, Java, C++ jne. Tutki siis myös Rinnakkaisnäkymää ja mieti sitä miten pseudokielemme poikkeaa todellisista ohjelmointikielistä.

Jos löydät tehtävistä jotain kummallista tai sinusta epäloogista toimintaa, niin kerrothan siitä minulle heti!

ViLLE näyttää myös muuttujien tyypin, joka vastaa Javaa: int (kokonaisluku), double (desimaaliluku), String (merkkijono), boolean (totuusarvot: true ja false). Esim. (a=2) on totuusarvoinen lauseke, jonka arvo true jos muuttujan a arvo on 2 ja false aina muulloin. 

 

Selityksissä käytetään joskus Javan operaattoreita != (erisuuri), == (yhtäsuuri) , && (looginen JA eli AND), !! (looginen TAI eli OR). Lisäksi selityksissä if-lauseen then- ja else- haaran lauseista sekä silmukan rungosta käytetään Javan nimitystä lohko. Moduulien ja aliohjelmien sijasta käytetään Javan nimitystä metodi. Älä anna näiden häiritä! 

 

ViLLEn pseudokielen syntaksissa on hiukan eroa verrattuna meidän syntaksiin. Tärkeimmät erot koskevat FOR-lausetta ja moduulin määrittelyä:

 

1) ViLLEssä FOR-lauseessa kirjoitetaan esim. FOR i:=1 TO n ... ja opintomonisteessa usein kirjoitetaan FOR i:=1,2,...,n.

 

2) Jokainen algoritminpätkä kootaan ViLLEssä pääohjelmamoduuliksi MAIN aina seuraavalla tavalla:

MODULE MAIN

     <lauseet>

ENDMODULE