Kysymyksiä ja vastauksia, kevät 2021

Tähän on koottu opiskelijoiden ensimmällä viikolla esittämiä kysymyksiä. Aikaisempiin kysymys-vastaus-palstoihin pääset tästä.

Kysyminen

Klikkaa Lisää kysymys ja laita kysymyksesi Q-kohdan perään.

Vastaajat

Vastaajille: Kirjoita nimimerkkisi ja nimesi tähän, ja merkitse vastauksesi perään sitten aina nimimerkkisi.

  • AJL: Antti-Jussi Lakanen
  • VL: Vesa Lappalainen
  • ji: Jonne Itkonen
  • MR: Mikko Röyskö - Jypelin nykyinen ylläpitäjä
  • AK: Aleksi Kangas - Tuntiopettaja kevään Ohj1 -kurssilla
  • JuhoK: Juho Kettunen - Tuntiopettaja Ohj1- ja Ohj2-kursseilla

Tämän sivun silmäily on hieman työlästä, kun kysymykset sekoittuvat vastauksiin. Voisikohan joko kysymys- tai vastaustekstejä muotoilla, jotta olisi helpompaa erottaa milloin kysymys vaihtuu toiseksi?

Olisiko vastausten sisentämisestä apua? -AJL

Olisiko tämmöinen hyvä? Tämä CSS näyttäisi toimivan ongelmitta jos kysymyksessä on vain yksi tekstikappale ja vastauksia varten ei tehdä omaa lohkoa. -MR

Tais muuten mennä valikko rikki :). -AJL

No entä nyt, aiheeseen liittyen :D -MR

Täydellistä!

28 Jan 21 (edited 28 Jan 21)

Kurssin suorittaminen

HEI KAIKKI! Nyt pitäisi kysymystne lisäämisen toimia. Editointioikeudet puuttuivat teiltä, siksi kysymyksiä ei voinut lisätä normaalilla tavalla. -AJL

14 Jan 21 (edited 14 Jan 21)

Q: Miten ihmeessä työn ohessa opiskeleva ARKOlainen pysyy mukana kunnialla, jos kurssin on suunniteltu vievän aikaa keskinmäärin 44h/vk? Lisänä opiskelijalle tulee toisen kurssin tunnit esim. ITKP1010 :)

A: Onkohan tuossa joku laskuvirhe? Laskennallinen työmäärä on 14,5 tuntia per viikko. -AJL

Q: Pitääkö erilaisia koodi lausekkeita tai sanoja opetella ulkoa?

A: Varmaan kuten kaikessa muussakin tekemisessä, niin ne sanat, lausekkeet, aliohjelmakutsut, funktioiden nimet jne. joita paljon käytetään, jäävät varmasti mieleen. Ne, joita vähemmän käytetään, eivät jää. Käytännön työssä myöhemmin niitä pitää sitten hakea dokumentaatiosta ja kirjallisuudesta. Tällä kurssilla ulkoa opeteltavaksi vaadittujen sanojen määrä on kyllä oikeasti aika pieni. Kurssin lopuksi pitää jonkin verran pystyä soveltamaan tällä opitulla pienellä sanamäärällä. -AJL

Q: Millainen kurssin tentti on luonteeltaan? Kysytäänkö siinä esim. nippelitietoja kurssimonisteen asioista, onko monivalintatehtäviä tai esseitä, vai ihan käytännön ohjelmointihommia vai jotain ihan muuta?

A: Kevään kurssin vanhoja tenttejä voi katsella täältä. Koska tilanne on nyt sellainen kuin on, niin en vielä tässä vaiheessa lupaa tämän kevään tentin sisällön osalta mitään. -AJL

Q: Pystyykö kurssin tiedoilla ohjelmoida yksinkertaista graafiohjelmaa esim. fysiikan mittauksia varten?

A: Kurssilla käytetyt työkalut evät ole ihan siihen sunniteltu, mutta tämä on erittäin hyödyllinen esitieto FYSA1120 ja FYSA1130 -kursseja ajatellen. Pythonin syntaksi on toki hieman erilainen, mutta samanlaista ajattelulogiikkaa siinäkin joutuu noudattamaan. Melkein voisin jopa väittää että tämän kurssin käyneet selviävät noista kursseista huomattavasti helpommalla :) -MR

Q: Missä vaiheessa kurssia kannattaa todeta, että tätä ei opi tarpeeksi nopeasti? Siis jos aikaa menee itsellä enemmän kuin tuo 14,5h/vko.

A: Ei varmaan vielä ensimmäisellä viikolla :-). Yleisesti, jokainen ihminen on tietysti yksilö ja jokaisella oppiminen tapahtuu omalla rytmillä ja omalla tahdilla. Ohjelmoinnin opiskelussa ei tarvi eikä kannata säikähtää jos jossain kohtaa tuntuu siltä että tulee ikään kuin seinä vastaan. Ne seinät on tehty ylitettäviksi. Joskus sen seinän ylittämiseen voi mennä yli 14,5 tuntia. Sitten taas joskus joku toinen seinä voi olla matalampi, ja ylittyy pienemmässä ajassa. -AJL

Q: Voiko ohjelmoinnissa pärjätä vaikka olisi huono matikkapää?

A: Oikein mainiosti. Pitää vaan jaksaa pohtia ja kokeilla, tietokone hoitaa sitten laskemisen. Järjestelmällistä ajattelua kyllä tarvitsee, mutta sitä osaavat muutkin kuin matemaatikot. -ji

Q: Tuleeko kurssin luennoissa olemaan jotain ilmoituksellisia asioita tai tarkennuksia tehtäviin jonka takia sielä olisi hyvä olla läsnä vaikka tarvittavat tiedot tehtävien tekemiseen löytyisivätkin?

A: Kyllä tulee. -AJL

Lisää kysymys

**Q:** ⁞

**A:** -

Työkaluista

Q: Teinköhän jotain väärin, kun Ville ilmoittaa että "You don't have any active courses", vaikka aluksi hyväksyy "ohj1kevat" kurssiavaimen?

A: Vaihdoin linkkiä ja kurssiavainta. En tiedä miksi aiempi ei toiminut. Ota demosivusta refresh ja kokeile uudestaan. Pahoittelut! -AJL

Q: Voiko myöhemmin kurssilla tulla ongelmia, kun Jypelin ajaminen saa virustorjuntaohjelman valittamaan.

A: Ilmeisesti kysymys on jostain muusta kuin käyttöjärjestelmän omista torjuntaohjelmista? Jypeli ei tuossa ole se ongelma vaan se että torjuntaohjelma yrittää estää itse käännettyjen ohjelmien ajamisen. Jos saat laitettua torjunnan pois päältä siksi aikaa kun itse teet ohjelmia, niin hyvä niin. -AJL

Q: Tullaanko Gitin käyttöä harjoittelemaan kurssilla?

A: Kyllä, harkkatyön tekemisen yhteydessä. -AJL

Q: Voisiko tekstieditoriksi päättää vain yhden, tai edes vahvasti suositella käyttämään vain yhtä tiettyä ohjelmaa? Koulun koneilla on ilmeisesti npp jota aloin käyttämään mutta demoissa ilmeni että sublimeen olisi heksalaajennus eikä tarvitse erillistä ohjelmaa. Onko Visual Studio Coden käytössä mitään hyötyjä vs. nämä aiemmat? Mahdollisimman vähän tarvittavia ohjelmia ja mahdollisimman paljon yhteensopivuuksia kiitos.

A: Opiskelijan vinkki Notepad++:n heksalaajennukseen: "Notepad++:aan saa myös heksaeditorin: - valitse ylävalikosta Plugins/Plugins Admin - valitse HEX-Editor - napsauta Install Asennuksen jälkeen HEX-Editor aukeaa ylävalikosta Plugins/HEX-Editor/View in HEX." Tosiaan Agoran koneilla on ollut sekä npp että heksaeditori (erillisinä ohjelmina) valmiiksi asennettuina. Siksi tuo ohje. Parantelemme sen, kiitos huomiosta. -AJL

Q: Tarvitaanko GitHub käyttäjätili

A: Ei tällä kurssilla. Harjoitustyöt tehdään gitlab.jyu.fi-palveluun. -AJL

Q: Toimiiko Teams koodi jos ei ole yliopiston spostilla Teamssissä?

A: Jos sinulla ei ole yliopiston tunnusta (esimerkiksi et ole vielä saanut tai hakenut erillistä opinto-oikeutta) niin voin lisätä sinut vieraana Teamsiin. -AJL

Lisää kysymys

**Q:** ⁞

**A:** -

Eri kielistä

Q: Onko C# ohjelmointikieli lähellä jotakin toista kieltä, jonka opettelussa C# kielen osaamisesta on hyötyä? jos C# kielen rinnalle pitäis valita toinen opeteltava kieli niin mikä olisi kannattavin valinta?

A: Sanoisin että luotatte tällä kurssilla vaan opettajien valintoihin :-) Ohjelmointi 2:lla tulee sitten Java joka on hyvin lähellä C#:ia. Ja nimenomaan siksi Ohj1 kurssilla on eri kieli, että pitää oppia siihen että kieliä menee ja tulee. Ohjelmointi ei ole kieliä, vaan se on ajatusmaailma, joka on siirrettävissä aika helposti samankalaitsille kielille. Alkuvaiheessa (=Ohj1) ei kannata sotkea itseään liian monella kielellä. - VL

Q: Kuinka helppoa/hankalaa toisen kielen opettelu on C# opettelun jälkeen?

A: Riippuu kielestä. On kieliä, jotka ovat isolta osin "saman tyylisiä" kuin C#. Näissä opettelu voi olla nopeaa. Sitten on kieliä joissa ajattelutapa on erilainen kuin C#:ssa. Niiden kohdalla voi tuntua että ohjelmointi on ikään kuin eri maailmasta. Lisään tähän vielä Vesan kommentin viime keväältä. -AJL.
Isoimman eron tekee kirjastot jotka ovat erilaisia ja joiden opettelu on monesti isompi homma kuin itse kielen. Meillä on tarkoituskin että kieltä vaihdetaan riittävän usein jotta opittaisiin näkemään tasutalla oleva ajatus ja erotettaisiin metsä (ohjelmointi) puilta (kieli).

A: Kun olen pitänyt noita C#- ja Java-kielen opettelun jälkeisiä kursseja, niin monesti on harmittanut se, että moni kuvittelee muilla kielillä ohjelmoinnin olevan samanlaista kuin em. kielillä. Jos osaa useampaa puhuttua kieltä ymmärtää, että eri kielillä sama asia sanotaan eri tavalla, ei pelkästään eri sanoilla. Sama on ohjelmointikielissä, eri kielillä ohjelmoidaan eri tavalla. Vanha vitsi onkin että ”kaikilla kielillä voi kirjoittaa Fortrania”. Vaikeaa on oppia unohtamaan aiemmin oppimansa ohjelmointi- ja ajattelutapa ja opetella uudelle kielelle soveltuvampi tapa. -ji

Q: Muissa opinnoissa on tullut tutustuttua Pythoniin ja sen perusteisiin. Onko C# ja Python kuinka paljon samankaltaisuuksia joita voi kenties hyödyntää?

A: Kauempaa katsottuna hyvin samankaltainen ajatusmaailma. Läheltä katsottuna voi olla löytävinään eroja. - VL

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

A: Jonkin verran keskeisiä "sanoja" on koottu tänne: https://tim.jyu.fi/view/kurssit/tie/ohj1/lisamateriaali#c-kieli-kielioppi-ja-terminologia. Microsoftilla on oma ajantasainen dokumentaatio C#:lle josta sitten löytyy lisää ohjeita. -AJL

Q: Onko kellään kokemusta Lisp-ohjelmointikielestä ja onko sitä ylipäätään enää olemassa?

A: Kiitos kysymyksestä! Kyllä, kyllä ja hyvin on voimissaan! Välillä kokevat suurempaakin suosiota, välillä ovat sitten taustavaikuttajina. Käytännössä suosituimmat murteet tällä hetkellä ovat (aakkosjärjestyksessä) Clojure, Common Lisp, Emacs Lisp ja Racket/Scheme. Kaupallisia/suljettuja ja ilmaisia/vapaita toteutuksia löytyy kaikille käyttöjärjestelmille, SBCL on oma suosikkini Emacsin lisäksi. Kirjallisuuttakin (esim. Common Lisp, Racket) tulee uutta koko ajan. Itse pidän eniten Common Lispistä ja Emacs Lispistä. Racket/Scheme on suosiossa, joskin valitettavasti vähenevässä, ohjelmoinnin opetuksen puolella, ja Clojure on kovasti ollut teollisuudessa kasvussa, varsinkin Javan JVM:ään sitoutuneissa projekteissa. Kieleen kannattaa tutustua, sillä se on yksi käyttäjänsä tarpeisiin parhaiten mukautuvia kieliä ja kehitysympäristöineen. -ji

Q: Ovatko kaikki ohjelmointikielet yhtä hyödyllisiä? Onko joku kieli muita käytetympi/suositumpi?

A: Eivät ole. Kyllä, mutta se vaihtelee ajan ja vastaajan mukaan, esim. TIOBE Indexin mukaan suosituin tällä hetkellä on Python, ja GitHubin GitHutin mukaan JavaScript. Lopulta hyödyllisin kieli on se, jota käytät mieluiten ja tuottavimmin. -ji

Q: Millä kielellä ohjelmointi 2 suoritetaan?

A: Java, syntaksiltaan hyvin samanlainen kuin C# -MR

Q: Opitaanko me HTML kielen käytöstä?

A: Ei tällä kurssilla, katso ITKP1011 -MR

Q: Pidätkö todennäköisenä, että tulevaisuudessa ilmaantuisi jokin uusi muita "tärkeämpi" ohjelmointikieli nykyisten tilalle?

A: Tuskin "ilmaantuu". Mutta aivan varmasti hitaasti tulee. Javankin nousu kesti vuosia. - VL

A: Hieman olen eri mieltä, hitaudesta, mutta se onkin suhteellista. Javalla meni 3-4 vuotta siihen, että se jo syrjäytti monessa paikassa pidempään vaikuttaneita kieliä. Swift teki saman parissa vuodessa, mutta se tehtiin syrjäyttämään toinen kieli (Objective-C, hyvä kieli sekin, mutta erikoinen syntaksi. Esim. WWW selaimineen kehiteltiin Objective-C ympäristössä). Molemmissa siis auttoi, että taustalla oli vahva halu ja ympärillä tarve tuollaiselle kielelle. Mutta jos joku kieli vuodessa tai alle saavuttaa suuren kiinnostuksen, se kannattaa jo opetella.

Vesa varmaankin laski mukaan kielen kehitysajan, joka noissa kaikissa oli vuosia. -ji

Q: Tehdäänkö alalla kielentutkimusta, vai kehittyvätkö kielet niin vauhdilla, että tutkimukset sisältävät vanhentunutta tietoa jo julkaisun hetkellä? Tarkoitan siis ohjelmointikieliä vertailevaa tai tiettyyn kieleen keskittyvää analyysia tmv.

A: Kyllä tehdään, paljonkin. Ei se tutkittu tieto vanhene, se tarkentuu ja toki joskus huomataan, että tuli tehtyä virhe, jolloin se suoraselkäisesti ja rehellisesti tunnustetaan. Tutkijat ovat jo varmasti ehtineet tarkentaa tuloksiaan, kun julkaisu julkaisuprosessin läpikäytyään vihdoin julkaistaan. Vertailevaa tutkimusta on, mutta ei sellaista ”tämä kieli on parempi kuin tuo”, koska sellainen kuuluu lasten hiekkalaatikkoon. Ei kielen voi sanoa olevan parempi kuin toisen, ehkä sopivampi johonkin tilanteeseen kuin toinen on, paitsi jos haluat sotia ;-) Kieleen keskittyvää analyysia löytyy, esim. tiedekunnassa on valmistumassa gradu, jossa tutkittiin tai tarkemmin toistettiin tutkimus, jossa pohdittiin mitkä sanat olisiva hyviä avainsanoja. Toistui esim. alkuperäisen tutkimuksen löydös, että monen mielestä for on huono sana toistorakenteelle ja repeat olisi parempi. -ji

Q: Mikä on yleisesti ottaen C++ arvostus ja käyttöaste kielenä? Olen käsittänyt, että sitä pidetään vanhanaikaisena ja epäkäytännöllisenä. Kieleen silti törmää sattumanvaraisesti eri kursseilla, foorumeilla jne.

A: Kieli on vanhanaikainen, vaikea ja huono muutenkin. Sitä käytetään paljon, koska sillä on ikää ja sillä oli aikoinaan kovin hyvä myyntivaltti: C-yhteensopivuus. Vuosien saatossa se on parantunut kyllä, mutta moni näistä uusista samoihin tarpeisiin ja samoihin ympäristöihin tehdyistä kielistä (Swift, Go, Rust) olisi paljon parempi, helpompi ja turvallisempi valinta toteutuskieleksi, imo. -ji

Lisää kysymys

**Q:** ⁞

**A:** -

Kurssin sisällöstä

Q: Kuinka paljon kurssin tehtävät vaikeutuvat suhteessa opiskelijan sen hetkiseen osaamistasoon? Liikutaanko tehtävien kanssa käsi kädessä vai tarvitseeko pelätä ettei osaa lopussa ja tehdä nyt mahdollisimman paljon tehtäviä?

A: Tavoite on että vaikeustaso etenee hallitusti. Ei ole mitään syytä pelätä tulevaisuutta, mutta toisaalta toki kannustan myös tekemään mahdollisimman paljon tehtäviä heti alusta alkaen. Se on se käytännön toimenpide, jolla kukin omalta osaltaan pystyy ennakoimaan ja hallitsemaan tehtävien vaikeutumista. -AJL

Q: Minkälainen yleensä on ohjelmointi1 kurssin suoritusprosentti? Eli kuinka moni jättää yleensä leikin kesken?

A: Suoritusprosentti on noin 70. Syksyllä olisi voitu päästä melkein 80%, mutta harjoitustöitä vielä moni panttaa. Lähes kaikki keskeyttäjät sanovat syyksi ajanpuutteen. Ei ole totuttu siihen, että jos sanotaan että kurssi vaatii työtä, niin silloin tarkoitetaan sitä. Eli jos kurssiin ajatuksen kanssa panostaa, niin kyllä yliopistoon päässeet sen pystyy tekemään. Asiasta liikkuu turhaan huhuja ja yleensä niiden toimesta, jotka eivät ole panostaneet. - VL

Q: Tuleeko harkkatyö olemaan paljon haastavampi kuin itse tehtävät kurssin aikana?

A: Harkkatyössä tehdään isompi kokonaisuus. Se tarkoittaa muun muassa sitä, että harkkatyössä on useita aliohjelmia, kun demotehtävissä tyypillisesti toteutetaan yksi aliohjelma. -AJL

Q: Mikä on guru-tehtävien vaikeusaste suhteessa kurssiarvosanaan? Esim jos niiden tekemisessä onnistuu suurimman osan ajasta niin onko osaaminen lähempänä 5 arvosanaa kuin 3:sta?

A: Tätä ei ehkä ole kovin tarkasti tutkittu aikaisempina vuosina, mutta näppituntuma on, että kyllä. -AJL

Lisää kysymys

**Q:** ⁞

**A:** -

Jypeli

Q: Kehitetäänkö Jypeliä eteenpäin opiskelijoiden toimesta eteenpäin esim syventävissä opinnoissa?

A: Nykyisellään Jypeliä ylläpitää vain yksi henkilö. Se on kyllä avointa lähdekoodia ja kuka tahansa saa ehdottaa sinne muutoksia, joten se ehkä menisi enemmänkin oman harrastuneisuuden mukaan. -MR

A: Kyllä siitä kurssisuorituksia voidaan keksiä jos joku oikein hyödyllisiä dokumentoituna tekee. - vl

Q: Pystyykö noita Jypelillä tehtyjä pelejä julkaista minnekkään julkisesti? Esim Appstore/Playkauppa

A: Nykyinen mobiiliversio on hieman vanhentunut, mutta kyllä niitä on vuosien varrella muutamia julkaistu, ks: ITKP106. iOS versiota ei ole toistaiseksi olemassa. -MR

Q: Onko Jypeli ihan yleisesti käytössä oleva sovellus? Vai keskittyykö sen käyttö enemmän opiskeluympäristöihin?

A: Jypeli on rakennettu MonoGamen päälle, nimenomaan opetuskäyttöä ajatellen. Alunperin Jypeli oli nuorten peliohjelmointikurssia varten, mutta muutaman vuoden jälkeen se otettiin myös ohj1 kurssille mukaan. -MR

Lisää kysymys

**Q:** ⁞

**A:** -

Yleistä ohjelmoinnista

Q: Peruskoulun opettajana kiinnostaisi tietää, olisiko teillä ajatuksia miten motivoida tyttöjä enemmän ohjelmoinnin pariin? Tuoreet ICILS-tutkimukset esim. kertovat, että he pärjäävät ohjelmoinnillisessa ajattelussa jopa poikia paremmin. Silti oma kokemukseni on, että tytöt arastelevat koulujen tvt-kursseja ja myös integroitua ohjelmoinnin opetusta poikia enemmän.

A: Joku muu voisi olla pätevämpi vastaamaan, mutta tällaisia mielipiteitä olisi minulta tarjolla: Tyttöjä kiinnostaa samat asiat kuin poikiakin ja poikia samat kuin tyttöjä, eli kuten varmaan on tuttua, ensin stereotypiat roskiin, vaikka oppikirjatkin niitä viljelee. Opetusta ja asioita voisi toki yrittää tuoda lähemmäs lasten kiinnostuksen kohteita, mitä on tehty esim. nörtimmällä puolella Minecraft+ohjelmointi. Samoin voisi olettaa, että kaikille käsillään touhuaville, oli materiaali sitten kangasta tai (pm)uuta, olisi iloa Micro:bitin, Raspberry Pi:n ja Arduinon kaltaisten laitteiden lisäämisestä työhön. Tuoda yleensäkin esille, että vaikka ohjelmoinnista on apua ja iloa (omissakin) töissä, se voi myös olla kauneuden ja tunnelman lähde (esim. demokoodaus, multimediaspektaakkelit, musiikki ja muu digitaide). -ji
A: Tämä on ollut pari-kolmekymmentä vuotta kyllä tuhannen taalan kysymys. Huippuvuodet oli joskus 80-luvun alkupuolella, kun vielä 40% computer science -alan opiskelijoista oli naisia. Nykyään luku lienee jotain 20-30% välillä (en muista ihan tarkkaan päivän lukuja). Ks. Usan luvut. Jotkut tutkijat ovat selvittäneet, että syy olisi siinä, että naiset eivät yksinkertaisesti tiedä alasta riittävästi ja sitten tiedon puutteen takia valitsevat jonkun toisen opiskelualan. Itse en ihan täysin usko tähän selitykseen, koska tietotekniikka/tietojenkäsittely on ollut jo monta vuotta hyvinkin framilla mediassa, eikä siinä mielessä enää kovin tuntematon oppiaine. Myöskin kerho- ym. tavoittavaa työtä tehdään paljon. Sukupuolierot ovat globaalisti melko saman suuntaisia, mikä vielä lisää ainakin minun hämmästystäni entisestään. Mitä tulee kotoa saatavaan kannustukseen, siinä ei ole hirveästi eroja sukupuolten välillä, mutta pojat juttelevat alaan liittyvistä asioista enemmän kavereiden kanssa, kun taas tytöt ennemmin perheenjäsenten kanssa (Vrieler et al. 2020). Pojat siis uskaltavat herkemmin "tunnustaa" kavereilleen olevansa kiinostuneita teknologiasta ja tietotekniikasta. Joka tapauksessa selvää lienee että opiskelu ja tuleva työura pitää kokea siinä määrin omaksi, mielekkääksi ja elämisen arvoiseksi että siihen kannattaa panostaa. Todennäköisesti on useita pieniä ja isoja, toisistaan irrallisia ja itsenäisiä syitä sille, miksi uranäkemykset teknologia-alalla eivät jakaudu tasaisesti sukupuolten välillä. -AJL
A: En ole tarkastanut viime aikojen lukuja, mutta vajaa 10 V sitten eräässä konferenssissa Turkissa (nythän sinne ei edes uskaltaisi mennä) sanottiin että Tukissa ja Irlannissa on poikien ja tyttöjen suhde 50% ja muualla merkittävästi vähemmän. Yhdistävä tekijä oli muistaakseni pitkä pakollinen matikka. Ja vaikka koulumatematiikka sinällään ei ole tietotekniikkaa, niin sitä edesauttaa se, että päätä on käytetty/treenattu silloin kun se on "ottavimmillaan". Sama kuin urheilussa, kehoa pitää treenata silloin kun se on siihen parhaassa iässä. Tosin kun katson omien lasteni nykyistä lukiomatikkaa, niin minusta sinne on tungettu liikaa asiaa ja liian vähän jää aikaa syvälliselle pohdiskelulle ja silloin opiskelu menee ulkoa opetteluksi ilman sitä että asiat osataan johtaa. Matematiikka on pilalla jos tarvitaan kaavoja! - vl

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

A: Tämän kurssin tiimoilta moniste lisälehtineen riittää. Muilla(kin) kursseilla on oma kirjallisuus, joka noudattaa opetussuunnitelmaa jonka tiedekuntaneuvosto on vahvistanut. Eli kannattaa ottaa kunkin opintojakson opettajan antama kirjallisuusluettelo vakavasti, koska sitä on ihan oikeasti mietitty hartaasti. On toki ihan tervettä pidemmällä tähtäimellä tutustua erilaiseen kirjallisuuteen monipuolisesti, ja samalla kehittää tervettä kritiikkiä tietoa hankkiessaan. -AJL
A: Luentomonisteiden lisäksi ohjelmoinnin perusteiden opiskeluun olen ainakin itse kokenut YouTuben tarjoaman (englanninkielisen) materiaalin todella kattavaksi. Täytyy vain tietää, mitä haluaa etsiä (esim. "programming for beginners c#"). Mielenkiintoisen videon löytyessä kannattaa katsoa kyseisen kanavan muitakin klippejä. Usein materiaalia on tuotettu jatkumona siten, että videot yhdessä rakentuvat aiemmin esitellyn päälle ja muodostavat kattavamman kokonaisuuden. -AK
A: YouTubesta ja muista löytyy kyllä monenlaista materiaalia, joten olisin varovainen, mutta tykkään itse esim. Lazy Devsin Pico-8:lle tehdystä Breakout-tutoriaalista, joskin se alussa opettaa asiat tavallaan väärin, mutta selittää sitten loppua kohti miksi ja mikä on oikein.
Kuten AJL sanoi, kannattaa aloittaa kurssilla mainitusta kirjallisuudesta. -ji

Q: Kuinka usein yrityselämässä tulee vastaan tilanne, jossa esimerkiksi markkinoinnin parissa työskentelevä joutuu koodaamaan?

A: Liian harvoin, mutta kävipä tässä niinkin, että Oy Arwidson Ab, moottorivermeiden maahantuoja, kaipasi aikoinaan myyntisoftaa ja verkkomyyntialustaa, joskus 2000-luvun alkuvuosina. Sopivaa ei ollut tarjolla, joten nohevana TJ/hallituksen PJ Jarmo Rosenqwist sellaisen kavereineen koodasi. Niin syntyi Pupesoft, vieläkin saatavilla oleva avoin, suomalainen toiminnanohjausjärjestelmä. -ji

Q: Minkälaisissa työtehtävissä ohjelmointia yleisesti tarvitaan?

A: Paljoltihan se on kehittämispohjaista työtä, missä ohjelmointia yleensä tarvitaan. Sanoisin kuitenkin, että hyötyä siitä on paljon useammassa eri työssä. Meillä oli esim. lukiovuosinani viime vuosituhannella fysiikan opettaja, joka opetti meille aaltoliikettä omatekemillään tietokoneohjelmilla. Katso myös tuo juttu toimarista, joka kirjoitti oman verkkokauppasoftansa. Eli jos osaa, on hyötyä tehtävässä kuin tehtävässä. -ji

Q: Missä pystyisi parhaiten opettelemaan ohjelmointia kurssien ulkopuolella? Hieman Codecademyn kautta olenkin harjoitellut, mutta ilmaisversiolla harjoittelussa en ole päässyt kovin pitkälle.

A: Ohjelmointia oppii paitsi ohjelmoimalla, myös ratkaisemalla pieniä tai isompia ohjelmointipulmia. Näitä tarjoaa esim. Rosetta Code ja joulunodotushengestään huolimatta koko vuoden toimiva Advent of Code. Muitakin varmasti löytyy. -ji

Q: Mitä muita ohjelmointia hyödyttäviä kursseja suosittelet otettavaksi?

A: Opetusohjelmasta meiltä löytyy TIEP111 Ohjelmointi 2, TIEA341 Funktio-ohjelmointi 1, ITKA2050 Ohjelmistoturvallisuuden perusteet, TIEA2120 Web-käyttöliittymien ohjelmointi, TIEA1130 Oliosuuntautunut suunnittelu ja ohjelmointi, TIES4080 Web-palvelinohjelmointi, TIEA311 Tietokonegrafiikan perusteet... Kaikki nämä ovat erinomaisia kursseja. Toki Ohjelmointi 2:sta kannattaa aloittaa ensimmäisenä. -AJL

Q: Onko ohjelmointi 2 kurssi paljon tätä ohjemointi 1 kurssia vaativampi?

A: Opintopisteiden näkökulmasta 33% vaativampi :). Sisällöllisesti tämä ja ohj2 kurssi muodostavat jatkumon. -AJL

Q: Onko Mac koneilla ohjelmointi yleisesti vaikeampaa ja voisiko mac ohjeita edelleen selkeyttää. Tähän liittyen käyttääkö niin pieni prosentti opiskelijoista mac koneita, ettei näihin ole järkevää laittaa resursseja?

A: Vaikeampaa? Ei. Meillä opettaja/ohjaajapuolella on vain muutamia Macin käyttäjiä, joten väkisin sinne jää jotain epäselvyyksiä. Aina jos niitä tulee vastaan niin kannattaa laittaa viereen kommentti jotta niitä voidaan tarkentaa. Asennussivun ruksien pohjalta noin 90% opiskelijoista käyttää Windowsia. -MR

Q: Kannattaako Ohj1 ja Ohj2 suorittaa heti peräkkäin? Onko Ohj2 mahdollista suorittaa kesällä?

A: Tietotekniikan kandiopiskelijat saavat ensimmäiseen kysymykseen vastauksen ITKY100 aikana tai opintoneuvojan kanssa keskustellessaan. Yleisesti ottaen pidän ihan järkevänä sitä että noiden opintojaksojen välille ei tule pitkää ajallista katkosta. Mutta noudattakaa kuitenkin niitä suosituksia joita saatte opintoneuvojalta. Tuohon kesä-ohj2-kysymykseen en osaa vielä vastata. Kesäopetus vahvistetaan myöhemmin talvella/alkukeväästä. -AJL

Q: Voiko ohjelmoimaan oppia ja työllistyä ohjelmoinnin pariin ns. "pelkästään opiskelemalla" ja töissä eli ilman erityistä harrastuneisuutta "vapaa-ajalla"?

A: En näe syytä miksi ei. Tuo että ohjelmointi ei mitenkään koskettaisi harrastuneisuutta on onneksi meidän tiedekunnassa likimain mahdotonta, koska erilaisten harjoitustöiden aiheet monesti lähtevät opiskelijan omasta kiinnostuksen kohteesta. Niinpä persoonallinen ote ja eräänlainen harrastuneisuus toivottavasti välittyy opiskelijan tuotoksista vaikka "pelkästään opiskelisit". -AJL

A: Toisaalta miltä vaikuttaisi vaikkapa liikunnan opiskelija, joka ei treenaa vapaa-ajallaan, tai kielten opiskelija, joka vapaa-ajallaan kieltäytyy opiskelemansa kielen käytöstä? -ji

Q: Onko pelkästä Ohj1 jo hyötyä työelämään, vai kannattaako käydä lisäksi ohj2?

A: Kannattaa käydä lisäksi Ohj2. Tietysti Ohj1 on hyvä alku. -AJL

A: Riippunee työelämästä :) Ohj1-kurssista on varmasti hyötyä monella alalla, kun on rohkeutta opetella monimutkaisiakin ohjelmistoja, ja jonkinlaiset eväät esimerkiksi toistuvien työvaiheiden automatisointiin. Ohjelmistokehittäjäksi haluavien kannattanee käyttää hyödyksi kaikki ohjelmointiin liittyvä kurssitarjonta mikä omiin suunnitelmiin mahtuu. -JuhoK

Q: Mikä on se yksi kaikista tärkein asia jonka haluat sanoa ohjelmoijalle jotta hänestä tulee hyvä ohjelmoimaan?

A: Ohjelmoi ja lue paljon (hyviä) ohjelmia useilla eri kielillä. -ji

Q: Mistä kannattaa mielestänne lähteä liikkeelle ohjelmoinnin opettelussa alkuopetusikäisten kanssa?

A: Oma tuntumani on että ikä- ja kehitystaso täytyy huomioida tosi tarkkaan. Kaikki alkuopetusikäiset eivät välttämättä osaa lukea. En ole luokanopettaja, mutta sen tutkimuskirjallisuuden perusteella, jota olen itse käynyt läpi, erilaiset pelit, leikit ja blokkikielet tuntuvat toimivan jo noinkin nuorilla. Pitkittäistutkimusta ja koeasetelmia tehdään tosi vähän, ts. todellisista oppimistuloksista on vain niukasti tietoa. -AJL

Q: Mikä mahtaa olla ohjelmoinnissa ns. 'tärkein taito'? Esimerkiksi auttaako hyvä looginen päättelykyky, hyvä 3D-hahmotuskyky tai matemaattiset taidot erityisesti?

A: Uteliaisuus, ajattelu ja ennakkoluulottomuus. Ja kyky ottaa asioista itse selvää. -ji

Q: Onko ohjelmoinnissa ns. suuria virheitä / huonoja tapoja, joita tulisi pyrkiä välttämään?

A: Teki sitten pientä tai isoa projektia, niin aina törmää siihen, miten huonosti monet ohjelmistot dokumentoidaan. Dokumentaation välttelemistä pitää välttää :). -AJL

Q: Mitä eroa on tietojenkäsittelytieteellä ja tietotekniikalla?

A: Kysyjä viitannee siihen, että JY:n tietotekniikan oppiainetta vastaava tai lähellä oleva sisältö tunnetaan monissa yliopistoissa tietojenkäsittelytieteenä. Käytännössä erot ovat pieniä. Meillä oli aiemmin vahva painotus matematiikassa. Sittemmin siitä on luovuttu. Laitoksen juuret ovat kuitenkin peräisin matematiikan laitokselta, jolla on varmaan oma vaikutuksensa ollut myös oppiaineen ja laitoksen nimen valintaan. Lisää tarinaa aiheesta löytyy Suuren datan järjestäjät-kirjassa. -AJL

Q: Kuinka paljon ohjemointi liittyy kyberturvallisuuteen? Esim. kuinka kovaa ohjelmointi tasoa vaaditaan, jos opiskelee kyberturvallisuutta?

A: Riippunee kyberturvallisuuden määritelmästä. Nohevimmat ja ovelimmat ohjelmoijat, jotka taitavat kaikki kommervenkit, löytyvät sekä virus- ja haittaohjelmatehtailijoista, että virusten ja haittaohjelmien tunnistus- ja poisto-ohjelmien tekijöistä. Toisaalta helpoin ja varmin tapa kyberturvallisuuden takaamiseen on ”piikkilanka ja betoni, ase ja lupa ampua”, ja noihin neljään ei juuri ohjelmointitaitoa tarvita. -ji

Q: Jos Ohj2 voisi suorittaa kesällä, olisiko ohj2 opintopisteet mahdollista siirtää syksyllä -21 suoritettaviin opintoihin?

A: Uskon että kyllä, mutta tämä on parasta varmistaa opintoneuvonnasta tai koulutussuunnittelijalta. -AJL

Lisää kysymys

**Q:** ⁞

**A:** -

Henkilökohtaista opettajalle

Q: Onko jotain tiettyä unelmaa tai päämäärä, minkä haluaisit saavuttaa ohjelmointiin liittyen?

A: Varmasti ainakin opettajana kehittyminen sekä innostuksen lisääminen ohjelmointiin eri tavoilla. Näihinkin liittyy paljon erilaisia haasteita ja tehtäviä joissa voi hyödyntää ihan konkreettista ohjelmointia. -AJL

A: Päästä tekemään ohjelmistoalan töitä, ja siten ansaita elanto kiinnostavan asian parissa. -JuhoK

Q: Jos muistelet omaa historiaasi kun opettelit kyseisen kurssin asioita, niin mitä vinkkejä antaisit itsellesi siihen menneeseen hetkeen?

A: Varmaan moniakin asioita, mutta ilman muuta yksi on, että kannattaa tutustua muidenkin tekemiin ratkaisuihin, eikä tyytyä siihen, että on itse saanut yhden ratkaisun pähkäiltyä. Tämä auttaa näkemään ongelmaan eri lähestymistapoja ja pikku hiljaa niitä oppii myös vertailemaan niitä monenlaisilla mittareilla. Eli toisin sanoen lukekaa ne malliratkaisut läpi ja pohtikaa miksi ne ovat sellaisia kuin ovat :). -AJL

Q: Parhaimmat ja huonoimmat puolet etä-opetuksessa?

A: Pakko tunnustaa, että itse olen kyllä ihan tykännyt etäopetuksesta. Se, että elämä ei pyöri niin paljon tilojen ja luokkien varaamisten ympärillä on aika vapauttavaa. Työpäivän pituus on ehkä vähän pidentynyt, kun työmatkoissa säästetyn ajan voi käyttää töiden tekemiseen. Se on vaan kurjaa kun opiskelijoita ei enää samalla lailla tapaa eikä heihin tutustu "ohi mennen" ja epämuodollisesti kuten mikroluokkaohjausten yhteydessä monesti oli tapana. Ja kyllähän sitä työkavereiden kahvihuoneseuraa kaipaa, eikä mitkään etä-kahvitunnit sitä voi täysin korvata. -AJL

Q: Miten kiinnostuit ohjelmoinnista?

A: Varmaan ihan alunperin ne oli pelit minkä kautta itse kiinnostuin Commodore 64:stä ja sitten Amigasta, ja sitä kautta näistä vekottimista ja siitä mitä kaikkea niillä pystyisi tekemään. Tosin noilla koneilla tuli lähinnä pelattua, ei vielä tullut ohjelmoitua mitään. Sitten kun PC-aikakausi tuli niin tuli kokeiltua ekan kerran Basicia, Pascalia ym. Silloin vaan ei pikkupaikkakunnalla (Alajärvi) ollut ketään opettamassa aiheesta lisää, ja oikeasti vasta korkeakouluopintojen alussa tutustuin ensimmäisen kerran kunnolla ohjelmointiin. /AJL

Q: Mikä on ollut mielenkiintoisin työtehtäväsi ohjelmoinnin parissa?
Q: Millaisia olivat ensimmäiset työtehtäväsi ohjelmoinnin parissa?
Q: Mikä oli ensimmäinen suurempi ohjelma minkä loit?
Q: Mikä on suurin ohjelmointiin liittyvä projekti jossa olet ollu mukana ja mikä oli roolisi?
Q: Millaista koodaustaustaa kurssin opettajilla on?

A: Tuntimääräisesti laskettuna en ole työskennellyt puhtaasti ohjelmointitehtävissä kovin kauan. Olin pari vuotta töissä enemmän tai vähemmän kokopäiväisesti sovelluskehitystyössä ennen yliopistoon tuloani. Hommat olivat siellä enimmäkseen front end -webbikoodausta ja pienimuotoisen extranetin rakentamista. -AJL

A: Tähän mennessä ainoa ja mielenkiintoisin työtehtävä ohjelmoinnin parissa on ollut toimia näillä kursseilla tuntiopettajana :) Ensimmäiset askeleet ohjelmointiin otin vasta korkeakoulussa, ja ensimmäinen suurempi ohjelma oli varmaankin jonkin kurssin harjoitustyö. -JuhoK

Q: Mikä on kivoin kieli?

A: Javaa ja JavaScriptiä on tullut käytettyä opintojen vuoksi eniten joten niiden kanssa toimiminen tuntuu keskimäärin luontevalta. Viime aikoina parhaita fiiliksiä on aiheuttanut TypeScript, jonka tyyppijärjestelmä on vastaus moneen murheenkryyniin johon olen törmännyt JavaScriptissä. Lisäksi Clojure ja Rust kiinnostavat kovasti, jos vain olisi aikaa opetella huvikseen. -JuhoK

Q: Mitä käyttöjärjestelmää käytät mieluiten? Mikä on mielestäsi paras?

A: Kai se on sitten Windows, jota käytän mieluiten. Se mikä on paras on vähintäänkin osittain subjektiivinen kokemus :). Mutta jos sitä minulta kysytään niin edelleen Windows. Vielä 5 vuotta sitten olisin vastannut macOS, mutta Windows on mennyt paljon eteenpäin käyttäjäystävällisyyden osalta viime vuosina. Tosin en ole aktiivisesti macOS:aa seurannut viime vuosina joten tähänkin näkemykseen kannattaa suhtautua terveellä kriittisyydellä. -AJL

A: Tykästyin GNU/Linux-maailmaan vuosi sitten, kun asensin Ubuntun. Unixin kaltaisten käyttöjärjestelmien rikas historia, muokattavuus ja komentorivityöskentelyn luontevuus kiehtoivat, enkä näissä asioissa ole joutunut pettymään. Musiikkihommia varten ostanen joskus Macin, koska Linuxilla tuntuu että aika uppoaa useammin säätämiseen kuin musiikin tekemiseen. -JuhoK

Lisää kysymys

**Q:** ⁞

**A:** -

Lajittelemattomat

Q: Demo1 3. tehtävässä tuli eteen ongelma, että lisättävät objectit tuli Lisätä GameObjecteina eikä PhysicsObjekteina. Onko järjestelmiin/kirjoitettavaan koodiin jotain ohjetietokantaa tai sanastoa, josta tällaisiin tilanteisiin voisi itsenäisesti etsiä ratkaisuja?

A: -

Q: Ymmärsinkö oikein, että luennoilla ja demotilaisuuksissa kommentoiminen ja kysymysten esittäminen on mahdollista ainoastaan kirjautumalla Youtubeen?

A: Kyllä. Nimettömänä ei voi kommentoida. Toki ainahan voit luoda itsellesi uuden "akuankka"-tunnuksen, jos sinulla ei ole Youtube-tunnusta ennestään tai et halua kirjautua omalla tunnuksellasi. -AJL

Q: Mitä kursseja biologian opiskelijoiden kannattaisi tietotekniikasta mahdollisesti käydä/mistä kursseista voisi olla eniten hyötyä? Kuulemma tietotekniikan osaamisesta voi meidänkin alalla olla hyötyä :)

A: Pöykön Eeva mainosti juuri tällaista tulevaa etälounasta:
19.3. Pauliina Salmi: ”Siimasta satelliittiin: biologian ja tietotekniikan yhdistelyä tutkimuksessa, myrkkylevät, hyötylevät ja pigmentit”
Tiedot löytyvät myös TIMistä: https://r.jyu.fi/etalounas

Oliosuuntautuneen ohjelmoinnin kehittäjän Alan Kayn yhtenä mallina oliosuuntautuneisuudelle on ollut solut ja niiden välinen kommunikointi kuin myös isommat biologiset järjestelmät. Lähin ja tuntuvin käytännön hyöty löytynee varmaankin tilastolaskennan ja simuloinnin parista, ja ne molemmat ovat ohjelmointia. -ji

Q: Mitä kautta Linuxin perusteisiin pääsisi suht kivuttomasti tutustumaan? Ja tuleeko mieleen jotain motivaattoria, joka kannustaisi käytön opetteluun pelkän uteliaisuuden rinnalle.

A: Asenna itsellesi Linux. Jos ei löydy ylimääräistä tietokonetta tätä varten, esim. Raspberry Pi olisi hyvä tähänkin käyttään, tai käytä virtuaalikonetta, kuten KVM tai VirtualBox. Silloin voit ajaa yhdessä ikkunassa oman käyttiksesi ohessa Linuxia kokeiluihin ja opetteluun (näin minäkin teen). -ji
A: Jos sinulla on Windows 10, niin Linuxia pääsee myös pikkuisen makustelemaan asentamalla Windows Subsystem for Linux. -AJL
A: Virtuaalikoneesta: oma kokemus on että VMware Workstation Player on huomattavasti parempi kuin VirtualBox, ainakin jos haluaa ajaa mitään OpenGL:ää vaativia ohjelmia (kuten Jypeliä). -MR
A: Itse käytän ihan Windowsin omaa Hyper-V ja siihen asennettua Ubuntua. - VL

Q: Miten voisin oppia kirjoittamaan nopeammin, ja katselematta sormia?

A: Opetelkaa edes jossain määrin kirjoittamaan kymmensormijärjestelmällä. Tätä varten on olemassa harjoitusohjelmia. Monet tulevat toimeen kaksi-neljäsormijärjestelmälläkin, mutta samalla ne muutkin oppii. Tärkeintä on olla katsomatta näppäimistöä ja antaa sormien oppia oikeat paikat. Vaatii harjoitusta, mutta jo muutaman tunnin harjoitus auttaa kummasti. Tulette kiittäämään itseänne tulevaisuudessa useasti, jos nyt käytätte sen muutaman tunnin tuon opiskeluun. Ohjelmia en ole kokeillut, joku muu voisi linkittää suosikkinsa, mutta hakusanoilla kymmensormijärjestelmä ja touch typing niitä löytyy. -ji

Q: Mikä arvosana tästä kurssista tulisi saavuttaa, mikäli tavoitteena on suorittaa myös Ohj2 jatkokurssi?

A: Mitään tuollaista rajaa ei sinänsä opetussuunnitelmassamme ole (kunhan arvosana on hyväksytty). Oletusarvo on toki, että mitä paremman arvosanan saat Ohjelmointi 1:stä, sitä paremmat edellytykset sinulla on selviytyä myös seuraavista opinnoista. -AJL

Q: Olen ollut aiemmin ohj1-kurssilla ja ehdin tehdä hyväksytysti harjoitustyön sekä debuggausnäytteen, mutta jouduin keskeyttämään kurssin. Täytyykö minun tehdä ne nyt uudestaan?

A: Riippuu siitä milloin nuo on tehty. Otatko yhteyttä sähköpostilla. -AJL

Q: Miten kvanttitietokoneet tulevat vaikuttamaan tulevaisuuteen, sekä ohjelmointiin?

A: -

Q: Jos laiskuus sattumalta iskee maailman laiskimpaan ihmiseen, niin voiko kurssin myös korvata avoimen kautta hakevat suorittamalla Helsingin YO:n ohjelmointi 1-2 ? https://ohjelmointi-21.mooc.fi/

A: -

Lisää kysymys

**Q:** ⁞

**A:** -

Vastauksia joihin ei ole kysymystä

Lisää kysymys

**Q:** ⁞

**A:** -

Ohjeita

Lisää kysymys

**Q:** ⁞

**A:** -

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