Kurssiesite Olio-ohjelmoinnin perusteet (TIEA2.1) Kevät 2018

Samankaltaiset tiedostot
Vastuuopettaja. Kurssiesite Olio-ohjelmoinnin perusteet (TIEA2.1) Kevät Olio-ohjelmoinnin perusteet (eli Oope) Laajuus

Vastuuopettaja. Kurssiesite Olio-ohjelmoinnin perusteet Kevät Olio-ohjelmoinnin perusteet (TIEA2.1)

Kurssiesite Olio-ohjelmoinnin perusteet Kevät Jorma Laurikkala Tietojenkäsittelytieteet Luonnontieteiden tiedekunta Tampereen yliopisto

Kurssiesite Olio-ohjelmoinnin perusteet Kevät Jorma Laurikkala Tietojenkäsittelytieteet Informaatiotieteiden yksikkö Tampereen yliopisto

Vastuuopettaja. Kurssiesite Olio-ohjelmoinnin perusteet Kevät Olio-ohjelmoinnin perusteet (5 op) Tavoitteena

Kurssiesite Lausekielinen ohjelmointi II Syksy Jorma Laurikkala Tietojenkäsittelytieteet Informaatiotieteiden yksikkö Tampereen yliopisto

Kurssiesite Lausekielinen ohjelmointi I Kesä Jorma Laurikkala Tietojenkäsittelytieteet Luonnontieteiden tiedekunta Tampereen yliopisto

Vastuuopettaja. Kurssiesite Lausekielinen ohjelmointi I Syksy Lausekielinen ohjelmointi I (5 op) Lausekielinen ohjelmointi I (5 op)

Kurssiesite Lausekielinen ohjelmointi I Syksy Jorma Laurikkala Tietojenkäsittelytieteet Informaatiotieteiden yksikkö Tampereen yliopisto

Vastuuopettaja. Kurssiesite Lausekielinen ohjelmointi I Syksy Lausekielinen ohjelmointi I (5 op) Lausekielinen ohjelmointi I (5 op)

Kurssiesite Lausekielinen ohjelmointi I Syksy Jorma Laurikkala Tietojenkäsittelytieteet Luonnontieteiden tiedekunta Tampereen yliopisto

Vastuuopettaja. Kurssiesite Lausekielinen ohjelmointi I Syksy Lausekielinen ohjelmointi I (5 op) Lausekielinen ohjelmointi I (5 op)

Kurssiesite Lausekielinen ohjelmointi I Syksy Jorma Laurikkala Tietojenkäsittelytieteet Informaatiotieteiden yksikkö Tampereen yliopisto

Kurssiesite Lausekielinen ohjelmointi Syksy Jorma Laurikkala Tietojenkäsittelytieteet Informaatiotieteiden yksikkö Tampereen yliopisto

Vastuuopettaja. Kurssiesite Lausekielinen ohjelmointi Syksy Tavoitteet ja keinot. Lausekielinen ohjelmointi (10 op)

Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tehdään sähköisesti mikroluokan Windows-koneilla.

Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tehdään sähköisesti mikroluokan Windows-koneilla.

Harjoitus 6 (viikko 42)


Harjoitus 6. Käytä String-luokasta vain charat- ja length-operaatioita.

Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tentti kestää kolme tuntia. Tehdään sähköisesti mikroluokkien Windows-koneilla.


Hakemistojen sisällöt säilötään linkitetyille listalle.

Harjoitus 6 (viikko 42)

Harjoitus 5 (viikko 41)

Tietokoneverkot. T Tietokoneverkot (4 op) viimeistä kertaa CSE-C2400 Tietokoneverkot (5 op) ensimmäistä kertaa

Harjoitus 2 (viikko 45)

Toinen harjoitustyö. ASCII-grafiikkaa 2017

Lausekielinen ohjelmointi II Ensimmäinen harjoitustyö

Lausekielinen ohjelmointi II Ensimmäinen harjoitustyö

Ohjelmointi II. Erkki Pesonen Luennot ja harjoitukset. Itä-Suomen yliopisto Tietojenkäsittelytieteen laitos 2015

Harjoitus 5 (viikko 48)

Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tentti kestää kolme tuntia.

Harjoitus 5 (viikko 41)

Sokkelon sisältö säilötään linkitetyille listalle ja tekstitiedostoon. Työ tehdään itsenäisesti yhden hengen ryhmissä. Ideoita voi vaihtaa koodia ei.

Linkitetystä listasta perittyä omaa listaa käytetään muun muassa viestiin liittyvien vastausten säilömiseen.

T harjoitustyö, kevät 2012

Harjoitus 4 (viikko 47)

TIEY1 Opintojen ohjattu suunnittelu (2 op) eli LuK-vaiheen HOPS-ohjaus eli Opettajatuutorointi

Harjoitus 5. Esimerkki ohjelman toiminnasta: Lausekielinen ohjelmointi I Kesä 2018 Avoin yliopisto 1 / 5

System.out.printf("%d / %d = %.2f%n", ekaluku, tokaluku, osamaara);

T harjoitustehtävät, syksy 2011

Tuloslaskenta (22C00400, 6 op)

Harjoitus 3 (viikko 39)

Mallilukujärjestys Teknistieteellinen kandidaattiohjelma Tietotekniikka, 2. vuosikurssi

Toinen harjoitustyö. ASCII-grafiikkaa

TUTKINTO-OHJELMAINFO Sivuainemahdollisuudet Kesäopinnot KV-vaihtomahdollisuus

Kurssijärjestelyt. ME-C2300 Verkkojulkaisemisen perusteet (5 op) Mari Hirvi Informaatioverkostot / Mediatekniikan laitos

Digitalisoitu harjoitustehtävien ratkaisujen palautus sekä arviointi matematiikan ja tilastotieteen yliopisto-opinnoissa

YLEISINFO. TIEY4 Tietotekniikkataidot Kevät Juhani Linna

Kurssijärjestelyt. CS-1180 Verkkojulkaisemisen perusteet (5 op) Hanna Hämäläinen Informaatioverkostot / Mediatekniikan laitos

Tuloslaskenta (22C00400, 6 op)

Aikuisopetuksen tehtäviin suuntautuvat opettajan pedagogiset opinnot 60 op

Mallilukujärjestys 1. vuosi 2013

Ohjelmistoprosessit ja ohjelmistojen laatu Ohjelmistoprosessit ja ohjelmistojen laatu (4op)

Tietojenkäsittelytieteet Tutkinto-ohjelman info. Henrik Hedberg Heli Alatalo

SYVENTÄVÄT OPINNOT KEVÄÄLLÄ 2018 Kaikille yhteiset pakolliset opintojaksot

ELEC-C1210 Automaatio 1 ELEC-C1220 Automaatio 2. Kurssien esittely lukukausi

ELEC-C1210 Automaatio 1 ELEC-C1220 Automaatio 2. Kurssien esittely lukukausi

Lukujärjestyksen laatiminen, kursseille ilmoittautuminen KTK/KTM-opiskelijat TkK/DI-opiskelijat

Matematiikka ja tilastotiede. Orientoivat opinnot /

Ohjelmistoarkkitehtuurit. Kevät

A&O:n käyttöohje. 1. Rekisteröityminen ja kurssille ilmoittautuminen. 2. Sisäänkirjautuminen. (Lisää löydät osoitteesta:

Pitkä matematiikka, laaja fysiikka ja kemia

TERVETULOA OPISKELEMAAN! Informaatiotutkimuksen ja interaktiivisen median tutkinto-ohjelman infotilaisuus

Kasvatustieteiden (yleinen ja aikuiskasvatustiede) aineopinnot 35 op

TU-C3010 Projektien suunnittelu ja ohjaus (5 op.)

Tietokone työvälineenä

Matematiikka ja tilastotiede. Orientoivat opinnot /

Kurssin aloitus. AS XML-kuvauskielten perusteet Janne Kalliola

Myös opettajaksi aikova voi suorittaa LuK-tutkinnon, mutta sillä ei saa opettajan kelpoisuutta.

CHEM-A1000 Korkeakouluopiskelijan ABC

OHJ-7400 Graafisen käyttöliittymän ohjelmointi 4/6op

ESPOON AIKUISLUKIO OPINTO-OPAS MATEMAATTIS-LUONNONTIETEET

Kurssin käytännön järjestelyt. Tuotantotalous 1 Joel Kauppi

KVANTITATIIVISET TUTKIMUSMENETELMÄT MAANTIETEESSÄ

T3 Kevät Tietotekniikkataidot OP Pakollinen kurssi lähes kaikissa yksiköissä

Tilastollinen päättely II (MAT22003), kevät 2019

TKT50004 Akateemiset taidot, 1 op

Harjoitustyö Johdanto. 2. Euroseteli

Tietojenkäsittelytieteet Tutkinto-ohjelman info. Henrik Hedberg (Heli Alatalo)

Harjoitus 1 (viikko 44)

Tervetuloa! Matematiikka tutuksi

YLIOPPILASKIRJOITUKSET. Info

Kurssiesite syksy 2017:

Ohjelmistotekniikan menetelmät, kevät 2008

ENG3042.Kand Kandidaatintyö ja seminaari (10 op) ENY ENG3044.Kand Kandidaatintyö ja seminaari (10 op) RYM Saija Toivonen

Ylioppilaskokeisiin ilmoittautuminen

031075P MATEMATIIKAN PERUSKURSSI II 5,0 op

Tieto- ja viestintätekniikan opinnot Jyväskylän yliopistossa

MS-C1340 Lineaarialgebra ja differentiaaliyhtälöt

031075P MATEMATIIKAN PERUSKURSSI II 5,0 op

Espoon aikuislukio. Matemaattisluonnontieteellisten. opinto-opas

TT00AA Ohjelmoinnin jatko (TT10S1ECD)

Ohjelmistojen mallintaminen, kesä 2010

Tietorakenteet ja algoritmit CSE- A1140 (5 op)

System.out.printf("%d / %d = %.2f%n", ekaluku, tokaluku, osamaara);

Ohjelmistoarkkitehtuurit. Syksy 2008

Suoritus: Tentti (luennot + artikkelikansio) Tentaattori: Anni-Siiri Länsman

TKT50004 Akateemiset taidot, 1 op

Transkriptio:

Kurssiesite Olio-ohjelmoinnin perusteet (TIEA2.1) Kevät 2018 Jorma Laurikkala Tietojenkäsittelytieteet Luonnontieteiden tiedekunta Tampereen yliopisto

Vastuuopettaja Jorma Laurikkala, yliopistonlehtori. Luennot, ohjatut mikroharjoitukset ja luentosaliharjoitukset. Sähköposti: jorma.laurikkala@uta.fi Kurssia koskevien sähköpostien otsikon olisi hyvä alkaa merkkijonolla Oope:. Esimerkkiotsikko: Oope: kysymys luennoista. Puhelin: 050 318 5873. Vastaanotto torstaisin klo 12 13 huoneessa B1025. Ovelle voi koputella muulloinkin. Aikoja voi sopia myös sähköpostilla tai puhelimitse. 2

Olio-ohjelmoinnin perusteet (eli Oope) Aloitetaan ohjelmoinnin opiskelu olionäkökulmasta. Lähtötiedoiksi oletetaan Lausekielinen ohjelmointi I ja II -kurssit tai vastaavat tiedot Java-ohjelmoinnista. (Puuttuvat tiedot on hankittava omatoimisesti, jos Laki 2 jäi kesken.) Aineopintoina Laki-kursseja vaativampi, mutta asiat yritetään pitää edelleen yksinkertaisina. Kurssisivut (https://coursepages.uta.fi/tiea2-1/) ovat tärkein tiedotuskanava seuraa kurssisivuja säännöllisesti. Jokaisen kurssilaisten tulee ilmoittautua sähköisesti. Ota yhteytä vastuuopettajaan, jos et ilmoittautunut NettiOpsussa. Täytä kurssisivujen kautta löytyvä lisätietolomake pe 12.1. klo 12.00 (keskipäivä) mennessä. 3

Laajuus 5 op ilman harjoitustyötä ja 10 op harjoitustyön kanssa. Harjoitustyön palautus on IV-periodissa. Tietojenkäsittelijä: muista Käyttöliittymien perusteet -kurssi. Kurssi on 10 op:n laajuinen, jos opiskelet tietojenkäsittelytieteiden tutkinto-ohjelmassa (poikkeuksena jotkin siltaopinnot), valinnaista tietojenkäsittelytieteiden opintokokonaisuutta, kuten Tietotekniikka opetettavana aineena (60 op), jossa kurssi on suoritettava laajassa muodossa tai valinnaista tietojenkäsittelytieteiden opintokokonaisuutta, jossa voit valita 5 tai 10 op:n version ja valitset jälkimmäisen. CBDA:n valitseville matematiikan ja tilastotieteen kandidaattiohjelman opiskelijoille suositellaan 10 op:n versiota. 4

Laajuus Vastuullasi on, että suoritat kurssin oikeassa laajuudessa. Vastuuopettaja ja opintokoordinaattorisi neuvovat tarvittaessa. Viime keväänä luennoidun kurssin osia hyväksytysti suorittaneet voivat halutessaan hyödyntää osasuorituksensa. Lähetä sähköpostia vastuuopettajalle, jos haluat korvata nyt luennoitavan kurssin osia. Toissakeväänä tai aikaisemmin luennoidulla kurssilla tehdyt osasuoritukset eivät käy korvaaviksi suorituksiksi. Nykymuotoisen kurssin 5 op:n kokoisena suorittaneet voivat laajentaa suorituksensa 10 op:een harjoitustyön tekemällä. Vanhanmuotoisen kurssin (TIEA2, 5 op tai TKOPA14, 6 op) suorittaneet eivät voi laajentaa kurssia 10 op:n laajuiseksi. 5

Tavoitteena Perehdyttää opiskelija olio-ohjelmoinnin perusteisiin, joita ovat muun muassa: oliot, luokat, metodit, attribuutit, olioiden luominen, viitteiden käsittely, periytyminen, näkyvyys, abstrakti luokka ja rajapinta. Johdatella abstraktien tietotyyppien (pino ja jono) ja dynaamisten tietorakenteiden (lista) pariin. Antaa joitakin valmiuksia olioperustaiseen ohjelmistojen analyysiin ja suunnitteluun Unified Modeling Language (UML) -menetelmällä. 6

Luennot (7 x 2 tuntia) Tiistaisin klo 10 12 (aloitusluento D10b, myöhemmin B1096) ja keskiviikkoisin klo 12 14 (B1097) viikoilla 2 8. Eivät pakollisia, mutta suositellaan edelleen lämpimästi, koska aivan kaikki asia ei ole kalvoilla. Kysymyksiä saa kysyä. Akateeminen vartti, molemmat tunnit peräkkäin. 7

Viikkoharjoitukset Koostuvat seitsemäksi harjoitukseksi ryhmitellyistä harjoitustehtävistä ja harjoitusten ratkaisua tukevista harjoitusryhmistä viikoilla 2 9. Kuhunkin harjoituskertaan liittyy kolme ryhmää: pe klo 8.30 10 (B1084), ti klo 12 14 (ML50) ja ke 14 16 (ML50). Ryhmissä harjoitusten ratkaisua pääosin omatoimisesti. Paikalla opettaja, joka neuvoo ongelmakohdissa. Perjantain ryhmässä hieman enemmän apua. Kerrataan luentoja sekä tehdään yhdessä ja yksin seuraavan harjoituskerran tehtäviä. 8

Viikkoharjoitukset Pyritään julkaisemaan keskiviikkoiltana kurssisivuilla. Pääset tekemään tehtäviä käytännössä vasta torstaina. Ratkaisujen palautustakaraja on seuraavan viikon torstaina klo 12.00 (keskipäivä). Mallivastaukset julkaistaan samana päivänä tai perjantaina. Oheisessa taulukossa on annettu esimerkkinä kurssin kahden ensimmäisen viikon harjoitusaikataulu. Viikko 2, ke Viikko 2, pe Viikko 3, ti 1. harjoitukset julki. 1. harjoituksen 1. mikroharjoitusryhmä. 1. harjoituksen 2. mikroharjoitusryhmä. Viikko 3, ke - 1. harjoituksen 3. mikroharjoitusryhmä. - 2. harjoitukset julki. Viikko 3, to Viikko 3, pe - 1. harjoituksen palautus sulkeutuu. - 1. harjoituksen mallivastaukset julki. 2. harjoituksen 1. mikroharjoitusryhmä. 9

Viikkoharjoitukset Kaikkien harjoitusten ratkaisut palautetaan sähköisessä muodossa WETO-järjestelmään. Ratkaisuja ei voi palauttaa ilman ilmoittautumista. Kurssisivuilla julkaistaan palautusohjeet. WETO tarkistaa ratkaisuja automaattisesti. Myös opettajat tarkistavat palautuksia WETOssa. Ratkaisua ei voi korjata hylätyn ratkaisun piste nollataan. Ratkaisu voidaan hylätä myös huonon ohjelmointitavan vuoksi. Mallivastaukset julkaistaan WETOssa. 10

Viikkoharjoitukset Harjoituksista on kerättävä vähintään tietty määrä pisteitä. Valtaosa pisteistä hyväksytysti ratkaistuista tehtävistä. Tehtävät tehdään pääosin omalla ajalla. Ratkaisun saa ideoita kaverin kanssa, mutta ohjelma on kirjoitettava aina itse. Plagioinnista seuraa rangaistus. Harjoitusryhmiin osallistuminen on vapaaehtoista, mutta toisaalta myös ryhmiin osallistumisesta saa pisteitä. Kunkin viikkoharjoituksen osalta saa korkeintaan yhden pisteen. Osallistumalla voi kerätä korkeintaan seitsemän pistettä. Ilmoita kurssin vastuuopettajalle, jos haluat sittenkin osallistua mikro- tai luentosaliharjoituksiin tai perua ryhmäilmoittautumisesi. 11

Viikkoharjoitukset Ratkaisupisteiden ja mahdollisten läsnäolopisteiden summan tulee olla vähintään 40 % saatavilla olevien pisteiden kokonaismäärästä. Jos tehtäviä on esimerkiksi 57 kappaletta, niin saatavilla on 57 + 7 = 64 pistettä. Näin 40 %:n raja on 26 pistettä, koska prosenttilukuja ei pyöristetä rajoja laskettaessa ylöspäin. Harjoituksia tulisi ratkoa tasaiseen tahtiin koko kurssin ajan. Älä lopeta, kun minimivaatimus on saavutettu, koska kurssin lopussa käsiteltävistä aiheista kysytään tentissä ja niitä tarvitaan harjoitustyössä. 12

Viikkoharjoitukset (6 pointtia) 1. Ratkaise tehtäviä mahdollisimman paljon, koska olioohjelmointia oppii vain olioita ohjelmoimalla. 2. Ratkaise tehtäviä säännöllisesti koko kurssin ajan, jotta kurssin loppupään vaikeampi aines tulee tutuksi. 3. Varaa aikaa kunkin harjoituskerran tehtävien ratkaisuun 4 5 tuntia. 4. Ole huolellinen: tee kaikki tehtävänannossa vaadittu ja testaa, että ratkaisusi toimii tehtävänannossa määritellyllä tavalla. 5. Perehdy mallivastauksiin. 13

Luupin koodauspaja Ainejärjestö Luuppi pitää koodauspajaa (todennäköisesti ke klo 16 18), jossa tuetaan harjoitusten ratkaisua mikroharjoitusten tapaan. Koodauspajaan voi osallistua kuka tahansa kurssilainen. Myös koodauspajaan osallistumisesta saa läsnäolopisteen. Apua ohjelmointivälineiden käyttöön. 14

Harjoitustyö Kurssin 10 op laajuisena suorittavat tekevät harjoitustyön. Ota yhteyttä kurssin vastuuopettajaan tai tutkinto-ohjelmasi opintokoordinaattoriin, jos et tiedä minkä laajuisena kurssi tulee suorittaa. Tehdään yksin ja pääosin omalla ajalla. Ratkaisu: toimiva Java-ohjelma ja dokumentointi. Kopiointi on ehdottomasti kiellettyä. Kurssin opettajat auttavat: sähköpostitse, harjoitusten yhteydessä sekä henkilökohtaisesti myöhemmin sovittavina aikoina. 15

Harjoitustyö Tehtävänanto julkaistaan kurssin loppupuolella. Aikaa työn tekemiseen on noin kuukausi. Takaraja on IV-periodissa huomioi tämä lukujärjestyksessä. Välipalautuspisteessä on oltava valmiina osa ohjelmasta. Välipalautuksen tavoitteena on herätellä aloittamaan työnteko ajoissa ja varmistaa, että ohjelman keskeiset osat toimivat oikein. Palautus WETOon kurssisivujen ohjeiden mukaan. Arvostelu: hylätty tai hyväksytty (0, 1, 2, 3 tai 4 pistettä). 16

Tentti Tentti on sähköinen. Tentti tehdään valvotusti mikroluokissa. Neljä ohjelmointitehtävää, kolme tuntia aikaa. Tentissä ei saa käyttää omaa materiaalia, kirjoja, verkkolähteitä, mallivastauksia ja niin edelleen. Luentorunko ja esimerkit ovat tentin ajan WETOssa saatavilla. Harjoitustehtävien ahkera ratkaiseminen on paras keino valmistautua tenttiin. Lisätietoja kurssin viimeisellä luennolla. 17

Suoritus ja arvostelu Kurssin suppean (5 op) version suorittamiseksi täytyy: kerätä harjoituspisteitä vähintään 40 % saatavilla olevien ratkaisu- ja läsnäolopisteiden summasta, saada tentistä vähintään puolet pisteistä (12 p) ja antaa palaute kurssin lopuksi. Kurssin laajan version (10 op) suorittamiseksi täytyy lisäksi suorittaa hyväksytysti harjoitustyö. Harjoitusaktiivisuudesta saa hyvityspisteitä seuraavasti: 60 % 1 kpl, 70 % 2 kpl, 80 % 3 kpl, 85 % 4 kpl. Harjoitustyöstä saa hyvityspisteitä 0, 1, 2, 3 tai 4 kpl. Hyvitykset huomioidaan, kun tenttipisteitä on vähintään 12 kpl. 18

Kirjallisuus Luentorunko ovat pääasiallinen materiaali. Luentorungon luvut pyritään julkaisemaan kurssin verkkosivuilla viimeistään luentoa edeltävänä päivänä. Tulostettava itse, jos kalvoista haluaa paperikopion luennoille. Oheislukemista: Wikla: Ohjelmoinnin perusteet Java-kielellä. Deitel & Deitel: Java, How to Program. Koskimies: Oliokirja. Haikala & Mikkonen: Ohjelmistotuotannon käytännöt. Verkossa muun muassa: Oracle: The Java Tutorial. Eck: Introduction to Programming Using Java. 19

Miksi suorittaa kurssi? Kurssi on pakollinen kaikille tietojenkäsittelytieteiden tutkinto-ohjelman opiskelijoille maisteriohjelmasta riippumatta ja pakollinen myös monessa tietojenkäsittelytieteiden valinnaisessa opinto-kokonaisuudessa, koska olio-ohjelmointitaitoja tarvitaan myöhemmissä opinnoissa ja ohjelmointiin liittyvissä töissä joutuu melko varmasti tekemisiin olioiden kanssa. Olio-ohjelmointikin voi olla kivaa. 20