Kurssiesite Lausekielinen ohjelmointi I Syksy 2015 Jorma Laurikkala Tietojenkäsittelytieteet Informaatiotieteiden yksikkö Tampereen yliopisto
Vastuuopettaja Jorma Laurikkala, yliopistonlehtori. Luennot, ohjatut mikroharjoitukset ja luentosaliharjoitukset. Sähköposti: jorma.laurikkala@uta.fi ja puhelin: 050 318 5873 Kurssia koskevien sähköpostien otsikon olisi hyvä alkaa merkkijonolla Laki 1:. Esimerkkiotsikko Laki 1: kysymys luennoista. Vastaanotto torstaisin klo 12 13 huoneessa B1025. Ovelle voi koputella muulloinkin. Aikoja voi myös sopia sähköpostilla tai puhelimitse. 2
Lausekielinen ohjelmointi I (5 op) Ensimmäinen ohjelmointikurssi sekä tutkinto-ohjelmassa että valinnaisesti tietojenkäsittelytieteitä opiskeleville. Ensimmäisenä ohjelmointikurssina haastava kurssi. Tavoitteena pehmeä lasku ohjelmoinnin pariin. Oletetaan, että opiskelija ei ole ohjelmoinut aiemmin. Aiemman 10 op:n Laki-kurssin ensimmäinen puolisko ensimmäinen harjoitustyö pois lukien. Kurssin laajuus on 5 op opintojen aloitusvuodesta riippumatta. Kurssin sivut http://www.uta.fi/sis/tie/laki1/ ovat tärkein tiedotuskanava seuraa kurssisivuja säännöllisesti. Ilmoittautuminen auki pe 4.9. klo 12.00 saakka. 3
Lausekielinen ohjelmointi I (5 op) Tavoitteena oppia ohjelmoinnin alkeet: Kurssin suorittaneet osaavat toteuttaa itsenäisesti pienehköjä tietokoneohjelmia Java-kielellä. Lausekielinen ohjelmointi II -kurssilla syvennetään opittua ja perehdytään laajempiin ohjelmiin. Motto: Ohjelmoimaan oppii vain ohjelmoimalla. Ohjelmointia aloittelevien tulisi käyttää kurssin alkupuolella omatoimiseen opiskeluun, erityisesti harjoitusten tekoon, ainakin kuusi tuntia viikossa. Kaverilta kopioimalla oppi ei mene perille. Älä siis plagioi. Kurssi koostuu luennoista, viikkoharjoituksista, tentistä ja palautteenannosta. 4
Luennot (6 x 2 x 2 tuntia) Luennoilla pyritään avaamaan kalvoille tiivistettyjä asioita ja annetaan lisää esimerkkejä. Viikoilla 36 41 maanantaisin klo 10 12 (B1100) ja keskiviikkoisin klo 8 10 (Väinö Linna -sali). Eivät pakollisia, mutta suositellaan lämpimästi ohjelmointia aloitteleville. Luennoille tulemisesta ei saa hyvityspisteitä. Akateeminen vartti, molemmat tunnit peräkkäin. Esimerkiksi aloitetaan 10.15 ja lopetetaan 11.45. Kysymyksiä saa esittää. 5
Luentojen aktivointi Perinteinen luennointi on opetusta, jossa opettaja puhuu ja opiskelijat kuuntelevat. Taloudellinen opetusmuoto sekä turvallista opettajalle ja opiskelijalle. Ei kehitä kovin hyvin ongelmanratkaisun taitoa, jota ohjelmointi pitkälti on. Luentojen lomassa on muutama aktivoiva tehtävä, joiden tarkoitus on herätellä pohtimaan, analysoimaan ja soveltamaan luennoilla opittua. Perinteistä kaavaa rikkomalla oppiminen voi tehostua. 6
Luentojen aktivointi Pääasiallinen työmuoto on porinaryhmä: Salissa lähekkäin istuvien opiskelijoiden ryhmiä (2 5 henkeä), joissa pohditaan aktivoivaa tehtävää. Porinan pelisäännöt: Opettaja kertoo milloin keskustelu alkaa ja milloin keskusteluun varattu aika loppuu. Keskusteluun varattuna aikana puhutaan paljon annetusta aiheesta. Ryhmän on tuotettava keskustelun pohjalta vastaus. Yksinkin voi työskennellä, mikäli ryhmätyöhön osallistuminen on vaikeaa. Kenenkään ei tarvitse esiintyä luennoilla. 7
Viikkoharjoitukset (6 kappaletta) Koostuvat harjoitustehtävistä ja harjoitusryhmistä. Mikroharjoitusryhmät tukevat tehtävien ratkaisua, luentosaliharjoituksissa esitellään ratkaisut. Harjoituksista on kerättävä vähintään tietty määrä pisteitä. Valtaosa pisteistä tulee hyväksytysti ratkaistuista harjoitustehtävistä. Tehtävät tehdään pääosin omalla ajalla. Ratkaisun saa ideoita kaverin kanssa, mutta ohjelma on kirjoitettava aina itse. Plagioinnista seuraa rangaistus (lisää työtä). Harjoituksia tulisi ratkoa tasaiseen tahtiin koko kurssin ajan. Älä lopeta, kun minimivaatimus on saavutettu! 8
Viikkoharjoitukset Harjoitusryhmiin osallistuminen on vapaaehtoista, mutta toisaalta osallistumisesta saa pisteitä. Kunkin viikkoharjoituksen osalta saa korkeintaan yhden pisteen. Esimerkiksi jonkin viikkoharjoituskerran mikro- ja luentosaliharjoitusryhmässä käymällä ei saa kahta pistettä. Osallistumalla voi kerätä korkeintaan kuusi pistettä. Ilmoita kurssin vastuuopettajalle, jos haluat sittenkin osallistua mikro- tai luentosaliharjoituksiin tai perua ilmoittautumisesi. Ratkaisupisteiden ja mahdollisten läsnäolopisteiden summan tulee olla vähintään 40 % saatavilla olevien pisteiden kokonaismäärästä. Jos tehtäviä on esimerkiksi 51 kappaletta, niin saatavilla on 51 + 6 = 57 pistettä. Näin 40 %:n raja on 23 pistettä. 9
Viikkoharjoitukset Pyritään julkaisemaan keskiviikkoisin. Ratkaisujen palautustakaraja on tehtävien julkaisua seuraavan viikon torstaina klo 12.00. Kaikkien harjoitusten ratkaisut palautetaan sähköisessä muodossa WETO-järjestelmään. Lue ohjeet kurssisivuilta ja muista noudattaa niitä! Tutustu erityisesti Opetus Harjoitukset Ratkaisujen palautus - kohtaan. Opettajat tarkistavat palautuksia WETOssa. Ratkaisua ei voi korjata hylätyn ratkaisun piste nollataan. Tehtävien ei tarvitse olla kurssin alussa täysin oikein ratkaistu, mutta kunnollista yritystä pitää olla havaittavissa. 10
Mikroharjoitukset Harjoitusten ratkaisua pääosin omatoimisesti. Paikalla opettaja, joka neuvoo ongelmakohdissa. Viikoilla 37 42, viisi ryhmää, ma ke. Paikat ja tarkemmat ajat verkossa. Viikolle 36 ajatellut harjoitukset on peruttu tarpeettomina. Keskiviikon klo 12 14 ryhmä on ohjattu. Kerrataan luentoja sekä tehdään yhdessä ja yksin seuraavan harjoituskerran tehtäviä. Jos tunnet tarvitsevasi apua, mene viipymättä mikroharjoituksiin, ettet tipahda kurssilta! Apua myös ohjelmointivälineiden käyttöön. 11
Luentosaliharjoitukset Kurssin vastuuopettaja käy läpi mallivastaukset ja kenties myös opiskelijoiden vastauksia. Viikoilla 37 42, perjantaisin klo 12 14 (B3116). Opiskelijoita ei valita esittämään vastauksia. Opiskelijat voivat esittää kysymyksiä ratkaisuista. Osallistuminen suotavaa; ratkaisuja ei pureta muualla. Mallivastaukset pyritään julkaisemaan ennen luentosaliharjoituksia. 12
Luupin koodauspaja Ainejärjestö Luuppi pitää koodauspajaa, jossa tuetaan harjoitusten ratkaisua mikroharjoitusten tapaan. Koodauspajaan voi osallistua kuka tahansa kurssilainen. Myös koodauspajaan osallistumisesta saa läsnäolopisteen. Koodauspaja on tiistaisin klo 16 18. Luuppi tiedottaa, kun koodauspajan aika ja paikka on selvillä. Koodauspaja alkaa jo ensimmäisen harjoituksen yhteydessä: ensimmäinen paja on tiistaina 8.9. Koodauspaja alkaa toimia, kun kurssilla päästään varsinaisen Java-ohjelmoinnin pariin. 13
Tentti Lopputentti keskiviikkona 21.10. klo 9 12 (A1). Kaksi uusintatenttiä. Ilmoittautuminen viimeistään seitsemän päivää ennen tenttiä. Yliopiston opiskelijat: NettiOpsu tai WENTTI. Avoimen yliopiston opiskelijat: NettiRekan kautta. Monivalintatehtävä sekä kolme ohjelmointitehtävää. Tehdään paperilla ja kynällä. Lisätietoja kurssin viimeisellä luennolla. 14
Suoritus ja arvostelu Kurssin suorittamiseksi täytyy: kerätä harjoituspisteitä vähintään 40 % saatavilla olevien ratkaisuja läsnäolopisteiden summasta, saada tentistä vähintään puolet pisteistä (12 / 24 p) ja antaa palaute kurssin lopuksi. Harjoitusaktiivisuudesta saa hyvityspisteitä seuraavasti: 60 % +1 p, 70 % +2 p ja 80 % +3 p. Hyvityspisteet huomioidaan vasta, kun tenttipisteitä on vähintään puolet. Katso kurssisivuilta ohjeet osasuoritusten hyödyntämisestä, jos viime lukuvuonna luennoitu Lausekielinen ohjelmointi (10 op) -kurssi jäi kesken ase- tai siviilipalveluksen, synnytyksen tai vastaavan ylivoimaisen esteen vuoksi. 15
Kirjallisuus Pääasiallinen kirjallinen materiaali on kurssin verkkosivuilla osa kerrallaan julkaistava luentorunko. Aktivoivat tehtävät eivät tule verkkoon. Luennon materiaali pyritään julkaisemaan verkossa viimeistään luentoa edeltävän päivän iltana. Tulostettava itse, jos kalvoista haluaa paperikopion luennoille. Kirjoja suositellaan lähinnä oheislukemistoksi. Wikla: Ohjelmoinnin perusteet Java-kielellä suositeltavin. Saatavilla yliopiston kirjastosta ja ehkä kirjakaupasta. 16
Miksi suorittaa kurssi? Pakollinen tietojenkäsittelytieteiden tutkinto-ohjelman opiskelijoille. Kuuluu useimpiin tietojenkäsittelytieteiden valinnaisiin opintokokonaisuuksiin. Perusohjelmointitaitoja ei opeteta muilla kursseilla. Ohjelmointi on tietojenkäsittelijän perustaito. Ohjelmointitaidoton tietojenkäsittelijä: ei selviä seuraavista kursseista (Laki 2, OoPe, OTeC/C++, TiRa...). ei työllisty kovin hyvin. 17
Miksi suorittaa kurssi? Tietotekniikan hyödyntäminen (ohjelmoimalla) on yhä yleisempää esimerkiksi tilastotieteen, informaatiotutkimuksen ja biologian aloilla. Myös matematiikassa tehdään simulointeja. On hyvä olla jonkinlainen käsitys ohjelmistojen kehittämisestä, jos siihen joutuu osallistumaan. Tietojenkäsittely voi olla työllistymisen kannalta hyödyllinen vapaavalintainen aine. Ohjelmointi voi olla kivaa! 18