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-luokkaJavaFX
- käyttöliittymäkirjasto, jossa käyttöliittymän ulkoasu voidaan tehdä esimerkiksiXML
-pohjaisen.fxml
-tiedoston avulla.fxml
- tiedostomuoto JavaFX ohjelman ulkoasun kuvaamiseksi. Voidaan muokata ihan tekstinä tai esimerkikiSceneBuilerillä
graafisesti.css
- Cascaded Style Sheet - tiedosto, jossa voidaan kertoa komponenttien tyylit (värit, fonttien koot, yms).SceneBuilder
- yksi mahdollinen graafinen editori.fxml
-tiedostojen muokkaamiseksisrc
- 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. Käytetään
this
-viitteen kautta. - 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ä onreturn jotakin;
. Staattista aliohjelmaa voidaan kutsua ilman että on vastaavaa oliota. Eli staattinen aliohjelma voi tehdä kaiken parametriensa avulla.
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. Javassa tällainen tulee jos esitteleen kaikkien aliohjelmien ja metodien ulkopuolella muuttujan static-tyyppiseksi ja pahimmassa tapauksessa vielä
public
.
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 omassa yksikössään, esimerkiksi aliohjelmassa (myös
main
on aliohjelma). Vastakohtana attribuutti, joka näkyy koko olion sisällä ja pahimmassa 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 hankalampaa 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();
Metodilla on aina käytössäthis
-viite (jota ei ole pakko kirjoittaa attribuuttiin tai toiseen metodiin viitatessa). - 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
- Ohjelmointikirjasto = osin API (application programming interface), 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)
- ohjelmointirajapinta = API (
application programming interface
). Vaikka APIksi voidaan sanoa mitä tahansa ohjelmointikirjastoa, niin nykyisin käsitteellä yleensä viitataan ulkopuoliseen palveluun, josta jollakin tietyillä kutsuilla saadaan haluttuja asioita. Nykyisin nämä ovat useinHTTP
-kutsuja (Web API). - 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 (Javassa viitemuuttuja) 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. - static = muuttuja (paha asia) tai aliohjelma (hyvä asia), joka ei tarvitse
this
-viitettä. Kurssilla sanotaan metodeiksi aliohjelmia, jotka tarvitsevatthis
-viitteen ja siten toimivat vain kun on luotu joku olio. Staattisuus siis tarkoittaa, että joku on olemassa vaikka mitään ei ole vielä luotu. Kaikkien aliohjelmien (ja metodien) ulkopuolella esiteltyä muuttujaa, joka ei ole staattinen, sanotaan kurssilla attribuutiksi. Ja se on aina jonkun olion oma ja käytetäänthis
-viitteen kautta. Jos muuttujan esittelee staattiseksi, niin se on yhteinen kaikille ohjelman osilla ja silloin on vaikea hallita kuka sitä käyttää. Kurssilla on yksi esimerkki osin järkevästästatic
-muuttujasta. Sen sijaan, jos aliohjelma, mieluiten funktio, on staattinen, niin sen käsittely on huomattavasti helpompaa, koska kaikki tapahtuu aliohjelman parametrien kautta. Ihannetapauksessa on staattisia funktioita, jotka "laskevat" jotakin parametreistaan ja palauttavat yksikäsitteisen tuloksen. Nämä ovat kaikkein helpoimmin testattavissa. Metodien osalta voidaan kuvitella että this on yksi näkymätön parametri joka tulee metodille. - 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)
- Syntaksivirhe = Ohjelman "kieliopissa" virhe esim. sulkeet avoinna, ylimääräisiä merkkejä. (Moniste:Virhetyypit)
- static = ???
Onko staattinen attribuutti/aliohjelma/jne siis semmoinen, joka ei tarvitse toimiakseen oliota, kun taas ei-staattinen on sellainen jota et voi käyttää ennen kuin olet ottanut jonkin olion käyttöön, jonka kautta käytät ei-staattisia asioita? Olenko ihan hakoteillä?
VL: Tuo selvästi puuttui, lisäsin sen tuohon.
—T
- TDD (test-driven development) = on ohjelmointityyli, jossa kirjoitetaan testit ennen varsinaista koodia. (Moniste: Testaus)
- this-viite = käytetään viittaamaan kyseisen luokan instanssiin, eli olioon itseensä. (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.