Suosituimmat ohjelmointikielet. Vuosien mittaan

Koko: px
Aloita esitys sivulta:

Download "Suosituimmat ohjelmointikielet. Vuosien mittaan"

Transkriptio

1 Luku- ja kirjoitustaitoa uudelle vuosituhannelle Suosituimmat ohjelmointikielet Ohjelmointi on käsityöammatti. Käsien lisäksi ohjelmointi edellyttää loogista ajattelua sekä oikeita työvälineitä. Minkä ohjelmointikielen osaamiseen kannattaa panostaa juuri nyt? Teksti: Tapani Lahti Piirrokset: Heikki Vanhatalo Vuosien mittaan markkinoille on tullut monenlaisia työkaluja, joiden on kehuttu tekevän ohjelmoinnista yhtä helppoa kuin puistossa kävelystä. Jotakin niistä on silti aina jäänyt puuttumaan. Ohjelmakoodin toimintalogiikan hahmottamiseen tarvitaan algoritmisen ajattelun taitoa. Nykyään www-sivujen ulkoasun määrittelevän koodin kirjoittamista kutsutaan html-ohjelmoinniksi. Mutta vasta javascriptin tai muun vastaavan skriptikielen käyttö vaatii niitä taitoja, jotka erottavat tosiohjelmoijan tavallisesta kotisivun viilaajasta. Tietokantojen yhteydessä puhutaan sql-ohjelmoinnista, ja tällöin tilanne on jo astetta monimutkaisempi. Itse sql-kielen standardoitu ydin määrittelee kaksiulotteisiin taulurakenteisiin 42

2 o h j e l m o i n t i k i e l e t tallennetun datan käsittelyssä tarvittavat operaatiot, mutta kaikissa suosituimmissa palvelinjärjestelmissä sitä on laajennettu valmistajakohtaisilla ohjelmallisilla rakenteilla. Työn alla olevaan uuteen SQL3-standardiin nämäkin laajennukset ovat tulossa. Kytkimistä olioihin Ohjelmointitekniikat ovat kehittyneet systemaattisesti kohti korkeampaa abstraktiotasoa. Alkuaikoina ohjelmat oli syötettävä koneisiin työläästi askel askeleelta käyttäen laitteiden omia alimman tason käskyjä eli niin sanottua konekieltä. Nykyään lähimpänä tätä laitteistonläheistä tasoa ovat prosessorikohtaiset assembler-kielet, joita edelleen käytetään varsinkin sulautettujen ohjelmistojen kehitystyössä. Kääntäjätekniikan kehittyminen mahdollisti ohjelmallisten rakenteiden määrittelyn yleisemmällä tasolla, mitkä käännettiin suoritusta varten tai tulkittiin suoraan ajon aikana konekielisiksi käskyiksi. Näin syntynyt ohjelmakoodi oli luettavampaa ja helpommin ymmärrettävää kuin konekielinen koodi. Silti lopputulos saattoi olla vaikeaselkoista spagettikoodia. Yksi syyllinen vaikeasti hahmotettavien ohjelmarakenteiden syntyyn oli hyppykomento (gotolause): sen kohdalla ohjelman suoritus siirtyi uuteen paikkaan toisaalla koodissa. Hyppykomennot ovat prosessoritasolla luontevia operaatioita, mutta ihmiselle vaikeita hahmottaa. Muutaman hypyn jälkeen käsitys lähtöpisteestä alkaa hämärtyä. Ratkaisuksi ohjelmien parempaan jäsentelyyn vakiintui rakenteinen ohjelmointi, jonka johdosta hyppykomennot joutuivat boikottiin. Ne korvattiin ehto- ja toistorakenteiden alaisilla ohjelmalohkoilla, joiden avulla ohjelmien toimintalogiikka oli mahdollista hahmottaa hierarkkisena kokonaisuutena. Rakenteisen ohjelmoinnin valtakausi jatkuu edelleen, mutta tällä vuosikymmenellä sen rinnalle on noussut uusi suuntaus, olioohjelmointi. Oudosta nimestään huolimatta se on osoittautunut oivaksi tavaksi jäsentää varsinkin moderneissa graafisissa käyttöliittymissä tarvittavia ohjelmallisia rakenteita. Olioluokka maallikoille Olio-ohjelmoinnin tärkein ero rakenteiseen ohjelmointiin on siinä, että se yhdistää olioluokan käsitteen avulla toisiinsa datan ja sen käsittelyssä tarvittavat operaatiot. Olioluokat ovat lisäksi rakenteita, jotka sopivasti nimettyinä mahdollistavat keskustelun maallikoidenkin kanssa. Oliomallissa esiintyviä luokkia saattavat olla esimerkiksi asiakas, tilaus, tuote ja varasto, joilla on suora vastine reaalimaailmassa. Viimeisin muotitrendi ohjelmistotekniikan saralla on komponenttiohjelmointi. Se on monessa suhteessa oliotekniikan kaltaista, mutta tavoitteena on viedä ohjelmistojen osien kierrätys uudelle tasolle. Komponenttiohjelmoinnissa ei parhaimmillaan tarvitse kirjoittaa ensimmäistäkään ohjelmariviä, jos komponenttien konfigurointi ja kytkeminen toisiinsa voidaan määritellä suoraan graafisten työkalujen avulla. Vain harva kieli menestyy Ohjelmointikieliä on tullut ja mennyt. Aina menestys ei ole ollut kiinni niinkään kielen piirteistä, vaan siitä, kuinka paljon tukea kieli on saanut ohjelmistotaloilta ja kuinka hyvät kehitystyökalut ovat olleet käytettävissä. Karu tosiasia on, että ohjelmistotyökaluja myydään aina vain murto-osa verrattuna niillä tehtyihin loppukäyttäjän sovelluksiin, esimerkiksi tekstinkäsittely- ja taulukkolaskentaohjelmiin. Niinpä tietyn kielen suosio nimenomaan pc-maailmassa ratkaisee paljolti sen, saako kieli taakseen riittävästi kehittäjiä säilyäkseen hengissä. Jos kielen käyttäjiä on liian vähän, kääntäjien ja muiden kieltä tukevien ohjelmointityökalujen kehitystyö on kannattamatonta puuhaa ja hiipuu ennemmin tai myöhemmin. Tällä hetkellä ohjelmistomarkkinoilla on vain muutama menestystarina. C-kieli ja etenkin sen pohjalta kehitetty c++ -kieli ovat suosionsa huipulla varsinkin kun jälkimmäinen on pitkän puurtamisen jälkeen saatu standardoitua. Samalta pohjalta ponnistaa myös uusin tulokas, Sun-yhtiön suojissa kehitelty java-kieli, joka internethuuman siivellä on onnistunut luomaan ympärilleen ennennäkemättömän julkisuuden paljolti pelkillä tulevaisuuden lupauksilla. Näiden kolmen siirrettävän eli alustasta riippumattoman kielen ohella windows-ympäristöön kirjoitetaan koodia kahdella windows-sidonnaisella kielellä, Delphillä ja Visual Basicilla. Microsoft on onnistunut luomaan Bill Gatesin suosikista, basic-kielestä, yhden modernin komponenttiohjelmoinnin suosituimmista työkaluista. Borland-yhtiön Delphi-sovelluskehitin puolestaan kätkee sisäänsä Object Pascal -kielen, joka Visual Basicin tavoin on kulkenut omia teitään pitkän kehityskaaren ajan. Työkalut ovat oleellinen osa kieltä Nykyään pelkkä ohjelmointikieli, olipa se kuinka hyvä tahansa, ei yksinään riitä menestykseen. Tuottavan ohjelmakoodin kehityksen perusedellytys on integroitu kehitysympäristö eli IDE (Integrated Development Environment), jonka alaisuudessa koodin muokkaus ja sen rakenteen tarkastelu, debuggaus ja jopa käyttöliittymän visuaalinen suunnittelu tehdään keskitetysti. Kehitysympäristöt ovat tällä vuosikymmenellä parantuneet huimasti. Yksinkertaisista asciieditoreista on siirrytty yhä älykkäämpiin, ohjelmakoodin rakennetta analysoiviin ja jäsentäviin toimintoihin. Syntaksin värikoodausta ovat seuranneet editorit, jotka tuntevat editoitavan funktion tai olioluokan rakenteen ja osaavat tuoda tarjolle luettelon mahdollisista lisäyksistä. Vielä editorit eivät sentään pakota ohjelmoijaa kirjoittamaan virheetöntä koodia, mutta ehkä sekin päivä pian koittaa. Onko java viimeinen uusi ohjelmointikieli? Ohjelmointityökalujen seuraava kehitysaskel saattaa myös olla askel poispäin itse ohjelmointikielistä kohti yleisemmän tason mallinnusvälineitä. Oliomaailmassa tällä hetkellä kasvavaa suosiota nauttiva UML-kieli (Unified Modeling Language) on otettu käyttöön monissa suunnittelutyökaluissa, joihin on myös kytketty ohjelmakoodin generointimahdollisuus. Vaikka koodin täydellinen automaattinen generointi suoraan suunnittelumallista on toistaiseksi jäänyt toteutumattomaksi haaveeksi, ajatuksena se on houkutteleva. Niinpä uusia yrittäjiä löytyy eri muodoissa vähän väliä, ja epäilemättä jossakin vaiheessa palaset loksahtavat kohdalleen. Ohjelmointikielten ominaisuudet Kieli C C++ Java Object Pascal (Delphi) Visual Basic Suorituskyky erinomainen hyvä huono hyvä tyydyttävä Siirrettävyys erinomainen hyvä hyvä huono huono Suoritustapa käännetty käännetty välikoodi/käännetty käännetty tulkittu/käännetty Kehitystyökalujen laatu hyvä hyvä tyydyttävä erinomainen erinomainen Oppimiskynnys aloittelijalle korkea korkea korkeahko matalahko matala Tuki olio-ohjelmoinnille puuttuu hyvä hyvä hyvä puutteellinen Tuki komponenttiohjelmoinnille huono tyydyttävä hyvä hyvä hyvä Käyttöympäristöt kaupalliset sovellukset, kaupalliset sovellukset, internet-sovellukset, räätälöidyt sovellukset räätälöidyt sovellukset käyttöjärjestelmät, käyttöjärjestelmät palvelinkomponentit sulautetut järjestelmät Suosio laskussa vakaa nousussa vakaa nousussa Ohjelmoitavan sovelluksen tai komponentin käyttöympäristö ja suorituskykyvaatimukset ratkaisevat valittavan ohjelmointikielen. 43

3 C ja c++ ammattilaisille Cja c++ ovat kaksi kieltä, joiden ominaisuuksista kukaan ei enää jaksa tehdä suurta numeroa, mutta silti niitä käytetään kaikkialla. Molemmat kielet ovat saaneet alkunsa AT&T-yhtiön Belllaboratoriossa tehdyn kehitystyön tuloksena. C syntyi Brian Kernighanin ja Dennis Ritchien aivoituksista 1970-luvulla, c++ puolestaan Bjarne Stroustrupin etsiessä vuosikymmentä myöhemmin parempaa tapaa toteuttaa simuloinnissa tarvittavia oliorakenteita. C ja c++ ovat ohjelmointikielten joukossa tehotyökaluja, joiden avulla voidaan koodata mitä tahansa käyttöjärjestelmistä alkaen. C-kielellä ja unix-käyttöjärjestelmällä on historiallinen kohtalonyhteys, jonka kunniakkaita perinteitä nykyinen Linux-buumi entisestään korostaa. Molemmat kielet on nykyään stardardoitu, joten käytettävissä on valmistajista riippumaton keino arvioida kielten piirteitä. Sekä c että c++ on suunniteltu sillä periaatteella, että ohjelmoija tietää mitä tekee. Valitettavasti tämä ei läheskään aina pidä paikkaansa, ja tulokset näkyvät nykyisillä ohjelmistomarkkinoilla. Tyypillisiä c/c++ -sovellusten ongelmia ovat ajon aikana varatun dynaamisen muistin hallintaan liittyvät ongelmat, joita on kaksi päätyyppiä. Sovellukset voivat kaatua tai käyttäytyä muutoin kummallisesti osoitinmuuttujien viitatessa muistiosoitteisiin, jotka on unohdettu alustaa. Toinen ongelmatyyppi on vapauttamatta jääneet suorituksen aikana varatut muistialueet, jotka jäävät rasittamaan keskusmuistia ja muiden sovellusten toimintaa. Moderneissa käyttöjärjestelmissä sovelluksen pysäytys myös vapauttaa sen käyttämät muistialueet. Entä jos sovellusta on tarkoitus ajaa keskeytyksettä jopa vuosikausia? Käyttöjärjestelmän ytimessä olevat muistinhallintavirheet saattavat hiljalleen hyydyttää koko järjestelmän, ja vasta uudelleenkäynnistys korjaa tilanteen. C/c++ -syntaksissa on monia kompastuskohtia aloittelijoille. Isot ja pienet kirjaimet eivät ole samanarvoisia, ja datavektoreissa ja taulukoissa käytettävät indeksit alkavat ykkösen sijasta nollasta ja päättyvät vastaavasti ennen aikojaan. Siten esimerkiksi kymmenen alkion kokoisen taulukon viimeisen alkion indeksi on yhdeksän. Myös operaattoreissa on ongelmallisia tapauksia: esimerkiksi sijoitusoperaattori (=) on helppo sekoittaa vertailuoperaattoriin (==). C-koodi on virhealtis C++ -kieli paisui standardointiprosessin aikana melkoisesti, ja nykyään kieli kaikkine piirteineen onkin aikamoinen mammutti. Harva ohjelmoija käyttää työssään kaikkia kielen standardoituja piirteitä, vaan usein toimeen tulee huomattavan pienellä rakenteiden osajoukolla. Pahimmin standardin laajuudesta kärsivät c++ -kielen kääntäjien valmistajat, joiden on standardin mukaan tuettava periaatteessa kielen kaikkia mahdollisia rakenteita. Kääntäjistä tulee tällöin isoja ja monimutkaisia, mikä lisää myös virhemahdollisuuksia. C ja c++ ovat kieliä, joilla taitava ohjelmoija voi tehdä kaiken tarvitsemansa koodin. Vastapainona tarvitaan järjestelmällistä asennetta ja huolellisuutta, sillä kääntäjän hyväksymä koodi saattaa edelleen sisältää virheellisiä rakenteita. Parhaimmillaan c ja c++ ovatkin ammattimaisessa sovelluskehityksessä, jossa ohjelmoija elää kielen kanssa päivittäin. Tällöin vaaralliset rakenteet tulevat ajan mittaan tutuiksi ja niitä oppii varomaan. Satunnaisen harrastelijan sen sijaan on viisainta pysyä näistä kielistä kaukana. Vaikka c++ onkin standardoitu ja siten periaatteessa siirrettävä kieli, sen avulla rakennetut luokkakirjastot ja valmiin ohjelmarungon luovat sovelluskehikot (application frameworks) tekevät c++ -koodista usein tiettyyn ympäristöön ja jopa tiettyyn kehitystyökaluun sidottua. Siirrettävyyden ylläpito on mahdollista, mutta se on otettava huomioon jo suunnittelun alkuvaiheessa. Visual Basic ja Object Pascal (Delphi): windows-ohjelmia palikoista Microsoftin Visual Basic ja Borlandin Delphi kuuluvat niihin ohjelmointityökaluihin, jotka voisivat mainostaa itseään tunnuslauseella meissä kaikissa asuu pieni ohjelmoija. Niiden avulla nimittäin pääsee pisimmälle kirjoittamatta ensimmäistäkään riviä perinteistä koodia. Ne ovat samalla uuden komponenttiohjelmointikonseptin tarjoamien mahdollisuuksien parhaita testiympäristöjä. Molemmat työkalut ovat parhaimmillaan ohjelmien käyttöliittymien suunnittelussa. Painonapit, listat ja otsikkotekstit voi raahata ikkunaan oikealle paikalleen suoraan hiiren avulla, ja käyttöliitty- Ohjelmistojen suunnitteluun on jo käytettävissä monenlaisia paperin ja kynän korvaavia työkaluja. Toistaiseksi ohjelmakoodin täydellinen generointi suunnittelumallin pohjalta ei ole vielä yleistynyt. Kuvan suunnittelutyökalu on ohjelmoitu kokonaisuudessaan Visual Basicilla, joka kelpaa nykyään myös vaativiin ohjelmointitehtäviin. män toimivuutta pääsee testaamaan välittömästi. Sovelluskehityksen ideana on, että valtaosa toiminnallisuudesta saadaan aikaan Microsoft-sidonnaisen COM-arkkitehtuurin (Component Object Model) mukaisia ActiveX-laajennuspalikoita hyödyntämällä. ActiveX-komponenteissa voi olla sisäänrakennettuna monipuolisia käyttöliittymän määrittelyyn, tiedostojen ja tietokantojen käsittelyyn, internet-yhteyksiin ja laskennallisiin operaatioihin liittyviä toimintoja. Jos esimerkiksi sovelluksessa tarvitaan monipuolisen kalenterin toimintoja, sen saa käyttöön yksinkertaisesti raahaamalla kalenterikomponentin sovelluksen ikkunaan. Parhaimmillaan komponentit nopeuttavat sovelluskehitystä moninkertaisesti. Näilläkin työkaluilla on kuitenkin rajansa. Siinä vaiheessa, kun on tarve lisätä käyttöliittymän tueksi ohjelmallista toiminnallisuutta, jota ei komponenteissa ole valmiina, on edelleen palattava takaisin tekstieditorin käyttöön. Sovelluksen räätälöidyn toiminnallisen logiikan kirjoittamiseen nämä visuaaliset työkalut eivät tuo mitään uutta. Basic-kieli on alunperin mate- 44

4 o h j e l m o i n t i k i e l e t Lunastaako Java lupaukset? Java-kieli on aito internet-aikakauden tuote. Se on saanut osakseen enemmän mediajulkisuutta kuin yksikään ohjelmointikieli, vaikka kielen kehitys on vielä pahasti kesken ja lupaukset suurelta osin lunastamatta. Javan isä James Gosling kehitti uutta ohjelmointikieltä alunperin vuorovaikutteisten multimediaympäristöjen tarpeisiin, mutta www:n suosio johdatti javan uusille urille. Keskeinen javan piirre on, että se määrittelee itse oman suoritusympäristönsä eli niin sanotun java-virtuaalikoneen. Java-sovellusta pitäisikin pystyä ajamaan missä tahansa ympäristössä, johon määrityksen mukainen virtuaalikone on asennettu. Virtuaalikoneiden toteutuksissa on eri ympäristöissä vielä huomattavia eroja, ja myös toiminnallisuudessa on paljon puutteita. Niinpä javan alkuperäinen iskulause kirjoita kerran, aja kaikkialla onkin turhautuneiden kehittäjien piirissä muuntunut muotoon kirjoita kerran, testaa kaikkialla. Java-sovellukset käännetään siirrettäväksi tavukoodiksi, jota virtuaalikone sitten tulkitsee kohdekoneen tarjoamassa ajoympäristössä. Tavukoodin tulkinta on hitaampaa kuin aitojen käännettyjen sovellusten suoritus. Suorituskykyyn ja resurssivaatimuksiin liittyvät ongelmat ovatkin yhteensopivuuden ohella java-toteutusten suurimpia ongelmia tällä hetkellä. Periaatteessa java-sovelluksen tavukoodi voidaan kääntää kohdekoneessa aidoksi binäärikoodissa, mikä nopeuttaa ohjelmien suoritusta parhaimmillaan moninkertaisesti. Sun on muutoinkin luvannut javan suorituskykyongelmiin parannuksia. Roskat pois muistista Ohjelmointikielenä java on askel c-kielestä c++:n kautta aitoon olio-ohjelmointiin. Java-kielen syntaksi on tarkoituksella suunniteltu mahdollisimman pitkälle yhteensopivaksi c:n ja c++:n kanssa. Merkittävin ero on siinä, että javalla tehdyt sovellukset ovat aina aitoja luokkarakenteita käyttäviä oliosovelluksia, kun c++:ssa oliorakenteiden käyttö oli vielä optiona. Yhteensopivuuden vuoksi javaan on myös jäänyt piirteitä, joista olisi ehkä ollut parempi luopua. Javassakin ohjelmoijan on muistettava isojen ja pienten kirjainten erot, samoin taulukoiden indekseissä ja eräissä muissa rakenteissa on alunperin c:stä periytyviä rasitteita. Toisaalta java korjaa c:n ja c++:n pahimmat ongelmat. Javassa on automaattinen muistiroskien keruumekanismi, jonka ansiosta ajon aikana varattuja muistirakenteita ei tarvitse erikseen vapauttaa. Lisäksi kielen rakenteista on poistettu sekaannusta aiheuttavia piirteitä, esimerkiksi vertailuoperaattorin (==) ja sijoitusoperaattorin (=) sekoittaminen toisiinsa c-kielen tavoin ei ole enää mahdollista. Javassa on käytössä kaksitasoinen suojausmekanismi, jossa koodin tietoturvaa vaarantavia rakenteita tutkitaan sekä käännöksen että suorituksen aikana. Esimerkiksi selaimen ruutuun ladatut java-appletit eivät näe kohdekoneen kiintolevyjen sisältöä ja voivat ottaa yhteyden verkon yli vain siihen palvelimeen, jolta ne ladattiin. Näillä piirteillä pyritään estämään virusten ja erityyppisten tietoturvaongelmien pesiytyminen java-ympäristöihin. Kännykkää javalla Monissa eri ympäristöissä ajettavaksi tarkoitettu sovellus joutuu tekemään monenlaisia kompromisseja käyttöliittymän ominaisuuksien suhteen. Uusimmissa versioissa javan käyttöliittymäkehitys on lähtenyt kokonaan omaan suuntaansa, jossa ei edes yritetä matkia suoritusympäristön omaa luontaista käyttöliittymää. Niinpä java-sovellukset on jatkossa helppo tunnistaa erilaisesta käyttöliittymästä. Java etsii yhä paikkaansa. Haaveet kaikkiin tarkoituksiin sopivat yleisohjelmointikielestä eivät toistaiseksi ole toteutuneet, ja monet kunnianhimoiset java-kehitysprojektit on haudattu. Tällä hetkellä java on luontevimmillaan web-sivujen toiminnallisten laajennusten toteutuksessa sekä muissa heterogeeniseen ympäristöön kehitetyissä sovelluksissa. Itse java-kielestä on myös tullut suosittu ohjelmoinnin opetuskieli yliopistoissa ja korkeakouluissa. Jatkossa java laajentaa edelleen reviiriään. Enterprise Java- Beans -määrityksen mukaiset java-komponentit voivat sovelluspalvelimeen asennettuina huolehtia hajautettujen sovellusten liiketoimintalogiikan toiminnasta. Java-virtuaalikone on sovitettu myös Epoc-käyttöjärjestelmään, joten tulevaisuuden matkapuhelimiakin voi ohjelmoida javalla. matiikanopettajina toimineiden John Kemenyn ja Tom Kurtzin kehittämä helposti opittava ohjelmointikieli. Sillä oli keskeinen rooli myös Microsoftin alkuaikoina silloin, kun yhtiön keulakuvalla oli vielä aikaa kirjoittaa itse ohjelmakoodia. Visual Basic syntyi kuitenkin vasta, kun käyttöliittymäguru Alan Cooper toteutti näkemyksiään uudentyyppisestä sovelluskehitysympäristöstä. Delphin ytimessä puolestaan on käytössä se, mitä on jäljellä Borlandin Turbo Pascal -kielestä. Turbo Pascal kaupallisti menestyksekkäästi sveitsiläisen Niklaus Wirthin opetuskäyttöön suunnitteleman Pascal-kielen, johon oli toteutettu sen ajan ohjelmointikielten parhaat ominaisuudet. Myöhemmin Borland laajensi kieltä olio-ohjelmoinnissa tarvittavilla luokkarakenteilla, ja niin syntyi nykyisen Delphin käyttämä Object Pascal. Salamannopeaa testausta Keskeinen Delphin käyttöön vaikuttava ominaisuus on se, että vuosien kehityksen tuloksena Borlandin Pascal-kääntäjä on saatu salamannopeaksi. Tämän ansiosta sovellusta pääsee testaamaan lähes välittömästi ohjelmakoodin muokkauksen jälkeen, vaikka siinä välissä koodi käännetään aidoksi binäärikoodiksi. Visual Basicissa sama testausvaihe tehdään ajamalla ohjelmakoodia tulkatussa muodossa, ja käännös tehdään vasta myöhemmin. Ohjelmointikielinä Visual Basic ja Object Pascal eroavat toisistaan monessa merkittävässä suhteessa. Basicissa ei esimerkiksi tarvitse määritellä lainkaan käytettäviä muuttujia ennen käyttöä, mikä toisinaan saattaa johtaa vaikeasti löydettäviin ohjelmointivirheisiin. Jos esimerkiksi määrittelet ohjelmassa muuttujan nimeltä luku1 ja myöhemmin viittaat siihen vahingossa nimellä luku11, basic-tulkki kuvittelee, että olet määritellyt uuden muuttujan. Muuttujien datatyypit ovat basic-kielessä usein epämääräisiä, ja käytössä on monia erilaisia datatyyppejä tukeva variant-tyyppi. Object Pascal on sikäli aidompi ohjelmointikieli, että siinä kaikki muuttujat ja niiden datatyypit täytyy määritellä ennen käyttöä. Myös olio-ohjelmoinnin näkökulmasta Object Pascal on Visual Basicia oikeaoppisempi, sillä jälkimmäinen ei tue periytymisrakenteita. Molemmat kielet ovat miellyttäviä käyttää siksi, että isot ja pienet kirjaimet ovat samanarvoisia ja taulukkorakenteiden käsittely on intuitiivisempaa kuin c/c++:ssa. Parhaimmillaan basic on merkkijonotyyppisten muuttujien käsittelyssä. Kokonaisuutena Object Pascal on kuitenkin enemmän oikean ohjelmointikielen kaltainen. Molempien kielten suurin miinus on siinä, että ne elävät omassa maailmassaan ja niillä tehtyjen sovellusten siirrettävyys pois windows-ympäristöstä on käytännössä olematon. Lisäksi varsinkin Visual Basic sitoo käyttäjät jopa avointen web-ominaisuuksien toteutuksessa paljolti Microsoftin omiin työkaluihin, etenkin Internet Explorer -selaimeen. Rajoituksistaan huolimatta Visual Basic ja Delphi ovat heittäneet haasteen kilpailevien käyttöjärjestelmien sovelluskehitystyökaluille. Parhaimmillaan ne ovat tehtävissä, joissa toimivia tuloksia pitää saada nopeasti. Esimerkiksi asiakas-palvelin -sovelluksissa palvelinpään toiminnallisuus koodataan usein c++:n ja javan kaltaisilla kielillä, mutta asiakassovelluksen kehitys on VB:n ja Delphin valtakuntaa. 45

5 Tulevaisuus: Parempaa koodia nopeammin? Ohjelmistokehityksessä on perinteisesti eroteltu toisistaan suunnittelijan ja ohjelmoijan toimenkuvat. Näistä edellisen tehtävänä on ollut määritellä sovelluksen looginen rakenne ja tuottaa asiakirja, jonka pohjalta ohjelmoijat ovat sitten kirjoittaneet suoritettavan ohjelmakoodin. Suunnittelijat ovat saaneet yleensä huomattavasti korkeampaa palkkaa. Niinpä jokainen uratietoinen ohjelmoija on määrätietoisesti yrittänyt edetä urallaan ohjelmoinnista suunnittelutehtäviin tai projektipäälliköksi ja lopulta tietohallintoon kravattikaulaiseksi palaverimyyräksi, vaikka halu ohjelmakoodin kirjoittamiseen olisikin edelleen lähinnä sydäntä. Tuloksena on siis usein ollut se, että urallaan edetessään parhaat ohjelmoijat lopulta lopettavat ohjelmoinnin kokonaan, vaikka taitoa ja halua olisikin. Tilalle palkataan aloitteleva bittinikkari, joka aloittaa syklin jälleen alusta. Tämän kierteen katkaisemiseksi joissakin yrityksissä on kehitetty ohjelmoijille mahdollisuuksia edetä urallaan siten, että he saavat edelleen olla suorassa yhteydessä todellisen tuotannollisen ohjelmakoodin kanssa. Yrityksen johdolta tämä edellyttää ennakkoluulottomuutta ja ohjelmoinnin luonteen ymmärtämistä. Tässä mallissa parhaat ohjelmoijat saattavat erimerkiksi saada korkeampaa palkkaa kuin heidän esimiehensä. Hakkerikulttuurin painolasti Ohjelmistoalalla on edelleen jäljellä paljon merkkejä hakkerikulttuurista, jossa monenlaisten muille käsittämättömien kikkojen avulla toimivaksi saatu sovellus tuo tekijälleen meriittiä. Lisäksi on helppo tehdä itsensä nopeasti korvaamattomaksi jättämällä koodi kommentoimatta ja käyttämällä ohjelmointikielen vaikeimmin ymmärrettäviä rakenteita. Ohjelmissa olevat virheet ovat oma lukunsa ohjelmistoteollisuuden synkkää historiaa. Kehityksen kiivas tahti ei suinkaan ole parantanut tilannetta. Nykyään ohjelmistovirheet saattavat jäädä lopullisesti korjaamatta siksi, että uusi versio ilmestyy nopeasti markkinoille ja sisältää jälleen joukon uusia piirteitä ja uusia virheitä. Valmistaja pitää itsestään selvänä sitä, että käyttäjät päivittävät tuotteen uuteen versioon, jos ongelmia vanhan kanssa on ilmennyt. Kulut maksaa asiakas. Tälle tuotetyypille on oma nimensäkin, good-enough software eli tarpeeksi hyvät ohjelmat. Ideana on se, että ohjelman ei tarvitse olla täysin virheetön, vaan ainoastaan niin hyvä, että sen voi myydä asiakkaille. Samalla luodaan edellytykset loppumattomalle päivityskierteelle. Tätä ilmiötä on analysoinut muun muassa Edward Yourdon Rise & resurrection of the American programmer -kirjassaan. RAD: laatua liukuhihnalta? Tällä vuosikymmenellä ohjelmistosuunnittelijoiden työkalupakkiin on tarjottu termiä Rapid Application Development eli RAD. Sen ideana on pyrkiä mahdollisimman nopeasti toimintakuntoiseen sovellukseen eli prototyyppiin, jota sitten päästään testaamaan ja kehittämään edelleen. Jotta RAD-konseptilla olisi menestyksen mahdollisuuksia, ohjelmointityökalujen on tuettava nopeasti ajokuntoon saatavan sovelluksen kehitystä. Avainasemassa ovat tällöin Visual Basicin ja Delphin kaltaiset komponenttityökalut, joissa valtaosa toiminnallisuudesta voidaan ostaa suoraan kaupan hyllyltä. Vaikka RAD-konsepti ja komponenttiohjelmointi eivät yksin voi ratkaista kaikkia mahdollisia ohjelmointiongelmia, parhaimmillaan ne kuitenkin auttavat satunnaista ohjelmoijaa tuottamaan parempia sovelluksia vähemmällä työllä. C Sama tehtävä, viisi kieltä Esimerkkikoodissa lasketaan lukujen neliöt ja tallennetaan ne myöhempää käyttöä varten käyttäen viiden eri ohjelmointikielen syntaksia. int tulos[101]; void laske() int i; /* lasketaan lukujen neliöt */ for (i=0; i<101; i++) tulos[i] = i*i; C++ class Laskin int tulos[101]; Java class Laskin public static void laske( ) int i; tulos = new int[101]; // lasketaan lukujen neliöt for (i=0; i<101; i++) tulos[i] = i*i; Object Pascal (Delphi) private int[] tulos; Visual Basic Dim tulos(100) As Integer Sub laske() lasketaan lukujen neliöt For i = 0 To 100 tulos(i) = i * i Next i End Sub public: void laske(void); ; void Laskin::laske(void) // lasketaan lukujen neliöt for (int i=0; i<101; i++) tulos[i] = i*i; unit Laskin; interface TLaskin = class(tobject) private tulos : array[0..100] of Integer; public procedure laske; end; implementation procedure TLaskin.laske; var i : Integer; begin (* lasketaan lukujen neliöt *) for i:=0 to 100 do begin tulos[i] := i*i; end; end; 46

6 o h j e l m o i n t i k i e l e t @@@@@@@@@@6Kf?S@@@?f@@@@@@(Yh?V'@@@@@@?f@@@@@@@@@@@@6Xe?@@@@?h3@@@@@@@L?W&@@@@5?f O2@@@@@@@@6K O2@@@@@@@@@@@@@@@@@?hO2@@@@@@@@@@@@@@6Xf?@@@@@@@@@6Xf?@@@@@@@@@@@?@@@@@@@@@@@@@e?@@@@@@@@@@@ SANASTO COM (Component Object Model) Microsoftin määrittelemä ohjelmakomponenttien rajapinta, johon perustuvat mm. Visual Basicin ja Delphin ActiveX-laajennukset. IDE (Integrated Development Environment) Tietyn ohjelmointikielen kehitystyöväline, joka kääntäjän lisäksi sisältää mm. editorin, debuggerin ja dokumentaation. Konekieli Kääntäjän tuottama prosessorin ymmärtämä komentojoukko. Komponentti Ohjelmapalanen, joka sisältää tietyn tehtävän suorittamiseen tarvittavat muistirakenteet ja toiminnalliset piirteet. Laajamittaisessa käytössä mm. Visual Basic- ja Delphi-työkaluissa. Kääntäjä Ohjelma, joka lukee ja tulkitsee ohjelmointikielen syntaksin mukaisen lähdekodin konekieliseksi ohjelmaksi. Luokkakirjasto Olio-ohjelmoinnissa käytetty valmiiksi tiettyyn tarkoitukseen suunniteltujen olioluokkien kokoelma. Lähdekoodi Ohjelmointikielen syntaksin mukaisia rakenteita noudattava teksti, jonka ohjelmoija kirjoittaa. Olio(luokka) Olio-ohjelmoinnissa käytetty tiettyyn tarkoitukseen suunniteltu ohjelmanosa, joka yhdistää tilatietoa ja toiminnallisuutta yhteen kokonaisuuteen. RAD (Rapid Application Development) Ohjelmointitekniikka, jossa pyritään nopeasti tuottamaan ajokelpoinen ohjelman prototyyppi testattavaksi ja jatkokehitystyön pohjaksi. Syntaksi Ohjelmointikielen kielioppisäännöt, joiden mukaan ohjelmoija kirjoittaa kääntäjän ymmärtämää lähdekoodia. YHTEENVETO OHJELMOINTIKIELET Ohjelmointikielten kehitys on hidastunut. Java on ainoa tällä vuosikymmenellä syntynyt laajalle levinnyt uusi kieli. Sen sijaan ohjelmointityökalut ovat viime vuosina kehittyneet huimasti, ja ohjelmakoodin kirjoittaminen on entistä helpompaa. Tällä hetkellä yleisessä käytössä olevista kielistä c ja c++ ovat vakiintuneet laajojen kaupallisten ohjelmien ja käyttöjärjestelmien työkaluiksi. Visual Basic ja Delphi puolestaan ovat uuden komponenttipohjaisen ohjelmoinnin tehovälineitä, mutta hintana on sovellusten windows-sidonnaisuus. Java tarjoaa siirrettävyyttä ja modernin oliokielen rakenteet, mutta toistaiseksi java-sovellukset kärsivät epävakaudesta, hitaudesta ja kovista resurssivaatimuksista. Lyhyempi odotusaika. Enemmän hupia ja hyötyä. Tarjoamme sinulle yhden maailman nopeimmista CD-RW-asemista. Nyt voit entistäkin helpommin tallentaa maailmasi, olipa kyse sitten musiikista, kuvista, videoista, grafiikasta tai muista tiedostoista. CD-levyjen lähes 1 Gt:n kapasiteetti takaa, että tila ei lopu kesken. Ja koska SONYn CD-RW-asema on uudelleenkirjoittava, voit tallentaa samalle CD-levylle uudelleen, ja uudelleen, ja uudelleen... Sony CD-RW-aseman mukana saat myös monipuolisen ohjelmistopaketin: Ainutlaatuinen esiohjelmoitava varmuuskopiointiohjelma. Drag-and-drop- ohjelma, jolla lisäät tallennuskapasiteetin lähes 1 gigatavuun. Ohjelma omien CD-kansien luomiseen Tallenna oma musiikkisi Kuvakirjasto Monimutkaista? Päinvastoin - selkeiden ohjeiden ansiosta se ei enää voisi olla yksikertaisempaa. Asennusruuvit, kaapeli ja 1 vuoden ilmainen puhelintuki sisältyvät hintaan. Valittavanasi on monta vaihtoehtoa*. Hinnat alkaen 1490,- Kuvan CD-RW-asema on vain yksi esimerkki tuotteistamme. Saatavana seuraavat mallit: 4x/2x/24x sisäinen ATAPI * 4x/4x/24x sisäinen ATAPI * 8x/4x/32x sisäinen ATAPI * 8x/4x/32x sisäinen SCSI * 4x/2x/6x ulkoinen USB Win98 taiu Mac * 4x/4x/6x ulkoinen USB Win98 tai Mac. Jälleenmyyjät: Amitel Oy, Puh , Four Leaf Technologies Oy, Puh ,

Visual Basic -sovelluskehitin Juha Vitikka

Visual Basic -sovelluskehitin Juha Vitikka Visual Basic -sovelluskehitin Helsinki 30.10.2000 Seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Visual Basic sovelluskehitin Seminaari: Ohjelmistotuotantovälineet Tietojenkäsittelytieteen

Lisätiedot

4. Lausekielinen ohjelmointi 4.1

4. Lausekielinen ohjelmointi 4.1 4. Lausekielinen ohjelmointi 4.1 Sisällys Konekieli, symbolinen konekieli ja lausekieli. Lausekielestä konekieleksi: - Lähdekoodi, tekstitiedosto ja tekstieditorit. - Kääntäminen ja tulkinta. - Kääntäminen,

Lisätiedot

C++ Ohjelmoijan käsikirja. Johdanto

C++ Ohjelmoijan käsikirja. Johdanto Johdanto C++ Ohjelmoijan käsikirja Johdanto Tervetuloa Inside C++-kirjan pariin. Tämä on opaskirja standardi C++:n käyttöön. Käsittelemme kirjassa kaikki syntaksin, kieliopin, olio-ohjelmoinnin ja standardikirjastojen

Lisätiedot

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo Concurrency - Rinnakkaisuus Group: 9 Joni Laine Juho Vähätalo Sisällysluettelo 1. Johdanto... 3 2. C++ thread... 4 3. Python multiprocessing... 6 4. Java ExecutorService... 8 5. Yhteenveto... 9 6. Lähteet...

Lisätiedot

1. Olio-ohjelmointi 1.1

1. Olio-ohjelmointi 1.1 1. Olio-ohjelmointi 1.1 Sisällys Olio-ohjelmointi on eräs ohjelmointiparadigma. Olio-ohjelmoinnin muotoja. Ohjelmiston analyysi ja suunnittelu. Olioparadigman etuja ja kritiikkiä. 1.2 Ohjelmointiparadigmoja

Lisätiedot

Pedacode Pikaopas. Java-kehitysympäristön pystyttäminen

Pedacode Pikaopas. Java-kehitysympäristön pystyttäminen Pedacode Pikaopas Java-kehitysympäristön pystyttäminen Pikaoppaan sisältö Pikaoppaassa kuvataan, miten Windowstyöasemalle asennetaan Java-ohjelmoinnissa tarvittavat työkalut, minkälaisia konfigurointeja

Lisätiedot

5. HelloWorld-ohjelma 5.1

5. HelloWorld-ohjelma 5.1 5. HelloWorld-ohjelma 5.1 Sisällys Lähdekoodi. Lähdekoodin (osittainen) analyysi. Lähdekoodi tekstitiedostoon. Lähdekoodin kääntäminen tavukoodiksi. Tavukoodin suorittaminen. Virheiden korjaaminen 5.2

Lisätiedot

5. HelloWorld-ohjelma 5.1

5. HelloWorld-ohjelma 5.1 5. HelloWorld-ohjelma 5.1 Sisällys Lähdekoodi. Lähdekoodin (osittainen) analyysi. Lähdekoodi tekstitiedostoon. Lähdekoodin kääntäminen tavukoodiksi. Tavukoodin suorittaminen. Virheiden korjaaminen 5.2

Lisätiedot

AS-0.1103 C-ohjelmoinnin peruskurssi 2013: C-kieli käytännössä ja erot Pythoniin

AS-0.1103 C-ohjelmoinnin peruskurssi 2013: C-kieli käytännössä ja erot Pythoniin AS-0.1103 C-ohjelmoinnin peruskurssi 2013: C-kieli käytännössä ja erot Pythoniin Raimo Nikkilä Aalto-yliopiston sähkötekniikan korkeakoulu - Automaation tietotekniikan tutkimusryhmä 17. tammikuuta 2013

Lisätiedot

11/20: Konepelti auki

11/20: Konepelti auki Ohjelmointi 1 / syksy 2007 11/20: Konepelti auki Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007 p.1/11 Tämän luennon

Lisätiedot

Ohjelmointi 1 / syksy /20: IDE

Ohjelmointi 1 / syksy /20: IDE Ohjelmointi 1 / syksy 2007 10/20: IDE Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007 p.1/8 Tämän luennon rakenne

Lisätiedot

Microsoft Visual J++ ohjelmointiympäristö

Microsoft Visual J++ ohjelmointiympäristö Microsoft Visual J++ ohjelmointiympäristö Ohjelmistotuotantovälineet seminaarin alustus Raine Lehto Helsingin yliopisto Tietojenkäsittelytieteen laitos 08.11.2000 Helsinki Sisällys 1 Johdanto...2 2 Sovelluskehys

Lisätiedot

WWW-ohjelmoinnin kokonaisuus. WWW-OHJELMOINTI 1 Merkkauskielet. Merkkauskielten idea. Merkkauskielet (markup languages) Merkkauskielten merkitys

WWW-ohjelmoinnin kokonaisuus. WWW-OHJELMOINTI 1 Merkkauskielet. Merkkauskielten idea. Merkkauskielet (markup languages) Merkkauskielten merkitys WWW-OHJELMOINTI 1 WWW-ohjelmoinnin kokonaisuus SGML, XML, HTML WWW-selaimen sovellusohjelmointi WWW-palvelimen sovellusohjelmointi Eero Hyvönen Tietojenkäsittelytieteen laitos Helsingin yliopisto 26.10.2000

Lisätiedot

1 Tehtävän kuvaus ja analysointi

1 Tehtävän kuvaus ja analysointi Olio-ohjelmoinnin harjoitustyön dokumentti Jyri Lehtonen (72039) Taneli Tuovinen (67160) 1 Tehtävän kuvaus ja analysointi 1.1 Tehtävänanto Tee luokka, jolla mallinnetaan sarjaan kytkettyjä kondensaattoreita.

Lisätiedot

Järjestelmäarkkitehtuuri (TK081702) AJAX, Asynchronous JavaScript And XML. AJAX, Asynchronous JavaScript And XML

Järjestelmäarkkitehtuuri (TK081702) AJAX, Asynchronous JavaScript And XML. AJAX, Asynchronous JavaScript And XML Järjestelmäarkkitehtuuri (TK081702) Ajax 2000-luvun alkuvuosina selainsotien rauhoituttua ohjelmistotalot alkoivat kehittää selainten luoman uuden ohjelmointiympäristön käyttötapoja. Syntyi AJAX (Asynchronous

Lisätiedot

JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?

JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++? JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: http://java.sun.com/docs/books/tutorial/index.html Vesterholm, Kyppö: Java-ohjelmointi,

Lisätiedot

Ohjelmistojen mallintaminen, mallintaminen ja UML

Ohjelmistojen mallintaminen, mallintaminen ja UML 582104 Ohjelmistojen mallintaminen, mallintaminen ja UML 1 Mallintaminen ja UML Ohjelmistojen mallintamisesta ja kuvaamisesta Oliomallinnus ja UML Käyttötapauskaaviot Luokkakaaviot Sekvenssikaaviot 2 Yleisesti

Lisätiedot

TIE-20200 Samuel Lahtinen. Lyhyt UML-opas. UML -pikaesittely

TIE-20200 Samuel Lahtinen. Lyhyt UML-opas. UML -pikaesittely Lyhyt UML-opas UML -pikaesittely UML, Unified Modeling Language Standardoitu, yleiskäyttöinen mallinnuskieli, jota ylläpitää/hallitsee (Object Management Group) OMG Historiaa: 90-luvulla oli paljon kilpailevia

Lisätiedot

Hajautettujen sovellusten muodostamistekniikat, TKO_2014 Johdatus kurssiin

Hajautettujen sovellusten muodostamistekniikat, TKO_2014 Johdatus kurssiin Hajautettujen sovellusten muodostamistekniikat, TKO_2014 Johdatus kurssiin Ville Leppänen HSMT, c Ville Leppänen, IT, Turun yliopisto, 2009 p.1/15 HSMT (Java-kielellä) Aineopintotasoinen kurssi, 5op. Luennot:

Lisätiedot

Tähtitieteen käytännön menetelmiä Kevät 2009

Tähtitieteen käytännön menetelmiä Kevät 2009 Tähtitieteen käytännön menetelmiä Kevät 2009 2009-01-12 Yleistä Luennot Luennoija hannu.p.parviainen@helsinki.fi Aikataulu Observatoriolla Maanantaisin 10.00-12.00 Ohjattua harjoittelua maanantaisin 9.00-10.00

Lisätiedot

815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset

815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset Harjoituksen aiheena ovat aliohjelmat ja abstraktit tietotyypit sekä olio-ohjelmointi. Tehtävät tehdään C-, C++- ja Java-kielillä.

Lisätiedot

JReleaser Yksikkötestaus ja JUnit. Mikko Mäkelä 6.11.2002

JReleaser Yksikkötestaus ja JUnit. Mikko Mäkelä 6.11.2002 JReleaser Yksikkötestaus ja JUnit Mikko Mäkelä 6.11.2002 Sisältö Johdanto yksikkötestaukseen JUnit yleisesti JUnit Framework API (TestCase, TestSuite) Testien suorittaminen eri työkaluilla Teknisiä käytäntöjä

Lisätiedot

Yksikkötestaus. import org.junit.test; public class LaskinTest public void testlaskimenluonti() { Laskin laskin = new Laskin(); } }

Yksikkötestaus. import org.junit.test; public class LaskinTest public void testlaskimenluonti() { Laskin laskin = new Laskin(); } } Yksikkötestauksella tarkoitetaan lähdekoodiin kuuluvien yksittäisten osien testaamista. Termi yksikkö viittaa ohjelman pienimpiin mahdollisiin testattaviin toiminnallisuuksiin, kuten olion tarjoamiin metodeihin.

Lisätiedot

J2EE vs..net Olli Sakari

J2EE vs..net Olli Sakari TEEMA-ARTIKKELI J2EE vs..net Olli Sakari J2EE ja.net ovat tietojärjestelmäteknologioita, joiden varaan suuri osa tulevaisuuden tietojärjestelmistä tulee rakentumaan. Molemmat teknologioista tarjoavat välineitä

Lisätiedot

Ohjelmointi 1. Kumppanit

Ohjelmointi 1. Kumppanit Ohjelmointi 1 Kumppanit November 20, 2012 2 Contents 1 Mitä ohjelmointi on 7 2 Ensimmäinen C#-ohjelma 9 2.1 Ohjelman kirjoittaminen......................... 9 A Liite 11 3 4 CONTENTS Esipuhe Esipuhe 5

Lisätiedot

Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python

Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python 8. marraskuuta 2010 Ohjelmointi Perusteet Peruskäsitteitä Olio-ohjelmointi Pythonin alkeet Esittely Esimerkkejä Muuttujat

Lisätiedot

PIKAOPAS NOKIA PC SUITE 4.88. Copyright Nokia Oyj 2003. Kaikki oikeudet pidätetään

PIKAOPAS NOKIA PC SUITE 4.88. Copyright Nokia Oyj 2003. Kaikki oikeudet pidätetään PIKAOPAS NOKIA PC SUITE 4.88 Copyright Nokia Oyj 2003. Kaikki oikeudet pidätetään Sisällysluettelo 1. JOHDANTO...1 2. JÄRJESTELMÄVAATIMUKSET...1 3. PC SUITE -OHJELMISTON ASENTAMINEN...2 4. KÄYTÖN ALOITTAMINEN...3

Lisätiedot

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. FT Ari Viinikainen

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. FT Ari Viinikainen TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op FT Ari Viinikainen Tietokoneen rakenne Keskusyksikkö, CPU Keskusmuisti Aritmeettislooginen yksikkö I/O-laitteet Kontrolliyksikkö Tyypillinen Von Neumann

Lisätiedot

Chapel. TIE Ryhmä 91. Joonas Eloranta Lari Valtonen

Chapel. TIE Ryhmä 91. Joonas Eloranta Lari Valtonen Chapel TIE-20306 Ryhmä 91 Joonas Eloranta Lari Valtonen Johdanto Chapel on Amerikkalaisen Cray Inc. yrityksen kehittämä avoimen lähdekoodin ohjelmointikieli. Chapel on rinnakkainen ohjelmointikieli, joka

Lisätiedot

Ohjelmointikielet ja -paradigmat 5op. Markus Norrena

Ohjelmointikielet ja -paradigmat 5op. Markus Norrena Ohjelmointikielet ja -paradigmat 5op Markus Norrena Ko#tehtävä 4 Viimeistele "alkeellinen kuvagalleria". Käytännössä kaksi sivua Yksi jolla voi ladata kuvia palvelimelle (file upload) Toinen jolla ladattuja

Lisätiedot

Tietojenkäsittelyn perusteet 2. Lisää käyttöjärjestelmistä

Tietojenkäsittelyn perusteet 2. Lisää käyttöjärjestelmistä Tietojenkäsittelyn perusteet 2 Lisää käyttöjärjestelmistä 2011-02-09 Leena Ikonen 1 Systeemiohjelmat Systeemiohjelmiin kuuluvat Kääntäjät ja tulkit (+debuggerit) Käyttöjärjestelmä Linkittäjät Lataajat

Lisätiedot

4. Lausekielinen ohjelmointi 4.1

4. Lausekielinen ohjelmointi 4.1 4. Lausekielinen ohjelmointi 4.1 Sisällys Konekieli, symbolinen konekieli ja lausekieli. Hyvä ohjelmointitapa. Lausekielestä konekieleksi: - Lähdekoodi, tekstitiedosto ja tekstieditorit. - Kääntäminen

Lisätiedot

BlueJ ohjelman pitäisi löytyä Development valikon alta mikroluokkien koneista. Muissa koneissa BlueJ voi löytyä esim. omana ikonina työpöydältä

BlueJ ohjelman pitäisi löytyä Development valikon alta mikroluokkien koneista. Muissa koneissa BlueJ voi löytyä esim. omana ikonina työpöydältä Pekka Ryhänen & Erkki Pesonen 2002 BlueJ:n käyttö Nämä ohjeet on tarkoitettu tkt-laitoksen mikroluokan koneilla tapahtuvaa käyttöä varten. Samat asiat pätevät myös muissa luokissa ja kotikäytössä, joskin

Lisätiedot

Järjestelmäarkkitehtuuri (TK081702) Avoimet web-rajapinnat

Järjestelmäarkkitehtuuri (TK081702) Avoimet web-rajapinnat Järjestelmäarkkitehtuuri (TK081702) SOA yleistyvät verkkopalveluissa Youtube Google... Avaavat pääsyn verkkopalvelun sisältöön. Rajapintojen tarjoamia tietolähteitä yhdistelemällä luodaan uusia palveluja,

Lisätiedot

Ohjelmointitaito (ict1td002, 12 op) Kevät 2008. 1. Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen raine.kauppinen@haaga-helia.

Ohjelmointitaito (ict1td002, 12 op) Kevät 2008. 1. Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen raine.kauppinen@haaga-helia. Ohjelmointitaito (ict1td002, 12 op) Kevät 2008 Raine Kauppinen raine.kauppinen@haaga-helia.fi 1. Java-ohjelmoinnin alkeita Tietokoneohjelma Java-kieli ja Eclipse-ympäristö Java-ohjelma ja ohjelmaluokka

Lisätiedot

VHDL/Verilog/SystemC. Jukka Jokelainen 20.10.2009

VHDL/Verilog/SystemC. Jukka Jokelainen 20.10.2009 VHDL/Verilog/SystemC Jukka Jokelainen 20.10.2009 Sisältö Mitä ihmettä on hardwaren ohjelmointi? VHDL Verilog SystemC Analogiaelektroniikan yhdistäminen digitaaliseen maailmaan Yhteenveto ja pohdintaa Hardwaren

Lisätiedot

Ohjelmistojen mallintaminen

Ohjelmistojen mallintaminen Ohjelmistojen mallintaminen - Mallit - Ohjelmiston kuvaaminen malleilla 31.10.2008 Harri Laine 1 Malli: abstraktio jostain kohteesta Abstrahointi: asian ilmaiseminen tavalla, joka tuo esiin tietystä näkökulmasta

Lisätiedot

4. Luokan testaus ja käyttö olion kautta 4.1

4. Luokan testaus ja käyttö olion kautta 4.1 4. Luokan testaus ja käyttö olion kautta 4.1 Olion luominen luokasta Java-kielessä olio määritellään joko luokan edustajaksi tai taulukoksi. Olio on joukko keskusmuistissa olevia tietoja. Oliota käsitellään

Lisätiedot

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op Assembly ja konekieli Tietokoneen ja ohjelmiston rakenne Loogisilla piireillä ja komponenteilla rakennetaan prosessori ja muistit Prosessorin rakenne

Lisätiedot

Ohjelmointi 2 / 2010 Välikoe / 26.3

Ohjelmointi 2 / 2010 Välikoe / 26.3 Ohjelmointi 2 / 2010 Välikoe / 26.3 Välikoe / 26.3 Vastaa neljään (4) tehtävään ja halutessa bonustehtäviin B1 ja/tai B2, (tuovat lisäpisteitä). Bonustehtävät saa tehdä vaikkei olisi tehnyt siihen tehtävään

Lisätiedot

Pedacode Pikaopas. Web Service asiakasohjelman luominen

Pedacode Pikaopas. Web Service asiakasohjelman luominen Pedacode Pikaopas Web Service asiakasohjelman luominen Pikaoppaan sisältö Pikaoppaassa kuvataan, Netbeans-työkalulla luodaan valmista olemassa olevaa Web Service palvelua käyttävä asiakasohjelma. Opas

Lisätiedot

Johdatus ohjelmointiin

Johdatus ohjelmointiin Johdatus ohjelmointiin Ohjelmistot tietokonejärjestelmissä Jaana Holvikivi Ohjelmistojen tehtävät Sovellusohjelmat tekstinkäsittely ja muut toimistosovellukset kirjanpito, tuotannonohjaus selaimet, mediaohjelmat

Lisätiedot

Haaga-Helia/IltaTiko ict2tcd005: Ohjelmiston suunnittelutaito 1/7 Anne Benson. Tällä opintojaksolla käytämme VS:n kolmen kokonaisuuden luomiseen:

Haaga-Helia/IltaTiko ict2tcd005: Ohjelmiston suunnittelutaito 1/7 Anne Benson. Tällä opintojaksolla käytämme VS:n kolmen kokonaisuuden luomiseen: Haaga-Helia/IltaTiko ict2tcd005: Ohjelmiston suunnittelutaito 1/7 Microsoft SQL käyttö Yleistä VisualStudiosta Tällä opintojaksolla käytämme VS:n kolmen kokonaisuuden luomiseen: - sovellushallintaan -

Lisätiedot

Automaattinen yksikkötestaus

Automaattinen yksikkötestaus Teknillinen Korkeakoulu T-76.115 Tietojenkäsittelyopin ohjelmatyö Lineaaristen rajoitteiden tyydyttämistehtävän ratkaisija L models Automaattinen yksikkötestaus Ryhmä Rajoitteiset Versio Päivämäärä Tekijä

Lisätiedot

- Kuvan osoittamalla tavalla klikkaa kohtaa Tallenna Tiedosto. - Esimerkissämme Firefox selaimessa latauspalkki näyttää tältä

- Kuvan osoittamalla tavalla klikkaa kohtaa Tallenna Tiedosto. - Esimerkissämme Firefox selaimessa latauspalkki näyttää tältä 1 KODU OHJEET OSA 2 KODUN ASENNUS - Aloitamme asennuksen menemällä osoitteeseen www.google.fi ja sinne kirjoitamme kuvan osoittamalla tavalla kodu ja kun kuvan tapainen linkki listalta löytyy, niin siitä

Lisätiedot

Tekstinkäsittelyn jatko KSAO Liiketalous 1

Tekstinkäsittelyn jatko KSAO Liiketalous 1 KSAO Liiketalous 1 Makrojen perusteita Toistuvia tehtäviä ja tehtäväsarjoja voidaan automatisoidan makrojen avulla. Makrot ovat sarja nauhoitettuja käskyjä, jotka määräävät mitä toimintoja makro toteuttaa.

Lisätiedot

Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä

Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä Matti Luukkainen 10.12.2009 Tässä esitetty esimerkki on mukaelma ja lyhennelmä Robert Martinin kirjasta Agile and Iterative Development löytyvästä

Lisätiedot

Esimerkkiprojekti. Mallivastauksen löydät Wroxin www-sivuilta. Kenttä Tyyppi Max.pituus Rajoitukset/Kommentit

Esimerkkiprojekti. Mallivastauksen löydät Wroxin www-sivuilta. Kenttä Tyyppi Max.pituus Rajoitukset/Kommentit Liite E - Esimerkkiprojekti E Esimerkkiprojekti Olet lukenut koko kirjan. Olet sulattanut kaiken tekstin, Nyt on aika soveltaa oppimiasi uusia asioita pienen, mutta täydellisesti muotoiltuun, projektiin.

Lisätiedot

812341A Olio-ohjelmointi, I Johdanto

812341A Olio-ohjelmointi, I Johdanto 812341A Olio-ohjelmointi, 2016 I Johdanto Sisältö 1. Abstraktiosta 2. Olio-ohjelmoinnin historiaa 3. Olioparadigmasta 4. Peruskäsitteiden kertausta 812341A Olio-ohjelmointi, Johdanto 2 1 Abstraktiosta

Lisätiedot

Sisällys. JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta. Abstraktin luokan idea. Abstrakti luokka ja metodi. Esimerkki

Sisällys. JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta. Abstraktin luokan idea. Abstrakti luokka ja metodi. Esimerkki Sisällys JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta Abstrakti luokka ja metodi Rajapintamäärittely (interface) Eero Hyvönen Tietojenkäsittelytieteen laitos Helsingin yliopisto 13.10.2000 E.

Lisätiedot

Javan perusteita. Janne Käki

Javan perusteita. Janne Käki Javan perusteita Janne Käki 20.9.2006 Muutama perusasia Tietokone tekee juuri (ja vain) sen, mitä käsketään. Tietokone ymmärtää vain syntaksia (sanojen kirjoitusasua), ei semantiikkaa (sanojen merkitystä).

Lisätiedot

.NET ja C# Virtuaalikone. Common Language Infrastructure (CLI) Periaate. Etuja. Haittoja. Mikä on CLI. CLI standardin merkitys (CLS, Ecma)

.NET ja C# Virtuaalikone. Common Language Infrastructure (CLI) Periaate. Etuja. Haittoja. Mikä on CLI. CLI standardin merkitys (CLS, Ecma) .NET ja C# Virtuaalikone Periaate Virtuaalikone on tapa abstrahoida allaoleva toteutus yhteisen rajapinnan taakse. Virtuaalikoneet muodostavat hierarkian. Hierarkiassa ylempänä oleva käyttää alemman tarjoamaa

Lisätiedot

ELM GROUP 04. Teemu Laakso Henrik Talarmo

ELM GROUP 04. Teemu Laakso Henrik Talarmo ELM GROUP 04 Teemu Laakso Henrik Talarmo 23. marraskuuta 2017 Sisältö 1 Johdanto 1 2 Ominaisuuksia 2 2.1 Muuttujat ja tietorakenteet...................... 2 2.2 Funktiot................................

Lisätiedot

Sisällys. 18. Abstraktit tietotyypit. Johdanto. Johdanto

Sisällys. 18. Abstraktit tietotyypit. Johdanto. Johdanto Sisällys 18. bstraktit tietotyypit Johdanto abstrakteihin tietotyyppeihin. Pino ja jono. Linkitetty lista. Pino linkitetyllä listalla toteutettuna. 18.1 18.2 Johdanto Javan omat tietotyypit ovat jo tuttuja:

Lisätiedot

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. II Johdanto olio-ohjelmointiin

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. II Johdanto olio-ohjelmointiin 812347A Olio-ohjelmointi, 2015 syksy 2. vsk II Johdanto olio-ohjelmointiin Sisältö 1. Abstraktiosta 2. Olio-ohjelmoinnin historiaa 3. Olioparadigmasta 4. Peruskäsitteiden esittely 2 II.1 Abstraktiosta

Lisätiedot

18. Abstraktit tietotyypit 18.1

18. Abstraktit tietotyypit 18.1 18. Abstraktit tietotyypit 18.1 Sisällys Johdanto abstrakteihin tietotyyppeihin. Pino ja jono. Linkitetty lista. Pino linkitetyllä listalla toteutettuna. 18.2 Johdanto Javan omat tietotyypit ovat jo tuttuja:

Lisätiedot

Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista

Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista 582101 - Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista 1 Ohjelmistotuotannon työkaluuista Projektinhallintatyökalut (ei käsitellä tällä kurssilla) CASE- ja mallinnustyökalut (esim. Poseidon)

Lisätiedot

Java kahdessa tunnissa. Jyry Suvilehto

Java kahdessa tunnissa. Jyry Suvilehto Java kahdessa tunnissa Jyry Suvilehto Ohjelma Ohjelmointiasioita alkeista nippelitietoon n. 45 min Tauko 10 min Oliot, luokat ja muut kummajaiset n. 45 min Kysykää Sisältöä ei oikeasti ole 2x45 min täytteeksi,

Lisätiedot

Kieliversiointityökalu Java-ohjelmistoon. Ohje

Kieliversiointityökalu Java-ohjelmistoon. Ohje Kieliversiointityökalu Java-ohjelmistoon Ohje 2/6 SISÄLLYSLUETTELO 1 YLEISTÄ OHJELMASTA... 3 2 PÄÄ-IKKUNA...4 3 YLÄVALIKKO... 4 3.1 TIEDOSTO... 4 3.2 TOIMINTO... 4 3.3 ASETUKSET... 5 3.4 OHJE... 5 4 VÄLILEHDET...5

Lisätiedot

15. Ohjelmoinnin tekniikkaa 15.1

15. Ohjelmoinnin tekniikkaa 15.1 15. Ohjelmoinnin tekniikkaa 15.1 Sisällys For-each-rakenne. Geneerinen ohjelmointi. Lueteltu tyyppi enum. 15.2 For-each-rakenne For-rakenteen variaatio taulukoiden ja muiden kokoelmien silmukoimiseen:

Lisätiedot

15. Ohjelmoinnin tekniikkaa 15.1

15. Ohjelmoinnin tekniikkaa 15.1 15. Ohjelmoinnin tekniikkaa 15.1 Sisällys For-each-rakenne. Lueteltu tyyppi enum. Override-annotaatio. Geneerinen ohjelmointi. 15.2 For-each-rakenne For-rakenteen variaatio taulukoiden ja muiden kokoelmien

Lisätiedot

7/20: Paketti kasassa ensimmäistä kertaa

7/20: Paketti kasassa ensimmäistä kertaa Ohjelmointi 1 / syksy 2007 7/20: Paketti kasassa ensimmäistä kertaa Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007

Lisätiedot

Dart. Ryhmä 38. Ville Tahvanainen. Juha Häkli

Dart. Ryhmä 38. Ville Tahvanainen. Juha Häkli Dart Ryhmä 38 Ville Tahvanainen Juha Häkli 1.LYHYESTI Dart on luokkapohjainen, yksiperintäinen, puhdas olio-ohjelmointikieli. Dart on dynaamisesti tyypitetty. Sovellukset on organisoitu modulaarisiksi

Lisätiedot

TK081001 Palvelinympäristö

TK081001 Palvelinympäristö TK081001 Palvelinympäristö 5 opintopistettä!! Petri Nuutinen! 8 opintopistettä!! Petri Nuutinen! RAID RAID = Redundant Array of Independent Disks Useasta fyysisestä kiintolevystä muodostetaan yhteinen

Lisätiedot

Ohjeet asiakirjan lisäämiseen arkistoon

Ohjeet asiakirjan lisäämiseen arkistoon Ohjeet asiakirjan lisäämiseen arkistoon 1. Jos koneellesi ei vielä ole asennettu Open Office ohjelmaa, voit ladata sen linkistä joka löytyy Arkisto => Asiakirjapohjat sivulta seuran kotisivuilta. Jos ohjelma

Lisätiedot

8. Näppäimistöltä lukeminen 8.1

8. Näppäimistöltä lukeminen 8.1 8. Näppäimistöltä lukeminen 8.1 Sisällys Arvojen lukeminen näppäimistöltä Java-kielessä. In-luokka. In-luokka, käännös ja tulkinta Scanner-luokka. 8.2 Yleistä Näppäimistöltä annettujen arvojen (syötteiden)

Lisätiedot

Pedacode Pikaopas. Web-sovelluksen luominen

Pedacode Pikaopas. Web-sovelluksen luominen Pedacode Pikaopas Web-sovelluksen luominen Pikaoppaan sisältö Pikaoppaassa kuvataan, miten Netbeans-työkalulla luodaan uusi yksinkertainen web-sovellus ja testataan sen toiminta. Opas kattaa kaiken aiheeseen

Lisätiedot

Ehto- ja toistolauseet

Ehto- ja toistolauseet Ehto- ja toistolauseet 1 Ehto- ja toistolauseet Uutena asiana opetellaan ohjelmointilauseet / rakenteet, jotka mahdollistavat: Päätösten tekemisen ohjelman suorituksen aikana (esim. kyllä/ei) Samoja lauseiden

Lisätiedot

Sulautettujen järjestelmien skaala on niin laaja, että on erittäin vaikea antaa yleispätevää kuvausta siitä millainen on sulautettu järjestelmä.

Sulautettujen järjestelmien skaala on niin laaja, että on erittäin vaikea antaa yleispätevää kuvausta siitä millainen on sulautettu järjestelmä. Sulautettujen järjestelmien skaala on niin laaja, että on erittäin vaikea antaa yleispätevää kuvausta siitä millainen on sulautettu järjestelmä. On arvioitu, että maailmassa on tällä hetkellä enemmän sulautettuja

Lisätiedot

Tuplaturvan tilaus ja asennusohje

Tuplaturvan tilaus ja asennusohje Tuplaturvan tilaus ja asennusohje 1. Kirjaudu lähiverkkokauppaan omilla tunnuksillasi tai luo itsellesi käyttäjätunnus rekisteröitymällä Lähiverkkokaupan käyttäjäksi. a. Käyttäjätunnus on aina sähköpostiosoitteesi.

Lisätiedot

Nokia Lifeblog 2.5 Nokia N76-1

Nokia Lifeblog 2.5 Nokia N76-1 Nokia Lifeblog 2.5 Nokia N76-1 2007 Nokia. Kaikki oikeudet pidätetään. Nokia, Nokia Connecting People, Nseries ja N76 ovat Nokia Oyj:n tavaramerkkejä tai rekisteröityjä tavaramerkkejä. Muut tässä asiakirjassa

Lisätiedot

Teknillinen korkeakoulu T-76.115 Tietojenkäsittelyopin ohjelmatyö. Testitapaukset - Koordinaattieditori

Teknillinen korkeakoulu T-76.115 Tietojenkäsittelyopin ohjelmatyö. Testitapaukset - Koordinaattieditori Testitapaukset - Koordinaattieditori Sisällysluettelo 1. Johdanto...3 2. Testattava järjestelmä...4 3. Toiminnallisuuden testitapaukset...5 3.1 Uuden projektin avaaminen...5 3.2 vaa olemassaoleva projekti...6

Lisätiedot

13/20: Kierrätys kannattaa koodaamisessakin

13/20: Kierrätys kannattaa koodaamisessakin Ohjelmointi 1 / syksy 2007 13/20: Kierrätys kannattaa koodaamisessakin Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy

Lisätiedot

Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014

Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014 Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014 Kirjoita jokaiseen palauttamaasi konseptiin kurssin nimi, kokeen päivämäärä, oma nimi ja opiskelijanumero. Vastaa kaikkiin tehtäviin omille konsepteilleen.

Lisätiedot

6 XML-työkalut 1. 6 XML-työkalut

6 XML-työkalut 1. 6 XML-työkalut 6 XML-työkalut 1 6 XML-työkalut XML:n periaatteiden tutustumisen jälkeen on helpompi tutustua XML-dokumenttien käsittelyyn ja katseluun suunniteltuja työkaiuja. XML:n yleistymisen pahin pullonkaula on

Lisätiedot

A274101 TIETORAKENTEET JA ALGORITMIT

A274101 TIETORAKENTEET JA ALGORITMIT A274101 TIETORAKENTEET JA ALGORITMIT PERUSTIETORAKENTEET LISTA, PINO, JONO, PAKKA ABSTRAKTI TIETOTYYPPI Tietotyyppi on abstrakti, kun se on määritelty (esim. matemaattisesti) ottamatta kantaa varsinaiseen

Lisätiedot

TT00AA12-2016 - Ohjelmoinnin jatko (TT10S1ECD)

TT00AA12-2016 - Ohjelmoinnin jatko (TT10S1ECD) TT00AA12-2016 - Ohjelmoinnin jatko (TT10S1ECD) Ohjelmointikäytännöt 21/3/11 Mikko Vuorinen Metropolia Ammattikorkeakoulu 1 Sisältö 1) Mitä on hyvä koodi? 2) Ohjelmointikäytäntöjen merkitys? 3) Koodin asettelu

Lisätiedot

Älysopimusten kehittäminen. Sopimus suuntautunut ohjelmointi

Älysopimusten kehittäminen. Sopimus suuntautunut ohjelmointi Älysopimusten kehittäminen Sopimus suuntautunut ohjelmointi There are currently 5,000 blockchain developers. By 2020, we project a global need for over 500,000 - ConsenSys Älysopimus alustat q Ethereum

Lisätiedot

WINDOWS 10 -kurssi. petri.kiiskinen@wellamo-opisto.fi

WINDOWS 10 -kurssi. petri.kiiskinen@wellamo-opisto.fi WINDOWS 10 -kurssi petri.kiiskinen@wellamo-opisto.fi Yleistä kurssista Keskiviikkoisin 9.9. 30.9. (15 oppituntia) 16:45 20:00 (viimeinen kerta 16:45 19:15) Puolivälissä 15 minuutin kahvitauko Materiaali

Lisätiedot

Oliotietokannat. Nääsvillen Oliopäivät Pekka Kähkipuro Kehitysjohtaja, FT

Oliotietokannat. Nääsvillen Oliopäivät Pekka Kähkipuro Kehitysjohtaja, FT Oliotietokannat Nääsvillen Oliopäivät 2004 15.12.2004 Pekka Kähkipuro Kehitysjohtaja, FT pekka.kahkipuro@sysopen.fi Oliotietokanta Idea: pysyvän tiedon tallentaminen suoraan oliomuodossa Tietosisältö ja

Lisätiedot

Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta.

Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta. Malli-näkym kymä-ohjain arkkitehtuurit (Model-View View-Controller, MVC) Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta. Lähtökohdat: Sovelluksen

Lisätiedot

2007 Nokia. Kaikki oikeudet pidätetään. Nokia, Nokia Connecting People, Nseries ja N77 ovat Nokia Oyj:n tavaramerkkejä tai rekisteröityjä

2007 Nokia. Kaikki oikeudet pidätetään. Nokia, Nokia Connecting People, Nseries ja N77 ovat Nokia Oyj:n tavaramerkkejä tai rekisteröityjä Nokia Lifeblog 2.5 2007 Nokia. Kaikki oikeudet pidätetään. Nokia, Nokia Connecting People, Nseries ja N77 ovat Nokia Oyj:n tavaramerkkejä tai rekisteröityjä tavaramerkkejä. Muut tässä asiakirjassa mainitut

Lisätiedot

GIS-automatisointi ja ohjelmointi/skriptaus. Harri Antikainen

GIS-automatisointi ja ohjelmointi/skriptaus. Harri Antikainen GIS-automatisointi ja ohjelmointi/skriptaus Harri Antikainen Mistä nyt puhutaan? Automatisointi: Mikä tahansa tapa teettää tietokoneella asioita ilman että käyttäjän tarvitsee tehdä muuta kuin laittaa

Lisätiedot

Datatähti 2009 -alkukilpailu

Datatähti 2009 -alkukilpailu Datatähti 2009 -alkukilpailu Ohjelmointitehtävä 1/3: Hissimatka HUOM: Tutustuthan huolellisesti tehtävien sääntöihin ja palautusohjeisiin (sivu 7) Joukko ohjelmoijia on talon pohjakerroksessa, ja he haluavat

Lisätiedot

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14 Arkkitehtuurikuvaus Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy Ryhmä 14 Muutoshistoria Versio Pvm Päivittäjä Muutos 0.4 1.11.2007 Matti Eerola 0.3 18.10.2007 Matti Eerola 0.2

Lisätiedot

Ohjelmistojen suunnittelu

Ohjelmistojen suunnittelu Ohjelmistojen suunnittelu 581259 Ohjelmistotuotanto 154 Ohjelmistojen suunnittelu Software design is a creative activity in which you identify software components and their relationships, based on a customer

Lisätiedot

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma.

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma. 2. Taulukot 2.1 Sisältö Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko operaation parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 2.2 Yleistä

Lisätiedot

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 3 vastaukset Harjoituksen aiheena ovat imperatiivisten kielten muuttujiin liittyvät kysymykset. Tehtävä 1. Määritä muuttujien max_num, lista,

Lisätiedot

Pakkauksen kokoaminen

Pakkauksen kokoaminen 13. Pakkaukset 13.1 Sisällys Pakkauksen kokoaminen (package). Pakkaukset ja hakemistorakenne. Pakkauksen luokkien käyttö muissa pakkauksissa (import). Pakkaukset ja näkyvyys. 13.2 Pakkauksen kokoaminen

Lisätiedot

Sisällys. 11. Javan toistorakenteet. Laskurimuuttujat. Yleistä

Sisällys. 11. Javan toistorakenteet. Laskurimuuttujat. Yleistä Sisällys 11. Javan toistorakenteet Laskuri- ja lippumuuttujat.. Tyypillisiä ohjelmointivirheitä: Silmukan rajat asetettu kierroksen verran väärin. Ikuinen silmukka. Silmukoinnin lopettaminen break-lauseella.

Lisätiedot

TIE-20200 Ohjelmistojen suunnittelu

TIE-20200 Ohjelmistojen suunnittelu TIE-20200 Ohjelmistojen suunnittelu Luento 0: Kurssin esittely TIE-20200 Samuel Lahtinen 1 Mitäs tänään on tarjolla? Käytännön juttuja: Mistä tietoa löytyy Kurssin henkilökunta Kurssin rakenne Käytännönjärjestelyt

Lisätiedot

Sisältö. 22. Taulukot. Yleistä. Yleistä

Sisältö. 22. Taulukot. Yleistä. Yleistä Sisältö 22. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko metodin parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 22.1 22.2 Yleistä

Lisätiedot

L models. Käyttöohje. Ryhmä Rajoitteiset

L models. Käyttöohje. Ryhmä Rajoitteiset Teknillinen korkeakoulu T-76.115 Tietojenkäsittelyopin ohjelmatyö Lineaaristen rajoitteiden tyydyttämistehtävän ratkaisija L models Käyttöohje Ryhmä Rajoitteiset Versio Päivämäärä Tekijä Muutokset 0.1

Lisätiedot

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python 31. tammikuuta 2009 Ohjelmointi Perusteet Pythonin alkeet Esittely Esimerkkejä Muuttujat Peruskäsitteitä Käsittely

Lisätiedot

JAVA on ohjelmointikieli, mikä on kieliopiltaan hyvin samankaltainen, jopa identtinen mm. C++

JAVA on ohjelmointikieli, mikä on kieliopiltaan hyvin samankaltainen, jopa identtinen mm. C++ JAVA alkeet JAVA on ohjelmointikieli, mikä on kieliopiltaan hyvin samankaltainen, jopa identtinen mm. C++ ja Javascriptin kanssa. Huom! JAVA ja JavaScript eivät silti ole sama asia, eivätkä edes sukulaiskieliä.

Lisätiedot

Ohjeita Siemens Step7, Omron CX Programmer käyttöön

Ohjeita Siemens Step7, Omron CX Programmer käyttöön Ohjeita Siemens Step7, Omron CX Programmer käyttöön Sisällysluettelo 1 Siemens Step7 Manager...1 1.1 Laitteistomäärittely...1 1.2 Ohjelmalohkon luonti ja toteutus...2 1.3 Ohjelman kutsu...3 2 CX-Programmer...4

Lisätiedot

Java-kielen perusteet

Java-kielen perusteet Java-kielen perusteet Tunnus, varattu sana, kommentti Muuttuja, alkeistietotyyppi, merkkijono, literaalivakio, nimetty vakio Tiedon merkkipohjainen tulostaminen 1 Tunnus Java tunnus Java-kirjain Java-numero

Lisätiedot

Pertti Pennanen License 1 (7) EDUPOLI ICTPro1 23.10.2013

Pertti Pennanen License 1 (7) EDUPOLI ICTPro1 23.10.2013 License Pertti Pennanen License 1 (7) SISÄLLYSLUETTELO Lisenssien hallinta... 2 Lisenssisopimus... 2 Yleisimmät lisensiointimallit... 2 OEM lisenssi... 3 Kelluva lisenssi... 3 Työasemakohtainen lisenssi...

Lisätiedot

C-kielessä taulukko on joukko peräkkäisiä muistipaikkoja, jotka kaikki pystyvät tallettamaan samaa tyyppiä olevaa tietoa.

C-kielessä taulukko on joukko peräkkäisiä muistipaikkoja, jotka kaikki pystyvät tallettamaan samaa tyyppiä olevaa tietoa. Taulukot C-kielessä taulukko on joukko peräkkäisiä muistipaikkoja, jotka kaikki pystyvät tallettamaan samaa tyyppiä olevaa tietoa. Taulukon muuttujilla (muistipaikoilla) on yhteinen nimi. Jokaiseen yksittäiseen

Lisätiedot

CUDA. Moniydinohjelmointi 17.4.2012 Mikko Honkonen

CUDA. Moniydinohjelmointi 17.4.2012 Mikko Honkonen CUDA Moniydinohjelmointi 17.4.2012 Mikko Honkonen Yleisesti Compute Unified Device Architecture Ideana GPGPU eli grafiikkaprosessorin käyttö yleiseen laskentaan. Nvidian täysin suljetusti kehittämä. Vuoden

Lisätiedot