CSE-A1110 Ohjelmointi 1 Luento 1 Johdanto kurssiin ja ohjelmoijan työkaluihin Juha Sorva juha.sorva@aalto.fi
Luennon sisältö 1. Kurssin tavoitteet ja toimintatavat 2. Vähän alkua itse asiasta, ohjelmoinnista
Mistä suunnilleen on kyse? Ohjelmointi on ohjeistuksien laatimista tietokoneelle. Kun tietokone suorittaa ohjelman, niin tapahtuu ohjelmoijan määräämiä asioita. Ohjelmoija voi luoda mm. sovelluksia eli ohjelmia, jotka tarjoavat tiettyyn aihepiiriin liittyviä palveluita ihmisille. Esim. tekstinkäsittelyohjelma, sähköpostiohjelma, tietokonepeli.
Tähtäimessä Kurssin jälkeen toivottavasti......olet tullut tulokseen, että ohjelmointi on kivaa.... ja osaatkin jo laatia ainakin jonkinmoisia ohjelmia.
Kurssin toimintamalli? Oppimistavoitteet Opiskelu Arviointi
Kurssin toimintamalli? Oppimistavoitteet Opiskelu Arviointi
Sillä aikaa tosielämässä... Bileet Arvosteluperusteet Deadline Paniikki
Tavoitteista Kauniit oppimistavoitteet helposti "menevät ohi" tai unohtuvat? Varsinkin aluksi, kun opittavat käsitteet eivät ole vielä tuttuja. Arvosteluperusteisiin tulee helposti kiinnitettyä enemmän huomiota? Tarkastellaan kurssia konkreettisesti, arvioinnista lähtien ja sisältöön päätyen.
Oppimis- vs. arvosanatavoitteet Millaisella panostuksella tästä kurssista selviää? Kuinka ajoissa pitää havahtua deadlineen? Seuraa luento loppuun ja tee omat johtopäätöksesi. Seuraavaksi käydään läpi arvosteluperusteet eli se, millaisia asioita kurssilla pitäisi osata tehdä. Arvosteluperusteet on laadittu siten, että ne huomioimalla: a) opit b) saat arvosanan
Osasuoritukset Kurssin läpäisy edellyttää hyväksyttyä arvosanaa harjoitustehtävistä. Lisäksi kustakin oppimateriaalin luvusta, johon liittyviä tehtäviä teet, on lähetettävä lyhyt palaute. Kolmas ja viimeinen osasuoritus on kurssipalautekysely joukukuussa. 5 Palauteosiot eivät vaikuta arvosanaan. Tehtäväarvosana määrää suoraan kurssiarvosanan.
Harjoitustehtävät: kierroksia Tehtävät jakautuvat ajallisesti kierroksiin 1-12. Jokaisella kierroksella on deadline, johon mennessä kierroksen tehtävät on palautettava. Ensimmäisen kierroksen DL on ke 17.09. klo 12:00 päivällä. Siis jo ennen toista luentoa! Seuraavien kierrosten DL:t yleensä viikon välein edellisestä.
Harjoitustehtävät: tasoja Tehtävät jakautuvat sisällöltään tasoihin A, B ja C. A-taso: kaikille pakollisia vähimmäistavoitteisiin liittyviä asioita arvosana 1 B-taso: erittäin suositeltuja kaikille, jotka aikovat ottaa jatkokursseja arvosanat 2 ja 3 C-taso: vapaaehtoisia; niille, jotka haluavat oppia mahdollisimman paljon arvosanat 4 ja 5 Lisätietoja oppimateriaalin sisältämässä kurssiesittelyssä.
Millaisia tehtäviä on luvassa? Seuraavaksi poimintoja eri kierroksilta.
Kierros 1 (taso A) Kokeile valmiin ohjelman (kokemuspäiväkirja) käyttöä ohjelmointiympäristössä ja tee siihen pieni muutos. Kokeile yksittäisten käskyjen antamista tietokoneelle (esim. laskutoimitukset). Laadi pieniä "ohjelmanpätkiä", jotka esim. sakottavat pelaajalta pisteitä, muuntavat mittayksiköstä toiseksi yms.
Kierros 2 (taso A) Selvitä, millaisista osista annettu sovellusohjelma koostuu ja miten ne toimivat yhteen. Toteuta ohjelmakomponentti, jonka avulla voidaan kuvata pankkitilejä ja kirjata erilaisia pankkitapahtumia (otot, panot, siirrot).
Kierros 3 (taso A) Perehdy syvemmin siihen, miten kokemuspäiväkirjasovellus toimii. Toteuta ohjelma, jonka avulla voidaan käsitellä "nettihuutokauppaan" myyntiin laitettuja esineitä. Laadi yksinkertainen ohjelma jalkapallopelien tulosten kirjaamiseen.
Kierros 4 (tasot A ja B) Toteuta uusia ominaisuuksia jalkapallopelien kirjanpitoohjelmaan. Korjaa annettu ohjelma, jonka avulla voi käsitellä vaikkapa opiskelijajärjestön excuilmoittautumisia.
Toteuta yksinkertainen autoilusimulaattori. Kierros 5 (tasot A ja B) Laadi ohjelma vaalitulosten laskemiseksi vaalipiireittäin. Laadi ohjelma, joka selvittää, kuka tunnettu henkilö on piilotettu tähän sotkulta näyttävään kuvaan.
Kierros 6 (tasot A ja B) Laadi ohjelma, jolla voidaan käsitellä puhelimista tutunlaista multi-tap-syötettä. Korjaa virheitä annetusta junapaikkavarausohjelmasta.
Laadi raittiuspeli nimeltä Viinaharava. Kierros 7 (tasot B ja C) Paranna aiemmin laaditun huutokauppaohjelman laatua.
Kierros 8 (tasot B ja C) Tutustu annettuun "robottisimulaattoriin" ja täydennä sitä mm. erilaisilla tekoälyillä varustetuilla "lemmenboteilla", "psykoboteilla", jne.
Kierros 9 (tasot B ja C) Vaalitulosohjelman parantelua PEEVELI!
Kierros 10 (tasot B ja C) Ota oppimateriaalin esittelemä annettu alkeellinen tekstiseikkailupeli ja lisää siihen ominaisuuksia... ja sitten: Toteuta ihan minkälainen seikkailupeli vaan! Luovuus sallittua!
Kierros 11 (tasot B ja C) Laadi hölmö mutta opettavainen sanamuunnosohjelma: tarja halonen harja talonen
Kierros 12 (taso C) Jatka robottiprojektin parissa ja laadi "robottiheimoja". Kukin heimo osaa sille ohjelmoituja sääntöjä apuna käyttäen nahistella muiden heimojen kanssa virtuaalisessa robomaailmassa. Opiskelijoiden laatimien robottiheimojen välillä järjestetään turnaus.
Tarinan opetus Joistain kursseista selviää muodollisella arvosteluperusteiden täyttämisellä osaamatta oikeasti juuri mitään. Varsinkin kiireessä on kiusaus pikapäntätä arvostelun kannalta keskeiset pointit oppimatta oikeasti paljonkaan. Tämän kurssin tehtävät ovat pääosin soveltavia. Niihin ei voi poimia suoraa vastausta luentomateriaalista tai mistään oppikirjasta. Niissä ei pärjää tärpeillä. Usein ohjelmoinnista innostutaan sen verran, että tämä on ongelma korkeintaan aluksi. ;-) Niiden läpäiseminen on kurssisuorituksen kannalta välttämätöntä.
Kohti taitoja Ohjelmoinnin osaaminen ei edellytä pelkästään tietoja vaan myös taitoja. Taitoja ei voi vaan lukaista kirjasta tai kuulla luennolla. Taitojen oppiminen vaan tuppaa viemään aikaa...
Treenaa ohjelmointiaivoasi Kognitiotiede kertoo: Aivo on vähän kuin lihas sikäli, että treenaaminen parantaa sen toimintaa. Lisäksi asia on aihepiirikohtainen: Vaativassa asiassa (urheilulaji, shakki, ohjelmointi,...) oppii hyväksi vain harjoittelemalla ja harjoittelemalla lisää. Oikeasti hyväksi tuleminen vaatii vuosien harjoittelun juuri kyseisessä asiassa. Kova ÄO ei pelasta harjoittelun tarpeelta. Kurssilla sinun tulee alkaa treenaamaan ohjelmointiaivoasi.
Treenaa ohjelmointiaivoasi Oppimisen (ja kurssisuorituksen) kannalta omalla panostuksellasi on väliä! Kurssi on kunto-ohjelmasi. Kurssihenkilökunta toimii personal trainerina, mutta ei voi harjoitella puolestasi.
Kurssimateriaali Kuntosalina toimii Goblin-oppimisympäristö: https://greengoblin.cs.hut.fi/o1_current/ (linkki löytyy Nopasta) Goblinista löytyvässä kurssimateriaalissa yhdistyvät harjoitustehtävät sekä oppikirjaan verrattavissa oleva lukemisto. Kurssi suoritetaan lukemalla materiaali ja tekemällä siihen upotetut tehtävät. Kurssin suorittaminen edellyttää siis huolellista lukemista ja tekemistä, kurssin edetessä kasvavassa määrin jälkimmäistä.
Työtä riittää 5 op = n. 130h aktiivista opiskelua tyypilliselle kolmosen saavalle opiskelijalle. Se on aika paljon. Kaiken tarjotun materiaalin läpikäyminen (ja viitosen saaminen) voi vaatia vielä enemmän työtä. On useita kierroksia, joihin voi hyvin mennä pari kokonaista, aktiivista työpäivää.
Ensimmäisillä luennoilla pitäisi painottaa jatkuvaa työntekoa monella (kuten itselläkin) opiskelutapana lukiosta on kuukauden ihmettely, pieni lukeminen ja loppurutistus se ei toimi ollenkaan. kurssipalautetta aiemmalta vuodelta
Työtä ei tarvitse tehdä yksin Parityö Harjoitusryhmät Keskustelupalsta (Piazza) Keskustelukanava (IRC) Luennot ja viikkokoosteet
Harjoitukset saa tehdä pareittain! Kannattaa etsiä työpari heti kurssin alussa. Voit käyttää apuna kurssin Piazza-palstaa. Voit jäädä tämän luennon jälkeen salin etuosaan pariutumaan. Lisää parityöstä kurssimateriaalin 1. luvussa. Yksinkin on lupa tehdä.
Harjoitusryhmät Tule tekemään tehtäviä omaan tahtiin ja kysymään neuvoa. 38 tuntia viikossa alkaen heti tämän luennon jälkeen. Ajat ja paikat löytyvät Nopasta. Ei erillistä ilmoittautumista. Voit käydä vapaasti.
Piazza ja IRC Keskustelufoorumi webissä Piazza-järjestelmässä Voit kysellä asioita henkilökunnalta tai muilta opiskelijoilta. Linkki kurssisivuilla IRC-kanava Reaaliaikaista juttelua kurssista. Ohjeita käyttöön kurssisivujen irkkioppaasta.
Luennot Tämän johdannon jälkeen vain seuraavat kaksi. Toinen luento viikon päästä ke 17.9. klo 14-16. Johdanto toiseen tehtäväkierrokseen. Ensimmäinen viikkokooste opiskelijapalautteen ja kysymysten perusteella (myöhemmät vain netissä). Päätöstilaisuutena toimiva "luento" ke 10.12. klo 14-16. Katsotaan, mihin on päästy ja mitä voisi tehdä seuraavaksi. Robottiturnauksen finaalit, tekstipelipalkintoja, yms. kivaa. Nämäkin luennot salissa T1.
mooc.aalto.fi
Tervetuloa! Työmääräpelottelusta huolimatta kurssi on täysin suoritettavissa, kunhan on aktiivinen! Olemme yrittäneet suunnitella kurssin mahdollisimman opiskelijaystävälliseksi, jotta työtuntisi olisivat tehokkaita ja oppisit paljon. Me kurssihenkilökunnassa pyrimme näkemään vaivaa, jotta kurssi onnistuisi. Toivottavasti jaksat myös panostaa kurssiin, vaikka se onkin työläs ja haastava!
Sitten asiaan
Ohjelmointikieli Tietokoneen ohjeistamiseen tarvitaan tarkoitukseen sopiva kieli, ohjelmointikieli. Vaihtoehtoja on paljon. Kurssilla käytetään erästä kieltä, mutta opitaan samalla yleisempiä ohjelmoinnin periaatteita.
Ohjelmointiympäristö: Eclipse Ohjelmoijat käyttävät apuohjelmia valmiita työkaluja, jotka auttavat uusien ohjelmien laatimisessa. Apuohjelmia on paljon erilaisia. Kurssilla käytämme apuna ohjelmaa nimeltä Eclipse ja sen Scala IDE -nimistä lisäosaa.
Tärkeää juuri nyt Toinen luento on viikon päästä samaan aikaan. Ensimmäinen deadline on ennen sitä, ke 17.9. keskipäivällä. Luennolla ei jatketa siitä, mihin tämä luento jäi, vaan siitä, mihin pääsette tutustumalla 1. kierroksen materiaaliin huolella ja tekemällä siihen liittyvät tehtävät. Aloita ajoissa! Harjoitusryhmiä pidetään alkaen klo 16:15 tänään. Kyseinen ryhmä luokassa Maari-A. Lisää ryhmiä joka arkipäivä.