Lataa esitys
Esittely latautuu. Ole hyvä ja odota
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
Samankaltaiset esitykset
© 2024 SlidePlayer.fi Inc.
All rights reserved.