{!!!#- {id="Dixsjg7NbllG" .huomautus .hidden-print visible="%%'ohj1s19d11vika'|belongs%%" nocache="true"} **HUOMIO!** [Olen laittanut sinulle sähköpostia otsikolla: Ohj1: täydennä d11 kuntoon tai ota yhteyttä]{.red}. Laitathan kuntoon tai otat yhteyttä! !!!}
{!!! {id="Sq4t3qvIaFcE" rd="194920" rp="4ze4dPPT6NHE" visible="%%'ohj2s19viesti1'|belongs%%"} !!!}
{!!!#- {.huomautus .hidden-print visible="%%'ohj1tenttivika'|belongs%%" nocache="true"} **HUOMIO!** [Olen laittanut sinulle sähköpostia otsikolla: Sulta puuttuu kuittaus että tenttiaika käy! Käytkö kuittaamassa äkkiä!]{.red}. Käythän kuittaamassa! !!!}
{!!!#- {.huomautus .hidden-print visible="%%'ohj1s19email'|belongs%%" nocache="true"} **HUOMIO!** [Olen laittanut sinulle sähköpostia otsikolla: \ "***Saatko kurssin sähköpostia***..."]{.red}, jos sait tuon, niin kaikki OK. Jos et saanut, niin tarkista/korjaa Oma-palvelussa <https://account.jyu.fi/> postiosoiteesi. Tarkista positosoitteesi myös Korpissa `Viestintä/Postilistat`-sivulla. Erityisesti Ohj1-listat! Ja muista lukea ne postit joita et ole saanut Korpin [arkistosta](https://korppi.jyu.fi/kotka/servlet/list-archive/ohj1s18k/ind.html). Jos haluat tämän ilmoituksen pois TIM-sivuiltasi, laita Vesalle postia, jossa on käyttäjätunnuksesi ja tieto siitä, että olet vaihtanut osoitteet toimiviksi sekä lukenut arkiston. Kiitoksia. Vesa !!!}
{!!!#- {.huomautus .hidden-print visible="%%'ohj2s19viesti1'|belongs%%" nocache="true"} **HUOMIO!** [Sulta puuttuu Ohj1 suorituksia!]{.red} \ \ Eli tarkista sivulta: ><https://tim.jyu.fi/view/kurssit/tie/ohj1/2019s/eteneminen> mitä suorituksia sinulta puuttuu, ota yhteyttä luennoitsijaan <vesal@jyu.fi> ja kerro miten hoitelet nuo puuttuvat!\ \ Olethan huomannut, että [uusintatentti on 24.1.2020](https://tim.jyu.fi/teacher/kurssit/tie/ohj1/2019s/tenttiohjeita/uusinta) \ \ Kiitoksia. Vesa !!!}

Ohjelmointi 1/ Kysymyksiä ja vastauksia

Syksy 2019

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
  • AJK: Antti Juhani Kaijanaho (mm. erilaisten kieliin liittyvien kurssien pitäjä)
  • TK: Tomi Karppinen (Jypeli-kehittäjä)
  • AJL: Antti-Jussi Lakanen (Ohj1-kurssin luennoija keväisin)
  • VT: Ville Tirronen
  • JP: Jouni Potila (Ohj1-kurssin tuntiopettaja s2012 ja k2013)
  • TS: Tuomo Sipola (tutkija, tiedonlouhinta)
  • JV: Jukka Varsaluoma (jatko-opiskelija, pelitutkimusta ja peliaiheeseen liittyviä kursseja)
  • H-J: Heikki-Jussi Niemi (jatko-opiskelija, erilaisissa ohjaustehtävissä toiminut)
  • VS: Vesa Savolainen, Emeritus professori, tietojärjestelmätiede
  • MS: Markku Sakkinen, Emeritus professori, ohjelmistotuotanto
  • ML: Mauri Leppänen, lehtori, järjestelmäkehitys
  • TP: Tero Paavolainen, maisterivaiheenopiskelija (Pelit ja pelillisyys), tuntiopettaja
  • AV: Ari Viinikainen
  • MKL: Mika Lehtinen, TIM-kehittäjä
  • OJ: Otto Jahnukainen, tuntiopettaja
  • MR: Mikko Röyskö, tuntiopettaja
  • LN: Laura Nurmi, tuntiopettaja
  • ES: Enni Stylman, tuntiopettaja

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: Pystyykö kurssin suorittamaan ongelmitta etäopiskeluna?

A: Jos ottaa tosissaan ja varaa aikaa, niin kyllä - vl

Q: Haluan suorittaa kurssin etänä. Onko kaikki materiaali pois lukien henkilökohtainen ohjaus saatavilla etänä?

A: Kaikki materiaali on saatavilla. Ks kurssin kotisivut (josta tännekin löysit :-) - vl

Q: Demoja voi näköjään palauttaa sekä paikan päällä että vain koneella. Kuinka hyödyllistä paikan päällä palauttaminen on etäpalautukseen nähden? Jos valitsen nettidemot, vaikeuttaako se paljon opiskeluani?

A: Tuossa on pieni väärinkäsitys! Eli demoja palautetaan VAIN koneella vapaasti milloin vaan ennen takarajaa, eli ma klo 11:00 mennessä. Sitten on kaksi ryhmää joista voi valita, joissa katsotaan mitä demoissa olisi pitänyt vastata. Ja joiden aikana voi muuttaa omia vastauksiaan toimiviksi. Tämä on paras mahdollinen oppimistilaisuus, kun on ensin itse aktiivisesti yrittänyt ja silloin on ymmärrys asiasta josta keskustellaan. Usein oma vastaus toteuttaa tavoitteen ehkä juuri ja juuri, mutta ei ole laajennettavissa tulevaan käyttöön. Oppiminen on hidats prosessi ja se etenee yrityksen ja erehtymisen ja hitaasti noista seuraavan ymmärryksen kautta. Jos valitse “nettidemot”, on se kolmas ryhmä, jossa et ole fyysisesti paikalla demotilaisuudessa, mutta teet saman asian kotona katsoen palautustilaisuudesta tehtyä videota. Häviät lähinnä kysymisen mahdollisuuden. - vl

Q: Kun on ilmoittautunut demoryhmään, täytyykö kaikilla tapaamiskerroilla kuitenkaan käydä? Eli ovatko ne läsnäolopakollisia ilmoittautumisen jälkeen?

A: Kurssilla ei ole juuri muuta pakollista kuin työnteko. Demojen palautustilaisuus (oikeastaan tilaisuus jossa katsotaan mitä olisi pitänyt vastata :-) on Auditoriossa, eli sinne mahtuu. Muutaman opiskelijan liikkuminen ryhmien välillä ei ole vakavaa. Toisin on pääteohjauksissa (=nimelllä ohjaukset jossakin kohti) ovat eri asia. Siellä on rajattu määrä paikoja ja jos sen on merkannut, olisi hyvä tulla paikalle, niin ei vie jonkun muun mahdollisuutta mahtua. Eli (pääte)ohjauksissa pitäisi aina ilmoittautua ja poistaa ilmoittautumisia ryhmistä sen mukaan milloin aidosti on itse paikalla. - vl

Q: Voiko harjoitustyön tehdä parityönä?

A: Jopa mielellään :-) - vl

Q: Mitä jos palautus myöhästyy tuosta ma klo 11.00 deadlinesta?

A: Mitä teen jos myöhästyn lentokoneesta :-) Näitä voi tehdä etukäteen. TIM on ajoitettu laskemaan pisteet tuohon aikaan ja se mitä sillä hetkellä on sisässä, kelpaa. Demon jälkeen pitää kaikien muuttaa omat vastauksensa toimiviksi ja onhan klo 11:00 jätetyt vastaukset sitten tässä mukana. Sairastapaukset ja vastaavat käsitellään erikseen. Ennalta tiedosssa olevien tapahtumien osalta toivoisin että demoja tehdään silloin etukäteen. - vl

Q: Miten kova tahti kurssilla on? Onko siis kovalla työllä ja läsnäololla mahdollisuus suoriutua kurssista hyvin ja oppia nämä asiat jos ohjelmointi on täysi uutta?

A: Keskimääräiselle opiskelijalle on laskettu se 14.5 h/vko. Eli kun tuon ympärille lähtee laskemaan työmäärän sen mukaan mikä on oma osaaminen, niin voi pärjätä. Toki tuntimäärä ei yksin kerro mitään. Josku joku valittaa että Googlasi 3 tuntia eikä läytänyt vastausta. Ei olisi löytänyt vaikka olisi Googlannut 17 tuntia, koska kurssilla tarvitava tieto on kurssin sivuilla ja useimmiten luentomonisteessa. Eli mys työskentelytavat pitää olla oikeita että työ on tehokasta. Surin osa kurssilaisista lähtee 0:sta ja n. puolet saa 5/5. Eli todellakin oikeanlaisella työllä pärjää! - vl

Q: suoritan kurssin etäopiskeluna toisella paikkakunnalla asumisen vuoksi. Voinko kuitenkin osallistua satunnaisesti demoille/ohjauksiin jos olen Jyväskylässä käymässä?

A: Maanantai demoryhmissä voi ihan hyvin käydä, perinteisesti erityisesti iltaryhmässä ei ole hirveää tuntkua, jolloin siellä voidaan jopa käsitellä asioita yksilöllisemmin. Pääteohjauksista pitäisi Korpista katsoa sitten sellaisia ryhmiä, joissa on selvästi tilaa. Ja ilmoittautua ryhmiin sillä viikolla kun täällä käy ja poistaa niillä viikoilla kun ei käy. Pääteohjauksiin tarvitsen oikean osallistujamäärän. - vl

Q: Olen kerran aiemmin ollut mukana kurssilla ja harkkatyötäkin tuli tehtyä jonkin verran parin kanssa. Teenkö tälle kurssille kokonaan uuden harkkatyön kun pari katosi kuvioista?

A: Jos se työ ei ole valmis, niin voit jatkaa sen loppuun. -vl

Q: Jos peliä ei saa määräaikaan mennessä valmiiksi, vaikuttaako se kurssin arvosanaan?

A: Please, ei lähdetä asenteella “jos ei saa”, vaan MINÄ SAAN!. Ohjaajat auttavat! - vl

Q: Onko kurssin suorittamisessa eroja aikuisopiskelijoiden ja nuorempien välillä? Tyyliin kummat yleensä kokevat kurssin haastavampana yms.

A: Jos kerron omasta ikärasismistani, niin pakkohan tässä on tunnustaa että uusien asioiden oppiminen on hitaampaa ja vaikeampaa kuin kaksikymmpisenä. Toki joissakin asioissa historian tuoma kokemus tuo pohjaa, jolla pääsee nopeammin kiinni saman alan asioihin. Mutta vaikka olen matematiikasta aikanaaan väitellyt, niin kyllä matemaattisen notaation lukeminen on hitaampaa kuin nuorena kun sitä ei ole aktiivisesti käyttänyt. Sitten aikuisilla on pitkällemuita sitoumuksia, kuten työ, lapset ja ehkä harrastuksiakin on kertynyt nuoria enemmän. Eli sen n. 15 h/vko löytyminen on hankalampaa. Eli valehtelisihan jos sanoisin, että “ihan yhtä helppoa”. Toisaalta yleensä aikuisopiskelijalla on jokin suurempi motivaatio tulla kurssille kuin jollakin jolla se on “koulutusohjelman pakollinen kurssi”. Eli motivaatiolla voi paikata eroja. - vl

Q: Voiko pääteohjauksissa käydä useammankin kerran viikossa, jos on tarvetta ja jos ryhmissä on tilaa?

A: Toki! Eikös se sanottu jo ilmoittautumisohjeissa? - vl

Q: Kuinka päin mäntyä pitää mennä, että aletaan sovittelemaan kalenteriin tilaa Pahasti pihalla -ryhmälle? Voiko sinne tulla vaikka työstämään harjoitustyötä ohjatusti, jos ei meinaa mitenkään muuten onnistua?

A: Tuon aika on vasta sitten kun katsoo oikeasti miten menee. Ja hyvinhän se menee kun aloittaa alusta asti täysillä. Ainoa tapa munia on jättää pari ekaa viikkoa vähille tehtäville… Mutta HT mieluusti varsinaisilla ohjausajoilla. PP on siihen, että saa edes jotakin demotehtäviä tehtyä. - vl

Q: Voiko pääteohjauksiin osallistua vaikka niihin ei olisi ilmoittautunut?

A: Vain hätätapauksissa ja silloin kun siellä on tilaa suhteessa ohjaajamäärään. Ilmoittutumisten perusteella määritellään montako ohjaajaa tilataan paikalle ja jos on 7 ilmoittutunutta, laita yhden ohjaajan. Jos sinne pölähtääkin 12, niin ohjaaja on lirissä. Eli ajatelkaa tuota ilmoittautumista kuten hammaslääkärin vastaanottoa: jos et tule, viet paikan joltakin, jos tulet ilman ilmoittautumista homma ruuhkaantuu. Korpilla ei ole yhtä paha ilmoittautua kuin Su… eikun Sisulla. - vl

Q: Millainen kurssin tentti on?

A: Katso demo 11. - vl

Q: Voiko tämän kurssin suoritettuaan sanoa osaavansa koodata, ts. onko kurssi pätevöittävä millään määrin, vai vaatiiko vähintään jotain kursseja vielä tähän päälle

A: Etsippä netistä mitä sanotaan jos joku kysyy: “kuin aopin 3 kk koodaamaan” :-) Vastaus on yleensä että opiskele oppilaitoksen 5 v ja ole 5 v töissä niin alat olemaan ammattilainen. Eli on aika utopiaa että 0:sta lähtemällä olisi 3 kk jälkeen mestari. Yleensä jotakin 10000 h pidetään rajana että jotaksin osaa kunnolla. Me käytäme siitä n. 160 h tällä kurssilla. Mutta hyvän alun saat. - vl

Q: Voiko suositella jotakin hyviä sivuaineita, vai onko asiantuntemuksesta yleensä hyötyä ohjelmoinnissa?

A: Sanoisin toisinpäin. Pelkällä nörtillä ei tee mitään. Mutta asiantuntijalla joka tuntee kodealueen ja osaa myös riittävästi koodata tekee paljon. Sanoisin että Sisu on esimerkki, jossa monella tasolla on puuttunut kohdealan asiantuntemusta. - vl

Q: Osaatko suositella jotain kurssin ulkopuolista materiaalia josta voisi olla aloittelijalle lisää apua?

A: Kurssin sivuilla on niin paljon materiaalia, että sen pitäisi kyllä riittää. Jotkut sanovat että jopa liikaa :-) Hanki se Java-kirja. - vl

Q: Onko täysin aloittelijalle olemassa muitakin hyviä perusteoksia kuin tuo mainittu Java kirja?

A: Tuo ei edes ole hyvä aloittelijan kirja ja sen arvo korostuu sitten esim Ohj2:lla. Kyllä aloittelijalle pitäisi riittää kurssin luentomoniste ja muu kurssin materiaali. - vl

Q: Keneen voi ottaa yhteyttä, jos kurssin aikana tarvitsee tukiopetusta?

A: Meihin ohjaajiin. Ensisijaisesti kannattaa tulla johonkin ohjaustilaisuuteen, tai sitten voit lähettää sähköpostia ohjaajien postilistalle ohj1s19c.group@korppi.jyu.fi -MR

Q: Minulla on luentojen osalta aikataulussa päällekkäisyyksiä. Onko luennolla käyminen oppimisen kannalta paljon hyödyllisempää kuin sen katsominen videolta jälkikäteen?

A: Tämä on jokaisne henkilökohtainen asia. Joku sanoo että videon hyvä puoli on se, että sen voi pysäyttää ja sitten tehdö itse samat asiat. Kysymisen ja karkkienmahdollisuuden menettää :-) - vl

Q: Missä tilaisuuksissa ohjaajat ovat mukana?

A: Ohjaustilaisuudet, harkkatyön tarkastus/näyttö. Käytännössä kaikki muut paitsi luennot ja maanantaisin oleva demopalautussessio. -MR

Q: Harjoitustyön voi ilmeisesti suorittaa ainakin parityönä, mutta onko kolmen tai neljän hengen ryhmä liian iso?

A: Liian ison ryhmän ongelma on että se vaatii ryhmätyötaitoja ja niitä harjoitellaan vasta myöhemmillä kursseilla. Mutta voi tehdä niin, että perustaa “metaryhmiä”, joissa esim kaksi paria työstää samankaltaisia pelejä ja voi käyttää yhteisiä aliohjelmia ja erityisesti ideoita. - vl

Q: Tuleeko pääteohjauksille osallistua jos uskoo että pystyy tekemään kurssin ilman pääteohjausta ja jos pääteohjaukset menevät päällekkäin muiden kurssien kanssa?

A: Ei ole pakko osallistua, mutta kunkin päätehjauskerran harjoiteltavat asiat on itse tehtävä ja pidettävä huolta että ne osaa. - vk

Q: Tuleeko pääteohjauksiin etämahdollisuutta? (Jossain oli että sitä mahdollisuutta vielä tutkitaan)

A: Siitä tuli juuri äänestys, että minä ajankohtana pidetään. Ääänetäjiä toistaiseksi 5 kpl. - vl

A: Ensimmäinen etäpääteohjaus on lauantaina klo 10-12. Ajankohta voi muuttua tuleville viikoille. -ln

Q: Kuinka suuri keskeytämisprosentti kurssilla on?

A: Tuonha näytin luennolla 1, eli n. 30%. Jos tästä riisuttaisiin pois, ne jotka aloitavat kurssin 3 demopistettä tai vähemmän, niin prosentti laskisi melkoisesti. - vl

Q: Voiko pääteohjauksiin ilmoittautua samana päivänä vai pitääkö ilmoittautua paljon etukäteen? Voiko käydä useammassa ohjauksessa viikon aikana?

A: Jos se ei suuresti heilauta osallistujamäärää. Esim 2 osallistujaa => ei pidetä. Jos kolmas tulee samana päivänä, ei ehditä hommata ohjaajaa paikalle. Saa käydä niin monessa ohjauksessa viikon aikana kun on tilaa :-) - vl

Q: Miksi demoista edellytetään vähintään kaksi pistettä jos on tiedossa, että viiden pisteen alle menevät suoritukset eivät ennusta kurssilla ja tentissä pärjäämistä?

A: Koska sillion tällöin voi olla rankka viikko ja jos demoja on tehnyt esim 8 tehtävän tahtiin, voi yhdellä kertaa ehkä pärjätä jos tekee ne tähtitehtävät ja kuroo taas seuraavassa. Mielläni pitäisi että 5 on ehdotin minimi, mutta siitäkin seuraisi omia ongelmiaan. - vl

Q: Kumpi on suositeltavampaa, pääteohjauksessa tehdä pääteohjaustehtäviä omalla koneella vai yliopiston koneella?

A: Toki oma kone jos siihen vaan saa ohjelmat asennettua. - vl

Q: Pitääkö olla demojen palautuksissa paikalla vai riittääkö, että palauttaa TIMissä? Ja voiko osalla viikoilla käydä ja osalla olla käymättä palautuksissa.

A: Vähintään pitää katsoa ne palautusten videot ja sitten korjata omat vastaukset oikeiksi sen jälkeen. Mutta voi käydä eri viikoilla eri tavalla. - vl

Q: Onko Demoja mahdollista täydentää jälkijunassa?

A: Ei pisteden mielessä sen ma klo 11:00 jälkeen, koska vastaukset on sitten julkaistu. Mutta ne PITÄÄ täydentää sen jälkeen kuten demojen pääsivuilla sanotaan. - vl

Q: Onko etäpääteohjauksiin osallistuminen pakollista jos tekee kurssin etänä, vai onko mahdollista käydä ohjaukset läpi itse?

A: Pääasia että saa tehtyä ne ennen demojen tekoa. - vl

Q: Mitkä demotehtävät kannattaa vähintään tehdä joka kerta?

A: Taunot, tähtitehtävöt, perustehtävät. En laittaisi tehtäviä jotka mun mielestä ovat turhia. - vl

Q: Mikä on viikottainen maksimipistemäärä demoista?

A: 8 - vl

Q: Kunhan on siis jotain vastannut demoon siitä voi saada täydet pisteet jos sen korjaa takarajan jälkeen? Entä jos vastaus ei ole lähelläkään oikeaa, mutta on jotain kirjoitettuna?

A: Se mikä arvostelee tehtäviä on monesta aika alkeellinen ja pisteitä voi saada joskus jopa siitä, että on muutama merkki. Voitte itsekin miettiä olisiko mahdollista tarkistaa teidän vastaus oikeaksi. Se on eri asia sittenk un ruvetaan testaamaan ohjelmia, silloin voidaan määritellä jotakin eksaktia. Mutta jostakin lumiukon piirtämisestä on aika vaikea kustannustehokkaasti testata että onko silmät oikeassa kohti. Eli odotan rehellisyyttä näissä. Monissa tehtävissä tulevaisuudessa on mahdollisuus antaa omat pisteet ja jos automaattiarvostelija antaa liikaa, toivon siinä sopivasti pisteiden omakohtaista pienennystä. Takarajan jälkeen pisteitä käytetään siihen, että jokaisella pitää olla täydet pisteet tehtävistä Tauno ja 1-6. Eli niitä pitääkin korjata sen mukaan mitä demojen palautuksissa opetetaan. - vl

Q: Voiko demoja tehdä etukäteen vai kuuluvatko nuo listalta löytyvät seuraavien viikkojen demot viimekertaiseen toteutukseen?

A: Voit tehdä, ne kaikki ovat tuolla nähtävissä. Ja erityisesti suosittelen että demo 11 yrittää tehdä vähän väliä, niin saa tutkittua oman osaamisen tason. Pieni mahdollisuus on että tehtävät vähän muuttuvat, erityisesti niiden sanamuoto. Mutta sanotaan että 80-90% pysyy varmasti. Eli hukkaan se etukäteen tekeminen ei mene. Joissakin kohti tehtävät perustuvat edellisenkerran mallivastauksiin ja niiden kohdalla voi olla hieman hankalaa.

Q: Mietin, jos suorittaisin kurssia tehden pakolliset demot ajoissa ja muita demoja ehkä vähän myöhässä katsomatta kuitenkaan vielä demovastauksia. Pisteitä ei sada, mutta oppisin ja omaa tahtia. Onko demopisteistä siis paljon hyötyä? Ja selviänkö kurssista läpi minimi demopisteillä, jos olen kuitenkin demoja tehnyt itsenäisesti.

A: Sehän vastaa periaattessa samaa oppia kuin mitä muut saavat. Demopisteiden kannalta toki on harmillista, että lähdet sitten tenttiin melkoiselta takamatkalta muihin nähden. Kannattaisi tähdätä vähintään 5:een hyvityspisteeseen, ks: demojen pääsivu, eli noin 5p/kerta. Toki se tentin läpimenoa parantaa valtavasti, jos demot on itse tehty. Riskinä tuossa on se, että löytyykö seuraavalta viikolta sen kummemmin se aika demojen tekoon ja sitten helposti tekemättömien töiden määrä kasvaa niin, että sitä ei enää oteta kiinni. Eli joka tapauksessa tasainen viikkorytmi on se pelastus. Mutta tämähän on yksilöillistä ja jollekin voikin sopia toinen tapa kuin toiselle. - vl

Lisää kysymys

**Q:** ⁞

**A:** -

2. Työkaluista

Q: Tarvitseeko kurssilla kuskata omaa läppäriä mukana?

A: Kannattaa - vl

Q: Onko koneelle jotain erityisiä vaatimuksia, vai riittääkö “perusläppäri”?

A: Sivu: Millainen kone voisi antaa vastauksia. Lyhyesti: lähes mikä tahansa nykyhetken kone voi toimia, mitä heppoisempi ja vanhempi, sitä hitaampi ja se riippuu sitten vaan omasta pinnasta. Kannattaa kokeilla alkukursilla nykyisellä ja miettiä riittääkö se. - vl

Q: Mikä tekstieditori on teidän mielestänne helpoin ottaa haltuun, mutta ominaisuuksiltaan riittoisa vielä pidemmälle ohjelmoinnissa, jos ei ole koskaan ohjelmoinut?

A: Minä käytän Notepad++ ja Antti-Jussi käyttää Sublime Text -editoria. Microsoftin Visual Studio for Code on kanssa ok (huome eri kuin Visual Studio jota kurssilla käytetään). Tuolta ylämenun Työkalut-linkistä pääset työkalujen etusivulel ja sieltä eri editoreihin. Nämä ovat niin makuasisoita, että niistä ei kannata kiistellä, kunhan unohtaa Noteapdin ja Wordin. - vl

Q: Haittaako, jos heti ekana viikkona ei ole omalla koneella työkaluja käytössä? Minulla on suht tehokas työkone, mutta admin oikeudet vain tietyillä henkilöillä, enkä heti saa ohjelmia asennettua. Ilmeisesti kuitenkin yliopiston koneita voi alkuun käyttää. Tuleeko mieleen muita työkaluja, joita voisin pyytää nyt heti samalla asentamaan?

A: JY:n koneella voi tehdä ja aika paljon myös TIMillä. Kurssin työkalut-sivulla on kuvattu kaikkimitä tarvitaan. - vl

Q: Onko tarpeen ladata kaikki (vai kenties vain muutama erityisen hyödyllinen paikanpäällä) työkalut molemmille, läppärille jota kuskaa mukana koulussa ja työpistelle asunnossa? Ajattelin tehdä suurimman työn windows pohjaisella pc kun MacBookilla jos mahdollista.

A: Jos tuo Win kone on pääkone, niin siihen kaikki ja Maciin sen verran mitä saa toimimaan. - vl

Q: Onko kurssin suorittaminen Macilla toivotonta nyt kun työkalujen kanssa on ongelmia?

A: Perusajatuksena eroa ei ole. Unix-pohjainen komentorivi on jopa parempi kuin vanha DOS-pohjainen CMD. Jos tehtäisiinihan puhdasta Mac-ohjelmaa, niin Macin omat työkalut ovat hyviä. Kurssin työkaluja käytettäessä Macin VisualStudio on ehkä 10 v jäljessä Windowsin vastaavaa. Ja nyt isoimpana ongelmana on, että uusimassa Mac VisualStudiossa ei toimi Jypelin projektimallit. Joudumme tähän keksimään vaihtoehtoisia tapoja. Mutta tämän viikon jutut menee ihan hyvin Macilla. Nyt on Mac ohjeissa miten saadaan Jypelejä tehtyä, hieman kankeammin kuin Win, mutta kuitenkin. - vl

Q: Voisinko saada kurssilta eväitä siihen, kuinka voisin jatkossa käyttää asentamiani työkaluja itsenäiseen opiskeluun?

A: Varmasti saat, mutta toki tuon ymmärtämiseen menee melkein koko syksy, eli ei kannata odotata pikavalaistumista :-) - vl

Q: Milloin kurssin monistekirjan saa itselleen?

A: Tässä tuli takapakkia.. Pitää pitää uusi kysely… - vl

Q: Koneellani olisi valmiina Visual Studio 2017. Pärjääkö sillä vai alanko asentamaan 2019-versiota?

A: 2017 on vielä ihan pätevä. Itse suosittelisin päivitystä, mutta hyvin pärjää ilmankin :) -MR

Q: Opiskelen etänä ja tarkoitus on käyttää koti-iMaciä. Onko tentissä mahdollisuus käyttää Maciä?

A: Omaa Maciä joo. - vl

Q: Onko suositeltavaa jo alusta alkaen yrittää ohjelmoida käyttäen useita eri käyttöjärjestelmiä?

A: Tuo on ihan kiinni kuinka suuren kognitiivisen kuorman haluaa itselleen rakentaan. Ehkä ohjemoinnin kannalta kannattaisi aluksi (esim Ohj1) keskittyä siihen järjestelmään, joka on tutuin, jolloin ei tule liian montaa uutta asiaa kerralla. Toki jatkossa on syytä osata useampi. Periaattessa ohjelmoinnin kannalta ei pitäisi olla eroa mille järjestelmälle ohjelmoidaan, mutta valitettavasti käytäntö on eri. Macille on hyvät omat ympäristönsä ja kielensä. Windowissa on erinomaisia työkaluja kuten Visual Studio ja esim Delphi. Mutta sitten ne eivät toimi samassa laajuudessa muualla. Jopa C/C++:lla tehtynä vähänkin monimutkaisemmat ohjelmat vaativat helposti #if-pragmoja siihen, mihin ymäristöön ohjelma ollaan kääntämässä. - vl

Q: Voisiko Macin käyttöön saada paremman ohjeistuksen demoja varten?

A: Meillä ei ole ketään joka aktiivisesti käyttäisi Maciä, jolloin ohjeet eivät tule “intohimosta”. Ja resursseja meillä on vähän ja tämä Sisu-sotku ei ole omiaan niitä lisäämäänkään. Tässä toivoisin omaa-loitteisuutta, sillä kaikki tarvittava (mitä me tiedetään) on asenusohjeissa ja pääteohjaustehtävissä sekä komentoriviohjeessa.
Eli esim kääntämisohjeita voi käydä kertaamassa noista. Juuri muuta järjestelmäriippuvaahan tuolla ei ole.

Sitten Mac-yhteisö voisi keskenään muodostaa sellaisen avunanto-piirin, että esim kurssin Keskustelu-sivulla tekee uuden aihen maciä varten ja joka saa jotakin toimimaan, kertoo sen siellä muille. Jos sinne tulee hyviä ohjeita, voidaan niitä nostaa itse teksteihinkin. Ja lisäksi voi laittaa myös kommetteja tekstikappaleiden viereen ja katsoo siitä olevan kaverille hyötyä.

Täsmälleen samat ongelmat on Linux-käytön suhteen. Ja sitten ulkomaalaisten :-) - vl

Q: Kannattaako alkuun käyttää komentoriviä vai PowerShelliä? Olen myös kuullut, että Linux olisi kätevämpi ohjelmointitarkoitukseen, kannattaako senkin käyttöä opetella?

A: Kuten tuolla toiseen kysymyksen vastasin, Ohj1 kohdalla kannattaa keskittyä siihen, mikä helpoimmalta tuntuu. Itse kyllästyin PowerShelliin sen ruman ulkoasun (punaista tekstiä sinisellä) ja hölmön syntaksin takia ja palasin CMD-komentoriviin. Mutta nämä ovat makuasioita. Jossakin vaiheessa LInuxin kannattaa toki opetella. Linuxin komentorivi on parempi, mutta snekin saa nykyisin Windowsiin. Itse työkalujen osalta kyllä pitäisin Windowsin parempana. Java työkalut saa lähes samanlaisena Linuxiinkin. Mutta kuten sanoin, makuasioita ja Ohj1:ssä pitää keskittyä ohjelmointiin. -vl

Q: Missä kaikissa yliopiston tiloissa on asennettuna ja vapaasti opiskelijan käytettävissä kurssilla tarvittavat työkalut?

A: Agoran mikroluokissa. - vl

Lisää kysymys

**Q:** ⁞

**A:** -

3. Eri kielistä

Q: Jos haluaa hyvät ohjelmointitaidot, mihin ohjelmointikieliin ainakin tulisi perehtyä? Riittääkö yhden kielen opettelu vai tuleeko hallita useampia?

A: Tulee hallita monta, meidän kursseilla niitä tulee. C#, Java, Python, Java/TypeScript, Haskell, C/C++ jne… - vl

Q: Miksi ohjelmointikieliä on käytössä niin monia? Onko niillä eri käyttötarkoitukset vai tuleeko uusia kieliä edellisten vanhentuessa?

A: Eipä tässä hirveä määrä ole vanhentunut. On erilaisia tarpeita ja erilaisia paradigmoja (proseduraalinen, olio, funktionaalinen jne). Joissakin kielissä yhdistetään eri paradigmoja. Miksi on esim Java ja C#? M$ ei ollut tyytyvöinen Javaan ja lähti parantelemaan sitä. SUN kielsi tämän ja M$ kävi hommaamassa yhden alan parhaista ja pisti tekemään uutta alustaa ja kieltä. Tulos oli .net ja C#. C# on paikoin parempi kuin Java. Sitten joku kieli pöhättyy mahdottomaksi kuten C++ ja lähdetään tekemään kieliä jotka pysyisivät paremmin hallussa. Jos ei tehdä uutta, jämähdetään paikalleen. Mutta ei niitä oikeasti niin paljoa tarvittaisi, kaikki eivät voi olla elinvoimaisia. - VL

Q: Mikä on tällä hetkellä ohjelmointimaailmassa alaa kenties yhdistävä keskeinen haaste?

A: Huono osaaminen ja kelvoton kommunikointi asiakkaan kanssa, vrt Sisu - vl

Q: Mikä on konekielen (esim. Assembly) merkitys tänä päivänä?

A: Suurin merkitys on sen ymmärtäminen mitä koneessa tapahtuu ja sen jälkeen on helpompi ymmärtää mikä on halpaa ja mikä on kallista korkeamman tason kielessä. Itse sanon että minun on paljon helpompi ajatella mitä tapahtuu kun olen aikaan melkoisesti assulla koodannut. Aluksi kokonaisia ohjelmia ja sitten myöhemmin aikakriittisiä osia muun kieliseen ohjelmaan. Sitten taas sulautettujen tapauksessa kokonaisia ohjelmia (ja jopa oma “käyttis”). Vielä jonkin aikaa sitten tuo sulautettu oli peruste, mutta nyt lähes joka prossun yhteydessä on niin paljon muistia, että on varaa koodata “oikeallakin” kielellä (vähintään C-tason). Ja tuo aikakriittisyyskään ei enää päde. Ennen hyvä assykoodari pystyi nopeuttamaan ohjelmia, mutta nyt prosessorit ovat niin monimutkaisia liukuhihnoineen, että ihminen ei kunnolla pysty optimoimaan sitä käyttöä vaan hyvät kääntäjät voittavat ihmisen (ainakin keskimääräisen). Eli jäljelle jää se että tuo parempaa ymmärrystä. - vl

Q: Pystyykö yhdestä ohjelmointikielestä helposti hyppäämään toiseen vai ovatko ne kaikki täysin erilaisia?

A: C#:sta on helppo hypätä Javaan (sellaisesta jota me käytämme, koska yritämme käyttää sitä hyvin Javamaisesti). Samoin toisinpäin. Javasta on vaikeampi siirty C/C++, koska C:ssä pitää itse huolehtia muistista. Javasta Pythoniin on kohtuulinen siirtyö, kunhan muistaa että asioita kannattaa tehdä eri tavalla. Mutta mulla on pelko että Pyhtonista Javaan on vaikeampi siirtyä, koska Pythonissa saa kirjoittaa “leväperäisemmin”. Vähän sama koskee Javan ja JavaScriptin välistä siirtymistä. Sitten on funktionaaliset kielet, joissa ajatellaan eri tavalla ja siinä on aika rjoilla onko edellisen kielen osaamisesta hyötyä vai haittaa. - vl

A: On, mutta Pyhtonissa ei ole pakko esitellä muuttujia ja tämä johtaa tietynlaisiin virheisiin, joihin ei yhtä helposti sorry esim C#:illa. - vl

Q: Mitkä kielet ovat kyberturvallisuuden kannalta haasteellisimpia vai onko niillä eroa tässä asiassa?

A: C on kieli, jolla tehdään suurimmat virheet. Ilman C:tä maailma olisi tällä hetkellä turvallisempi paikka. Mutta on niitä ongelmia kaikissa muissakin kielissä ja netti varsinkin tuo omat ongelmansa. Sanoin ehkä jyrkistä C:stä. Se on oman aikansa tuote ja siihen maailman aikaan ihan OK. Mutta silloin niiden, jotka koodasivat, osaaminen oli parempaan. Nyt kun kaikkien pitää koodata, niin sille tasolla mitä C:tä tehdessä pitäisi kyetä, ei monellakaan ole kykyjä. On parempi käyttää kieliä, jotka jonkin verran huolehtivat turvallisuudesta ihmisen puolesta. Aukkoja saa silti aikaiseksi. Meillä on oma kurssi ohjelmoinnin tietoturvasta ja sitä ehdottomsti suosittelen kaikille aikanaan. - vl

Q: Perustuvatko krpytovaluutat (Esim. Bitcoin) johonkin tiettyyn ohjelmointikieleen?

A: Ne voivat olla koodattu jollakin tietyllä kielellä, joka ei ole oleellista itse ongelman kannalta. - vl

Q: Miksi kurssin kieleksi on valikoitunut juuri C#?

A: Etsippä tästä dokusta C#-sanaa, siihen on jo parissa kohti vastattu. - vl

Q: Mitkä kielet ovat käytetyimpiä yritysmaailmassa?

A: Netti on pullollaan noita tilstoja joista jokainen on tietysti jonkin sorttinen vale. Mutta karkeasti Kärjessä ovat aina Java, Python, JavaScript, C# jne… - vl

Q: Käytetäänkö pelien ohjelmoinnissa yleensä jotain tiettyä kieltä tai mikä on yleisin pelien ohjelmoinnissa käytetty kieli?

A: Riippuu pelistä ja käytetystä pelimoottorista. Minecraft (se alkuperäinen) on koodattu Javalla, C++ on erityisen käytetty 3D-grafiikkaa vaativissa peleissä sen suorituskyvyn takia. Kurssilla käytetty C# on myös viime vuosina yleistynyt eri pelikirjastojen tuen myötä, esim. Unity. -MR

Q: Voi olla ettei kannata vielä miettiä mutta kiinnostaa silti. Mitkä ovat suurimmat erot python 2 ja 3 välillä? Kannattaako vasta aloittelevan koodarin keskittyä jompaan kumpaan vai molempiin?

A: Kannattaa keskittyä 3:een, 2;n tuki loppuu. Yksi suuri ero on merkkijnoinoissa jossa 3 tulee paremmin Unicodea - vl

Q: Jos tähtää pelinkehitykseen, kannattaako yrittää oppia sekä C++ että C#/Java, vai ennemmin keskittyä oppimaan vain se, joka vastaa omia tämänhetkisiä tarpeita mahdollisimman hyvin?

A: Unityssä kirjoitetaan C#:illa makroja ja se on yksi käytetyimmistä pelimoottoreista. Nopeutta kaipaavat vannovat C++:n perään. Eli kyllä molempia kannattaa osata. - vl

Q: Onko seuraavan ohjelmointikielen opettelu jo helpompaa verrattuna ensimmäiseen vai eroavatko kielet toisistaan paljonkin?

A: Ohj2:lla Javaan siirtyminen kestään niin, että parin viikon päästä et muista että on eri kieli käytössä. Mutta kuten tuolla muualla on sanottu, jos ohjelmointiparadigma vaihtuu (esim funktio-ohjelmoinniksi), niin muutos on isompi. - vl

Q: Miten paljon nykykoodarin pitää tietää ensimmäisitä ohjelmistokielistä tai jopa osata käyttää niitä valmistuessaan? Luin että Cobol on vanha 50-luvulla kehitetty kieli, jota edelleen käytetään pankkijärjestelmissä. Se jäi askarruttamaan.

A: Historina tuntemus ei ikinä ole pahasta millään alalla. Ei tälläkään. Se auttaa mm ymmärtämään miksi jotkin asiat ovat kuten ovat. Cobol kielenä tuskin (en ole saanut tutkimusta aikaiseksi, mutta niin uskon vakaasti) ei ole paha sauma nykykoulutetulle. Usin Cobol liitetään talaushallinnollissin ja pankkiohjelmiin ja niiden tekemiseksi pitää noiden alojen tuntemus olla hyvä. Eli se voi olla syy, miksi “Cobol”-koodarit on kuoleva luonnovara, eli henkilöt, joilla yhdistyy vahva taloustuntemusta ja koodaustaito. Jossakin sanottiin että noilla taidoilla yhdistettynä voi pyytää mitä tahansa. En tiedä, voi osoittain ollakin. - vl

Q: Mitä ohjelmointikieltä voisi pitää haastavimpana oppia?

A: En lähde kielisotaan. Jokaisessa on puolensa ja haasteensa. - vl

Lisää kysymys

**Q:** ⁞

**A:** -

4. Kurssin sisällöstä

Q: Peli harjoitustehtävän aiheena ei oikein innosta. Voiko harjoitustyö olla jotakin muuta?

A: Toki voi, tästä on monta mainintaa kurssin sivuilla. - vl

Q: Voiko tehdä pelin, joka toimii älypuhelimella?

A: Se on jopa tarkoitus kurssin jatko-osassa. - vl

Q: Käydäänkö kurssilla läpi olio-ohjelmointia jos on niin kuinka paljon ?

A: Pelejä tehdessä olememma koko ajan olioiden käyttäjiä. Varsinaista olioiden tuottamista on kurssin loppupuolella muutaman luennon verran. - vl

Q: Mitä vaihtoehtoisia töitä kurssilla on aiemmin tehty, jos ei ole halunnut tehdä peliä?

A: Työt ovat monesti olleet “mini” versoita ohjelmointi 2 harjoitustöistä, eli jonkinlainen tiedonvarastointiohjelma. Esimerkiksi treenikirjanpito-ohjelma, johon voit kirjata ylös tehdyn harjoituksen ja selata aikaisempia tehtyjä harjoituksia, laskea niiden keston keskiarvoja yms. -MR

A: Katsokaa se malliohjelman tutorial, eli Työaikaraportti. - vl

Lisää kysymys

**Q:** ⁞

**A:** -

5. Jypeli

Q: Miten pääsen käsiksi update funktioon?

A: En oikein ymmärrä kysymystä. Voit overridetä omassa luokassasi ko metodin. - vl

Q: HT pelissä kun siirrytään seuraavalla tasolle tai kun joudutaan aloittamaan käynnissä oleva taso alusta, kaytämme ClearAll(); toimintoa. Tämä kuitenkin ilmeisesti tuhoaa myös pelissa oletuksena olevan MessageDisplayn. Onko mitään kikkaa millä tämän saa ClearAll:n jälkeen luotua/käynnistettyä uudestaan? Vai onko jotain fiksumpaa tapaa ylipäätään ratkaista ko. ongelma?

A: MessageDisplay tuhoutuminen on tunnettu bugi mitä ei enää uudessa Jypelin versiossa tapahdu. ClearAllin jälkeen luo uusi MessageDisplay, MessageDisplay = new MessageDisplay(); ja MessageDisplay.BackgroundColor = Color.LightGray;. Viimeisenä lisää uusi MessageDisplay peliin: Add(MessageDisplay);

Lisää kysymys

**Q:** ⁞

**A:** -

6. Yleistä ohjelmoinnista

Q: Minkälaisista tiedoista ja taidoista on erityisesti hyötyä, että osaisi asiakkaana kommunikoida ohjelmoijille, mitä haluaa ja odottaa heidän tekevän?

A: Yhteinen kieli ja ymmärrys siitä, mitä ohjelmoijan työ on. Älä koskaan kysy että “Miksi…”, se loukkaa - kukaan ei tahallaan tee huonoa. - vl

Q: Saako tällä kurssilla sellaiset taidot että voisi kuvitella pystyvänsä työelämässä niitä soveltamaan, vai vaatiiko sellainen paljon laajempia opintoja?

A: Maisterin koulutus kattaa murto-osan siitä mitä pitäisi osata. Tämä kurssi on 6 op 300 op kandi+maisterista. Jos joku työnantaja ottaa töihin pelksätään tämän kurssin taidoilla, niin älä mene. Silloin työnantaja ei ymmärrä mitään ohjelmoinnista ja sinäkään et vielä ymmärrä mitä et ymmärrä. Totta on olemassa mahdollisuus, että on hirvesäti harrastusta ennen ja jälkeen kurssin ja itsenäisesti on opiskellut ne asiat mitä jatkossa koulutuksessa olisi tulossa. Mutta perustapauksessa tämä kurssi antaa alkusiemenen ja sen päälle voidaan alkaa osaamista rakentamaan. Jos (ja useimpien tapauksessa kun) lähdetään nollasta ja kurssin aikana opitaan tekemään jotakin toimivaa, niin kurssi saattaa tuntua opiskelun isoimmalta hyppäykseltä. Mutta muilla kursseilla opitaan kullakin vähintään sama määrä lisää, eli ei kannata liikaa toivoa vielä tämän jälkeen :-) - vl

Q: Voiko kuka tahansa oppia ohjelmoimaan?

A: Jos on asennetta. Työtä se vaatii kaikilta eikä tapahdu lyhyessä ajassa.
A: Ehdottomasti. Asenteesta ja motivaatiosta kiinni. Itse vaihdoin vaatetusalan tietotekniikkaan ja ihan hyvin on tullut pärjättyä. -es

Q: Voiko olla tietotekniikassa huippuammattilainen ilman koodaamisosaamista? Vai onko se sama kuin kysyisi tarvitseeko kirjallisuustieteen professorin osata kirjoittaa?

A: Itse sanoisin että ei voi olla. Johtajankin pitäisi ymmärtää mitä alaiset tekevät ja mitä heiltä voi vaatia. Joku voi olla eri mieltä :-) - vl

Q: Mitä kursseja ohj1 (ja ohj2) lisäksi kannattaa sivuaineena tietotekniikkaa opiskella, jos haluaa pelata tulevan työuran kannalta ns. varman päälle ohjelmointitaitojen osalta, vaikkei suunnitelmissa olisikaan hakeutua erityisesti ohjelmoinnin pariin työelämässä?

A: Ihan pakollista työelämän kannalta on ainakin: tietokannat, web-ohjelmoinnista client ja server. Ehkä myös muita ohjelmointiparadigmoja, kuten Funktio-ohjelmointi. Mutta hankala on sanoa, että joku meidän kurssi olisi tarpeeton, koska jos se olisi, ei sitä pidettäisi :-) -vl

Q: Millä kriteereillä vertaillaan eri ohjelmointikieliä? Esimerkkikontekstiin sidottuna, mikäli haluni on saada ohjelmisto, jonka avulla voin vaikkapa ennustaa tulevan kevään tulvia perustuen aikaisempaan säähistoriaan ja totetuneisiin tulviin, niin mistä tiedän, millä kielellä minun kannattaa lähteä rakentamaan tätä ohjelmaa. (Tähän ohjelmistokysymykseen ei tarvitse vastata, mutta ajatus on siis se, että mistä tiedän mitä ohjelmointikieltä kannattaa milloinkin käyttää.)

A: Yleensä kieli ei ole se ratkaisevin, vaan mihin kieleen saa kohdealueeseen ja käyttöliittymätarpeeseen parhaiten soveltuvia kirjastoja. Ja kaunako niiden voi olettaa elävän ja kaunako niiden tarvitseee elää. Yleensä elinkaaren pituus aliarvioidaan. Jos haetaan pitkää elinkaarta, tulee osin myös kysymykseen kielten elinkaari. Se riittänee usiemmilla valtavirran kielillä, mutta uusiin tulokkaisiin joutuu suhtautumaan varauksella. Myös kielen/kirjastojen toimiminen tarvittavilla kohdealustoille aiheuttaa aina päänsärkyä. Kohdealueesi hippoo “tekoälyä” ja sen osalta ehkä Python on muotoutumassa kirjastojensa ansiosta sen alan valtakieleksi tässä vaiheessa. Joku vio olla eri mieltä :-) - vl

Q: Millaisia ohjelmia kannattaa harjoitteluksi kirjoittaa?

A: Meillä on se harkkatyö ja jota sen osaa tehdä, tehdää demoissa kymmeniä sitä auttavia ohjelmia. Mutta yleissääntö on: sellaisia mistä itse on kiinnostunut. Motivaatiota ei voi mikään voittaa. - vl

Q: Miten suuria ohjelmia kandivaiheessa pääsee kirjoittamaan?

A: Ei kai tuolle ole mitään ylärajaa. Osallistuu TIMin kehitykseen, niin puhutaan jo jotakin 0.5 Mriviä. Mutta normaaliloissa ehkä muutamia tuhansia rivejä. -vl

Q: Miksi juuri C# ensimmäisellä ohjelmointikurssilla? Eikö Python olisi selvempi näin alkuun?

A: Jypeli tehtiin aikanaan C#:ille. C#:istä on helppoa astua Javaan. Pyhtonissa on riskinsä. Kun oppii olemaan “leväperäinen”, on vaikea päästä siihen täsmällisyyteen, mitä tiukasti tyypitetyt kielet vaativat. Perusmuodossaan Python on iso riski, koska virheistä ei saa tietoa ennenkuin ohjelmaa ajetaan. Sitten kun tyypit lisätään Pythoniin, osa siitä helppoudesta katoaa. - vl

Q: Koodausta pidetään yhä yhteiskunnallisesti nörttien puuhasteluna, josta jostain syystä he saavat hulppeasti rahaa. Miten voisin selittää vanhemmilleni, että vaikka normaalisti fyysistä tavaraa ei muodostukkaan tästä työskentelystä, on tämä aivan oikeaa työtä ja vaatii istumalihasten lisäksi myös aika paljon muutakin? Että kyllä tässä ollaan aivan oikean työn äärellä ja se raha ei vain maagisesti ilmaannu pankkitilille.

A: Kysy montako tietokonetta on heidän autossaan. Kuka ne on ohjelmoinut? Ei Suomessa oikein ole varaa tehdä “fyysista tavaraa” ellei siihen liity vahva ohjelmoistopuoli. Kiinalainen kyllä teke sen fyysisen tavaran niin halvalla että meillä ei olisi mitään työtä. Suomalaisen työn pitää olla “jalostuneempaa” ja meidän valttina on korkea koulutus. Ja mitä monimutkaisempia ohjelmistoja tehdään, sitä enemmän voimme ulosmitata koulutuksesta. Eli se fyysinenkin tavara saa lisäarvoa kun hyvä ohjelmisto auttaa sitä olemaan “viisaampi”. Tosin ei tämä Sisu katastrofi nyt oikein sitä osaamista mairittele :-) Nykyisin ohjelmistolla korvataan vaikka mitä, mikä ennen hoidettiin mekaniikalla. Kellossakin oli ennen liikkuvia osia meloinen määrä. Nyt ehkä yksi mikropiiri. Se ei ehkä täysin ole halvempaa, mutta on huomattavasti muokattavampaa. Eli ilman että joku hoitelee raakaan ohjelmointipuolta, ei enää saada kilpailukykyisiä tuotteita.
Pyydäppä miettimään vaikka mikä metsäkone on nykyisin. Tai kaivinkone. Traktori. - vl

Q: Mikä on tärkeintä ohjelmoinnissa?

A: Se on teillä esidemotehtävänä :-) - vl

Q: Jos haluan itsenäisesti tutkailla(kurssin aikana ja varsinkin jälkeen) erilaisia ohjelmointikieliä ja niiden kommervenkkejä niin onko teillä suositella tähän tarkoitukseen jotain internetin ilmaispalvelua/tieto-opasta?

A: Noita löytyy enemmänkin kuin tarpeeksi :-) Mutta jo TIMistäkin löytyy Ohj2 matskua, josta näkee Javaa, sitten Ohj2 C/C++ -lisäosan matskua. Myös Pythonia löytyy ja keskeneräistä materiaalia kielet-hakemistosta vaikka kuinka. Itse asiassa TIMin yksi syntysyy oli, että voisi kirjoittaa samanlaista materiaalia eri kielistä ja kokeilla niitä. Ja jos tuota haluaa tehdä tuonne ja parantaa meidän matskuja, niin siitä palkitaan opintopisteillä. Nopeimman vilaisun eri kieliin saa TIM:in kieliesimerkeistä. - vl

Q: Mikä on tämän kurssin paras anti tavan pulliaiselle, joka tuskin tulee tekemään koskaan ohjelmointia työkseen?

A: Se että oppii ymmärtämään vähän mistä ohjelmoinnissa on kyse ja oppii kunnioittamaan niitä, jotka sitä tekevät. Voi oppia parammaksi hankkijaksi kun tietää mitä voi vaatia ja mitä ei voi vaatia. Tämä taito olisi ollut hyödyksi esimerkiksi niillekin, jotka Su.. eikun Sisun tänne hankkivat. Ehkä tietokoneen käyttötaidotkin moninkertaistuvat :-) - vl

Q: Oikeasti paras tapa oppia ohjelmointia kuukaudessa?

A: Saada vuorokauteen 24x24 tuntia - vl

Q:Tehdäänlö nykyiset hienot videopelit esim. pelikonsoleille pelkästään ohjelmoimalla jollain ohjlemointikielellä?

A: Nykyiset graafiset editorit tekevät tosi paljon. Kurssilla käytetty Jypeli toimii “puhtaasti koodaamalla”, sillä kurssin tarkoituksena on oppia ohjelmoimaan, eikä käyttämään jotain tiettyä työkalua. Oikeassa pelinkehitysmaailmassa esimerkiksi Unity on hyvin paljon käytetty ja se on pitkälti sekoitus ohjelmointia ja graafisen käyttöliittymän käyttöä. YouTube: TOP DOWN SHOOTING in Unity -MR

Q: Olen tietojärjestelmätieteen sivuaineopiskelija ja tavoitteenani ei ole tulla ohjelmoijaksi, vaan saada sellainen ymmärrys aiheesta, että voisin humanistina keskustella paremmin ohjelmoijien kanssa ja ymmärtää heitä. Miten hyvän pohjan ohjelmointi 1 antaa tähän tavoitteeseen?

A: Alustavan pohjan. Mutta jäähän sulta kaiki ymmärrys vielä saamatta ohjelmien suunnittelusta, käyttöönotosta ja ylläpidosta yms. Ei nämä mene sormia napsauttamalla kuten jotkut luulevat :-) Mutta kai sää “humanistin” päätä pyörität tämänkin kurssin termeillä. Sisu on surullinen esimerkki kun asioita hoidetaan näin. - vl

Q: Luennolla mainittiin portfolio. Minkälainen ohjelmoinnin taidonnäyte säväyttää työnantajan kuin työnantajan?

A: Oletko katsonut viimevuoden luentoa, mielestäni en maanantain luennolla käyttänyt sanaa portfolio, olisi kyllä pitänyt, jos olisin muistanut :-) Mutta jos hyvän referenssin halua, niin lataat TIMin koodin omalle koneelle, opettelet sen asentamaan, ylläpitämään ja tekemään sekä palvelinpään koodia ja selainpään koodia sinne, niin voit portfolioon kirjoittaa sanat Git, Linux, Docker (kontit), DevOps ja FullStack (Flask, Python ehkä Haskell, Angular, TypeScript). - vl

Q: Eroaako ohjelmointi Macilla merkittävästi Windowsiin nähden?

A: Ei periaattessa. Käytännössä on toki pieniä eroja joita toiset pitävät Macin etuna ja toiset Windowsin. En lähde tähän sotaan :-) - vl

Q: Miten iso osaamisero on ihmisellä joka tekee ohjelmistokieliä ja kirjastoja ja heillä jotka vain käyttävät niitä? Onko se samaa osaamista? Voiko olla koodari, jos osaa vain käyttää toisten tekemiä resursseja osaamatta itse koodata vaikka fysiikkamoottoreita tms?

A: Välttämättä jokainen ei pysty tekemään pelimoottoria (eikä tarvitsekkaan, niitä on paljon valmiina), eikä välttämättä pelimoottroin tekijä osaa tehdä hyvää peliä. Toisessa tarfvitaan kovaa teknistä ja matemaattista osaamista ja toisessa luovia taitoja ja hyvää yhteistyökykyä tiimin muiden jäsenten kanssa. Ja intohimoa siihen aiheeseen jota tekee. Ilman sydäntä ei synny hyvää ohjelmaa. Tulee susi. Eli osaamista tulee aika paljon sen inothimoisen kiinostuksen myötä. Toinen tykkää askarrella teknisten yksityiskohtien kanssa ja toinen työstää hyvin käytettävää ohjelmaa. - vl

Q: Mikä olisi paras tapa jatkaa ohjelmoinnin opettelua tämän kurssin päättymisen jälkeen?

A: Ohjelmointi 2 ja tietysti jatkaa peliä tar harkkaktyötä eteenpäin esim niillä kurssin lisäosilla. Ja yleensäkin harrastaa… - vl

Q: Entä mitä suosittelet ohjelmointi kakkosen jälkeen? Miten hyvät perusteet se antaa tulevaisuulle?

A: Funktio-ohjelmointi, WWW Client ja Server, Ohjelmointiin liittyvät tietoturvakurssit jne… ELi Ohj2:n jälkeen on maisterista tehty n. 1/5 eli on siitä vielä jatkamista. Mutta pohjaa luodaan hitaasti mutta tukevasti. Oma harrastus nopeuttaa, eli kannatata ruveta tekemään omia pieniä projekteja. - vl

Q: Kuinka monta riviä vaaditaan koodaamaan Skyrim?

A: Täällä väitetään että 46 765 292. Keskimäärin ohj1 harkkatyössä on parisataa. Tietysti tähän päälle pitää vielä laskea pelimoottorin rivimäärä, jolloin Jypelin tapauksessa puhutaan sadoista tuhansista. -MR

Q: Mitä ohjelmointiin liittyviä opetussisältöjä on jäänyt pois viimeksi tai mitä aiotaan uudistaa tulevaisuudessa?

A: Vuosien varralle konekieliohjelmoinnin merkitys on pienentynyt. Komentoriviä hierotaan vähemmän kuin joskus, mitä ei kyllä pitäisi tehdä. Hankalaahan tässä on että käytännössä mitään ei voi jättää pois, mutta uutta tulee koko ajan. Perusperiaatteena ei sinällään mitään uutta mullistavaa ole tullut, mutta erilaisia uusia tekniikoita ja välillä kieliä (joihin pääsee paremmin kiinni jos vanha historia on tiedossa). Eli katsomalla metsää eikä puita, voisi ihan hyvin lukea 80-luvun alun materiaalia. Katsotaan mihin uusi OPS kehittyy, sen lisäksi että on asiat mitä pitäisi opettaa, on myös resurssit että kuka sitä tekee ja mitä mahtuu opintoihin. Sitten vielä osa opiskelijoista ei halua sisältöä kursseilla, vaan opintopisteitä :-) Onneksi suuri (mutta valitettavasti ei äänekkäin) osa haluaa tietoja ja taitoja. OPSien rakentajat usien kuuntelevat kuitenkin sitä äänekkäintä osaa. Eli meillä on ihan liikaa liikuvia osia… - vl

Q: Tullaanko tällä kurssilla käyttämään/ tai onko tällä kurssilla ikinä käytetty Kodu game lab -sovellusta?

A: Olen tutustunut, ei tuo oikein lisäarvoa esim Aliceen tms verrattuna, koska ei opeta ohjelmointia sen paremmin kuin esim tuo Alice. Kurssilla koetaan olevan jo liikaakin työkaluja. Kodu voisi sopia paremmin johonkin opettajan työvälineisiin, jossa näytetään tietotekniikan opettajalle mitä tapoja ohjelmoinnin alkeisopetukseen voisi olla. - vl

Q: Mikähän mahtaa olla syynä että tietyissä (Yhdysvaltalaisissa) yliopistoissa ohjelmointi aloitetaan pythonilla?

A: Samoin Aallossa niille, joille ei ole pääaine. Myös Tampereella aloitetaan Pythonilla. Nuo ovat makuasioita ja jotkut ovat sitä mieltä että Python on parempi. Joku asia sillä on helpompi, joku ei. Meillä on tavoitteena että heti alkuun tulee kaksi kieltä, joiden välillä on helppoa siirtyä ja nähdä että se kieli ei ole pääasia. Väitän (ei ole tutkimustuloskia, vain oma mielipide) että Pythonista Javaan on suurempi loikka kuin C#:sta Javaan. Ja periaattessa meidän väki saa kilpailuetua, koska lähes kaikki M$ ohjelmointi tehdään C#:illa ja sitä kysytään työpaikoissa. Mutta kannattaa sitä Pythonia jossakin vaiheessa opetella ja meillä sitä käytetään Web-palvelin -kurssilla. - vl

Q: Uramahdollisuudet kyberturvallisuuden parissa kiinnostavat. Minkälaisiin asioihin kannattaa kiinnittää erityistä huomiota tällä kurssilla? Entä mitkä muut kurssit ja etenkin omat itsenäiset projektit tukevat tällaista tavoitetta parhaiten?

A: Kaikkeen ja kaikki :-) - vl

Lisää kysymys

**Q:** ⁞

**A:** -

7. Henkilökohtaista opettajalle

Q: Kuinka kauan olet tehnyt ohjelmointia? Ja montako vuotta olet opettanut sitä muille?

A: Riippuu mistä ohjelmoinniksi laskettava aloitetaan. Jos 70-luvun puolivälin jälkeen muokkasin enoni HP:n laskimessa olevaa kuuhun laskeutumispeliä. Sitten tein 80-luvun alussa Autosuunnistukseen laskimen elekroniikkapiireillä, ja tietyssä mielessä sekin on ohjelmointia, ohjelmointi vaan tehdään siten, että mikä johto liitetään mihinkäkin (tähän teillä liittyy kurssi Tietokoneen rakenne ja arkkitehtuuri). Mutta ensimmäiset “oikeat” tietokoneohjelmat tein 80-luvun alussa vastaavilla kursseilla. Noin vuodesta 1982 olen tavalla tai toisella opettanut tietotekniikkaa ja pääasiassa mieluiten ohjelmointia. - vl

Q: Mikä tai mitkä asiat on vaikeinta ymmärtää ohjelmoinnissa? Tai jos ne eivät ole vaikeita sinulle, niin mitkä asiat tuottavat opiskelijoille yleensä eniten vaikeuksia ymmärtää?

A: Osalle opiskelijoita vaikenta on ymmärtää se, että tätä ei voi oppia muuta kuin tekemällä kovasti töitä. Ja kurssilla ei ole varaa jättää yhtään viikkoa väliin. Yleensä vaikea asia on ymmärtää se, että jostakin on lähes mahdotonta tehdä ohjelmaa, jos asiaa ei osaa ensin itse todella hyvin. Jos ei ikinä ole käynyt kirjastossa, ei voi tehdä kirjatson järjestelmää. Jos ei ole ollut tiskin takana, ei voi keksiä tarpeita kirjastonhoitajalle. Meidän tasolla tämä tarkoittaa yleensä sitä, että asita pitää osata ensin tehdä hyvin kynällä ja paperilla, jotta ymmärtää ongelman läpikotaisen ja vasta sitten voi olla mahdollista tehdä siihen ohjelma. Itse en lähtisi mistään hinnasta tekemään mitään talaoushallintoon liittyvää, koska se ei ole osaamisaluettani eikä lähellä sydäntä. Ilman sydäntä ei synny ohjelmaa. - vl

Q: Mikä ohjelmoinnissa on parasta?

A: Haaste ja siinä onnistuminen. Pieniä onnistumisia saa usein. Toki tulee välillä turpaankin, mutta sitä paremmalta tuntuu nousta. - vl

Q: Hyvä ohjelmoija voi tehdä kybermaailmassa lähes mitä haluaa. Onko asiassaan vähän liiankin hyvä tai muuten vain kokeilunhaluinen opiskelija koskaan aiheuttanut kyberuhkaa tai “-ongelmaa” Jyväskylän yliopistossa?

A: En käyttäisi sanaa “hyvä ohjelmoija” :-) Hyvän ohjelmoijan tarkoitus ei koskaan ole tehdä pahaa tai aiheuttaa ongelmia muille. Sitten yleensä hyvä ohjelmointitaito ei edes takaa hyviä krakkerointitaitoja (huomaa, en käytä sanaa hakkerointi) eikä välttämättä kääntäen. Jos tällaista tapahtuu, siitä ei yleensä huudella. Eli en ole kuullut, saati että minulle olisi kerrottu. Hämäläisen Timo lupasi omalla kurssillaan että suorituksen saa pitää jos sen saa itse laitettu Korppiin. Timo ei ole raportoinut että olisi jollekin antanut. Mutta valitettavan helppoahan nämä eri järjestelmät olisi lamauttaa. Jonkin verran auttaa, että Jyväskylä ei ole ulkomaisten krakkereeidn ykköshyökkäyskohde. Tässä myös kielimuuri auttaa jonkin verran. - vl

Q: Kuinka paljon teet/olet tehnyt töitä joillekin yrityksille tai muille “asiakkaille” kuin yliopistolle?

A: Ei velatonta omakotitaloa tehdä valtion palkoilla :-) - vl

Q: Opettamalla oppii, eikö? Kuinka usein tänäpäivänä tule vastaan opiskelijoilta, joilta itse opit jotain täysin uutta tai muuten vaan jotain, jota et ole tullut ajatelleeksi?

A: No ehkä ei ihan hirveästi tämän tason kurssilla, mutta TIMiä tehdessä kyllä, opiskelijathan sitä paljon tekevät. Tietysti uusia tekniikoita. Vastakin yksi opiskelija pystytti MS Azureen virtuaalipalvelimen jossa pystyi ajamaan Visual Studiota ja käyttämään sitä vaikka iPadistä. Sitten toki voi tulla joku kielen erityispiirre, jota en käytä, koska koita käyttää C#:ista niin pientä osajoukkoa että se lähes sellaisenaan on yhteensopivaan Javan kanssa. Kun unohdetaan kielet ja tekniikat, jotka ovat toisarvoisia, niin silloin sellaista varsinaiseen ohjelmointiin liittyvää uutta harvemmin. - vl

Q: Onko kuolleena syntynyt ajatus, että haluaa tehdä satunnaisen syntaktisesti oikeaa koodia tekevän “evoluutio IDE”n, joka toimii koirjoittamalla testit ja ohjelma etsii supertietokoneella sopivan aliohjelman tietokannasta? (sanotaan alle 40 koodiriviä).

A: Kyllä se tuntuu lievästi haastavalta jos tehdään ongelma jota ei ole vielä tunnetusti käytettyä. Joku “etsi taulukon suurin” voi toimia. Ja juuri tätä vartenhan on aliohjelmakirjastot, että ne ratkaisevat tyypillisiä ongelmia. Ja silloin jää enemmän aikaa niiden uusien ratkaisemiseen. Mutta kirjastoissa on se riski, että niitä voidaan lakata päivittämästä. Yhtenä TIMin suurimmista uhkista (poliittistenl isäksi) pidän sitä, että tärkeitä käytettyä kirjastoja vanhenee. - vl

Q: Mitä reittiä opettaja päätyi aloittamaan ohjelmoinnin?

A: Oikeastaan tietyssä mielessä käytin siä jo lukiossa kun laskettiin laskutikulla. Se ei ollut samanlaista digitaalista ohjelmointia, mutta eri tehtäviin kehittyi valmis malli millä tehtävä ratkaistaan. Harrastin myös autosuunnistusta ja tein siihen tarvittavan mittariston (ilman ohjelmointia pellkiä piirejä kasaamalla). Samalla tavalla tein sulautettuja järjestelmiä, mm. tähtitorniin kaukoputken suuntauslaitteiston. IT:tä en lukenut, koska ajattelin (kuten fyysikot yleensäkin :-) että sen täytyy olla helppoa (myöhemmin huomasin että onkin paljon asioita joita ei itse ole tulluta ajatelleeksi, eli se siitä helposta), että kyllä sen itsekin oppii. Sitten kuitenkin ajauduin muutamalla ohjelmointikurssille ja huomasin että näillähän voi näppärämin tehdä asioita joita on helppoa muutella. Ne mun sulautetut järjestemät eivät olleet siinä mielessä sulautettuja kuin nykyisin ajatellaan, eli että järjestelmän toimintaa pitää voida ohjelmistolla muuttaa. Kun tuota hieman opin, niin ajauduin tuntiopettajaksi, ja koska siinä piti tehdä paljon demojen kirjaamista yms, niin tein sen ajan matikan laitoksen 1. mikrotietokoneella Korpin edeltäjän, KurKi (=KURssinen KIrajanpito) -ohjelman. Sitten hissukseen tuon taidon siirsin niihin sulautettuhin järjestelmiin ja tein niitä sivubisneksenä pitkälle 2000-luvulle. Korppi ja TIM ovat osa tuota perintöä että uskalta lähteä tekemään jotakin mitä muut eivät ole saaneet aikaiseksi. - vl

Q: Onko jotain yleiselämän taitoja joita kehittämällä kehittyisi koodaaja, esim. kirjoitusnopeutta?

A: Uskoisin että netistä löytyy ohjelmia 10-sormijärjestelmän harjoitteluun. Vaihdatte sen peruspelaamisen siihen, että puoli vuotta (?) puoli tuntia päivässä taotte sellaista kunnes kirjoitusnopeutenne on 10-kertaistunut. Ettekeä lopeta kuten minäpienenä heti kun saa oman nimensä kirjoitettua katsomatta. Nimittäin vanhempana tuota ei enää opi :-( Tosin ohjelman kirjoittamiseen käytetty aika on yksi pienimistä ajoista mitä ohjelmointiin käytetään. Ylläpito yms vie paljon enemmän aikaa. Mutta siitä itsensä kehittämisestä, niin kylä se komentorivi pitäisi opetella sujuvaksi työkaluksi, jota joka päivä käyttää. - vl

Q: Mikä kiehtoo ohjelmoinnin opettamisessa?

A: Se että saa ihmiset oppimaan jotakin heille ihan uutta. Esim ilonhuudahdukset kun lumiukon silmät tulivat jonnekin (ei välttämättä päähän). Ja kun näkee kun joku hissukseen edistyy kopioijasta itse tuottavaksi. Saada ihmiset eroon koulussa opitusta “opettele ulkoa ja sijoita kaavaan” ja vaihtamaan “osaan soveltaa tätä aivan toiseen tilanteeseen”. - vl

Q: Mitä mieltä olet ohjelmista, jotka mahdollistavat ohjelmistojen tekemisen ilman koodin kirjoittamista?

A: Sellaista ei olekkaan, joka tekisi merkittävän ohjelmiston. Pienen ohjelman voi tehdä. Kun katson esim TIMin tekemistä (tai Korpin aikanaan), en voi kuvitella miten tuota voisi tehdä ilman kirjoittamista. Tiettyyn erikoistarkoitukseen voidaan tehdä toki sellaimen missä parametrisoidaan vakiotarpeet ja kysellään käyttäjältä mitä hän haluaa. Esim meillä voisi olla ohjelma, joka kyselee lumiukon mittoja, määriä ja sijainteja ja sitten generoi ja kääntää ja ajaa ohjelman joka tekee tuon. Mutta kun ollaan tekemässä uutta (mitä aina pitäisi olla jos tehdään ohjelmia), niin en usko. Tuollaisia Alicen kaltaisiakaan työkaluja kukaan nörtti ei halua käyttää pitkään, koska ohjelman muokkaaminen on tuskaa verrattuna hyvään tekstieditoriin. - vl

Q: Onko entisiä opiskelijoitasi tullut kiittämään sinua opeistasi, muistelemaan opiskeluaikojaan tms? :-)

A: Kyllä aika monesti. - vl

Q: Törmäsin kerran kuudesluokkalaisten kanssa koulussa työskennellessäni sellaiseen ohjelmaan, jolla oppilaat tutustuivat ohjelmointiin liittämällä erilaisia palikoita yhteen. En muista tarkalleen heidän käyttämänsä ohjelman/sivuston nimeä, mutta samankaltaisia ohjelmia/pelejä/sivustoja näyttäisi olevan enemmänkin. Mielestäni tuollainen “palapeliohjelmointi” oli hauskaa ja hyvän oloinen tapa tutustua siihen, miten ohjelmat rakentuvat erilaisten käskyjen ja arvojen kautta. Mitä mieltä sinä olet tällaisista “palapeliohjelmointi”-sivuista/peleistä? Mikä niiden suurin hyöty ja/tai heikkous mielestäsi on?

A: Esimerkiksi Scratch (https://scratch.mit.edu) on aloittelijoille ja erityisesti lapsille suunnattu ohjelmointikieli ja -ympäristö, jossa ohjelmointi tapahtuu raahaamalla komentoja (blokkeja) peräkkäin ja sisäkkäin. Tätä ohjelmointityyliä kutsutaan visuaaliseksi ohjelmoinniksi, jolla on haluttu tehdä eroa erityisesti tekstuaaliseen ohjelmointiin. Ohjelman tekeminen visuaalisessa ympäristössä kuuluu nykyiseen perusopetuksen opetussuunnitelmaan ja Scratch on monessa paikassa de facto -ympäristö tähän tarkoitukseen.

Blokkikielen etuna voidaan pitää sitä, että oppilas ei voi tehdä kirjoitusvirheitä syöttäessään komentoja. Komennot ovat myös nähtävillä luettelomuodossa, joten komentojen selailu ja kokeileminen on vaivatonta. Tämä tekee ohjelmoinnin aloittamisesta erityisen helppoa. Koska blokkikielet on tyypillisesti kehitetty “houkuttelemaan” uusia käyttäjiä ohjelmoinnin maailmaan, on blokkiohjelmointiympäristön estetiikka usein aivan toisella tasolla verrattuna perinteiseen, tekstuaaliseen ohjelmointiympäristöön, joka voi vaikuttaa blokkiympäristön rinnalla kovin tylsältä.

Toisaalta blokkikielet eivät yleensä ole niin monipuolisia kuin kirjoitetut ohjelmointikielet. Kun edetään aivan yksinkertaisimmasta ohjelmasta eteenpäin, saattaa visuaalisuuden hyöty (niin kielen kuin ympäristön osalta) jäädä käytännössä melko vähäiseksi. Pahimmillaan käyttäjä voi kokea ympäristön rajoittavan häntä. Käytännössä Scratchin tapaisia ympäristöjä käytetäänkin “lämmittelyvaiheessa”, jotta ajan myötä siirtyminen oikeisiin kieliin olisi hieman helpompaa. -AJL

Q: Mikä oli ensimmäinen tietokoneesi?

A: HP41C laskin. Ensimmäinen oikea kone johon kirjoitin ohjelmaa oli Univac 1100. Ensimmäinen oma kone oli IBM PC:n klooni OLivetti 24 (??). Tosin paremmalla näytöllä ja kovalevyllä. - vl

Q: Jaetaanko luennoilla karkkeja koko kurssin ajan vai onko kyseessä vain kurssin alun houkutin? Onko karkkien jakamisen taustalla jotain syvempää filosofiaa? Saako karkista kieltäytyä vai olisiko se loukkaavaa?

A: Jaetaan niin kauan kuin karkkeja riittää. Ei ole pakko ottaa vastaan. voi antaa kaverille. Pikkuporkkanat olisivat parempia, mutta niitä ei saa hygieenisesti heitettyä. - vl

Lisää kysymys

**Q:** ⁞

**A:** -

8. Lajittelemattomat

Q: Mikä on oranssien viivojen funktio näidenkin sivujen oikeassa reunassa - kenelle ne ovat tarkoitettu?

A: Kaikille tarkoitettu. Ne klikataan pois kun on lohkon lukenut. Siitä tietää mitä on lukematta / tullut uutta. Jos niitä vihaa eikä näe niille käyttöä, ne saa pois rattaan kuvan takaa. - vl

Q: Kuinka kauan TIM-oppimisympäristö on ollut käytössä yliopistolla? Olen opiskellut 6 vuotta Jyväskylän yliopistossa ja tämä on ensimmäinen kerta kun kuulen koko oppimisympäristöstä.

A: Piti oikein tarkistaa. Ensimmäiset asiaan liittyvät mailit näyttivät olevan helmikuulta 2014. Kesällä 2014 alkoi varsinainen kehitys ja ensimmäin käytössä ollut “moniste” oli Ohj1 moniste syskyllä 2014. Sen näkee siitäkin että sen osoiteena käy myös: https://tim.jyu.fi/view/1. Kehittämisessä mukan olleet henkilöt näkee osoitteesta : https://tim.jyu.fi/view/tim/kehittajat. Syksyllä 2014 kursin materiaalista oli vielä iso osa vanhassa Trac-Wiki-ympäristössä, mutta 2015 oli jo demot yms TIMissä. Ja hissuseen muutkin yksiköt, kuten esimerkiksi matematiikka ja fysiikka ottivat käyttöön. Eli nähtävästi tullut noiden yksiköiden ulkopuolelta, jos et ole törmännyt :-) Ongelmahan TIMin käytössä on, että yliopiston johto haluaa kieltää sen olemassaolon, enkä pääse edes JY-yläpalkkiin, vaikka meillä on yli 8000 käyttäjää… - vl

Q: Olen erillisellä opinto-oikeudella opiskeleva ja haluan sitä kautta päästä tutkinto-opiskelijaksi. Pitääkö kaikkien kurssien yhteisen keski-arvon olla 3/5 vai tuleeko jokaisesta kurssista saada erikseen vähintään 3/5 että pääsee suoraan sisään?

A: Tarkistetaan… Kaikista pitää saada vähintään 3/5, keskiarvo ei riitä. - vl

Q: Paljonko kahvia täytyy varata kurssia varten kun ohjelmointikokemusta on pyöreät 0 riviä?

A: Jos on kuten minä, eli ei juo kahvia, pääsee halvalla :-) Mutta tuo 0 ei ole mikään häpeä, suurin osa kurssilaisista on siinä tilanteessa ja siihen kurssi on suunniteltu. MUTTA kurssi ei ala niin, että “velttoillaan” 3 viikkoa. Vaan heti ruvetaan toimeen ja heti on oltava mukana 101% että pärjää. Tuo on se isoin yllätys monelle. Jos se kahvi parantaa asennetta, niin sitten muutama kuppi päivässä, älä kuitenkaan kaada näppikselle… - vl

Q: Mainitsit ylempänä, että yo haluaa kieltää TIMin olemassaolon - osaatko sanoa miksi näin on käynyt? Lisäksi: mitä varten TIM on alun perin perustettu, kun tuntuu olevan monipuolinen työväline?

A: Miksi tehty: Tarvittiin jotakin parempaa kuin oli olemassa. Miksi ei saa käyttää? Koska asiasta päättävät näkevät uhkana sen että joku tekee jotakin virallisesti valittua parempaa :-) - vl

Q: Miksi yliopistolla on niin monia erilaisia oppimisympäristöjä ja ilmoittautumisjärjestelmiä käytössä? On TIM ja Peda.net, Sisu ja Korppi. Onko vielä muitakin? On jotenkin sekavaa.

A: Unohdin Kopan, Moodlen ja jotakin muutakin. Minun osalta TIM on sen takia että mikään tarjotuista ei anna niitä mahdollisuuksia, joita haluan opiskelijalle tarjota. Miksi joku käyttää sitten jotakin muuta? Siksi että ei uskota että pystyisimme tekemään jotakin muita parempaa. Peda.net on oma maailmansa koulumaailmaan ja sinne ihan OK. Sisu on turha hankinta, sen takia jouduttiin hankkimaan vielä tukku muitakin järjestemiä joiden hommat Korppi hoiti paremmin. Moodle oli OK joskus 10 v sitten kun täällä väkisin käytettiin Optimaa. Mutta Moodlekin alkaa olla vanhanaikainen ja TIM oli käytössä ennenkuin Moodle oli “virallinen” järjestelmä. Rohokea olisi miettinyt jättääkö yhden turhan välivaiheen pois ja siirtyy kerralla kunnolla digimaailmaan. Mutta sellaista rohkeutta täällä ei ollut. Yksi iso syy on että kukaan ei tätä koordinoi tai yrittää koordinoida, mutta on ulkona hommista kuin meidän lumiukot. - vl

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.