Demo 1

Palauta viimeistään ma klo 11:59, läpikäynti ma klo 12-14 osoitteessa https://youtu.be/LxxQIA6XaeI.

Voit täydentää vastauksiasi määräaikaan mennessä.

Iso M-kirjain tehtävän yhteydessä tarkoittaa viittausta monisteen kohtaan, jossa asiaa alustetaan.

MOOC-opiskelijat: Muistathan lukea MOOC-yleisohjeet.

Mietin hieman palauttaa-sanaa. Tehtävien palauttaminen tarkoittaa ilmeisesti sitä, että ne ovat loppun asti tehtyjä eli niiden kohdalla on painettu Aja-nappia ja mahdollisesti Test-nappia, ja pisteet on saatu. Ei kai tehtäviä pidä näiden asioiden lisäksi mitenkään erikseen palauttaa johonkin tiettyyn paikkaan?

Juuri noin, tuo riittää. Osassa tehtävistä pisteet laitetaan itse käyttäen Set custom points -toimintoa. -AJL

17 Jan 21 (edited 17 Jan 21)

Tehtävien pisteistä

Jokaisella tehtäväkerralla ydintehtävät (tehtävät 1-6) sisältävät kurssin osaamistavoitteiden kannalta keskeiset asiat. Huomaathan että tähtitehtävät (joiden perässä on *-merkki) ovat pakollisia.

Lisäksi on myös Ville-tehtäviä (V=Ville), Tauno-tehtäviä (T=Tauno), bonus-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.

Onko tehtavat avoinna viela tekemista varten,vaikka deadline menee umpeen? Ei siis pisteita varten, vaan ihan omaksi iloksi harjoitteluun :)

Kyllä. -AJL

17 Jan 21 (edited 17 Jan 21)

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.

Tämä ei taida enää pitää paikkaansa. Aja-nappia voi huoletta painaa, jos et ole muuttanut ohjelmaa onnistuneen testiajon jälkeen, eivätkä pisteet häviä. -JuhoK

14 Jan 21

Tämän viikon osaamistavoitteet

Tämän demokerran päätteeksi

  • osaat avata komentorivin, navigoida kansiosta toiseen ja luoda uusia kansioita hakemistorakenteeseen
  • osaat käyttää tekstieditoria tekstin muokkaamiseen tehokkaammin
  • osaat luoda, kääntää C#-lähdekoodia ja ajaa C#-ohjelman, joka tulostaa tekstiä näytölle
  • 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 sekä kurssin postituslistalla ohj1k21 (at) korppi.jyu.fi tai TIM-keskustelusivulla.

Ryhmässä tekeminen

Mikäli teette tehtäviä ryhmässä, niin kirjautukaa kaikki TIMiin, niin saatte palautettua tehtävät kerralla kaikille ryhmäläisille. Ryhmän muiden jäsenten kirjautumisen voi tehdä yläreunassa olevaa omaa nimeä klikkaamalla; sieltä aukeaa valikko, jossa voi lisätä muita käyttäjiä. Lopuksi muistakaa kaikki kirjautua ulos.

Akateeminen rehellisyys

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

# Plugin1

Ajankäyttösi tällä viikolla (0.5 p.)

Työtuntien kirjaamisesta saa 0.5 demopistettä. Aseta pisteesi Set Custom Points -toiminnolla.

Demokerran päätteeksi kirjoita arvio tällä viikolla käyttämästäsi työmäärästä. Laske työmäärään mukaan kaikki tällä viikolla käyttämäsi aika: lähiopetukseen osallistuminen, oppimateriaalin lukeminen, demotehtävien tekeminen, luentovideon katsominen, demojen purkutilaisuuteen osallistuminen (maanantaina) ja niin edelleen. Voit päivittää lukua viikon edetessä, se voi helpottaa arvion tekemistä.

# d1tunnit

Tietoturvakäytäntö Agoran mikroluokassa

Itse tehtyjä ohjelmia voi yliopiston tietokoneilla käynnistää ainoastaan silloin, kun ne on tallennettu C:\MyTemp\Anonymous-kansioon. Luo tuollainen kansio ja käytä sitä kun työstät tehtävää. Kun saat tehtävät valmiiksi, kopioi tekemäsi tiedostot U-levylle, tai minne haluatkaan tekemäsi tehtävät arkistoida.

# tehtava1

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

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

(MacOS- ja Linux-järjestelmille on oma ohje.)

Valmistelut: Lataa ja asenna haluamasi tekstieditori sekä kehitystyökalut. Yliopiston mikroluokista Notepad++ -tekstieditori sekä Visual Studio löytyvät valmiina.

Tehtävä:

  1. Avaa asentamasi tekstieditori.
  2. Kirjoita (älä copy-pasteta) tekstieditoriin alla oleva Hello World -ohjelman koodi. Sama koodi löytyy myös monisteesta.
# helloeka
  1. Tallenna tiedosto nimellä HelloWorld.cs. Omalla tietokoneellasi tallenna tiedosto johonkin kansioon, jonka varmasti muistat. Yliopiston koneella tallenna tiedosto kansioon C:\MyTemp\Anonymous. MacOS:ssa ja Linuxissa luonteva paikka on käyttäjän omassa kansiossa, sinne voi tehdä alikansion vaikkapa nimeltä ohj1.
  2. Avaa komentorivi / Terminal / Pääte.
  3. Siirry komentorivillä edellisessä vaiheessa päättämääsi kansioon, yliopiston koneilla C:\MyTemp\Anonymous-kansioon, käyttäen cd-komentoja. (Tarkempi ohje täällä.)
  4. Käännä ohjelma komentoriviltä ja aja se käyttäen seuraavia komentoja. Paina kunkin rivin päätteeksi Enteriä.

Windows (cmd-komentorivi):

path=c:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\Roslyn;%path% 

csc HelloWorld.cs
HelloWorld.exe

Windows (Powershell-komentorivi):

$env:Path += ";c:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\Roslyn"

csc HelloWorld.cs
.\HelloWorld.exe

Linux:

mcs HelloWorld.cs
./HelloWorld.exe

MacOS:

mcs HelloWorld.cs
mono HelloWorld.exe

mono ./HelloWorld komento antaa vastaukseksi :cannot open ´ ./HelloWorld´: no such file or directory. missä menee vikaan?

VL: virkistäppä sivu, tuonne on korjattu Macin oikea muoto.

13 Jan 21 (edited 13 Jan 21)

Ilmoittaa “error CS5001: Program does not contain a static ‘Main’ method suitable for an entry point” vaikka kirjoitettu oikeassa muodossa.

Jotakin on kirjoitettu väärin. Jos laitat koodisi tänne Timiin niin voin katsoa. -AJL

13 Jan 21 (edited 13 Jan 21)

c:’ is not recognized as an internal or external command, operable program or batch file. Tälläistä koodia lyö kun yrittää kirjottaa ton rimpsun.

Ratkesikohan tämä ongelma jo? Katso että työkalut on asennettu ohjeen mukaisesti. -AJL

15 Jan 21 (edited 15 Jan 21)

error CS2001: Source file ‘C:.laukkarinen.cs’ could not be found. Tällainen virheilmoitus tulee. Pitäisi olla oikeassa paikassa…

Kirjoita valitsemassasi kansiossa ollessasi komento dir. Näkyykö siellä haluamasi kooditiedosto? -AJL

16 Jan 21 (edited 16 Jan 21)

dir komennolla lukee vaan HelloWorld.cs kansiossa mutta ei exeä. Mielestäni asensin oikein työkalutkin, kuten aiempaa kysyjää ohjeistettiin. Koitin noita PATH-juttuja, mutta en niitä oikein ymmärtänyt

Jos exe-tiedostoa ei näy, niin et ole tehnyt käännöstä (csc-alkuinen komento) tai se on epäonnistunut. -AJL

17 Jan 21 (edited 17 Jan 21)

Ilmeisesti Linuxissa toimiva komento on muotoa “./HelloWorld.exe” Toisin kuin siis ohjeissa oleva: “./HelloWorld” Tämä ainakin Linux Mint (v. 19-20). (Komennot ilman "" merkkejä siis)

JuhoK: Oikeassa olet, kokeilin Ubuntulla ja korjasin ohjeen. mcs-ohjelma tekee .exe-tiedoston samalla tavalla kuin csc.

17 Jan 21 (edited 21 Jan 21)

Lisää kooditiedoston alkuun, dokumentaatiokommenttien @author-osaan oman nimesi (tai kaikkien ryhmän jäsenten nimet) kommentteihin. Kirjoita myös muu dokumentaatio; ota mallia esimerkistä: 2.4.1 Dokumentointi

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

# tehtava3

Tehtävä 2*. Tietojen tulostaminen

M: 2. Ensimmäinen C#-ohjelma

Valmistelut: Kopioi aluksi Hello World -tehtävän tiedosto HelloWorld.cs tiedostoksi Mina.cs kirjoittamalla komentorivillä:

copy HelloWorld.cs Mina.cs

Vastaava komento Mac ja Linux käyttöjärjestelmillä:

cp HelloWorld.cs Mina.cs

Tehtävä: Avaa Mina.cs editoriin ja muuta luokan nimi HelloWorld nimeksi Mina. Muuta ohjelma sellaiseksi, että se tulostaa sinun nimesi, kännykkäsi merkin ja mallin, ja operaattorisi nimen, kunkin eri riveille. Käännä ja aja ohjelma.

Palautus: Kopioi tiedoston Mina.cs sisältö alla olevaan vastauskenttään. Muista dokumentointi.

# tehtava5

Tehtävä 3*. Lumiukko

Mikroluokissa käyttäjien tulee tällä hetkellä asentaa Jypeli itse, käyttäjä- ja konekohtaisesti. Lataa ja asenna tällöin Jypeli itse.

M: 4. Yksinkertainen graafinen C#-ohjelma

Miten luodaan projekti Visual Studiolla

Muuta alla oleva ohjelma sellaiseksi, että se piirtää lumiukolle silmät, nenän ja suun. Huomaa, että alla näkyy vain osa ohjelmakoodista. Jos haluat nähdä koko ohjelmakoodin klikkaa Näytä koko koodi.

Palautus: Tehtävän voi tehdä suoraan alla olevaan laatikkoon ja painaa Aja.

Voit halutessasi tehdä tehtävän Visual Studiossa käyttäen FysiikkaPeli-projektimallia. Älä käytä tässä tehtävässä uutta Fysiikkapeli Farseer-projektimallia. Jos teet Visual Studiossa, niin kopioi alla olevaan 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.

Jos teit Visual Studioon Fysiikkapeli Farseer-projektin, niin tee kasvon osista GameObject-olioita. Tällä tavoin ne pysyvät pään sisällä eivätkä pullahda ulos. -JuhoK

14 Jan 21 (edited 14 Jan 21)

Anna itsellesi tehtävästä pistemäärä väliltä 0-1 (rasti kohtaan Set custom points). Jos teit tehtävän mielestäsi täysin oikein, 1 piste, puoliksi oikein 0.5 pistettä jne.

# lumiukko

Valinnainen: Lisätehtävä lumiukkoon (ei demopisteitä)

Tehtävä 4. Komentorivi

Lue ensin kansioiden luominen ja kansion sisällön tulostaminen.

  1. Tee komentoriviä käyttäen tietokoneellesi (tai Agoran mikroluokassa U:-asemallesi) alla olevan mallin mukainen hakemistorakenne kurssin demovastauksia varten. Sisennykset kuvaavat tässä sitä, mikä on minkäkin alihakemisto.
kurssit
  ohj1
    demot 
      demo1
      demo2
    ht
  1. Avaa komentorivi (miten?), ja kopioi tehtävässä 1 tekemäsi HelloWorld.cs sille kuuluvaan paikkaan tekemässäsi hakemistorakenteessa seuraavasti. Siirry ensin kansioon jossa HelloWorld.cs on. Tämän jälkeen kopioi tiedosto käyttämällä komentoja:

Windows (sovella tarvittaessa komennon lopussa olevaa kansion polkua):

copy HelloWorld.cs U:\kurssit\ohj1\demot\demo1

Mac/Linux (sovella tarvittaessa komennon lopussa olevaa kansion polkua, korvaa kayttaja-sana oikealla käyttäjänimelläsi):

cp HelloWorld.cs /Users/kayttaja/kurssit/ohj1/demot/demo1
  1. "Tulosta" kurssit-kansion sisältö teht4.txt-tiedostoon kirjoittamalla U:-aseman juurikansiossa (tai siinä itse valitsemassasi kansiossa, johon kurssit-kansion loit) dir kurssit /s > u:\kurssit\ohj1\demot\demo1\teht4.txt. Jälleen, mikäli teit kurssit-kansion johonkin toiseen sijaintiin, sovella ohjeessa olevaa kansion nimeä. Macilla ja Linuxilla komento on ls -R kurssit > kansio/teht4.txt, laita tässä kansio-sanan kohdalle kurssit/ohj1/demot/demo1.

  2. Kopioi tekstitiedoston sisältö tehtävän vastaukseksi.

pitäiskö ensin luoda sellanen teht4.txt tiedosto. Cmd sanoo että käyttö estetty tuon pulun jälkeen

Jos yrität tehdä tiedostoa U:-asemalle, niin kyseistä asemaa sinulla ei varmaankaan ole. Vaihda komennon lopussa olevaa kansion polku. -AJL

17 Jan 21 (edited 17 Jan 21)
# tehtava4_2

Uusille pääte käyttäjille.

Toinen komento jos haluaa kansio struktuuria selventää itselleen, on “tree” komento.

Pitäisi toimia myös Windows maailmassa.

12 Jan 21 (edited 12 Jan 21)

Tehtävä 5. 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 pelkkää näppäimistöä käyttämällä.

Lue ensin tehtävä huolellisesti. Kun olet ensin sisäistänyt kaikki ohjeet, aloita tyhjästä tiedostosta ja käytä ainoastaan valitsemaasi tekstieditoria. 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. 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 ja tallenna tiedosto nimellä teht5.txt. Jälkeenpäin kirjoita vielä tiedoston loppuun (uudeksi viimeiseksi riviksi heti miinusmerkkirivin perään), kauanko sinulta meni. Ajan tulee olla muotoa mm:ss (minuutit ja sekunnit), esimerkiksi 03:45.

Tämän perään kirjoita vielä lyhyt kuvaus siitä, mitä ja miten teit tehtävän aikana, ja mitä tekstieditorin ominaisuuksia käytit (teksti pitää rivittää itse enterillä, jos vastaus menee yli laatikon oikean reunan). 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. Kurssin lopussa voi tehdä testin uudelleen, ja kokeilla onko tapahtunut kehitystä.

Anna itsellesi pistemäärä väliltä 0-1 (rasti kohtaan Set custom points). Jos teit tehtävän mielestäsi täysin oikein, 1 piste, puoliksi oikein 0.5 pistettä jne.

# tehtava2

Tehtävä 6. 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 teht6.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, kirjoita selkokielinen teksti (kirjoitusmerkein) tekstieditorissa ja tallenna se tiedostonimellä t6-vainteksti.txt.

Tehtävänä on tutkia merkkejä heksaeditorilla. Näet merkkien heksalukuarvot esim. Sublime Textin Hex Viewer -pluginilla (ks. ohje alla), Notepad++:n HEX-editor lisäosalla, tai xvi32:lla (löytyy mikroluokista; kirjoita komentorivillä xvi32).

Sublime Text Hex Viewer -plugin asentaminen Sublime Textiin: Asenna Sublime Text -editori, ja käynnistä se. Sitten paina Ctrl + Shift + P (Mac: Shift + cmd + P), ja kirjoita "Install package", paina Enter, sitten kirjoita "Hex viewer" ja paina Enter. Käynnistä Sublime Sublime uudestaan. Avaa sillä tekemäsi teht6-vainteksti.txt, sitten paina Ctrl + Shift + P ja kirjoita "Toggle hex view", ja paina enter. Nyt näet alkuperäisen tekstin oikealla ja heksanäkymän vasemmalla (alkaa 5455 jne.)

Notepad++ HEX-editor: Ylävalikosta Plugins/Plugins Admin - valitse HEX-Editor - napsauta Install Asennuksen jälkeen HEX-Editor aukeaa ylävalikosta Plugins/HEX-Editor/View in HEX.

Avaa tiedosto heksaeditorilla ja katso merkkien arvot heksalukuina. Kirjoita vastaustaulukkoon kunkin merkin arvo heksalukuna.

Yleensä tietotekniikassa käytetään heksalukuja silloin, kun halutaan puhua binäärisistä (2-lukujärjestelmän) arvoista koostuvista kokonaisuuksista. Tässä tapauksessa oli kysymys kirjoitusmerkkien arvoista ja siitä, missä muodossa ne tallennetaan tietokoneen muistiin.

Notepad++:aan saa myös heksaeditorin: - valitse ylävalikosta Plugins/Plugins Admin - valitse HEX-Editor - napsauta Install Asennuksen jälkeen HEX-Editor aukeaa ylävalikosta Plugins/HEX-Editor/View in HEX.

13 Jan 21
# tehtava4

Tehtävä Tauno T1 a (0.5p)

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

Saadaksesi tehtävästä 0.5 pistettä, paina vastauslaatikon alareunasta Aja sekä Test.

# kaannataulukko

Points-kohtaan tulee ajamisen ja Test-napin painamisen jälkeen lukema 0,05 eikä 0,5. Kuuluisikohan siinä lukea 0,5 vai ei?

VL: ensinnäkin kuuluu lukea desimaalipisteellä ja sitten väärästä vastauksesta ei paljon pisteitä heru :-)

14 Jan 21 (edited 14 Jan 21)

Miksi Tauno T1a tehtävässä ajamisen jälkeen luvut ovat eri kuin ne, joilla ratkaisin tehtävän?

VL: Juuri siksi :-) Algoritmin (=ohjelman) tulee selvitä millä luvuilla tahansa vastaavasta tilanteesta. Jos se toimisi vain tietyillä luvuilla, ei ohjelma olisi ohjelman arvoinen. Eli tuon pitää pystyä kääntämään mikä tahansa 6 paikkainen taulukko päinvastaiseen järjestykseen.

17 Jan 21 (edited 17 Jan 21)

Tehtävä Tauno T1 b (0.5p)

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

# vaihdajokatoinen

Tässäkin ajon jälkeen vastauksessa näkyvät eri luvut kuin tehtävässä.

Algoritmisi tulee toimia millä tahansa ennalta määrittelemättömällä aineistolla (ks. Vesan vastaus edellisessä). Test-nappulaa painettaessa algoritmiasi testataan satunnaisella aineistolla. Jos koodi ei pysty käsittelemään tällaista satunnaista aineistoa, TIM näyttää sen virheenä. -AJL

17 Jan 21 (edited 17 Jan 21)

Minullakin on ongelma Taunon tehtävissä. Ohjelma väittää, etteivät kirjoittamani numerot ole oikeita, ja esittää omia, joita ei tehtävässä esiinny. Esimerkiksi tehtävässä T1, kun suoritan tehtävän ohjeiden mukaisesti, näyttää ohjelma testissä punaista ja kertoo, että oikea vastaus on 9,5,2,33,44,55. Nämä arvot laittaessani ohjelma vaatii jotain muuta.

17 Jan 21

V1. Ville

Tee Villestä kohta 1.

# V1

Villessä tulee kysymyslaatikko esille vain ensimmäinessä kysymyksen kohdalla, sen vastattuaan ja suljettuaan ei kysymyslaatikko enää ilmesty, vaikka kuinka painaa “Seuraava”. Mikähän voisi olla ongelma? [Selaimeni Firefox Windows 10:ssä))

18 Jan 21

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ää.

Tässä lyhyt ohje Villeen kirjautumiseen:

  1. Siirry osoitteeseen https://ville.utu.fi?c=wjjvAXbZHKZX
  2. Anna kurssiavain ohj1cs
  3. Kirjaudu HAKA-kirjautumisen avulla
# VilleV1

Ei näy villessä yhtään kurssia ja tehtävää mitä vois suorittaa…

13 Jan 21

Sama juttu. Itsellä Ville palvelu on tyhjä.

VL: Kokeilkaas nyt uudelleen, tuolla on uusi linkka ja voimassaoloa on jatkettu.

14 Jan 21 (edited 14 Jan 21)

16.1.2021 Villessä ei näy kursseja. Sama tilanne kuin aikaisemmalla kommentoijalla. Villeen kirjautuneen käyttäjät voivat lisätä itse kurssin koodin avulla. Kurssin lisäämisessä tarvitaan Registration code. Testasin ohj1cs-kurssiavainta, ei toiminut.

17.1.2021 Nyt kurssi näkyy Villessä

16 Jan 21 (edited 17 Jan 21)

Mitä kohtaa materiaalista pitäisi opiskelle Villen 2.1. kohtaa varten? Kysymykset aivan hepreaa opiskelemaani aineistoon verrattuna.

17 Jan 21

Hups, olinkin hypännyt tehtävään 2.3. dikä 2.1. Kaikki Villessä ok…

17 Jan 21

B1. Kurssin alkukysely ja kysymys opettajille

Vastaa kurssin esitietokyselyyn. (0.5 p.)

Kirjoita kurssin QA-sivulle halumasi otsikon alle jokin kysymys, jonka haluaisit esittää luennoitsijalle (0.5 p.). Tehtävän vastaukseksi kopioi kysymystekstisi tähän alle. Jos teit tämän jo demossa 0, niin kopioi sieltä kysymyksesi tähän. Katso kuitenkin ensin aikaisempia kysymyksiä ja vastauksia, josta saattaa jo löytyä vastaus kysymykseesi. Pyrimme vastaamaan kaikkiin esitettyihin kysymyksiin.

Näitä otsikoita ei taida vielä olla näkyvissä tämän kevään kurssille?

13 Jan 21

Hyvä huomio. Nyt lisätty. -AJL

13 Jan 21
# b3alkukysely

Linkki ohjasi Korppiin ja siellä ei näkynyt kyselyä….Muistan kyllä vastanneeni esitietokyselyyn

16 Jan 21

B2. Scratch (1 p.)

Scratch on varsin suosittu ohjelmointiympäristö erityisesti nuorten ja koululaisten kohdalla. Vaikka Scratchissa ei juuri kirjoiteta itse koodia, ovat käytettävät käsitteet melko samoja kuin C#:ssa.

Mene scratch.mit.edu ja tee klassinen kaksinpelattava juoksupeli (a.k.a. näppäimistön rämpytys). Idea: kaksi pelaajaa on ikkunan vasemmassa reunassa. Toinen pelaaja liikkuu esimerkiksi välilyönnistä, ja toinen vaikkapa jostakin nuolinäppäimestä. Se kumpi saavuttaa maaliviivan ensin on voittaja.

Anna itsellesi pistemäärä väliltä 0-1 (rasti kohtaan Set custom points). Jos teit tehtävän mielestäsi täysin oikein, 1 piste, puoliksi oikein 0.5 pistettä jne.

Video ei toimi

13 Jan 21

Joo, video oli poistettu :(. -AJL

13 Jan 21

Scratchiin kirjautuminen mahdollistaa projektin jakamisen (Share) linkkinä. Mikäli et halua kirjautua Scratchiin, niin ota projektistasi (skripteistäsi) kuvaruutukaappaus, tallenna se jollekin verkkosivulle, ja palauta linkki kyseiseen kuvaan. Voit siis valita kumpaa palautusmetodia käytät.

Palautus linkkinä, kun Scratch-projekti on jaettu

# b2scratch

Voinko antaa itselleni 1 pisteen, jos tein niin oikein ja hyvin kuin pystyin ?

Voittajan julistaminen vielä puuttuu, muuten on OK. -AJL

Saisko vinkkejä miten sen käytännössä vois tehdä.. en oikein tiedä mitä toimintoa scrtachistä voisi siihen käyttää

15 Jan 21 (edited 18 Jan 21)

Palautus kuvaruutukaappauksena

# b2scratch-kuva

B3. Numeron siirtäminen

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

Anna itsellesi pistemäärä väliltä 0-1 (rasti kohtaan Set custom points). Jos teit tehtävän mielestäsi täysin oikein, 1 piste, puoliksi oikein 0.5 pistettä jne.

# b2numero

G1-2. Luvut joiden neliöjuuri on kokonaisluku

Tee C#-ohjelma, joka tulostaa kaikki ne kokonaisluvut jotka ovat pienempiä (tai yhtäsuuria) kuin 1000 ja joiden neliöjuuri on ko­konaisluku. Vinkki: Kirjoita ennen koodaamista käsin lista kokonaislukuja järjestyksessä ja lisäksi näiden lukujen neliöjuuria. Tätä sanotaan testilähtöiseksi kehitykseksi (Test Driven Development, TDD).

# neliojuuret

Kyseessä Gurutehtävä, joten oletan että ohjelman on itse laskettava/etsittävä kyseiset luvut? Vai riittäkö se, että listaa “manuaalisesti” luvut ja laittaa ohjelman manuaalisesti tulostamaan oikean syötteen? Tätäkun ei ainakaan suoraan tehtävänanto poissulje.

VL: joo, ei naapurinpojan vastaukset riitä Guru-tehtävään. Pitää toimia siten että sitä yhtä ainutta lukua muuttaa (tietysti mieluiten vakiona) ja se tulostaa silloin sille kuuluvat. Ohjelmoijan velvollisuus ei ole koskaan yrittää leikkiä näsäviisasta ja tehdä vaan mitä pitää. Pitää opetella miettimään tehtävän määrityksen ohi millä oikeasti on hyötyä. Muuten tulee Susia :-)

13 Jan 21 (edited 13 Jan 21)

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