-
Notifications
You must be signed in to change notification settings - Fork 1
Viikon 2 kotitehtavat
Tässä olevat tehtävät tehdään etukäteen. Laskareissa tehdään lisäksi paikanpäällä ryhmissä täällä
HUOM: tällä ja tulevilla viikoilla tehtäviä ei palauteta vaan ne käsitellään ryhmittäin laskaritilaisuuden alkupuolella.
Tehtävät 1 ja 2 käsittelevät viikon 2 kalvojen 17-44 asiaa. Tehtävissä 3-4 tutustutaan komentorivin käyttöön. Tehtävissä 5-7 tehdään viikon 1 laskareista tuttuja yksikkötestejä.
Muut tehtävät (ellei tehtävässä muuta sanota) palautetaan tulemalla paikalle laskaritilaisuuteen.
Kurssin ohjelmointiin liittyvät tehtävät palautetaan TMC:n kautta. Huom: Toisin kuin kurssilla muilla ohjelmointikursseilla, TMC ei tarkasta tämän kurssin tehtävien oikeellisuutta. Palauta tehtävä palvelimelle siinä vaiheessa kun tehtävä on mielestäsi valmis. Osa tehtävistä tarkastetaan myöhemmin.
TMC-tehtävien deadline on perjantai 11.11. klo 23:59
Jos et ole vielä asentanut TMC:tä, tee asennus seuraten Ohjelmoinnin perusteiden kurssisivun https://www.cs.helsinki.fi/group/java/s16/ ohjetta,
Valitse NetBeansin TMC-asetuksista palvelimeksi https://tmc.mooc.fi/hy ja kurssiksi hy-otm-s2016. Kun teet käyttäjätunnusta TMC:hen, käytä opiskelijanumeroasi käyttäjätunnuksena.
Kurssin testaustehtäviä varten kannattaa Netbeansiin lisätä aktiivisen projektin testit suorittava nappi. Kyseessä on samanlainen "musta silmä" kuin TMC-pluginin lisäämä testien suoritusnappi. TMC:n lisäämä nappi ajaa toki myös testit, mutta sen myös ehdottaa aina testien läpi mennessä tehtävien palauttamista palvelimelle. Tarkoitus on kuitenkin tehdä palautus vasta kun kaikki testit ovat valmiina.
Lisää testausnappi painamalla työkalupalkin kohdalla hiiren oikeaa nappia ja valitsemalla Customize, ja etsimällä nappi avautuvalta listalta:
Tietojenkäsittelytieteen laitoksen ohjelmistotuotantoprojektien hallinnointia varten tarvitaan tietojärjestelmä, jonka tulisi tukea seuraavanlaista toiminnallisuutta.
Ennen lukukauden alkua asiakkaat lähettävät perustettaville ryhmille tehtäväkuvauksia, jotka vastuuhenkilö laittaa ilmoittautumisen alkaessa näkyville. Kukin opiskelija ilmoittautuu johonkin ryhmään. Ilmoittautumisen yhteydessä opiskelijan tiedot (mm. opiskelijanumero ja sähköposti-osoite) siirretään yliopiston opiskelijarekisteristä järjestelmään. Kurssin puolessa välissä sekä lopussa opiskelijat suorittavat vertaisarvioinnin. Kummassakin vertaisarvioinnissa opiskelijat vastaavat useampaan kysymykseen, jotka vastuuhenkilö on laatinut. Jokaisessa kysymyksessä opiskelija antaa vastauksen koskien jokaista ryhmänsä jäsentä (kysymys voisi olla esim. "arvioi ohjelmointitaito skaalalla 1 - 5"). Kunkin ryhmän ohjaaja näkee ryhmäläistensä tekemät vertaisarviot. Projektien päätyttyä ryhmän asiakas laatii ryhmää koskevan loppuarvion. Loppuarvio sekä kaikkien ryhmien jäsenten tekemät vertaisarviot ovat vastuuhenkilön luettavissa.
Tunnista tietojärjestelmän käyttäjät ja mieti minkälaisia käyttötapauksia järjestelmällä tulisi olla. Käyttötapauksesta riittää mainita nimi ja mahdolliset esiehdot. Tee myös käyttötapauskaavio.
Kuvaa edellisen tehtävän käyttötapauksista kaksi tarkemmalla tasolla.
Käytä kuvaamiseen Alistair Cockburnin käyttötapauspohjaa, joka löytyy osoitteesta http://www.cs.helsinki.fi/u/mluukkai/ohmas10/usecase.pdf, tai samaa tyyliä kun viikon 2 luentokalvon sivulla 23 olevan käyttötapauksen Opiskelija ilmoittautuu kurssille, yhteydessä on käytetty.
Graafisten käyttöliittymien olemassaolosta huolimatta ohjelmistoalalla on edelleen erittäin tärkeää hallita komentorivin eli terminaalin käyttö.
Opettele käyttämään "riittävästi" komentoriviä (ks. alla oleva lista). Opettelu käy ehkä helpoiten tekemällä osoitteessa https://www.codecademy.com/learn/learn-the-command-line olevan onlinekurssin kaksi ensimmäistä osaa Navigating the File System ja Viewing and Changing the File System
Tämän tehtävän jälkeen sinun tulisi hallita seuraavat asiat:
- käsitteet
- root directory
- home directory
- parent directory
- child directory
- working directory
- .. ja *
- ja osata käyttää komentoja
- pwd
- cd
- ls, ls -a, ls -l, ls -t
- mkdir
- touch
- cp
- rm, rm -r
- mv
Tulet tarvitsemaan komentorivin käyttötaitoja tällä kurssilla ja muutenkin opinnoissasi.
Tehtävää ei palauteta mitenkään. Voit merkitä tehtävän, jos osaat yllä luetellut asiat.
Ota ssh-yhteys linuxpalvelimeen melkki.cs.helsinki.fi, melkinpaasi.cs.helsinki.fi tai melkinkari.cs.helsinki.fi. Linuxilla ja macilla yhteys otetaan komentoriviltä komennolla ssh kayttajatunnus@palvelimenosoite. Windowsilla ssh-yhteyden ottaminen onnistuu esimerkiksi putty:llä.
Kirjauduttuasi laitoksen palvelimelle, tee seuraavat toimenpiteet:
- luo kotihakemistoosi hakemisto kurssit
- luo hakemistolle kurssit alihakemisto otm2016
- ja luomallesi hakemistolle aluhakemisto viikko2
- mene kotihakemostoosi ja luo sen alle hakemisto temp
- mene hakemistoon temp
- hae osoitteessa https://www.cs.helsinki.fi/u/mluukkai/otm2016/Unicafe.zip oleva tiedosto wget-ohjelmalla
- wget toimii siten, että sille annetaan ladattava tiedosto parametriksi
- haettu tiedosto on zip-paketti, pura se unzip-ohjelmalla
- myös unzip tomii siten, että sille annetaan purettava tiedosto parametriksi
- komennon suorittamisen jälkeen hakemistoon on ilmestynyt hakemisto Unicafe
- siirrä hakemisto hakemiston kurssit/otm2016/viikko2 alihakemistoksi
- poista zip-paketti
- poista hakemisto temp
- mene nyt uudessa paikassa olevaan hakemistoon Unicafe
- suorita komento mvn clean
- jos näen rivien joukossa ilmoituksen BUILD SUCCESS on tehtävä tehty
Paikanpäällä tehtävissä laskareissa tutustutaan komentoon mvn
Tee mahdollisimman kattavat testit Ohjelmoinnin perusteiden tehtävän 92 luokalle Lukutilasto
Tehtävä palautetaan TMC:n avulla. Tee testit TMC:n testipohjassa valmiina olevaan testiluokkaan. Kun olet mielestäsi valmis, palauta tehtävä palvelimelle.
TMC-tehtävien deadline on perjantai 11.11. klo 23:59
Jos et jo tehny Netbeansiin nappia testien suorittamiseen tee se nyt tätä ohjetta seuraten.
Jos et ollut paikalla ensimmäisen viikon laskareissa, katso ohjeita testien kirjoittamiseen täältä
Huom: double-tyyppisiä lukuja vertaillessa tulee assertEquals-komennosta käyttää kolmeparametrista versiota:
public void testi() {
double tulos = testattavaMetodi();
double odotettu = 1,25;
assertEquals(odotettu, tulos, 0.001);
}
Kolmantena parametrina assertEquals -komentoon annetaan mittaustarkkuus. Syy tälle on doublella laskemisessa syntyvät pyöristysvirheet.
Tee mahdollisimman kattavat testit Ohjelmoinnin perusteiden tehtävän 102 luokalle Asunto
Huomaa, että JUnitissa on myös vertailumetodit assertTrue ja assertFalse, joita voi käyttää boolean-tyyppisten metodien paluuarvojen oikeellisuuden varmistamiseen.
Tehtävä palautetaan TMC:n avulla. Tee testit TMC:n testipohjassa valmiina olevaan testiluokkaan. Kun olet mielestäsi valmis, palauta tehtävä palvelimelle.
Tee mahdollisimman kattavat testit Ohjelmoinnin perusteiden tehtävän 110 luokalle Paivays
Muista, että on tärkeää testata tarkasti "rajatapaukset". Metodissa etene on useita testauksen kannalta kriittisiä rajatapauksia, jotka on syytä kattaa testein:
- eteneminen siten, että kuukausi vaihtuu
- eteneminen siten, että vuosi vaihtuu
Testit voivat olettaa, että Paiva-oliot alustetaan siten, että kuukausi ja paiva saavat järkevät arvot, eli esim. kuukauden arvo on väliltä 1-12.
Tehtävä palautetaan TMC:n avulla. Tee testit TMC:n testipohjassa valmiina olevaan testiluokkaan. Kun olet mielestäsi valmis, palauta tehtävä palvelimelle.