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