avoin/avoin23

# avoin

Huom! TÄMÄ ON AVOIMEN YLIOPISTON SIVU.

Et voi suorittaa kurssia, ellet ole ilmoittautunut täällä.

Ohjelmointi 1/ Kysymyksiä ja vastauksia

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

Käy yläreunan Manage-linkistä ruksimassa että saat viestiä kun dokumentti muuttuu, niin näet postista uudet kysymykset ja mitä niihin vastataan.

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

Vastaajat

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

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

1. Kurssin suorittaminen

Q: Onko ensimmäiseen tenttiin 2.12. pakollista osallistua vai onko mahdollista suorittaa tentti vasta ensimmäisellä uusitatenttikerralla tammikussa 2023?

A: Avoimen kurssilla ei. Yliopiston kurssilla demohyvitykset saa vain 2.12 tenttiin ellei erikseen muuta sovita pakottavissa tapauksissa.

Q: Viime viikolla avoimen sivuilla osa linkeistä ohjautui ns. tutkinto-opiskelijoiden kurssin puolelle (esim. luennot). Onko tarkoitus, että katsotaan avoimella puolella 2022 syksyn luentoja eikä nyt käynnissä olevia luentoja?

A: -

Q: Samansuuntainen kysymys, kuin aiemmin on esitetty; Avoimen opiskelijan tenttipäivämääristä, ja tuosta demo-hyvityksestä, olisiko pitänyt ilmoittaa ettei osallistu ensimmäiseen tenttikertaan ja onko avoimen opiskelijalle jossain jokin selkeä erillinen ohje tästä ja kaikista kevään 2024 tenttimahdollisuuksista?

A: Kun avoimen tekijöillä ei ole aikatauluja, niin tentin vuoro on sitten kun demot on tehty ja ht ainakin melkein valmis. Ja siitä sitten seuraava tentti mikä sattuu kohdalle tulemaan. - VL

Q: Onko tentissä komentorivin käyttöä ja jos on voiko valita käyttöjärjestelmän? Linuxin tutumpi kuin Windowsin.

A: Kurssin "pääshelli" on Bash, eli sehän on Linuxissakin käytössä. Tentissähän voi olla mitä tahansa kurssilla käytyä asiaa. - VL

Q: Saako Avoimen opiskelijat tenttiin demohyvityspisteitä?

A: Saavat. - VL

Q: Avoin yliopisto; Mikäli tentti ei mene läpi toivotusti, voiko kurssin uusia pelkän tentin käynnillä vai tuleeko taas seuraavasta kurssista tehdä kaikki demo tehtävät yms?

A: Voin tehdä vain tentin. Mutta varoituksena, että HYVIN harva saa uusimalla parempaa tenttitulosta. Eli kannattaa kerralla panostaa kurssiin niin pääsee vähemmällä työllä. - VL

Lisää kysymys

**Q:** ⁞

**A:** -

2. Työkaluista

Q: Onko jotakin työkalua, jota kurssin opetushenkilökunta erityisesti suosittelisi ohjelmien tarkistukseen ja debuggaugseen?

A: -

Lisää kysymys

**Q:** ⁞

**A:** -

3. Eri kielistä

Q: Tällä kurssilla käytetään C# kieltä. Olen myös samaan aikaan Tietoverkoissa ja siellä tulee Ohjelmointiosiossa myös C# lisäksi Python ja Java. Auttaako tämä kurssi myös näiden kielten perustaidon hankinnassa?

A: Lähes aina yhden kielen osaaminen auttaa toisen kielen hahmottamista. Mutta ei ole 100% varmaan onko esimerkiksi funktionaalisiin (esim Haskel) kieliin siirtymisessä hyötyä vai haittaa proceduraalisten kielten (esim C) hallinasta . - VL

Q: melkoinen viidakko tuntuu olevan. Kieliäkin "miljoonia". Onko syytä perehtyä useampiin kieliin vai vaikka masteroida vaan C#?

A: -

Q: Onko C#:lla miten paljon eroa C++:aan?

A: Tosi paljon. Sukulaisuutta on siinä, että molemmissa merkitään lohkoa aaltosuluilla {}. Ja molemmissa muuttujien esittelyjärestys on tyyppi nimi;. Eli syntaksissa on samankaltaisuutta. Suurena erona on että C#issa on automaattinen muistinhallinta eikä perusmuodossa anneta osoittimilla osoitella minne sattuu. Taulukot tietävät kokonsa ja on kaksi merkkijonotyyppiä. C# on lähempänä Javaa (mutta monilta osin parempi) kuin C++:aa. Kun tietyt tarkistukset puuttuvat, on C++ niiltä osin himpun nopeampi. Mutta kielisotaan ei kannata lähteä, kaikki on opittava käyttämään ja ymmärtämään. - VL

Q: Mitä ohjelmointikieliä digimarkkinoinnin asiantuntijan kannattaa osata?

A: Ohjelmointi ei ole ohjelmointikieliä. Tietyssä mielessä kaikki ohjelmointikielet ovat samanarvoisia. Äidinkieli ja ajattelu ovat se tärkein kieli. - VL

Lisää kysymys

**Q:** ⁞

**A:** -

4. Kurssin sisällöstä

Q: Missä vaiheessa kurssia on järkevä osallistua tenttiin? R.N

A: Kun kaikki demot on tehty ja HT ainakin lähes valmis. Tämä siksi että on koodausrutiinia riittävästi. - VL

Q: Onko missään nähtävissä vanhojen tenttien kysymyksiä ja mallivastauksia ?

A: Demo 11 toimii tuollaisena. Sitä kannattaa lakaa tekemään jo etukäteen, niin näkee aina missä on parannettavaa. - VL

Q: Olen käynyt tähän mennessä yliopisto kursseja vain englanniksi, onko joistain sisällöistä mahdollista saada englanninkielisiä käännöksiä, vai onko kaikki vain suomenkielellä?

A: Katsoppa luentomonisteen oikeata ylänurkkaa. Sen voit katsella englanniksi. - VL

Lisää kysymys

**Q:** ⁞

**A:** -

5. Jypeli

Q: Voiko Jypelillä tehdä 3D-pelejä?

A: Eipä ole näköjään kukaan vielä vastannut. Nykyisellä versiolla ei voi. Alkuperäinen pohjalla oleva kirjasto salli tämän, mutta koska 3D tekeminen olisi vienyt suurimman osan ajasta siihen 3D mallintamiseen yms. johon ei kurssilla ole varaa käyttää aikaa, se riisuttiin siitä pois. Samoin fysiikkamoottori pitäisi olla silloin paljon "kalliimpi". Kurssilla pääidea on opetella ohjelmointia ja Jypeli on siinä vain apuna että voi tehdä jotakin "mielekästä". Oikeasti esim 3D pelejä mielivän kannattaa sitten tutustua aikanaan Unity-pelimoottoriin. Siihen muuten skriptit tehdään C#:illa :-) - VL

Lisää kysymys

**Q:** ⁞

**A:** -

6. Yleistä ohjelmoinnista

Q: Olin kouluaikoina laiska kirjoittamaan matematiikantehtäviin välivaiheita, koska mihin niitä nyt muka tarvitsee. Nyt olisi ajatuksena ottaa tavaksi kommentoida oma koodinsa niin, että sitä ymmärtää myöhemminkin. Kysymys kuuluu: onko mahdollista kommentoida koodi LIIAN huolellisesti?

A: Osin on mahdollista. Ei ole järkeä kommentoida esim:

a = 5; // sijoitetaan a:han viisi

koska jokaisen kieltä lukevan pitäisi tuo ymmärtää. Mutta jos tuolla 5:lla on joku merkitys, kuten esim. sormien määrä, niin sillo9in voi kommentoida

a = 5; // aloitetaan yhden käden sormien määrästä

Q: Voitteko suositella jotain kirjallisuutta tai verkkosivuja jotka tukisivat ohjelmoinnin harjoittelun jatkamista tämän kurssin jälkeen?

A: Siellä kurssin kotisivulla on mainittu se Java-kirja. Se kattaa aika hyvin yhdne kielen ja muutaman sen käyttötarkoituksen. Tuonne: https://tim.jyu.fi/view/kurssit/tie/kielet on kasattu alustavasti monen kielen materiaalia ja jos on jaksettu, niin niiden yhteyteen linkitetty vastaan tulleita hyviä sivuja. - VL

Q: Vaatiiko ohjelmointi englanninkielen osaamisen?

A: Kyllä siinä mielessä että virheilmoitukset ovat enkuksi. Ja kielten avainsanat. Tosin sanavarasto niiden takia ei ole kovin iso ja aina voi käyttää jotakin automaattikääntäjää apua, esim: https://www.deepl.com/translator#fi/en-GB. - VL

Q: Onko mielestäsi tekoälystä enemmän haittaa vai höytyä ohjelmoijille?

A: -

Q: Matikka on itselle vaikeaa. Kuinka tärkeää esim. lukion pitkän matematiikan osaaminen on tällä kurssilla?

A: Tällä kurssillahan matemaattisesti "vaikein" tehtävä on tuo missä pallot laitetaan lumilyhdyn muotoon ja sen pitäisi olla yläkoulun matikkaa. Toki loppupään joku Guru-tehtävä saattaa vaatia enemmän, mutta ne Guru-tehtäväthän on muutenkin tarkoitettu edistyneemmille. Eli yläkoulun matikka riittää. - VL

Q: Suositteletteko tekoälyn käyttöä ohjelmoinnin apurina vai onko opettelun kannalta parempi tehdä alustavasti harjoituksia itenäisesti

A: Ehdottomasti pysyisin erossa tekoälystä tällä ja seuraavalla kurssilla. Lähdekritiikki ei vielä riitä arvioimaan tekoälyn vastausten hyvyyttä. Tekoäly on aika hyvä silloin kun esim osaa jo yhden kielen ja sitten kysyy tyyliin "Miten tekisin Rustilla funktion joka...". Silloin vastausta voi verrata mielessään siihen kieleen, jota osaa ja miettiä että onko vastaus järjellinen. Demotehtävien vastauksia tekoäly osaa valitettavasti välttävästi tehdä, mutta silloin käy niin kuin käy urheilijalle joka oikaisee valmentajan määräämän 20 km lenkin 2 km lenkiksi. Viimeistään kisassa sen huomaa... - VL

Q: Mikä ohjelmoinnin aloittamisessa on vaikeinta?

A: -

Q: Kuinka paljon matematiikkaa yleisesti ohjelmointi vaatii?

A: -

Q: Mitä kurssin ulkopuolisia materiaaleja suositeltaisiin kurssia suorittaville?

A: Kyllä kurssin materiaalin pitäisi riittää. Siellä on niitä lisäsivuja, joita kaikki eivät valitettavasti lue. Ne, luentomonisteet ja luentojen sivut + tallenteet on jo aika kokoelma. Ennen suosittelin Kyppö Vesterholmin Java-kirjaa, mutta sitä ei enää saa. Ohj2 kotisivulla on jotakin suosituksia joita pitää lukea niin, ettei ole turhan tarkka sen kanssa että on eri kieli kyseessä. Tekoälystä pysy erossa tällä kurssilla! - VL

Q: Törmäsin Comtestiä tehdessäni virheeseen "Cannot resolve symbol 'NUnit'" Tämä tapahtuu vain osassa testejä. Onko tähän joku simppeli korjaus kikka. Kopioin mallivastauksen ja testit mutta virhe silti tulee testeissä

A: - Onko nuo testit tehty sillä IDE:n työkalun ajolla. Jokaisesta tiedostosta syntyy oma testiprojekti ja testiprojektissa pitää olla mukana se NUnit-kirjasto. Kun projekti luodaan sillä IDE:n ComTestin ajolla, niin se tulee silloin mukaan. Jos projekti on muuten tehty, voi tuon NUnitin joutua lisäämään manuaalisesti (tai tuhoaa testiprojektin ja luo sen automaatilla).

Q: Jos pelit ei ole se oma juttu, mistä pääsisi muihin ideoihin kiinni, mitä kaikkea ohjelmoinnilla voikaan tehdä? Aloittelen vasta.

A: Perinteisestihän tietokone on parhaimmillaan asioiden automatisoinnissa tai suurten aineistojen läpikäynnissä. Kurssille hyvä harjoitustyö olisi jonkin isomman aineiston analysointi. Esim netistä hakea useamman vuoden säätiedot ja laskea keskiarvo lämpötiloista kuukausittain. Siellä on näitä ei-peli ehdotuksia ja muutamasta mallikin. - VL

Lisää kysymys

**Q:** ⁞

**A:** -

7. Henkilökohtaista opettajalle

Q: Onko niin, että jokaisen kurssilaisen on lisättävä tänne kysymys, vai voiko kurssin läpäistä ilman kysymyksen lisäämistä? ;)

A: Jos mitään muita puutteita ei ole kurssin lopuksi, niin tuskinpa se siitä jää kiinni. - VL

Lisää kysymys

**Q:** ⁞

**A:** -

8. Lajittelemattomat

Q: Työllistyykö ohjelmointialalla hyvin suomessa?

A: Liiankin hyvin, usein jää valmistumatta kun menee kesken opintojen töihin :-( - VL

Q: Tuleeko tekoäly vähentämään työpaikkoja tulevaisuudessa ohjelmointialalla? Eli tullaanko mahdollisesti lähitulevaisuudessa sellaiseen kohtaan, jossa tekoäly korvaa osan koodareista?

A: Tätä tukin tietää kukaan minkään työpaikan suhteen 100% varmaksi. Tällä hetkellä tekoäly antaa niin huonoja vastauksia, että tarvitaan joka tapauksessa sitä kovaa ammattitaitoa tietämään milloin vastaus on järkevä ja milloin sitä pitää korjata. Itse uskoisin että jos nyt on huutava koodaripula, niin se ei tällä helpotu. Mutta koodarin työn kuva voi muuttua niin, että kun ammattitaito riittää kritisoimaan vastauksia, niin työ nopeutuu ja joissakin kohti tiettyä rutiinia voi jättää tekoälylle. Ja luulen että samaa tulee monissa ammateissa mm. lakimiehillä ja lääkäreillä. Tekoäly saattaa antaa helpolla listan ennakkotapauksista ja ammattilaisen pitää sitten varmistaa "sopivatko taudin oireet" siihen. - VL

Q: Kuinka paljon tehoja vaaditaan koneelta?

A: Aivan minimissään riittää että selain toimii. Mutta että ohjelmointityökalut toimisivat, niin se olisi kiva harkkatyön kannalta. Harvassa nykykoneessa tehot loppuvat, kunhan muistia on tarpeeksi. Ks esim Millainen kone kurssille. VL

Lisää kysymys

**Q:** ⁞

**A:** -

9. Vastauksia joihin ei ole kysymystä

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.