The referenced paragraph does not exist.

Demo 1

Palauta viimeistään ma 18.1. klo 11:59, läpikäynti ma 18.1. klo 12-14.

Demot palautetaan maanantaina klo 11:59 mennessä. Voit palauttaa osan tai kaikki tehtäväsi etukäteen ja täydentää vastauksia määräaikaan mennessä. Demoista yleisesti sekä niiden pisteistä ja miten niitä lasketaan, kerrotaan tarkemmin kurssin Demot-sivulla

Iso M-kirjain tehtävän yhteydessä tarkoittaa viittausta TIM-luentomonisteeseen.

Tehtävien pisteistä

Jokaisella tehtäväkerralla voi olla ns. ydintehtäviä (tehtävät 1-6), Ville-tehtäviä (V=Ville), Tauno-tehtäviä (T=Tauno), lisätehtäviä (B=bonus) ja tehtäviä niille, joilla on jo ennestään ohjelmointikokemusta (G=Guru).

Tehtävät ovat yhden pisteen tehtäviä, ellei ole erikseen mainittu, että tehtävästä saa useamman pisteen. Esimerkiksi Ville 1, Tehtävä 1 ja Bonus 2) ovat maksimissaan yhden pisteen tehtäviä, mutta Guru 1-2 on maksimissaan kahden pisteen tehtävä.

Kun olet tehnyt tehtävän, muista tarkistaa, että pistemäärä on oikein. Viimeisimmän ajon/testin pisteet jäävät voimaan. Test-napin sisältävät tehtävät tuottavat usein eri määrän pisteitä ajamisesta ja testaamisesta.

Esimerkki:

Ajaminen onnistuu   ->  0.5p
Testit menevät läpi ->  1p

Jos edeltävässä esimerkissä menisi vielä testin jälkeen painamaan aja-nappia, niin pisteet alenisivat 0.5p ja täysiin pisteisiin täytyisi siis painaa Test-nappia uudelleen.

Pisteet näkyvät suorituskertojen alapuolella.
Pisteet näkyvät suorituskertojen alapuolella.

Oppimistavoitteet

Tämän demokerran päätteeksi

  • osaat avata komentorivin, navigoida kansiosta toiseen ja luoda uusia kansioita hakemistorakenteeseen
  • osaat käyttää editoria tekstin muokkaamiseen tehokkaammin
  • osaat luoda, kääntää C#-lähdekoodia ja ajaa C#-ohjelman, joka tulostaa tekstiä
  • osaat luoda graafisen C#-ohjelman, jossa on erilaisia muotoja
  • ymmärrät, millä tavalla (tekstimuotoinen) tieto tallennetaan tietokoneeseen

Demokerran päätteeksi sinulla pitäisi olla myös asennettuna kurssin työkalut, sillä kotoa käsin toimiminen edellyttää niiden asentamista. Apua työkalujen asentamiseen saat myös ohjauksissa ja kurssin postituslistalla (at) korppi.jyu.fi.

Tehtävä 0

Lue demojen pääsivulta luku akateeminen rehellisyys ja hyväksy että noudatat tällä kurssilla näitä periaatteita.

# PLUGINNAMEHERE

Tehtävä 1. Komentorivi

Avaa komentorivi (miten?), ja tee komentoriviä käyttäen tietokoneellesi (tai Agoran mikroluokassa U:-asemallesi) alla olevan mallin mukainen hakemistorakenne kurssin demovastauksia varten ja "tulosta" kurssit-kansion sisältö teht1.txt-tiedostoon demo1-kansioon. Alla sisennykset kuvaavat sitä, mikä on minkäkin alihakemisto. Lisää vinkkejä: kansioiden luominen ja kansion sisällön tulostaminen.

kurssit
  ohj1
    demot 
      demo1
      demo2
    ht
# tehtava1

Tehtävä 2. Tekstieditorin käyttäminen

Tässä tehtävässä harjoitellaan tekstieditorin käyttöä. Ota sekuntikellolla aika, kauanko juuri sinulla menee alla olevien ohjeiden mukaisen tekstitiedoston kirjoittamiseen. Ei saa huijata! Tämä on leikkimielinen mutta sitäkin vakavampi kilpailu.

Lue ensin tehtävä huolellisesti. Kun olet ensin sisäistänyt kaikki ohjeet, aloita tyhjästä tiedostosta ja käytä ainoastaan valitsemaasi tekstieditoria ja omia käsiäsi. Tekstieditori on esimerkiksi Sublime Text tai Notepad++. Word tai muu toimisto-ohjelma ei ole tekstieditori, eivätkä ne kuulu tämän kurssin sisältöön.

Saat käyttää kaikkia editorin ominaisuuksia, eli leikkaa-liimaa, etsi-ja-korvaa ja vastaavat. Hiirtä EI SAA käyttää lainkaan tehtävän aikana. Aloita ajanotto siitä, kun kirjoitat ensimmäisen merkin, ja lopeta siihen kun viimeinen merkki on kirjoitettu. Sisällön tulee olla:

1) Alussa eli ihan ensiksi tasan sata riviä, joilla jokaisella lukee:
    Harjoittelen tekstitiedoston tekemistä!
2) Sen jälkeen tasan yksi rivi, jossa on tasan 80 kpl miinusmerkkiä '-'
   eikä mitään muuta, ei myöskään välilyöntejä.
3) Sitten neljäkymmentä riviä, joissa on luvut ykkösestä
   neljäänkymmeneen kahdella numerolla siten että jokaisella rivillä 
   on yksi luku. 
   Näin alkaisi se pätkä:
    01
    02
    03
     ... ja näin se päättyisi:
    39
    40
4) Loppuun pitää tulla taas sellainen rivi, jossa on tasan 80 kpl
   miinusmerkkiä, kuten kohdassa 2.
Mitään muita rivejä tai tyhjiä rivejä ei saa olla.

Pysäytä ajanotto. Tallenna nimelle teht2.txt. Jälkeenpäin kirjoita vielä tiedoston loppuun (uudeksi viimeiseksi riviksi heti miinusmerkkirivin perään), kauanko sinulta meni. Ajan tulee olla muotoa mm:ss, missä mm on minuuttien määrä ja ss on sekuntien määrä. Tämän perään kirjoita vielä lyhyt kuvaus siitä, mitä ja miten teit tehtävän aikana, ja mitä tekstieditorin ominaisuuksia käytit. Tässä on vastaustiedostosi tähän tehtävään. Copy-pasteta vastaustiedoston sisältö alla olevaan TIMin vastauskenttään.

Tulos antaa itsellesi suuntaa nykyisestä tehokkuudestasi tekstin tuottajana suhteessa kurssikavereihin. Kurssin lopussa voi tehdä testin uudelleen, ja kokeilla onko tapahtunut kehitystä.

Kopioi kirjoittamasi tiedoston sisältö alla olevaan vastausalueeseen ja ole todella huolellinen että kaikki on kuten ohjeissa. Muuten ei anna 1p. Virheitä voi olla mm:

  • rivien lopuissa ylimääräisiä välilyöntejä
  • viivariveillä ei ole täsmälleen 80 miinusmerkkiä
  • aika on muotoa 3:45 eikä 03:45
  • aika-rivillä on jotakin muutakin kuin pelkkä aika
  • aika rivin jälkeen ei ole rivinvaihtoa
  • puuttuu aika-rivin jälkeen selitys siitä, miten toimittiin.
# tehtava2

Tehtävä 3. Ensimmäinen C#-ohjelma

Tehdään ensimmäinen C#-ohjelma: kirjoitetaan koodi, käännetään ja ajetaan se.

  1. Avaa haluamasi tekstieditori, esimerkiksi Notepad++ löytyy mikroluokista valmiina.
  2. Kirjoita editoriin Hello World -ohjelman koodi, joka löytyy monisteen luvusta 2.
  3. Tallenna tiedosto hakemistoon C:\MyTemp\OMATUNNUS\ohj1\demo1, laita OMATUNNUS-sanan paikalle oma käyttäjätunnuksesi, esimerkiksi anlakane. Huom! Yliopistolla ei U-levyltä saa ajaa ohjelmia, siksi pitää tallentaa tuonne.
  4. Siirry komentorivillä C:\mytemp\OMATUNNUS\ohj1\demo1 hakemistoon.
  5. Käännä ohjelma komentoriviltä ja aja se. Tarkat ohjeet komentoriviltä kääntämiseen löytyvät täältä. Tässä lyhyesti:
path=%WINDIR%\Microsoft.NET\Framework\v4.0.30319;%path% 
csc HelloWorld.cs
HelloWorld.exe

(Kannattaa myös lisätä csc-komento pysyvästi PATH-hakupolkuun.)

Tee tiedosto HelloWorld.cs, jonka alkuun olet lisännyt oman nimesi (tai kaikkien ryhmän jäsenten nimet) kommentteihin. Dokumentoinnin osalta ota mallia esimerkistä: 2.4.1 Dokumentointi

Kun saat tehtävät valmiiksi, kopioi .cs-tiedosto U-levylle.

Kopioi HelloWorld.cs tiedoston sisältö alla olevaan vastauskenttään ja paina aja nappia.

# tehtava3

Tehtävä 4. ASCII-koodi

M: 27. ASCII-koodi: Voi voi. Simolta on mennyt USB-tikku rikki. Tikulla on vain pieniä tiedonsirpaleita eikä mitään tietoa, mikä sirpale kuuluu mihinkin. Siellä oli paljon MP3-tiedostoja ja kaikkea turhaa... Simo tietää, että yhdessä elintärkeässä tiedostossa hänellä luki selväkielinen teksti isoilla kirjaimilla. Alla oleva bittijono näyttää lupaavalta, mutta mikä teksti siihen on tallennettu:

Taulukko 1:
01010100  01010101  01010100  01001011
01001001  01000101  01001100  01001101
01010011

Helpotetaan: seuraavassa on samat (taulukon 1) tavun mittaiset jonot 10-järjestelmän lukuina (saatu luettua taulukosta 3 eli 01010100 = 84 jne...), ja malliksi on yksi luku muutettu ymmärrettäväksi kirjaimeksi alla olevaan taulukko 2:een.

Taulukko 2:

binääri   dec   char  hex
==========================
01010100 = 84
01010101 = 85 => U    
01010100 = 84
01001011 = 75 

... täydennä vastaavuudet loppuun saakka ...
    heksadesimaali (`hex`) arvo täydennetään tehtävän lopussa, 
    kun olet ensin tehnyt tämän alkuosan

Tulkitse kaikki muutkin merkit, ja vastaa sitten seuraaviin kysymyksiin:

  • Mikä teksti tuohon kohtaan USB-tikun muistia on tallentunut?
  • Montako millimetriä Simo on painanut ohi yhdestä näppäimestä? Hänellä on samanlainen näppäimistö kuin sinulla.
  • Mikä binääriluku pitäisi olla viallisen kirjaimen kohdalla?

Luo tiedosto teht4.txt, jonka alussa on nimesi, sitten täydennetty taulukko 2 kirjainten vastaavuuksista ja vastaukset kysymyksiin.

Kopioi tuon tiedoston sisältö alla olevaan palautuskenttään.

Simo tietää, että hänen käyttämässään tiedostomuodossa merkeille on sovittu seuraavat koodit (pala ASCII-koodia):

Taulukko 3:

Desimaaliluku Binäärilukuna Vastaa merkkiä
-------------------------------------------
  32          00100000      [välilyönti]
  33          00100001        !
  46          00101110        .
  65          01000001        A
  66          01000010        B
  67          01000011        C
  68          01000100        D
  69          01000101        E
  70          01000110        F
  71          01000111        G
  72          01001000        H
  73          01001001        I
  74          01001010        J
  75          01001011        K
  76          01001100        L
  77          01001101        M
  78          01001110        N
  79          01001111        O
  80          01010000        P
  81          01010001        Q
  82          01010010        R
  83          01010011        S
  84          01010100        T
  85          01010101        U
  86          01010110        V
  87          01010111        W
  88          01011000        X
  89          01011001        Y
  90          01011010        Z

Kun olet tulkinnut kaikki merkit, ota asenna ja aja heksaeditori xvi32. Tuo löytyy mikroluokista valmiina (kirjoita komentorivillä xvi32). Kirjoita tekstieditorilla tiedosto (vaikka nimelle t4.txt), jossa on äsken katsomasi teksti tekstinä (siis ne tulkitsemasi merkit). Sitten avaa tämä tiedosto heksaeditorilla ja katso vastaavien merkkien arvot heksalukuina. Kirjoita ne tiedostoon teht4.txt kunkin kirjaimen vierelle. Yleensä tietotekniikassa käytetään heksalukuja silloin, kun halutaan puhua binäärisistä arvoista koostuvista kokonaisuuksista (kuten tässä esimerkissä kirjainten koodeista).

# tehtava4

Tehtävä 5. Tietojen tulostaminen

M: 2. Ensimmäinen C#-ohjelma: Kopioi aluksi 3-tehtävän tiedosto HelloWorld.cs tiedostoksi Mina.cs kirjoittamalla komentorivillä:

copy HelloWorld.cs Mina.cs

Avaa Mina.cs editoriin ja muuta luokan nimi HelloWorld nimeksi Mina. Sitten muuta ohjelma sellaiseksi, että se tulostaa sinun nimesi, kännykkäsi valmistajan ja operaattorisi nimen, kunkin eri riveille. Käännä ja aja ohjelma. Kopioi tiedoston Mina.cs sisältö alla olevaan vastauskenttään. Muista dokumentointi.

# tehtava5

vastaus katosi ja jostain ilmestyi oranssi reuna ihan niin kuin en olisi tehnyt koko tehtävää...

Painoithan varmasti Aja-painiketta? /AJL

Kokeiles refreshata. jos liikuit backillä? / vl

17 Jan 16 (edited 17 Jan 16)
17 Jan 16

Tehtävä 6. Lumiukko

M: 4. Yksinkertainen graafinen C#-ohjelma: Tämä tehtävä on tehtävä työasemassa, johon on asennettu .NET Framework 4 ja XNA Game Studio 4 (Agoran mikroluokat käyvät). Kopioi ensin itsellesi kurssin ohjeiden mukaan Jypeli-kirjasto. Tee ja aja mallin mukainen ohjelma, joka piirtää lumiukon. Muuta sitten ohjelma sellaiseksi, että se piirtää lumiukolle silmät, mielellään myös nenän ja suun. Huomaa, että alla näkyy vain osa ohjelmakoodista. Jos haluat nähdä koko ohjelmakoodin klikkaa Näytä koko koodi.

"ohjeiden" linkki ei toimi

12 Jan 17

Tehtävän voi suoraan TIMiin tai tekstieditorilla ja komentorivillä kääntämällä. Jos teet tekstieditorilla, niin kopioi allaolevaan laatikkoon ohjelmasta se osa, joka on Begin-aliohjelman sulkujen { } välissä (koska muu osa on alla olevassa koodissa jo valmiina, ks. Näytä koko koodi.

# lumiukko

Tehtävä Tauno T1 a

Tee Taunolla ohjelma, joka kääntää taulukon päinvastaiseen järjestykseen. Aloittaaksesi klikkaa Näytä Tauno.

# kaannataulukko

mitähän tässä ryssin kun pistettä ei tullut?

17 Jan 16

Tehtävä Tauno T1 b

Tee Taunolla ohjelma, joka vaihtaa joka toisen alkion pareittain keskenään. Eli taulukosta 1, 2, 3, 4 tulee taulukko 2, 1, 4, 3

# vaihdajokatoinen

V1. Ville

Tee Villestä kohta 1.

# V1

Tee myös Villestä tehtävä 2.1. Palauta tehtävä kirjoittamalla alla olevaan tekstilaatikkoon mitä opit ja mitä mieltä olit kerran Ville-tehtävistä ja auttoivatko Ville-tehtävät sinua yhtään. Muutama rivi riittää.

# VilleV1

B1. Alice

Ota ja asenna Alice 3.1 -ohjelmointiympäristö. (Huom. Vie noin 1 gigatavun.) Tee seuraavanlainen "ohjelma".

  1. Klikkaa setup scene neliötä pelinäkymän oikeassa alareunassa, jossa pelikentälle voi heitellä eri näköisiä olioita.
  2. Lisää pelikentälle henkilö, laita sille vaatteet ym. kuten haluat, anna nimeksi (name) ihminen.
  3. Lisää myös alien, nimeksi alien
  4. Ihmisen paikaksi (0.5, 0, 0), alienin paikaksi (-1, 0, 0).
  5. Palaa Edit code -tilaan (pelinäkymän oikea alareuna).
  6. Klikkaa hiiren vasemmalla alien-olion päällä ja laita se kääntymään 180 astetta raahaamalla Procedues-lootasta (vasen alareuna) turn-komento oikeaan lootaan (myFirstMethod).
  7. Laita alien kävelemään vähäsen ja sitten hän sanoo jotain.
  8. Ihminen kävelee alienin luokse ja sanoo jotain takaisin.
  9. Alien nousee avaruuteen.
  10. Ihminen kaatuu selälleen maahan.
  11. Esimerkki: http://www.youtube.com/watch?v=dEN-Gi1s25A

Tee vielä joku omakin "juttu" peliin, nauhoita pelisi Youtubeen (File -> Upload to Youtube) ja palauta sitten alle videosi URL:n, ja parilla rivillä mitä opit ja miltä Alice tuntui, mitä hyvää mitä huonoa, käyttäisitkö uudestaan. (ainakin 3.2:lla toimii???)

Huom Alicen uusimmassa versiossa ei ole enää Upload to Youtube toiminnallisuutta. Voit korvata Youtube-videon ottamalla kuvaruutukaappauksen Alicen Edit code näkymästä (esim. PrintScreen, Windowsin Snipping Tool) ja tallentamalla sen W-levyllesi. Tämän jälkeen kuva löytyy selaimella osoitteesta

http://users.jyu.fi/~OMATUNNUS/KUVANNIMI

Palauta tällöin URL kuvaruutukaappaukseen.

# b1alice

B2. Numeron siirtäminen

Yhtä numeroa siirtämällä tee yhtälöstä 62 - 63 = 1 tosi.

# b2numero

B3. Kurssin alkukysely

Vastaa kurssin alkukyselyyn (linkki on nyt korjattu). Tehtävän vastaukseksi kirjoita jokin kysymys, jonka haluaisit esittää luennoitsijalle. Parhaisiin vastataan luennoilla. Voit myös katsoa aikaisempia kysymyksiä ja vastauksia.

# b3alkukysely

G1-2. Luvut joiden neliöjuuri on kokonaisluku

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

# neliojuuret

These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.