{"id":436,"date":"2020-01-08T19:35:01","date_gmt":"2020-01-08T17:35:01","guid":{"rendered":"https:\/\/coursepages.uta.fi\/tiea2-1a\/?page_id=436"},"modified":"2020-05-14T02:28:12","modified_gmt":"2020-05-13T23:28:12","slug":"palaute","status":"publish","type":"page","link":"https:\/\/coursepages2.tuni.fi\/tiea2-1a\/kevat-2020\/harjoitukset\/tarkistus\/palaute\/","title":{"rendered":"Palaute"},"content":{"rendered":"<p>Alla kunkin harjoituksen osalta teht\u00e4vien tarkistajien terveiset. Vastuuopettaja on muokannut raportit yhten\u00e4iseen muotoon keskeisimm\u00e4t havainnot s\u00e4ilytt\u00e4en.<\/p>\n<h2>Harjoitus 1<\/h2>\n<p>Huonoon ohjelmointitapaa ei tartuttu ensimm\u00e4isiss\u00e4 harjoituksissa ellei aivan kaikki tavat olleet unohtuneet. Keskener\u00e4isi\u00e4 (&#8221;keltaisia&#8221;) palautuksia ilmeni jonkin verran. Palautus pit\u00e4isi muistaa sulkea, jotta opettajan aikaa ei menee turhaan <em>Submit<\/em>-napin klisutteluun opiskelijan puolesta.<\/p>\n<p><strong>2) Oppilaitos, Rama<\/strong><\/p>\n<p>Pisteeseen tarvittiin teht\u00e4v\u00e4nannossa kuvattu testaus. <em>Oppilaitos<\/em>-luokassa oli toiveissa, ett\u00e4 siin\u00e4 k\u00e4ytett\u00e4isiin luokassa m\u00e4\u00e4riteltyj\u00e4 vakioita. Piste annettiin, vaikka vakiot olivat j\u00e4\u00e4neet huomiotta, niin kuin monessa ratkaisussa oli k\u00e4ynyt. Kenelt\u00e4k\u00e4\u00e4n ei v\u00e4hennetty pisteit\u00e4.<\/p>\n<p><strong>4) Poliisi, Albert<\/strong><\/p>\n<p>Pisteen edellytyksen\u00e4 oli suurin osa teht\u00e4v\u00e4nannossa kuvatusta testauksesta. Pieni\u00e4 puutteita hyv\u00e4ksyttiin. Ritt\u00e4m\u00e4tt\u00f6m\u00e4st\u00e4 testaus tuotti muutaman nollan. Jokunen &#8221;keltainen&#8221; palautus palautettiin opiskelijan puolesta.<\/p>\n<p><strong>5) Kaivuri, Ilmari<\/strong><\/p>\n<p>Pisteeseen tarvittiin jonkinlainen kommentti korjauksista ja pieni\u00e4 korjauksia, koska ongelmien korjaus ei edellytt\u00e4nyt laajoja muutoksia. Ratkaisuissa ei ollut suurempia ongelmia ja kaikki palauttajat saivat pisteen. Muutama &#8221;keltainen&#8221; palautus t\u00e4ss\u00e4kin teht\u00e4v\u00e4ss\u00e4.<\/p>\n<h2>Harjoitus 2<\/h2>\n<p>My\u00f6s hyv\u00e4 ohjelmointitapa arviointiin. Piste nollattiin, jos hyv\u00e4t tavat olivat pahasti hukassa.<\/p>\n<p><strong>1) Tiedosto, Ilmari<\/strong><\/p>\n<p>Jonkinlainen kommentti korjauksista tarvittiin. Ratkaisusta ei saanut pistett\u00e4, jos <em>Tiedosto<\/em>-luokan koodia oli muutettu muuten kuin lis\u00e4\u00e4m\u00e4ll\u00e4 luokkaan oletusrakentaja ja kommentteja. Nollia tuli molemmista syist\u00e4, mutta ei montaa. Korjauksista on hyv\u00e4 mainita luokan yleisiss\u00e4 kommenteissa, mutta kommentteja tulisi kirjoittaa my\u00f6s paikkaan, jossa korjauksia on tehty.<\/p>\n<p><strong>5) Pipo, Albert<\/strong><\/p>\n<p>Nolla tuli, jos korjauskommentit puuttuivat tai jos <em>Pipo<\/em>-luokan metodeja on muutettu, poistettu tai lis\u00e4tty. Nollia annettiin muutama. Syyn\u00e4 joko puuttuvat kommentit tai tarpeettomat muutokset l\u00e4hdekoodissa. T\u00e4ss\u00e4kin toiveena kommentteja my\u00f6s korjauspaikassa.<\/p>\n<p><strong>6) Poliisi, Rama<br \/>\n<\/strong><\/p>\n<p>Rakentajien kirjoittaminen ei juuri n\u00e4ytt\u00e4nyt tuottavan ongelmia, mutta kommenttien ja muuttujien nime\u00e4misen kanssa olisi jonkin verran parantamisen varaa. Nollat tulivat riitt\u00e4m\u00e4tt\u00f6m\u00e4n kommentoinnin takia. Pisteit\u00e4 ei nollattu testauksen vuoksi: kaikissa tarkistetuissa ratkaisuissa oli p\u00e4\u00e4osin teht\u00e4v\u00e4nannossa kuvattu testaus.<\/p>\n<h2>Harjoitus 3<\/h2>\n<p>My\u00f6s hyv\u00e4 ohjelmointitapa ja oma testaus arvioitiin.<\/p>\n<p><strong>1) Rosvo, Rama<\/strong><\/p>\n<div>Rosvo-luokan <em>hyvis<\/em>-attribuutin julkisessa asetusmetodissa ei ole tarpeen tarkistaa onko parametrin arvo <strong>true<\/strong> tai <strong>false<\/strong>. Koska parametri on tyypilt\u00e4\u00e4n <strong>boolean<\/strong>, se on <strong>true<\/strong> tai <strong>false<\/strong> joka tapauksessa, sill\u00e4 <strong>boolean<\/strong>-tyyppi ei voi saada muita arvoja. Muista kirjoittaa muuttujien nimet pienell\u00e4 alkukirjaimella, vaikka kyseess\u00e4 olisikin lennokas erisnimi karskille rosvolle. Ratkaisuja hyl\u00e4ttiin noin yhden k\u00e4den sormien verran kommentoinnin puutteen tai kokonaan puuttuvan kommentoinnin vuoksi.<\/div>\n<p><strong>5) Karhu, Ilmari<\/strong><\/p>\n<p>Pisteeseen tarvittiin p\u00e4\u00e4osin teht\u00e4v\u00e4nannossa kuvattu testaus, joka olikin hyvin tehty. Vain pari ratkaisua hyl\u00e4ttiin puutteellisen testiluokan vuoksi.<\/p>\n<p><strong>6) Omat luokat, Albert<\/strong><\/p>\n<p>Teht\u00e4v\u00e4ss\u00e4 tarkistettiin opettajan toimesta hyv\u00e4t tavat, testaus ja teht\u00e4v\u00e4ss\u00e4 pyydetty metodin korvaus tai toteutus. Suurin osa ratkaisuista hyv\u00e4ksyttiin. Nollia tuli, koska metodin korvaus tai hyv\u00e4 ohjelmointitapa oli unohtunut.<\/p>\n<p>Tyyliin liittyen: kun kommentoit koodia, kaksi per\u00e4kk\u00e4ist\u00e4 kommenttia ei sisenny. Jos haluat eritell\u00e4 osioita, k\u00e4yt\u00e4 lohkokommenttia. Esimerkiksi:<\/p>\n<pre>\/\/ osio 1\r\n   \/\/ ensimm\u00e4inen asia\r\n\r\n--&gt;\r\n\r\n\/*\r\n * osio 1\r\n *\r\n *\/\r\n\r\n\/\/ ensimm\u00e4inen asia<\/pre>\n<h2>Harjoitus 4<\/h2>\n<p>My\u00f6s hyv\u00e4 ohjelmointitapa ja oma testaus arvioitiin.<\/p>\n<p><strong>3) TiedostonK\u00e4pistely\u00e4, Albert<\/strong><\/p>\n<p>Korjaukset oli kohdistettu juuri oikeaan paikkaan. Kaikissa tarkistetuissa ratkaisuissa p\u00e4\u00e4ohjelmaan oli tehty pyydetyll\u00e4 tavalla toimiva virheenk\u00e4sittely <strong>try<\/strong>&#8211;<strong>catch<\/strong>-lauseella. Pisteit\u00e4 poistettiin muutama vaillinaisten tai puuttuvien sisennysten vuoksi. Muista lis\u00e4t\u00e4 t\u00e4llaisissa muokkausteht\u00e4viss\u00e4 nimi (ja mieluusti s\u00e4hk\u00f6posti) alkukommenttiin tai muokkauksien alkuun.<\/p>\n<p><strong>5) Ajatelma, Rama<\/strong><\/p>\n<div>Teht\u00e4v\u00e4nannossa kuvattu testaus oli tehty hyvin. Lennokkaita lausahduksia ja viihdytt\u00e4vi\u00e4 virheviestej\u00e4. Kiitos kurssin kaikille suurille ajattelijoille! Sitruuna on maukasta ja tynnyri t\u00e4ynn\u00e4 on hyv\u00e4 olla! Nollat tulivat puuttuvista kommenteista ja sisennyksist\u00e4.<\/div>\n<p><strong>6) Pakatut nis\u00e4kk\u00e4\u00e4t, Ilmari<\/strong><\/p>\n<p>T\u00e4m\u00e4kin teht\u00e4v\u00e4n ratkaisut oli testattu hyvin. Olioiden nimet olivat melko lennokkaita. Tyls\u00e4n asiallinen linja nime\u00e4misiss\u00e4 on pitemm\u00e4n p\u00e4\u00e4lle varma valinta, koska koskaan ei voi tiet\u00e4\u00e4 kuka lopulta lukee jollain tavalla jaeltua koodia. \ud83d\ude42 Nollia ei tullut montaa ja syyt hylk\u00e4yksiin vaihtelivat. Lennokkaista nimist\u00e4 ei rankaistu.<\/p>\n<h2>Harjoitus 5<\/h2>\n<p>Arvostelu painottui hyv\u00e4n ohjelmointitavan ja oman testauksen arvioitiin.<\/p>\n<p><strong>4) Akku, Ilmari<\/strong><\/p>\n<div>T\u00e4ss\u00e4 teht\u00e4v\u00e4ss\u00e4 oli tavanomaista enemm\u00e4n testauksen vuoksi hyl\u00e4ttyj\u00e4 ratkaisuja. P\u00e4\u00e4osassa hyl\u00e4tyist\u00e4 ohjelmista ei ollut vertailua v\u00e4\u00e4r\u00e4n tyyppiseen olioon. Equals-metodille tulisi muistaa antaa omissa testeiss\u00e4 my\u00f6s yll\u00e4tt\u00e4vi\u00e4 parametriarvoja, jotta metodin virheenk\u00e4sittely try-catch-lauseella tulisi testattua. Muuten teht\u00e4viss\u00e4 ei ollut juuri moitittavaa.<\/div>\n<p><strong>6) Tiedekunta, Albert<\/strong><\/p>\n<div>Ei hyl\u00e4ttyj\u00e4 ratkaisuja. Kommentoinnista: Jos k\u00e4yt\u00e4t valmista koodia, muista p\u00e4ivitt\u00e4\u00e4 kommentit ettei Jorma Laurikkala ole kirjoittajaksi merkattu henkil\u00f6, pois lukien tilanne jossa olet Jorma Laurikkala. \ud83d\ude42<\/div>\n<p><strong>7) Samojen laskeminen, Rama<\/strong><\/p>\n<p>Nollat liittyiv\u00e4t poikkeuksellisen kiinte\u00e4sti vaillinaiseen kommentointiin. Kommentoinnista: Muista selitt\u00e4\u00e4 kommenteilla, mit\u00e4 ohjelmassa kulloinkin tapahtuu. Jokaiselle riville ei ole tarpeen kirjoittaa kommenttia, mutta etenkin sis\u00e4kk\u00e4isi\u00e4 silmukoita ja muita monimutkaisempia rakenteita on vaikea seurata, jos n\u00e4it\u00e4 ei ole lainkaan kommentoitu. My\u00f6s metodien toimintaa ja tarkoitusta olisi hyv\u00e4 kommentoida yleisell\u00e4 tasolla.<\/p>\n<h2>Harjoitus 6<\/h2>\n<p>Arvostelussa huomioitiin hyv\u00e4n ohjelmointitapa ja oma testaus.<\/p>\n<p><strong>1) Voimala, Rama<br \/>\n<\/strong><\/p>\n<div>Pisteeseen tarvittiin p\u00e4\u00e4osin teht\u00e4v\u00e4nannossa kuvattu testaus. T\u00e4m\u00e4 teht\u00e4v\u00e4 oli sen verran suoraviivainen, ettei mit\u00e4\u00e4n erityist\u00e4 huomautettavaa noussut esiin.<\/div>\n<p><strong>3) Vastaavien poistaminen, Ilmari<\/strong><\/p>\n<p>Toimivia ratkaisuja, mutta osassa oli parantamisen varaa laskennallisen tehokkuuden suhteen. Monessa ratkaisussa k\u00e4ytiin ensin lista l\u00e4pi, jotta voitiin laskea poistettavien m\u00e4\u00e4r\u00e4, mik\u00e4 j\u00e4lkeen lista k\u00e4ytiin l\u00e4pi uudelleen ja tehtiin varsinainen poisto. Vaikka aikakompleksisuus ei ole t\u00e4m\u00e4n kurssin aihe, on hyv\u00e4 oppia v\u00e4ltt\u00e4m\u00e4\u00e4n turhaa laskentaa jo alusta alkaen. Nollia tuli jonkin verran testiluokasta puuttuvista <strong>try<\/strong>&#8211;<strong>catch<\/strong>-lauseista ja vaillinaisista testeist\u00e4, joissa ohjelmaa ei testattu poikkeuksen aiheuttavilla arvoilla. Poikkeuksia k\u00e4ytett\u00e4ess\u00e4 pit\u00e4\u00e4 muistaa <strong>throw<\/strong>&#8211; ja <strong>try<\/strong>&#8211;<strong>catch<\/strong>-lauseiden ero. <strong>Throw<\/strong> keskeytt\u00e4\u00e4 metodin suorituksen ja heitt\u00e4\u00e4 metodista poikkeuksen. <strong>Try<\/strong>&#8211;<strong>catch<\/strong>-lausetta k\u00e4ytet\u00e4\u00e4n heitetyn poikkeuksen sieppaamiseen ja k\u00e4sittelyyn.<\/p>\n<p><strong>4) Sanakirja, Albert<\/strong><\/p>\n<p>Hyvin suoraviivainen teht\u00e4v\u00e4. Muistakaa kuitenkin muuttujien nime\u00e4minen. Koodi on sit\u00e4 helpommin luettavaa ja yll\u00e4pidett\u00e4v\u00e4\u00e4, mit\u00e4 parempia tunnuksia muutujille on valittu.<\/p>\n<h2>Harjoitus 7<\/h2>\n<p>Arvostelussa huomioitiin hyv\u00e4n ohjelmointitapa ja oma testaus. Kurssin vastuuopettaja tarkisti kaikki kolme teht\u00e4v\u00e4\u00e4.<\/p>\n<p><strong>5) Aggregaattorit, Jorma<\/strong><\/p>\n<p>Nollat tulivat p\u00e4\u00e4osin puuttuvista kommenteista ja vaillinaisesta sisennyksest\u00e4.<\/p>\n<p>J\u00e4lkiviisaana voi todeta, ett\u00e4 teht\u00e4v\u00e4n olisi voinut esitt\u00e4\u00e4 paremmin. Tekstiss\u00e4 olisi pit\u00e4nyt mainita, ett\u00e4 on my\u00f6s mahdollista laskea muutenkin kuin kolmella eri tietovirralla. Onneksi moni oli huomannut IntSummaryStatistics-luokan, jolla voi laskea useita tunnuslukuja kerralla. Tosin muutamassa IntSummaryStatistics-luokkaa k\u00e4ytt\u00e4v\u00e4ss\u00e4 vastauksessa alkoiden lukum\u00e4\u00e4r\u00e4 laskettiin eri virralla, vaikka t\u00e4m\u00e4nkin tieto olisi saatavilla IntSummaryStatistics-olion kautta.<\/p>\n<p><strong>7) Varasto, Jorma<\/strong><\/p>\n<p><em>Varasto<\/em>-luokasta tarkistettiin, ett\u00e4 akkuviitteet sis\u00e4lt\u00e4v\u00e4\u00e4n attribuuttiin oli liitetty olio ja ett\u00e4 lis\u00e4ysmetodi toimi. My\u00f6s testiluokka lukaistiin l\u00e4pi. Yleisin ongelma oli se, ett\u00e4 varaston attribuutti j\u00e4i ilman oliota. Luentevin paikka liitt\u00e4\u00e4 olio attribuuttiin on luokan rakentaja. Valtaosa ratkaisuista oli eritt\u00e4in hyvin tehtyj\u00e4, vaikka WETOn tarkistus oli ylimalkaista.<\/p>\n<p><strong>8) UML-kaavio, Jorma<\/strong><\/p>\n<p>Kaaviot olivat laadultaan hyvin vaihtelevia. Osassa ratkaisuja teht\u00e4v\u00e4\u00e4 oli selv\u00e4sti pohdittu pitk\u00e4\u00e4n, kun taas osa ratkaisuista oli enemm\u00e4n luonnostelman tasoisia. Miinusta tuli puuttuvista assosiaatioiden nimist\u00e4, puuttuvista kertoimista sek\u00e4 ep\u00e4m\u00e4\u00e4r\u00e4ist\u00e4 ja v\u00e4\u00e4rin valituista suhteista.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Alla kunkin harjoituksen osalta teht\u00e4vien tarkistajien terveiset. Vastuuopettaja on muokannut raportit yhten\u00e4iseen muotoon keskeisimm\u00e4t havainnot s\u00e4ilytt\u00e4en. Harjoitus 1 Huonoon ohjelmointitapaa ei tartuttu ensimm\u00e4isiss\u00e4 harjoituksissa ellei aivan kaikki tavat olleet unohtuneet. Keskener\u00e4isi\u00e4 (&#8221;keltaisia&#8221;) palautuksia ilmeni jonkin verran. Palautus pit\u00e4isi muistaa sulkea, jotta opettajan aikaa ei menee turhaan Submit-napin klisutteluun opiskelijan puolesta. 2) Oppilaitos, Rama Pisteeseen tarvittiin &hellip; <a href=\"https:\/\/coursepages2.tuni.fi\/tiea2-1a\/kevat-2020\/harjoitukset\/tarkistus\/palaute\/\" class=\"more-link\">Jatka artikkeliin <span class=\"screen-reader-text\">Palaute<\/span><\/a><\/p>\n","protected":false},"author":6,"featured_media":0,"parent":422,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-436","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/coursepages2.tuni.fi\/tiea2-1a\/wp-json\/wp\/v2\/pages\/436","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/coursepages2.tuni.fi\/tiea2-1a\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/coursepages2.tuni.fi\/tiea2-1a\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/coursepages2.tuni.fi\/tiea2-1a\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/coursepages2.tuni.fi\/tiea2-1a\/wp-json\/wp\/v2\/comments?post=436"}],"version-history":[{"count":49,"href":"https:\/\/coursepages2.tuni.fi\/tiea2-1a\/wp-json\/wp\/v2\/pages\/436\/revisions"}],"predecessor-version":[{"id":671,"href":"https:\/\/coursepages2.tuni.fi\/tiea2-1a\/wp-json\/wp\/v2\/pages\/436\/revisions\/671"}],"up":[{"embeddable":true,"href":"https:\/\/coursepages2.tuni.fi\/tiea2-1a\/wp-json\/wp\/v2\/pages\/422"}],"wp:attachment":[{"href":"https:\/\/coursepages2.tuni.fi\/tiea2-1a\/wp-json\/wp\/v2\/media?parent=436"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}