Kierros 3 - OLO Kuva
Tänään Lyhyesti kurssista tähän mennessä Viikon aiheiden esittely Jakautuminen ryhmiin ja työskentely ryhmissä – OLO1 – – OLO2 – – OLO3 – Esitykset
DL Jonotilastot Tenttiviikko
Kierroksen 2 palaute Heikko Tyydyttävä Melko hyvä Hyvä Erinomainen Pähee Heikko Tyydyttävä Melko hyvä Hyvä Erinomainen Heikko Tyydyttävä Melko hyvä Hyvä Erinomainen Mielenkiintoisuus 4,47 Tehtävänannon selkeys 3,16 Vaikeus 3,30
Vaikeinta oli 1/2 echo metodin toteutus 38/116 ≈ 33% – ääni pitenee, kaiun kaiku, delay tehtävänannon tulkinta & ymmärrys / aloittaminen / toteutus 33/116 ≈ 28% testaaminen (millä tahansa tavalla) 14/116 virheiden tunnistus ja korjaus 7/116
Vaikeinta oli 2/2 int double 4/116 fade-metodit 9/116 ArrayBuffer --> Vector –päivitys 5/116 Vektorit 4/116 Miksi näitä haluttiin käytettävän? Omien ominaisuuksien aikaansaaminen 6/116 Ääni digitaalisessa muodossa 5/116.. Ja lisäksi joitakin pienempiä vaikeuksia
Aikaa kului Pakollisiin osiin keskimäärin – 4 h 5 min Lisäosiin keskimäärin – 1 h 11 min Ollaan käytetty tehtävien tuntibudjetista nyt (suuntautumisessee + kierros1 + kierros2) 2h + (1h 53min + 2h 51min) + 4h 5min = 10h 48min / 110h
Aiheiden esittely
Miten ohjelmien toimintaa testataan?
Testaus Ei ole assistentin tehtävä testata ohjelmaa Pelkästään tarjottuihin testaustapoihin tukeutuminen ei välttämättä riitä Miten voi itse kirjoittaa testejä Scalassa? Millä muulla tavalla ohjelmaa voi testata? Tutkikaa 3. kierroksella tarjottua ColorSpec- luokkaa
Bittioperaatiot
Binäärilukujärjestelmä Bitti / Tavu (Byte) = 8 bittiä (13) There are only 10 types of people in the world: those who understand binary, and those who don't
scala> val b : Byte = 17 b: Byte = 17 scala> val a : Byte = 100 a: Byte = 100 scala> a + b res0: Int = 117 scala> a & b res1: Int = 0 scala> a | b res2: Int = 117 scala> val c = b << 2 c: Int = 68 scala> -10 >> 2 res3: Int = -3 scala> -10 >>> 3 res4: Int = = 10001, 100 = , 68 = , -10 = = =
Bittioperaatiot Scalassa Byte (8 bittiä), Short (16 bittiä), Int (32 bittiä) ja Long (64 bittiä) Kuinka bitteihin päästään käsiksi? Miksi? Miten kierroksen tehtävässä esitetään väri? Mikä on “0xFF”?
Valmiina tarjottu Image luokka
Image luokka perustuu Vector[Vector[Int]] kaksiulotteiselle taulukolle voidaan kysyä – kuvan korkeutta ja leveyttä – kuvapisteen ja sen eri komponenttien arvoja tietyssä sijainnissa voidaan hakea ja asettaa uusi kuvadata (kuvan muokkauksen jälkeen) Selvittäkää ja demotkaa luokan käyttöä
Digitaalisen kuvan rakenne
Digitaalinen kuva Rasteri tai vektori Resoluutio? Värikylläisyys? Koordinaatisto? Pikseli?
Digitaalisen kuvan tallennusformaatit
Kuvien tallennus
Digitaalisen kuvan käsittely ohjelmoinnillisesti (= ohjelmoinnin avulla)
Suotimet ja muut Kaikki mikä voidaan tehdä analogiselle kuvalle voidaan tehdä myös digitaaliselle – voidaan muokata kokoa (crop), piirtää päälle, yhdistellä ”leikkaa ja liimaa” -menetelmällä jne. jne. Digitaalisuus mahdollistaa myös monimutkaisemmat operaatiot – Digitaalinen kuva on ~aina kaksiulotteinen taulukko, jossa yksi taulukon arvo vastaa kuvapisteen arvoa – Alkioita muokkaamalla luodaan uusia kuvia Miten kuvaa muokataan ohjelmoinnillisesti?
Aiheet 1.Testaus 2.Bittioperaatiot 3.Image -luokka 4.Digitaalisen kuvan rakenne 5.Digitaalisen kuvan tallennusformaatit 6.Digitaalisen kuvan käsittely ohjelmoinnillisesti Takaisin luokassa / / Esitettävä materiaali /