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



Samankaltaiset tiedostot

Flippausta 3 korkeakoulun opiskelijoille

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.

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

Ohjelmoinnin perusteet Y Python

TT00AA Ohjelmoinnin jatko (TT10S1ECD)

19/20: Ikkuna olio-ohjelmoinnin maailmaan

Biokemian menetelmät I P (10 op / 8 op / 3,5 op) Juha Kerätär (F210, Kontinkangas,

PLA Mobiiliohjelmointi. Mika Saari

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

SAS-ohjelmiston perusteet 2010

Tervetuloa opiskelemaan DIGITAALI- TEKNIIKKAA! Digitaalitekniikan matematiikka Luku 0 Sivu 1 (9)

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

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

CHEM-A1200 Kemiallinen rakenne ja sitoutuminen, syksy 2016

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

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

P e d a c o d e ohjelmointikoulutus verkossa

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op

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

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

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

Tietokoneen rakenne (2 ov / 4 op) Syksy 2006

Analyysi 1, kevät 2010

Orientaatiotilaisuus Avoimen yliopiston opintoihin

Luento 0: Kurssihallinto Tietokoneen rakenne (2 ov / 4 op) Syksy 2006

Kasvatustiede (luokanopettaja/varhaiskasvatus) perusopinnot (25 op)

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

KJR-C2002 Kontinuumimekaniikan perusteet Kurssiesite

Tuloslaskenta (22C00400, 6 op)

C-ohjelmointikielen perusteet, osa 1

Tietokoneen rakenne (2 ov / 4 op) Syksy 2007 Liisa Marttinen. Helsingin yliopisto Tietojenkäsittelytieteen laitos

Ohjelmoinnin perusteet Y Python

Yksilöllisen oppimisen menetelmä. Ville

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

PLA Mobiiliohjelmointi. Mika Saari

Orientaatiotilaisuus Avoimen yliopiston tietojenkäsittelytieteen opintoihin

Palautekysely tilastollisen signaalinkäsittelyn kurssiin

Johdanto kurssille. Vastuuopettaja: Ilona Mikkonen, Yliopiston lehtori. Tapaaminen sopimuksen mukaan;

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

LC-8011 Työelämän venäjän perusteet 1. Aalto-yliopisto Kielikeskus Alexandra Belikova

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen

1. Olio-ohjelmointi 1.1

Tietojenkäsittelytieteiden 26 op:n perusopinnot

Ohjelmistojen mallintaminen, kesä 2009

Hajautettujen sovellusten muodostamistekniikat, TKO_2014 Johdatus kurssiin

OPS2016 ja ohjelmointi

Flippauksen arvioinnista

Matematiikan oppimisen uudet tuulet Metropolia Ammattikorkeakoulun talotekniikan koulutusohjelmassa

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

Digitaalisen median tekniikat Luento 1: Intro

Ajanhallinta ja suunnitelmallinen opiskelu

Kurssin oppimistavoitteet. Heikki Lokki Kurssin suorituksen jälkeen osaat

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

Fysiikan opinnot Avoimen yliopiston opiskelijoille

Vuorovaikutukset ja kappaleet

Ohjelmoinnin peruskurssi Y1

Oppimisprosessissa opiskelijoiden tukena analytiikan opiskelua yhdessä tehden

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

MATEMATIIKAN PERUSKURSSI b

PHYS-A3121 Termodynamiikka (ENG1) (5 op)

Tuloslaskenta (22C00400, 6 op)

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

Itä-Suomen yliopisto Tietojenkäsittelytiede

Esimerkkejä formatiivisesta arvioinnista yläkoulun matematiikan opiskelussa

Harjoitus 5 (viikko 41)

Yksilöllisen oppimisen menetelmä. Ville

Henkilökohtainen opintojen suunnittelu eli HOPS Urapalvelut opintojen alkuvaiheessa uraohjaaja Johanna Kilpeläinen

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

Hankintojen johtaminen

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

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

Ohjelmistoteknologioiden koulutus: Web-sovelluskehitys, Java Server. Infotilaisuus klo 10:00

Kuvataiteen aineopinnot (35 op) - ayukuv1800

IIZT4020 Projektitoiminta

Kurssin aloitus. AS XML-kuvauskielten perusteet Janne Kalliola

T harjoitustehtävät, syksy 2011

T harjoitustyö, kevät 2012

Sopimuspohjainen olio-ohjelmointi

Projektien suunnittelu ja ohjaus TU-C3010

KVANTITATIIVISET TUTKIMUSMENETELMÄT MAANTIETEESSÄ

Tietorakenteet op, 50 h. Luennot alkavat 7.9. ja päättyvät

LUENTO 0. Tervetuloa! Käyttöjärjestelmät II 2 ov Teemu Kerola. Helsingin yliopisto Tietojenkäsittelytieteen laitos

IIO10200 TIETOKANTAOHJELMOINTI (4 OP) OPINTOJAKSON ESITTELY JOUNI HUOTARI

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

PHYS-A3121 Termodynamiikka (ENG1) (5 op)

Opintoihin orientointi

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

P e d a c o d e ohjelmointikoulutus verkossa

MS-C2128 Ennustaminen ja Aikasarja-analyysi, 5 op Esittely

15. Ohjelmoinnin tekniikkaa 15.1

Sarjat ja integraalit, kevät 2014

Kuvataiteen aineopinnot (35 op) - ayukuv1800

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

Kohti ylioppilaskirjoituksia

Transkriptio:

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

Johdantoa kurssilla opiskeluun: oppimistavoitteet. 1. Tiedän mitä asioita kurssilla opiskellaan 2. Tiedän kurssin käytännöt ja osaan soveltaa niitä. 3. Tiedän kurssin arviointiperiaatteet 4. Osaan opiskella kurssilla oppiakseni. 2

Opintojakson viralliset osaamistavoitteet (WebOodi): Opiskelija osa ratkaista ongelmia ja toteuttaa ongelman ratkaisevan graafisen ohjelman Java-kielellä käyttäen hyväksi monipuolisesti erilaisia ohjelmointirakenteita. Hän osaa selittää eron komentoriviohjelman ja tapahtumaohjatun ohjelman välillä. Hän osaa tehdä ohjelmia, jotka käsittelevät hallitusti ohjelman suorituksen aikana tapahtuvat poikkeukset. Hän tuntee olio-ohjelmoinnin suunnittelun filosofian sekä kapseloinnin, abstrahoinnin, periytymisen ja monimuotoisuuden käsitteet. Hän tietää kuinka luokkamekanismi tukee kapselointia ja informaation piilottamista. Hän tuntee ja osaa käyttää metodien kuormittamista ja korvaamista olioohjelmissa. Hän osaa suunnitella, ohjelmoida, testata yksinkertaisia tapahtumaohjattuja ohjelmia, olio-ohjelmia ja is-a suhdetta olioissa luokkahierarkian ja periytymisen kautta käyttäviä ohjelmia sekä etsiä niistä virheitä. 3

Opintojakson sisältö (WebOodi): Kurssilla syvennetään Ohjelmointi I -kurssilla saatuja tietoja ja tutustutaan ohjelmointiin Javakielellä. Aiheina Java-kielen perusrakenteet, tyypitystä, taulukot, tiedostojen käsittely ja poikkeukset, periytyminen ilmiöineen, rajapintaluokat, graafisen käyttöliittymän rakentamisen perusteet, tapahtumakeskeinen ohjelmointi sekä säiliöluokat ja geneeriset luokat. 4

Kurssin sisältö ja oppimistavoitteet: Opiskelija osaa ratkaista ongelmia ja toteuttaa ongelman ratkaisevan graafisen ohjelman Java-kielellä. Hän tuntee muistinhallinnan toiminnan periaatteet sekä osaa käyttää olioviittauksia ja säikeita ohjelmien tekemisessä. 5

Kurssin sisältö ja oppimistavoitteet: Mitä osaat jo? Mitä haluaisit oppia? 6

Opintojakson sisältö viikoittain: 1. Java-kieli, muuttujat valinnat 2. Ehtorakenteet, toisto ja tiedostot 3. Funktiot ja metodit, kommentointi, JavaDoc 4. Oliot ja luokat, kuormitus, pakkaukset, olioajattelu 5. Taulukot ja ArrayList 6. Merkkijonot, periytyminen, monimuotoisuus, poikkeukset 7. Graafinen käyttöliittymä 8. Tapahtumapohjainen ohjelmointi 9. Säikeiden käyttö ohjelmissa 7

Java ohjelma näyttää jonkin verran erilaiselta kuin Python ohjelma 8

Periaatteessa ohjelmat tehdään kuitenkin hyvin samaan tapaan: lukeminen ja laskut 9

Periaatteessa ohjelmat tehdään kuitenkin hyvin samaan tapaan: lukeminen ja laskut 10

Periaatteessa ohjelmat tehdään kuitenkin hyvin samaan tapaan: ehto ja toisto 11

Periaatteessa ohjelmat tehdään kuitenkin hyvin samaan tapaan: funktiot 12

Pythonissa perustallennusrakenne on lista 13

Javassa on erilainen perustallennusrakenne: taulukko joka on "kiinteän kokoinen lista" 14

Periaatteessa ohjelmat tehdään kuitenkin hyvin samaan tapaan : tiedostot ja poikkeukset 15

Periaatteessa ohjelmat tehdään kuitenkin hyvin samaan tapaan : tiedostot ja poikkeukset 16

Periaatteessa ohjelmat tehdään kuitenkin hyvin samaan tapaan: olioluokat ja periytyminen 17

Periaatteessa ohjelmat tehdään kuitenkin hyvin samaan tapaan: olioluokat ja periytyminen 18

Olioiden avulla voidaan tehdä graafinen käyttöliittymä 19

Olioiden avulla voidaan tehdä graafinen käyttöliittymä 20

Olioiden avulla voidaan seurata graafisen käyttöliittymän tapahtumia 21

Javan luokat voivat myös olla abstrakteja (Mahdollista myös Pythonissa abc moduulin avulla) 22

Javan luokat voivat myös olla rajapintoja 23

Javan luokissa voi käyttää säikeitä (Pythonissa moduulin Threading avulla) 24

Ohjelmointia tarvitaan suoraan tai epäsuorasti monilla perus- ja aineopintojen kursseilla Johdatus tietojenkäsittelytieteeseen Tietokonejärjestelmät Tietorakenteet ja algoritmit Hajautetut järjestelmät Ohjelmointi 1 Perusopintojen harjoitustyö Ohjelmointi 2 Parityö Projektityö Harjoittelu / erikoistyö Tietojärjestelmän suunnittelu Tiedonhallinta Ihminen ja vuorovaikutteinen teknologia Ohjelmistotuotantoprosessi 25

Opintojaksolla käytetään erilaisia oppimismenetelmiä Luennoilla esitellään uusia asioita. Luentojen välillä opiskellaan materiaalin pohjalta lisää ja tehdään kotitehtäviä LB harjoituksissa opiskellaan yhdessä opettajan johdolla. Kotitehtävissä harjoitellaan ja sovelletaan uusia asioita. Ohjelmointia opitaan lukemalla ja kokeilemalla. 26

Opiskelu on rytmitetty 9 jaksoon. Järjestetty opetus: Luennot 4 tuntia Tehtävien tekemistä LB harjoituksissa 2 tuntia Kotitehtävien läpikäynti HR harjoituksissa 2 tuntia. Itsenäinen opiskelu: Luentojen kertaus, itsenäinen opiskelu ja tehtävien tekeminen 10 tuntia / viikko Kurssin lopuksi tentti tietokoneella. 27

Ohjelmointiympäristöt Eclipse (eclipse.org) Harjoitustehtävien tekemiseen käytetään Eclipse ohjelmointiympäristöä, jota on käytetty perusopintojen harjoitustyössä. NetBeans (netbeans.org) Vaihtoehtoinen ohjelmointiympäristö. (jgrasp(www.jgrasp.org) Vaihtoehtoinen ohjelmointiympäristö. 28

Jakso käydään läpi viikossa. Viikko-ohjelma: Luennot 2 kertaa 2 tuntia (ma-ti) Edellisen viikon yhteenveto, uuden aiheen esittely Itsenäinen opiskelu (ti-ma) Uuden asian opiskelu ja kotitehtävien tekeminen LB harjoitukset 2 tuntia (ke) harjoittelu ohjatusti Kotitehtävien palautus Moodleen (ma aamulla) HR harjoitukset (ma ti) kotitehtävien läpikäynti, aiheen syventäminen 29

Kurssin suorittamiseen kuuluu LB ja HR harjoitukset sekä tentti HR tehtävien ratkaisut käsitellään HR harjoituksissa HR tehtävien ratkaisut palautetaan etukäteen Moodleen. LB harjoitusten aktiivisesta työskentelystä saa yhden pisteen (yhteensä 9 pistettä) Harjoitustehtävistä saa kustakin yhden pisteen (yhteensä 53 pistettä). HR harjoitusten aktiivisesta työskentelystä saa 1 pisteen (yhteensä 9 pistettä) Tentistä saa 80 pistettä. Kurssin saa läpi 80 pisteellä. 30

Oppimisen arvioinnissa otetaan huomioon harjoitukset, kotitehtävät, harjoitustyö ja tentti. Arviointitapa Kertoja Pisteet / kerta Yhteensä LB harjoitukset (tehtävät tehdään harjoituksissa) HR harjoitukset (ratkaisut palautetaan etukäteen Moodleen) HR harjoitukset (ratkaisujen läpikäynti ja asioiden opiskelu) 9 1 9 9 6 54 9 1 9 Tentti 1 80 80 Yhteensä 152 80 pistettä on hyväksytty kurssisuoritus. 31

Opintosuorituksen arvioinnissa käytetään normaalia asteikkoa 1-5 (välttävä - erinomainen) Pisteet Arvosana Sanallisesti 80-93 1 Välttävä 94-108 2 Tyydyttävä 109-122 3 Hyvä 123-137 4 Kiitettävä 138-152 5 Erinomainen 32

Opintojakson voi suorittaa myös tenttipainotteisesti Tenttipisteet Arvosana Sanallisesti 40-47 1 Välttävä 48-55 2 Tyydyttävä 56-63 3 Hyvä 64-71 4 Kiitettävä 72-80 5 Erinomainen Tentistä saatua arvosanaa voi korottaa palautettujen kotitehtävien pistemäärällä, jos se on yli 27 pistettä. Nämä pisteet = (hteht 27) / 2 lisätään hyväksytyn tentin (väh. 40 pistettä) pisteisiin. 33

Kurssin sisältö perustuu kirjaan Luentomateriaali Moodlessa kurssin edetessä Samoista asioista puhutaan esim. kirjoissa Y. Daniel Liang: Introduction to Java programming (Comprehensive version) luvut: 1-17, 32 [kirjastossa 11 kpl] Silander, Ollikainen, Peltomäki: Java (Docendo) [kirjastossa 8 kpl] Tony Gaddis: Starting out with Java Kirjan nettisivuilla on kiinnostavaa oheismateriaalia http://www.pearsonhighered.com/lianginternational/ 34

Kurssikirjat Y. Daniel Liang: Introduction to Java programming luvut: 1-17, 32 [kirjastossa 11 kpl] Tony Gaddis: Starting Out with Java Horstmann, Cornell: Core Java Silander, Ollikainen, Peltomäki: Java (Docendo) [kirjastossa 8 kpl] (Ei enää myynnissä) 35

Kurssin tiedotus ja materiaalit hoidetaan Moodlen kautta Kurssin nimi: Ohjelmointi II (Kuopio) 2015 Ilmoitukset Luennot Moodlessa luentomateriaali, linkkejä, harjoitustehtävät, ratkaisut, muutokset (Uutiset). Lue sähköpostiasi sinne tulee ilmoitukset Moodlen Uutisista. Harjoitukset Harjoitustehtävät jaetaan ja ratkaisut palautetaan Moodleeen 36

Harjoitusryhmät Ryhmä 1 Moodle avain: oh21 Ryhmä 2 Moodle avain: oh22 37

Ohjelmointia oppii opiskelemalla ja ohjelmoimalla. Miten tästä opintojaksosta "selviää hengissä"? Käy luennoilla, kertaa luentoja, lue kirjaa, selaa webbiä Kokeile kaikki luentoesimerkit ja kirjan esimerkit itse tietokoneella. Tee niihin muutoksia ja katso mitä tapahtuu. Tee kaikki harjoitustehtävät itse koneella -- yksin tai kaverien kanssa yhdessä. Java ohjelmointi on aluksi haastavaa, mutta työ ja oivallus palkitsee. 38

Miten opin kurssilla? Kuuntelen, kyselen ja teen muistiinpanoja luennoilla. Luen luentomateriaalia, kirjaa, oheismateriaalia ja nettiä. Käyn LB harjoituksissa tekemässä tehtäviä. Teen harjoitustehtävät itsenäisesti (tai yhdessä kaverien kanssa) ja osallistun aktiivisesti harjoituksissa. 39

Johdantoa kurssilla opiskeluun: oppimistavoitteet. 1. Tiedän mitä asioita kurssilla opiskellaan 2. Tiedän kurssin käytännöt ja osaan soveltaa niitä. 3. Tiedän kurssin arviointiperiaatteet 4. Osaan opiskella kurssilla oppiakseni Kysymyksiä? 40