CSE-A1110 Ohjelmointi 1 Luento 1, syksy 2015 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
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 menevät aluksi helposti ohi, kun opittavat käsitteet eivät ole vielä tuttuja. Tarkastellaan kurssia konkreettisesti, arvioinnista lähtien ja sisältöön päätyen.
Oppimis- vs. arvosanatavoitteet Arvosteluperusteet on laadittu siten, että ne huomioimalla: a) opit b) pääset tekemään kivoja asioita c) saat hyvän arvosanan Millaisia asioita kurssilla pitää oppia tekemään? Millaisella panostuksella tästä kurssista selviää? Kuinka ajoissa pitää havahtua deadlineen? Seuraa luento loppuun ja tee omat johtopäätöksesi.
Osasuoritukset Tärkein osasuoritus: harjoitustehtävät. Lukukohtainen palaute: kustakin oppimateriaalin luvusta, johon liittyviä tehtäviä teet, on lähetettävä lyhyt palaute. Vähintään aika-arvio, osassa myös sanallinen palaute. Kolmas ja viimeinen osasuoritus on kurssipalautekysely joulukuussa. Palauteosiot eivät vaikuta arvosanaan. Tehtäväarvosana määrää suoraan kurssiarvosanan. 5
mooc.aalto.fi
Harjoitustehtävät Tehtävät jakautuvat ajallisesti kierroksiin 1-12. Jokaisella kierroksella on deadline, johon mennessä kierroksen tehtävät on palautettava. 1. kierroksen DL on ke 16.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 1. luvussa.
Goblin Kurssin materiaali on koottu Goblin-järjestelmään. https://greengoblin.cs.hut.fi/o1_current (linkki löytyy myös MyCoursesista ja Oodista)
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 ohjelma 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äkirjaohjelma toimii. Toteuta ohjelma, jonka avulla voidaan käsitellä "nettihuutokauppaan" myyntiin laitettuja esineitä. Laadi 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) Paranna aiemmin laaditun vaaliohjelman laatua. Ota oppimateriaalin esittelemä annettu alkeellinen tekstiseikkailupeli ja lisää siihen ominaisuuksia. Ja sitten...
Kierros 10 (tasot B ja C) Toteuta ihan minkälainen tekstiseikkailupeli vaan! Luovuus sallittua! PEEVELI!
Kierros 11 (taso 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.
Kierros 13 Kurssipalautekysely, ei tehtäviä
Tarinan opetus 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 muutenkin 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, jne.) 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.
Ohjelmointitreenit 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ö. 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ä jopa 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 Keskustelupalstat (Piazza, IRC) Viikkokoosteet Luennot
Harjoitukset saa tehdä pareittain! Kannattaa etsiä työpari heti kurssin alussa. Voit käyttää apuna esim. kurssin Piazza-palstaa. Lisää parityöstä kurssimateriaalin 1. luvussa. Yksinkin on lupa tehdä.
Harjoitusryhmät Tule tekemään tehtäviä omaan tahtiin ja kysymään neuvoa. 40 tuntia viikossa alkaen heti tämän luennon jälkeen. Ajat ja paikat löytyvät Goblinista. Ei erillistä ilmoittautumista. Voit käydä vapaasti.
Piazza ja IRC Piazza-niminen keskustelupalsta webissä Voit kysellä asioita henkilökunnalta tai muilta opiskelijoilta. Linkki kurssisivuilla. IRC-kanava #ohjelmointi1 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 16.9. klo 15-17. Johdanto toiseen tehtäväkierrokseen. Ensimmäinen viikkokooste opiskelijapalautteen ja kysymysten perusteella (myöhemmät vain netissä). Sali AS2, TUAS-talo. Päätöstilaisuutena toimiva "luento" ke 9.12. klo 15-17. Katsotaan, mihin on päästy ja mitä voisi tehdä seuraavaksi. Robottiturnauksen finaalit, tekstipelipalkintoja, yms. kivaa. Sali T1, Tietotekniikan talo.
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.
Sitten asiaan
Ohjelmointi? Ohjelmointi on ohjeistuksien laatimista tietokoneelle. Kun tietokone suorittaa ohjelman, niin tapahtuu ohjelmoijan määräämiä asioita. Ohjelmoija voi luoda mm. sovelluksia. Sovellus tarjoaa tiettyyn aihepiiriin liittyviä palveluita ihmisille. Esim. tekstinkäsittelyohjelma, sähköpostiohjelma, tietokonepeli.
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 16.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 17:15 tänään. Luokka Maari-A. Lisää ryhmiä joka arkipäivä.