Ohjelmointi II - UEF-Wiki - Itä
Transcription
Ohjelmointi II - UEF-Wiki - Itä
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. 2. 3. 4. 5. 6. 7. 8. 9. Java-kieli, muuttujat valinnat Ehtorakenteet, toisto ja tiedostot Funktiot ja metodit, kommentointi, JavaDoc Oliot ja luokat, kuormitus, pakkaukset, olioajattelu Taulukot ja ArrayList Merkkijonot, periytyminen, monimuotoisuus, poikkeukset Graafinen käyttöliittymä Tapahtumapohjainen ohjelmointi 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 Ohjelmointi 1 Perusopintojen harjoitustyö Ohjelmointi 2 Tietorakenteet ja algoritmit Hajautetut järjestelmät Parityö Projektityö Tietojärjestelmän suunnittelu Tiedonhallinta Ihminen ja vuorovaikutteinen teknologia Ohjelmistotuotantoprosessi Harjoittelu / erikoistyö 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) 9 1 9 HR harjoitukset (ratkaisut 9 6 54 9 1 9 1 80 80 palautetaan etukäteen Moodleen) HR harjoitukset (ratkaisujen läpikäynti ja asioiden opiskelu) Tentti 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ä Y. Daniel Liang: Introduction to Java programming (Comprehensive version) luvut: 1-17, 32 [kirjastossa 11 kpl] Samoista asioista puhutaan esim. kirjoissa Kirjan nettisivuilla on kiinnostavaa oheismateriaalia Silander, Ollikainen, Peltomäki: Java (Docendo) [kirjastossa 8 kpl] Tony Gaddis: Starting out with Java 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