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



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

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 (TIEA2.1) Kevät 2018

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

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

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)

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 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 Luonnontieteiden tiedekunta 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.


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

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


Harjoitus 6 (viikko 42)

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

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

Lausekielinen ohjelmointi II Ensimmäinen harjoitustyö

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

Lausekielinen ohjelmointi II Ensimmäinen harjoitustyö

Harjoitus 6 (viikko 42)

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

Harjoitus 2 (viikko 45)

Harjoitus 5 (viikko 41)

Harjoitus 5 (viikko 48)

Harjoitus 5 (viikko 41)

T harjoitustehtävät, syksy 2011

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

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

Toinen harjoitustyö. ASCII-grafiikkaa 2017

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

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

Matematiikka ja tilastotiede. Orientoivat opinnot /

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

Tietokone työvälineenä

YLEISINFO. TIEY4 Tietotekniikkataidot Kevät Juhani Linna

T harjoitustyö, kevät 2012

Harjoitus 4 (viikko 47)

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

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

MS-C1340 Lineaarialgebra ja differentiaaliyhtälöt

Ohjelmistoarkkitehtuurit. Kevät

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

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

Tervetuloa! Matematiikka tutuksi

Tuloslaskenta (22C00400, 6 op)

Harjoitus 3 (viikko 39)

Kurssin aloitus. AS XML-kuvauskielten perusteet Janne Kalliola

Ohjelmistotekniikan menetelmät, kevät 2008

Ohjelmistoarkkitehtuurit. Syksy 2008

19/20: Ikkuna olio-ohjelmoinnin maailmaan

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

Mallilukujärjestys Teknistieteellinen kandidaattiohjelma Tietotekniikka, 2. vuosikurssi

T Ohjelmistojen määrittely- ja suunnittelumenetelmät

YLIOPPILASKIRJOITUKSET. Info

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

TERVETULOA OPISKELEMAAN! Informaatiotutkimuksen ja interaktiivisen median tutkinto-ohjelman infotilaisuus

Tietoturva. 0. Tietoa kurssista P 5 op. Oulun yliopisto Tietojenkäsittelytieteiden laitos Periodi / 2015

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

Harjoitus 1 (viikko 44)

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

KJR-C2002 Kontinuumimekaniikan perusteet Kurssiesite

Toinen harjoitustyö. ASCII-grafiikkaa

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

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Ohjelmistoarkkitehtuurit. Syksy 2010

1. Olio-ohjelmointi 1.1

Ohjelmistojen mallintaminen, kesä 2010

YLIOPPILASKIRJOITUKSET. Info

C-ohjelmointikielen perusteet, osa 1

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

KASVATUSTIETEEN PERUSOPINNOT SYKSYLLÄ 2017

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

TT00AA Ohjelmoinnin jatko (TT10S1ECD)

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

Kurssin käytännön järjestelyt. Tuotantotalous 1 Tuomo Tanila

Harjoitustyö Johdanto. 2. Euroseteli

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

HAHMONTUNNISTUKSEN PERUSTEET

Tuloslaskenta (22C00400, 6 op)

Pitkä matematiikka, laaja fysiikka ja kemia

KVANTITATIIVISET TUTKIMUSMENETELMÄT MAANTIETEESSÄ

Kuvataiteen aineopinnot (35 op) - ayukuv1800

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

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

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

Ohjelmoinnin peruskurssi Y1

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

Mallilukujärjestys 1. vuosi 2013

Ohjelmoinnin perusteet Y Python

PLA Mobiiliohjelmointi. Mika Saari

Ohjelmistojen mallintaminen, kesä 2009

HISTORIAN OPPIAINE KEVÄTLUKUKAUSI Historian perusopinnot

Transkriptio:

Kurssiesite Olio-ohjelmoinnin perusteet Kevät 2016 Jorma Laurikkala Tietojenkäsittelytieteet Informaatiotieteiden yksikkö 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 (5 10 op) Aloitetaan ohjelmoinnin opiskelu olionäkökulmasta. Lähtötiedoiksi oletetaan Lausekielinen ohjelmointi I ja II -kurssien (tai vastaavien) tiedot Java-ohjelmoinnista. Aineopintoina Laki-kursseja vaativampi, mutta asiat yritetään pitää edelleen yksinkertaisina. Järjestetään uudistetussa muodossa 5 10 op laajuisena. Laajuus 5 op ilman harjoitustyötä ja 10 op harjoitustyön kanssa. Harjoitustyön palautus IV-periodissa. Tietojenkäsittelijä: varaa aikaa sekä Oope-harjoitustyölle että Käyttöliittymien perusteet (TIEA1) -kurssille. Kurssisivut osoitteessa http://www.uta.fi/sis/tie/oope/ ovat tärkein tiedotuskanava seuraa kurssisivuja säännöllisesti. Ilmoittautuminen auki perjantaihin 15.1. klo 12.00 saakka. 3

Olio-ohjelmoinnin perusteet (5 10 op) Kurssi on 10 op laajuinen, jos opiskelet tietojenkäsittelytieteiden tutkinto-ohjelmassa, matematiikan ja tilastotieteen kandidaattiohjelmassa ja valitset Computation Big Data Analytics -maisteriohjelman, 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 version ja valitset jälkimmäisen. Jo suoritettua Oope-kurssia ei voi laajentaa 10 op laajuuteen. Aiemmin suoritetun kurssin arvosanaa voi korottaa tentissä. Kysy vastuuopettajalta tai opinto-koordinaattoriltasi, jos et tiedä minkä laajuisena kurssi tulee suorittaa. 4

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). 5

Luennot (7 x 2 tuntia) Kahdesti viikossa: Tiistaisin klo 10 12 ja keskiviikkoisin klo 12 14 viikoilla 2 8. Aloitusluento salissa B1100, muut luennot salissa B1096. 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. 6

Viikkoharjoitukset (7 kappaletta) Koostuvat mikro- ja luentosaliharjoituksista, joista on kerättävä pisteitä vähintään tietty määrä. Harjoitusryhmiin osallistuminen on vapaaehtoista, mutta toisaalta osallistumisesta saa pisteitä. Kunkin viikkoharjoituksen osalta saa korkeintaan yhden pisteen. Esimerkiksi jonkin viikkoharjoituskerran mikro- ja luentoharjoitusryhmässä käymällä ei saa kahta pistettä. Osallistumalla voi siten kerätä korkeintaan seitsemän pistettä. Ilmoita kurssin vastuuopettajalle, jos haluat sittenkin osallistua mikro- tai luentosaliharjoituksiin tai perua ilmoittautumisesi. 7

Viikkoharjoitukset Valtaosa pisteistä kertyy viikkoharjoitusten ratkaisuista. Mikroharjoituksissa on tarjolla tukea, mutta tehtävät ratkaistaan kuitenkin pääosin omalla ajalla. Ratkaisut palautetaan WETO-järjestelmään. Opettajat tarkistavat palautuksia. Ratkaisua ei voi korjata hylätyn ratkaisun piste nollataan heti. 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. 8

Viikkoharjoitukset (2 x 3 pointtia) 1. Ratkaise tehtäviä mahdollisimman paljon olio-ohjelmointia oppii vain olioita ohjelmoimalla. 2. Ratkaise tehtäviä säännöllisesti koko kurssin ajan, jotta kurssin loppupään vaikeampi aines tulee tutuksi. 3. Älä plagioi kopioimalla opit vain kopioimaan. Logiikan voi muotoilla kaverin kanssa, mutta ratkaisu on ohjelmoitava itse. Saat apua mikroharjoituksissa. Plagioinnista rangaistaan. 4. Varaa aikaa kunkin harjoituskerran tehtävien ratkaisuun 4 5 tuntia. 5. Ole huolellinen: tee kaikki tehtävänannossa vaadittu ja testaa, että ratkaisusi toimii tehtävänannossa määritellyllä tavalla. 6. Lue palautusohjeet kurssisivuilta. 9

Viikkoharjoitukset (aikataulu) Pyritään julkaisemaan keskiviikkoiltana. Pääset tekemään tehtäviä käytännössä vasta torstaina. Ratkaisujen palautustakaraja on seuraavan viikon keskiviikkona klo 20.00. Mallivastaukset julkaistaan seuraavan viikon torstaina. Oheisessa taulukossa on annettu esimerkkinä kurssin kahden ensimmäisen viikon harjoitusaikataulu. Viikko 2, ke 1. harjoitukset julki. Viikko 2, pe 1. harjoituksen 1. mikroharjoitusryhmä Viikko 3, ti 1. harjoituksen 2. mikroharjoitusryhmä Viikko 3, ke - 1. harjoituksen 3. mikroharjoitusryhmä. - 1. harjoituksen palautus sulkeutuu. - 2. harjoitukset julki. Viikko 3, to - 1. harjoituksen luentosaliharjoitukset. - 1. harjoituksen mallivastaukset julki. Viikko 3, pe 2. harjoituksen 1. mikroharjoitusryhmä 10

Mikroharjoitukset Viikoilla 2 9, kolme ryhmää: klo pe 8.30 10 (ML40), ti klo 12 14 (ML40) ja ke 14 16 (ML40). 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ä. Lisäharjoitusryhmä on mahdollinen, koska kurssille on ilmoittautunut normaalia enemmän opiskelijoita. 11

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 yksikön mikroluokassa B1083 viikoilla 2 ja 3 tiistaisin klo 16 18 ja viikosta 4 alkaen keskiviikkoisin klo 16 18 Apua ohjelmointivälineiden käyttöön. 12

Luentosaliharjoitukset Viikoilla 3 9, torstaisin klo 10 12 (B3116 B1084). Kurssin vastuuopettaja käy läpi mallivastaukset ja kenties myös opiskelijoiden vastauksia. Opiskelijoita ei valita esittämään vastauksia. Opiskelijat voivat esittää kysymyksiä ratkaisuista. Osallistuminen suotavaa; ratkaisuja ei pureta muualla. 13

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ä. Oman harjoitusryhmän vetäjä auttaa: sähköpostitse, harjoitusten yhteydessä sekä henkilökohtaisesti myöhemmin sovittavina aikoina. Tehtävänanto julkaistaan kurssin loppupuolella. Aikaa työn tekemiseen on noin kuukausi. Takaraja on IV-periodissa huomioi tämä lukujärjestyksessä. Palautus WETOon kurssisivujen ohjeiden mukaan. Arvostelu: hylätty tai hyväksytty (0, 1, 2, 3 tai 4 pistettä). 14

Tentti Keskiviikkona Torstaina 16.3. myöhemmin ilmoitettavassa paikassa. Kaksi uusintatenttiä ja vähintään yksi ylimääräinen uusinta. 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ää, jotka tehdään paperilla ja kynällä. Lisätietoja kurssin viimeisellä luennolla. 15

Suoritus ja arvostelu Kurssin 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 10 op version suorittamiseksi täytyy: tehdä 5 op version osasuoritukset ja suorittaa harjoitustyö hyväksytysti. 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. Hyvityspisteet huomioidaan vain, jos tenttipisteitä on vähintään puolet! 16

Suoritus ja arvostelu Oope-kurssin osasuoritukset ovat voimassa vain seuraavalla kurssilla: Keväällä 2015 luennoidun kurssin tentti, harjoitukset ja palaute korvaavat tämän kurssin vastaavat osasuoritukset sellaisenaan. Nyt luennoitavan kurssin suoritukset käytettävissä keväällä 2017. Osasuoritusten hyödyntämisestä tarkemmat ohjeet kurssin verkkosivuilla. 17

Kirjallisuus Luentokalvot pääasiallinen materiaali. Kalvot 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. 18

Miksi suorittaa kurssi? Kurssi on pakollinen tietojenkäsittelytieteiden tutkinto-ohjelman opiskelijoille tulevasta maisteriohjelmasta riippumatta, Computation Big Data Analytics -maisteriohjelman valitseville matematiikan ja tilastotieteen opiskelijoille ja monessa tietojenkäsittelytieteiden valinnaisessa opintokokonaisuudessa, koska ohjelmointiin liittyvissä töissä joutuu melko varmasti tekemisiin olioiden kanssa ja olio-ohjelmointitaitoja tarvitaan useilla myöhemmillä kursseilla. Olio-ohjelmointikin voi olla kivaa. 19