Sanasto

Katso myös Ohj 2 -kurssin sanasto.

Jos sinulle tulee jokin termi, jota et luennolla tiedä etkä uskalla kysyä, niin lisää se tähän listaan, joku laittaa siihen vastauksen heti kun ehtii.

  • algoritmi = sarja yksiselitteisiä toimintaohjeita, joilla päästään yksikäsitteisesti haluttuun lopputulokseen
  • aliohjelma = yleisesti mikä tahansa funktio tai metodi. Erisnimenä käytettynä Ohj1-kurssilla aliohjelma ei palauta arvoa (eli on void-tyyppinen) ja on staattinen metodi.
  • alustuslause = lause jossa alustetaan muuttujia. Silmukoissa myös erittäin tärkeä.
  • API = Application Programming Interface, eli rajapinta, jolla päästään käsiksi johonkin toiseen ohjelmaan. Käytetään osin myös Visual Studiossa aliohjelmien esittelyrivien ja kutsujen täsmäävyydestä.
  • attribuutti = olion oma muuttuja, ei yleensä saisi näkyä olion ulkopuolelle. Eli sen pitäisi olla yleensä private. C#-kielessä on ominaisuuksia (properties), jotka näyttävät attribuuteilta mutta kulkevat oikeasti funktiokutsujen kautta, jolloin olio saa itse päättää mitä tekee jos ominaisuutta pyydetään muuttamaan. Graafisissa tapauksissa esimerkiksi X-ominaisuuden muuttaminen voi muuttaa sisäistä attribuuttia x ja samalla päivittää olion paikkaa ruudulla.
  • array = taulukko
  • assignment = sijoitus, esimerkiksi a = b + 3;
  • bugi = ohjelmassa oleva looginen virhe. Tulee sanasta bug ja tästä tulee myös sana debug.
  • ComTest - kurssin tapa tehdä yksikkötestausta.
  • debuggaus = bugien poistaminen, ohjelman virheellisen toiminnan ja rankenteen löytämistä ja korjaamista. Ohjelman muokkaaminen paremmaksi ei ole debuggausta, vaan refaktorointia tai työstämistä. Debuggaus ei ole refaktorointia muille kuin naapurin pojille.
  • ehtolause(ke) = lause(ke) joka tuottaa totuusarvoisen tuloksen, tärkeä erityisesti silmukoissa ja ehtolauseissa.
  • funktio = Yleisesti sivuvaikutukseton, arvon palauttava aliohjelma, joka antaa samoilla parametreilla aina saman palautusarvon. Ohj1-kurssilla aliohjelma, joka palauttaa jonkin arvon (ei siis ole void-tyyppinen). Hieman vaihtelee sanotaanko kurssilla metodia, joka palauttaa arvon myös funktioksi vai metodiksi.
  • funktioaliohjelma = pidempi nimi funktiolle.
  • globaali muuttuja - muuttuja, joka on esitelty sillä tavalla, että se näkyy kaikkialle (tai lähes kaikkialle). C#- ja Java-kielessä tämän saa aikaiseksi esittelemällä muuttujan kaikkien aliohjelmien ulkopuolella ja varustamalla static-sanalla. Tällaisia muuttujia on varottava kaikin mahdollisin keinoin
  • ihmevekotin = Explorer (tiedostonhallinta)
  • kasvatuslause - lause, jossa kasvatetaan (tai yleisesti ottaen muutetaan) esim. silmukan toimintaan vaikuttavia arvoja.
# lause
  • lause = kokonainen jotakin tekevä ohjelman osuus. Esimerkiksi

    a = b + 4;

    on lause. Lause loppuu yleensä puolipisteeseen, mutta ei aina. Lause voi olla myös ns. koottu lause, jolloin se suljetaan aaltosulkuihin {}. Kootun lauseen (esim. for-lause) perään ei tule puolipistettä.

  • lauseke - asia, joka voidaan laskea (evaluoida) yhdeksi arvoksi. Lauseke voi muodostua yhdestä tai useammasta arvosta, operaattorista ja/tai funktiokutsusta. Esimerkiksi a + 5 tai 3.7 + sin(x+2) tai "kissa" + 2. Myös yksi arvo on lauseke. Muuttujalle sijoitetaan aina lauseke, joka joka evaluoituu arvoksi.

      int a = 3 + 7;            // 3 + 7 on lauseke, joka evaluoituu arvoksi 10
      int b = 2;                // 2 on lauseke, jonka arvo on 2
      string s = "Kissa" + 2;   // evaluoituu arvoksi (viite uuteen merkkijonoon) "Kissa2"
      double keskiarvo = Keskiarvo(3.0, 7.5); // Keskiarvo-funktion kutsu on myös lauseke, jonka arvo sijoitetaan keskiarvo-muuttujaan
  • literaali - tiettyä tietotyyppiä olevan tiedon esitysmuoto. Meidän kurssilla lähinnä vakio/arvo, eli esim. kokonaisluvun tapauksessa 5 ja merkkijonon tapauksessa "kissa". Älä sotke lausekkeeseen, sillä esim 3+5 on lauseke, joka koostuu kahdesta kokonaislukuliteraalista ja operaattorista (+). Vastaavasti 3.14 olisi reaalilukuliteraali ja 'A' merkkiliteraali. Lauseke on yleisempi, eli literaali 5 on sinällään kokonaislukulauseke, jonka arvo on 5.
  • lokaali muuttuja - muuttuja joka on esitelty jossakin lohkossa (esim. aliohjelman sisällä) ja se ei näy lohkonsa ulkopuolella. Hyvät muuttujat ovat tällaisia. Myös aliohjelman parametrimuuttujat ovat aliohjelman lokaaleja muuttujia (vaikka niitä ei olisikaan suotavaa muuttaa).
  • luokka - "malli" kaikille olioille joilla on samanlaiset ominaisuudet. Esimerkiksi ihmiset muodostavat luokan ja joku tietty ihminen on sitten ihmisluokan ilmentymä, eli olio.
  • merkkijono-olio = jonnekin muistiin luotu olio, joka edustaa merkkijonon sisältöä. Tästäkin saatetaan käyttää nimeä merkkijono.
  • merkkijonoviitemuuttuja = muuttuja, joka viittaa merkkijono-olioon. Usein puhutaan silti vain viitemuuttujasta, muuttujasta tai (harhaanjohtavasti) merkkijonosta.
  • metodi = olion oma aliohjelma tai funktio (ei static), joka käyttää edes yhtä olion omaa attribuuttia tai metodia. Kurssin alussa esim. Begin on ollut tällainen. Tällä kurssilla metodeiksi sanotaan aliohjelmia, joilla on käytössä this-viite, eli static-sana puuttuu.
  • muuttuja = muistipaikka joka sisältää arvon ja johon voi tarvittaessa sijoittaa tilalle toisen arvon. Muuttujaan voi viitata sen nimellä. C#-kielessä muuttujilla pitää aina olla esittelyssä tyyppi tai tyyppi pitää voida päätella lausekkessta joka muuttujalle sijoitetaan.

      int a = 5;  // muuttujan esittely ja alustus
      a = a + 2;  // muuttujan arvon muuttaminen

    Muuttujan arvo voi olla myös viite olioon.

  • naapurinhenkilö = sukupuoleton version naapurinpojasta
  • naapurinpoika = henkilö joka neuvoo "väärin" tai on tietävinään paremmin ilman sen kummempia perusteluita (tai perustelu on, että kuullut toiselta naapurinpojalta).
  • olio = jostakin luokasta luotu konkreettinen ilmentymä. Esim.

      PhysicsObject pallo = new PhysicsObject(...)

    pallo on olio (tai tarkkaan ottaen viite olioon joka on "synnytetty" jonnekin muualle). PhysicsObject on luokka jossa on määritelty kaikkien fyysisten olioiden toiminta. Olioissa luokassa määritellyt attribuutit saavat arvoja ja näin muodostavat olion tilan. Kahdella olioilla voi olla sama tila (esim. kaksi luokasta StringBuilder luotua olioita voivat sisältää saman merkkijonon), mutta silti niiden viitteet voivat olla eri.

  • ominaisuus: näyttää attribuutilta, mutta kulkee metodikutsujen kautta, ks: property.
  • overload = kuormittaa. Antaa samalla asialle (esim. aliohjelman nimelle) lisää "kuormaa" tekemällä saman nimisiä eri asiaa tekeviä versioita. Esim. aliohjelman tapauksessa tekemällä samalla nimellä eri versioita eri parametrimäärillä.
  • override = määritellä uudelleen, esim. oliohjelmoinnissa määritellä uudessa luokassa toisenlainen toiminta jollekin asialle. Tyypillisesti kukin luokka "overrideää" ToString-metodin, koska jokaiselle luokalle on oma tyypillinen tapa miten sen sitältö esitetään merkkijonona.
  • private: esitellään attribuutti, metodi tai luokka niin, että se on käytössä karkeasti vaan siinä tiedostossa johon se on kirjoitettu. Erityisesti kaikki olion apumetodit,attribuutit yms on syytä esitellä private, jotta niitä ei toinen olio (tai siis sen metodi) pääsisiä luvattu muuttamaan/käyttämään.
  • public: Esitellään aliohjelma tai luokka siten että sitä voidan käyttää toisestakin paikasta. Tärkeää kun tehdään esimerkiksi aliohjelmakirjastoja. Jos esim. Jypelin PhysicsObject ei olisi public, sitä ei voisi käyttää muiden peleissä.
  • paikallinen muuttuja - ks. lokaali muuttuja
  • parametrimuuttuja - aliohjelman parametrilistassa esitelty muuttuja.
  • peräkkäisyys: - ohjelmointitapa, jossa lauseiden järjestys määrittää miten ohjelmaa suoritetaan. Peräkkäisyyttä voidaan muutta ehtolauseilla, silmukoilla ja aliohjelmakutsuilla. Silti lauseilla on selkeä suoritusjärjestys. Kurssilla hyvin pitkälle käytetään tätä tapaa. Pelit tekevät poikkeuksen, koska siellä annetaan ohjeita tyyliin: jos nämä kaksi kappaletta törmäävät, mene tähän aliohjelmaan. SIlloin puhutaan esimerkiksi tapahtumapohjaisesta ohjelmoinnista. Kokonaan oman erillisen tavan muodostaa rinnakkainen ohjelmointi, jossa prosessorille tai useille prosessoreille annetaan tehtäväksi suorittaa joukko lauseita yhtä aikaa (rinnakkain). Tämä on nykyisin ja tulevaisuudessa merkittävin tapa nopeuttaa ohjelmia. Rinnakkainen ohjelmointi on peräkkäistä ohjelmointia huomattavasta vaativampaa.
# property
  • property - ominaisuus. C#-kielessä on ominaisuuksia (properties), jotka näyttävät attribuuteilta, mutta kulkevat oikeasti metodikutsujen kautta, jolloin olio saa itse päättää mitä tekee, jos ominaisuutta pyydetään muuttamaan. Graafisissa tapauksissa esimerkiksi X-ominaisuuden muuttaminen voi muuttaa sisäistä attribuuttia x ja samalla päivittää olion paikkaa ruudulla. Välttämättä ei edes ole olemassa ominaisuutta vastaavaa attribuuttia, vaan se voi olla laskennallinen arvo muista attribuuteista.
  • rakenteinen ohjelmointi - oikeastaan kurssin sisältö. Ongelmat jaetaan pienempiin osiin, aliohjelmiin. Aliohjelmien sisällä käytetään selkeitä rakenteita kuten peräkkäisyyttä, tarvittaessa ehtolauseita ja silmukoita.
  • refaktoroida = koodin muokkaamista selkeämmäksi, paremmaksi (=nopeammaksi, vähemmän muistia vieväksi, vähemmän virtaa kuluttavaksi yms), luettavammaksi, ylläpidettävämmäksi, laajennettavaksi tai yleiskäyttöisemmäksi ilman sen (ulkoisen) toiminnan oleellista muuttamista. Aliohjelmien kutsumuodot, rajapinnat, eivät saa muuttua muokatessa. Koko ohjelmiston tai järjestelmän muokkaamisesta selkeämmäksi kutsutaan uudistamiseksi (''re-engineering''). Virheiden korjaus ei ole refaktorointia, eikä uudistamista, vaan debuggausta, eikä kumpikaan näistä ole virheiden korjaamista, paitsi jos olet naapurin poika.
  • resolve = selvittää. Esimerkiksi virheilmoitus

    Cannot resolve symbol 'a'

    tarkoittaisi ettei voi selvittää mikä a on. Kyseessä voi olla esimerkiksi yritys sijoittaa

    a = 7;

    mutta missään ei ole esitelty (declare) muuttujaa a. Eli nyt saattaisi
    puuttua a aliohjelma parametreista tai puuttuu esimerkiksi rivi

    int a;
  • static - muuttuja (mieluusti ei) tai aliohjelma/funktio, joka on käytettävissä ilman että luokasta luodaan olio. Static aliohjelma ei voi käyttää olion omia attribuutteja. static aliohjelman pitää pystyä tekemään kaikki toimintansa parametreinä tuotujen muuttujien avulla (tai staattisten muuttujien, mutta näitä pitää välttää).
  • syntaksi - tietyn ohjelmointikielen kielioppi, joka määrittää tarkasti mitä sanoja ja/tai merkkejä voi esiintymä missäkin kohti ohjelmakoodia. Katso monisteesta Syntaksin kuvaaminen. Ohjelma voi olla syntaktisesti oikein tai väärin. Syntaktisesti väärä ohjelma ei käänny ja silloin sitä ei voi edes ajaa. Syntaktisesti oikea ohjelma voi olla silti semanttisesti (eli merkitykseltään) väärin, eli se voidaan ajaa, mutta ei tuota haluttuja tuloksia. Ohjelmointikielen kääntäjä pitää huolen että syntaktisesti väärä ohjelma ei päädy tuotantoon. Mutta ohjelman muusta toiminnallisuudesta joutuu vastaamaan ohjelmoija.
  • unassigned = sijoittamaton, alustamaton
  • vekotin = mikä tahansa, jolle tarvitaan tilapäinen nimi ja oikean nimen käyttäminen ei asiaa sen kummemmin selkeytä
  • viitemuuttuja = muuttuja joka viittaa johonkin olioon. Usein puhutaan silti vain muuttujasta.
  • void = mitätön, vailla. Funktion paluuarvona tarkoittaa että ei palauta mitään (siis aliohjelma). Toki void-aliohjelmakin voi sisältää return-lauseita, mutta niiden perässä ei saa olla arvoa niinkuin funktioiden tapauksessa.
  • yksikkötestaus - tapa testata ohjelman osia yksiköinä. Kurssilla tässä käytetään apuna ComTestiä.

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