Demojen palauttaminen verkkoon

1. Miksi?

Demot laitetaan verkkoon, jotta kaikkien oppilaiden tehtävien tarkastamiseen olisi samat mahdollisuudet.

Lisäksi oppilaille tulee näin enemmän "mallivastauksia" mahdollisista tavoista ratkaista tehtävät.

Tehtävät tulee olla siirretty verkkoon luentoviikkoina torstaina klo 12.00 mennessä. Tämän jälkeen ajetaan ohjelma, joka hakee jokaisen oppilaan ratkaisut ja laittaa ne verkkoon kurssin sivujen alle. Samalla lasketaan tehtävistä tulevat pisteet.

Luennoitsija tarkistaa satunnaisesti valituilta oppilailta satunnaisesti valitut tehtävät. Tietyillä demokerroilla voidaan tarkistaa kaikki tehtävät. files.txt-tiedostoon merkittyjä pistemääriä voidaan vähentää, jos pisteitä on annettu aiheettomasti tai vastauksessa on selkeitä puutteita. Tällöin vähennyksen yhteydessä merkitään koodiin perusteet, miksi pisteitä on vähennetty.

Mahdollinen "huijaaminen" on verrattavissa lunttaamiseen.

Jokainen siirtää omat tehtävänsä. Jos joku tehtävä on tehty yhteistyössä jonkun toisen kanssa, on tästä oltava selvä huomautus ratkaisutiedostossa, käytännössä tehtävän kommenteissa.

2. Miten?

Jotta tehtävät olisivat koneellisesti siirrettävissä, pitää sopia tietty "syntaksi" mistä ja miten harjoitusten, eli demojen, vastaukset noudetaan.

Jokainen laittaa tehtävastaukset WWW-palvelimelle (Ei Optima, vaan jokin julkisesti näkyvä hakemisto). Käyttäkää mieluiten yliopiston www-palvelinta. Valitulle sivulle tehdään vuorossa olevan demon alihakemisto. Esim. 'demo1' (Windows saattaa näyttää tämän 'Demo1' -älä huolestu), demo2, demo3 jne.

Korpissa on OHJ-kurssin kohdalla kenttä Demojen WWW-hakemisto (tästä eteenpän DemoWWW), jonne ko. www-palvelimen sivun osoite syötetään. Täyttäkää tämä kenttä mieluiten niin, että menette toisella selaimella siihen paikkaan josta teidän demonne tulevat löytymään. Eli paikkaan, jonka alle jatkossa tulee hakemistot demo1, demo2 jne.... Sitten Copy-Paste -tekniikkalla siirrätte URL:in Korppiin. Muuten tulee liikaa kirjoitusvirheitä.

Esimerkki:

www.cc.jyu.fi

Matti Mallikas käyttää palvelinta www.cc.jyu.fi. Hänen tunnuksensa on 'mallikas'. Hän on tehnyt www-hakemistoon ohj-hakemiston ja salasana-hakemiston, jonne aikoo demovastaukset laittaa. Salasanaksi Matti valitsi 'nalle987'.

Määritetään Korpin DemoWWW-kenttä seuraavasti: 'http://www.cc.jyu.fi/~mallikas/ohj/nalle987'

Nyt Matilla pitää olla tehtynä seuraavanlainen alihakemisto: '~/www/ohj/nalle987' -josta hakurobotti hakee demovastaukset. Hakemistoon '~/www/ohj/nalle987' Matti tekee hakemiston 'demo1'. Tämä on hakemisto, josta ensimmäisen demon hakurobotti noutaa. Eli hakemistossa '~/www/ohj/nalle987/demo1' pitää olla demovastaukset ja files.txt, josta lisää seuraavassa.

2.1 files.txt

Tehtävät saa tehdä minkä nimiseen tiedostoon haluaa. Jotta tehtävien pisteet olisi helppo laskea ja tehtävät saataisiin siirrettyä verkkoon automaattisesti, tekee jokainen tehtävätiedostojen kanssa samaan hakemistoon seuraavan syntaksin mukaisen tiedoston, jonka nimi on AINA files.txt:

=--------------------
= Demo 1
=--------------------
kerho.txt = [T1-4:4] - kerho-ohjelman suunnitelma
ope.txt = [T5-6:2] - arvosanatehtävä
nimi.txt = [T7:1] - etu- ja sukunimen vaihtaminen
kavely.txt = [T8:0.5] - kävelyohjeet, vain jälkimmäinen kohta
nelio.java = [TB1:1] - lukujen neliöt
kissat.java = [TG1,3:2] - kissojen määrän laskeminen, hyvin toimii!
kissat2.java = [TG2:0.5] - keskimäinen tehtävä ei mennyt yhtä hyvin

Otsikko-tyypit merkitään:
'tyhjä' = 'muu informaatio' , esim.

=--------------------
= Demo 1
=--------------------

Tehtävät merkitään seuraavalla tavalla:
'tiedoston nimi' = 'mahdolliset tehtäväpisteet' - 'kommentit' , esim.

nimi.txt = [T7:1] - etu- ja sukunimen vaihtaminen
kavely.txt = [T8:0.5] - kävelyohjeet, vain jälkimmäinen kohta
nelio.java = [TB1:1] - lukujen neliöt

Selitykset:

kavely.txt    - vastaustiedoston nimi, voi olla myös alihakemistossa
                esim:  ht/kavely.txt
[T            - aloittaa tehtävän numeron ja pistemääräkentän
8             - tehtävän numero, voi olla esim. 1-4  2,3  G2-3
:             - erottaa tehtävän numeron pistemäärästä
0.5           - tehtävästä itselle annettu pistemäärä.  Huom!  Desimaalipiste!!!
]             - lopettaa tehtävän numeron ja pistemäärän
- kävely...   - kommentti tehtävälle, esim. mikä vikana

Tiedostoon voi laittaa enemmänkin kommentteja, mm. jos tehtävät on tehty yhteistyössä useamman henkilön kesken, voi tiedosto alkaa vaikkapa:

=--------------------
= Demo 1
= Vesa Lappalainen & Markku Vire
=--------------------
kerho.txt = [T1-4:4] - kerho-ohjelman suunnitelma

Tiedostoon voidaan lisätä myös tarpeellisia aputiedostojen nimiä ilman että niille on pakko antaa tehtävämääritettä [T...].:

=--------------------
= Demo 1
=--------------------
kerho.hlp = - ohjelman avustustiedosto

files.txt voidaan tehdä millä tahansa editorilla. Voidaan käyttää myös ohjelmaa DemoWWW, joka pitää huolen oikeasta syntaksista.

2.1.2 files.txt:n syntaksi

Edellinen tarina syntaksin avulla.

1) Jokainen files.txt:n rivi tarkoittaa tiedostoa, jollei se ala = tai $ merkillä
2) = merkin jälkeinen osa rivistä on muuta informaatiota
3) Tyhjät rivit ovat kommenttirivejä
4) Rivi =--- muuttuu HTML-versiossa <hr> -komennoksi
5) Ylimääräiset välilyönnit poistetaan
6) Yhden rivin syntaksi:
     [Tiedoston_nimi] ["=" [ "[T" Tehtävännumero ":" tehtävästä_ansaittu_pistemäärä "] -"   ] kommentti ]

   missä
     Tiedoston_nimi                 - vastaustiedoston nimi, voi olla myös alihakemistossa
                                      esim:  ht/kavely.txt
     Tehtävännumero                 - tehtävän numero, voi olla esim. 1-4  2,3  G2-3
     tehtävästä_ansaittu_pistemäärä - tehtävästä itselle annettu pistemäärä.  Esim. 0.8
                                      Huom!  Desimaalipiste!!!
     kommentti                      - vapaamuotoinen kommentti esim. tehtävän tasosta

2.1.3 esimerkki files.txt:n virheellisestä syntaksista

Syntaksista pitää olla tarkka, kuten seuraava esim. Matti Mallikkaalta paljastaa. Matti oli tehnyt usean tunnin gurutehtävää, mutta merkannut files.txt:n hieman väärin.

=--------------------
= Demo 4
=--------------------
guru.txt = [GT1-4:4] - guru-tehtävän upea ratkaisu

...kun hänen olisi pitänyt merkata demopiste-syntaksi oikein, sillä vain [T*:n] muoto tuottaa pisteitä. Muut muodot eivät ole virheitä tai näin siis hakurobotti luulee. Oikea ratkaisu olisi näyttänyt tältä:

=--------------------
= Demo 4
=--------------------
guru.txt = [TG1-4:4] - guru-tehtävän upea ratkaisu

Matti Mallikas toimi ohjeen mukaan. Virheen takia häneltä vaadittiin poistettavaksi yksi piste, koska kurssinpitäjä oli joutunut urakoimaan vastauksen uudelleen hakemiseksi. Nyt files.txt näytti tältä:

=--------------------
= Demo 4
=--------------------
guru.txt = [TG1-4:4] - guru-tehtävän upea ratkaisu
= [TV1:-1] - Ei siirtynyt koska mokasin demopiste-syntaksin kanssa

2.2 Tiedostojen siirto

Oletetaan seuraavassa että käyttäjällä on people.cc.jyu.fi-koneessa tunnus minurmin. Tällöin hänen kotisivunsa ovat osoitteessa http://people.cc.jyu.fi/~minurmin/. Käyttäjä on määritellyt DemoWWW:n seuraavasti: http://people.cc.jyu.fi/~minurmin/demot/salainen, jossa 'salainen' on "salasana".

Ensimmäiset demot (demo1) hän siirtää hakemistoon http://people.cc.jyu.fi/~minurmin/ohj/demot/salainen/demo1/
Mainittuun hakemistoon hänen tulee siirtää kaikki vastaustiedostot ja files.txt.

Nyt demot näkyvät osoitteessa http://people.cc.jyu.fi/~minurmin/ohj/demot/salainen/demo1/, josta siirtoautomaatti käy ne noutamassa torstaina klo 12:00.

Siirto voidaan tehdä millä tavalla tahansa ja mistä tahansa. Suositeltava tapa on SFTP. Tiedostoja ja hakemistoja siirrettäessä on tarkastettava, että käyttöoikeudet ovat riittävät (esim. ohj-hakemistolle ja salasana-hakemistolle 711 ja tiedostoille 755).

2.3 DemoWWW

Tiedosto files.txt ja myös tiedostojen siirto (ei toimi Chydenius-instituutissa) voidaan tehdä ohjelmalla DemoWWW.exe. Käyttöohjeet voi lukea tiedostosta DemoWWW.html. DemoWWW:n voi käynnistää esim. komentoriviltä antamalla komennon: DemoWWW .

2.4 Entä näkevätkö muut oppilaat demoni ennen palautusaikaa?

Ratkaisu on keksiä itselleen "salasana". Edellisessä esimerkissä "salasana" oli "salainen". Tämä "salasana" kirjoitetaan osaksi valittua www-sivua. Korppiin pitää siis oppilaan lisätietojen kohdalta löytyvään DemoWWW kenttään kirjoittaa valittu osoite (vesal -tunnuksella ja Agoranetin palvelimella Korpin DemoWWW-kenttä olisi esimerkiksi http://people.cc.jyu.fi/~minurmin/ohj/demot/salainen). Kirjoittamisessa on oltava huolellinen!

Jos lisäksi demohakemiston juuressa on olemassa tiedosto index.html (näkyy www-palvelimella http://people.cc.jyu.fi/~minurmin/ohj/demot/index.html), niin toiset oppilaat eivät pääse katsomaan vastauksia elleivät he arvaa tuota "salasanaa". Salasanassa saa käyttää vain tiedoston nimeen kelpaavia merkkejä. Korpissa olevan tiedon perusteella automaatti osaa kuitenkin hakea vastaukset oikeasta paikasta.

Harjoitustehtävien, eli demojen, "salauksella" piilottettavat sivut eivät myöskään näy Internetiä tutkiville hakuroboteille (www.google.com, www.altavista.com, sekä lukuisat muut).

3. Tarkista siirron onnistuminen

Muista käydä kokeilemassa selaimella, että kaikki tiedostot ovat oikein siirtyneet! Jos sait siirrettyä tiedostot, mutta selain ei näytä niitä vaan antaa Permission denied-tyyppisen virheilmoituksen, käyttöoikeudet eivät ole riittävät. Hakemiston käyttöoikeudet voi säätää oikein pääteyhteyden komentorivillä komennolla chmod 711 hakemiston_nimi ja tiedoston vastaavasti chmod 755 tiedoston_nimi.

Erityisesti ole huolellinen tiedostojen kirjoitusasun kanssa.

Isoilla ja pienillä kirjaimilla on eroa!

Voit kokeilla demojen siirron onnistumista ja pisteiden laskentaa testaussivulla (huom. koekäytössä, ei laajamittaisesti testattu).

3.1 Entä jos siirto epäonnistui kohdaltani

Jos hakuautomaatti ei löydä jotakin files.txt:ssä mainittua tiedostoa, tästä tulee henkilökohtainen ilmoitus sähköpostilla. Vian voi vielä korjata, mutta se maksaa puoli demopistettä.

4. Vaihtoehtoisesti palautus sähköpostilla

Jos käytettävissäsi ei ole omaa julkista WWW-hakemistoa tai et missään tapauksessa halua demojasi julkiseen WWW-hakemistoon, voit palauttaa demot sähköpostilla osoitteeseen minurmin@cc.jyu.fi. Tällöin viikon demot ja vastava files.txt on pakattava yhteen ZIP- tai JAR-pakettiin liitetiedostoksi (siis ei yksittäisiä kooditiedostoja liitetiedostoiksi!). Palautusaika on WWW-palautuksen tapaan viimeistään torstaina klo 12.00.

Käytäthän sähköpostissa kuvaavaa otsikkoa, esim. [ohj2] demo 1.

files.txt on oltava mukana, vaikka demot palautettaisiin sähköpostilla. Demopisteet lasketaan tiedostoon merkittyjen tietojen mukaan. Tiedostot siirretään kurssin kotisivujen alle muiden demovastausten joukkoon.

© Miika Nurminen ()
Alkuperäinen teksti: Vesa Lappalainen 21.2.2002, Päivittänyt Matti Katila 25.2.2002, vl korjannut GKO:ta varten 20.8.2002 ja ohj 2:sta varten 27.12.2002. MN päivittänyt kesän 2004 GKO-kurssia ja kevään 2005 ohj-kurssia varten.
Tyylitiedosto © Tommi Lahtonen & Petri Heinonen.
Viimeksi päivitetty: 2005-02-09