|
| 1 | +--- |
| 2 | +path: '/osa-1/1-ohjelmoinnin-aloittaminen' |
| 3 | +title: 'Ohjelmoinnin aloittaminen' |
| 4 | +hidden: false |
| 5 | +--- |
| 6 | + |
| 7 | + |
| 8 | +<text-box variant='learningObjectives' name='Oppimistavoitteet'> |
| 9 | + |
| 10 | +- TODO |
| 11 | +- Tiedät miten tehtäviä ladataan ja miten niitä palautetaan. |
| 12 | + |
| 13 | +</text-box> |
| 14 | + |
| 15 | + |
| 16 | +Nykyaikainen ohjelmointi tapahtuu lähes poikkeuksetta ohjelmointiympäristössä. Ohjelmointiympäristö sisältää joukon ohjelmoijaa auttavia aputoimintoja. Se ei rakenna ohjelmaa ohjelmoijan puolesta, mutta se muunmuassa vinkkaa helpoista virheistä ohjelmakoodissa ja auttaa ohjelmoijaa hahmottamaan ohjelman rakennetta. |
| 17 | + |
| 18 | +Käytämme tällä kurssilla [NetBeans](https://netbeans.apache.org)-nimistä ohjelmointiympäristöä sekä siihen liitettävää Test My Code -liitännäistä. |
| 19 | + |
| 20 | +Tarvitset kurssin aloittamiseen (1) käyttäjätunnuksen kurssilla käytettyyn TMC-järjestelmään, (2) Javan (Java JDK), ja (3) NetBeans with TMC -ohjelmointiympäristön (jatkossa TMC). Näiden asentaminen onnistuu seuraavia ohjeita noudattamalla. |
| 21 | + |
| 22 | +<only-for-course-variant variant="dl"> |
| 23 | + Ohjeistus oleellisten työvälineiden asentamiseen sekä kurssilla tarvittavan käyttäjätunnuksen luomiseen löytyy osoitteesta [https://materiaalit.github.io/tmc-asennus/netbeans/](https://materiaalit.github.io/tmc-asennus/netbeans/). Valitse organisaatioksi "MOOC" ja kurssiksi "Ohjelmoinnin MOOC 2019". |
| 24 | +</only-for-course-variant> |
| 25 | + |
| 26 | +<only-for-course-variant variant="nodl"> |
| 27 | + Ohjeistus oleellisten työvälineiden asentamiseen sekä kurssilla tarvittavan käyttäjätunnuksen luomiseen löytyy osoitteesta [https://materiaalit.github.io/tmc-asennus/netbeans/](https://materiaalit.github.io/tmc-asennus/netbeans/). Valitse organisaatioksi "MOOC" ja kurssiksi "Ohjelmoinnin MOOC 2019 (aikatauluton)". |
| 28 | +</only-for-course-variant> |
| 29 | + |
| 30 | +<only-for-course-variant variant="ohja-dl"> |
| 31 | + Ohjeistus oleellisten työvälineiden asentamiseen sekä kurssilla tarvittavan käyttäjätunnuksen luomiseen löytyy osoitteesta [https://materiaalit.github.io/tmc-asennus/netbeans/](https://materiaalit.github.io/tmc-asennus/netbeans/). Valitse organisaatioksi "MOOC" ja kurssiksi "Ohjelmoinnin MOOC 2019 -- Aloitan osasta 8". |
| 32 | +</only-for-course-variant> |
| 33 | + |
| 34 | +<only-for-course-variant variant="ohja-nodl"> |
| 35 | + Ohjeistus oleellisten työvälineiden asentamiseen sekä kurssilla tarvittavan käyttäjätunnuksen luomiseen löytyy osoitteesta [https://materiaalit.github.io/tmc-asennus/netbeans/](https://materiaalit.github.io/tmc-asennus/netbeans/). Valitse organisaatioksi "MOOC" ja kurssiksi "Ohjelmoinnin MOOC 2019 -- Aloitan osasta 8 (aikatauluton)". |
| 36 | +</only-for-course-variant> |
| 37 | + |
| 38 | +<only-for-course-variant variant="kesa-dl"> |
| 39 | + Ohjeistus oleellisten työvälineiden asentamiseen sekä kurssilla tarvittavan käyttäjätunnuksen luomiseen löytyy osoitteesta [https://materiaalit.github.io/tmc-asennus/netbeans/](https://materiaalit.github.io/tmc-asennus/netbeans/). Valitse organisaatioksi "MOOC" ja kurssiksi "Ohjelmoinnin MOOC 2019, Kesä". |
| 40 | +</only-for-course-variant> |
| 41 | + |
| 42 | +<only-for-course-variant variant="kesa-ohja-dl"> |
| 43 | + Ohjeistus oleellisten työvälineiden asentamiseen sekä kurssilla tarvittavan käyttäjätunnuksen luomiseen löytyy osoitteesta [https://materiaalit.github.io/tmc-asennus/netbeans/](https://materiaalit.github.io/tmc-asennus/netbeans/). Valitse organisaatioksi "MOOC" ja kurssiksi "Ohjelmoinnin MOOC 2019 -- Aloitan osasta 8, Kesä". |
| 44 | +</only-for-course-variant> |
| 45 | + |
| 46 | +<only-for-not-logged-in> |
| 47 | + Kirjaudu sisään nähdäksesi, mikä organisaatio ja kurssi sinun tulee valita TMC:stä |
| 48 | +</only-for-not-logged-in> |
| 49 | + |
| 50 | +[Ohjeisiin!](https://materiaalit.github.io/tmc-asennus/netbeans/) |
| 51 | + |
| 52 | +Kun olet luonut käyttäjätunnuksen ja asentanut Javan ja TMC:n, katso alla oleva video. Video näyttää mitä tapahtuu kun NetBeans with TMC -ohjelmointiympäristö käynnistetään ensimmäistä kertaa. Videolla valitaan organisaatio ja kurssi, sekä tehdään ensimmäinen ohjelmointitehtävä. |
| 53 | + |
| 54 | +<youtube id="zvE8XA8D0gE"></youtube> |
| 55 | + |
| 56 | + |
| 57 | +Alla on kurssin ensimmäinen ohjelmointitehtävä. Tutustut tehtävässä käytettyyn ohjelmointiympäristöön. |
| 58 | + |
| 59 | +<programming-exercise name='Hiekkalaatikko' tmcname='osa01-Osa01_01.Hiekkalaatikko'> |
| 60 | + |
| 61 | +TODO: miten tämä löydetään? Tehtäväpohjassa on seuraavanlainen ohjelmarunko: |
| 62 | + |
| 63 | +```java |
| 64 | +public class Hiekkalaatikko { |
| 65 | + public static void main(String[] args) { |
| 66 | + // Kirjoita ohjelmasi tähän alle |
| 67 | + |
| 68 | + } |
| 69 | +} |
| 70 | +``` |
| 71 | + |
| 72 | + |
| 73 | +Rivi "// Kirjoita ohjelmasi tähän alle" on _kommenttirivi_, jota tietokone ei ota huomioon ohjelmaa suoritettaessa. |
| 74 | + |
| 75 | +Palauta tehtäväpohja palvelimen tarkastettavaksi ensin ilman minkäänlaisia muutoksia. Tällä tavoin harjoittelet tehtävän palauttamista. Tehtävän palauttaminen onnistuu valitsemalla TMC:ssä valikon TMC sekä sieltä kohdan "Submit". |
| 76 | + |
| 77 | +Kun olet saanut tehtävän palautettua, kokeile yllä olevaa videota noudattaen tulostuskomennon lisäämistä ohjelmaan ja ohjelman suorittamista. Kun saat ohjelman tulostamaan tekstiä (teksti voi olla mitä tahansa), palauta tehtävä vielä kertaalleen palvelimelle. |
| 78 | + |
| 79 | +Käytä hiekkalaatikkotehtävää jatkossa erilaisten kokeilujen tekemiseen. Kun kohtaat materiaalissa uuden asian, kokeile sitä ensin hiekkalaatikossa, ja lähde sitten ratkaisemaan tehtävää tehtävään kuuluvassa tehtäväpohjassa. |
| 80 | + |
| 81 | +</programming-exercise> |
| 82 | + |
| 83 | + |
| 84 | +## Ohjelmoija kirjoittaa lähdekoodia |
| 85 | + |
| 86 | +Ohjelmointi on ohjelmistojen suunnittelua ja toteutusta. Toteutettava toiminnallisuus määräytyy ohjelmiston tilaajien ja käyttäjien toiveiden ja vaatimusten perusteella. Ohjelmia toteutetaan (eli kirjoitetaan tai "koodataan") tyypillisesti ihmisten kirjoitettavaksi ja luettavaksi tarkoitetulla ohjelmointikielellä. Ohjelmointikieliä on satoja ja tällä kurssilla keskitytään näistä kielistä yhteen. Kurssin kielenä on [Java](<https://en.wikipedia.org/wiki/Java_(programming_language)>), joka on yksi maailman eniten käytetyistä ohjelmointikielistä. Javaa tuntevan on myös helppo oppia uusia ohjelmointikieliä. |
| 87 | + |
| 88 | +Ohjelmointikielet kuten Java tarjoavat suuren määrän valmiita komentoja, joita ohjelmoija käyttää ohjelmistoja luodessa. Tämä helpottaa ohjelmointia, sillä aivan kaikkea ei tarvitse toteuttaa alusta lähtien. Esimerkiksi graafisia käyttöliittymiä toteutettaessa ohjelmointikielillä on tyypillisesti valmiita toiminnallisuuksia erilaisten valikoiden ja näkymien luomiseen. Iso osa ohjelmoinnista onkin ohjelmointikielen valmiiksi tarjoamien komentojen soveltamista ongelmien ratkaisuissa -- tämä toisaalta vaatii ohjelmointirutiinia, joka kehittyy vain ohjelmoimalla. |
| 89 | + |
| 90 | +Kirjoitettua "koodia" kutsutaan **lähdekoodiksi**. Lähdekoodi koostuu lauseista (statement) ja lausekkeista (expression), joita yleensä voidaan lukea rivi riviltä ylhäältä alaspäin ja vasemmalta oikealle. Esimerkiksi tekstin "Hei maailma" tulostuksessa käytetään Java-ohjelmointikielen valmista komentoa `System.out.println()`, jolle kerrotaan sulkujen sisälle tulostettava teksti. |
| 91 | + |
| 92 | +```java |
| 93 | +System.out.println("Hei maailma"); |
| 94 | +``` |
| 95 | + |
| 96 | +Yllä oleva lause on Java-ohjelmointikielen valmiiksi tarjoama komento, jota käytetään merkkijonon tulostamiseen. Komento käytännössä käskee tietokonetta tulostamaan sille sulkeiden sisällä lainausmerkeissä (joita ohjelmoijat kutsuvat usein 'hipsuiksi') annetun merkkijonon. Lauseen loppuun kirjoitetaan puolipiste `;`. |
| 97 | + |
| 98 | +Java-ohjelmat vaativat toimiakseen ohjelmarungon, joka tulee kurssin aikana tutuksi. Vaikket ohjelmarunkoa vielä tunne, voit jo yllä kuvatun tulostuslauseen perusteella pienen ohjelman mahdollisen toiminnan. Alla on kurssin ensimmäinen kyselytehtävä. Kyselytehtäviin vastataan suoraan kurssimateriaalissa. |
| 99 | + |
| 100 | +<quiznator id="5c136a4ea50dbe1223d1981d"></quiznator> |
| 101 | + |
0 commit comments