You are currently browsing Sofi's articles.
Studio1 kurssi on nyt vihdoin ja viimein paketissa. Tai no lukuun ottamatta näitä muutamia seuraavia rivejä. Projektiraportti lähti justiinsa, ja vastaus saapumisesta kolahti omaan sähköpostiin. Nyt ilmeisesti pitäisi saada vielä jotain järkevää aikaiseksi tähän. Tekee kyllä tiukkaa.
Kenellekään ei varmasti tule yllätyksenä mielipiteeni siitä, että kurssi oli jumalattoman työläs ja aikaa vievä. Ja lähes kaikki piti itseopiskella. Mutta muuten kurssi oli kyllä ihan mukava, ja opetti kyllä tehokkaasti lyhyessä ajassa nollasta Java-ohjelmointia. Kurssi oli ensimmäinen ohjelmointikurssini, ja melkein kyllä toivon ettei viimeinen. Saa nähdä.:) Mutta siis, kurssi oli kyllä ihan hyvin rakennettu. Ehkä aikataulua voisi hieman hioa siten, että pelkästään prjoketi jäisi joulun jälkeen ja ehkä johonkin syksyyn pieni hengähdystauko. Myös muutamia perehdyttämisluentoja saisi olla enemmän.
Kiitokset assareille, jotka jaksoivat vastailla enemmän tai vähemmän itsestäänselviin tai epäselviin kysymyksiin sekä kasvotusten että irkissä.
Muistuu mieleen eräs ala-asteen laulu, joka sopii tilanteeseen :
Nu är det slut för idag.
Tack och adjö för idag.
Tänk vad dagen gick fort
tänk så mycket vi gjort men nu är det slut för idag.
Ja nu är det slut för idag.
Ja nu är det slut för idag
Studio1 kurssi oli kaiken kaikkiaan aika antoisa. Ensinnäkin se tietenkin opetti Javaa, mutta se myös opetti itsestään, omasta oppimistyylistä, ajanhallinnasta ym:sta paljon. Se myös tutustutti ithan tehokkaasti ja omaperäisellä tavallaan Paniikissa paniikissa fuksivuoden ensimmäisenä syksynä toisiin kanssaopiskelijoihin. Projektiinhan kurssi kuitenkin huipentui, joten kaitpa siitä itse ohjelmointitaitoakin sitten kertyi jonkin verran. Mutta millä keinoin?
Varsinkin alkuun oli täysin toivotonta räpellystä kaikki. Tuntui että vauhtiin pääseminen oli mahdotonta ilman vieressä olevan assarin pitämää sanelua. Mutta vaikka tämä ei välttämättä ollutkaan ihan “omaa koodia” tällöin, niin äkkiä sitä oppi siinä. Vähän matkaa pääsi eteenpäin ja tuli hyvä tunne kunnes tarvitsi apua uudessa asiassa. Hetken kesti tajuta, että ehkä sitä pitäisi itse alkaa selvittämään ratkaisuja ongelmiin ja etsimään tietoa kalakirjasta tai netistä. Varsinkin kurssin edetessä netti alkoi toimimaan pääasiallisena tiedonlähteenä.
Pitkälti myös kokeilumeininki oli käytössä. Virheiden kauttahan sitä oppii, on kuitenkin tunnettu kansanviisaus ja ehkä itselleni vähän liiankin tuttu. Muutenkin (valitettavasti) olen huono suunnittelemaan, ja kirjoituksissakin ennemmiin teen tekstin, joka toimii raakaversiona ja sitä sitten hion varsinaiseksi tuotokseksi. Ehkä koodia kirjoitettaessa oli vähän samanlaista.
Kiitos netistä löytyvien oppaiden ja mm. APIn ansioista ohjelmatehtävät onnistuivat ja projektikin palautui toimivana ajallaan. Yhtään kuitenkaan unohtamatta sitäkin parempien assareiden taitojensa jakamisen ja tyhmiin kysymyksiin vastailua sekä kasvotusten, että tuttuakin tutummaksi tulleen irkin kautta.
Kertaus on opintojen äiti, on toinen kliseinen lause. Mutta erittäin paikkaansa pitävä. Parhaiten Javasta oppi kurssilla ne asiat, jotka toistuivat koodia kirjoitettaessa. Eli siis kertaus oli ehkä tehokkain menetelmä. Tietenkin aina kun oli mahdollisuus pyrin opiskelemaan tarvittavan asian kunnolla, mutta aina se tarjolla oleva aika ei valitettavasti riittänyt syvemmän ymmärryksen tuomisee halutusta asiasta.
Olen oppinut paljon kuluneen syksyn aikana. Varmasti enemmän kuin koskaan samassa ajassa. Lukiossakin moni asia oli kuitenkin itsestäänselvyyksiä, ja harvassa olivat ne kerrat kun joutui läksyjä tekemään kotona. Oppimiseen ja hyviin numeroihin riitti pelkkä fyysinen (henkistäkään ei aina täysin tarvinnut) läsnäolo oppitunnilla. Mutta nyt puuttuivat oppitunnit, luentojakaan ei ollut kuin muutama. Harkoissakaan ei voinut “imeä” tietoa koska ei ollu mitään mistä sitä ottaa, vaan täytyi ihan itse tekemällä oppia. Tämä koitui isoksi haasteekseni itselleni. Kävikin useampaankin otteeseen, että dl:n lähestyessä ei voinutkaan vaan suoraan tehdä tehtäviä vaan ensin piti opetella asiat. Kunnianhimoiselle, mutta laiskalle ihmiselle tämä toi uusia ongelmia ja vaati aiemmin tuntemattomia kompromisseja. Joten siitä syystä pidänkin kurssin kenties suurimpana antina sen tuomaa oppia opiskeluun!
Studio1, kurssi joka on kultin maineessa infolaisten keskuudessa alkaa olla ohi. Tarkalleen ottaen vajaan 27 tunnin päästä se on todellakin historiaa meille, iv07:lle. TKK:n työläin ja suurin kurssi (ainakin sen käyneiden mielestä) on tutustuttanut meidät Java-maailmaan. Maailmaan, josta itselläni ainakaan ei ollut juuri minkään näköistä kokemusta saati mielikuvaa entuudestaan.
Viime vuonna kun olin päättänyt hakea TKK:lle ajattelin meneväni lukioni tarjoamalle ohjemoinnin ensimmäiselle kursille. Perusteluinahan olivat sentään tunnin sijoittuminen ranskan tunnin päälle sekä “hyvä olla jonkin näköinen ajatus asiasta ennen TKK:lle menoa”. No, tunneilla olin, mutta lopputyötä en jaksanut tehdä, koska kurssimäärä hipoi muutenkin jo aivan liikoja. Silloinen kieli oli Pascal ja päällimäiseksi mielikuvakseni jäivät klassinen “Hello World!” ja hieno joulukuusi, jonka sain aikaan. Lukuun ottamatta ensikosketusta koodiin ja input-output käsitteisiin, se kurssi ei antanut.
Syksy tuli ja Studio1 alkoi. (Itseasiassa en edes ensimmäisenä koulupäivänä tiennyt info-opiskeluiden sisältävän ohjelmointia. >:/ ) Kukkien lähettämisestä Brasiliaan alkoi kivinen tie kohti Java-kielen (jonkinnäköistä) hallintaa. Vaikka oman koodin tuottaminen oli varsinkin alkuun hankalaa, ja tottakai aikaa vievää edelleenkin – varsinkin itselle uusien asioiden sisäistäminen kestää hetken – alkoi vähitellen valjeta mitä ohjelmoini on. Pelit ja hyötyohjelmat, ikkunat ja valikot ym. alkoivat saada aivan uudenlaisen kokonaiskuvan mielessäni. Koodamallahan nekin on joku aikaan saanut. Tosin on tietenkin huomioitava, että massiiviset räiskintäpelit markkinoilla jne vaativat tuhansien työtuntien ja ihmiset panoksen.
Antoisinta oli kenties siirtyminen graafiseen ohjelmointiin, jolloin havainnollisti oman aikaan saannoksensa paremmin. Sikobania oli oikein kiva koodata ja Tetris-peli nyt tietenkin toi jo uuden ulottuvuuden ohjelmointi-taitoihini. Ohjelmoinnista oli tullut ensinnäkin tuttua ja toisekseen ihan mielekästäkin. Okei, totta kai ei voi välttää siitä hehkuvaa nörtti auraa, mutta nyt se on myös jotain konkreettista eikä pelkkä sana sanakirjassa.
Nyt on sitten studio1-kurssi projektia vaille valmis. Java – ja essee tehtävät on palautettu ja java-kielen pitäisi olla kuta kuinkin hallussa projektia ajatellen.
Viiminen ohjelmointi tehtävä rakentui edellisen, eli vitosen päälle. Tähän tuli lisätä timerilla pelin aika sekä näkyvä tulostaulukko, joka lukee jo olevassa olevat tulokset ja lisää siihen uuden rivin, jos se on tarpeeksi hyvä. Vitosessa otettiin käyttöön swing-komponentit ja niitä käytettiin myös tässä. Kutonen koostui neljästä osaehtävästä, joista ensimmäinnen keskittyi aikaan ja sen näyttöön ja loput tulostaulukon luontiin.
Kaksi ensimmäistä osatehtävää tuli tehtyä suht koht nopeaa. Kolmas osoittautui hieman kinkkisimmäksi, mutta kaiken kaikkiaan tämä tehtävä tuli ehkä “helpoimmalla” kaikista. Johtuiko se sitten tehtävän tasosta vai taitojen karttumisesta en tiedä. Oli paljon mukavampi tehdä jotain konkreettista , jonka tuloksen näkee heti ja jota pääsee heti testaaaman. Varsinkin tiedostoista luku ja sinne kirjoittaminen oli mielenkiintoista askartelua. Vaati hieman työtä saada kaikki haluttuun kuntoon, mutta onnistuihan se lopulta joten kuten. Aina tietenkin olisi vielä voinut hioa, ja esim. muuttaa taulukon paikkaa, mutta siihen ei enää motivaati riittänyt.
Se oli aikavierasta alkuun, mutta valkeni sitten ajan myötä.
Uskon, että erityisesti näissä kahdessa viimeisessä osassa opitut asiat ovat todella hyödyksi tulevassa projektissa.
Vaikka ohjelmointi tehtävät olivat tuskaisia ja ärsyttäviä ja kaikkea muuta ja jäivät aina viime tinkaan, olivat ne jollain tavalla myös mukavia ja tuntuu hieman oudolta ettei niitä enää ole. No eiköhän projekti kohta korvaa sen tunteen.:D
Viikko sitten meillä oli 6. OLO-session avaus, joka sai nimekseen Ohjelmointitehtävät. Meidän piti käsitellä useampaa osatehtävää, joista suurimman osan hoidimme sessiossa. Nämä käsittelivät rekursiota, ja niistä mahdollisesti syntyviä loppumattomia looppeja.
Täytyy myöntää, että henkilökohtaisesti olin ajoittain enemmän tai vähemmän pihalla. Johtuiko se sitten yllätyksestä, että OLO alkoikin pari tuntia luulemaani aikaisemmin vai tehtävien vaikeudesta ja omasta ymmärtämättömyydestäni niitä kohtaan… Joka tapauksessa kaksi tehtävistä ratkesi helposti ja kolmaskin tuli suht koht sujuvasti. Neljäs jäi oppimistavoitteeksi. Ehkä aiempiin OLO-sessioihin verrattuna syntyi vähemmän keskustelua ja muutenkin asiat olivat epäselvempiä ja vaativat enemmän selittämistä. Mutta tietenkin aina oppii jotain uutta!:)
Toinen ohjelmointitehtävämme liittyi pelimaailman rakentamiseen; eli meidän tuli luoda karttaruutuja, sektoreita ja maailmoita, jonne ensimmäisessä tehtävässä tehdyt esineet voisi myöhemmin sijoittaa.
Alkuun nousi heti kylmä hiki pintaan, kun ei päässyt ensimmäisiin harkkoihin ja muut tuntuivat olevan jo hyvässä vauhdissa ohjelmiensa kanssa itse vielä pähkäillessä Mapin ja HashMapin käytön kanssa. Mutta kun vauhtiin pääsi sujui ohjelmointi huomattavasti ensimmäistä tehtävää jouhevammin, tosin työn painottuen viimeisille tunneille ennen deadlinea. Onneksi tämä kuitenkin siirtyi lähes päivällä ja siitäkin huolimatta omat tehtäväni lähtivät kotikoneeltani 11.59… Eli aivan ajoissa! Sen jälkeen oli kyllä tyhjä olo, eikä matikan luvusta tullut oikeen mitään, mikä näkyikin valitettavasti tämän päivän välikokeessa. No, onneksi niitä tulee lisää.
Nyt ei sitten muuta kuin poikkeusten kimppuun ja vähän kattelemaan kolmos ohjelmointitehtävää, mihin onkin jopa ruhtinaalliset kolme viikkoa aikaa!
Toiseen OLO -sessioomme tullessa meillä oli vastassa meidän ensimmäinen varsinainen purku. Se sujui jouhevasti jokaisen käytettyä enemmän tai vähemmän aikaansa kotona oman oppimistavoitteensa tai tehtävänsä työstämiseen.
Ensimmäisellä kerrallahan olimme saaneet eteemme tekstin, joka käsitteli Platonin ideaoppia ja Aristoteleen filosofiaa erilaisten esineiden ja olentojen luokitteluun. Tehtäväksemme jäi eräiden käsitteiden luokittelu, sekä muutamaan asiaan liittyvään kysymykseen vastauksen etsiminen. Vaikkakin käsitteiden hierarkisointi vaikutti alkuun vaikealta, eikä ehdotuksia erimuotoisista hierarkioista tahtonut syntyä, oli koko ryhmän yhteinen mielipide lopulta kuitenkin, että asiaa voi lähestyä useammalta eri näkökulmalta ja näin ollen luokittelu on vahvasti sidoksissa tarkoitukseen ja päämäärään johon pyritään. Kotona oli pohdittu käsitteiden luokittelemista mm. tieteelliseen näkökantaan tukeutuen ja sanojen rakenteen pohjalta.
“Miten tämä kaikki liittyy Java-ohjelmointiin? ” oli yksi kysymyksistä jonka olimme saaneet eteemme edellisellä kerralla. Nyt meillä oli jo ehkä jonkin näköinen käsitys asiasta; Java-ohjelmointi perustuu olio ja luokka-pohjaiseen ohjelmointiin ja aivan kuten Platonin ideaopissa pyritään Javassa luomaan olioiden avulla ilmentymiä luokista. Luokat ovat abstakteja yhdistäviä tekijöitä saman luoan olioiden välillä ja oliot ovat luokan kuvastuksia, jotka ovat “olemassa”. Yläluokkia ja alaluokkia syntyy yleensä paljon ja tarkka hierarkia on tärkeä. Assarimme sanoi jo sanoja hierarkisoidessamme, että myös Javassa luokittelu on yleensä vaikeinta, koska tähän ei voi etsiä apua mistään opaskirjastakaan.
Uskon, että ainakin suurin osa ryhmästämme oppi jotain uutta tapausta käsitellessämme ja yleinen mielipide tapauksesta ja OLO-session tarkoituksesta tuntui olevan myönteinen.
