Kurssin suorittaminen

Kurssin suorittaminen

OHJ01.1 ja OHJ02.1 -kurssit

  • 7 osaa kummankin kurssin materiaalissa, joka sisältää teorian ja tehtävät
    • 6 viikkoa lähiopetusta + koeviikko, joka opiskellaan itsenäisesti (tarpeen mukaan luvassa myös Artun livelähetys / -lähetyksiä ja etätukea toiveiden mukaan, tästä sovitaan myöhemmin oppitunnin yhteydessä)
    • Tavoite: opiskele viikko per osa
  • Jokaisen osan tehtävistä on laadittava vähintään 25 % kurssin hyväksymiseksi
    • Seuraavan osan tehtäviin pääsee käsiksi, kun on tehnyt vähintään 25% edellisen osan tehtävistä (tästä TMC-järjestelmä pitää huolen)
  • Aikaa kannattaa varata tehtävien tekemiseen!
    • Ensimmäisten osien kohdalla tehtävät tulee luultavasti tehtyä rivakasti (opiskelijasta riippuen mahdollisesti muutamassa tunnissa), mutta lähestyttäessä viikkoa 7 aikaa voi hyvinkin mennä jopa 20 tuntia per osa
    • Yritä parhaasi, kaikkea ei tarvitse osata heti samantien! Opettaja on etenkin hankalia tilanteita varten auttamassa

Kurssin käytänteet

Kurssisuoritus

  • Ei koetta
    • Ainoa vaatimus: 25 % per osa hyväksytysti ratkaistu (ks. osien jako alta)
  • Kurss(e)ista saa suoritusmerkinnän (S)
    • Arviointi: hyväksytty / hylätty
  • Periaatteet:
    • Osien 1–7 suoritus (OHJ01.1 / 1. jakso) = 2 kurssia
    • Osien 8–14 suoritus (OHJ02.1 / 2. jakso) = 3 kurssia
    • Jos suorittaa siis molemmat OHJ01.1 ja OHJ02.1 -kurssit, saa yhteensä 5 kurssia ohjelmointikurssista (ks. asiaa havainnollistava taulukko alapuolelta)
Kurssin nimi opinto-oppaassa Materiaalin osat Jakso Kurssin nimi Wilmassa
Ohjelmointi 1 1–3 1 OHJ01.1
Ohjelmointi 2 4–7 1 OHJ01.1
Ohjelmointi 3 8–10 2 OHJ02.1
Ohjelmointi 4 11–12 2 OHJ02.1
Ohjelmointi 5 13–14 2 OHJ02.1

Kurkkaa myös Kangasalan lukion opinto-opasta 2019–2020 (PDF:nä)

  • voit verrata lukion opinto-oppaan ohjelmointiosuutta (s. 60–61) tämän sivun Osaamistavoitteet-osioon

Käänteinen opetus (flipped learning)

Käänteinen opetus (tai käänteinen luokkahuone, engl. flipped classroom t. flipped learning) on monimuoto-opetuksen muoto, jossa käytetään apuna internetissä olevia opetusmateriaaleja, jolloin varsinaisella oppitunnilla jää enemmän aikaa opettajan ja opiskelijoiden väliselle vuorovaikutukselle. Yleisimmin tämä tehdään antamalla opiskelijoille esitehtäväksi verkossa olevien videoiden katsominen ja niihin perustuvien tehtävien tekeminen. (Wikipedia)

  • Kotitehtävä: Etukäteen ennen jokaista oppituntia on luettava sen viikon materiaalia, joka on käsittelyssä
  • Näin oppitunneille jää aikaa käydä läpi hankalia ongelmakohtia ja tehdä tehtäviä, kun teoriasta on jo hieman tietoa
    • Arttu voi myös näyttää tunneilla, miten osan hankalaksi koetuista tehtävistä pystyy ratkaisemaan

WhatsApp-ryhmä

  • Viestintään, kysymyksiin, tukikanavaksi ja perjantain etäopetuksen “shoutboxiksi” (laita kysymyksiä etukäteen WhatsApp-ryhmään, Arttu vastaa oppitunneilla)
  • Liittyminen: lähetä Artulle WhatsApp-viesti Etunimi Sukunimi numeroon XXX (puhelinnumero kerrotaan ensimmäisillä oppitunneilla)

Läsnäolopakko

  • Kurssin oppitunneilla (myös perjantain etätunneilla) on läsnäolopakko samaan tapaan kuin millä tahansa muullakin kurssilla
  • Poissaolot merkitään jokaisen oppitunnin alussa

Perjantain oppitunneista

  • Perjantaisin on luvassa etäopetusta, eli oppitunti pidetään verkon kautta
  • Vaatimus, jotta poissaoloa ei merkata: jokaisen perjantain oppitunnilla läsnäolevan on kysyttävä vähintään yksi (1) kysymys käsiteltävästä aiheesta livelähetyksen aikana osoittaakseen läsnäolonsa etätunnilla
    • Muuten en voi tietää, oletko oikeasti ollut oppitunnilla vai jossain baanalla (vaikkapa Helsingin Baanalla)
    • Kysymys voi olla ihan mikä vaan, kunhan se liittyy käsiteltävään aiheeseen
  • Artun ehdotus sisällöstä: YouTube Live -livelähetys, jossa vastaan teidän Whatsappissa lähettämiinne kysymyksiin

Osaamistavoitteet

Kursseilla opitaan perustaidot ohjelmoinnista Java-kielellä. Tutuksi tulevat muun muassa syötteen lukeminen, tulostaminen, ehtolauseet, toistolauseet, listojen käsittely ja oliot.

OHJ01.1-kurssi (opinto-oppaassa Ohjelmointi 1 ja 2 -kurssit, 1. jakso)

Osa Osaamistavoitteet
1 Osaat kirjoittaa ohjelmia, jotka lukevat käyttäjältä syötettä ja tekevät laskentaa syötteen perusteella. Tunnet käsitteet muuttuja, ehtolause ja toistolause, ja osaat käyttää näitä ohjelmissasi.
2 Tunnet muutamia osaongelmia sekä niihin liittyviä ratkaisumalleja. Tunnet loogiset operaatiot ja, tai ja ei ja osaat käyttää niitä ehto- ja toistolauseissa. Tunnet käsitteet metodi, metodin parametri, metodin palautusarvo ja ohjelman kutsupino. Osaat luoda metodeja ja ymmärrät miten ohjelman suoritus etenee kun metodia kutsutaan ja toisaalta kun metodikutsusta palataan.
3 Tiedät lähdekoodin kommentointitapoja ja ymmärrät miten muuttujien ja metodien nimentä vaikuttaa ohjelman ymmärrettävyyteen. Tunnet lista- ja taulukkorakenteen ja osaat käyttää niitä osana ohjelmia. Osaat käydä listan ja taulukon läpi while-toistolausetta ja indeksimuuttujaa käyttäen sekä for-each -toistolausetta käyttäen. Tunnet merkkijonoon liittyviä metodeja ja osaat pilkkoa merkkijonon pienempiin osiin. Harjoittelet ohjelmien testaamista syötteitä ja tulosteita vertailemalla.
4 Tunnet käsitteet tiedosto ja tiedostojärjestelmä ja osaat lukea merkkijonomuotoista tietoa tiedostosta. Tiedät mitä olio-ohjelmointi tarkoittaa. Tunnet olio-ohjelmointiin liittyvät keskeiset käsitteet kuten luokka ja olio. Osaat luoda luokkia ja olioita sekä käyttää niitä osana toteuttamiasi ohjelmia.
5 Tiedät mitä alkeis- ja viittaustyyppiset muuttujat ovat ja ymmärrät miten niiden toiminta eroaa toisistaan (muuttujan arvon asetus, metodin parametrina käyttö). Osaat luoda luokkaan useita konstruktoreja sekä useita samannimisiä metodeja. Osaat vertailla olioiden samankaltaisuutta sekä määritellä samankaltaisuuden vertailuun käytettävän metodin. Osaat määritellä luokkaan viittaustyyppisiä oliomuuttujia, käyttää olioita metodin paluuarvona, sekä käyttää listoja oliomuuttujina.
6 Ymmärrät staattisten ja ei-staattisten metodien erot. Tunnet hajautustaulun ja osaat käsitellä hajautustaulussa olevaa tietoa. Osaat käyttää olioita hajautustaulun arvona ja tiedät miten oliot toimivat hajautustaulun avaimena. Osaat ryhmitellä tietoa hajautustaulun avulla ja osaat käyttää listaa hajautustaulun arvona. Osaat käyttää olioita sekä tiedon esittämiseen että ohjelman jakamiseen useampaan vastuualueeseen (tekstikäyttöliittymä, sovelluslogiikka).
7 Osaat kertoa proseduraalisen ohjelmoinnin ja olio-ohjelmoinnin eroista ja toteuttaa ohjelmia kumpaakin ohjelmointiparadigmaa noudattaen. Tiedät mitä käsite algoritmi tarkoittaa ja osaat kuvailla muutamien järjestämis- ja hakualgoritmien toimintaa. Osaat kirjoittaa yksikkötestejä ja tiedät testivetoisen ohjelmistokehityksen perusaskeleet.

OHJ02.1-kurssi (opinto-oppaassa Ohjelmointi 3, 4 ja 5 -kurssit, 2. jakso)

Osa Osaamistavoitteet
8 Tunnet käsitteet perintä ja rajapinta. Osaat luoda luokkia, jotka periytyvät toisesta luokasta ja osaat luoda luokkia, jotka toteuttavat yhden tai useamman rajapinnan. Tiedät miten abstraktit luokat toimivat. Ymmärrät että olio voidaan esittää kaikkien sen todellisten tyyppien avulla.
9 Osaat käsitellä tietokokoelmia virran avulla. Osaat rajata virran arvoja (filter) sekä muuntaa virran arvojen tyyppiä (map). Tunnet käsitteen lambda-lauseke. Osaat järjestää olioita Javan valmista Comparable-rajapintaa hyödyntäen. Tunnet käsitteet säännöllinen lauseke, lueteltu tyyppi, ja iteraattori, ja osaat hyödyntää näitä ohjelmissasi.
10 Tunnet luokkakaaviot ja osaat tulkita ja rakentaa ohjelmia luokkakaavioiden perusteella. Osaat käyttää Javan pakkauksia ja tiedät mistä import-lauseen osat muodostuvat. Tunnet Javan erilaisia poikkeuksia ja osaat käsitellä sekä heittää niitä eteenpäin. Osaat kirjoittaa tietoa tiedostoon ohjelmallisesti.
11 Tiedät mitä geneeriset tyyppiparametrit ovat ja osaat luoda luokkia jotka käyttävät niitä. Tiedät pääpiirteittäin ArrayListin ja HashMapin sisäisen toteutuksen ja osaat luoda niistä yksinkertaistetut omat versiot. Tiedät miten satunnaislukuja luodaan ja osaat käyttää Javan valmiita välineitä satunnaislukujen luomiseen. Tunnet menetelmiä moniulotteisen tiedon esittämiseen ja osaat luoda sekä käsitellä moniulotteisia taulukoita.
12 Tutustut graafisten käyttöliittymien ohjelmointiin. Tunnet muutamia käyttöliittymäkomponentteja, käyttöliittymäkomponenttien asettelun mekanismeja, sekä osaat käsitellä käyttöliittymän tapahtumia. Osaat tehdä käyttöliittymiä, jotka sisältävät useamman näkymän.
13 Tunnet menetelmiä tiedon visualisointiin ja osaat käyttää Javan valmiiksi tarjoamia kaavioita (viivakaavio, pylväskaavio). Osaat käyttää Javan tarjoamia välineitä yksinkertaisten piirrosten luomiseen. Osaat näyttää kuvia sekä soittaa äänitiedostoja. Luot suuremman ohjelman esimerkkiä noudattaen.
14 Tunnet menetelmiä simulaatioiden luomiseen ja kertaat kaksiulotteisten taulukkojen käyttöä. Tiedät, että muiden kirjoittamia kirjastoja voi käyttää osana omia ohjelmia. Kertaat käsitettä yksikkötestaus ja tunnet pääpiirteittäin käsitteen testikattavuus.

Osaamistavoitteiden lähde: https://ohjelmointi-19.mooc.fi/osaamistavoitteet (Creative Commons BY-NC-SA 4.0 -lisenssi, Helsingin yliopiston Agile Education Research -tutkimusryhmä, ks. https://ohjelmointi-19.mooc.fi/credits)