OHJELMOINNIN PERUSTEET (2ov)

Slides:



Advertisements
Samankaltaiset esitykset
Tuloksellinen Java-ohjelmointi Luku 3 Luokkien käyttäminen
Advertisements

Olio-ohjelmoinnin perusteet luento 3: Muuttujista ja funktioista Sami Jantunen LTY/Tietotekniikan osasto.
JavaScript (c) Irja & Reino Aarinen, 2007
4. Lausekielinen ohjelmointi
Julkaisukielet ja - tekniikat tMyn1 Julkaisukielet ja -tekniikat •Verkko-ohjelmointi voidaan jakaa kahteen osaan: asiakaspuolen ja palvelinpuolen ohjelmointiin.
Olio-ohjelmointi. Mitä olio-ohjelmointi on ?  Pyritään mallintamaan jotain reaalimaailman kohdetta tietokoneohjelman avulla  Olio on luokan ilmentymä.
2.8.3 Abstraktit tietotyypit
1. Olio-ohjelmointi.
Ohjelmointitaito (ict1td002, 12 op) Syksy 2008
13. Pakkaukset.
Näytölle tulostaminen. 7.2 Sisällys System.out.println - ja System.out.print -operaatiot. Tulostus erikoismerkeillä. Edistyneempää tulosteiden.
Ohjelma on kokoelma toimintaohjeita annetun tehtävän ______________________. Ohjelmassa on peräkkäisten toimintojen lisäksi yleensä valintaa ja _____________.
Antti-Jussi Lakanen Nuorten peliohjelmointi 2009 / Jyväskylän yliopisto.
Kurssilla käytettävät työkalut
OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT. LUOKKA JAVA ohjelma koostuu luokista LUOKKA sisältää metodeja molemmat sisältävät attribuutteja eli muuttujia.
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
@ Leena Lahtinen Helia OHJELMOINTITAITO ICT02D 12 OP.
OHJELMOINTITAITO ICT02D 12 ECTS. OPINTOJAKSON TOTEUTUS  KESTO: –  PÄIVÄOPISKELIJAT: – KAKSI LUOKAA (SUOMI) –YKSI LUOKKA (ENGLANTI)
Ohjelman jakaminen useampaan tiedostoon Olio-ohjelmointi (C++) KYAMK, Jarkko Ansamäki 2001.
13. Hyvä ohjelmointitapa (osa 1)
© Jukka Harju, Jukka Juslin
1 Kertaus koetta varten oleellisista asioista Jukka Juslin.
Ohjelmointi.
ict1td002 - Copyright Raine Kauppinen 1 Alkuarvot ja tyyppimuunnokset (1/5)  Aiemmin olemme jo antaneet muuttujille alkuarvoja, esimerkiksi: int.
Visual Basic -ohjelmointi
String-vertailusta ja Scannerin käytöstä (1/2)
Tietokoneohjelman suoritus opintojakso Olioajattelu ja –ohjelmointi, osa I Hans Nieminen Syksy 2013.
HelloWorld-ohjelma. 5.2 Sisällys Lähdekoodi. Lähdekoodin (osittainen) analyysi. Lähdekoodi tekstitiedostoon. Lähdekoodin kääntäminen tavukoodiksi.
4. Attribuutit 4.1. Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2.
5. Kapselointi Yleistä Kapseloinnilla (encapsulation) tarkoitetaan luokan tietojen ja toimintojen pakkaamista yhdeksi suojatuksi kokonaisuudeksi.
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
Hyvä ohjelmointitapa (osa 2) Yleistä Lisää hyviä ohjelmointikäytäntöjä: − Jaa pitkä koodi osiin. − Käytä attribuutteja säästeliäästi.
© Jukka Juslin1 Tiedostot Tuloksellinen Java-ohjelmointi.
OHJELMOINTITAITO ICT02D 12 ECTS. OPINTOJAKSON TOTEUTUS  KESTO: –  AVOIMEN OPISKELIJAT: – YKSI LUOKA (SUOMI) – LUOKKA ICT02O-1.
Ohjelmointitaito (ict1td002, 12 op) Kevät 2008 Raine Kauppinen
1 Ohjelmointikielten varhaishistoria Esa-Matti Miettinen
– Ohjelmistojen mallintaminen, mallintaminen ja UML.
Testaus Testaus Testauksella pyritään löytämään virheitä, jotka sitten korjataan. Yksittäinen testi on yleensä ohjelman suoritus (tietyillä.
Harjoitustyö 1. Olio-ohjelmoinnin perusteet | Kevät 2015 | Jorma Laurikkala2 Harjoitustyö Tehtävä: ohjelmoi lötköjen kansoittamaa alkulimaa simuloiva.
© Jukka Juslin1 Osio2 Olio-ohjelmointi: Merkkijonot eli Stringit Jukka Juslin.
Jouni Juntunen Oulun seudun ammattikorkeakoulu Liiketalouden yksikkö
Johdatus ohjelmointiin – C kielen peruselementit Tutkijayliopettaja Manne Hannula Opetusharjoittelu (ohjaava opettaja Jukka Jauhiainen)
Tiedostojen käsittely
Visual Basic -ohjelmointi
15. Ohjelmoinnin tekniikkaa
Aiheet ● Ohjelmointikielten kääntäminen ● Kieliopin määrittely ● Kääntäjän toiminta.
1.0 TE DiplomityöEsitelmä/ / JT Soveltuvuustutkimus Lifebelt-ohjelman ideologian käytettävyydestä olio- orientoituneeseen ohjelmointiin Jukka.
String-vertailusta ja Scannerin käytöstä (1/2)
Procedural Language Extensions to SQL
1. Olio-ohjelmointi.
8. Näppäimistöltä lukeminen
7. Hyvä ohjelmointitapa..
OHJELMOINTITAITO ICT02D 12 Leena Lahtinen Helia
15. Ohjelmoinnin tekniikkaa
3. Luokat, oliot ja metodit Java-kielessä (Lausekielinen ohjelmointi I ja II –kursseilla opitun kertausta.)
5. HelloWorld-ohjelma.
7. Näytölle tulostaminen
19. Tietovirrat.
8. Näppäimistöltä lukeminen
14. Hyvä ohjelmointitapa.
OHJELMOINTITAITO ICT02D 12 Leena Lahtinen Helia
13. Pakkaukset.
7. Hyvä ohjelmointitapa..
7. Näytölle tulostaminen
5. HelloWorld-ohjelma.
OHJELMOINTITAITO ICT02D 12 ECTS.
OHJELMOINTITAITO ICT02D 12 ECTS.
4. Luokan testaus ja käyttö olion kautta
1. Olio-ohjelmointi.
OHJELMOINTITAITO ICT02D 12 ECTS.
Esityksen transkriptio:

OHJELMOINNIN PERUSTEET (2ov) Bioinformatiikan koulutusohjelma 15.11.2004-31.5.2004

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ää

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ä

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

2. OHJELMOINNIN KÄSITTEITÄ

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

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++)

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

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

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

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

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

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

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

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)

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

esimerkki lohkokaaviosta

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

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

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

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

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

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

Rakenteellinen ohjelmointi Ongelma ja ohjelma pilkotaan moduleiksi ja modulin laskenta funktioiksi

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

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

Muita paradigmoja geneerinen ohjelmointi logiikkaohjelmointi

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…

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.

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

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

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

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

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

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

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

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”;

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

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

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

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