Miten tehdää. ään n virheettömi. miä ohjelmia. Ralph-Johan Back Joakim von Wright Åbo Akademi TUCS Formaalit menetelmät t ohjelmoinnissa ryhmä
|
|
- Aku Salonen
- 8 vuotta sitten
- Katselukertoja:
Transkriptio
1 Miten tehdää ään n virheettömi miä ohjelmia Ralph-Johan Back Joakim von Wright Åbo Akademi TUCS Formaalit menetelmät t ohjelmoinnissa ryhmä
2 Esitelmät Ohjelmoinnin matematiikka Ralph Back Matematiikan ohjelmointi Joakim von Wright
3 Ohjelmoinnin matematiikka Ralph-Johan Back
4 Sisält ltö Ohjelmiston luotettavuus Formaalit menetelmät Ohjelman oikeellisuuden todistaminen Inkrementaalinen ohjelmointi
5 Tietokoneet, kommunikointi ja ohjelmistot Käyttöliittymät Ohjelmistot Ohjelmointikielet Käyttöliittymät Ohjelmistot Ohjelmointikielet Kommunikointi Käyttöjärjestelmä Kone Käyttöjärjestelmä Kone Tietoverkko
6 Ohjelmistot keskeisessä roolissa Ohjelmistot muodostavat suurimman osan tietojärjestelmist rjestelmistä Yhteiskunta erittäin in riippuvainen ohjelmistoista sulautetut järjetestelmj rjetestelmät, t, hallinto, pc sovellutukset,... Ohjelmistot ohjaavat kriittisiä toimintoja: lentoliikennettä,, sairaalalaitteita, teollisia prosesseja,... Ohjelmistojen laadulla on vahva vaikutus yhteiskunnan ja yksityisten toiminnan luotettavuuteen, turvallisuuteen, tehokkuuteen ja tulosten laatuun
7 Mikä on hyvä tietokoneohjelma monipuolinen, tekee sitä mitä minä haluan toimii käytk ytössä olevalla tietokoneella ja käyttöjärjestelmässä helppokäytt yttöinen, selkeä käyttöliittymä toimii tehokkaasti ja reagoi nopeasti toimii hyvin muiden ohjelmien kanssa luotettava, ei sisäll llä paljon virheitä käyttäytyy ytyy hyvin myös s virhetilanteissa jne jne
8 Ohjelmien laadun kehitys Kehitys on kulkenut kohti parempilaatuisia ohjelmia helppokäytt yttöisempiä ohjelmia, tehokkaampia, monipuolisempia,... Paitsi: ohjelmistojen luotettavuus ei ole parantunut, vaan lähinnl hinnä huonontunut.
9 Mistä ohelmistojen virheet johtuvat Perussyy on ohjelmien kompleksisuuden kasvu Ohjelmistojen koko on jatkuvasti kasvanut Nykypäiv ivän n ohjelmistot ovat valtavan suuria ( riviä koodia) Ohjelmistot ovat hyvin monimutkaisia, ja niiden osien väliset v vuorovaikutukset ovat vaikeasti hallittavissa Muut laatukriteerit (monipuolisuus, käytettk ytettävyys,...) kasvattavat ohjelmien kokoa Markkinavoimat suosivat huonoja ohjelmistoja Ohjelmistojen nopea valmistuminen (time to market) tärkeintt rkeintä Kuluttajat eivät t vaadi luotettavia ohjelmia Ohjelmistoille ei esim. anneta luotettavuustakuuta
10 Ohjelmistoteknologian nykytaso Ohjelmistotekniikka on kehittymätönt ntä verrattuna muihin teknologian aloihin Perustutkimusta ei paljon hyödynnet dynnetä teollisessa ohjelmistotuotannossa Ohjelmointi tarvitsee toisenlaisen tieteellisen perustan kuin tavanomainen tekniikkaan mallit ovat useimmiten diskreettejä,, eivät t jatkuvia tärkein työkalu on logiikka ja algebra, ei analyysi suurin osa tarvittavasta matematiikasta on kehitetty viimeisten 50 vuoden aikana
11 Ohjelmointiprosessi tänäät ään määrittele ongelma suunnittele ohjelma koodaa ohjelma testaa ohjelma ylläpidä ohjelmaa
12 Testaaminen Suoritetaan ohjelma esimerkkidatalla, ja tarkistetaan ovatko tulokset oikeita Testauksessa joudutaan suorittamaan ohjelma hyvin monella eri datalla, jotta löydettl ydettäisiin mahdollisimman monta virhettä Testaamisella ei voida poistaa kaikki ohjelmavirheet, ainoastaan ne jotka löytyvl ytyvät esimerkkien avulla
13 Virheiden poistaminen testaamalla Prosessin alkuvaiheessa tehdyt ohjelmavirheet pyritää ään n loppuvaiheessa poistamaan testauksella. Testaaminen käy k y yhä työlää äämmäksi, mitä suuremmiksi ohjelmistot tulevat Testaaminen muodostaa yhä suuremman osan ohjelmistokehityksen kustannuksista Testaamisella ei kuitenkaan voida saavuttaa haluttu ohjelmistojen luotettavuuden taso
14 Formaalit menetelmät ohjelmoinnissa Formaalit menetelmät t muodostavat osaksi vaihtoehdon testaamiselle, osaksi täydentt ydentävät testaamista Ensisijainen tavoite on parantaa ohjelmien luotettavuutta Ohjelman ominaisuksia tutkitaan analysoimalla sitä matematikan ja logiikan avulla Esimerkki: todistetaan matemaattisesti että ohjelma toimii oikein (ts ei sisäll llä virheitä)
15 Åbo Akademin ohjelmointitekniikan tutkimusryhmä Åbo Akademin tietojenkäsittelyopin laitos Keskittynyt formaalien menetelmien tutkimiseen ja kehittämiseen Suomen Akatemia tutkimuksen huippuyksikkö (osana TUCSia) ja (omana yksikkönä) Senioritutkijat Ralph-Johan Back (johtaja) Johan Lilius Kaisa Sere Joakim von Wright Ryhmäss ssä noin 50 tutkijaa (noin puolet ulkomaalaisia)
16 Tutkimussuunnat Ohjelmoinnin matemaattinen perusta tarkennuskalkyyli aktiojärjestelm rjestelmät ohjelmistoarkkitehtuuri Uudet ohjelmointiparadigmat rinnakkaiset ja hajautetut järjestelmj rjestelmät vlsi-suunnittelu suunnittelu olio-ohjelmointi ohjelmointi ohjelmistojen suunnittelu ja vaatimusmää äärittelyt Ohjelmoinnin työkalut ohjelmointiympärist ristöt mekaaninen todistaminen mallintarkistaminen Ohjelmointiprosessit
17 Esimerkki ohjelman oikeellisuuden todistamisesta Ohjelma joka laskee yhteen ensimmäiset iset n kokonaislukua: n n sum n
18 Sum-ohjelman toimta i:=1 s:=0 i <=n s:=s+i i:=i+1
19 Ohjelmakoodi def sum(n): i := 1 s := 0 while i <= n: s := s+i i := i+1 return s laske n i on kierroslaskuri s on osasumma iteroidaan kun i <= n lisätää ään n uusi i summaan s kasvatetaan i:tä kun i = n+1, lopetetaan, palautetaan summa s print sum(10) lasketaan
20 Ohjelman suoritus i s 1 0 n = 3 i:=1 s:=0 i <=n s:=s+i i:=i+1
21 Ohjelman suoritus i s n = 3 i:=1 s:=0 i <=n s:=s+i i:=i+1
22 Ohjelman suoritus i s n = 3 i:=1 s:=0 i <=n s:=s+i i:=i+1
23 Ohjelman suoritus i s n = 3 i:=1 s:=0 i <=n s:=s+i i:=i+1
24 Induktiohypoteesi i s s =1+...+(i-1) 1) 1<=i <= n+1 n = 3 i:=1 s:=0 i <=n s:=s+i i:=i+1
25 Väittämät alkuehto: 0 <= n invariantti: s =1+...+(i-1) 1) 1<=i <= n+1 i:=1 s:=0 i <=n loppuehto: s = n s:=s+i i:=i+1
26 Väittämät t ohjelmatekstissä def sum2(n): i := 1 s := 0 while i <= n: s := s+i i := i+1 return s # 0 <= n # s =1+...+(i-1) 1) & 1<=i <= n+1 # s = n print sum2(10)
27 Sum-ohjelman oikeellisuus Invariantti on voimassa silmukan alussa Invariantti pysyy voimassa silmukkaa kierettäess essä kerran Invarianttista seuraa loppuehto, kuin silmukka pysähtyy Silmukan suoritus pysähtyy invariantti alkuehto i:=1 s:=0 i <=n loppuehto Sum-ohjelma toimii oikein s:=s+i i:=i+1
28 Oikeellisuuden todistamisen ongelmat Todistaminen vaatii matemaattista ajattelutapaa Kun ohjelman koko kasvaa, niin todistaminen tulee yhä vaikeammaksi Todistus itsessää ään n voi sisält ltää virheitä Usein vaikeata kuvata ennakkoehto ja loppuehto täsmällisesti Invariantin keksiminen hankalaa (vastaa induktiohypoteesin muodostamista) Todistukset rutiininomaisia, eivät t erikoisen kiinnostavia tai matemaattisesti haastavia
29 Todistamisen lisäongelma Käytännössä ohjelmat sisält ltävät t virheitä,, joten niitä ei voida (eikä pitäisik isikään n voida) todistaa oikeiksi Todistuksen mahdottomuus näyttn yttää virheen paikan Ennen oikeellisuuden todistamista on kaikki virheet paikallistettava ja korjattava Todistaminen ja testaaminen antavat kaksi erilaista tapaa hakea virheitä ohjelmasta Päätelmä: : valmiiden ohjelmien testaaminen hankalaa eikä erikoisen mielekäst stä.
30 Oikein toimivien ohjelmien rakentaminen Oikeellisuutta ei voida lisätä jälkeenpäin Oikeellisuus on rakennettava sisää ään alusta lähtien l Ohjelma on rakennettava pala kerrallaan, siten että oikeellisuutta ei koskaan menetetä Ryhmämme mme on keskittynyt tällaisten t inkrementaalisten oikeellisuuden säilyttävien ohjelmointimentelmien kehittämiseen ja tutkimiseen oikeellisuus säilyy
31 Inkrementaalinen ohjelmointi Rakennetaan ensimmäinen inen pieni palikka A0 Todistetaan se oikeaksi A0
32 Inkrementaalinen ohjelmointi Rakennetaan seuraava palikka B0 Todistetaan se oikeaksi A0 B0
33 Inkrementaalinen ohjelmointi Parannellaan A0:aa, lisää äämällä sen käyttökelpoisuutta Todistetaan uusi palikka A1 oikeaksi Todistetaan, että A1 säilyttää A0:n A1 toiminnot A0 B0
34 Inkrementaalinen ohjelmointi Parannellaan B0:aa, lisää äämällä sen käyttökelpoisuutta Todistetaan uusi palikka B1 oikeaksi Todistetaan, että B1 säilyttää B0:n A1 B1 toiminnot A0 B0
35 Inkrementaalinen ohjelmointi Parannellaan taas Ata A2 A1 A0 B1 B0
36 Inkrementaalinen ohjelmointi jne, kunnes ollaan saatu rakennettua ohjelmaan kaikki toivottu toiminnallisuus A5 A4 A3 B3 C4 C3 A2 B2 C2 A1 B1 A0 B0
37 Olipohjainen ohjelmointi Olio on sopiva rakennuspalikka: luominen Olion nimi muutokset data kyselyt lopettaminen
38 Data: Pankkitili oliona Saldo, tilinumero ja tilin haltija Luominen: Luodaan pankkitili (tilinumero ja asiakkaan nimi) Tilillä ei aluksi ole yhtää ään n rahaa Muutokset: Pankkitilille voidaan panna rahaa Pankkitililtä voidaan ottaa rahaa Muutetaan asiakkaan nimi Kyselyt: Paljonko rahaa on tilillä juuri nyt Kuka on tilinhaltija, mikä on tilinumero Lopettaminen: Pankkitili poistetaan käytk ytöstä
39 Pankkitili pankin toiminnat asiakkaan toiminnat luodaan uusi tili tilille pano tililtä otto nimen muutos Pankkitili saldo tilinhaltija tilinumero tilin saldo tilinumero tilin haltija poistetaan tili käytöstä
40 Pankkitili ohjelmana class Account: def init (self, name, account): self.saldo := 0 self.name := name self.account := account def insert(self, sum): self.saldo := self.saldo + sum def remove(self, sum): self.saldo := self.saldo - sum def getsaldo(self): return self.saldo...
41 Pankkitilin lisäominaisuuksia Koron maksaminen Luotollinen pankkitili Pankkitiliin on liitetty tunnusluku Tapahtumien rekisteröinti inti Automaattinen laskujen maksu eräpäiv ivänä Tilillä voi olla eri valuuttoja jne, jne...
42 Luotollinen pankkitili uusi luottoraja tililtä otto Luotollinen luottoraja nostettavissa luottoraja tilille pano tililtä otto nimen muutos Pankkitili saldo tilinhaltija tilinumero tilin saldo tilinumero tilin haltija
43 Korollinen pankkitili uusi korkoprosentti lisää korko Korollinen korkoprosentti korko tilin saldo tilin korko tilille pano tililtä otto nimen muutos Pankkitili saldo tilinhaltija tilinumero tilin saldo tilinumero tilin haltija
44 Todistaminen Uuden olion on toteutettava sille asetetut vaatimukset Uuden olion on säilytetts ilytettävä alkkuperäisen olion ominaisuudet Esim. nimenmuutos, tilinhaltija toimii Luotollinen-oliossa oliossa samalla tavalla kuin Pankkitili-oliossa tililtä otto huomio luottorajan, toimii samoin kuin aiemmin jos luottoraja on 0.
45 Pankkitilin rakentaminen Maksut Käyttötili Tunnusluku Luotollinen Korollinen Tapahtumat Pankkitili
46 Raha-automaatti automaatti saldokysely lisää rahaa otto Raha-automaatti rahamäärä Pankkitili Pankkitili Pankkitili Pankkitili Rahanluovutus
47 Pankkiautomaatti Kortinlukija Pankkiautomaatti Käyttötili Rahanluovutus Raha-automaatti Pankkitili
48 Maksuautomaatti Setelinsyöttö Maksuautomaatti Maksut Kortinlukija Pankkiautomaatti Käyttötili Rahanluovutus Raha-automaatti Pankkitili
49 Miten todistetaan oikeellisuus Perusoliot on todistettava oikeiksi Olion laajennus on todistettava oikeaksi laajennuksen on toteuttettava sille asetettavat vaatimukset laajennuksen on säilytetts ilytettäv v aikaisemmat ominaisuudet Olion käyttk yttö on tapahduttava oikein olion menetelmää saa vain kutsua jos menetelmän alkuehto on voimassa
50 Todistus toteuttaa vaatimuksensa Pankkiautomaatti Käyttötili säilyttää ominaisuudet Raha-automaatti Pankkitili toteuttaa vaatimuksensa kunnioittaa alkuehtoja toteuttaa vaatimuksensa
51 Inkrementaalinen ohjelmointi Vaatii uutta lähestymistapaa l ohjelmointiin Oikeellisuus on tarkistettava jatkuvasti ohjelmaa rakennettaessa Ohjelman arkkitehtuurin on tuettava inkrementaalista rakentamista Ohjelmointiprosessin on myös s tuettava tätät lähestymistapaa Testaaminen yhä tarpeellinen, tapahtuu jokaisen laajennuksen yhteydessä
52 Rakenteen remontointi Kun suurta kokonaisuutta rakennetaan pala kerrallaan, voidaan joutua umpikujaan: valittu arkitehtuuri ja rakennepalikat eivät t tue uusia laajennuksia Tällöin ohjelman rakennetta on remontoitava arkitehtuuria muutetaan olioita tai olioiden toimintoja muutetaan toiminnallisuutta ei muuteta Rakenteen remontti voi olla hankalaa, mutta se kannattaa
53 Ohjelmointiprosessi Inkrementaalisessa ohjelmoinnissa ohjelman laajentaminen ja ohjelman remontointi vuorottelevat laajenna ohjelmaa remontoi ohjelmaa
54 Inkrementaalisen ohjelmoinnin edut Iso ohjelma voidaan rakentaa pieninä laajennuksina Oikeellisuuden säilyminen s voidaan tarkistaa jatkuvasti Käytössä on aina toimiva ohjelma (toiminnallisuus on vajaa, mutta se mikä siinä on toimii oikein) Ohjelmaa voidaan jatkuvasti verrata vaatimuksiin, ja tarvittaessa korjata ohjelmaa tai vaatimuksia Erillistä ohjelman ylläpitovaihetta ei ole, ylläpito on samanlaista kuin alkuperäisen ohjelman rakentaminen Oikeellisuuden jatkuva huomioiminen tekee ohjelman remontin mahdollisiksi
55 Inkrementaalisen rakentamisen rajoitukset Käytännössä liian suuria ohjelmia ei voida rakentaa tällä tavoin Ohjelmat on jaettava erikseen ohjelmoitaviin moduleihin, joilla on hyvin määm ääritelly rajapinnat Eri ohjelmointiryhmät t voivat ohjelmoida moduleja toisistaan riippumatta Inkrementaalinen rakentaminen ja modulaarinen rakentaminen täydentt ydentävät t toisiaan Yhdessä ne mahdollistavat suurten ja luotettavien ohjelmien rakentamisen Virheettömyys edellyttää mekaanista ohjelmien oikeellisuuden todistamista
56 Inkrementaalisen rakentamisen projekteja ÅAssa Inkrementaalisen rakentamisen teoria (tarkennuskalkyylissä) Inkrementaalista rakentamista tukeva ohjelmointiympärist ristö (UML-pohjainen) Inkrementaalista rakentamista tukeva ohjelmointiprosessi (XP-pohjainen) Useita piloottiprojekteja, joissa rakennetaan suurempia ohjelmia tällt llä menetelmäll llä Inkrementaalinen rakentaminen eri ohjelmointiparadigmoissa (vlsi-suunnittelu, suunnittelu, olio- ohjelmointi, hajautet järjestelmj rjestelmät, t, rinnakkaisohjelmat, jne)
Matematiikan ohjelmointi. Joakim von Wright
Matematiikan ohjelmointi Joakim von Wright Formaali menetelmä käytännössä miten todistetaan ohjelman oikeellisuus? miltä todistus näyttn yttää? isot ohjelmat? miljoona riviä koodia nykyajan ohjelmat? rinnakkaisuus,
LisätiedotKehittää ohjelmointitehtävien ratkaisemisessa tarvittavia metakognitioita!
Kehittää ohjelmointitehtävien ratkaisemisessa tarvittavia metakognitioita! eli... Hyvä kaava sanoo enemmän kuin,... tuhat riviä koodia!... sata riviä tekstiä!... kymmenen diagrammia! YLEISTÄ FORMAALEISTA
LisätiedotOhjelmien automaattisen verifioinnin reunamailla
Ohjelmien automaattisen verifioinnin reunamailla Antti Siirtola Tietotekniikan laitos, Perustieteiden korkeakoulu, Aalto-yliopisto, antti.siirtola@aalto.fi Suomalainen Tiedeakatemia, Nuorten akatemiaklubi,
LisätiedotYksikkö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ätiedotTarvitseeko informaatioteknologia matematiikkaa?
Tarvitseeko informaatioteknologia matematiikkaa? Oulun yliopisto Matemaattisten tieteiden laitos 1 Kyllä kai IT matematiikkaa tarvitsee!? IT ja muu korkea teknologia on nimenomaan matemaattista teknologiaa.
LisätiedotOleelliset vaikeudet OT:ssa 1/2
Oleelliset vaikeudet OT:ssa 1/2 Monimutkaisuus: Mahdoton ymmärtää kaikki ohjelman tilat Uusien toimintojen lisääminen voi olla vaikeaa Ohjelmista helposti vaikeakäyttöisiä Projektiryhmän sisäiset kommunikointivaikeudet
LisätiedotImperatiivisten ohjelmien organisointiparadigmojen. historia
Imperatiivisten ohjelmien organisointiparadigmojen historia Timo Tapanainen Helsingin yliopisto, tietojenkäsittelytieteen laitos Tietojenkäsittelytieteen historia -seminaari, kevät 2007 Sisältö Paradigma,
LisätiedotImperatiivisten ohjelmien organisointiparadigmojen historia
Imperatiivisten ohjelmien organisointiparadigmojen historia Timo Tapanainen Helsingin yliopisto, tietojenkäsittelytieteen laitos Tietojenkäsittelytieteen historia -seminaari, kevät 2007 Sisältö Paradigma,
LisätiedotE-math - sa hko inen oppimisympa risto matematiikan opiskeluun. Ralph-Johan Back Åbo Akademi (Virtuaaliopetuksen päivät 2013)
E-math - sa hko inen oppimisympa risto matematiikan opiskeluun Ralph-Johan Back Åbo Akademi (Virtuaaliopetuksen päivät 2013) Esityksen organisointi 1. Yleisesitys E-math projektin hankkeesta ja sen tuloksista
Lisätiedot1. 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ätiedotKokeellista matematiikkaa SAGE:lla
Kokeellista matematiikkaa SAGE:lla Tutkin GeoGebralla 1 luonnollisen luvun jakamista tekijöihin 2. GeoGebran funktio Alkutekijät jakaa luvun tekijöihin ja tuottaa alkutekijät listana. GeoGebrassa lista
LisätiedotTä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ätiedotTurmeleeko ohjelmointi nuorisomme?
Solmu 2/2015 1 Turmeleeko ohjelmointi nuorisomme? Antti Laaksonen Tietojenkäsittelytieteen laitos, Helsingin yliopisto ahslaaks@cs.helsinki.fi Uuden peruskoulun opetussuunnitelman mukaan syksystä 2016
LisätiedotOhjelmoinnin peruskurssi Y1
Ohjelmoinnin peruskurssi Y1 CSE-A1111 21.9.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 21.9.2015 1 / 25 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta Luentopalaute.
LisätiedotIntegrointialgoritmit molekyylidynamiikassa
Integrointialgoritmit molekyylidynamiikassa Markus Ovaska 28.11.2008 Esitelmän kulku MD-simulaatiot yleisesti Integrointialgoritmit: mitä integroidaan ja miten? Esimerkkejä eri algoritmeista Hyvän algoritmin
Lisätiedot811312A Tietorakenteet ja algoritmit , Harjoitus 2 ratkaisu
811312A Tietorakenteet ja algoritmit 2017-2018, Harjoitus 2 ratkaisu Harjoituksen aiheena on algoritmien oikeellisuus. Tehtävä 2.1 Kahvipurkkiongelma. Kahvipurkissa P on valkoisia ja mustia kahvipapuja,
LisätiedotT Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 12 (opetusmoniste, kappaleet )
T-79.144 Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 12 (opetusmoniste, kappaleet 9.1 9.5) 30.11. 3.12.2004 1. Osoita lauselogiikan avulla oheisten ehtolausekkeiden ekvivalenssi. (a)!(a
Lisätiedotpublic static void main (String [] args)
HAAGA-HELIA OHJELMOINTI 1(5) OHJELMALUOKKA Ohjelma-luokan käynnistää public static void main (String [] args) main-metodiin voi koodata 1. ohjelman logiikan tai 2. luoda ohjelma-olion ja kutsua metodia,
LisätiedotTietotekniikan perusopetuksen kehittäminen
Tietotekniikan perusopetuksen kehittäminen Kokemuksia ja suuntaviivoja Lauri Malmi Teknillinen korkeakoulu ivät 1 Sisält ltö 1. Taustaa 2. Erää ään n kurssin kokemuksia 3. Havaintoja kokemuksista 4. Entä
LisätiedotOhjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit
Ohjelmiston testaus ja laatu Ohjelmistotekniikka elinkaarimallit Vesiputousmalli - 1 Esitutkimus Määrittely mikä on ongelma, onko valmista ratkaisua, kustannukset, reunaehdot millainen järjestelmä täyttää
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 15.3.2010 T-106.1208 Ohjelmoinnin perusteet Y 15.3.2010 1 / 56 Tiedostoista: tietojen tallentaminen ohjelman suorituskertojen välillä Monissa sovelluksissa ohjelman
LisätiedotELM 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ätiedotAutomaattinen 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ätiedotOhjelmistojen mallintaminen. Luento 11, 7.12.
Ohjelmistojen mallintaminen Luento 11, 7.12. Viime viikolla... Oliosuunnittelun yleiset periaatteet Single responsibility eli luokilla vain yksi vastuu Program to an interface, not to concrete implementation,
LisätiedotAS-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ätiedotLUKUTEORIA johdantoa
LUKUTEORIA johdantoa LUKUTEORIA JA TODISTAMINEN, MAA11 Lukuteorian tehtävä: Lukuteoria tutkii kokonaislukuja, niiden ominaisuuksia ja niiden välisiä suhteita. Kokonaislukujen maailma näyttää yksinkertaiselta,
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2009 1 / 28 Puhelinluettelo, koodi def lue_puhelinnumerot(): print "Anna lisattavat nimet ja numerot." print
LisätiedotRakenteiset päättelyketjut ja avoin lähdekoodi
Rakenteiset päättelyketjut ja avoin lähdekoodi Mia Peltomäki Kupittaan lukio ja Turun yliopiston IT-laitos http://crest.abo.fi /Imped Virtuaalikoulupäivät 24. marraskuuta 2009 1 Taustaa Todistukset muodostavat
LisätiedotTapahtuipa Testaajalle...
Tapahtuipa Testaajalle... - eli testaus tosielämässä 09.10.2007 Juhani Snellman Qentinel Oy 2007 Agenda Minä ja mistä tulen Testauksen konteksti Tapauksia tosielämästä ja työkaluja 2 Minä Juhani Snellman
LisätiedotLogiikka 1/5 Sisältö ESITIEDOT:
Logiikka 1/5 Sisältö Formaali logiikka Luonnollinen logiikka muodostaa perustan arkielämän päättelyille. Sen käyttö on intuitiivista ja usein tiedostamatonta. Mikäli logiikka halutaan täsmällistää esimerkiksi
LisätiedotSisä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ätiedotOlio-ohjelmointi Javalla
1 Olio-ohjelmointi Javalla Olio-ohjelmointi Luokka Attribuutit Konstruktori Olion luominen Metodit Olion kopiointi Staattinen attribuutti ja metodi Yksinkertainen ohjelmaluokka Ohjelmaluokka 1 Olio-ohjelmointi
LisätiedotOhjelmistotekniikka - Luento 2
Ohjelmistotekniikka - Luento 2 Luku 2: Prosessimallit - miten spiraalimalliin päädyttiin - spiraalimallista (R)UP malliin - oman ammattitaidon kehittäminen; PSP ja TSP mallit 1 Luento 2: Prosessimallit
Lisätiedot11. Javan toistorakenteet 11.1
11. Javan toistorakenteet 11.1 Sisällys Laskuri- ja lippumuuttujat. Sisäkkäiset silmukat. Tyypillisiä ohjelmointivirheitä: Silmukan rajat asetettu kierroksen verran väärin. Ikuinen silmukka. Silmukoinnin
Lisätiedot815338A Ohjelmointikielten periaatteet 2014-2015
815338A Ohjelmointikielten periaatteet 2014-2015 X Skriptiohjelmointi Sisältö 1. Johdanto 2. Skriptikielten yleispiirteitä 3. Python 815338A Ohjelmointikielten periaatteet, Skriptiohjelmointi 2 X.1 Johdanto
LisätiedotYlläpitodokumentti. Boa Open Access. Helsinki 2.5.2006 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos
Ylläpitodokumentti Boa Open Access Helsinki 2.5.2006 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (6 ov) Projektiryhmä Ilmari
Lisätiedot812341A 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ätiedot4.3. Matemaattinen induktio
4.3. Matemaattinen induktio Matemaattinen induktio: Deduktion laji Soveltuu, kun ominaisuus on osoitettava olevan voimassa luonnollisilla luvuilla. Suppea muoto P(n) : Ominaisuus, joka joka riippuu luvusta
Lisätiedot2. Olio-ohjelmoinista lyhyesti 2.1
2. Olio-ohjelmoinista lyhyesti 2.1 Sisällys Yleistä. Oliot ja luokat. Attribuutit. Olioiden esittely ja alustus. Rakentajat. Olion operaation kutsuminen. 2.2 Yleistä Olio-ohjelmointia käsitellään hyvin
LisätiedotPankissa. Oikeesti aikuisten 1 tekstejä ja harjoituksia suomen kielen opetukseen
Pankissa Veera menee ensimmäistä kertaa yksin pankkiin. Hän haluaa avata oman tilin ja hankkia pankkikortin. Kun hän avaa pankin oven, hän huomaa, että pankissa on todella pitkä jono. Hän ottaa itselleen
LisätiedotTämän lisäksi listataan ranskalaisin viivoin järjestelmän tarjoama toiminnallisuus:
Dokumentaatio, osa 1 Tehtävämäärittely Kirjoitetaan lyhyt kuvaus toteutettavasta ohjelmasta. Kuvaus tarkentuu myöhemmin, aluksi dokumentoidaan vain ideat, joiden pohjalta työtä lähdetään tekemään. Kuvaus
LisätiedotOSUUSPANKIN KONSERNITILIPALVELU. Asiakasohje
OSUUSPANKIN KONSERNITILIPALVELU Marraskuu 2005 KONSERNITILIPALVELU 2 (5) Palvelun edut Palvelun kuvaus Konsernitili Konsernitilipalvelu on ratkaisu yrityksen kassanhallinnan hoidon ja maksuvalmiuden tehostamisen
LisätiedotAlgoritmit 1. Luento 2 Ke Timo Männikkö
Algoritmit 1 Luento 2 Ke 11.1.2017 Timo Männikkö Luento 2 Algoritmin esitys Algoritmien analysointi Suoritusaika Asymptoottinen kertaluokka Peruskertaluokkia NP-täydelliset ongelmat Algoritmit 1 Kevät
LisätiedotTutoriaaliläsnäoloista
Tutoriaaliläsnäoloista Tutoriaaliläsnäolokierroksella voi nyt täyttää anomuksen läsnäolon merkitsemisestä Esim. tagi ei toiminut, korvavaltimon leikkaus, yms. Hyväksyn näitä omaa harkintaa käyttäen Tarkoitus
LisätiedotPythonin 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ätiedotNuoret mediatoimijoina
Nuoret median käyttäjinä ja tulkitsijoina Viestinnän n Keskusliiton syysseminaari Kaisa Osola, Kallion lukio 1.12.2011 Nuoret median käyttäjinä ja tulkitsijoina Nuoret mediatoimijoina Millaiset sisäll
LisätiedotMatematiikan mestariluokka, syksy 2009 7
Matematiikan mestariluokka, syksy 2009 7 2 Alkuluvuista 2.1 Alkuluvut Määritelmä 2.1 Positiivinen luku a 2 on alkuluku, jos sen ainoat positiiviset tekijät ovat 1 ja a. Jos a 2 ei ole alkuluku, se on yhdistetty
LisätiedotOhjelmointi 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ätiedot811312A Tietorakenteet ja algoritmit 2015-2016. I Johdanto
811312A Tietorakenteet ja algoritmit 2015-2016 I Johdanto Sisältö 1. Algoritmeista ja tietorakenteista 2. Algoritmien analyysistä 811312A TRA, Johdanto 2 I.1. Algoritmeista ja tietorakenteista I.1.1. Algoritmien
Lisätiedot- Näin ollen päätettiin myös jatkossa pitää kokoukset samantapaisina.
1 Turku Centre for Computer Science - TUCS TUCS Neuvottelukunta Perjantai, 15. maaliskuuta, klo 15.00 Villa Solin, Katariina Neuvottelukunnan kuudes kokous. Pöytäkirja Läsnä: Jäsenet Tarmo Hahto (puheenjohtaja)
LisätiedotDIGIROAD DIGIROAD PALVELUT
Tilannekatsaus 6.8.2003 DIGIROAD PALVELUT DIGIROAD PALVELURAJAPINNAT DIGIROAD Kansallinen tie- ja katutietojärjestelmä DIGIROAD tietokanta 1 TietoEnator 2003 Tavoitteet DR-palvelupilotti antaa yleisen
LisätiedotOhjelmistotekniikka - Luento 2 Jouni Lappalainen
Ohjelmistotekniikka - Luento 2 Jouni Lappalainen Luku 2: Prosessimallit - miten spiraalimalliin päädyttiin - spiraalimallista (R)UP malliin - oman ammattitaidon kehittäminen; PSP ja TSP mallit 1 Luento
Lisätiedottutkimus (EBMeDS( EBMeDS) osana Päätöksentukihanketta v Terveystieteen laitos, tutkija Tiina Kortteisto
Sähköisen pääp äätöksen tuen tutkimus (EBMeDS( EBMeDS) osana Päätöksentukihanketta v. 2005-2009 Päätöksentukihanke (EBMeDS) 1.Pää äätöksentukihankkeen valmistelu ja tuottamisprosessin luominen (2004-2005)
LisätiedotUudelleenkäytön jako kahteen
Uudelleenkäyttö Yleistä On pyritty pääsemään vakiokomponenttien käyttöön Kuitenkin vakiokomponentit yleistyneet vain rajallisilla osa-alueilla (esim. windows-käyttöliittymä) On arvioitu, että 60-80% ohjelmistosta
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 2.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 2.2.2009 1 / 43 Funktiot Tähän asti esitetyt ohjelmat ovat oleet hyvin lyhyitä. Todellisessa elämässä tarvitaan kuitenkin
LisätiedotEhto- 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ätiedotRutiinin muodostaminen. 2. Rutiinin muodostaminen. specification) Määrittely (specification( Määrittelyn osapuolet. Hyvän ohjelman tunnusmerkit
2. Rutiinin muodostaminen Rutiinin muodostaminen roolit 1. Rutiinin määrittely 2. Sopimuspohjainen ohjelmointi 3. Määrittelyjen kirjoittaminen 4. Erikoistilanteiden hallinta analysointi luokat rutiinit
LisätiedotCopyright by Haikala. Ohjelmistotuotannon osa-alueet
Copyright by Haikala Ohjelmistotuotannon osa-alueet Ohjelmiston elinkaari 1. Esitutkimus, tarvekartoitus, kokonaissuunnittelu, järjestelmäsuunnittelu (feasibility study, requirement study, preliminary
LisätiedotOnnistunut SAP-projekti laadunvarmistuksen keinoin
Onnistunut SAP-projekti laadunvarmistuksen keinoin 07.10.2010 Patrick Qvick Sisällys 1. Qentinel 2. Laadukas ohjelmisto täyttää sille asetetut tarpeet 3. SAP -projektin kriittisiä menestystekijöitä 4.
Lisätiedot9. Muunneltavuuden hallinta
9. Muunneltavuuden hallinta Muunneltavuuden hallinta (Variability management): Tekniikat ja työtavat, jotka auttavat kuvaamaan, toteuttamaan ja hyödyntämään tuoterungon mahdollistamaa ohjelmistotuotteiden
LisätiedotTIETOTEKNIIKAN KOULUTUSOHJELMA
TIETOTEKNIIKAN KOULUTUSOHJELMA Tietotekniikan koulutusohjelman toimintaympäristö ja osaamistavoitteet Tietotekniikan koulutusohjelmasta valmistuneet insinöörit sijoittuvat suunnittelu-, ohjelmointi-, esimies-,
LisätiedotAlgoritmit 1. Luento 1 Ti Timo Männikkö
Algoritmit 1 Luento 1 Ti 10.1.2017 Timo Männikkö Luento 1 Algoritmi Algoritmin toteutus Ongelman ratkaiseminen Algoritmin tehokkuus Algoritmin suoritusaika Algoritmin analysointi Algoritmit 1 Kevät 2017
LisätiedotTentti: T-106.1210 Ohjelmoinnin peruskurssi, osa 1. Yleistä. Tehtävä 1
./ Tentti: T-106.1210 Ohjelmoinnin peruskurssi, osa 1 Tenttipäivä: 13.12. 2011 El APUVÄLINEITÄ Yleistä Tentissä on kaksi tehtävää. Ensimmäinen tehtävä on tärkeämpi: sillä pyritään varmistamaan, että jokaisella
LisätiedotLaaja-alainen, opiskelijalähtöinen ja projektiperusteinen opetussuunnitelma, case Monitori
Laaja-alainen, opiskelijalähtöinen ja projektiperusteinen opetussuunnitelma, case Monitori Insinöörikoulutuksen Foorumi 2012 Seminaariesitelmä Timo Turunen ja Matti Welin Monitori koulutusalarajat ylittävä
LisätiedotT-76.5158 SEPA päiväkirja
T-76.5158 SEPA päiväkirja Ryhmä 14 Automatisoitu yksikkötestaus Mikko Luukkonen, 60549T Lauri Helkkula, 62820H Matti Eerola, 60686A Versiohistoria Versio Pvm Tekijä(t) Kuvaus 0.3 25.11.2007 Luukkonen,
LisätiedotIT-OSAAJA, TIETOJENKÄSITTELYN ERIKOISTUMISOPINNOT
IT-OSAAJA, TIETOJENKÄSITTELYN ERIKOISTUMISOPINNOT KOULUTUKSEN KOHDERYHMÄ SISÄLTÖ Koulutuksen tavoitteena on antaa opiskelijalle valmiudet uusien tietoteknisten menetelmien ja välineiden hyödyntämiseen.
LisätiedotTIE PRINCIPLES OF PROGRAMMING LANGUAGES Eiffel-ohjelmointikieli
TIE-20306 PRINCIPLES OF PROGRAMMING LANGUAGES Eiffel-ohjelmointikieli Seminaariesitelmä ryhmä 24 Markku Ahokas Jani Kuitti i SISÄLLYSLUETTELO 1. YLEISTÄ EIFFELISTÄ... 1 1.1 Historia ja tausta... 1 1.2
LisätiedotSiirto Yritysasiakkaille. Palvelukuvaus: Siirto-vastaanotto
Siirto Yritysasiakkaille Palvelukuvaus: Siirto-vastaanotto 15. huhtikuuta 2018 1 Sisällysluettelo Sisällysluettelo... 2 Siirto-maksun yleiskuvaus... 3 Siirto-maksun edut... 3 Nordean Siirto Yritysasiakkaille...
Lisätiedot811120P Diskreetit rakenteet
811120P Diskreetit rakenteet 2018-2019 1. Algoritmeista 1.1 Algoritmin käsite Algoritmi keskeinen laskennassa Määrittelee prosessin, joka suorittaa annetun tehtävän Esimerkiksi Nimien järjestäminen aakkosjärjestykseen
LisätiedotOrganisatorinen muutos
Organisatorinen muutos 22.11.2001 TieVie-kouluttajakoulutus Helsingin yliopisto Projektipäällikkö Janne Sariola Teemat Lähtökohtia Miksi strategia? Mitä? Sisällöt Miten? Toimenpiteet Miksi? Strategisen
LisätiedotConcurrency - 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ätiedotMatematiikan opetuksen kehittäminen avoimen lähdekoodin ohjelmistojen avulla Petri Salmela & Petri Sallasmaa
Matematiikan opetuksen kehittäminen avoimen lähdekoodin ohjelmistojen avulla 21.04.2010 Petri Salmela & Petri Sallasmaa Tutkimusorganisaatio Åbo Akademin ja Turun yliopiston tutkimusryhmät Pitkä yhteistyötausta
LisätiedotRekursiolause. Laskennan teorian opintopiiri. Sebastian Björkqvist. 23. helmikuuta Tiivistelmä
Rekursiolause Laskennan teorian opintopiiri Sebastian Björkqvist 23. helmikuuta 2014 Tiivistelmä Työssä käydään läpi itsereplikoituvien ohjelmien toimintaa sekä esitetään ja todistetaan rekursiolause,
LisätiedotAlgoritmit. Ohjelman tekemisen hahmottamisessa käytetään
Ohjelmointi Ohjelmoinnissa koneelle annetaan tarkkoja käskyjä siitä, mitä koneen tulisi tehdä. Ohjelmointikieliä on olemassa useita satoja. Ohjelmoinnissa on oleellista asioiden hyvä suunnittelu etukäteen.
LisätiedotJavan 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ätiedotPerusarkkitehtuurin ja vuorovaikutuksen mallintamisen perusteita.
Perusarkkitehtuurin ja vuorovaikutuksen mallintamisen perusteita. Arkkitehtuuriin vaikuttavat ympäristötekijät Jo kehittämisen alkuvaiheessa on tarpeellista hahmotella arkkitehtuurin perusratkaisu. Lähtökohdat
LisätiedotOhjelmistojen 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ätiedot13/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ätiedotOhjelmistotuotanto vs. muut insinööritieteet. (Usein näennäinen) luotettavuus ja edullisuus
Yhteenveto Ohjelmistotuotanto vs. muut insinööritieteet Monimutkaisuus Näkymättömyys (Usein näennäinen) luotettavuus ja edullisuus Muunnettavuus Epäjatkuvuus virhetilanteissa Skaalautumattomuus Copyright
LisätiedotPerinteiset tietokoneohjelmat alkavat pääohjelmasta, c:ssä main(), jossa edetään rivi riviltä ja käsky käskyltä.
TIETOKONEOHJELMIEN RAKENNE Perinteiset tietokoneohjelmat alkavat pääohjelmasta, c:ssä main(), jossa edetään rivi riviltä ja käsky käskyltä. Teollisuusautomaation ohjelmiin on lainattu runsaasti perinteisen
Lisätiedot2. Eukleideen algoritmi
2. Eukleideen algoritmi 2.1 Suurimman yhteisen tekijän tehokas laskutapa Tässä luvussa tarkastellaan annettujen lukujen suurimman yhteisen tekijän etsimistä tehokkaalla tavalla. Erinomaisen käyttökelpoinen
LisätiedotTIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 8. syyskuuta 2016
TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 8. syyskuuta 2016 Sisällys a https://tim.jyu.fi/view/kurssit/tie/ tiea241/2016/videoiden%20hakemisto Matemaattisen
LisätiedotInvariantteihin perustuva ohjelmointi
Invariantteihin perustuva ohjelmointi Ralph-Johan Back Abo Akademi ja TUCS www.abo.fi/~backrj 5. kesäkuuta 2006 Oikein toimivien ohjelmien konstruointi: vaihtoehdot Oikeellisuuden todistaminen jälkikäteen
LisätiedotJohdatus ohjelmointiin
Johdatus ohjelmointiin Ohjelmistot tietokonejärjestelmissä Jaana Holvikivi Ohjelmistojen tehtävät Sovellusohjelmat tekstinkäsittely ja muut toimistosovellukset kirjanpito, tuotannonohjaus selaimet, mediaohjelmat
LisätiedotOhjelmoinnin peruskurssien laaja oppimäärä, kevät
Ohjelmoinnin peruskurssien laaja oppimäärä, kevät Luento 2: Ohjelman suunnittelua, miten oliot toimivat Riku Saikkonen (osa kalvoista on suoraan ei-laajan kurssin luennoista) 21. 1. 2013 Sisältö 1 Suunnittelua:
Lisätiedot811120P Diskreetit rakenteet
811120P Diskreetit rakenteet 2016-2017 ari.vesanen (at) oulu.fi 5. Rekursio ja induktio Rekursio tarkoittaa jonkin asian määrittelyä itseensä viittaamalla Tietojenkäsittelyssä algoritmin määrittely niin,
Lisätiedot+ 3 2 5 } {{ } + 2 2 2 5 2. 2 kertaa jotain
Jaollisuustestejä (matematiikan mestariluokka, 7.11.2009, ohjattujen harjoitusten lopputuloslappu) Huom! Nämä eivät tietenkään ole ainoita jaollisuussääntöjä; ovatpahan vain hyödyllisiä ja ainakin osittain
LisätiedotTäydentäviä muistiinpanoja laskennan rajoista
Täydentäviä muistiinpanoja laskennan rajoista Antti-Juhani Kaijanaho 10. joulukuuta 2015 1 Diagonaalikieli Diagonaalikieli on D = { k {0, 1} k L(M k ) }. Lause 1. Päätösongelma Onko k {0, 1} sellaisen
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 18.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 18.3.2009 1 / 51 Olioista (kertausta) Olioiden avulla voidaan kuvata useammasta arvosta koostuvaa kokonaisuutta
LisätiedotTIETOTEKNIIKKA 2012-2013 Koodi Vanha opintojakso op ov Vastuuhenkilö LV 2011-2012 vastaavat opinnot tai korvaava suoritustapa TTE.
TIETOTEKNIIKKA 2012-2013 Koodi Vanha opintojakso op ov Vastuuhenkilö LV 2011-2012 vastaavat opinnot tai korvaava suoritustapa TTE.344 Agenttipohjainen tietojenkäsittely 3 Ei voi suorittaa, tilalle jokin
LisätiedotTarkennamme geneeristä painamiskorotusalgoritmia
Korotus-eteen-algoritmi (relabel-to-front) Tarkennamme geneeristä painamiskorotusalgoritmia kiinnittämällä tarkasti, missä järjestyksessä Push- ja Raise-operaatioita suoritetaan. Algoritmin peruskomponentiksi
LisätiedotYhteentoimivuusalusta: Miten saadaan ihmiset ja koneet ymmärtämään toisiaan paremmin?
Yhteentoimivuusalusta: Miten saadaan ihmiset ja koneet ymmärtämään toisiaan paremmin? Avoin verkkoalusta ihmisen ja koneen ymmärtämien tietomääritysten tekemiseen Riitta Alkula 20.3.2019 Esityksen sisältö
LisätiedotHelpota arkeasi OPn digitaalisilla palveluilla OPn digitaalisten palvelujen eroavaisuudet Henkilöasiakkaiden mobiilipalvelut OP-mobiili Miten saan
Helpota arkeasi n digitaalisilla palveluilla n digitaalisten palvelujen eroavaisuudet Henkilöasiakkaiden mobiilipalvelut -mobiili Miten saan -mobiilin käyttöön? Turvallinen asiointi Op.fi on uudistunut!
LisätiedotOpintosuunnitelma. Suunta: Tietoliikenneohjelmistot ja -sovellukset Pääaine: Tietoliikenneohjelmistot Sivuaine: Yritysturvallisuus
Opintosuunnitelma Janne Paalijärvi Koulutusohjelma ja vuosikurssi: T II Opiskelijanumero: 57375S Sähköpostiosoite: jpaalija cc hut fi Opinto-opas: 2003-2004 Kirjastonkäyttöharjoitus suoritettu: 27.09.2004
LisätiedotSosiaalialan tuotteistaminen tietojärjestelm 19.5.2008
Sosiaalialan tuotteistaminen tietojärjestelm rjestelmää hyväksik ksikäyttäen 19.5.2008 Sanna Hämäläinen Sosiaalitoimen atk-koordinaattori Päijät-Hämeen sosiaali- ja terveydenhuollon kuntayhtymä Alkuselvittelyt
Lisätiedot811120P Diskreetit rakenteet
811120P Diskreetit rakenteet 2016-2017 1. Algoritmeista 1.1 Algoritmin käsite Algoritmi keskeinen laskennassa Määrittelee prosessin, joka suorittaa annetun tehtävän Esimerkiksi Nimien järjestäminen aakkosjärjestykseen
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2011 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2011 1 / 39 Kertausta: tiedoston avaaminen Kun ohjelma haluaa lukea tai kirjoittaa tekstitiedostoon, on ohjelmalle
LisätiedotTestausoppeja toimialavaihdoksesta
Testausoppeja toimialavaihdoksesta Maaret Pyhäjärvi Email: Gsm: 040-8233777 Erkki Pöyhönen & Maaret Pyhäjärvi Nimeä Attribution (Finland) http://creativecommons.org/licenses/by/1.0/fi/
Lisätiedot2 Sanoja järjestävän funktion ohjelmoiminen
1 Tämän dokumentin tarkoitus Tämä dokumentti ei kuulu millään tavoin tenttialueeseen, enkä ota vastuuta sen lukemisen aiheuttamista vahingoista. Tässä dokumentissa esitetään esimerkin kautta, miten matematiikan
LisätiedotP e d a c o d e ohjelmointikoulutus verkossa
P e d a c o d e ohjelmointikoulutus verkossa Java-kielen perusteet Teoria ja ohjelmointitehtävät Java-kielen perusteet 3 YLEISKATSAUS KURSSIN SISÄLTÖIHIN 10 JAVA-KIELEN PERUSTEET 10 OPISKELUN ALOITTAMINEN
Lisätiedot