Mieleni minun tekevi (tavoiteasettelua)

Samankaltaiset tiedostot
3/20: Algoritmirakenteita I

9/20: Puhu mun stdinille

5/20: Algoritmirakenteita III

4/20: Algoritmirakenteita II

12/20: Bitit talteen

Ohjelmointi 1 / syksy /20: IDE

17/20: Keittokirja IV

19/20: Ikkuna olio-ohjelmoinnin maailmaan

8/20: Luokat, oliot ja APIt

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

7/20: Paketti kasassa ensimmäistä kertaa

11/20: Konepelti auki

ITKP102 Ohjelmointi 1 (6 op)

13/20: Kierrätys kannattaa koodaamisessakin

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Luento 5. Timo Savola. 28. huhtikuuta 2006

Ohjelmoinnin perusteet, syksy 2006

P e d a c o d e ohjelmointikoulutus verkossa

Ohjelmointi 1 / syksy Ensimmäinen luento. Paavo Nieminen.

1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

ITKP102 Ohjelmointi 1 (6 op)

Ohjelmoinnin perusteet Y Python

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

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

Sisällys. 12. Näppäimistöltä lukeminen. Yleistä. Yleistä

Ohjelmoinnin perusteet Y Python

CODEONLINE. Monni Oo- ja Java-harjoituksia. Version 1.0

Algoritmit 1. Luento 3 Ti Timo Männikkö

8. Kieliopit ja kielet

12. Näppäimistöltä lukeminen 12.1

1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014

Rinnakkaisohjelmointi kurssi. Opintopiiri työskentelyn raportti

Rajapinta (interface)

Ohjelmoinnin perusteet Y Python

Java-kielen perusteita

ITKP102 Ohjelmointi 1 (6 op)

Ohjelmoinnin perusteet Y Python

C-ohjelmoinnin peruskurssi. Pasi Sarolahti

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

Java-kielen perusteet

Ohjelmoinnin peruskurssien laaja oppimäärä

Tietotekniikan valintakoe

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

ELM GROUP 04. Teemu Laakso Henrik Talarmo

Tehtävä 1. Tehtävä 2. Arvosteluperusteet Koherentti selitys Koherentti esimerkki

Ohjelmoinnin peruskurssien laaja oppimäärä

GIS-automatisointi ja ohjelmointi/skriptaus. Harri Antikainen

Java kahdessa tunnissa. Jyry Suvilehto

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

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

Ohjelmointi 2 / 2010 Välikoe / 26.3

Luokat ja oliot. Ville Sundberg

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

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op. Poikkeukset ja tietovirrat: Virhetilanteiden ja syötevirtojen käsittely

Ohjelmoinnin perusteet Y Python

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 5. marraskuuta 2015

1. Olio-ohjelmointi 1.1

Lohkot. if (ehto1) { if (ehto2) { lause 1;... lause n; } } else { lause 1;... lause m; } 16.3

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti

Tietojen syöttäminen ohjelmalle. Tietojen syöttäminen ohjelmalle Scanner-luokan avulla

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

Osoitin ja viittaus C++:ssa

Tutoriaaliläsnäoloista

14. Poikkeukset 14.1

14/20: Keittokirja I

Johdatus Ohjelmointiin

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti

15. Ohjelmoinnin tekniikkaa 15.1

ITKP102 Ohjelmointi 1 (6 op)

Ohjelmointi 1. Kumppanit

15. Ohjelmoinnin tekniikkaa 15.1

4. Lausekielinen ohjelmointi 4.1

Ohjelmoinnin peruskurssi Y1

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

Alkukartoitus Opiskeluvalmiudet

Ohjelmoinnin peruskurssien laaja oppimäärä

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 5: Python

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

Java-kielen perusteita

ICS-C2000 Tietojenkäsittelyteoria. Tähän mennessä: säännölliset kielet. Säännöllisten kielten pumppauslemma M :=

812341A Olio-ohjelmointi Peruskäsitteet jatkoa

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

Ongelma(t): Miten jollakin korkeamman tason ohjelmointikielellä esitetty algoritmi saadaan suoritettua mikro-ohjelmoitavalla tietokoneella ja siinä

Javan perusteita. Janne Käki

Apuja ohjelmointiin» Yleisiä virheitä

Javan perusteet. Ohjelman tehtävät: tietojen syöttö, lukeminen prosessointi, halutun informaation tulostaminen tulostus tiedon varastointi

811120P Diskreetit rakenteet

Ohjelmoinnin perusteet Y Python

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. X Poikkeusten käsittelystä

1. Mitä tehdään ensiksi?

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 12. tammikuuta 2012

tään painetussa ja käsin kirjoitetussa materiaalissa usein pienillä kreikkalaisilla

11.4. Context-free kielet 1 / 17

Algoritmit 1. Luento 1 Ti Timo Männikkö

Transkriptio:

Ohjelmointi 1 / syksy 2007 Mieleni minun tekevi (tavoiteasettelua) Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007 p.1/33

Tämän luennon teemat Tavoiteasettelu esimerkkiohjelmien kautta: millaisia ohjelmia pitäisi voida tehdä Ohjelmointi 1:ssä hahmottuvien taitojen pohjalta. Millaisia ohjelmia voi olla? Digitaalinen järjestelmä mustana laatikkona. Rajapinnan käsite, syöte-vaste -käyttäytyminen, tapahtumapohjaisuus vs. eräajo. Suoritusympäristö: argumentit, syötevirta, tulostusvirta, käyttöjärjestelmä, tietokone ( digitaalinen järjestelmä ) Syntaksi eli kielioppi käsitteenä. Javan syntaksista. Ohjelmointi 1 / syksy 2007 p.2/33

Luennon käsittelyjärjestys 1. Perustyökalujen ja toimintaympäristön esittely: Tiedostojärjestelmä, tiedostot, hakemistot Tekstieditori komentokehote Unix-shell Javan komentorivikääntäjä Javan virtuaalikone 2. Demonpalautusjärjestelmän esittely (koskee suomenkielisiä yliopisto-opiskelijoita; muille ohjeistetaan erikseen). 3. Muut asiat siinä määrin kuin ehditään. (Jatketaan huomenna siitä mihin jää.) Ohjelmointi 1 / syksy 2007 p.3/33

Esimerkkiohjelmia Tempolaskuri Mandelbrot -fraktaalin piirtäjä Kirjoitusnopeustesti Termiluettelon WWW-julkaisija Kivi-paperi-sakset -peli Ohjelmointi 1 / syksy 2007 p.4/33

Tempolaskuri Idea: Muusikko voi taputtaa tempoa, ja ohjelma arvioi mikä on musiikkikappaleen BPM (eli tempo neljäsosanuotteina minuutissa) ( Näytetään videoscreeniltä, miten ohjelma käännetään ja ajetaan) Ohjelmointi 1 / syksy 2007 p.5/33

Tempolaskuri ja tämä kurssi Ohjelmointi 1:llä on tarkoitus oppia: Kaikki tarvittavat ohjelmoinnilliset rakenteet Kyky siirtää alkuperäinen toimintaidea ohjelmointikielelle Kyky löytää tarvittavat lisäominaisuudet Javasta (tässä tapauksessa millisekuntikello) ja kyky oppia käyttämään niitä dokumentaation avulla. Ohjelmointi 1:llä ei varsinaisesti opita: Ei opita mitään listaa millisekuntikelloista ja miljoonasta muusta asiasta, mitä esim. Javalla voi tehdä vaan opitaan löytämään aina se mitä kulloinkin tarvitaan. Ohjelmointi 1 / syksy 2007 p.6/33

Mandelbrot -visualisointi Idea: Halutaan tuottaa kaunis visualisointi eräästä tunnetusta matemaattisesti määritellystä kompleksilukujen joukosta ( Näytetään videoscreeniltä, miten ohjelma käännetään ja ajetaan, ja nähdään tulostettu kuva kuvienkatseluohjelmalla) Ohjelmointi 1 / syksy 2007 p.7/33

Mandelbrot -visuaali ja tämä kurssi Ohjelmointi 1:llä on tarkoitus oppia: Kaikki tarvittavat ohjelmoinnilliset rakenteet Kyky siirtää kirjallisuudesta löytyvä matemaattinen algoritmi ohjelmointikielelle Keinot tiedostojen käsittelyyn: lataaminen ja tallentaminen Ohjelmointi 1:llä ei varsinaisesti opita: matematiikkaa (kompleksilukuja, fraktaaligeometriaa eikä paljon muutakaan) varsinaisesti mitään tiettyjä tiedostoformaatteja (kuten tässä PNM-kuvatiedosto) Ohjelmointi 1 / syksy 2007 p.8/33

Kirjoitusnopeustesti Idea: Halutaan testata konekirjoitusnopeutta. Pitäisi mahdollisimman nopeasti kopioida näppäimillä joku merkkijono, ja saada tietää montako merkkiä minuutissa on keskimääräinen kirjoitusnopeus. ( Näytetään videoscreeniltä, miten ohjelma käännetään ja ajetaan) Ohjelmointi 1 / syksy 2007 p.9/33

Kirjoitusnopeustesti ja tämä kurssi Ohjelmointi 1:llä on tarkoitus oppia: Kaikki tarvittavat ohjelmoinnilliset rakenteet Kyky siirtää alkuperäinen idea ohjelmointikielelle Tiedostojen käyttö (kuten tässä kirjoitettavien tekstirivien lukeminen levyltä) Ohjelmointi 1:llä ei varsinaisesti opita: Ei opita listaa millisekuntikelloista tai muusta, mitä esim. Javalla voi tehdä vaan opitaan löytämään aina se mitä kulloinkin tarvitaan. Konekirjoitusta tai kalevalaista runomittaa... (vaikka kymmensormijärjestelmästä on iloa ohjelmoinnissa ja nelipolvisesta trokeesta suomalaisen kansallisidentiteetin kannalta.) Ohjelmointi 1 / syksy 2007 p.10/33

Termiluettelon WWW-julkaisija Idea: Haluan raapustella kurssilla käsiteltävää terminologiaa nopeasti tekstieditorilla, ja julkaista sanalistan WWW-sivulla. ( Näytetään videoscreeniltä, miten ohjelma käännetään ja ajetaan) Ohjelmointi 1 / syksy 2007 p.11/33

Termiluettelo ja tämä kurssi Ohjelmointi 1:llä on tarkoitus oppia: Kaikki tarvittavat ohjelmoinnilliset rakenteet Kyky siirtää alkuperäinen toimintaidea ohjelmointikielelle Tiedostojen lukeminen ja kirjoittaminen Ohjelmointi 1:llä ei varsinaisesti opita: WWW:n teknologioita kuten HTML tai CSS Ohjelmointi 1 / syksy 2007 p.12/33

Kivi-paperi-sakset Idea: Halutaan aina hävitä todennäköisyydellä 1/3 ja joutua kirjoittamaan kivi, paperi tai sakset tämän saavuttamiseksi... ( Näytetään videoscreeniltä, miten ohjelma käännetään ja ajetaan) Ohjelmointi 1:llä on tarkoitus oppia: Kaikki tarvittavat ohjelmoinnilliset rakenteet Kyky siirtää alkuperäinen toimintaidea ohjelmointikielelle Ohjelmointi 1 / syksy 2007 p.13/33

Ohjelma digitaalisena järjestelmänä Otetaan aluksi ihanan 1920-lukulainen ajattelumalli tietokoneohjelmasta: Se on digitaalinen (numeroita käsittelevä) järjestelmä, jossa on: Sisäinen tila, jota ulkomaailma ei näe Kyky vastaanottaa syötteitä (bittijonoja) Kyky tulostaa ulkomaailmaan (bittijonoja) Käyttäytyminen, eli se miten tuloste (vaste) riippuu syötteestä Rajapinta, eli lupaus siitä miten järjestelmä käyttäytyy Tällaista voi kuvata mustalla laatikolla (kuva seuraavalla sivulla). Ohjelmointi 1 / syksy 2007 p.14/33

Digitaalinen järjestelmä, musta laatikko Karkea kuva syötteistä, vasteista ja käyttäytymisestä: Ohjelmointi 1 / syksy 2007 p.15/33

Tietokoneohjelma hieman tarkemmin Hieman tarkemmin katsottuna tieto kulkee eri kanavia pitkin, ja eri kanavilta tulevien syötteiden ajankohdilla ja järjestyksellä voi olla vaikutus: Ohjelmointi 1 / syksy 2007 p.16/33

Erilaisia ohjelmatyyppejä Erilaiset ohjelmat yksinkertaisimmasta monimutkaisempaan: Tulostavat aina samoin (turhalta kuulostaa) Syötteestä riippuva tulostus (esim. kääntäjä!) Tulostus riippuu syötteestä ja sen ajankohdasta Kommunikoi myös tiedostojen kautta ja tietoliikenneyhteyksillä (Ohj1:llä raja tähän!) Sisältää käyttöliittymäkomponentteja ja vahvasti muuttuvaisen, näkyvän tilan (so. graafinen, tapahtumapohjainen ohjelma) Järjestelmä, jossa on mukana useita keskenään kommunikoivia erilaisia ohjelmia ja käyttäjiä. Ohjelmointi 1 / syksy 2007 p.17/33

Syntaksi Syntaksi eli kielioppi on säännöstö, joka määrää merkkijonojen joukon. Syntaksi on välttämätön asia ohjelmoinnissa. Ohjelmointikielen syntaksi määrää, onko joku merkkijono ohjelma ollenkaan vai ei. Vain kieliopin mukainen ohjelmakoodi on mahdollista kääntää ja suorittaa. Kielioppi ei sinänsä kerro mitään merkkijonon merkityksestä! Ohjelmointi 1 / syksy 2007 p.18/33

Rautatie eli syntaksikaavio rautatie r a u t a t i e Ajattele rautatietä: Juna lähtee yhdeltä asemalta ja sen tulee päästä perille määräasemalle. Matkalla on asemia, joissa tulee kirjoittaa joku merkki. Kun juna kulkee ylläkuvatun raiteen läpi, on kirjoitettu täsmälleen merkkijono rautatie. Tämä on kielioppi, joka määrää sallittujen merkkijonojen joukoksi tasan yhden sanan eli rautatie. Ei kovin hyödyllistä vielä... Ohjelmointi 1 / syksy 2007 p.19/33

Rautatie eli syntaksikaavio 2 rautatie2 r a u t a o i k o t i e Ajattele edelleen rautatietä: Raidetta voi vaihtaa, jos kiskoissa on sopiva vaihde. Reitti on vapaasti valittavissa, kunhan juna lähtee alusta ja päätyy loppuun. Tämä on kielioppi, joka määrää sallittujen merkkijonojen joukoksi tasan kaksi erilaista: joko rautatie tai oikotie, riippuen raiteen vaihdosta. Ohjelmointi 1 / syksy 2007 p.20/33

Rautatie eli syntaksikaavio 3 Raiteenvaihtopaikkoja voi olla monta; aina on vapaa valinta. Seuraavassa sallittuja merkkijonoja on jo monta vaihtoehtoa, mm. Rautatie., rautatie., Keskitie., Oikopolku., keskipolku. : rautatie3 R r a u t a O o i k o t i e p o l k u. K k e s k i Ohjelmointi 1 / syksy 2007 p.21/33

Rautatie eli syntaksikaavio 4 Pakosti peräkkäin tulevat merkit voi kirjoittaa samaan pylpyrään. Raide voi kiertää takaisin alkuun. Seuraavassa sallittuja merkkijonoja on äärettömän paljon, mm. Keskikeskitite., Rautaoikokeskipolku. rautatie4 R r auta O o iko tie polku. K k eski Ohjelmointi 1 / syksy 2007 p.22/33

Rautatie eli syntaksikaavio 5 Rautatie voi olla pitkä ja monimutkainen. Sitä kannattaa katsoa lintuperspektiivistä yksi rataosio kerrallaan. Laatikko avautuu aina tarkemmiksi ja tarkemmiksi. Vasta pyöreät pylpyrät ovat kirjoitettavia: rautatie5 ReitinTarkennus Reitti. ReitinTarkennus R r O o K k auta iko eski Reitti tie polku Ohjelmointi 1 / syksy 2007 p.23/33

Rautatie eli syntaksikaavio 6 Seuraava mahdollistaa esim. merkkijonon polku, Rautaoikotie, keskitie, oikooikopolku, tie, tie, tie. rautatie6 ReittiLista. ReittiLista TarkkaTaiEpatarkkaReitti TarkkaTaiEpatarkkaReitti ReitinTarkennus, R r auta TarkkaTaiEpatarkkaReitti O o iko Reitti Reitti ReitinTarkennus Reitti K k eski tie polku Ohjelmointi 1 / syksy 2007 p.24/33

Turha yritys mallintaa suomea Luonnollinen kieli on eri asia kuin täsmällinen formaali kielioppi, mutta lähestytään vielä arkihavainnon kautta: Tarina Lause Lause Lause Subjekti Predikaatti ReferatiiviLV Objekti. Subjekti Predikaatti ReferatiiviLV Paavo oppii oppivansa Objekti Liisa rakastaa rakastavansa ohjelmointia Matti pelkaa pelkaavansa Millaisen tarinan voi kirjoittaa? syntaksia Ohjelmointi 1 / syksy 2007 p.25/33

Turha yritys mallintaa suomea Kelpo, kieliopin mukainen tarina: Liisa pelkää ohjelmointia. Liisa oppii syntaksia. Liisa pelkää oppivansa ohjelmointia. Liisa oppii ohjelmointia. Liisa pelkää rakastavansa ohjelmointia. Liisa rakastaa ohjelmointia. Toinen tämän kieliopin mielessä täysin kelpo tarina: Paavo pelkää rakastavansa syntaksia. Matti rakastaa oppivansa syntaksia. (Ei oikein toimi suomalaiseen kielikorvaan! Onneksi ohjelmoinnissa ei tarvitse miettiä niin monia sääntöjä. Ohjelmointikielten syntaksit ovat suoraviivaisia!) Ohjelmointi 1 / syksy 2007 p.26/33

Javan syntaksi Korkeimman tason syntaktinen elementti, eli Javan tarina on nimeltään käännösyksikkö eli Compilation Unit. Yksi lähdekooditiedosto on aina yksi käännösyksikkö! Katsotaanpa miten käännösyksikkö rakentuu, että se on kieliopin mukainen: CompilationUnit PackageStatement ImportDeclaration TypeDeclaration Se on Javan käännösyksikkö! Näin se lähtee avautumaan: PackageStatement Annotations package QualifiedIdentifier ; ImportDeclaration TypeDeclaration import static Identifier Identifier.. * ; ClassOrInterfaceDeclaration ; Ohjelmointi 1 / syksy 2007 p.27/33

Javan syntaksia pari pykälää lisää Jokainen toimiva Java-ohjelma rakentuu näin. Syntaksi avautuu niin suureksi, ettei siitä mahdu luentokalvolle kuin pieni osa: CompilationUnit PackageStatement ImportDeclaration TypeDeclaration PackageStatement ImportDeclaration Annotations package QualifiedIdentifier ; import static Identifier Identifier.. * ; TypeDeclaration ClassOrInterfaceDeclaration ; NormalClassDeclaration ClassOrInterfaceDeclaration Modifier ClassDeclaration InterfaceDeclaration ClassDeclaration NormalClassDeclaration EnumDeclaration ClassBody class Identifier TypeParameters extends ClassOrInterfaceType implements ClassOrInterfaceTypeList ClassBody { ClassBodyDeclaration } MemberDecl GenericMethodOrConstructorDecl MethodOrFieldDecl void Identifier VoidMethodDeclaratorRest ClassBodyDeclaration Identifier ConstructorDeclaratorRest MethodOrFieldRest ; static Block Modifier MemberDecl InterfaceDeclaration ClassDeclaration MethodOrFieldDecl VariableDeclaratorsRest ; Type Identifier MethodOrFieldRest MethodDeclaratorRest MethodDeclaratorRest TypeParameter [] throws QualifiedIdentifierList MethodBody MethodBody FormalParameters extends Bound ; Block Identifier Tarpeellisinta on ymmärtää kieliopin perusidea! Ohjelmointi 1 / syksy 2007 p.28/33

Ohjelmointi on kommunikointia ohjelmointikielellä! Jotta voit ohjelmoida, pitää osata ohjelmointikieli (tai useampia). Ensimmäisen opetteleminen on vaikeinta. Seuraava tulee jo melkein itsestään! Kaikilla kielillä voi kuvata tietyt perusrakenteet. Ohjelmointikielessä puhutaan peräkkäin kirjoitetuista lauseista, määrittelyistä ja toteamuksista aivan kuten esim. suomi. Edellämainitut sijoittuvat korkeamman tason rakenteisiin, joita sanotaan olio-ohjelmoinnissa luokiksi, rajapinnoiksi ja metodeiksi. Suoraan mallinnuskäsitteistöstä! Tällä kurssilla tullaan oppimaan rakenteiden MERKITYS sekä kirjoittaminen Javalla. Ohjelmointi 1 / syksy 2007 p.29/33

Java-kielen lauserakenteet Statement Block : Expression assert Expression ; else Statement if ParExpression Statement for ( ForControl ) Statement while ParExpression Statement do Statement while ParExpression ; try Block Catches Catches finally Block switch ParExpression { SwitchBlockStatementGroups } synchronized ParExpression Block Expression return ; throw Expression ; Identifier break Identifier continue (Javassa mahdolliset lauseet (engl. statement ). Kaikki laatikot avautuvat omalla tavallaan; pylpyrät on kirjoitettava merkistä merkkiin noin.) Voi kirjoittaa vain hyvin tarkoin määrättyjä, melko yksinkertaisia lauseita, mutta niitä peräkkäin laittamalla saadaan aikaan kaikki se, mitä tietokoneilla voidaan tehdä: pelit ja pankkijärjestelmät. ; StatementExpression ; Identifier : Statement Ohjelmointi 1 / syksy 2007 p.30/33

Tarkennuksia ja iskulauseita Edellä johdateltiin syntaksiin käsitteenä Perusidea on varsin yksinkertainen. Muista rautatie ja raiteet! Javan kieliopista on tullut muutosprosessien kautta monimutkainen. Sen syntaksi kannattaa opetella pienenpieni pala kerrallaan! Syntaksi ei ole juuri mitään; MERKITYS ON KAIKKI! Syntaksivirhe on pienin mahdollinen virhe, ja helppo korjata! Haluamme, että ohjelmaan kirjoitettu merkitys on oikeellinen ohjelmointiongelman ratkaisemiseen. Ohjelmointi 1 / syksy 2007 p.31/33

Mihin tästä edetään? Ryhdytään ohjelmoimaan Opetellaan ohjelmoinnin rakenteet yksi kerrallaan sekä merkitys että syntaksi. Ryhdytään myös hahmottamaan syntaksia tärkeämpiä rajoitteita ohjelman tekemisessä: tiedon esitysmuotoja, suoritusta tietokonelaitteessa ja käyttäjän huomioimista. Ryhdytään löytämään tietä ongelmakuvauksesta täsmälliseksi algoritmiksi ja lopulta toteutukseksi ohjelmointikielellä. Ohjelmointi 1 / syksy 2007 p.32/33

Huomenna nähdään! Silloin aiheena ohjelmoinnin perusrakenteita: Peräkkäissuoritus, lauseita ja lausekkeita Aliohjelmat ja niiden aktivointi Muuttujat, tyyppijärjestelmä, esitysmuodot, operaattorit, sijoituslauseet Parametrinvälitys ja paluuarvon sijoittaminen Tulostaminen konsoliin Ohjelmointi 1 / syksy 2007 p.33/33