QA:n muokkaaminen lopetettu. Jatkossa kysymykset kurssin keskusteltuun.

Ohjelmointi 1/ Kysymyksiä ja vastauksia

Kysymykset ovat alun perin kotoisin demotehtävästä, missä sai esittää luennoitsijalle yhden kysymyksen. Vastaan näihin "henkilökohtaisiin" sitä mukaa kuin ehdin, mutta yleisempiin saa toki muutkin vastata.

Kysymisohjeet: Etsi huolella kategoria mihin kysymyksesi kuuluu. Paina sen jälkeen Lisää kysymys-painiketta.

Vastaajat

  • VL: Vesa Lappalainen
  • AJL: Antti-Jussi Lakanen (Ohj1-kurssin luennoija keväisin)
  • MR: Mikko Röyskö, tuntiopettaja, nykyinen Jypelin ja ComTestin ylläpitäjä

Vastausohjeet: Siirry himpun kysymyksen Q-kirjaimen vasemmalle puolella ja klikkaa syttyvässä sinivihreässä alueessa hiiren nappia ja valitse Edit. Kirjoita vastauksesi A: -kirjaimen perään ja laita vastauksen loppuun nimikirjaimesi. Jos sitä ei ole ylläolevassa listassa, niin lisää se sinne. Editorin saat tallennettua myös Ctrl-S. Jos editoit paljon, voit siinä vasemman reunan menussa pistää pallukan Editin kohdalle, jolloin editori aukeaa tuplaklikkauksella. Jos haluat täydentää jotakin vastausta, niin tee siihen uusi A: uudelle riville ja lopeta edellinen \-merkkiin. Muista laittaa vastauksen loppuun viiva (-) ja omat nimikirjaimesi. Voit myös tarvittaessa siirtää kysymyksen toiseen kategoriaan, ks. ohjeita

1. Kurssin suorittaminen

Q: Onko ohjauksiin osallistuminen pakollista? Voiko niitä tehdä itsenäisesti, omalla ajalla?

A: Eivät ole pakollisia ja saa tehdä omalla ajalla. -MR

Q: Missä vaiheessa kurssia kannattaa aloittaa harjoitustehtävän tekeminen?

A: Nyt pitää muistaa että kurssilla on kotitehtäviä (demoja) joiden tekeminen pitää aloittaa välittömästi kurssin alettua. Sitten on harjoitustyö, jonka raamien ymmärtämiseksi pitää odotella muutama viikko (jollei tutki materiaaleja jonkin verran etukäteen). Ensimmäisen HT-vaiheen palautus on viikon 39 lopussa (26.9 alkava viikko). Silloin pitää olla palautettu harjoitustyön suunnitelma. - VL

Q: Kuinka pitkälle pääsen, jos hallitsen ja osaan soveltaa kurssin oppitavoitteita?

A: Sinulla on erinomainen pohja jatkaa seuraaville kursseille. Ja mahdollisuus omatoimisesti tehdä pieniä ohjelmia/pelejä. Mutta jos olisin työnantaja, en vielä ottaisi, ellei ole kovaa omaa harrastusta päälle. Miksi me muuten opiskelisimme viisi vuotta? - VL

Q: Voiko kurssin käytännössä siis suorittaa kokonaan etänä ja itsenäisesti?

A: Tämän kurssin osalta joo, mutta aikatauluja noudattaen. Erikseen on vielä Avoimen yliopiston versio, josta puuttuu myös aikataulut. - VL

Q: Voiko demoihin ilmottautua erikseen ja onko niihin kaikkiin pakollista osallistua?

A: TIMissä on demojen pääsivulla kalenteri, josta voi viikoittain napsia niitä itselleen. Jos ei osallistu paikan päällä tai Zoomilla, niin siten on katsottava niiden videointi ja sen perusteella korjattava omat vastauksensa. - VL

Q: Voiko viikon demot palauttaa myöhässä, jos niihin pyytää lisäaikaa ennakkoon?

A: Ei voi, koska vastaukset julkaistaan ma klo 14:00 ja sen jälkeen tehtyjä palautuksia ei luonnollisesti voi hyväksyä, koska vastaukset ovat käytössä. Erillissopimuksesta voisi ajatella että silloin tekee avoimen yliopiston vastaavan viikon tehtäviä joiden vastauksia ei julkaista. - VL

Q: Onko kurssia suositeltavaa tehdä porukassa vai itsenäisesti ?

A: Jos on toimiva ryhmä, niin se on aina fiksua. Siinä kukin voi opettaa toistaan. - VL

Q: Onko tenttiä mahdollista suorittaa etänä? Miten käytännön järjestelyt tämmöisessä tapauksessa toimivat?

A: Pyritään tuohon. Jos sallii etävalvonnan videokameralla ja on tarvittaessa valmis maksamaan sen kustannukset (yksi valvoja voi valvoa n. 6 opiskelijaa, sivukuluineen valvoja n. 20 e/h). Tai sitten hommaa itselleen paikan jossa joku luotettava valvoo. - VL

Q: Voiko harjoitustyön tehdä ryhmässä?

A: Tuhon samaan kysymykseen ehdon vastata tuolla toisessa kohdassa. - VL

Q: Jos kurssista saa huonon numeron, onko sitä mahdollista parantaa kurssin uusintakokeiden jälkeen esim. vuoden päästä?

A: Sitä ei kannata lähteä tavoittelemaan, koska silloin tämä syksy on hukkaan heitettyä aikaa :-) Tenttiohjesääntö sanoo, että suoritusta ei saa korottaa sen jälkeen kun varsinaisesta suorituksesta on kulunut vuosi. Ja tälle on ihan fiksu peruste. Muuten näitä peruskurssien arvosanoja koroteltaisiin loppuvuosina kun ne silloin ovat "helppoa asiaa". Eikä keskityttäisi niihin syventäviin kursseihin. Kannattaa lähtökohtaisesti opetella että kun jotakin lähtee tekemään, tekee sen kerralla kuntoon. Ette voi aikanaan työmaailmassakaan lähte tekemään esin huonoa työtä ja sitten parantamaan sitä. Ainakaan samassa työpaikassa :-) - VL

Q: Miten sellaiset opiskelijat, joilla ei ole ollut mitään aikaisempaa ohjelmointikokemusta, ovat menestyneet tällä kurssilla aikaisempina vuosina?

A: Pääsääntöisesti hyvin tai erinomaisesti kun lakkaavat suremasta sitä että "ovat ainoita", koska kuten luennolla katsottiin yli puolet on tässä veneessä. Päinvastoin ne, joilla on mennyt huonosti aikaisemmin (ovat uusimassa), menestyvät usein huonosti kun eivät toisellakaan yrittämällä älyä lähteä tekemään töitä. Varsinkin kun aluksi asia tuntuu tutulta edellisen kerran jäljiltä. - VL

Q: Onko läpipääsytilastoissa näkynyt hybriditoteutuksissa eroja siitä, kuinka suuri osuus etänä tekijöistä vs paikan päällä vs sekä että tekevistä on päässyt läpi kurssista? I.e. onko suoritusmuodolla väliä läpipääsyn kannalta?

A: Ei ole vielä hybriditoteutusta ollut. 2019 oli normaali, 2020 oli etänä ja kaikkien aikojen paras läpäisy. 2021 oli demoin 11 toiseksi paras, mutta sitten oli se lopun romahdus kun ei tullut niitä harkkoja ja tenttejä... Mun tulkinta on että jos sosiaaliset kontaktit hoituvat muuten, niin etä ei ole huono tapa opiskella tällaista missä vaaditaan paljon omaa keskittynyttä työtä. - VL

Q: Mihin siis demot palautetaan..?

A: Tehdään sillä kunkin demon sivulla niitä tehtäviä ja se on siinä. Se on silloin palautettu. Ja monessa tehtävässä kertoo pisteetkin valmiiksi. Osassa pitää itse antaa jos automaattinen arvostelu on liian työlästä/mahdotonta tehdä. Sitten on tehtäviä joissa automaatti antaa liian helpolla pisteitä ja niissä pitäisi noudattaa sitä sanomaani oppimistavoitetta: "7. Kyky vastata siitä, että mitä tekee on oikein ja toimivaa". - VL

Q: Kuinka täydellisesti pitää kurssin asiat osata jotta voi saada viitosen kurssista?

A: Perusasiat (funktiot, silmukat, muuttujat jne) aika hyvin. Sivupolut (kuten miten liittyy historiaan tms) ei tarvitse ulkoa osata. - VL

Q: tarviiko jonnekin merkata, jos on jo edellisen vuoden luentokirja kotona eikä tarvitse uutta? :)

A: silloin ei vaan merkkaa mihinkään että tilaa :-) - VL

Q: Voiko jatkaa vanhaa harjoitustyötä, jos on jäänyt se kesken aikaisempana vuonna? Vai pitääkö keksiä kokonaan uusi projekti?

A: Jatka vanhaa, mutta perehdy siihen huolella että ymmärrät mitä siihen asti on tehty. Monesti uudelleensuorittajilla on se ongelma että asiat näyttävät tutulta ja ei tarvitsekaan tehdä mitään ja yhtäkkiä menee ohi se hetki jolloin ei olekaan tuttua enää :-( - VL

Q: Onko harjoitustyö suositeltavaa toteuttaa pelinä? Vai mikä on yleensä suosituin toteutustapa?

A: Tässä ei voi suositella. Jokaisen pitää itse päättää mistä tykkää, se on tärkeintä. On tyhmää tehdä ohjelmaa asiasta josta ei tykkää. Jos pelit kiinnostavat, niin se on hyvä valinta. Jos ei niin sitten jotakin muuta. Yleensä jotakin pientä datan yhdistämistä tai käsittelyä. - VL

Q: Minkälaisia muita harjoitustöitä - pelien lisäksi - on menneinä vuosina toteutettu? Onko tästä antaa käytännön esimerkkejä?

A: Hyvä käytännön esimerkki on tuo: Työaikaraportti tutorial. Tietyssä mielessä se näyttää noiden luonteen. Meillä on jotakin dataa (tiedostoja), joista tehdään jonkinlainen selkeämpi yhteenveto. Tuo sitten jatkuu niin, että lisäkurssia varten tehdään käyttöliittymä joilla noita aikoja voidaan syöttää. Eli samanlaisia voisi olla vaikka hakea tuulennopeuksia sääsivuilta ja tulostaa niistä miten nopeudet vaihtelevat vuodenajoittain (=saadaanko tuulienergiaa :-). Tai miten dollarin kurssin on kehittynyt, miten polttoaineiden hinta on muuttunut jne. Toki se voi olla ihan karkea peli (oak ei ole JyPeli-peli) tyyliin:

Paljonko on 1+3 >4
Hienoa!
Paljonko on 3-4 >1
No ei tokkiinsa, yritä uudelleen
Paljonko on 3-4 >..... jne ...

Q: Saako demosta pisteitä jos ei osaa ratkaista tehtävää palautuspäivämäärään mennessä, vaan vasta demonpalautusten jälkeen?

A: Ei saa tietenkään, koska vastaukset julkistetaan ma klo 14:00. Mutta sen jälkeen ne on PAKKO muuttaa oikeiksi vastauksiksi, jotta jokainen on varmasti käynyt oikeat vastaukset läpi. Ja nimenomaan ajatuksen kanssa, ei kopioiden. Kannattaa käydä pääteohjauksissa, niin niissä saa apua noihinkin. - VL

Q: Onko rajaa kuinka monessa ohjauksessa voi käydä?

A: Ei useammassa kuin niitä järjestetään :-) Eli ei rajaa. - VL

Q: Millainen tenttitilaisuus on? Tarvitaanko siinä omaa tietokonetta?

A: Tehtävät vähän kuten demo 11. Tehdään omalla koneella valvottuna Agorassa. Hätätilassa mikroluokassa. Mahdollisuus tehdä etänä jos "allekirjoittaa" suostumuksen videovalvontaan. - VL

Q: Huomasin tämän viikon 39 demopistetaulukossa maininnat "ti: bonus ja pe: HT1" Mihin nämä viittaavat? Ainakin harjoitustyösuunnitelman tekemiseen, mutta bonus jäi mietityttämään?

A: Tästä oli luennolla puhetta, eli jos palauttaa ht:n vaiheen ajoissa, saa bonuspisteen. Lisäsin vielä maininnan kurssin kotisivulle ja HT-pääsivulle. - VL

Q: Tuleeko bonuspisteet siis demopisteisiin mukaan? Eli esim demosta saa 7p ja yhden bonuspisteen niin viikon pisteet ovat 8p?

A: Ne lisätään suoraan kurssin pisteisiin, eli ovat paljon enemmän kuin yksi demotehtävä. - VL

Lisää kysymys

**Q:** ⁞

**A:** -

Mobiililaitteella ei mahdollista lisätä kysymystä vaan comment.

VL: Tarkennatko. Kokeilin iPad ja Android puhelin ja toimi.

VL: Ei ole muuten kyse laitteesta, vaan et ole ilmoittautunut kurssille.

06 Sep 22 (edited 06 Sep 22)

2. Työkaluista

Q: Onko mac koneelle omaa ohjetietokantaa?

A: Macille löytyy omia ohjeita täältä. Ohjelmointikielelliset seikat menevät kuitenkin tismalleen samoin kuin Windowsilla. Jos löytyy jotain työkalujen puolelta ongelmaa jota ei tuolta löydy, tai on väärin, jätä viereen kommentti niin selvitetään. -MR

Q: Jos on sekä Windows-kone ja MacOS -kone niin tulisiko suosia jomman kumman käyttöä toisen yli?

A: Valitettavasti kurssin työkalut toimivat himpun paremmin Windowsilla. Mutta myös Macillä pärjää. Kannattaa kokeilla kummastako itse tykkää enemmän. - VL

Q: Mitä ohjelmistoja kurssia varten täytyy ladata?

A: Katso työkalujen sivu. Tuon löytää aina tuolta ylämenusta Työkalut-kohdasta. - VL

Q: Käytetäänkö kurssilla GitHubia?

A: Mieluummin JYU:n gitlabia. Pysyy oikeudet yms paremmin kontrollissa. Mutta voi käyttää GitHubiakin jos väittämättä haluaa.

Q: Onko kaikki ohjelmat esim. Visual studio asentaa Tim:n kautta vai pystyykö kurssia tehdä omalla versiolla ?

A: Siis mitäänhän ei asenneta TIMin kautta, vaan TIMiisä on ohjeet ja linkit miten niitä asennetaan. Jos sinulla on jo VS2022, niin toki sitä voi käyttää. Silti voit tarvita siihen JyPeli ja ComTest -liitännäiset lisäksi. - VL

Q: Työkalujen ComTest asennusohje sivun yläreunassa lukee huutavalla fontilla "Huom! ohjeet alla eivät vielä toimi. Asenna ComTest myöhemmin.". Onko tämä huomio yhä voimassa? Ohjeita seuraten en pääse pitkälle kunnes asennus lakkaa etenemästä niinkuin ohjeiden mukaan kuuluisi.

A: Syksyllä 2022 asennus ei tosiaan vielä toimi kaikille Maceille, ongelmaa tutkitaan, Mutta tätä ei tosiaan vielä tarvita, eli seuratkaa tilannetta. - VL

Q: Onko tietokoneelle ns alarajaa? Eli minkälainen tietokone pitää ainakin olla, että kurssia on hyvä suorittaa?

A: Katso Millainen kone kurssille. - VL

Q: Mikä on paras tekstieditori? Tai onko niissä eroja?

A: Niissä on eroja :-) Yksi tykkää yhdestä ja toinen toisesta. Käyttää sitä mikä tuntuu hyvälle. - VL

Q: Voiko saada opetusvideota siitä, miten Sublime Text -ohjelman saa avattua suoraan komentoriviltä Macilla? TIM:issä yritetty jo kahden eri ohjeiden mukaisesti, mutta toiset ohjeet eivät toimineet omalla koneella, toisissa ei oltu avattu tarkemmin miten piilotetun .profiles kansion/tiedoston saisi avattua komentoriviltä ja muokattua sitä?

A: En itse käytä tuota, joten en jaksa videotakaan tehdä (ja opetella käyttämään). Nämä editorit ovat makuasioita. Eli en ehdota käytettäväksi tähän aikaa. Näihin tehtäviin pitäisi riittää tuo
open -e Lumiukko.cs.

Q: Kannattaako Alice ohjelma ladata jos aikaa koodata tulevaisuudessakin?

A: Se on vain esimerkki erilaisesta tavasta koodata. Uskooko idean videon katsomisella vaiko kokeilee itse? Sen jälkeen sitä ei tarvita. Jokaisen pitää itse miettiä kauanko aikaa kannattaa panostaa tuon tavan ymmärtämiseksi. - VL

3. Eri kielistä

Q: Onko eri kielille esim.C# niinsanottua sanakirjaa, jos kaikki käskyt eivät muistu heti mieleen?

A: Varmaan paras referenssi kaikkiin "käskyihin ja koodisanoihin" löytyy Microsoftin omasta dokumentaatiosta. -MR

A: Muista myös: TIMin C#-pikasyntaksi. - VL

Q: Mitkä olisivat parhaita tietolähteitä tai kirjallisuutta ohjelmoinnin perusteista, jotka loisivat vahvaa perustaa eri kursseille ja ohjelmoinnin ymmärtämiseen?

A: Yleisesti C#/ohjelmoinnin alkeet on kurssin monisteessa kyllä käyty läpi. Muille kielille en nyt osaa suoraan sanoa mitään tiettyä opasta. Yleisesti kun osaa yhden kielen, toisen opettelu on paljon helpompaa. Mutta esimerkiksi Javascript opasta löytyy täältä -MR

Q: Kannattaako useita ohjelmointikieliä opiskella samaan aikaan.

A: Jos aikaa ja innostusta riittää niin toki. Ohjelmoijana on hyödyllistä tietää ja ymmärtää että on erilaisia kieliä, sekä että niillä on eroavaisuuksia toiminnankin puolelta. Suomea ei voi kääntää englanniksi sanasta sanaan, sama pätee myös ohjelmointikieliin. -MR

Q: Kuinka montaa ohjelmointikieltä olisi hyvä osata, jos haluaa tulevaisuudessa työskennellä ohjelmoinnin parissa?

A: Kunhan nyt ensin oppii muutaman suhteellisen kunnolla, jotta oppii sitten oppimaan lisää. Kieliä tulee ja menee. Perusajatus säilyy. - VL

Q: Mitä ohjelmointikieliä olisi hyvä opetella / arvostettuja töiden kannalta?

A: Tärkeintä on opetella oppimaan. Kieliä tulee ja menee ja siksi pitää opetella ymmärtämään yleisempi abstraktio ohjelmoinnin päällä. Kurssilla käytetään osin nimenomaan siksi C#-kieltä, että sitä on kohtuullisen helppoa siirtyä muihin kieliin. Ja sen jälkeen niitä muita kieliä voi opetella rupeamalla kirjoittamaan niillä ohjelmia. Tästä jotkut ovat sitä mieltä, että "maassa maan tavalla", eli että pitäisi opetella kunkin kielen erikoistemput. Itse olen sitä mieltä että niitä oppii sitten kun kirjoittaa ja katsoo miten muuta käyttävät kieltä. - VL

Q: Mikä kieli on aloittelijoille paras?

A: Sellaista ei olekkaan. Jos tehdään yksinkertainen "lasten kieli", niin sitä ei sitten käytetä missään ja motivaatio sen käyttämiseksi menee. Meillä on valittu C# ja meidän mielestä se on paras. Joku toinen on toista mieltä. Kieliasiat johtavat aina vain sotiin :-) - VL

Q: Onko C# opettelusta hyötyä muihin ohjelmointikieliin?

A: Nimenomaan siksi se on osin kurssille valittu. Toinen syy on se, että JyPeli tehtiin C#:ille aikanaan. C# on nykyaikainen tehokas kieli jossa on pitkällä kaikki uudet ominaisuudet. Mutta sitä voi käyttää myös "vanhanaikaisesti". Eli minusta nimenomaan siitä on helpompi liikkua eri suuntiin kuin jostakin "ääripäästä" valitusta kielestä. Esimerkiksi Python pohjilta on paljon pidempi matka C++:aan. Samoin hyppy Javaan on helppo C#:ista. Siksi Ohj2:lla käytetään Javaa, että huomataan tuon siirtymän helppous ja saadaan uskoa siihen että toiseen kieleen voi siirtyä kohtuullisella vaivalla. En valitsisi kurssille kieltä, jonka toimivuuteen en itse uskoisi. Ja toimivuudella tarkoitan sitä, että sillä voi tehdä ja tehdään oikeita isoja ohjelmia, mutta että sillä voi myös aloittaa ohjelmoinnin. Motivaation kannalta tärkeää on että kieli on uskottava. Mutta pitää muistaa että kyse on ohjelmointikurssista ja C# on vain esimerkkinä. Oikeasti ei ole tarkoitus opetella C#:ia, meillä jää valtava määrä sen potentiaalista käyttämättä. Ihan kuin ette koulussakaan opettele kaikkia ruotsin sanoja :-) Tarkoitus on opetella ohjelmointia ja sen ajattelutapaa. Novelinkin voi kirjoittaa monella eri kielellä, mutta helpointa on aluksi aloittaa jollakin. - VL

Q: Soveltuuko joku tietty kieli paremmin jollekkin käyttöjärjestelmälle kuin toinen, vai onko kielien käyttö enemmän käyttötarkoituksesta kiinni?

A: Kieli ei hirveästi liity käyttöjärjestelmään. Toki Applen Swift on tehty heidän tarkoituksiinsa, mutta toimii sekin muissakin järjestelmissä. Eri asia on sitten kirjastot. Esimerkiksi Microsoftin graafisten käyttöliittymien tekemiseen tarkoitetut koodit eivät sitten toimikkaan muissa järjestelmissä, vaikka C# sinällään toimii. Eli jos halutaan tehdä graafisia käyttöliittymiä eri alustoille, tarvitaan joko jokaiseen oma kirjasto tai sitten yleiskäyttöinen kirjasto kuten esimerkiksi QT. Nykyään tätä tosin kierretään aika paljon niin, että tehdään WWW-sovellus, jolloin vastuu itse käyttöliittymän näyttämisestä jää selaimelle. Ja siitä taas ilo alkaa, kun eri selaimet toimivat eri tavalla ja tarvitaan kirjastoja hävittämään selainten välisiä eroja. TIM on hyvä esimerkki sovelluksesta, joka selaimen ansiosta toimii puhelimesta työasemiin melekin samalla tavalla. Erikseen koodattuna tämä vaatisi valtavati eri versioita. Sitten itse TIM-palvelin (kirjoitettu suurimmaksi osaksi Pythonilla, valitettavasti) toimii konttiteknologian ansiosta melkein millä vaan käyttöjärjestelmällä. Oikeasti noissa konteissa ajetaan sitten Ubuntua. Javan (ja C#:in) ideana on että koneeseen asennetaan "pieni" ohjelma (esim. Java-virtuaalikone), joka ajaa ko kielellä kirjoitettua ja käännettyä ohjelmaa. Näin saadaan sama käännetty ohjelma ajettua useassa eri käyttöjärjestelmässä. C:n (ja myös esim C++:n) ideana on, että kullekin käyttöjärjestelmälle on tehty oma kääntäjä ja se kääntää kieltä järjestelmän natiiviksi koodiksi, joka sitten ajetaan. Pythonia taas tulkitaan perusmuodossaan koko ajan kun sitä ajetaan. Silloin tuo Python tulkki pitää tehdä järjestelmäkohtaisesti. Siksi Python on paljon noita aikaisemmin mainittuja kieliä hitaampi. Kuitenkin sitä käytetään paljon esimerkiksi tosi paljon laskentatehoa vaativissa tekoälysovelluksissa. Toiminta perustuu silloin siihen, että itse Python-ohjelmasta kutsutaan esimerkiksi C-kielellä kirjoitettuja funktioita. Ja suurin osa laskenta-ajasta menee noissa funktioissa, jolloin suhteessa hitaammin suoritettavat Python osat eivät jää merkitykselliseen asemaan. Eli kielet eivät ole niin tärkeitä kuin ne kirjastot mitä niille on olemassa. Esimerkiksi kurssin C# valintaan isossa roolissa oli se, että JyPeli tehtiin sillä. - VL

Q: Ensimmäisellä luennolla mainittiin pankkialalla käytetty Cobol-kieli. Tuleeko kyseinen kieli olemaan käytössä tulevaisuudessakin ja suositellaanko sen opettelua mahdollisten työtehtävien vuoksi?

A: Kaunako tuo buumi kestää on toinen juttu. Ja montako on noita firmoja lopulta jotka vielä ylläpitävät tuota vanhaa? Lisäksi Cobolin lisäksi siinä tärkeää on taloustieteen osaaminen, koska se on noiden ohjelmien sovelluskohde. Yleensäkin pelkällä kielellä ei tee mitään. Eli ensin kehittäisin hyvän osaamisen muilla kielillä ja sitten jos sattuu olemana kontakteja joilla pääsee käsiksi noihin firmoihin, niin selvittää kannattaako panostaa. - VL

Q: Onko ilmeisesti vähän vanhempi Perl-kieli kovin erilainen kuin esim. C#?

A: Niillä kirjoitetaan aika eri tavalla. Karkeasti voisi sanoa että Perl on tehty merkkijonojen käsittelyyn ja C# on yleiskäyttöinen kieli. Toki kummallakin voi tehdä osin samoja asioita. Aloittelijan kannattaa olla varovainen Perlin kanssa. - VL

Q: Ajatuksia miltä ohjelmointikielien tulevaisuus näyttää? Mikä tulee muuttumaan?

A: Ennen vanhaan oli sanonta "Fortran on ikuinen". No se on ehkä vähän menettänyt merkitystään. Mutta kyllä nykykielten n. TOP 10 tulee olemaan pitkään. Mutta kuten jossakin muualla sanoin, niin kirjastot tulevat ratkaisemaan sen mikä kieli menestyy. "Täydellinenkään" kieli ei menesty jos sille ei ole kirjastoja. Ja siksi mm Java tulee säilyttämään asemiaan pitkään (tai Java-virtuaalikoneille tehdyt kielet kuten Kotlin). Muuten työkalujen puolella näyttä siltä, että erilaiset "tekoälykoodintäydentimet" tulevat, eli ohjelmoija kirjoittaa vähän ja sitten "tekoäly" etsii maailman versionhallintojen koodeista saman kaltaisia ja ehdottaa sellaista. Itse pidän pikkuisen hömppänä että joku tietorakenteesta etsimen tuolla tavalla kirjoitetaan omaan koodiin. Koska jos jotakin koodinpätkää tarvitaan jatkuvasta, niin se on aliohjelman paikka ja tuollainen täydentely voi asiaa osaamattoman käsissä jopa kohtaa huonompaan koodiin. Mutta joku voi olla eri mieltä :-) Sitten funktionaaliset piirteet kasvattavat kielissä jatkuvasti merkitystään. Jossakin kouhkataan Zero-code perään (eli että ohjelmia kirjoitetaan kirjoittamatta koodia). Tällainen voi toimia jos tehdään jotakin jo tehtyjä juttuja uudestaan, kuten kauppapaikkoja yms. Mutta en näe mitään tapaa kirjoittaa jotakin TIMin kaltaista ilman että takana on kovaa koodausosaamista. - VL

Q: Miksi python on niin suosittu kieli?

A: Aika helppo aloittaa, perussyntaksi yksinkertainen, ei tarvitse hirveästi esitellä asioita. Sitten on nykyjään tosi laajat kirjastot moneen käyttöön. Eli monesti ei käytetä Pythonoa, vaan Python toimii "liimakielenä" kirjastokutsuille. - VL

Q: Mikä onkaan syntaksi? Miten se määritellään? Monisteessa puhuttiin vain syntaksivirheistä ja sanastossa ei ollut. Voisiko syntaksi sanan määritelmän lisätä sanastoon?

A: Lisätty sanastoon. Katso myös monisteen luku Syntaksin kuvaaminen sekä luento 6. Tosin 1. kerran kun monisteessa on sana syntaksivirhe, niin sen perässä on harmaa laatikko, jossa termi on selitetty :-) - VL

Lisää kysymys

**Q:** ⁞

**A:** -

4. Kurssin sisällöstä

Q: Onko luennoilla mitään ns. luentotehtäviä vai ovatko ne enemmän vain kuuntelemista ja mahdollista muistiinpanojen kirjoitusta?

A: Kyllä siellä aika usein on myös tehtävääkin. Lisäksi usein kirjoitan luennolla ohjelmia ja jos koneen käyttö sujuu, voi yrittää itse kirjoittaa samaa tahtia. Tässä ei kuitenkaan voida odottaa "hitaimpia". Toki luennot videoidaan, jolloin videon voi pysäyttää ja siten kirjoittaa itse samaa tahtia. Mutta toki luentojen rooli on aika pitkälle esitellä asioita ja antaa kuva siitä, mitä pitäisi opiskella. Yksin luennoillahan ei opi mitään. Mutta ei oikein ilman niitäkään :-) - VL

Q: Tehdäänkö kurssilla tehtäviä jossain tahdissa vai meneekö kaikki oman osaamisen mukaan?

A: Luennoillakin on tehtäviä joista osa odotetaan tehtävän luentojen tahdissa. Sitten luennolla kirjoitetaan malliksi ohjelmia ja siinä perässä pysyminen voi olla haastavaa kun ei voi jäädä odottamaan kaikkia. Tässä jotkut ovat ottaneet tavaksi tehdä noista sitten luentojen videointeja seuraten omalla ajallaan. Demot eli viikoittaiset kotitehtävät tehdään omalla ajalla omaan tahtiin, mutta (pääte)ohjauksissa niihin voi kysyä apua sen jälkeen kun varsinaiset pääteohjaustehtävät on tehty. - VL

Q: Edetäänkö kursseilla kuinka nopeasti?

A: Joidenkin mielestä liian nopeasti ja toisen mielestä liian hiljaa :-) Opintojen viiteen vuoteen pitää saada mahtumaan melkoinen määrä asiaa jotta uskaltaa päästää ihmiset "vapaaksi". Tämä asettaa kullekin kurssille aika tiukat raamit, jossa pitää toimia. Tämä kurssi vaatii keskimääräiseltä opiskelijalta sen n. 15 tuntia viikossa työtä. Työtä pitää siis tehdä luentojen ulkopuolellakin paljon ja se määrää osin sitä tahtia. Yhtään viikkoa ei kestä jättää väliin. - VL

Q: Minkä tyyppinen ja kuinka iso kurssilla tehtävä harjoitustyö on?

A: Sen voi rakentaa hyvin pitkälle omien mieltymysten ja haluamiensa haasteiden mukaan. Katso kurssin kotisivun lopussa olevista videoista millaisia pelejä kurssilla on tehty. Mutta harjoitustyö voi olla myös jonkin datan analysointiakin, eli hyvinkin kaukana peleistä. Tärkein tavoite kurssin kannalta on että siinä joutuu käyttämään kaikkia kurssin tärkeitä oppimistavoitteiden tuloksia. - VL

# parityo

Q: Tehdäänkö harjoitustyö yksilö työnä vai onko se ryhmä työ?

A: Mieluusti parityönä, mutta jos ei ole tuttua paria, ei väkisin kannata pariutua. - VL

Q: Mikä on yleinen kompastuskivi tällä kurssilla, jos sellaista on?

A: Ei käytä tai varaa tarpeeksi aikaa työlle. - VL

Q: Kuinka suuri taitoero on kurssin arvosanojen välillä? (Esim. kuinka paljon arvosanaksi 4:n saaminen vaatii verrattuna 3:een?)

A: Kun tentti tekee aika suuren osan kuitenkin arvosanasta, niin huono päivä voi toki pudottaa korkeammankin arvosanan ansaitsevan 3:een. Mutta jos itse olen ottamassa töihin, niin vähän vierastaisin 3/5:sta. - VL

Q: Käydäänkö demojen haastavimmatkin tehtävät läpi demojen vastauksissa?

A: Jos suinkin ehditään. Joskus perustehtävissä menee niin kauan ettei ehdi. Mutta mallivastaukset jaetaan kaikista ja niistä voi sitten itse katsoa. Yksi vuosi kokeiltiin selaista, että toinen demoryhmä oli niille Bonus ja Guru-tehtäville, mutta se kuoi pois kun ei ollut kävijöitä :-( - VL

Q: Onko kurssilla joitakin tehtäviä, jotka vuodesta toiseen tuntuvat olevan opiskelijoille haastavimpia?

A: Tuo sanamuoto jotenkin vaaittaisi että vaikeus kasvaa vuosittain samalla tehtävällä :-) Mutta jos tarkoittaa että samat tehtävät ovat joka vuosi haastavia, niin toki. Jos alussa jättää tekemättä tai ymmärtämättä, niin väkisin loppupään tehtävät ovat vaikeita. Ne vuosittaiset notkahdukset siinä kuvassa johtuvat siitä, että jos joskus notkahdus on esim demon 4 kohdalla ja sitten "väkisin" viemme seuraavan vuonna ihmisiä pidemmälle, niin se putoaminen tapahtuu joka tapauksessa myöhemmin. - VL

Q: Pitääkö pääteohjauksiin aina osallistua, vai tarviiko jos jollain viikolla vaikka tehtävät onnistuu ilman ohjaustakin?

A: Pääteohjausten tarkoitus on pitää huolta, että jokainen saa tehtyä viikon tärkeät tekniset asiat. Jos ne onnistuvat omatoimisesti ja demoissa ei tarvitse apua, niin ei tarvitse käydä. Mutta tavalla tai toisella ne pääteohjaustehtävät on tehtävä. - VL

Q: Kuinka kauan harjoitustyön tekeminen vie keskimäärin aikaa?

A: Kaiken mahdollisen :-) Tuo riippuu ihan siitä mitä siihen suunnittelee tehtäväksi. Nuorten pelikurssilla hieman pienemmillä tavoitteilla 12+ nuoret saavat tehtyä sen viikon kurssin aikana, jossa pelille on käytössä muutamia tunteja päivässä. Eli se on aika selkeä alaraja. Hienoimmat pelit tuolla ovat useiden kymmenien tuntien työn tulos (mutta myös oppi on parempi). Eli keskiarvo on tuolla välissä. Mutta se on ihan mahdollista tehdä sille kurssilla allokoidulla ajalla. Ks kotisivun tuntijaottelu. - VL

Q: Kannattaako seuraavan viikon asiaa tutkia jo etukäteen ja kuinka laajasti?

A: Vähintään lukea ne **M:**-merkityt kohdat monisteesta televan viikon luentojen kohdalta. Toki fiksu liike on yrittää tulevan kerran demojakin etukäteen, jolloin luennolla saattaa sitten paremmin loksahtaa mitä tarvitaan. Mutta aina kannattaa olla etupainotteisesti liikkeellä. Mitään pahaa ei tapahdu vaikka lukisi koko monisteen etukäteen :-) - VL

Q: Onko pääteohjaustehtävät pakollisia? Jos demotehtävät kuitenkin tekee onnistuneesti.

A: Siis tehtävinä ovat pakollisia. Eli tämän kerran jälkeen pitää osata nuo käännöshommat ja tulevan viikon jälkeen VisualStudion käyttö, sitten debuggaus jne. Mutta niitä ei ole pakko tehdä ohjauksissa jos onnistuu itsenäisesti. Ja jos saa nimenomaan samat tavoitteet tehtyä itsenäisesti, niin OK. Kurssilla kuitenkin oletetaan että jokainen on vähintään tietoinen mitä milläkin kerralla opeteltiin ja pystyy ne ymmärtämään ja tekemään. Oikominen on aina vaarallista... - VL

Q: Linkki "https://kurssit.it.jyu.fi/ITKP102/2022s/luento/audio" ei toimi. Löytyykö 2022s luennot jostain pelkkänä audiona?

A: Pistin tekeytymään. Kukaan ei ole pitkään aikaan käyttänyt, joten en pitänyt kiirettä. Tunnin päästä ehkä on nuo kaksi ekaa. - VL

Q: Hei! Tentti on siis 2.12. niinkö? Klo 12? Voiko tentin tehdä etänä, vai tuleeko olla Jyväskylässä? Asun muualla kuin Jyväskylässä, joten sillä kyselen.

A: Voinee tehdä etänä, mutta silloin pitää antaa suostumus videovalvontaan. Jos siihen ei suostu, pitää itse hommata joku luotettava valvojataho (esim koulu ja rehtori tms). Tai sitten tulla Jyväskylään. - VL

Lisää kysymys

**Q:** ⁞

**A:** -

5. Jypeli

Q: Selittäisitkö Jypelin perusajatuksen lyhyesti?

A: JyPeli on niin sanottu framework. Eli ideana on että kaikki likainen työ tapahtuu itse "Kirjaston" puolella. Laitoin kirjaston lainausmerkkeihin, koska perinteisissä ohjelmakirjastoissa ohjelman kirjoittajan pääohjelmasta kutsutaan kirjaston aliohjelmia. JyPelin kaltaisissa frameworkeissä päinvastoin, eli "pääohjelma" on kirjastossa ja sieltä kutsutaan ohjelman kirjoittajan tekemiä aliohjelmia. Esimerkiksi niin, että ensin kutsutaan aliohjelmaa Begin, jonka tehtävän on alustaa pelissä olevat "oliot". Sitten oliota alkavat liikkua fysiikan sääntöjä matkien ja esimerkiksi törmätessään seinään tai toisiinsa, kutsutaan ohjelman tekijän kirjoittamaa tapahtumankäsittelijää, jossa päätetään mitä törmänneille olioille tehdään. Tätä kutsutaan tapahtumapohjaiseksi ohjelmoinniksi. JyPeli on suunniteltu niin, että sen ideat vastaisivat mahdollisimman paljon nykyaikaisten graafisten käyttöliittymien ohjelmointia. Kuitenkin niin, että Nuorten pelikurssilla 12+ -vuotiaat nuoret kykenevät sen avulla tekemään oman pelinsä. JyPeli pyrkii jättämään itse ohjelmoinnin näkyville. Tämä poikkeaa monien nykyisten pelikirjastojen, kuten esimerkiksi Unityn, ideologiasta. Ideaa varten katso:

  • Jypelin suoritus -kaavio miten oma koodi on suhteessa Jypelin-koodiin (Framework)

Käyn tuon aikanaan joskus luento 14 kieppeillä läpi. - VL

Lisää kysymys

**Q:** ⁞

**A:** -

6. Yleistä ohjelmoinnista

Q: Mikä ohjelmoinnin oppimisessa on yleensä haastavinta, jos on vasta-alkaja?

A: Uskoa että se vaatii työtä ja aikaa. Kukaan ei ole seppä syntyessään. - VL

Q: Kuinka ohjelmointitaitoja voi hyödyntää jokapäiväisessä elämässä?

A: Sitä paremmin mitä enemmän osaa :-) Melkein joka päivä pitää tehdä jotakin rutiiniluontoista, jonka saa koodaamalla helpommaksi. Tosi nörtti parantaisi robotti-imurinsa algoritmia. Toinen tekee kodinlaitteille sähkönsäästöominaisuuksia. Yhdellä kaverilla oli liki 200 anturia ja säätökohdetta kotonaan. Itselläni usein nykyisin on tilanne, jossa TIMiin pitää kirjoittaa joku, missä toistuu liki sama teksti useita kertoja. Teen silloin silmukan joka hoitaa sen mun puolesta. Sitten ohjelma hakee mulle säätietoja jne... - VL

Q: Onko ohjelmointi kuinka raskasta tietokoneelle?

A: Tämä riippuu ihan tehtävästä. Yksinkertainen Bash-skripti toimii hyvin heppoisessa koneessa ja sen voi kirjoittaa tosi pienillä resursseilla. Sitten esimerkiksi TIMin kehittäminen on takkuista 16GB muistilla varustetussa koneessa. Itselläni on nykyisin 64GB muistia. Ohj1 kurssille tuo 16GB muistia riittää. Jos muistia on vähän ja/tai koneessa ei ole SSD-levyä, niin kaikki on hidasta. Mutta esim 80-luvun alussa 640 kB oli jo ruhtinaalinen muisti parin lerpun kanssa (kovaleyvä ei silloin ollut lainkaan). Nälkä on kasvanut tässä vuosien varrella syödessä. - VL

Q: Voitko suositella ohjelmointi 2 kurssia vaikka tämä kurssi tuntuisikin vaikealta?

A: No kyllähän tämän kursin alkaessa pitäisi lähteä siitä, että opiskelee tämän niin ettei tunnu vaikealta :-) Ei pidä sotkea keskenään kahta asiaa: työläs vs vaikea. Sitten on oikeat opiskelutavat: pitää opetella ymmärtämään asioita, silloin uusikaan asia ei ole vaikeaa. Mutta jos asioita opettelee kikoilla tai ulkoa, niin ei pysy soveltamaan ja silloin jokainen uusi asia on taas vaikeaa. Ohjelmoinnin perusajatus on helppoa, sitä turhaa mystifioidaan ja puetaan vaikeaksi se, että ei tehnyt tarpeeksi työtä ymmärtääkseen. Mutta lyhyesti: Jos tästä kurssista saa 1/5, niin Ohj2 on kyllä haastava. - VL

Q: Jos vasta-alkajana joutuu jonain viikkona tekemään vähän vähemmän esimerkiksi sairastumisen vuoksi, tippuuko kurssilla helposti kärryiltä?

A: Sitten pitää toisella viikolla ponnistella enemmän. Ja aika paha sairastuminen pitäisi olla, ettei esim voi edes lukea mitään tai katsella luentojen nauhoituksia. Sitten äärihädässä on mahdollisuus siirtyä avoimen yliopiston aikatauluttamattomaan versioon. Mutta tosiaan, asia kertyy aina edellisen päälle, joten hirveästi ei kestä sitä että viikkoja jätettäisiin välistä. - VL

Q: Koodaamisen sisäistäminen on ollut minulle hankalaa menneisyydessä, ja olen usein taipunut ulkoa opettelemaan tiettyjä komentoja, mikä ei ole järkevää millään tasolla. Vinkkejä?

A: Koitat keskittyä ymmärtämään. Ja ajattelemaan arkimaailmaa. Lähes kaikelle löytää vastineen arkimaailmasta. Älä mystifioi! - VL

Q: Minkä sanoisit olevan yleinen väärinkäsitys ohjelmoinnista?

A: Että kieli on tärkein - VL

Q: Miten nopeasti oppii ymmärtämään ohjelmoinnin logiikan?

A: Varmaan hyvin henkilökohtainen asia. Tunneista vuosiin... - VL

Q: Millaisella opiskelutaustalla on koettu olevan "helpompi" omaksua ohjelmointia?

A: Ohjelmointi on täsmällistä. Matematiikka on täsmällistä. Eli niissä on samankaltaista ajattelua. Se ei estä että ei-matemaatikollakin voisi olla oikeanlaista ajattelua tai oppia sitä. - VL

Q: Mihin aloittelijan kannattaa keskittyä tai kiinnittää erityistä huomiota ohjelmointia opetellessa?

A: Olemaan ahkera ja pyrkiä ymmärtämään, ei opettelemaan ulkoa. - VL

Q: Onko vinkkiä mihinkään hyväksi koettuun esim. nettityökaluun, jossa voisi hajoitella ihan vain perus koodinpätkien kirjoittelua että jäisi komennot päähän. Vrt. Dualingo mutta koodaamiselle.

A: Kyllä mää suosittelen ihan näiden meidän demojen tekemistä. Jos omat ei riitä, joka demon alussa on linkki Avoimen yliopiston aikatauluttomaan versioon Sitten on se meidän Demojen harjoittelu -sivu. Kyllä näitä käyttämällä jää se mitä tarvitsee. Ja muista että tarkoitus ei ole opetella ulkoa, vaan tietämään mistä löytää. Ja siihen meillä on mm tuo https://tim.jyu.fi/view/kurssit/tie/ohj1/materiaali/cssyntaksi - VL

Q: Osaatko sanoa missä määrin ohjelmointia tai sitä tukevia opintoja pitäisi ottaa muihin opintoihin verrattuna? Jos haluaa esimerkiksi soveltaa ohjelmointia johonkin omaan mielenkiinnon kohteeseen, miten paljon ohjelmointia/matematiikkaa/tilastotiedettä pitäisi olla, että olisi hyvä perusta, jonka päälle voisi sitten ottaa muita kursseja? Vai kannattaako keskittyä nyt ohjelmointiin yms, ja jälkeen päin täydentää omaa tietämystä muilta aloilta?

A: Järkeväähän olisi yrittää mennä sen oman suuntautumisvaihtoehdon suosituksilla ja pyrkiä siihen n. 60 op/vuosi. Tarkemmin en osaa sanoa kun en mielenkiintojasi tunne, mutta kuten silloin perjantain paneelissa tuli esille, tilastotiede ja datan käsittely yleensä on kova sana. Ja meiltä sitten jossakin vaiheessa tietty niitä tekoälynkursseja. Mutta jos esim liikunta kiinnostaa, niin hyvinvointiteknologiahan on myös kova ala. Jos todellinen numeronmurskaus (matemaattinen mallintaminen/optimointi) kiinnostaa, niin sitten analyysin ja lineaarialgebran osaaminen olisi tarpeen. Ohjelmoinnistahan pitäisi napsia kaikki meidän tarjonta. - VL

# olio

Q: Luennon materiaaleissa tulee moneisti vastaan termi "olio". Vastaako tämä englannin "entity":ä ja mistä termi on oikein peräisin? Se kuulostaa aina hieman hassulta kun oliolla viitataan yleensä johonkin orgaaniseen.

A: Enkkuvastine on object. En tiedä tarkkaan kenen toimesta ja miksi suomenkieleen on valittu sanoa olio. Mutta se on oikein hyvä termi, koska olio-ohjelmoinnin idea on tavallaan antaa kullekin oliolle "oma elämä", jossa se on itse vastuussa tekemistään. - VL

Q: Onko SQL:n kirjoittaminen ohjelmointia?

A: Tiukan tulkinnan mukaan ei. Ohjelmoinniksi monesti tulkitaan niin sanottujen Turing-täydellisten kielten käyttö. Alan Turing määritteli laskennallisuuden käsitteen 30-luvun puolivälissä. Käytännössä tämä tarkoittaa yleiskäyttöisiä ohjelmointikieliä kuten C, C++, Java, C#, Python jne. Lista on pitkä. Alkuperäinen SQL ei sisällä mahdollisuutta silmukoihin, mutta uusimmissa (SQL:1999) on mahdollisuus rekursioon ja sitä kautta sitäkin voitaisiin pitää Turing-täydellisenä kielenä. Joka tapauksessa SQL:ää kirjoitettaessa on pakko tottua tiukkaan syntaksiin ja se on tyypillistä monelle ohjelmointikielelle. Siksi SQL:n osaamisesta on hyötyä "oikeaan" ohjelmointiin. Kuten myös HTML:än osaamisesta vaikka senkään kirjoittaminen ei ole ohjelmointia. - VL

Q: Tarvitseeko olla matemaattisesti "lahjakas" jos haluaa tulla hyväksi ohjelmoijaksi?

A: En tiedä onko tuo matemaattisesti lahjakas miten määritelty? Se pärjääkö yliopistossa Analyysin yms kurssilla vai ei, ei välttämättä ole sama asia. Eli kyseessä on tapa ajatella "loogisesti" ja yksikäsitteisesti. Ja kyky abstraktoida asioita. Eli ymmärtää että metsässä on puita vaikka yksittäinen puu voi olla mänty tai kuusi tai jotakin muuta. Jos metsästä rupeaa laskemaan puita, niin silloin menee metsään :-) Mutta ensin pitää tutustua mäntyyn ja kuuseen että ymmärttää niillä olevan jotakin yhteistä. Ja siitä voi saada abstraktion puulle. Matematiikka on kyllä hyvä paikka harjoitella abstraktioita. Toki luonnolliset kielet ja niiden kielioppi sisältävät samanlaisia piirteitä. Kukaan ei voi opetella ulkoa kaikkia mahdollisia lauseita, mutta silti pitää osata tuottaa lauseita ja tulkita niitä. - VL

Lisää kysymys

**Q:** ⁞

**A:** -

7. Henkilökohtaista opettajalle

Q: Mikä on Vesa Lappalaisen suosikkikieli?

A: Se on aian se, millä tekee töitä. Jos vanhoja kaivaa, niin Pascal tai sen johdannainen Delphi. Aika verbaalinen kieli, missä ei hämyillä merkinnöillä piiloteta merkitystä. Ja tietty aikanaan konekieli (assembler), koska silloin kukaan ei muuttanut sitä mitä halusi sanoa :-) Mutta C# on kaikin puolin hyvä. - VL

Q: mikä on mielestäsi parasta ohjelmoinnissa

A: Onnistumisen tunnu kun saa jonkin pitkään pähkimänsä jutun toimimaan. - VL

Q: Mistä lähti oma kiinnostuksesi ohjelmointia kohtaan?

A: Harrastin autosuunnistusta ja ei ollut rahaa ostaa siihen tarvittavia mittareita. Ihan ensimäinen matkan mittaukseen tarkoitettu oli sellainen, että sitä mukaa kun matka edistyi (nopeusmittarin vaijeri tai Saab 96:n takapyörän napa pyöri), "painoi" halvan taskulaskimen +1 painiketta. Sitten sama piireillä tehtynä jne... - VL

Q: Mitä tulevaisuuden suunnitelmia sinulla on?

A: Vaikea sanoa, enää ei voi tavoitteeksi edes asettaa riippuliidon Suomen mestaruuden voittamista, koska nuoremmat ovat tulleet niin paljon paremmiksi. Työpuolella se olisi saada TIMiä tunnetummaksi ja muitakin sitä käyttämään. Mutta se on haastavaa. - VL

Q: Tykkäätkö kalastaa ?

A: En hirveesti, mää oon kalojen kaveri. Tosin kyllä loimulohi ja hyvä kuha maistuu :-) - VL

Q: Mikä on lempiohjelmointityösi, mitä olet tehnyt?

A: Se on aina se, mitä on kulloinkin tekemässä. Tällä hetkellä siis TIM (vaikka mun koodia siitä onkin murto-osa). - vl

Q: Täytyykö erinomaiseksi ohjelmoijaksi tulemiseksi olla kiitettävän hyvä matematiikassa?

A: Voihan samankaltainen ajattelutapa olla olemassa vaikka ei matematiikka-nimisessä aineessa olisi syystä tai toisesta loistanut. Oleellista siis on oppia abstarktoimaan asioita. Ja usein konkreettisten esimerkkien kautta. Meillä tuota muutamassa demossa harjoitellaan niin, että ensin on jonkin tasan tietyn asian tekevä juttu ja sitten se pitää muuttaa yleiskäyttöisemmäksi. Karkeasti niin, että kun näkee koiran, oravan ja hevosen, niin osaa luokitella ne vaikka nelijalkaisiksi. - VL

Q: Mitä karkkeja tunneilla heittelet?

A: Geisha mm. - VL

Q: Mitä mieltä olet etäopiskelusta, jos on ohjelmoinnissa täysin aloittelija?

A: Kuten näytin luennolla ne käppyrät, niin 2 viimeistä vuotta täysin etänä ovat kaksi parasta vuotta. Ei lähiopiskelu tuo muuta arvonlisää kuin että tapaa ihmisiä. Sekin on tärkeää, mutta ei itse asian kannalta. - VL

Q: Miksi TIMin backend kieleksi on valittu nimenomaan Python?

A: Osin sattumasta ja silloisten tekijöiden toiveesta. Korpissa ehkä jo vähän tuli Java nähtyä. Ja sitten vaihtoehdot ovat vähissä. Nyt jos aloittaisi en tiedä vaikka se olisi Rust. Python on kompastuskivi suorituskyvyn suhteen ja silloin ei älytty että miten laskentaintensiivinen TIMistä oikeasti tuleekaan. - VL

Q: Mikä on ollut haastavin ohjelmointiprojektisi?

A: Aina se meneillään oleva :-) Nyt tietysti TIM. - VL

Q: Miksi opetat/työskentelet juuri Jyväskylän yliopistossa?

A: Miksi en :-) Olen saanut yritystäkin leikkiä omassa yrityksessä aikanaan. Mutta eiköhän suurin syy ole että "virta vie"... - VL

Q: Onko Saab 96 hyvä menopeli?

A: Kyllähän sillä aikanaan pääsi paikasta toiseen. Vapaakytkin oli varuste jota ei juurikaan missään autossa ollut. Eli kun nosta jalan kaasulta, niin auto rullasi vapaasti kuten polkupyörä kun lopettaa polkemisen. Suuri päältä, pieni sisältä. Vasemman jalan jarrutus oli hyvä ajotekniikka :-) Helppo korjata nykyautoihin verrattuna. Moottorinkin sai harrastaja nostettua autotallin kattoon laitetulla taljalla. - VL

Q: Pelaatko mitään pelejä?

A: Nykyisin aika vähän. Edes lentosimulaattori ei kiinnosta enää :-( Toki opiskelijoiden harkkoja pitää kokeilla. Kun lapset olivat pieniä ja katsoivat kun tarkastan harkkoja (eli pelasin niitä pelejä), niin loihtivat lausumaan että: "Iskä, maksetaanko sulle tuosta?". Aikanaan kummallekin on nyt maksettu samasta :-) Jonkin verran jotakin seurapelejä joskus pelaan. Aika ei vaan riitä kaikkeen. Minusta kyllä riippuliitimellä kilpaa lentäminen on peliä :-) Tietokoneella PacMan ja Tetris olivat aikanaan suosikkeja. Ja tietysti TIM (eli The Incredible Machine), jonka kunniaksi meidänkin järjestelmän nimi on TIM (piti olla The Incredible Material, mutta koska vielä puuttuu suunniteltuja ominaisuuksia, niin se on "vaan" The Interactive Material). - VL

Q: Mikä sai aikoinaan sinut kiinnostumaan ohjelmoinnista?

A: Tuohon on jo vastaus tämän luvun alkupuolella. - VL

Q: Esikuva?

A: En muista että olisin fanittanut ketään erityisesti. - VL

Q: Mikä on ollut merkittävin ohjelmointiprojektisi?

A: Isoja on ollut 1997-2010 oman firman teollisuusautomaatio. 2000-2010 Korppi, nyt TIM kohta 10 vuotta. - VL

Q: Mikä on paras vuodenaika? Milloin on kaikista mukavinta ohjelmoida?

A: Silloin kun sataa, ei ole mitään tarvetta mennä ulos. Tai tuulee hullun lailla. :-)

Lisää kysymys

**Q:** ⁞

**A:** -

8. Lajittelemattomat

Lisää kysymys

**Q:** ⁞

**A:** -

9. Vastauksia joihin ei ole kysymystä

Älä tähän lisää jos sinulla oikeasti ei ole vastausta!

Lisää vastaus

**Q:** ⁞

**A:** -

10. Ohjeita

Jos haluat siirtää kysymyksen toiseen kategoriaan:

  1. Mene kysymyksen kohdalle jonka haluat siirtää.
  2. Aukaise edit-menu (kpl vasemmalla puolella klikkaa sinivihreää aluetta)
  3. Paina alhaalla olevaa kynän kuvaa.
  4. Valitse Cut paragraph.
  5. Mene kohtaa johon haluat siirtää kysymyksen.
  6. Ota taas edit menu ja sieltä Paste (jos se ei näy, paina taas kynän kuvaa)
  7. Avaa edit menu ja ota edit ja vastaile kysymykseen.

These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.