Kysymyksiä ja vastauksia, kevät 2022

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
  • MR: Mikko Röyskö, Jypelin ja ComTestin ylläpitäjä, ohj2 ohjaajana keväällä.
  • ji: Jonne Itkonen

Kurssin suorittaminen

Q: Ainakin yhdellä Demo-tehtävällä testatessa: Jos asetan viimeisen ajon jälkeen vasta "Set custom points"-arvon (1), ja sen jälkeen ajan vielä TIM-koodin: TIM-koodi palauttaa virheellisen ajonjälkeisen tuloksen (esim. lumiukko jolla oli vihreät silmät vaihtui aikaisempaan iteraatioon, ja siltä katosi nenä, suu ja silmät vaihtoivat väriä). Mistä tämä johtuu, ja tarvitseeko siitä välittää?

A: En osaa suoraan sanoa mikä tuossa voisi olla vika. Tämä on syytä selvittää ohjauksissa esim. ruudunjaon välityksellä jotta ongelma saadaan toistettua. -AJL

Q: Saako harjoitustyössä käyttää tekijänoikeudellisia kuvia, hahmoja tai henkilöitä, jos ei aio julkaista sitä muualla?

A: Suosittelen vahvasti käyttämään vain itse tekemiäsi kuvia, Creative Commons -lisenssin tai muun julkisen lisenssin alaisia kuvia. Tällaisissa tilanteissa on hyvä arvioida kantaansa iltapäivälehtitekniikalla, esim. ”miltä minusta tuntuu nähdä kuvani iltapäivälehtien kannessa, koska olen syytettynä tekijänoikeusrikkomuksesta”. Mutta jos haluat tarkemman vastauksen, ota yhteyttä lakiasiainhoitajaasi. On myös mahdollista, että pyydät luvan tekijänoikeudet omistavalta taholta.

Tästä EU:n tekijänoikeus UKK:n kohdasta 14 voisi myös olla apua. -ji

A: Et voi (tällä kurssilla) käyttää, koska harjoitustyö julkaistaan julkiseen varastoon. -AJL

Q: Saako harjoitustyöhön luoda omaa grafiikkaa ja animaatioita?

A: Toki! Tämä ei kuitenkaan ole "pelikurssi", joten graafisella ulkoasulla ei ole kovin suurta merkitystä. Olisi kuitenkin kiva jos hahmot ovat jotain muuta kuin värillisiä neliöitä :) -MR

Q: Milloin ryhmätyökokeilusta saadaan lisää infoa?

A: Nyt tietoa täällä. -AJL

Q: Kurssikuvauksessa näkyy kolme tenttiajankohtaa, voinko osallistua mihin vain näistä tenteistä vai tuleeko erikseen ilmoittautua tiettyyn tenttiin?

A: Voit ilmoittautua mihin tahansa kevään kolmesta tentistä. -AJL

Q: Minkä kultaisen ohjeen antaisit aloittelevalle koodaajalle?

A: Koodaamaan oppii vain koodaamalla. Luentojen katsomisesta on huomattavasti enemmän hyötyä, jos itse toistaa ne samat asiat. Demotehtävistäkin kannattaa tehdä muitakin kuin vain pakolliset tehtävät. Erityisesti Bonus ja Guru -tehtäviä kannattaa aina katsoa ja vähintäänkin pohtia, vaikka niitä ei osaisikaan tehdä. -MR

Q: Pitääkö komentoja ruveta opettelemaan ulkoa vai miten niiden kanssa yleensä menetellään?

A: Ulkoaopettelu on kyllä tehokas keino moneen oppimiseen (ks. supermemo), mutta ohjelmoinnin oppiminen onnistuu helposti ohjelmoiden. Käskyt ja muut oppii helpoiten niitä käyttämällä.

Älä luota liikaa erilaisiin täydennyksiin alussa, vaan opettele kirjoittamaan asiat ihan itse sormin näppäillen. Kymmensormijärjestelmän opettelee parissa illassa riittävän hyvin, että näkee sen hyödyn. (Kyllä 2-9 sormijärjestelmätkin auttaa). -ji

Q: Mikäli jokin yksittäinen pakollinen tehtävä jäisi tekemättä jollakin viikolla niin voiko kurssia enää mitenkään suorittaa hyväksytysti tai korvata tätä yksittäistä puutetta tehtävissä myöhemmin, olettaen että olisi kuitenkin muutoin tehnyt kaikki tehtävät ja nähnyt vaivaa kurssin eteen?

A: Pakolliset tehtävät ovat pakollisia. Jos tehtävä jää kokonaan tekemättä hyvästä syystä (esim. sairaus) niin korvaava tehtävä on mahdollinen. -AJL

Q: Jos pakollinen tähtitehtävä olisi tehty, mutta vastaus olisi jollain tapaa virheellinen, pääsisikö kurssin kuitenkin läpi, jos tehtävää on kuitenkin selkeästi yritetty tehdä?

A: Jos tehtävää on selkeästi yritetty tehdä, se riittää. -AJL

Q: Näkeekö itselle kertyneet demopisteet suoraan jostain, vain pitääkö ne laskea itse jokaisesta demosta?

A: Demopisteet tulevat aikanaan "Omat Tiedot" -sivulle. -MR

Q: Saako harjoitustyöhön tuoda omistamiaan peliassetteja eli kuvia/ääniä/musiikkia joista on maksettu lisenssimaksu niin että niitä saa käyttää vapaasti niin kaupallisissa kuin ei-kaupallisissa projekteissa?

A: En näe tässä mitään ongelmaa, mutta harjoitustyön pääpaino on kuitenkin ohjelmoinnissa, ei graafisessa ulkoasussa. -MR
A: Meidän puolesta joo, mutta vastaat itse lisenssiehtojen mukaisesta käytöstä. -AJL

Q: Jos aloittaa kurssin nollakokemuksella ja kaikki tuntuu sekavalta. Mikä on kaikkein tärkein asia, johon kannattaa panostaa heti kurssin alusta alkaen?

A: Toimi suositellun etenemisen mukaisesti, tule ohjauksiin ja tee demotehtävät. -AJL

Q: Minkälainen harjoitustyö sopii aloittelijalle, kun on vaikea arvioida erilaisten pelien haastavuustasoa? Olisiko tasohyppely haastava?

A: Tasohyppely on varmaan sikäli hyvä että siinä vaikeustasossa on säätövaraa. Palataan tähän harjoitustyön suunnittelun yhteydessä. -AJL

Q: Olisiko jatkossa mahdollista saada näytä kursseja suoritettua etänä? Itse aikuisena kun opiskelee työn ja perheen ohessa, näen todellista lisäarvoa monimuototyyppiselle ohjelmoinnin opetukselle, jossa on siis todallakin mukana opetus ja aikataulut. Tiedän että erilaisia verkkokursseja on olemassa (mm. Aalto YO:n MOOC). Verkkokurssit eivät vain ole sama asia, kuin verkon yli tapahtuva liveluennointi ja jonka aikana saa esittää kysymyksiä, sekä saa myös ohjausta harjoitusten tekemiseen.

Toivon erityisesti tälläistä mahdollisuutta Ohjelmointi2 kurssille. Tuntuu että koko Suomesta puuttuu tämän tyyppinen opetus ihmisille, joilla on jo elämä täynnä ohjelmaa ja aikaa uuden asian opettelulle on rajallisesti, sekä painottuen ilta ja viikonloppuihin.

A: Esimerkiksi nythän (ja vuosi sitten) Ohj2 suoritettiin täysin etänä. Samoin Ohj1. - VL
A: Olethan varmasti katsonut ensimmäisen luennon, jossa kerrottiin opetusjärjestelyistä? Nyt ohj1 keväällä luentoja voi seurata livenä ja kysyä kysymyksiä. Toki kysymyksiä voi kysyä myöhemminkin vaikkapa ohjauksissa, jossa annetaan apua myös harjoitusten tekemiseen. -AJL

Q: Tämä on ehkä enemmän toive kuin kysymys mutta tuo Aikataulu on tosi hyvä, mutta kurssilla on niin paljon kaikkea tehtävää niin olisiko mahdollista saada monipuolisempi Aikataulu joka näyttäisi vähän enemmän mitä kannattaa tehdä milloinkin. Esim. "Lue monisteesta eteenpäin".

A: Tämä on hyvä idea. Toki luento-sivuilla on esitetty linkit relevanttiin oppimateriaaliin. Koitan miettiä miten tuosta taulukosta saisi vielä informatiivisemman. -AJL

Q: Minkälaisia harjoitustöitä, jotka eivät ole pelejä, on tehty aikaisempina vuosina?

A: -

Q: Tämäkin on enemmän toive kuin kysymys, joka koskee demoja. Voisiko tehtävänannot (demo1) ilmoittaa selkeästi vaikka lihavoiden, jotta aikaa ei mene itse tehtävän tarkoituksen selvittämiseen?

A: -

Q: Minkälainen harjoitustyö kannattaa tehdä, jos ei ole mitään aiempaa kokemusta?

A: -

Q: Tehtävä Tauno T1a: kirjoittamani ratkaisu ei mene läpi, kun ohjelma valittaa rivistä 27, joka on valmiiksi kirjoitettu /// kommentti ja jota en pysty poistamaan. Miten pitäisi menetellä, jos huutaa virhettä kommentista?

A: -

Q: Miten kymmensormijärjestelmää voi opetella?

A: Aiemmin oli tarjolla esim. DOS-ohjelma ”Tenho Typisti”, joka hoiti tämän hienosti. Linuxissa taitaa olla jotain ohjelmia valmiina. Usein kuitenkin joudutaan käyttämään verkon palveluita, joissa on toivomisen varaa, mutta esim. Kari Laitisen opetussivu vaikuttaa hyvälle. Kyllä, on vain opeteltava, mielellään tasarytmisesti (metronomi auttaa, jos löytyy). Kyse ei ole mistään muusta kuin siitä, että sormet oppivat oikeat liikeradat halutun merkin tuottamiseen ilman että silmillä pitää se merkki näppäimistöstä etsiä. -ji

Q: Miksi Visual Studio 2022 Preview macilla ei anna minun kirjoittaa koodia? Klikkaan kenttää, mutta koodia ei pysty kirjoittamaan.

A: Vaikea sanoa näillä tiedoilla. Katsotaan ohjauksissa ruudun jaon kera. -AJL

Q: Miksi ohjelmointi 1 on vain 6op? Nettotyöllistämisvaikutuksen voi varmuudella sanoa olevan lähempänä kahdeksaa.

A: Opintopisteitä on aika vähän tarjolla, OPSiin ei mahdu! Ohj1 ja Ohj2 olivat harvoja joiden suhteellinen pistemäärä nousi kun siirryttiin opintoviikoista pisteisiin. Mutta tosiaan mittausten mukaan keskiarvoisesti käytetty työmäärä jää alle sen tavoitteen. Toki on yksilöitä, joilla tuntimäärä ylittyy, mutta keskiarvojen tapauksessa näin on pakkokin olla. Ongelma on se, että on valtava määrä kursseja joiden suorittaminen (eri asia kuin tietojen syvällinen omaksuminen) on mahdollista pienemmässä tuntimäärässä kuin mitä niiden opintopisteet vastaavat. Eli tällainen vertailu inflatoi opintopisteen käsityksen. Jos AleHallista sattuu saamana jotakin halvalla, ei pidä olettaa että saman saa KunnonKaupasta. Pikemmin pitäisi kysyä miksi kaikilla kursseilla ei saa opetusta niiden op määrää vastaavaa määrää? - VL

Q: Milloin kurssin lisäosien tarkkemmat ohjeet tulevat saataville? Lisäosat mainitaan: https://tim.jyu.fi/view/kurssit/tie/ohj1/harjoitustyo/harjoitustyo#YnNNUDPSZv9C Ja ne vievät tuonne: https://tim.jyu.fi/view/kurssit/tie/ohj1/2022k/htlisaosa Jolloin TIM valittaa tällä hetkellä: "This page does not yet exist."

A: -

Q: Haittaako jos ei jostain tähtitehtävästä saa täysiä pisteitä? Jos siis ongelmana on, että ei onnistu osa tehtävästä vaikka yrittää eikä ehdi ohjauksiin sillä viikolla.

A: -

Q: Voiko myöhemmin kurssin aloittanut saada vielä ensimmäisen viikon demoista pisteitä, jos tekee niitä myöhemmin?

A: Ei voi. Mutta pitää ne vanhat täydentää sääntöjän mukaan. Puutteen ehtii vielä saada kiinni, kun tekee tulevilla kerroilla yli 6p. - VL

Q: Mitä ovat PP-pisteet (omissa tiedoissa)?

A: -

Q: Onko pelin tekemiseen jonkinlaisia rajoitteita?

A: -

A: Ei saa hyötyä pisteiden muodossa. Elämä ei ole pisteiden vaan tietojen ja taitojen keräämistä varten. Jokainen tehty tehtävä kasvattaa tuota pääomaa.

Lisää kysymys

**Q:** ⁞

#- {.answ}
**A:** -

Työkaluista

Q: Jypelin asennus. Windows 10, Visual Studio 2022. Powershell as admin valittaa: Jypeli.Templates could not be installed, the package does not exist. "4.1 Asentaminen Ohjeet tällä hetkellä: Mene komentoriville ja kirjoita:

dotnet new --install Jypeli.Templates"

Onko tuossa kaikki vai puuttuuko jotain?

A: Kokeile ajaa komento:

dotnet nuget list source

Sen pitäisi listata kaksi lähdettä, Visual studio offline... sekä api.nuget.org... Jos tuo Nuget.org puuttuu, aja komento

dotnet nuget add source https://api.nuget.org/v3/index.json -n nuget.org

ja yritä sitten projektimallien asennusta uudestaan. -MR

Q: Onko lisäohjeita ComTestin lataamiseksi. Ohjeet tällä hetkellä: "Eikö toimi?

Jos ComTest -valikkoa ei näy, tarkista löytyykö ComTestia Extensions/Manage Extensions -valikosta. Valitse vasemmanpuoleisesta listasta Installed. Jos löytyy, aktivoi(enable) se ja käynnistä Visual Studio uudelleen.

Mikäli sinulla on vanha versio ComTestista asennettuna, poista(uninstall) se äskeisessä kohdassa mainitusta Extensions/Manage Extensions/All -valikosta."

Eli minun tapauksessa kohta: "Jos löytyy, aktivoi(enable) se ja käynnistä Visual Studio uudelleen." Entä jos ei löydy?

A: -

Q: Mitä eroa on Git Bashilla ja command prompt-komentorivillä? Web-julkaisukurssilla piti ladata Ubuntu.

A: Git Bash on Bash-komentorivin toteutus, joka tulee Windowsin git-toteutuksen mukana, eli ei mitään eroa. -ji

Ups, anteeksi, onhan niillä eroa. Command prompt on komentorivi, mutta se käyttää MSDOSista tuttuja komentoja, kun taas Bash käyttää Unixin POSIX-standardin mukaisia komentoja. Isoimmat erot ovat esimerkiksi että MSDOSin \ (”kenoviiva”) on POSIXissa / (”kauttaviiva”) ja osa komennoista on eri nimisiä (esim. dir = ls, copy = cp, del = rm). Kurssilla ITKP101 on käsitelty näitä molempia, POSIX tulee tutummaksi viimeistään käyttöjärjestelmien kurssilla. Ja sitten on vielä Power Shell, mutten tiedä, käytetäänkö sitä millään kurssilla. -ji

Q: En pysty lataamaan koneelle visual studos- ohjelmaa, sillä koneessani on vanha käyttöjärjestelmä. Konetta ei voi päivittää, sillä tila ei riitä siihen. Onko muuta mahdollisuutta esim toista ohjelmaa, jonka saattaisi pystyä lataamaan koneelleni, jotta tehdä tehtäviä jatkossa kurssine edetessä. Vai onko hankittava uusi tietokone :D?

A: Jos tilaa ei ole käyttöjärjestelmän päivittämiseen, tulee silloin ongelmia myös muiden mahdollisten työkalujen suhteen. Suosittelisin tutkimaan mitä koneelta voisi poistaa, tai sitten lisätilan hankkimista. Sama ongelma tulisi kuitenkin vastaan myös myöhemmillä kursseilla. -MR

A: Agoran mikroluokat ovat kyllä auki, ks. aukioloajat. -AJL

Q: Ainakin ohjausryhmässä on noussut esiin muutama haaste Visual Studion asennuksessa ja/tai toiminnassa uusilla M1 Maceilla. Olen aloittanut kurssin tutusti Win10-pohjalla, mutta pöytäkoneen rinnalle on mahdollisesti kurssin aikana päivittymässä M1-läppäri (jolloin opiskeluajat ja -paikatkin vähän vapautuisi). Onko M1-koneiden ja Jypelin yhteensopivuudessa vielä haasteita, tai onko fixille jonkinlainen ETA?

A: M1 koneiden ongelmat tosiaan tulivat yllätyksenä meillekin. Kenelläkään meistä kun ei ole M1 konetta käytettävissä, ei tätä voitu havaita etukäteen.

Mitään tarkkaa aikataulua en uskalla antaa, mutta haluaisin uskoa että lähiviikkojen aikana nämä puutteet saadaan ainakin suurimmilta osin ratkottua. -MR

Q: Uskotko, että kurssista on mahdollista saada hyvä numero, vaikka sen tekisi täysin etänä osallistumatta ohjauksiin, jos niihin ei meinaa muiden aikataulujen puolesta ehtiä?

A: On täysin mahdollista, mikäli ohjauksien apua ei tarvitse. Teamsiin voi toki myös ohjauksien ulkopuolella laittaa kysymyksiä, niihin vastataan vaan sitten hieman hitaammin. -MR

Q: Olisiko suositella kannettavaa tietokonetta, joka olisi hinta-laatusuhteeltaan hyvä opinnoissa juurikin ohjelmointiin ja vastaavaan?

A: Käyppä vaikka Huoltokukosta kysymässä käytettyä kunnostettua yritystietokonetta. Miellähän on täällä oma sivu jossa käsitellään koneen vaatimuksia. - VL

Q: En saa ComTestia käytettyä "Visual Studio Preview for Mac" -versiolla. Kun valitsen Visual Studion tässä versiossa Visual Studio/Extensions, niin tulee näkyviin viesti "This feature is not available in Visual Studio Community 2022 for Mac Preview. It will be restored in a future release." Olen ComTestin ladannut ja saanut sen aiemmin toimimaan "Visual Studio 2019 for Mac" -versiolla, mutta latasin nyt tämän uusimman version. Onko tässä tapauksessa muuta vaihtoehtoa, kuin vaihtaa takaisin vanhempaan versioon?

A: ComTestin asennussivulla on asennusohjeet myös VSForMacin 2022 versiolle. -MR

Q: Suositteletko koodausta Windowsilla vai Macilla?

A: -

Lisää kysymys

**Q:** ⁞

#- {.answ}
**A:** -

Eri kielistä

Q: Miten esimerkiksi Java ja C++ eroavat ohjelmointikielinä C#:sta.

A: Java on pääosin oliokieli. Sillä tehtyjä ohjelmia ajetaan Java-virtuaalikoneessa. C# on pääosin oliokieli. Sillä tehtyjä ohjelmia ajetaan CLR-virtuaalikoneessa. C++ on sekamelska erilaisista ohjelmointitavoista. Sillä tehtyjä ohjelmia ajetaan tietokoneen prosessorilla. Java ja C# ovat lähempänä toisiaan kuin C++:aa. -ji

Q: Onko Jyväskylän yliopistossa mahdollista opiskella muitakin ohjelmointikieliä kuin C#?

A: On. Itse asiassa taitaa olla niin päin että C#-kieltä ei varsinaisesti opeteta muilla IT-tiedekunnan kursseilla, toki saatan muistaa väärinkin. Joka tapauksessa tulet näkemään varsin monta eri ohjelmointikieltä jos suoritat tietotekniikan tutkinto-ohjelmaa. -AJL

Q: Mikä on suosituin/käytetyin kieli ohjelmoinnissa?

A: Englanti, kiina voi olla myös. - VL

Q: Mikä on hyödyllisin ohjelmointikieli osata?

A: EI mikään! Tärkeintä on osata ohjelmoida. Kielellä ei yksin tee yhtään mitään. - VL

A: Se, minkä haluat pitää niin lähellä itseäsi, että olet valmis käyttämään sitä kuin paperia, kynää ja taskulaskinta. Eli kieli, jolla pystyt tekemään pieniä kokeiluohjelmia, ajatustestejä, protoja. -ji

Q: Sanoit pythonista siirryttäessä hyppy on iso, osaan pythonin perusteet. Mikä tai mitkä osa-alueet ovat selkeimmin erilaisia vai voiko eroja lyhyesti edes eritellä?

A: Lähinnä ajattelun ero. Peruspythonissa voi mitään ajattelematta kirjoittaa lähes mitä vaan ja siksi sitä pidetään helppona ja varmaan siksi siihen on siirrytty useissa ylipoistoissa jotta saadaan suorituksia. Esim aikanaan C++:sta oli helppoa siirtyä Javaan. Olen nähnyt jopa tosi hyviä koodareita jotka ovat aloittaneet Java/C#, mutta ei enää kykene sen jälkeen siihen tarkkuuteen jota C/C++ vaatii. Ja vaikka minulla ei ole evidenssiä, niin olen täysin vakuuttunut että sama pätee Pythonin suhteen. Jos oppii elämään leväperäisesti, on vaikea muuntua siihen tarkkuuteen jota muissa kielissä vaaditaan. Toki Python -> Java on helpompi kuin 0 -> Java jos uskaltaa unohtaa asioita. Moni meistä on saanut ensikosketuksensa Basicillä mihin pätee sama kuin Pythoniin. Python on hyvä kieli pieniin ohjelmiin. Isommissa ohjelmissa on pakko ruveta käyttämään enemmän tyypitettyä Pythonin versiota jotta virheitä saadaan kiinni jo käännösaikana.- VL

Lisää kysymys

**Q:** ⁞

#- {.answ}
**A:** -

Kurssin sisällöstä

Q: Miksi Jyväskylän Yliopisto on valinnut C#-kielen, kun esimerkiksi Tampereen Yliopisto aloittaa Python-kielellä?

A: Jypeli on tehty C#:ille. C#:ista on helpompi siirtyä Javaa ja melkein C++:aan. Pythonilla aloitettaessa hyppy noihin noihin muihin kieliin on ISO. Eli monet yliopistot menevät alussa siitä, mistä aita on matalin jotta saadaan mahdollisimman aljon väkeä läpi. C#:ista on helpompi siirtyä Pythoniin jos sitä vaaditaan jossakin vaiheessa. Eli ihan opiskelijan tulevaisuutta tässä ajatellaan. - VL

Q: Kuinka hyvin pelkästään Ohjelmointi 1 -kurssin taidoilla selviää jatkossa esim. työelämässä?

A: Jos tarkoitat, että riittävätkö pelkät Ohj1-taidot sellaisessa työssä, jossa ohjelmointi on keskiössä, niin vastaus on ei. Onhan 6 opintopisteen kurssi väistämättä vain pintaraapaisu. Hyvän pohjan Ohj1 joka tapauksessa antaa myöhemmille ohjelmointiopinnoille. -AJL

Q: Uskoisitko, että ihmisellä jolla on vain Ohj1 -kurssi pohjalla (sekä joitain muita IT-alan peruskursseja esim. infrastruktuurista), mutta myös intoa oppia uutta, on mahdollisuuksia päästä IT-alan kesätöihin tai trainee-hommiin?

A: Kyllä tällaisia opiskelijoita aina silloin tällöin tapaa, niin ilmeisestikin näin on. Jos alan kesätöihin avautuu mahdollisuus niin kyllä sellaista aina suosittelen opintojen vaiheesta riippumatta. Kunhan kuitenkin palaat koulun penkille takaisin ;-). -AJL

Q: Käyn kurssin osana kyberturvallisuuden opintokokonaisuutta. Onko antaa vinkkejä mihin kannattaisi eniten keskittyä kurssilla, jotta siitä olisi eniten hyötyä opintokokonaisuutta ajatellen?

A: Ahkeraan työntekoon! - VL

Q: Kurssin sisältö on tietenkin pelkkä pintaraapaisu ohjelmoinnista, mutta olisiko teillä antaa mitään esimerkkinä siitä, että minkälaisiin asioihin kurssilla opittua pystyisi soveltamaan työelämässä vaikkei olisikaan koodari?

A: Näkee vilauksen siitä mitä työ on ja pystyy arvelemaan mitö voi vaatia ja mitä ei. Oppii kunnioittamaan eri akan työntekijöitä. -VL

Q: Huomaan että matematiikan perusteet ovat päässeet hieman unohtumaan työuran aikana. Voitteko suositella jotain matematiikkakurssia, joka tukisi ohjelmointikursseja.

A: Yhtä tiettyä matikan kurssia on mahdoton sanoa. Ohj1:llä riittää ihan peruskoulumatikka, mutta joillain syventävillä kursseilla vaaditaan vähintään matematiikan perusopintokokonaisuutta. Joillain esitietovaatimuksena on matikkaa vielä enemmänkin. -AJL

Q: Voiko kurssin sisällön hallitsemisella työllistyä jo alalle?

A: Ottaisitko itse lentokoneen ohjaamoon henkilön joka on lentänyt pari tuntia opettajan kanssa? Jos meidän koko opinnot ovat 5 vuotta 60 op vauhdilla tehtynä, niin aika raapaisu tämä on. Jos on kaveri joka tämän lisäksi on harrastanut alaa ja lisännyt ammattitaitoaan muutenkin, voisi olla potentiaalinen jonka ottaisi harjoitteluun. Mutta sen 5 v opiskelun jälkeenkin on vielä paljon firman käytäntöjä ja työkaluja ja ehkä kieliä, joita pitää opiskella. Jos jollakin on "vain" Ohj1 ja Ohj2, niin en ottaisi vielä riesakseni. - VL

Lisää kysymys

**Q:** ⁞

#- {.answ}
**A:** -

Jypeli

Q: Pystyykö Jypelissä luomaan animaatioita pelihahmolle ym. spriteille (esim. juoksu- tai idle-animaatioita)?

A: Kyllä, tästä löytyy muutama esimerkki wikistä -MR

Q: Mikä on paras ohjelmointi 1 -kurssilla valmistunut peli? (henkilökohtainen tai virallinen arvostelu) Onko Jypeli -pelejä tai niiden lähdekoodeja arkistoitu johonkin?

A: -

Q: Enemmän kommentti kuin kysymys: demo 1 tehtävä 3 (lumiukko): otin ilmeisesti vahingossa sittenkin Fysiikkapeli Farseer -mallipohjan(?), joten piti tutkia, miten objektit voivat sijaita pään "päällä" eivätkä siirry aina sivuun (aluksi silmät ym. "pullahtivat" heti ajettaessa pään viereen). Komento IgnoresCollisionResponse = true näyttää toimivan. Jostain syystä kuitenkin Timissä nenä ei näy lainkaan, vaikka Visual Studiossa näkyy aivan kuten pitikin. Mistä johtunee?

A: -

Q: Huomautus: PlatformCharacter2-olio käyttäytyi oudosti ainakin minulla harkkatyössä. Aluksi pelissäni vihut olivat sellaisia. Kun sen tappoi, ajastin käynnistyi ja määräajan jälkeen uusi vihu ilmestyi kentälle. Jostain syystä vain ensimmäinen olio toimi kuten piti, mutta toinen singahti heti ilmestymisensä jälkeen ulos näytöltä. Tämän jälkeen vihuja ei enää ilmestynyt. Ongelma ei muuttunut, vaikka ajastinta tai olion luomista muutteli monin tavoin. Asia korjaantui lopulta yksinkertaisesti siten, että muutin olion tyypiksi PlatformCharacter. Olisiko joku ominaisuus PC2-luokassa syynä tähän? Tiedoksi kuitenkin, jos joku muukin on kohdannut tämänkaltaisia ongelmia.

A: PlatformCharacter2 näyttää tosiaan käyttäytyvän hieman oudosti monissa tilanteissa. En nyt saanut toistettua ihan tuota mitä kuvailit, mutta kyseisen luokan toimintaa pitää kyllä korjailla monelta osin. -MR

Lisää kysymys

**Q:** ⁞

#- {.answ}
**A:** -

Yleistä ohjelmoinnista

Q: Montako ohjelmointiin liittyvää kurssia Jyväkslyän yliopistolla on tarjota? Kuinka paljon tuleviasuutta ajatellen arvostetaan kykyä ohjelmoida?

A: Ohjelmointia opettavia kursseja lienee alle kymmenen. Jos otetaan mukaan ohjelmointia sisältäviä kursseja, kasvaa määrä yli kymmeneen. Liian vähän joka tapauksessa, ainkin minun mielestäni.

Arvostus on turhan vähäistä johtuen ehkä siitä, ettei ohjelmoinnin hyötyä ole ymmärretty. Minusta ohjelmointi pitäisi rinnastaa kirjoittamiseen, piirtämiseen, laskemiseen ja pohtimiseen, tai työkaluihin kuten mikroskooppi, oskilloskooppi ja teleskooppi. Ohjelmointi on työkalu ajattelumme tukemiseen. Ohjelmointi on väline ja tapa saada aineeton maailma esille ja tutkittua sitä. Lisäksi se on hyvä keino ohjata ja muokata automatisointia. -ji

Q: Käsitelläänkö muita ohjelmointikieliä muilla kursseilla Jyväskylän yliopistossa vai onko täällä käytössä vain C# -kieli?

A: Kieliä löytyy monia, heti ohj2 kurssilla käytössä onkin Java. Sitten varmasti myös mm. C/C++, Python, JavaScript ja Haskell tulevat myöhemmin vastaan. -MR

Q: Mitkä ohjelmointikielet ovat yleisimmin käytössä työelämässä?

A: Huonot. :-) Okei, vastaan virallisemmin: riippuu työelämästä. Nykyään törmäät (Suomessa) töissä aika varmasti JavaScriptiin, Javaan, C#:uun tai C/C++:aan, Pythoniin ja PHP:hen, mutta sitten alkaa mennä villimmäksi. Vilkaise maailman tilannetta vaikka erästä suosituimpien kielten listaa tällä hetkellä osoitteesta https://www.tiobe.com/tiobe-index/.

Kannattaa kuitenkin opetella useita erilaisia kieliä, niin kielen vaihtaminen sesongin muodin valttikieleen onnistuu sitten nopeammin kuin pomon mielipiteen vaihtuminen. -ji

Q: Onko Jyväskylän yliopiston kurssitarjonnassa mitään ohjelmistosuunnitteluun tai UI/UX -liittyviä kursseja?

A: Ohjelmistosuunnitteluun on useita kursseja, esim. nuo omani TIEA1130 ja TIES441, mutta UI/UX:stä osaa joku muu kertoa paremmin. -ji

Q: Onko Mac tai Linux-ympäristö parempi koodauksen suhteen kuin Windows?

A: On, jos teet Mac-, Unix- tai Linux-ohjelmia, mutta ei, jos teet Windows ohjelmia.

Ennen M1:stä Mac oli siinä mielessä mukava ohjelmointiin, että siinä sai pyörimään natiivisti kaikki nuo kolme käyttöjärjestelmää. Nyt M1:llä pitää emuloida X86/AMD64:ää, mutta se tuntuu toimivan kelvollisesti. Jos kuitenkin ohjelmointi on ”web-softaa javascriptillä”, kaikki kolme lienevät hyviä ohjelmointialustoja. -ji

Q: Paljon on peloteltu tämän olevan todella työläs kurssi, mutta mites Ohjelmointi 2? Onko vähemmän työläs/vielä työläämpi?

A: Pelottelu on turhaa, Kaikissa kursseissa joutuu tekemään sen op määrän verran työtä, eli noin 27 tuntia / op. Ja sitten kun ottaa huomioon kurssin op määrän ja keston, saa laskettua sen vaatiman viikkotyömäärän. Ohj1 kestää 6 op kurssiksi sika pitkään, joten siitä tuo 14.5 h/viikko. Ohj2 suhteessa vähän enemmän. Jos joku kurssi ei työllistä, ei sillä oppi. Opiskelemaan ei ole tultu siksi, että se olisi helppoa. Kysykää urheilijalta, että hyödyttääkö treeni joka ei ota koville. Jos työtä jättää alkukurssista tekemättä on loppu raskaampaa. Ja yleensä pelottelijat ovat näitä jotka eivät tee työtään. Sitten kaikki eivät ole yhtä hyviä/nopeita, joten jollakin voi mennä yli tuon keskimääräisen arvion. Kuitenkin mitattu keskiarvo on lähempänä 11 h kuin 15 h. - VL

Q: Kuuluuko hyviin ohjelmointi käytäntöihin tuotannossa käyttää enimmäkseen valmiita metodeja? ("ei ruveta keksimään pyörää uudestaan..")

A: Pitää tietää kumpaako kannattaa tehdä ja osata molemmat. Valmiissa on aina riski että tuki loppuu. Ohjelmien elinkaari pitäisi mitoittaa lähemmäksi 30v kuin 2v. - VL

Q: Onko tällä kurssilla joku tiedettävästi tehnyt keksinyt ja toteuttanut semmoisen harjoitustyöidean, joka on johtanut eurojen tienaamiseen?

A: Suurin osa on johtanut. Tämä on askel pitkään kehitykseen, joka johtaa aikanaan hyvään työpaikkaan alalla, josta työt eivät lopu. - VL

Q: Kuinka tärkeässä roolissa matematiikan osaaminen on ohjelmoinnissa?

A: Tuo on suhteellista. Minä olen väitellyt matematiikasta, mutta en väitä osaavani matematiikkaa. Matematiikka on niin laaja käsite. Jollekin 3*7 on matematiikkaa. Minulle se on laskentoa, mutta selvästi on antiikin aikana ollut luettavissa matematiikaksi. Matemaattisen ajattelun eksaktius ja kaikenlaisten mahdottomaltakin näyttävien tilanteiden ymmärtämien/pohtiminen on ohjelmoinnissa tärkeää. Eli matematiikka on kouluaineista ainoa joka opettaa (ainakin ennen, nykyisin se on liikaa laskentoa) tuollaista ajattelua. Jos tekee grafiikkaa, on tietysti ymmärrettävä ja osattava geometriaan. Tällä kurssilla Pythagoraan lause on varmaan vaikeinta tarvittavaa matematiikkaa tuossa mielessä. Hyvin monilla sovellusaloilla on oma matematiikan haaransa käytössä. Joka tekee itseohjaavia autoja, joutuu osaamaan kaiken muun lisäksi fysiikan mekaniikkaa jotta osaa laskea tarvittava jarrutus/väistöajat ajoissa. Joka tekee talousjuttuja, joutuu tietysti tekemisiin sen alan matematiikan kanssa jne. Keskiarvoja yms on vaikeata välttää oikein missään hommissa. Mutta tärkeintä on siis kysy eksaktiin ajatteluun. Luovan lisäksi. - VL

Q: Mikä tai mitkä olisi hyvää kirjallisuutta, josta voisi opiskella ohjelmointiin liittyviä asioita syvällisemmin?

A: -

Lisää kysymys

**Q:** ⁞

#- {.answ}
**A:** -

Henkilökohtaista opettajalle

Lisää kysymys

**Q:** ⁞

#- {.answ}
**A:** -

Lajittelemattomat

Q: Mistä olette itse saanut koodauskokemuksenne?

A: Koodaamalla - VL

Lisää kysymys

**Q:** ⁞

#- {.answ}
**A:** -

Ohjeita

Lisää kysymys

**Q:** ⁞

#- {.answ}
**A:** -

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