-- Etusivu -- | Materiaalia | Luennot | Demot | Opettajat |
ITKP102 Ohjelmointi 1 --- syksy 2007
Pikalinkkejä: Ohjausajat harkalle | Tukiopetusdemot | Työkaluohjeet | Harjoitustyö | Ajankäyttö | Arvostelukaava | Oikotieratkaisu | Opinto-opastiedot
Virtuaaliset demotaulut: Luokka Mountains (Järven puoleinen) ja Luokka Lakes (Rantaväylän puoleinen)
Tietoja yliopiston ulkopuolisille organisaatioille:
Syksyn 2007 Ohjelmointi 1 lukio-opetuksen osana
Lukiolaiset ilmoittautuvat Korpissa eri paikkaan:
Lukio-oppilaiden oma Korppi-sivu.
International students' corner.
Huomaa kurssisivun välilehdet: Etusivulla on uusimmat tiedotteet ja opetusohjelmatiedot. Kirjallisuusluettelo ja relevantit nettilinkit ovat välilehdellä Materiaalia. Luentojen suunnitelma ja toteutuneiden luentojen materiaalit ovat välilehdellä Luennot. Lisäksi on välilehdet harjoitustehtäville ja opettajien esittelylle.
Opettajien TODO-lista (opiskelijoille ilmoitetaan sähköpostilla heti, kun valmistuu):
- Tentin valmistelu; tehtävät ja pisteytykset
- Tentin korjaus
Tarkin mahdollinen tieto aikatauluista ja paikoista on jatkuvasti kurssin Korppi-sivulla. Valitse omasi:
Huom 1: Demoryhmät ovat erillisiä, ja kannattaa ilmoittautua itselle sopivaan aikaan olevaan ryhmään. Käytännössä voit käyttää harkintaa ja käydä välillä myös eri sessiossa kuin mihin olet ilmoittautunut. Jotta kokonaisuus toimii järkevästi, on kuitenkin syytä yrittää käydä ensisijaisesti siinä, mihin on ilmoittaunut. Ettei johonkin ryhmään tule yllättäen tupa liian täyteen.
Huom 2: Jos tuntuu, että asiat eivät avaudu kovin nopeasti, voit käydä samat asiat uudelleen useammassa demoryhmässä saman tai eri opettajien kanssa ja kysyä tarkentavia kysymyksiä niin paljon, että lopulta varmasti selviää. Myös sähköpostilistalla voi kysyä ja pidemmälle päässeet voivat vastata oman käsityksensä mukaan. Opettajat sittne "kommentoivat kommentointia" tarpeen mukaan.
Tukiopetusta on pyydetty, ja nyt sitä saa. Tarkoitus olisi, että käytäisiin asioita läpi ohjaustyyppisesti: Ohjelmoit (tai vähintään yrität) luokassa ja opettaja avustaa henkilökohtaisesti erityisesti perustavanlaatuisissa ongelmissa. Nämä ovat varsinaisten demotilaisuuksien lisäksi eikä näissä siis käydä läpi tämän viikon tarkastettavia demoja vaan esim. aiempia demoja tai seuraavan viikon tehtäviä. Tavoite on saada kaikki jollain tavoin kartalle perusjutuissa. Tässä ryhmäpostissa on ilmoitettu tällä hetkellä varatut tukiopetusajat. Ryhmät on kielletty muilta kuin kadonneita kärryjä etsiviltä.
Palopuhe
Ainoa keino saada tietokone tekemään mitään hyödyllistä on tehdä sille ohjelmia. Melkein kaikki informaatioteknologian osa-alueet sisältävät ohjelmointia muodossa tai toisessa, vaikka "ohjelmien tekeminen" kokonaisuudessaan pitää sisällään kovin paljon muutakin kuin tietokoneen toimintaohjeiden kirjoittamista ohjelmointikielellä. Ohjelmointitaito ja siihen liittyvät ongelmanratkaisutavat sekä ajattelumallit ovat lähtökohta melkein kaikkeen, mihin tiedekuntamme opiskelijoitaan valmentaa, joten IT-opintojen alkuvaiheessa on äärimmäisen tärkeää oppia mahdollisimman nopeasti ohjelmoimaan mahdollisimman hyvin. Sama pätee muiden aineiden pääaineopiskelijoihin, jotka haluavat tietotekniikasta vakavasti otettavan sivuaineen.
Mielestäni ohjelmointi ei ole vaikeaa, mutta se on, kuten klisee kuuluu, "taas yksi aivan erilainen tapa ajatella, jäsentää maailmaa ja kommunikoida". Sellaisen hahmottaminen vaatii aikaa, ajattelua ja tekemistä. Suomeksi sanottuna... asian oppiminen ensimmäistä kertaa on todennäköisesti työlästä. Mutta muistelepa millaista oli pyörällä ajamisenkin opettelu...
Syksyllä 2007 kurssin Ohjelmointi 1 luennoi tietotekniikan laitoksen assistentti Paavo Nieminen apunaan joukko tuntiopettajia. Tällä sivulla tullaan tiedottamaan kurssin etenemisestä. Aloitusluento on ti 11.9.07 10:15 - 12:00 Agoran auditoriossa 1. Ja se alkaa sitten sekunnilleen 10:15 suoraan keskeltä itse asiaa! Ole paikalla istumassa silloin, ja tuolista kiinni!
Byrokratia lyhyesti
Kurssin laajuus on 6 opintopistettä (tai 4 ov, jos vielä opiskelet viikkosysteemillä). Se on IT-tiedekunnan opiskelijoille pakollinen, tutkintoon kuuluva opintojakso. Kurssin suorittaminen edellyttää aktiivista viikkoharjoitusten (eli demojen) tekemistä, harjoitustyön tuottamista sekä tentissä osaamista. Yksityiskohdat ja arvosteluperusteet kerrotaan ensimmäisellä luennolla. Etäopiskelu on mahdollista Internetin kautta niille, jotka eivät jostain syystä pysty Jyväskylässä toimimaan. (Läsnäolo on toivottavaa, jos se on käytännössä mahdollista!). Kurssi tarjotaan myös Avoimen yliopiston kautta esim. lukioissa tai opistoissa suoritettavaksi. Oppilaitoksen tulee tällöin ottaa yhteyttä Avoimeen yliopistoon sopimusten tekemiseksi.
Syksy 2007
Syksyllä 2007 kurssin luennoi allekirjoittanut eli Paavo Nieminen (sposti: nieminen@jyu.fi). Kurssi saattaa olla joiltain osin hieman erilainen kuin aiempina kertoina, mutta oppimistavoitteet ovat samat (opinto-oppaassa nimetyt aihekokonaisuudet sekä käsitteistö, jota niiden käyttäminen edellyttää). Toivon kaikille jouhevaa alkua ohjelmointitaipaleella. Minä sekä tuntiopettajat olemme täällä teidän oppimistanne varten, joten lähestykää meitä aina tarvittaessa!
Tarkemmin kurssin laajuudesta
Yritän mitoittaa kurssin vastaamaan kuuden opintopisteen virallista ajallista laajuutta eli 6 x 27 tuntia = 162 tuntia aktiivista opiskelua. Valmistaudu syksyyn se huomioiden. Jotenkin seuraavasti toivon aikasi jakautuvan:
- Luentotilaisuudet 40 tuntia
- Demotilaisuudet 20 tuntia
- Demojen itsenäinen tekeminen 80 tuntia (sisältää luentomateriaalin kertaamista, ajattelua sekä käytännön tekemistä)
- Harjoitustyön tekeminen 20 tuntia (varmaan osittain limittyy edellisen kohdan kanssa)
- Harjoitustyön henkilökohtaiset näytöt ohjaajalle max 1 tunti
- Tentissä istuttava aika. (Katsokin, että osaat vastata kaikkeen mahdolliseen alle tunnissa, mikä jää 162 tunnin kiintiöstä vapaaksi...)
Viikottainen työmäärä suurin piirtein esim. 4h (luennot) + 2h (demotilaisuus) + 8h (demojen työstäminen) + 2h (harjoitustyön työstäminen) = 16h.
Arvostelusta
Kolme "leikkuria:"
- Harjoitustyö on kynnys kurssin suorittamiselle: se täytyy palauttaa määräaikaan mennessä, ja tämä on tehtävä henkilökohtaisesti. Tarkastaja varmistaa keskustelemalla, että työ on itse tehty eli että osaat perustella kaikki toteuttamasi ratkaisut. Aikataulu ilmoitetaan lokakuussa.
- Tentin läpäisy (puolet tehtävistä oikein!) on kynnys kurssin suorittamiselle.
- Demoaktiivisuus (20% joka demoista ja kaikkien kertojen yksittäisten prosenttien keskiarvo yli 30%) on kynnys kurssin suorittamiselle. Ali aktiivisuus mitataan erikseen joka demossa (tehtyjä/kaikki), ja lopussa ratkaisee keskimääräinen prosentti. Siis esim. olet tehnyt demoista 20%, 40%, 60%, 20%, 40%, 60%, 20%, 40%, 60%, 40% niin keskiarvoksi tulee 40%.
Arvosanan määräytyminen:
Tämä on 30 pisteen kurssi. Tentistä voi saada vain 24. Loput demoaktiivisuudesta.
Pisterajat arvosanoihin:
arvos. alaraja pist. 1 15 2 18 3 22 4 25 5 28
Yhteenlaskutaulukko:
30% 45% 60% 75% 90% 105% -- demoprosentti ylittää 3 4 5 6 7 8 -- demoista pisteitä tentti 12 15 16 17 18 19 20 14 17 18 19 20 21 22 16 19 20 21 22 23 24 18 21 22 23 24 25 26 [pistemäärä tästä taulukosta] 20 23 24 25 26 27 28 22 25 26 27 28 29 30 24 27 28 29 30 31 32
Esimerkkejä arvosanoista (Nyt jopa enemmän oikein lasketut...):
Puolet tenttipisteistä (kynnysarvo) ja 30% demoista (kynnysarvo) - 1 Puolet tenttipisteistä (kynnysarvo) ja 45% demoista - 1 Puolet tenttipisteistä (kynnysarvo) ja 60% demoista - 1 Puolet tenttipisteistä (kynnysarvo) ja 75% demoista - 2 Puolet tenttipisteistä (kynnysarvo) ja 90% demoista - 2 Täydet tenttipisteet ja 30% demoista (kynnysarvo) - 4 Täydet tenttipisteet ja 45% demoista - 5 Täydet tenttipisteet ja 60% demoista - 5 Täydet tenttipisteet ja 75% demoista - 5 Täydet tenttipisteet ja 90% demoista - 5
Uskon, että em. arvostelu tukee sekä aktiivista seuraamista "pienen pakon" alla että myös mahdollisuutta päteä pelkän tentin avulla. Vitonen edellyttää joka tapauksessa vähintään 45% demoista viikottain!
Osaat jo ohjelmoida?
Mikäli jo mielestäsi osaat kurssin asiat, tarjotaan "oikotie" eli voit yrittää ripeästi syyskuussa tehdyllä harjoitustyöllä ja tentillä näyttää tasosi, saada Ohjelmointi Ykkösen suoritetuksi pois alta ja keskittyä loppusyksyn ajan itsellesi tärkeämpiin kursseihin (ja antaa tällä johdantokurssilla tilaa oikeille aloittelijoille).
Käyttääksesi oikotietä: Ihan ensimmäiseksi ilmoittaudu henkilökohtaisella sähköpostilla (nieminen@jyu.fi) halukkaaksi! Kerro postissa lyhyesti, mikä on ohjelmointikokemuksesi ja mikä on tausta sille, että uskot jo osaavasi. Oikotieopiskelijoille tehdään oma erillinen sähköpostilista, jonka kautta tiedotetaan. Tavoite on kaksijakoinen:
- Jos harkka ja tentti onnistuvat syyskuun aikana, on kurssi läpi ja arvosana annettu; voi alkaa ottaa jo edistyneempiä kursseja, joiden esitieto on Ohjelmointi 1. Oikotieporukka on ensimmäinen, joka tulee saamaan harjoitustyöaiheen. Se tulee olemaan noin 20% vaativampi kuin muilla.
- Jos taas oikotie osoittautuukin ylivoimaiseksi, voi palata normaaliin kurssimuotoon, joka kestää joulukuulle saakka. Tämän vuoksi kaikki, myös oikotielle halukkaat, joutuvat tekemään alkupään demot aina siihen asti kunnes oikotie on käyty läpi (tai sitten ei ...).
Opinto-oppaassa määritelty sisältö
Alla lueteltujen asioiden oppiminen on kurssin tavoite. Tässä on avattu käsitteet hieman tarkemmalle tasolle kuin mitä opinto-oppaaseen mahtuu. Sanat lienevät vieraita, mutta juuri siksihän tämä kurssi pidetään, että asiat tulevat tutuiksi ensimmäistä kertaa! Sen verran vaan varoitan, että asioita käydään läpi paljon. Niitä ei opi viikossa tai parissa kukaan eikä millään konstilla. Lähtötaso oletetaan nollaksi, mutta kahdessa viikossa ehditään rakentaa taso jos toinenkin eteenpäin! Vielä varoitan, että "kaikki liittyy kaikkeen", joten tässä tapauksessa "kärryiltä putoamisen tunne" ei välttämättä tarkoita kärryiltä putoamista, vaan sitä että täytyy vielä hetki tai pari funtsia ja oppia lisää... ja kysyä!!! Koska kaikki liittyy kaikkeen, lienee pakko aina silloin tällöin jättää myöhempään luentoon asioita, joiden ymmärtäminen vasta mahdollistaa pääsyn syvemmälle aiemman luennon asioihin. Eli TÄRKEINTÄ ON: Älä luovuta ensimmäiseen vastoinkäymiseen! Sellainen todennäköisesti tulee, mutta se on harha :-).
- Ohjelmoinnin perusrakenteet. Mitä tämä tarkoittaa:
- algoritmien mielessä muuttuja (primitiivi ja viite), peräkkäis-, ehto-, toisto- ja aliohjelmarakenne lisäyksineen sekä poikkeusten käsittely;
- tietorakenteiden mielessä primitiivityypit, taulukot, merkkijonot, peruskäsitys tietueesta, peruskäsitys säilöstä;
- oliokielen osalta luokan ja rajapinnan sekä olioinstanssin merkitys, idea apuohjelmakirjastosta ja APIsta.
- Johdatus algoritmeihin ja ongelmanratkaisuun.
- Peruskyky johtaa "ohjelmoinnin perusrakenteiden" avulla toimiva kuvaus yksinkertaisen tehtävän suorittamiseksi tietokoneella, lähtien liikkeelle suomenkielisestä kuvauksesta.
- Lähtökohta tällä kurssilla on systeemin mallintaminen asteittain tarkentuen, erityisesti toimintakuvauksen eli algoritmin osalta
- Perustietorakenteet ja niiden soveltaminen. (ks. "ohjelmoinnin perusrakenteet" edellä)
- Ohjelman suunnittelun perusteet. (ks. "Johdatus algoritmeihin ja ongelmanratkaisuun" edellä)
- Valmius yksinkertaisen Java-ohjelman toteuttamiseen. (tulee kaupan päälle, koska edelliset opitaan käyttäen työkaluna Javaa; lisäksi tutustutaan Javan API-dokumentaation lukemiseen)
Luennoitsijan uskomus on, että tavoitteeseen pääsy ilman kipuja edellyttää joitakin perusteita tietyistä kaiken taustalla olevista asioista:
- Informaation tallennus digitaalisesti: koodaus ja esitysmuoto, tiedostot ja tietovirrat
- Syntaksi
- Kääntäminen ja suoritus
- Virtuaalikone, muistimalli (pino ja keko), suoritusmalli (kontrollin siirtyminen)
- (voi olla muutakin, mutta em. tuntuvat tärkeimmiltä)
Viimeksi kajottu 2007-12-02.