Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

OHJELMOINNIN PERUSTEET (2ov)

Samankaltaiset esitykset


Esitys aiheesta: "OHJELMOINNIN PERUSTEET (2ov)"— Esityksen transkriptio:

1 OHJELMOINNIN PERUSTEET (2ov)
Bioinformatiikan koulutusohjelma

2 1. Yleistä työpäivät työtavat suoritustapa
ma 15.11, ti 16.11, ti 30.11, ke 1.12 ja ti 14.12 työtavat Aamupäivä luentoa, iltapäivä käytäntöä, lisäksi kotitehtävät (aamulla teoriasta käytäntöön) suoritustapa Harjoistustyö, jonka ratkaisu ja toiminta pitää selittää

3 Kurssin sisältöä keskeiset termit ja käsitteet
ohjelmoinnista yleensä, algoritmiikasta ja tietorakenteiista perl yleensä ja active-perl ohjelmoinnin perusaskeleita perlillä harjoitustyö jostain bioinformatiikan tyypillisestä ohjelmointitehtävästä

4 Kirjallisuutta Opeta itsellesi PERL-ohjelmointi
Perl tehokäyttäjän opas Beginning Perl for Bioinformatics

5 2. OHJELMOINNIN KÄSITTEITÄ

6 Ohjelmointi Ohjelmointi yleisesti: jokin ohjataan suorittamaan jonkin toisen antamat ohjeet reitin neuvonta, videoiden ajastus, aivopesu Tietokoneen ohjelmointi: ohjelmoija ohjaa koneen tekemään joukon operaatioita ongelman ja tuloksen ymmärtäminen (ajatus) ratkaisu (algoritmi) ratkaisun selittäminen koneelle (koodaus) testataan ohjelmaa

7 Kieli Kieli: ohjelmoijan keino selittää tehtävät operaatiot koneelle
Konekieli: alkeellinen ja kohtuuttoman työläs tapa selittää tehtävät koneelle Skriptikieli: tulkataan ajon aikana (esim. perl) Ohjelmointikieli: käännetään, jonka tuotos on ajokelpoinen tiedosto (esim. c++)

8 Lisää keskeisiä käsitteitä
Syntaksi: kieleen liittyvä kielioppi Virhe: looginen, semanttinen, syntaktinen Varatut sanat: kielessä näille sanoille valmis merkitys  ei voi käyttää muuttujan nimenä Ajo = suoritus = laskenta Syöte: ohjelman tarvitsemat lähtötiedot Tulos: ohjelman suorituksen tuottama informaatio

9 Käsitteitä… Koodi: ohjelmoinnin tuotos, joka tulkataan/käännetään
Kommentti: koodin osa, jonka kääntäjä/tulkki ohittaa ja joka mahdollisesti selittää koodin toimintaa Lause: koodin peruspalikka

10 käsitteitä… muuttuja skalaari, skalaarimuuttuja, skalaarioperaattori
tietorakenne: lista, puu moduli

11 käsitteitä… Funktio: toiminnallinen kokonaisuus, joka vuorovaikuttaa pääohjelman kanssa parametreilla Editori: ohjelma/ympäristö, jossa ohjelma/koodi kirjoitetaan (esim. notepad tai emacs) Parametri(t) Kirjasto: joukko funktioita

12 käsitteitä Maalaisjärki: tärkee Jäsentäminen: ongelman hahmottaminen
Testaus: tekeekö ohjelma, mitä oli tarkoitus Pseudokoodi: irti konkreettisesta kielestä, algoritmien havainnollistaminen Lohkokaavio: algoritmien havainnollistaminen

13 3. OSAKOKONAISUUKSIA OHJELMOINNISSA
vaatimukset ilmiön abstrahointi algoritmit ympäristö kieli ohjelmointi testaus

14 Vaatimuksista yleensä lähdetään
mitä halutaan haluaisimme työkalun jolla… miten käytetään vaatimusmäärittely virallinen työkalu voi olla jo valmiina!!

15 Ilmiön abstrahoinista
poimitaan mallinnettavan ilmiön tärkeät osat Tällöin pitäisi löytyä luonnollisin paradigma informaation kulku mahdolliset funktiot (laskennan osakokonaisuudet)

16 Algoritmitmeista miten laskenta lopullisessa ohjelmassa menee
miten laskenta moduleissa menee tietorakenteet aikavaatimukset, kompleksisuudet pseudokoodi, lohkokaavio

17 esimerkki lohkokaaviosta

18 Ympäristöstä Missä on data vuorovaikutus muiden ohjelmien kanssa
missä ympäristössä ohjelmaa tarvitaan

19 Ohjelmointikielistä korkean vai matalan tason kieli
käytettävä kieli ohjelmointikielessä (riippuu hieman paradigmasta) (Kommentointi, syntaksi)

20 Testauksesta tekeekö ohjelma, mitä oli vaatimuksissa
virheiden etsiminen haravointi metsästys ääritapaukset

21 4. OHJELMOINTIPARADIGMAT
miten maailmaa luonnollisesti mallinnetaan miten ohjelmoija systeemin näkee selvä prosessi alusta loppuun esim. laske lukujen mediaani jatkuva vuorovaikutus käyttäjän, jonkun ympäristön tai jonkun toisen ohjelman kanssa esim. tarkkaile anturin tilaa

22 Proseduraalinen ohjelmointi
ohjelman toiminta pilkotaan osiin -> funktioita (=proseduureja) painopiste algoritmilla

23 Funktionaalinen ohjelmointi
talo voitaisiin rakentaa proseduraalisesti seuraavasti: 1) laske perustus, 2) rakenna seinät, 3) tee lattia 4) pystytä katto. funktionaalisest sama määritys voisi olla talo koostuu 1) seinistä, joita perustukset tukevat, 2) lattiasta, jota perustukset tukevat sekä 3) katosta, jota seinät tukevat

24 Rakenteellinen ohjelmointi
Ongelma ja ohjelma pilkotaan moduleiksi ja modulin laskenta funktioiksi

25 Olioperustainen ohjelmointi (1)
tietojen ja toiminnan kasaaminen samojen vahvojen ”seinien” sisään Luokka olion prototyyppi, olio on luokan instanssi Periytyminen luokan ominaisuuksien jalostaminen Monikäyttöisyys

26 Olioperustainen ohjelmointi (2)
jäsenfunktiot rakennin Atribuutit näkyvyysaspekti

27 Muita paradigmoja geneerinen ohjelmointi logiikkaohjelmointi

28 5. OHJELMOINTIKIELISTÄ useimmat sisältävät samanlaisen ilmaisuvoiman
kysymys on yleensä käyttökohteesta, eli tarvitaanko tiettyä paradigmaa grafiikkaa, audiota erityisalan toimintoja nopeutta jne…

29 Perl (1) skriptikieli (esim c++ ei ole)
(tulkataan) erinomainen tekstimuotoisen datan käsittelyyn (mm. säännöllinen kielioppi) myös internetohjelmointi, järjestelmien hallintaan jne.

30 Perl (2) eri ympäristöihin: unix/linux, windows
paljon käytetty bioinformatiikassa paljon kirjastoja (esim bioperl)

31 6. KOODI JA SEN AJO (1) perli-skriptin (koodin) sisältävän tiedoston pääte on kontekstista ja ympäristöstä riippuen .pl, .plx, pm. vrt. c++:ssa cpp, h jne. perl-skripti ajetaan kutsumalla tulkkia ja antamalla tiedosto perl TulostaTervehdys.plx

32 KOODI JA SEN AJO (2) skriptin ensimmäisellä rivillä voi myös olla tulkin automaattinen kutsu (unix) #!/usr/bin/perl tällöin ohjelman ajo: TulostaTervehdys.plx esim. c++-ohjelma käännetään ja tämä tuottaa tietyssä ympäristössä ajokelpoisen tiedoston

33 KOODI JA SEN AJO (3) lauseet erotellaan erottimella
tavallisesti ; -merkki (puolipiste) koodilohkot erotellaan yleensä {}-merkeillä (joissakin myös sisennys) tyhjiä rivejä selkeyttämiseksi sisennyksiä struktuurin hahmottamiseen kommentteja selittämiseen

34 7. MUUTTUJAT (1) ojelman käsittelemä tieto tallennetaan ja manipuloidaan muuttujissa muuttujan tyyppi ilmoittaa, minkä muotoista dataa sinne voidaan laittaa perl: skalaarimuuttuja on yksinkertaisin tietotyyppi (alkaa $-merkillä, loppuosa riippuu mielikuvitusta) numero tai merkkijono

35 MUUTTUJAT (2) muissa ohjelmointikielissä yleensä tarkemmat tietotyypit
esim. C ja C++ int = kokonaisluku float = liukuluku char = merkki

36 MUUTTUJAT (3) esittely ja alustaminen (perl)
$Nimi = ”Jussi” $ViikonpäivienLukumaara = 7; esittely ja alustaminen (C, C++, java) int ViikonpaivienLukumaara; ViikonpaivienLukumaara = 7;

37 MUUTTUJAT (4) vältä muuttujien nimissä muotoja testi, testi1, muuttuja, luku, jne… kirjoita mahdollisimman kuvaava nimi $TyoYhteisonJasen = ”Tytti”; yhteisön vaatimuksia (kieli, termit) $NumberOfDaysInOneMonth = 31; $file_name = ”Genes.txt”;

38 MUUTTUJAT (5) Perlin oletusmuuttuja $_
operaatio tehdään tälle, jos muuttujaa ei ole erikseen annettu

39 MUUTTUJAT (6) skalaari operaatioita,operaattoreita
laskuoperaatioita: +, -, *, /, **, % merkkijonoille: .-operaattori numerovertailu: ==, !=, <, >, <=, >= merkkijonovertailu: eq, ne, lt, gt, le, ge muissa kielissä paljon samaa (paitti merkkijonon kanssa)

40 MUUTTUJAT (7) Debuggaus on muuttujien arvojen tutkiskelua ja ohjelmansuorituksen tarkkailua debuggerit tulostus debuggauksessa virheiden etsiminen

41 8. TYYLISEIKKOJA syntaksi kommentointi ei goto lauseita (ilmaisuvoima)
funktioihin jakaminen moduleihin jakaminen


Lataa ppt "OHJELMOINNIN PERUSTEET (2ov)"

Samankaltaiset esitykset


Iklan oleh Google