Ohjelmointi 2 kurssilla käytettyjä termejä

Katso myös kurssin videohakemisto k2018 (k2017 k2016 k2015 k2014 k2013 k2012)

Lisää tähän kurssilla käytettyjä (oikeita) termejä. Pidä lista aakkosjärjestyksessä. Jos kurssilla tulee jokin sana, jota et ymmärrä ja haluat siihen selityksen, lisää siitä julkinen kommentti ko. kirjaimen viereen tyyliin

- kumma sana = ???

Sitten joku toinen etsii aina noita ??? kommentteja ja laittaa tuohon selostuksen.

Lista Eclipsen ja Javan käsitteistä:

  • Workspace - Eclipsen yhden työtilan alle voi tehdä useita projekteja. Yleiset asetukset tallentuvat tänne, joten jos teet uusia työtiloja, joutuu kaikkiin tekemään omat asetukset. Koko kurssin voi tehdä yhteen WorkSpaceen.
  • project - karkeasti yksi kokonaisuus on yksi Eclipse projekti. Esimerkiksi harjoitustyö voi olla yksi projekti, demot toinen (tai jokaiselle demolle voi tehdä oman projektin).
  • class - Java-ohjelmat koostuvat luokista. Siksi jokaista ohjelmaa varten on tehtävä vähintään yksi luokka. Yksi projekti voi sisältää (ja usein sisältääkin) useita luokkia.
  • classpath - polku mistä etsitään projektiin kuuluvia Java-tiedostoja. Voi olla levyhakemisto(ja) ja/tai .jar tiedosto(ja).
  • .jar - Java ARchive, pakattu (käytännössä zip) tiedosto joka sisältää java luokkia.
  • .java - Java-luokan lähdekielinen versio
  • .class - tavukoodiksi käännetty Java-luokka
  • JavaFX - käyttöliittymäkirjasto, jossa käyttöliittymän ulkoasu voidaan tehdä esimerkiksi XML-pohjaisen .fxml-tiedoston avulla
  • .fxml - tiedostomuoto JavaFX ohjelman ulkoasun kuvaamiseksi. Voidaan muokata ihan tekstinä tai esimerkiki SceneBuilerillä graafisesti
  • .css - Cascaded Style Sheet - tiedosto, jossa voidaan kertoa komponenttien tyylit (värit, fonttien koot, yms).
  • SceneBuilder - yksi mahdollinen graafinen editori .fxml-tiedostojen muokkaamiseksi
  • src - kansio jossa on lähdekoodit (.java source)
  • bin - kansio jossa on käännetyt koodit (.class binaries), joita sitten ajetaan Java-virtuaalikoneella

Esimerkiksi Hello world ohjelman hakemistorakenne pitäisi olla:

    .classpath
    .project
    src
        hello
            Hello.java
    bin
        hello
            Hello.class

A

  • Algoritmi = Joukko toimenpiteitä joilla annettu tehtävä saadaan suoritettua äärellisessä ajassa. (Moniste:Algoritmi)
  • Aliluokka = Luokka joka perii. (ks. Luokka)
  • Aliohjelma = Itsenäinen ohjelman osa, joka suorittaa halutun toiminnon. Aliohjelmaa voidaan kutsua pääohjelmasta sekä toisista aliohjelmista. (Moniste:Aliohjelma)
  • Alkeistietotyyppi (primitive type) = Vastakohta oliotietotyypeille, saa vain yhden arvon. Javan alkeistietotyypit: kokonaisluvut, liukuluvut, totuusarvot ja merkit. (Moniste:Javan alkeistietotyypit)
  • Aritmeettinen operaatio (arithmetic operation) = Laskuoperaatio, Javassa aritmeettiset operaatiot suoritetaan matematiikan laskujärjestyksen mukaan.
    (Moniste:Aritmeettiset lausekkeet)
  • Attribuutti = Olion alkio. Luokassa oliolle määritelty muuttuja, joka tallentaa jonkun olioon liittyvän tietoalkion.
  • Autoboxing = termi tapahtumalle, jossa normaalista perusmuuttujasta(int, double jne.) tuleekin olio. (Wikipedia:Autoboxing)

B

  • Breakpoint = Debuggerilla ajettaessa ohjelman suoritus pysäytetään sille riville, mille breakpoint on laitettu. Tämä auttaa tarkastelemaan ohjelmaa askel kerrallaan.

C

  • CRC-kortti = Kuuluvat suunnitteluvaiheeseen ja niiden avulla hahmotellaan haluttuja toimintoja. Kortti sisältää luokan nimen, kyseisen luokan tehtävät sekä avustajat, joiden kanssa luokka on yhteistyössä. (Moniste:CRC-kortit)
  • ComTest = ComTest on tietotekniikan laitoksen opettajien ja tutkijoiden projekti yksikkötestauksen helpottamiseksi. (https://trac.cc.jyu.fi/projects/comtest)

D

  • Debuggaus = Paikallistetaan virheellisen toiminnan aiheuttanut virhe/bugi
  • Dynaaminen muisti = Javassa olioiden tila varataan muualta dynaamisen muistinhallinnan hoitamalta alueelta. Tästä käytetään nimitystä keko- tai kasamuisti. (Moniste:Dynaaminen muisti)

E

  • Eclipse = Kurssilla käytettävä IDE (Integrated Development Environment) eli integroitu ohjelmointiympäristö, jonka avulla kurssin Java ohjelmointi suoritetaan.
  • Ehtolause = Käytetään silloin, kun tarvitaan ehdollista toteutusta. Suomeksi esim. jos (if) tai kun (while). (Moniste:Ehtolauseet)

F

  • final-avainsana = javan avainsaina jolla luodaan vakio (c:ssä ja c++:ssa const). (Wikipedia: final).
  • For-silmukka = silmukka joka käy koko tietorakenteen läpi, tai lopettaa ennalta määritetyn pisteen tullessa vrt. foreach silmukka. (Moniste: for-silmukka)
  • foreach-silmukka = silmukka joka käy läpi kaikki tietorakenteen alkiot. (Moniste: foreach-silmukka)
  • funktio = Joissakin kielissä kaikkia aliohjelmia sanotaan funktioiksi. Javassa periaattessa kaikki aliohjelmat ovat metodeja, mutta kurssilla käytetään nimeä funktio staattisista aliohjelmista joilla on muu tyyppi kuin void, eli niissä on return jotakin;. Staattista aliohjelmaa voidaan kutsua ilman että on vastaavaa oliota.

G

  • Geneerinen ohjelmointi = tietorakenne, olio tai funktio, jossa jokin "olio" (attribuutti, parametri) on geneeristä tyyppiä

  • Geneerinen tyyppi = oliotyyppi, jonka todellinen tyyppi selviää käyttöyhteydessä (Moniste:Geneerinen taulukko)

     ArrayList<String> lista = new ArrayList<String>();
  • Globaali muuttuja = melkein pahinta mitä voi tehdä: Muuttuja näkyy kaikille ja kenelläkään ei ole kontrollia siitä, kuka muuttujaa muuttaa. Ehkä suurimpia yksittäisiä syitä oliohjelmoinnin kehittymiseen. Toinen tapa kiertää ongelmaa on funktionaalinen ohjelmointi, jossa ei ole muuttujia lainkaan.

I

  • IDE = Ohjelmointiympäristö, joka on ohjelma tai joukko ohjelmia, jolla ohjelmoija suunnittelee ja toteuttaa ohjelmistoa.
  • Iteraattori = Tapa viitata tietorakenteisiin. Iteraattorin ideana on tarjota tietty, erittäin suppea joukko operaatiota, joita siihen voidaan kohdistaa. (Moniste:Iteraattori)

J

  • JavaDoc = Javassa lähdekoodi dokumentoidaan käyttäen JavaDoc-työkalua, näin saadaan helposti koostettua HTML-muotoinen dokumentti. (Moniste: JavaDoc)
  • JavaFX = Swingiä uudempi kirjasto Javan graafisen käyttöliittymän tekemiseen. Ulkoasu voidaan esittää .fxml-tiedostossa, joka noudattaa XML-syntaksia.
  • JUnit = Testaamiseen tarkoitettu kirjasto. Isoissa projekteissa JUnit testit toteutetaan erilliseen pakettiin. (Moniste:JUnit)

K

  • Kapselointi = Toteutus joka kokoaa toimitoja yhdeksi kokonaisuudeksi. Kapselointia käytetään tiedon kokoamiseen sekä tiedon piilottamiseen. (Moniste:Kapselointi)
  • Kommentointi= aliohjelmien, muuttujien ym. asianmukainen kommentointi. Kommentointi helpottaa ohjelman ymmärtämistä niille, jotka eivät ole sitä tehneet, ja helpottaa ohjelmoijan työtä kun koodirivejä on todella paljon.
  • Koostaminen=luokka koostetaan muiden tyyppien/luokkien avulla. Periaattessa melkein jokainen luokka on koostettu, koska se koostuu attribuuteistaan. Ainoastaan peritty luokka, johon ei ole lisätty yhtään attribuuttia, ei ole koostettu (mutta sen isä-luokka todennäköisesti on koostettu).
  • Kääntäjä = Kääntäjä käy ohjelmakoodin läpi rivi riviltä ja kääntää sen konekielelle, eli kielle jota kone osaa lukea, eli tuottaa koodista suoritettavan ohjelman. Kääntäjä osaa myös tulkita syntaksivirheitä, joista se ilmoittaa kääntämisen yhteydessä, mikäli semmoisia ilmenee. (Wikipedia: Ohjelmointikielen kääntäjä).

L

  • Lokaali muuttuja = muuttuja joka näkyy vain omasa yksikössään, esimerkiksi aliohjelmaassa (myös main on aliohjelma). Vastakohtana attribuutti, joka näkyy koko olion sisällä ja pahimmssa tapauksessa globaali muuttuja joka näkyy kaikille.
  • Looginen virhe = Virhe joka estää ohjelman ajamisen (kun tullaan virhekohtaan), mutta ei riko syntaksia esim. nollalla jakaminen. Syntaksivirheen löytäminen on huomattavasti hankalempaa koska ohjelmointiympäristöt eivät löydä näitä. Moniste: Virhetyypit.
  • Luokan ilmentynä = Olio ("paketti") joka sisältää tiedon ja sitä käsittelevän koodin. (Moniste:Kohti olio ohjelmointia)
  • Luokka = Määrittelee jonkun tietyin oliojoukon yhteiset piirteet. (Moniste:Luokka ja olio). Luokkien nimet kirjoitetaan Javassa isolla alkukirjaimella.
  • Lähdekoodi (source code) = Raaka tekstimuotoinen versio ohjelmasta, jotta ohjelma voidaan suorittaa, täytyy lähdekoodikoodi kääntää tai tulkata. (Wikipedia: Lähdekoodi)

M

  • Metodi = Olion toiminto. Aliohjelma joka käsittelee olion tietoa. (Moniste:Aliohjelmat) Kurssilla metodi-nimeä käytetään ei-stattisista aliohjelmista. Niitä ei voida kutsua ennenkuin vastaava olio on luotu. Esimerkiksi miuku.aantele();
  • Muodostaja = Metodi joka alustaa olion tilan ja luo tarvittavat dynaamiset muistialueet. (Moniste:Muodostajat)
  • Muuttuja = Muuttuja on symbolinen tietovarasto. Muuttujiin tallennetaan usein muuttuvaa tietoa. (Moniste:Muuttujat)
  • Muuttumaton (Immutable) olio = olio jonka arvoja ei voi muuttaa sen luonnin jälkeen. (Wikipedia: Immutable).
  • Merkkijono = Ohjelmoinnissa käytetty tietorakenne. Javassa käytössä kaksi merkkijonoluokkaa: String ja StringBuilder. (Moniste:Merkkijonot).

N

  • Naapurin poika = henkilö joka on kuullut jotakin Naapurin pojalta ( tiedon luotettavuus kyseenalaista )

  • New = new-avainsanalla luodaan olio ja varataan sille muistia keosta.

     new Tietotyyppi();

O

  • Ohjelmointi kirjasto = API, kirjasto on kokoelma valmiita aliohjelmia, ja niiden kommentteja. Kirjastot helpottavat ohjelmointia huomattavasti siirtämällä yleisesti käytetyt aliohjelmat kirjastoon joten niitä ei tarvite kirjoittaa aina tarvittaessa uudelleen. (Moniste:Mikä on kirjasto)
  • Olio = Olio on ohjelmiston perusyksikkö, joka sisältää joukon loogisesti yhteenkuuluvaa tietoa ja toiminnallisuutta. Oliot kommunikoivat keskenään viesteillä. (Moniste:Kohti olio ohjelmointia)
  • Osoitinmuuttuja = Osoitinmuuttuja sisältää viitattavan arvon muistiosoitteen. (Wikipedia:Osoitin)

P

  • Parametri = Funktiolle vietävä lähtöarvo (Moniste:Parametri)
  • Perintä = Perinnässä aliluokka perii käytettäväksi yliluokan kaikki ominaisuudet joita ei ole estetty. (Moniste:Perintä)
  • Perl - pitkälle merkkijonopohjainen ohjelmointikieli, jolla voi nopeasti tehdä erilaisia skriptejä
  • Pöytätesti = Ohjelman ja sen muuttujien läpikäyminen rivi kerralla, käyttäen apuna taulukkoa. (Moniste:Pöytätesti)

R

  • Rajapinta = Metodit joilla olion kanssa voi kommunikoida. (Moniste:Rajapinta)
  • Rekursio = itsensä avulla määritelty (vrt. Naapurin poika)
  • Relaatio = Tietokannan yksi taulu. Esimerkiksi tällä kurssilla käytettävien tiedostojen rivien (=tietueiden) välillä voi olla erilaisia suhteita.
    • 1:1 = jokaista riviä vastaa täsmälleen yksi rivi toisessa tiedostossa. Esimerkiksi tietyllä henkilöllä on täsmälleen yksi henkilötunnus

    • 1:n = yhdellä rivillä voi olla monta vastinetta jossakin toisessa tiedostossa. Esimerkiksi yhdellä henkilöllä voi olla 0-n kappaletta puhelinnumeroita (mutta yksi puhelinnumero ei miellellään kuulu monelle henkilölle). Alkuperäisessä harjoitustyön mallissa tällainen suhde on tehty henkilön ja hänen harrastamansa asian suhteen (vaikka oikeasti moni henkilö voisi harrastaa samaa harrastusta).

    • m:n - monen suhde moneen = yksi opiskelija voi käydä monella eri kurssilla ja toisaalta yhdellä kurssilla voi olla monta henkilöä. Tämä on monesti yleisin tapaus ja toteutetaan tiedostolla (tietokannoissa taululla), jossa on esim. 2 saraketta, joista toinen viittaa opiskelijan id:hen ja toinen sen kurssin id:hen, jota opiskelija opiskelee.

       opiskelijat.dat
         oid | nimi
          1  | Ankka Aku    // Akulla on 2 kurssia
          2  | Ankka Tupu   // Tupulla on 1 kurssi
          3  | Ankka Lupu   // Lupulla on 1 kurssi  
          4  | Susi Sepe    // ei käy mitään kurssia
      
       kurssit.dat
         kid | kurssin nimi  
          1  | Ohjelmointi 1  // Tällä kurssilla 1 opiskelija
          2  | Ohjelmointi 2  // tällä kurssilla 1 opiskelija 
          3  | Algoritmit 1   // tällä kurssilla 2 opiskelijaa
          5  | Algortimit 96  // kukaan ei käy tätä kurssia
      
       kurssilaiset.dat   // kurssien ja opiskelijoiden suhde (relaatio)
         oid |  kid
          1  |   1    // Aku käy Ohj 1 kurssia
          1  |   3    // Aku käy Alg 1 kurssia
          2  |   3    // Tupu käy Alg 1 kurssia
          3  |   2    // Lupu käy Ohj 2 kurssia

S

  • SceneBuilder = JavaFX:än .fxml tiedostoja käsittelevä graafisen liittymän suunnitteluohjelma.
  • SVN - SubVersioN, eräs versionhallintajärjestelmä, muita esim GIT. Tätä varten tarvitaan palvelin ja ja joku asiakasohjelma (joita kurssilla on svn, TortoiseSVN jne).
  • Super = käytetään viittaamaan yläluokan instanssiin. (Moniste: Perintä, inheritance)
  • Swing = Swing on graafisten käyttöliittymien koodaukseen luotu kirjasto Javalle. Wikipedia:Swing
  • Switch = Switch-lauseella voidaan toteuttaa monivalinta osa ohjelmakoodista. (Moniste: Switch -valintalause)
  • Syntaksi = ts. ohjelmointikielen kielioppi, jolla ohjelmaa kirjoitetaan. (Wikipedia:Syntax)
  • Syntaksi virhe = Ohjelman "kieliopissa" virhe esim. sulkeet avoinna, ylimääräisiä merkkejä. (Moniste:Virhetyypit)

T

  • TDD (test-driven development) = on ohjelmointityyli, jossa kirjoitetaan testit ennen varsinaista koodia. (Moniste: Testaus)
  • This-osoitin = käytetään viittaamaan kyseisen luokan instanssiin. (Moniste: this-osoitin)

V

  • Viitemuuttuja = viitemuuttuja sisältää osoitteen tietokoneen muistissa sijaitsevaan arvoon, tai olioon. (Wikipedia: reference))

W

  • White space = Tyhjä. Välilyöntejä, tabulointimerkkejä, rivinvaihtoja ja sivunvaihtoja nimitetään yleisesti tällä nimellä. (Moniste:White Spaces)
  • WindowBuilder = Plugin, jonka Eclipse -ohjelma vaatii graafisia Swing ja/tai SWT käyttöliittymiä tehtäessä (EclipseOrg:WindowsBuilder)

Y

  • Yliluokka = Luokka jolta peritään.(ks. Luokka)
  • Ympäristömuuttuja = käyttöjärjestemän sisäinen muuttuja joka on voimassa siinä prosessissa (ympäristössä), joka on käynnistetty. Jos toisessa ympäristössä muutetaan ympäristömuuttujia, ne eivät muutu jo käynnissä olevissa ympäristössä.

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