Arkisto kohteelle 19 tammikuun, 2008

Epilogi

Nyt se on vihdoin ohi… (rumpujen pärinää) …studio1!! Kaikki esseet ja toinen toistaan epäselvemmät käsitekartat on palautettu, ohjelmointitehtävät on suoritettu hyväksyttävästi, robot ja botit on lähetetty maailmalle, kauhulla odotettu tentti meni kuin menikin läpi ja näiden sanojen myötä myös blogi-osuus alkaa olla kasassa! Jälkeenpäin, 14 opintopistettä viisaampana (?), on hyvä miettiä, mitä tästä kaikesta jäi käteen.

Koko syksyn ajan haaveili ja uneksi siitä ihanasta päivästä, jolloin tämä KAIKKI olisi viimein ohi. Nyt kun tuo päivä on vihdoin käsillä, ei olo olekaan aivan niin euforinen kuin etukäteen ajatteli – lähinnä tuntuu jotenkin tyhjältä. Kurssista ei ole vielä kulunut ihan niin pitkä aika, että siitä uskaltaisi puhua positiiviseen sävyyn, mutta uskon että jossain vaiheessa aika kultaa muistot, tässäkin asiassa. Jo nyt ajoittaiset mietteet kurssista ovat pelottavan lämpimät. Syksyn mittaan hyviä koodin parissa vietettyjä hetkiä tuntui olevan harvassa, vaikka niitäkin toki löytyi. Viime hetken paniikkikoodaukset muiden epätoivoisten kohtalotovereiden kanssa olivat välillä kaikessa surkeudessaan mitä parhainta ajanvietettä, ja ainakin niiden aikana pääsi tutustumaan muihin innokkaisiin pikku koodareihin. Kurssin loppusuoralla tuntuu hassulta ajatella kokonaista kevättä ilman ohjelmointia – kuluneiden kuukausien aikana elämä taisi pyöriä (surullista kyllä) lähestulkoon täysin Javan ympärillä.

Viikottaiset deadlinet, ryhmätyöt ja loputtomalta tuntuneet nullpointereitten metsästämiset aiheuttivat välillä lähes sietämätöntä stressiä kun aika, kiinnostus ja jaksaminen ei vain tahtonut riittää. Aika ajoin tuli eksyttyä erinäisten oppilaitosten abi-info –sivustoille etsimään opinahjoa, jonne paeta Javaa. Kauhulla odotetun joululoman ja sen mukanaan tuoman projektin myötä suhtautumiseni Javaan kuitenkin muuttui; jos nyt ei myönteiseksi niin ainakin ei-niin-negatiiviseksi. Hävettää myöntää monien angstisten ”enenääikinäkoodaa” –uhoamisten jälkeen, että ei studio1 ollutkaan niin kamala kuin miltä se alkukurssista tuntui.  

Paitsi kohtalaiset ohjelmointitaidot, on tämän puoli vuotta kestäneen Java-matkan aikana tarttunut mukaan paljon muutakin. Oma ajattelu on kehittynyt parempaan suuntaan, ajankäytön hallinta petraantunut, samoin kuin kyky työskennellä valtavan paineen ja kiireen alla. Näin jälkikäteen harmittaa ainoastaan se, että alkusyksystä oma motivaationi oli niin hukassa, etten heti alusta asti panostanut tähän työtä vaativaan kurssiin täysillä. Itse kurssissa ja sen käytännöissä useampikin yksityiskohta jäi kaivelemaan, mutta koska käsittelin niitä jo yhdessä portfoliovastauksessani, en enää listaa niitä tähän.  

Kaikesta huolimatta olen kuitenkin iloinen siitä, että kävin kurssin nimeltä studio1 ja ennen kaikkea että selvisin siitä – lähes vammoitta.

-Ulla

Loppupuheenvuoro

Vihdoin ja viimein voi sanoa, että studio1 on loppumaisillaan!! Tätä hetkeä on odotettu jo syksystä lähtien. 14op:n mammuttikurssi, joka herättää ristiriitaisia tunteita itse kussakin. Onko studio1:n jälkeistä elämää edes olemassa? Niin kiinteästi tämä kurssi liittyi phuksisyksyyn, että en ole varma vastauksesta. Syksy koostui kolmesta kurssista: studio1:stä, matikasta ja tuotantotalouden peruskurssista. Varovaisesti arvioisin, että käytin neljä kertaa enemmän aikaa ensimmäiseen kuin kahteen viimeiseen yhteensä. Jokaviikkoiset deadlinet painoivat päälle ja ohjelmointitehtävien kanssa painiminen sai aikaan itkua ja ilon huudahduksia. Mielessä oli vain, että tämä kurssi on päästävä läpi hinnalla millä hyvänsä.

Mitä itse ajattelen kurssista? Jälkeenpäin sen voisi tiivistää muutamalla adjektiivilla: kamala, kiva! ja phukseja yhdistävä. Kurssi herätti minussa todella vastakkaisia tunteita riippuen päivästä. Välillä kirosanat kaikuivat ja kirjat lentelivät seinille, kun mikään ei onnistunut ja  ajattelin, etten ikäpäivänä tule saamaan tehtäviä valmiiksi ennen deadlinea. Oli aikoja, jolloin vihasin Javaa koko sydämeni pohjasta ja mietin, että onkohan tämä nyt se oikea opinahjo minulle. Vaikeuksien kautta voittoon! Onneksi oli myös hetkiä, jolloin onnistumisen riemu valtasi koko kehoni ja tuntui kuin olisin irtautunut ruumiistani. Oli aivan mahtavaa huomata, että minähän osaan ja p***ele minähän palautan tehtävän ajoissa, täysin valmiina. Koodaaminen oli parhaimmillaan kivaa ja antoisaa, en olisi viime kesänä voinut kuvitellakaan, että tulen sanomaan joskus noin. Niin siinä kuitenkin kävi. Onhan se studio1 mahtava kurssi jälkeenpäin ajateltuna. Lukuisat päivät ja illat, joita tuli vietettyä paniikissa phuksitovereiden kanssa koodatessa, loivat tietynlaista yhteishenkeä porukkaan.

Kurssin työläydestä voisi puhua yhtä sun toista. En lähde tässä kritisoimaan onko 14op liian vähän tästä kurssista. Käteen jäi vaikka mitä. Java-ohjelmoinnin perusteiden lisäksi koen oppineeni hiukan suunnitelmallisuutta ja ajankäytön hallintaa. Kurssi sai arvoisensa päätöksen itsenäisesti suoritetulla ohjelmointiprojektilla, jonka jälkeen jokainen voi varmasti sanoa osaavansa ohjelmoida javalla.

Kurssin sisältämät osa-alueet olivat kukin hyödyllisiä, jotkut enemmän, jotkut vähemmän. Tärkeimpinä ja ehdottomasti opettavaisimpina pidin ohjelmointitehtäviä. Itse tekemällä asiat oppii ja tehtävät käsittelivät monipuolisesti tärkeimpiä Javan osa-alueita. Tehtävistä oli saatu jopa suhteellisen mielenkiintoisia, kiitos Jannen ja Villen (kai). Teoriatehtävät olivat vähän väkisin vääntämistä ja niistä saatu hyöty olisi voinut olla suurempikin. OLO-sessiot olivat mukavaa vaihtelua ja avasivat joitain ohjelmointiin liittyviä ongelmia ihan kiitettävästi. Tosin välillä ”oloilu” oli hiukan epäaktiivista ja saatu hyöty ei kovinkaan merkittävää. Blogi toimi fiilisten purkajana sekä välineenä viestiä oloryhmän välillä. Hirveän hyödyllinen se ei ollut, eikä varmaan ollut tarkoituskaan. Ihan kiva lisä, johon purkaa tunteita ja joka toivottavasti kannustaa meidät kaikki kirjoittamaan joskus omaa blogia.

Voisiko kurssin toteuttaa paremmin tai olisiko jotakin muutettavaa? Pääpiirteittäin mielestäni kurssi on toimiva ja sen järjestäminen heti ensimmäisen vuoden syksyllä on perusteltua (paska heti pois alta, eiq). Muutama asia on, joihin haluaisin puuttua. Ensinnäkin alkuun tarvittaisiin mielestäni hiukan enemmän johdatusta ja vaikka pari ylimääräistä luentoa, jotta ohjelmoinnin aloittaminen ei olisi niin hirveän vaikeata. Toisekseen arvosteluperusteita voisi hiukan päivittää. Esseiden painoarvo on aivan liian matala ja se heijastuu suoraan motivaatioon. Blogilla taas on suhteellisen korkea painoarvo. Näitä kahta voisin jotenkin tasapainottaa.

Eclipse pysyy kiinni toistaiseksi. En osaa sanoa tulenko tarvitsemaan Javaa tulevaisuudessa, mutta en myöskään pakoile sen käyttöä. Menetetyn joululoman jälkeen koulu taas jatkuu, tällä kertaa ilman studio1:stä, eikä korvaavaa kurssia varmasti löydy vaikka hakimalla hakisi. Olen iloinen, että kurssi on ohi, mutta kaikesta huolimatta se oli ihan mukava kurssi. Kohti uusia haasteita ja kiitoksia OLO-ryhmällemme menneestä syksystä!! 🙂

-Olli

Mitä paljastetaan kaikille, mikä pidetään omana tietona? Siis näkyvyysmääreistä

Mitä hyötyä on erilaisista näkyvyysmääreistä: public, private, protected? Miten ohjelmointiin vaikuttaisi, jos kaikki muuttujat olisivat tyyppiä public? Entäpä, jos kaikki olisivat tyyppiä private?

Pitkälle syksyyn pärjäsin sillä tiedolla, että attribuutit määritellään privateiksi ja metodit publiciksi. Välillä ohjelmointitehtävissä kyllä neuvottiin metodille jokin muu näkyvyysmääre, private tai protected, ja niin sitten tein enempää miettimättä, että miksi näin. Jo kurssin alussahan tuli esille, mitä tarkoittaa, jos näkyvyysmääre on public tai private. Private-määriteltyä voi käyttää vain luokan sisällä (tai luokan sisäluokassa), ja public-määriteltyä kaikkialla, siis myös muissa luokissa. Harvinaisempi ja minulle vähiten tuttu on protected, jonka opin tuntemaan vasta myöhemmin. Sehän laajentaa näkyvyyden luokan sisältä myös sen jälkeläisiin.

Aloin miettiä näkyvyysmääreiden merkitystä vasta viimeisissä tehtävissä, vaikka ne ovatkin melko merkityksellinen ja  näkyvä osa ohjelmointia. Asia tuli esiin apumetodeita tehdessä, niitähän pitää voida kutsua vain kyseisessä luokassa metodissa, jonka avuksi ne on tehty. Muistin myös ohjeen, että näkyvyydeksi pitäisi laittaa mahdollisiman suojaava määre. Ja niin eivät metodini enää olleetkaan aina public.

Attribuuttien kohdalla taas en muista käyttäneeni muuta näkyvyysmäärettä kuin privatea. Toisaalta muulle ei usein taida olla tarvettakaan tai ei se ainakaan hyvä vaihoehto yleensä ole. Attribuutteihin kun ei ole yleisesti tarkoitus päästä käsiksi muissa luokissa. Mutta jos siihen on tarvetta, on parempi tehdä publiciksi määritelty metodi, joka tarjoaa attribuutin muiden luokkien käyttöön, kuten mahdollisuuden muuttaa tai tiedustella attribuutin arvoa. Jossain tapauksissa attribuutin näyttäminen myös luokan jälkeläisille voisi olla perusteltua eli määritellä se protectediksi, mutta attribuutin jakaminen kaikelle maailmalle publicilla on kyllä yleensä liian avointa. Kuitenkin jos attribuutti on jokin pysyvä vakioarvo ja sitä tarvitaan muissa luokissa, voi public-määrettä hyvin käyttää.

Jos ainut näkyvyysmääre vaihtoehto olisi private, tarkoittaisi se, ettei mitään luokkien metodeita voisi kutsua muissa luokissa. Luokat eivät voisi kutsua edes toistensa konstruktoreja, eli luoda luokkien uusia ilmentymiä. Ohjelman kannalta tämä ei toimisi, koska pääohjelmaluokka ei saisi yhteyttä muihin luokkiin, eli ne jäisivät käyttämättä. Jos taas kaikki olisi määritelty määreellä protected, seuraus olisi sama, paitsi jos ohjelman luokat periytyisivät toisistaan, jolloin kaikki voisivat käyttää aina ylempien luokkiensa metodeita. Monimutkaisemmissa ohjelmissa näin yksinkertaisia luokkakaavioita harvoin voisi toteuttaa.

Kaiken olessa taas määritelty publiciksi, kaikki metodit olisivat kaikkien luokkien käytössä, mikä ei ehkä olisi kovin suuri ongelma. Niin olisivat myös attribuutit eli kaikki voisivat muuttaa attribuuttien tietoa. Itse asiassa en tiedä, mikä siinä sitten kauheasti haittaisi, jos vain koodaisi siten, ettei luokissa koskisi toisten luokkien attribuutteihin. Eiväthän ne silloin muuttuisikaan perättömästi. Toisaalta, kun ajattelee asiaa olioiden kautta ja muistaa, että attribuutti on olion ominaisuus, on privateksi määritelty attribuutti paras. Tällöin olio voi itse kontrolloida attribuuttien käyttöä, esimerkiksi määrittelemällä attribuuttia muuttavan metodin, jossa myös määritellään, millaiset arvot attribuutille voi antaa. Muut luokat voivat muuttaa attribuuttia vain tämän metodin kautta, eli olion tahdon mukaisesti. Näkyvyysmääreitä kannattaa siis miettiä, vaikka ne melkein luonnostaan alkavatkin tulla metodeille publiciksi ja attribuuteille privateiksi. Ja itseäni ainakin auttaa sääntö, että näkyvyysmääreeksi kannattaa valita mahdollisiman suojaava määre.

-Anu

Java II

Toisesta Java-tehtävästä on vierähtänyt jo monta kuukautta, ja näin jälkeenpäin tehävänantoja lueskellessa lähinnä naurattaa omat tuskailut ko. tehtävän parissa.

Heti tehtävän alkuun silmille iski aivan uusi termi – enumeraatio. Sen tarkoitus ei ehkä täysin auennut vielä tässä vaiheessa, mutta tarkat ohjeet auttoivat alkuun. Enumeraatio määritellään tehtävänannossa ”erityiseksi luokaksi, jossa on valmiiksi määritelty kaikki mahdolliset luokan ilmentymät eli arvot”. Myöhemmissä tehtävissä enumeraation idean ymmärsi ehkä paremmin; ainakin sen käyttö toi koodiin huomattavaa selkeyttä.

Ilmansuunta-luokassa jouduimme pähkäilemään ”vaikeiden” metodeitten parissa; suureksi ongelmaksi muodostui esimerkiksi se, kuinka saada selville jonkin ilmansuunnan vastakkainen suunta, kun käytössä on ennestään vain metodi, joka palauttaa ilmansuunnan vasemmalla puolella sijaitsevan suunnan. Huah. Näinkin yksinkertaisten, melko vähän loogista päättelyä vaativien metodien muotoilu tuntui suorastaan käsittämättömän vaikealta. Paperi ja kynä olivat suuressa osassa monen metodin toteutuksessa.

Haastetta toi mukanaan myös Map-hakurakenne sekä etenkin suunnattoman vaikeilta tuntuneet kaksiulotteiset taulukot. Erityisen hankalalta tuntui se luonnoton ajatus, että taulukkoon sijoitetun koordinaatiston y-koordinaatti kasvoi pohjoisesta etelään – ei suinkaan toisinpäin. Uusia asioita olivat myöskin for- ja switch-lauseet, joihin onneksi javaraamattu aka kalakirja toi valaistusta.

Hauskin vaihe tehtävässä oli ehdottomasti se kun pääsi testailemaan omaa koodiaan valmiiksi tarjotun graafisen käyttöliittymän avulla. Oli mahtavaa nähdä jotain aivan konkreettista koneen näytöllä!

Tässä vaiheessa ei ainakaan itselläni ollut vielä minkäänlaista käsitystä Javan periaatteista, ja koodin kirjoittelu olikin aikamoista hakuammuntaa ja epämääräistä kokeilua, mutta ainakin arvosanani nousi pari pykälää ensimmäisestä tehtävästä. Nyt muutamaa ohjelmointikierrosta ja yhtä projektia viisaampana voi ainakin todeta että _jonkinlaista_ oppimista kurssin aikana ihan oikeasti on tapahtunut! 🙂 

-Ulla

JAVA 1 (hämäriä muistijälkiä)

Onpa jännä kirjoitella ensimmäisestä javatehtävästä näin jälkikäteen, kun kokemusta on karttunut jonkin verran ohjelmoinnista. Nyt kun miettii ensimmäistä javatehtävää, se tuntuu lähinnä säälittävän helpolta ja en voi ymmärtää vaikeuksia, mitä se aiheutti silloin. Mutta yritän parhaimpani mukaan palata syyskuun sateisiin (tosin nykyään sataa tammikuussakin) fiiliksiin.

Ensimmäinen javatehtävä oli vaikea! Tehtävänä liittyi sieniin, arkkuihin ja taisteleviin olentoihin. Aloittaminen oli huomattavan vaikeata, koska ei tiennyt yhtään mitä tekisi. Mikä ihme on konstruktori? Entäpä main-metodi? Yksinkertaisen Esine-luokan koodaaminenki sai aikaan melkoista päänvaivaa. Assarien apu oli todella tärkeää ja toivottua. Loppujen lopuksi sain tehtävän kuitenkin valmiiksi tehtyä, joitakin puutteita viimeiseen osatehtävään jäi, mutta ei mitään suurempaa.

Vaikka jälkikäteen tuntuu, että tehtävä oli todella yksinkertainen ja helppo, se ei todellakaan ollut helppo aloittelevalle koodarille. Olisin kaivannut alkuun jonkinlaista johdantoa ja opastusta ohjelmoinnin mystiseen maailmaan…

-Olli

Miksi ohjelmaa kannattaa jakaa eri luokkiin? Miksei riitä, että on vain yksi luokka, jossa on kaikki koodi?

Java on monen muun ohjelmointikielen tapaan puhtaasti olio-pohjainen. Mitä tarkoitetaan olio-pohjaisella? Ideana on jakaa ohjelma moneen osaan eli luokkaan ja muodostaa luokista ilmentymiä eli olioita. Miksi näin kannattaa tehdä vai kannattaako edes? Eikö yksi luokka riiittäisi hoitamaan kaiken tarpeellisen.

Luulisin, että yhdessä luokassa pystyy tekemään kaiken saman mitä monessa eri luokassa ja luultavasti ilman metodejakin pärjäisi pitkälle. Main-metodiin vaan kaikki koodi ja lopputulos saattaisi olla sama. Koodin jakamisessa moneen luokkaan on kyse ennemminkin selkeydestä. Varsinkin kun kyseessä on hiukan isompi ohjelma, on huomattavan fiksua pilkkoa se moneen osaan eli tavallaan jakaa iso ongelma moneksi pieneksi. Selkeämmän lopputuloksen lisäksi tälläinen ratkaisu tekee virheiden etsimisestä paljon helpompaa ja mahdollistaa ohjelman muokkaamisen jälkikäteen paremmalla menestyksellä. Esimerkiksi useat ohjelmointioppaat suosittelevat pitämään logiikan ja käyttöliittymän erillään toisistaan. Tämä juuri sen takia, että käyttöliittymän ulkoasua voi muokata mieleisekseen jälkikäteen, eikä tarvitse kajota logiikkaosioon.

Monen luokan käyttö on perusteltua lisäksi sen takia, että varsinkin isot ohjelmat eivät ole vain yhden ihmisen käsialaa ja niihin tullaan mahdollisesti jonkun muun toimesta todennäköisesti kajoamaan vielä tulevaisuudessa. On tärkeää, että ohjelma on selkeä ja sen rakenne helposti ymmärrettävissä. Henkilön, joka ei ole ennen kyseistä ohjelmaa nähnyt, on helpompaa päästä jyvälle, mikäli koodi on jaoteltu selkeisiin osa-alueisiin, luokkiin, joilla on yksi määrätty tehtävä. En voi kuvitellakaan millaisen sekamelskan saisi aikaan tekemällä ison ohjelman yhteen luokkaan.

Onko monen luokan käytössä haittapuolia? Itse en ainakaan tiedä, enkä nopealla googlaamisellakaan löytänyt mitään suurempia haittapuolia. Luulisin, että jotakin ohjelman hitauteen liittyviä ongelmia voi muodostua jos viittauksia eri luokkiin vilisee ristiin rastiin. Tiedä häntä. Itselläni haittapuolet esiintyivät lähinnä hermojen menemisenä luokkien välisten suhteiden kanssa, tämä luokka tuntee tuon luokan ilmentymän, tämä taas tuon, jne. Joskus tuntui, että olisi tosiaan ollut helpompi tehdä vain yksi iso luokka, niin ei olisi ollut ongelmia viittausten kanssa. Ongelmat kyllä ratkesivat aina lyhyen pohdinnan jälkeen ja tulos oli huomattavasti loogisempaa, kuin yksi iso luokka. Mielestäni monen luokan käyttö on erittäin perusteltua juurikin selkeyden takia.

-Olli

Miten ajatukseni ohjelmoinnista on muuttunut kurssin aikana?

Syksyn alussa mielikuvani ohjelmoinnista ei ollut kovin mukava. En oikein tiennyt, mitä se edes on, enkä ainakaan osannut kuvitella itseäni koodaamassa . Ajattelin ohjelmoinnin olevan nörttien puhaa pimeässä huoneessa, ja että tuloksena on vain sekavia rivejä nollista, ykkösistä ja muista merkeistä. Ohjelmoijalla taas tulisi olla ilmiömäisiä lahjoja ja suurta rakkautta tietokoneita kohtaan. 

Nyt kun olen itse joutunut ohjelmoimaan, on mielikuvani suurelta osin romuttunut. Kaikki alkoi ensimmäisen ohjelmointitehtävän harjoituksista, joissa huomasin, että koodi onkin sanoja ja että ohjelmointi perustuu johonkin logiikkaan. Logiikkaa en tosin vielä tajunnut, mutta tiesin, että sellainen on olemassa. Vielä oli epäselvää, mitä ohjelmoinnin tuloksena syntyy ja epäilinkin, ettei tässä tehtävässä ainakaan mitään järkevää. Ohjelmointi tuntui tarkoituksettomalta ja vielä tosi hämärältä. Oli vain kiire saada jotain aikaan ennen palautusta.

Siirryttiin seuraaviin tehtäviin, enkä vieläkään ymmärtynyt ohjelmoinnin tarkoitusta, sillä en ollut saanut oikeastaan mitään toimintaa aikaiseksi. Erityisen vaikeaa oli ymmärtää tietokoneen ”ajatusmaailmaa”, tai minusta tuntui ettei se ymmärrä minua. Yhteistä säveltä vain ei tuntunut löytyvän, ja se vähäinenkin alkuinnostus alkoi haihtua. Ohjelmointi alkoi taas tuntua kaukaiselta asialta, joka ei todellakaan ollut minun juttuni, vaikka vietinkin sen parissa suuren osan vapaa-ajastani. Koko homma oli pakkopullaa, jonka pariin piti palata aina kun aikaa oli. Yritin vain saada rivejä aikaan. En jostain syystä edes jaksanut yrittää ymmärtää tietokonetta ja miettiä algoritmejä  sen enempää. Koko ohjelmoinnista oli mennyt maku. Kunnes seikkailevat olennot ja sienet jäivät taakse ja siirryttiin sikobaniin.

Vihdoinkin alkoi tuntua, että nyt ohjelmoinnilla oli joku tarkoitus. Ruudulle ilmestyi jotain näkyvää oman koodin seurauksena. Välillä oli jopa liikettä. Koska pientä innostusta ohjelmointiin alkoi onnistumiskokemuksien myötä taas tulla, aloin uhrata enemmän ajatuksia koodaamiseen. Mietin tarkemmin, mitä koodini nyt tekeekään ja miten teen algoritmeja, joita tietokonekin ymmärtää. Erityisen hienon hetken, ehkä parhaan koko ohjelmointitehtävien ajalta, koin viimeisen tehtävän aikana, kun olin bussissa matkalla koodaamaan ja yhtäkkiä keksin miten kerron tietokoneelle erään asian, jota olin edellisen illan pähkäillyt. Tuntui, että vihdoinkin olin löytänyt yhteyden koneeseen. Harmi vain, että se tapahtui vasta nyt, sillä tämän onnistumisen hetken seurauksena en enää pitänyt ohjelmointia pelkkänä pakosta tehtävänä työnä, vaan se tuntui jopa mielenkiintoiselta! Mutta ilokseni huomasin, että tämä näkyi kuitenkin myös tämän viimeisen tehtävän arvosanassa, jossa oli tapahtunut pientä, mutta tosi palkitsevaa nousua edellisiin verrattuna.

Pitkän tauon jälkeen palasin taas ohjelmoimaan, kun aloitin projektin. Se ei ahdistanut ollenkaan, päinvastoin alkukankeuden jälkeen koodaaminen sujui kuin itsestään. Halusin itse ratkaista eteentulevia ongelmia ja sainkin ne omatoimisesti selvitettyä paria lukuunottamatta. Onnistumisen hetkiä koin taas moneen kertaan, ja ne lisäsivät innostusta, jonka seurauksena vietin ihan mielellään aikaa ohjelmointiprojektini parissa. Ja niinpä lopputuloksesta tuli parempi kuin alkusuunnitelma, jota jo pidin ihan utopisena alussa.

Nyt kun kurssi on ihan loppusuoralla, ajatukseni ohjelmoinnista ovat suhteellisen positiivisia, sillä  tiedän itse saavani sillä jotain aikaan. En kuitenkaan jää kaipaamaan koodaamista enkä todennäköisesti palaa koodaamisen pariin ilman hyvää syytä, sillä on monia asioita, jotka koen ohjelmointia paljon enemmän omiksi jutuikseni. Ohjelmoinnin oppiminen oli pitkä ja rankka tie, jota en haluaisi kulkea uudestaan, mutta lopputuloksesta olen iloinen, sillä on kiva ajatella osaavansa koodata edes vähän.

-Anu

Opiskelumenetelmistä

Ohjelmointi ei ollut minulle aivan uusi käsite tullessani infolle. Olin käynyt lukiossa lyhyen kurssin, joka käsitteli C++:an perusteita. Kurssista ei jäänyt minulle oikeastaan mitään käteen. Muistan ainoastaan, että tässäkin ohjelmointikielessä käytettiin if-lauseita ja taulukoita. Olioiden käyttöön ei ikinä tällä kurssilla perehdytty. Tässä vaiheessa omat oppimismenetelmäni ohjelmointiin liittyen olivat olemattoman huonot, en selvittänyt itse mitään asioita, yritin seurailla vaan tunnilla opettajan malliesimerkkejä ja niiden perusteella sain aina jotakin aikaiseksi.

Pari vuotta vierähti ja päätin hakea ja pääsinkin Informaatioverkostojen tutkinto-ohjelmaan. Tiesin, että syksyllä oli luvassa ohjelmointikurssi. Enpä juuri jaksanut stressata siitä. Ajattelin vain, että yksi kurssi sekin vain on muiden joukossa. Lisäksi jossain kaukana alitajunnassani ajattelin, että minulla on hiukan kokemusta ohjelmoinnista ja alku menee varmaan helposti. Näin siinä ei käynyt. Ohjelmointikokemukseni osoittautui täysin turhaksi, koska sitä ei käytännössä kuitenkaan ollut nimeksikään.

Studio1 alkoi melkoisella vauhdilla mielestäni. Aluksi oppimiseni ja työskentelyni ohjelmoinnin parissa perustui täysin viikottaisiin harjoituksiin. Olin aivan pihalla asioista ja takaraivossani kaikui vain, että tehtävä pitää saada tehtyä ennen deadlineä. Harkoissa assarit hokivat vain, että ”Luetaan sitä API:a”, jos yritti kysyä liian itsestäänselviä asioita. Vieroksuin muutaman ensimmäisen javatehtävän ajan Java API:a,  enkä saanut siitä juuri mitään irti. Alkukankeuden  ja muutaman deadlinen rikkaampana aloin selvästi kehittyä nimenomaan tiedon hankkimisessa itsenäisesti ja ehkä siinä sivussa hieman ohjelmoinnissakin. Ymmärsin, että ohjelmointi on asia, joka pitää itse kovalla työllä oppia. Enää en mennyt harkkoihin vain koodaamaan ja kyselemään turhuuksia. Nyt otin jo ennen harkkoja selvää ongelmallisista kohdista ja pyrin ratkaisemaan ne parhaani mukaan. Oli paljon mielekkäämpää mennä harkkoihin, kun oli valmiina jokin aidosti vaikea asia kysyttävänä. Näin ajan sai käytettyä huomattavasti hyödyllisemmin.

Oppimistekniikkani muuttui kurssin edetessä yhä enemmän ja enemmän itsenäisemmäksi. Enää en ollut niin riippuvainen assarien avusta. Netistä löytyy tuhansittain sivuja, jotka käsittelevät Java-ohjelmointia ja varmasti löytyy sivu, josta löytyy vastaavanlaisia koodiesimerkkejä, mitä itsellä on työn alla. Asian teoriapuoleen kunnolla perehtyminen on  hirvittävän työlästä. Se vaatii pitkäjänteisyyttä ja malttia. On huomattavasti helpompaa vaan ruveta koodaamaan ja kokeilujen kautta pyrkiä toivottuun lopputulokseen. Itsekin harrastin tätä edellämainittua tapaa koko kurssin ajan, mutta lopussa vähemmän ja vähemmän. Teoriapuoleen tutustuminen antaa kokonaisvaltaisemman kuvan siiitä, mitä on tekemässä ja muistijälki on varmasti pysyvämpi. On mahtava fiilis, kun saa toimimaan jonkun vaikean algoritmin pitkäjänteisen teorialukemisen jälkeen.

-Olli

Projekti <3

Joululoma tuli ja meni, ja niin kävi myös Studio1-kurssin loppuprojektille!!! Alkusyksystä niin odotettu ja kaivattu joululoma alkoi iltojen pimetessä tuntua yhä kammottavammalta ja vastenmielisemmältä ajatukselta, kun tiesi, mitä se toisi mukanaan (ennen kaikkea kun tiesi että se EI toisi mukanaan laiskan letkeitä lomapäiviä).

Oma projektini käynnistyi aluksi hyvin tahmeasti. Tenttiviikolla aikaansaatu tyhjä peli-ikkuna sai odotella täytettä välipäiviin asti, jolloin viimein oli pakko tarttua haasteeseen ja avata monta (ihanaa) päivää käyttämättä lojunut Eclipse. Muutama hyvin ansaittu lomapäivä kinkun ja konvehtien parissa tuntui tehonneen; koodausintoa pursusi projektin alkuvaiheilla niin runsaasti, että oma Kakuro-pelini oli joten kuten pelattavissa jo uudenvuoden rientojen jälkeen.

Koko ohjelmointiprosessi sujui yllättävän kivuttomasti. En kertaakaan törmännyt kovin suuriin ongelmiin, yleensä virheet paljastuivat helposti korjattaviksi ajatus- tai huolimattomuusvirheiksi, ja aikaa riitti sekä monien lisäominaisuuksien näpertelyyn että myös lähes normaalia muistuttavaan sosiaaliseen elämään. Hetkittäin loma jopa tuntui lomalta.

Deadlinen lähestyessä lisääntyi paniikin lisäksi myös ahneus, ja muutama ideoitu lisäominaisuus jäi toteuttamatta. Projekti kuitenkin valmistui ajallaan, valtavaa kiirettä ei missään vaiheessa tullut, ja hetkittäin koodaaminen tuntui jopa mukavalta, kun sai itse ideoida ja toteuttaa koko projektin alusta loppuun saakka. Hieman harmittaa näin jälkeenpäin, etten valinnut projektiaiheeksi jotakin vähän haastavampaa, mutta toisaalta oli mukava näpytellä koodia ilman että joitui tuskastelemaan päiväkausia erinäisten ongelmien kanssa. Haikeudella en tuota aikaa muistele (ainakaan vielä), enkä edelleenkään lämmennyt ohjelmoinnille, mutta prosessi opetti valtavan paljon, siitä ei mihinkään pääse. Täytyy olla ylpeä omasta panostuksestaan ja myös lopputuloksesta. Jes.

-Ulla

Miten kurssia voisi parantaa?

Nyt kun kurssi on vihdoinkin ohi, voi hyvillä mielin kritisoida erinäisiä asioita, jotka kurssin aikana jäivät mietityttämään ja ärsyttämään.

Esseiden ja käsitekarttojen liian pienestä painoarvosta kurssiarvosanaan en aio jauhaa, koska sitä aihetta on puitu jo liian moneen kertaan. (mutta edelleenkin painoarvo on naurettavan pieni!!!) Muuten näissä teoriatehtävissä ei ole mielestäni valittamista, oli mukava saada jotakin toisenlaista puuhaa pelkän ohjelmoinnin lomaan. 

Kun mietin, mitä studio1-kurssissa voitaisiin parantaa, ensimmäisenä itselleni tuli mieleen kurssin alku. Syksyllä koin ainakin henkilökohtaisesti, että kurssi lähti käyntiin aivan liian nopealla tempolla. Avausluennon ja iki-ihanan ”HelloWorld”-harjoituksen jälkeen meidät usutettiin samantien ensimmäisen ohjelmointitehtävän kimppuun lähes kylmiltään. Tiukka aikataulu jatkui läpi koko kurssin. Studio1 toki on vaativa ja rankka kurssi, ja niin sen kuuluukin olla; tietenkään ideana ei ole päästää opiskelijoita mahdollisimman helpolla ja vähällä työllä. Aivan kurssin alkuun olisin kuitenkin kaivannut hieman perusteellisempaa ohjausta Javan saloihin. Vaikka koodaus mielestäni onkin asia, jonka oppii parhaiten itse tekemällä ja kokeilemalla, kunnon pohjustus yleensä johtaa parhaaseen lopputulokseen. Nyt puolet kurssista kului ihmetellessä, mistä tässä kaikessa oikein on kysymys, ja kun asiasta alkoi vihdoin päästä kunnolla selville, olikin jo aika aloittaa oman projektin koodaus.  

Toinen asia, joka mietitytti syksyn aikana kovasti, oli OLO-sessiot. Niiden merkitys ei ole vieläkään aivan täysin auennut minulle. Toki nämä rennot tapaamiset olivat ihan mukava aloitus uudelle viikolle, mutta kovinkaan paljoa en koe niistä saaneeni irti. Tapaamisissa ei yleensä kovinkaan henkeviin tai hedelmällisiisn keskusteluihin päästy ja niiden aiheet liittyivät kovin löyhästi meneillä olevaan ohjelmointikierrokseen. OLO-ryhmien robo- ja botti-aiheiset ryhmätyöt eivät mielestäni myöskään olleet mitään loistoideoita. Yleensä tykkään työskennellä ennemmin ryhmässä kuin yksin, mutta näissä tapauksissa ryhmätyö ei vain tuntunut onnistuvan kunnolla. Mielestäni ohjelmointi ei ole asia, johon ryhmätyöt soveltuvat, etenkin jos ryhmän jäsenten koodaustaidot ovat kovin eritasoisia. Näiden ryhmätöiden parissa työskentely ei minulle paljoakaan opettanut, lähinnä ne aiheuttivat lisää työtä ja stressiä meneillä olevien ohjelmointitehtävien lisäksi. 

Joulukuussa selvitetty, kauan odotettu ja pelätty tentti oli myös lievä pettymys. Se tuntui kovin irralliselta osiolta verrattuna muuhun kurssiin. Itse sain tentistä suhteellisen hyvän arvosanan verrattuna ohjelmointitehtävieni tuloksiin, joten ei kai pitäisi valittaa, mutta en silti koe että tentti olisi oikeasti mitannut sitä, mitä syksyn aikana oli opittu. Studio1 on ainutlaatuinen kurssi, enkä ole ollenkaan vakuuttunut siitä, että tentti olisi välttämätön osa tällaista kurssia; todellinen osaaminen varmasti tulee esille paremmin varsinaisissa ohjelmointitehtävissä. Tentin osuus kurssiarvosanasta (10%) kuitenkin on mielestäni varsin kohtuullinen ja reilu. 

Koska melkein kaikki kurssin osa-alueet on jo käsitelty, on vielä sanottava muutama sana blogista. Blogin idea on toimiva, ja ajatus siitä tuntui ensin ihan hauskalta. Kurssin edetessä kuitenkin osoittautui, ettei blogi ja siihen kirjoittelu tuottanut kovinkaan kummoista tulosta. Suurimman osan ajasta kirjoittelu tuntui hyvin väkinäiseltä, ja ainakin meidän ryhmän blogi täyttyi lähinnä muutaman aktiivisen kirjoituksista (myönnän itse olleeni aika laiska tässä asiassa…). Blogista olisi voinut olla enemmän iloa ja hyötyä, jos oikeasti olisi ollut aikaa panostaa siihen. Nyt kaiken muun kiireen ohella tuli lähinnä naputeltua jotakin hyvin ympäripyöreää blogin täytteeksi. Blogin suurehko painoarvo (20% kurssiarvosanasta) kummastuttaa myös; ehkä siitä voisi nyhtää muutaman prosentin vaikkapa teoriatehtäville, jotka varmasti ovat blogia hyödyllisempiä…

 -Ulla


tammikuu 2008
ma ti ke to pe la su
 123456
78910111213
14151617181920
21222324252627
28293031