Loppupuheenvuoro – Esa

Taitaapi kurssi jo olla loppumaan päin! Loppupuheenvuoron paikka. Ensiksi OLO-sessioista. Etenkin alussa tällä tavoin lähes viikottain työskentely tuntui turhalta, turhauttavalta, epämielenkiintoiselta ja tarpeettomalta. Porukkaa oli paljon, suutaan ei viitsinyt tuntemattomien, itseään enemmän tietävien henkilöiden keskuudessa paljoa availla, seitsemän askeleen menetelmä ei tuntunut toimivan ja muutenkin kokonaisfiilis OLOja kohtaan oli vähintäänkin nihkeä. Toisen kierroksen jälkeen tapaukset alkoivat kuitenkin tuntua huomattavan paljon mielenkiintoisemmilta, ja kolmoskierroksen kohdalla porukkaa karsiutui paljon pois, jättäen tiiviimmän ja paremmin toimivan ryhmän jälkeensä. Olisi varmaankin ollut hyvä, jos jo alusta asti ilmapiiri olisi ollut tälläinen, mutta toimintaperiaatteen epämääräisyys ja yleinen negatiivisuus heikensi kokonaisuutta.

OLO-sessioiden virikkeissä ei aluksi ollut itselle mitään uutta – eikä kieltämättä loppuakaan kohti hirveän paljoa – mutta ryhmän sisäinen keskustelu ja itse tutkittavat asiat toivat erittäin paljon syvyyttä tapausten luomille pohjille. Itse pidin paljon siitä, että opin hieman pintaraapaisua tarkemmin monenlaisia asioita. Ryhmä alkoi toimimaan loppua kohden varsin autonomisesti, ja ainakin itse tulin siinä vaiheessa OLO-tapaamisiin ennemminkin mielenkiinnosta kuin pakosta. Jos se muutos olisi tapahtunut jo aiemmin, olisi kurssilla varmasti ollut kokonaisuutena positiivisempi ilmapiiri – mm. tuotantotalouden ykköskurssilla tehtiin koko kurssin ajan laajaa ryhmätyötä hyvin pienen ryhmän kesken, ja se tuntui toimivan heti alussa paremmin. Tiedä sitten käytännön järjestelyjen hankaluuksista.

Mielestäni tietokoneiden sisäisen toiminnan ja ohjelmistojen suunnittelujen pääpiirteiden ymmärtäminen on hyvä jokaisen tietotekniikan opiskelijan osata, ja siitä tuli myös tällä kurssilla opittua niin aiheiden kuin harjoitusten muodossa. Kokonaisuus pysyi hyvin kasassa ja perusteltua itkemistä kuunneltiin mielestäni hyvin. Toisaalta, palautteen määrän perusteella voisi päätellä, että parannettavaakin on vielä paljon. Kieltämättä moni harjoitustehtävä tuntui hieman kohtuuttomankin laajalta tai epäselkeältä, ja deadlinet alkoivat ajoittain tulla kovastikin vastaan (nimim. useampi kierros yhä palauttamatta). Kuitenkin mielestäni kurssi oli käymisen arvoinen – kiitos kaikille sitä toteuttaneille siitä! 🙂

– Esa Koskinen

Advertisements

Loppupuheenvuoro – Tero

Ja niin on studio ohitse!

OLO-sessiot olivat ihan uudenlainen tapa käydä läpi uusia asioita. Alkuhankaluuksien (niin mitä meidän pitäisi tehdä?) jälkeen ryhmätapaamiset olivat ihan kivoja; itselläni ainaakaan ei ollut mitään stressiä ryhmästä, asiat otettiin varsin rennosti. Ehkä liiankin rennosti järjestäjien mieleen, arvelen ma, mutta parempi olla mukavempaa kuin oppia hitusen enemmän ja ahdistella viikottaista tapaamista.

Tärkeimmät asiat sessioilta oli jo suurinpiirtein tiedossa. Ei kurssi tietenkään pelkkää kierrätystavaraa ollut, sillä tulee kuitenkin nyt mieleen esimerkiksi MVC, mikä tavallaan oli tiedossa mutta tavallaan ei. Kuten palautelappuja täytettäessä viimeisellä kokoontumisella todettiin, ei ollut mitään absoluuttisen turhaa asiaa jonka olisi voinut kokonaan jättää pois. Tai noh, Platon

Tehtävissä oli tekemistä. Ensimmäisestä (nollannesta) jäi tosin vähän karvas maku, kun oma liiankin verboosi miellekartta ei ollut ihan assarien mieleen. Ja “ensimmäisessäkin” meni ensimmäisellä kertaa ohi tehtävänannon painotus UML-kaavion esseeosuudesta, joka ei siis ollut tarpeeksi verboosi. Toinen tehtävä oli jännä kohinasimuloinnin ja virheeneston kanssa, ja kolmas tehtävä… kolmas tehtävä oli sitten jotain. Kuvien filtteröinti oli loppujen lopuksi ihan mielenkiintoista, vaikka tämä vähän “kokenutkin” koodaaja löysi monta mutkaa matkasta. Sokoban-klooni oli itselleni vähän turhan raskas, kun päätin että seinien tulee sovittautua vieressä olevien seinien perusteella! eikä kunnia antanut perääntyä. Voi niitä konditionaaleja ja match-caseja. Huh huh. Viimeinen kierros, pelikokoelma, tämä “tee tämä, ja tee se miten tahdot” ultimaallinen taitojen osoitus. Eh, täytyy tunnustaa että vika kierros ei ole ihan vielä valmis, mutta on ihan hyvä idea antaa vapaat kädet opiskelijalle, ja mikäs sen parempi (oikeasti) harjoitus kuin koodata muutama tuttu peli itse.

Loppujen lopuksi, vaikka kurssin huomaa olevan uusi ja sen kanssa on ollut vähän sähinää (ne irc-logit ovat viihdyttävää luettavaa jos osaa tilanteesta irtautua), en voi väittää etteikö kurssi ole ollut minulle hyödyksi. Kiitän kaikkia jotka ovat tässä olleet mukana.

Joten! Hyvää joulua ja aivan loistavaa uutta vuotta!

 Tero Saaristo

Loppupuheenvuoro – Antti

Tämä Ohjelmointistudio 1 -kurssi alkaa nyt pikkuhiljaa olemaan paketissa.

Tunnelmat kurssin osalta ovat varsin kaksijakoiset. Lyhyesti sanottuna: idea hyvä, toteutus huono. Aloitetaan toteutuksen käsittelyllä, niin saadaan sitten hyvät asiat jutun loppuun. Varmaankin suurin perisynti johon tämä kurssi kaatui oli tiedon puute. Sekä yleisen tiedotuksen, että tehtävien sisällön osalta. Kun kurssi alkoi, niin selkeää kuvaa siitä mitä oikein pitäisi tehdä ei oikein ollut. Ensimmäisestä olo-sessiosta iso osa meni ihmetellessä sitä, että mitä seuraavaksi ja ensimmäinen itsenäinen tehtävä aiheutti kysymyksen siitä kuin laajasti ja tarkasti aihetta oikeastaan pitäisi tarkastella. Tehtävänä olleen ajatuskartan kuin olisi voinut periaatteessa toteuttaa minkä kokoisena tahansa väliltä 10-1000 kuplaa.

Olo-tapaamisten osalta homma alkoi selkiytymään suuremmilta osin jo toisesta viikosta eteenpäin, mutta jo lähes samantien alkoi ilmaantumaan uusi ongelmailmiö nimeltä ryhmän koon pieneneminen. Lähinnä tämä aiheutti ongelmia sen suhteen, että tapaamisissa käytyjen keskustelujen sisällön laatu putosi varsin nopeasti ainakin omalla asteikollani varsin lähelle perus kaveriporukan käytäväjutustelua, eli aiheesta ei oikein saanut keskusteluissa mitään uutta irti. Samaten joukon pieneneminen aiheutti sen että itsenäisesti valmisteltavien esitelmien aihealueet muuttuivat laajemmiksi ylimalkaisemmiksi ja uuden asian määrä ennalta asiaan tutustuneille laski. Hämmennystä puolestaan taas aiheutti se, että koska portfolioon tulevien töiden määrä ei pienenisi vaikka ryhmäkoko niin teki, niin asia kuulemma otettaisiin huomioon arvostelussa. Nähtäväksi jää, että mitä tämä nyt sitten käytännössä tarkoittaa.

Harjotustyöt taisivat kuitenkin olla kaikista suurin syy siihen, miks niin moni jätti kurssin kesken. Tehtävät olivat monilta osin erittäin haastavia ja ohjeistus huonoa. Esimerkiksi jos nämä tehtävät aiheuttivat huomattavia vaikeuksia ihmiselle joka on ohjelmontia harrastanut 12-vuotiaasta saakka ahkerasti ja suhtautuu koulutehtäviin yleiseti hyvällä motivaatiolla (minä), niin en yhtään ihmettele jos ne monille aiheuttivat ylitsepääsemättömiä vaikeuksia.

Monilta osin asiaa olisi varmasti jo helpottanut se, että olisi annettu muutamia hyviä lähteitä joista asiaa olisi lähtenyt tutkimaan. Assareiden avulla tehtävistä saattoi ehkä kyllä saada pisteitä irti, mutta kuinka paljon tehtävät sitten lopulta oppimista saivat aikaan? Osaltaan tehtävänannoissa esiintyneet tyhjästä ilmaantuvat käsitteet, oletukset asioiden triviaalisuudesta, sekä virheet, joita ei kuulemma ollut tarvetta korjata, eivät varmasti ainakaan parantaneet tilannetta.

Mutta nyt niihin positiivisempiin asioihin, tai no oikeastaan asiaan. Kurssin idea oli nimittäin mielestäni varsin hyvä ja kehittämiskelpoinen. Toteutus olisi voinut onnistua paremmin jos kullekkin aiheelle olisi varattu enemmän aikaa ja asiaa olisi käsitelty jo ryhmässä siten, että se olisi tukenut itsenäistä työskentelyä . Lisäksi harjoitustyöt olisi mielestäni voitu käydä läpi ryhmässä (vaikkakin tehtävien käsittely jälkikäteen tuntuu olevan varsin vieras käsite yliopistomaailmassa) tällöin myös tehtävissä epäonnistuneet olisivat voineet oppia uutta enemmän.

Meille on tämän syksyn aikana muilla kursseilla ja yhteyksissä toitotettu yhteistyön merkitystä. Itse olenkin ehdottomasti sitä mieltä, että tärkein asia, jonka tänä syksynä olen yliopistossa oppinut on juuri yhteistyön voima. Sekä siltä osin miten sen läsnäolo on lisännyt ja helpottanut oppimista, että myös miten sen puutuminen on vastaavasti asioita vaikeuttanut. Siksi minusta yhteistyöllä olisi tästäkin kurssista saanut huomattavasti enemmän irti. Jos se vain olisi sallittu.

P.S. Tämä portfolio ei taida koskaan saavuttaa sisällöllistä täyttymystään.

P.P.S. Kiitos ja anteeksi tuosta portfolion taustakuvasta.

P.P.P.S. Siinä taustakuvan koodissa on oikeasti jotain järkeä!

P.P.P.P.S. Kiitos ryhmälle (myös sille osalle joka ei loppun asti selvinnyt)!

P.P.P.P.P.S. Rymämme lopullinen jäsenmäärä taitaa olla 5, joten siksi P.S x 5  :)))))

Antti Virtanen

Loppupuheenvuoro

Kurssi alkaa olla paketissa, joten nyt on aika kerrata vähän tapahtunutta ja purkaa omia mietteitä.

Täytyy sanoa, että ensivaikutelma kurssista oli nihkeä. OLO-tapaamiset pistivät vähän epäilyttämään ja pari ensimmäistä harjoitustehtävää tuntuivat aikamoiselta pakkopullalta. Niissä opittiin aika paljon yleistä siitä miten tietotekniikassa ja ohjelmoinnissa asiat ovat suhteessa toisiinsa. Käsitekarttaan tuli läträttyä vähän sitä sun tätä, mutta en kyllä enää muista mitä uutta opin siitä. UML-työ tuli kasattua hammasta purren ja tässä vaiheessa alkoi jo tulevat työtunnit pelottaa mielessä. Epäilykset osuivat kieltämättä oikeaan, MUTTA sanoisin, että kurssi lähti UML:n jälkeen ehdottomasti nousuun.

Ensimmäinen ohjelmointitehtävä oli nimittäin aidosti kiinnostava ja motivoiva. Sitä tehdessä oppi esimerkiksi silmukoiden idean todella hyvin. Sitä seurannut kuva-tehtävä olikin sitten työmäärältään aika hirviö, mutta sekin aiheeltaan ihan mielenkiintoinen. Siihen upposi työtunteja huolella, mutta samalla tuli opeteltua aika paljon ohjelmointia. Muistelen lämmöllä sitä kun koitin valehtelematta viisi tuntia jäljitellä tehtävänannon mallikuvaa vaikka koodini oli ollut koko sen ajan oikein…. jep. Virheen etsiminen toimivasta koodista on aika vaikeaa, voin sen teille kertoa D:

Esseetehtävä oli itselle aika hankala, koska en tiennyt etukäteen kovin tarkasti web-teknologioista. Oppi siitä aihealueesta aika paljon uutta, mutta samalla osa tiedosta jäi kyllä kunnolla sisäistämättä. Tiedon kirjoittaminen kun ei sinänsä vaadi mitään valtavaa sovelluskykyä. Silti ihan hyödyllinen tehtävä, vaikka ei itselle kovin mielekäs.

Pari viimeistä ohjelmointityötä olivatkin sitten aika raskaasti käyttöliittymään liittyviä. Niistä sai aika hyvät perustaidot siihen, miten yksinkertaisia ikkunoita ja 2D-grafiikoita luodaan Scalalla. Osottautui, että kyseisellä kielellä sitä yksinkertaista grafiikkaa saa pöydälle yllättävänkin nopeasti. Käyttöliittymiin sitten liitettiin erilaisia pelejä, joiden logiikan tekeminen oli myös pirun hauskaa. Esimerkiksi ping pongin fysiikkamallin itsenäinen suunnittelu ja sen vaiheittainen testaaminen oli oikein mukavaa hommaa.

Viimeiseen tehtävään anettiin siis käytännössä jo täysin vapaat kädet ja siitä ominaisuudesta pidin. Siinä vaiheessa kurssia oli kuitenkin jo riittävät taidot omatoimiseen tekemiseen. Juuri tämä soveltaminen oli studio -kurssin vahvuuksia. Ohjelmointi 1 opetti enempi ohjelmointiteknisiä asioita ja Scalan käyttöä kun taas studiossa näitä taitoja hyödynnettiin oman koodin suunnittelussa. Toki samaa tehtiin ohjelmointi 1:ssä, mutta siellä tehtävänannot pitivät enemmän kädestä kiinni ja dokumentaatiot olivat tarkkoja. Kurssit toimivat tämän takia mielestäni hyvin yhdessä vaikka välillä olikin vähän synkronointiongelmia (silmukat ja gui käsiteltiin ensin studiossa).

OLO-tapaamisista voin sanoa, että vaikka alkuun tuntuivat turhauttavilta, niin niihinkin alkoi ajan kanssa suhtautua ihan positiivisesti. Ryhmässä oli hyvä meininki ja assarimme oli hyvä tyyppi. Valitettavasti suuri osa ryhmästä lopetti kesken kurssin, mutta toisaalta se toi vähän eloa ryhmäkeskusteluihin. Pienessä ryhmässä juttu ja läppä lensi herkemmin kun tapaamiset eivät tuntuneet enää niin ‘virallisilta’ ja muutaman henkilön kesken oli muutenkin kevyempää jutella. OLOista oppi yleisesti ihan kivaa lisätietoa.

Voisin vielä lopuksi itkeä siitä miten kurssissa oli liikaa työtunteja, mutta siitä on jo tarpeeksi jauhettu opiskelijoiden keskuudessa. Olen kyllä samaa mieltä siitä, että työtä oli vähän turhan paljon suhteessa 5op:hen, mutta toisaalta ymmärrän sen, että aloittelijoille voi olla aika vaikea suunnitella ohjelmointitöitä. Jollekin kokeneelle kodaarille (tehtävän suunnittelijalle) naurettavan helpolta vaikuttava homma saattaa olla toiselle kymmenien tuntien duuni. Ja sitä on vaikea tietää/huomata ellei anneta palautetta. Onneksi siis kritiikkiä on kuunneltu ja studio -kurssia tullaan varmaan modaamaan tulevaisuutta varten.

Kiitos vielä ryhmälle.

— Karri Haranko

Lopuksi

Nyt se sitten alkaa olla viimeisiä taputteluja vaille valmis, Studio 1 -kurssi nimittäin. Ei voi muuta sanoa kuin, että “Huh, huh!”. Tuohon kiteytyykin päällimmäiset tuntemukseni kurssin suorittamisen jälkeen. Vaikka tuosta lausahduksesta varmaan moni päätteleekin, että olen helpottunut kurssin ollessa ohi, niin toisaalta hyvillä mielin todeta oppineeni kurssilla todella paljon ohjelmoinnista, ja siksi tästä kurssista jäi minulle hyvät fiilikset. Haluan nyt heti kiittää ryhmäni jäseniä ja assaria Johannesta yhteisistä OLO-hetkistä. Teidän kanssa oli mukava oloilla ja suorittaa kurssia!

Ensimmäisissä OLO-tapaamisissa ei kukaan oikein tiennyt, miten ryhmissä pitäisi työskennellä ja mitä ylipäätänsä kurssilta olisi saattanut odottaa. Tämän tiedon puutteen tuoman alkuhämmennyksen voitettuamme, ryhmässämme syntyi joka viikko hyväntuulista ja vilkasta keskustelua silloisella hetkellä työn alla olleista aiheista. Itselleni, ohjelmoinnin vasta-alkajalle, moni asia oli ja on edelleen tietotekniikan osalta uutta ja vierasta, mutta pyrin OLO-sessioissamme imemään mahdollisimman paljon tietoa itseeni, ja mielestäni siinä hyvin onnistuinkin. Ryhmämme vanhemmat ja muutkin tietoteknisesti tietävämmät jäsenet pitivät kyllä huolen siitä, että sain joka viikko uutta tietoa muistiini. Vaikka informaatiotulva olikin OLOjen osalta suuri, ei tiedon janoni hiipunut silti yhtään, sillä alan kiinnostavuuden kautta uutta, ja välillä myös vähän hämmentävää asiaa oli mielekästä oppia. Harmittavaa oli, että OLO-ryhmämme jäsenten määrä kutistui kursin edetessä lopulta puoleen alkuperäisestä vahvuudesta. Ryhmän koon pieneneminen aiheutti keskusteluiden monipuolisuuden katoamista ja sen, että OLO-tapaamisiin valmisteltavat esitykset muuttuivat jokaisen osalla aihealueiltaan laajemmiksi, minkä seurauksena moneen asiaan saatiin vain pintaraapaisu.

Suurimman osan kurssin suorittamisen vaatimasta ajasta veivät OLOjen sijaan kuitenkin itse harjoitustyöt, joiden tekeminen tuotti ainakin itselläni välillä harmaita hiuksia, kun kaikki tehtävänannot eivät olleet aivan sieltä selkeimmästä päästä. Olisin toivonut ehkä vähän aloittelijaystävällisempää ohjeistusta tehtävien osalta, mutta varmasti tämän kurssin tarkoituksena oli osoittaa ja totuttaa opiskelijat siihen, että työelämässäkään asiakkaan ohjelmalle antamat kriteerit ja ohjeet eivät aina ole yksiselitteisiä. Itse opin sen tämän kurssin myötä, sillä samaan aikaan Studion kanssa rinnakkain suoritetulla Ohjelmointi 1 -kurssilla kaikki asiat selitettiin kädestä kiinni pitäen, jotta myös tällaiset ohjelmointitaidoiltaan vajavaiset opiskelijat ymmärtäisivät käsiteltävät asiat. Se peruskurssin tarkoituksena onkin ja hyvä niin, joten siihen verrattuna tämä Studio 1 oli kuin toiselta planeetalta tempaistu. Tämä kurssi oli nimittäin vaikeustasoltaan ja työmäärältään täysin omaa luokkaansa, jos sitä vertaa muihin tähän mennessä suorittamiini yliopistokursseihin.

Harjoitustöiden osalta ensimmäisen kierroksen UML-kaavion sisältö ja merkitys ohjelmoinnissa eivät vieläkään ole hahmottunut minulle aivan kokonaan. Tämän lisäksi myös kolmannen kierroksen filtterit tuntuivat aluksi ylipääsemättömän vaikeilta toteuttaa, ja koodaamista ei yhtään helpottanut heti tehtävänannon alussa käsitelty Fourier-muunnos, joka tuntui täysin heprealta. Tähän kierrokseen kului minulla varmasti eniten aikaa muihin tehtäviin nähden, luukun ottamatta kurssin päättänyttä grande finaalia, johon oli aikaisemmista kierroksista poikkeavasti annettu aikaa kolme viikkoa ja jonka pisteytys myös erosi muista tehtävistä. Tuota kuudennen kierroksen peliohjelmointia oli mielestäni ehdottomasti hauskinta ja mukavinta tehdä, sillä siinä pääsi työstämään graafista käyttöliittymää sekä ilmettä koodin kautta ja oman työn tuloksen näki heti. Tehtävän toteuttamiseen annettiin myös muutamaa ohjeistusta lukuun ottamatta vapaat kädet, joten edellisten kierrosten tapaan ei tarvinnut tuskailla valmiiden koodin pätkien kanssa. Ohjelmoinnin aloittaminen “tyhjästä” ei kuitenkaan ollut helppoa vasta-alkajalle (minulle), eikä mielestäni sellaista pitäisi edes vielä vaatia tässä vaiheessa opintoja.

Studio- ja Ohjelmointi 1 -kurssilla oli myös havaittavissa ajoittaisia synkronointiongelmia, sillä esimerkiksi silmukat ja GUI käsiteltiin täällä Studiossa ennen kuin niitä oli nähtykään peruskurssilla. Mielestäni asiat olisi ensin pitänyt opiskella peruskurssilla ja vasta sitten soveltaa Studiossa, sillä esimerkiksi silmukat kasvattivat toisen kierroksen koodauksen ja dekooodauksen vaikeustasoa entisestään. Toisaalta niiden käytön opettelu Ohjelmointi 1:ssä tuntui naurettavan helpolta Studion harjoitustyön jälkeen.

Kurssin ehkä yksi mieleenpainuvimmista kokemuksista oli yli puolen vuorokauden mittaiset lauantain deadlinea edeltävien perjantaiden koodaussessiot Paniikissa, ja joskus ihan oikeasti paniikissa, kun jokin tehtävän osa ei meinannut aueta. Muutamana perjantaina sessiot venyivät jopa yön yli aamuun, kun deadlinet hengittivät pahasti niskaan. En ollut kuitenkaan ollut yksin tässä tilanteessa, sillä Paniikissa oli myös muita kohtalotovereita, joiden henkisellä tuella jaksoin suorittaa kurssin kunnialla loppuun asti. Yhdessä panikointi lievitti ainakin minun stressiäni tehtävien suhteen, kuitenkaan sitä kokonaan poistamatta. Luulen, että myös kaverini ovat tunteneet osaltaan osin samoin.

Nyt lopulta voin rehellisesti sanoa oppineeni näiden kahden ohjelmointikurssin myötä koodaamaan ainakin perustasolla, sillä ennen elokuista Espooseen muuttoani en ollut kirjoittanut riviäkään koodia, saati sitten kuullut Scalasta, muista ohjelmointikielistä senkin edestä. Tämä Studio-kurssi on konkretisoinut huomattavasti käsitystäni ohjelmoinnista, sillä “oikeassa elämässä” ohjelmointiin ei anneta vaiheittaisia ohjeita, vaan koodin tuottaminen pitää aloittaa puhtaalta pöydältä. Kurssin avulla opin myös todella paljon yleistä tietoa ja vähän enemmänkin tietotekniikasta, jonka takia ylipäätänsä hakeuduin Otaniemeen.

Tähän on hyvä lopettaa, ja lopuksi haluan toivottaa kaikille oikein hyvää, rauhallista ja lämmintä joulua! Etenkin tuota lämpöä tuntuu täällä eteläisessä Suomessa vielä riittävän, mutta toivottavasti jouluksi saadaan pientä pakkasta ja valkea maa! 🙂


Markus Pajari