wiki:s2011/qa
Last modified 3 years ago Last modified on 2015-01-20 15:30:00

Ohjelmointi 1/ Kysymyksiä ja vastauksia

Kysymykset ovat alunperin 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.

Vastaajat:

  • VL: Vesa Lappalainen
  • AJK: Antti Juhani Kaijanaho (mm. erilaisten kieliin liittyvien kurssien pitäjä, jatko-opiskelija)
  • TJ: Tero Jäntti (Jypeli-kehittäjä)
  • TK: Tomi Karppinen (Jypeli-kehittäjä)
  • AJL: Antti-Jussi Lakanen (Ohj1 kurssin luennoija keväisin)
  • TM: Tiina Mononen (Ohj1 kurssin tuntiopettaja)
  • ji: Jonne Itkonen

Kevään 2012 kysymyksiä

  1. Millä ohjelmalla on tehty kaikki vanhanaikaiset 16, 32 bittiset pelit, ja voiko niitä vielä tehdä nykyaikaisilla tietokoneilla ?
  2. Onko kurssin suorittaneella paremmat mahollisuudet päästä yliopistoon opiskelemaan, kuin henkilöllä, jolla ei kurssia ole?
  3. Miksi ohjeet eivät kata kunnolla windows 7:n kanssa tulevia ongelmia tehtävissä? Monessa kohtaa esim. komentorivi käyttäytyi eri tavalla käytettäessä seiskaa xp:n sijasta.
    • Jos materiaalissa on virheitä niin toivon että ilmoitatte niistä. Yliopistolla ollaan siirtymässä XP-ajasta Win7-aikaan ja se aiheuttaa omat probleemansa. Varsinkin kun osassa mikroluokista on jo WIn7 ja osassa vielä XP. -AJL
  4. Mikä on hienoin asia mitä olet koodannut?
  5. Mikä ohjelmoinnissa voisi olla haastavinta?
  6. Mikä on mielestäsi ohjelmoinnin opettamisessa vaikeinta?
  7. Miten ohjelmointikielet on ohjelmoitu?
    • Katso alla aiemmilta vuosikursseilta saman kysymyksen vastaus (Muut kielet kysymys 11). Lyhyesti: rakkaudella ja mieluusti kielellä itsellään. -ji
  8. Voinko esimerkiksi vaihtaa koneestani komennot afrikaansiksi tai voinko huijata koneen luulemaan että näytä kansion sisältö tarkoittaakin aina näytä kansion sisältö ja lähetä siitä kopio Helsingin kaupunginkirjaston tietojärjestelmään jolloin se tukkeutuu ja kaatuu ja posahtaa eikä kirjasto voi enää ikinä periä Elinalta myöhästymismaksuja? ;)
    • Ohjelmat ovat dataa tietokoneen muistissa, jotka enemmän tai vähemmän epäsuorasti vastaavat komentoja, joita koneen sisällä hyrräävä suoritin tulkitsee ja suorittaa. Koska ne ovat dataa, ne ovat myös muokattavissa siinä missä mikä tahansa tekstidokumentti. Tosin yleensä ohjelmat käännetään jo ohjelmoijan koneella sellaiseen muotoon, joka on lähellä suorittimen käskykantaa ja sellaisenaan hankala ihmisen ymmärtää. Riippuu sitten ohjelmasta, kuinka vaikeaa niiden muokkaus on. Käyttöliittymän kielen muuttaminen esim. sitten afrikaansiksi on monesti haluttu ominaisuus, joten se löytyy monesta käyttöjärjestelmästä ja ohjelmasta. Se, voitko ujuttaa omia komentoja tiedostoselaimeen, riippuu ihan kyseisestä ohjelmasta että onko se kohtuu helppoa vai todella vaikeaa. Ja vaikka välttämättä haluaisit lähettää kansion sisällön Helsingin kaupunginkirjastoon, niin se on ihan niiden tietojärjestelmän asia että haluaako se ottaa sen vastaan :) Tuskimpa, jos se on yhtään fiksusti tehty. Toivottavasti vastaus oli edes sinnepäin... :) -TJ
  9. Kuinka ankarasti arvostellaan hieman myöhästyneet tai keskeneräiset vastaukset?
    • Periaatteessa myöhästyneitä vastauksia ei arvioida, koska laitan demoWWW hakuskripti pyörähtää käyntiin maanantaisin n. klo 7:00 joka tavallaan "lukitsee" vastaukset. Jos on vaikeuksia saada demot tuohon mennessä lähetettyä, niin ota yhteyttä luennoijaan. Keskeneräiset vastaukset voi lähettää demoWWW:hen ja itse arvioida annettujen ohjeiden mukaan demoWWW:ssä. -AJL
  10. Miksi ohjelmointi 1 on keskittynyt pelien ympärille?
    • Tavoitteena on että oppiminen ja opiskelu olisi hauskempaa, antoisampaa ja ehkä oppimistuloksetkin parempia. Tämän muotoista kurssia on nyt kokeiltu noin 300 yliopisto-opiskelijalla meidän laitoksella ja tulokset ovat ihan lupaavia, laitan tästä vähän myöhemmin vielä lisää "todisteita". Maailmalla pelien kautta opettamista ollaan tutkittu paljon ja monet (kuten minä myös) ovat sitä mieltä että pelit ovat opetuksessa tosi hyvä juttu. Tietysti on joitain jotka eivät kertakaikkiaan voi sietää minkäänlaisia pelejä, ja pakottavista syistä kurssin voikin tehdä Java-versiona. -AJL
  11. Tiedätkö nettisivuja, joilla on sama idea kuin http://ss64.com , mutta ovat eri kielille?
    • Enpä osaa arvata, mitä tarkoitat "eri kielellä", luonnollista kieltä kuten suomea vai ohjelmointikieltä? Hieno löytö tuo sivusto, tosin paljon tiedosta löytyy jo valmiina käyttöjärjestelmän omista avustustyökaluista (esim. Unix/Linux?/OSX/Cygwin kokeile komentorivillä man man. Eri ohjelmointikielillä on taas vastaavia omia sivustojaan, joille vain pitää tehdä oma kokoelmasivu (kts. esim. Common Lisp Hyperspec, jonka Permuted Symbol Index saisi löytyä muillekin kielille). -ji
  12. Mitä pitää tehdä, jos ei ehdi tekemään/palauttamaan demoja määräaikaan mennessä?
    • Ei siihen elämä kaadu, ota yhteyttä luennoijaan ja katsotaan sitten korvaavia tehtäviä. Joka kerta pitäisi kuitenkin se minimimäärä tehdä ja mielellään enemmänkin. -AJL
  13. Mitkä ohjelmointikielet ovat esim. työelämän kannalta tärkeimpiä? Kuinka moneen kannattaa keskittyä?
    • Valitettavasti ne ohjelmointikielet, jotka nyt ovat "tärkeimpiä" tuskin ovat enää tärkeimpiä kun olette työelämässä, tai tuskin ainakaan samanlaisia. Muutosvauhti ohjelmointikielissä ja muotikielen asemassa on hyvin suuri. Järkevintä olisi opetella useita ohjelmointikieliä eri ohjelmointiparadigmoista, jolloin voisi valita aina työhön sopivan kielen. Lisäksi eri kielien opiskelu tuntuu parantavan sen oman suosikkikielen käyttötaitoakin, kun oppii katsomaan asioita uudesta näkökulmasta. Kannattaa opetella niin monta ohjelmointikieltä kuin mikä tuntuu kivalta ja hauskalta, mutta suosittelen ainakin kahta eri paradigman kieltä. Oma suositukseni opeteltaviksi kieliksi on Python, Smalltalk, Common Lisp ja Haskell, sekä Whitespace ja C. Java ja C# tulevat jo muutenkin tutuiksi, ja ovat mielestäni tylsiä verrattuna edeltäviin, joten niitä en mainitse. -ji
  14. Pystyykö tämän kurssin hyvittämään muissakin yliopistoissa? -Lukiolainen
    • Tästä ei valitettavasti ole mitään takeita. Sisällöt ovat vastaavilla kursseilla kuitenkin samankaltaisia muissakin yliopistoissa joten luulisin, että pystyy. -AJL
  15. Onko mahdollista saada Jypeli toimimaan monolla?
    • Luultavasti, tosin vaatisi suuren työmäärän. Porttaaminen monolle (ja siten mm. Linuxille) vaatisi mm. grafiikka- ja äänikoodin porttaamista käyttämään muita kuin XNA-kirjastoja. Tao Framework tarjoaisi tähän valmiit wrapperit C#:lle. Lisäksi ainakin XNA:n content-järjestelmä (joka kääntää mediatiedostot pelin ymmärtämään binäärimuotoon) pitäisi ehkä toteuttaa monoa varten. En ole juurikaan seurannut kuinka hyvin mono-projektia on ylläpidetty, joten en osaa sanoa mitä riskejä porttaamisessa olisi (esim. tarvitsisiko koodia "alentaa" vanhenpaan C#-versioon). -TJ
    • Eli suomeksi tällä hetkellä ei :-). -AJL
    • Ei kannata jäädä tätä murehtimaan, vaan katso http://pygame.org/ ja http://cocos2d.org/ -ji
  16. Tulemmeko tällä kurssilla oppimaan lainkaan Javaa tai muita vastaavia?
    • Kurssilla emme todennäköisesti käännä Java-koodia, mutta olisi väärin sanoa ettei kurssilla opi lainkaan Javaa, kun C# ja Java ovat syntaktisesti niin lähellä toisiaan (vähintäänkin tämän kurssin tarpeita ajatellen). Määrittele "muut vastaavat". :-) -AJL
  17. Saako visual studiota (Ultimate versiota) käyttää omien ohjelmien tekemiseen markkinointi tarkoitukseen?
  18. Mitä oman pelin saaminen pelikauppaan saaminen tarkoittaa käytännössä? Saammeko itse taloudellista hyötyä, jos peli myy?
  19. Miten toimii Ohjelmointi 2-kurssin suorittaminen kesällä?
    • Laitoksen kesäopetussuunnitelma julkaistaneen tässä lähiaikoina. Laitoksen opetusohjelmasivua kannattaa seurata. Viime kesänä Ohj2 oli mahdollisuus tenttiä, mutta luentoja ei järjestetty vaan ne katsottiin videolta. Ohjattua HT:n tekemistä järjestettiin. -AJL
  20. Haluaisin esittää luennoitsijalle kysymyksen milloin hän on alkanut ohjelmoimaan ja millä kielellä?
    • Jotain vaatimattomia kokeiluja 7-8 luokilla, muistaakseni ensimmäisen ohjelmointikurssin kävin 9. luokalla (Visual Basic). En kyllä paljoakaan oppinut mutta kai siitä joku kipinä jäi. Oikeasti aloittelin hommaa sitten opiskeluiden alettua (C, Java, jne.). -AJL
  21. Miksei yliopistolla ole kursseja joissa käytetään Pythonia?
    • Kyllä joillakin myöhemmillä kursseilla voi käyttää mitä kieltä vain, vaikka tuota Kyyrmeskieltä. Toki sitä esimerkiksi Lappeenrannan teknisessä yliopistossa käytetään perusohjelmoinnin opetuskielenä, mutta silloin jää opettamatta monta hyödyllistä lisäkettä ja ikävää turhaketta, jotka C#:n ja Javan kaltaiset kielet opettavat, jotta selviätte sitten teollisuudessa, kun on pakko noita turhakkeita käyttää. -ji
  22. Tulemmeko luennoilla/harjoitteluryhmissä kehittämään yhdessa luennoitsijan kanssa jonkinlaisen ohjelman?
    • Molempiin kyllä. Kunhan päästään kunnolla alkuun niin alkaa kokonaisuus paremmin hahmottumaan. -AJL
  23. Pitääkö kaikkien ohjelmointikielien kielioppisäännöt osata ulkoa? Meinaan etten itse ainakaan osaa esim. englannin kielen kielioppisääntöjä, mutta lunttaamallahan niistäkin selviää.
    • Jep, tosin ohjelmointikielet ovat paljon, paljon säännöllisempiä kuin esim. englanti ja siten helppoja oppia. Ulkoa opettelu ei tosin kannata, helpoin ja paras tapa oppia ne on ohjelmoida. -ji
    • ei missään nimessä kaikkien eikä välttämättä mistään kaikkia sääntöjä. Sen muistaa mitä aktiivisesti käyttää ja loput katsotaan materiaalista. - vl
  24. Onko alaikäisyys este pelin kännykkäversion Windowsin kauppapaikkaan laittamiselle?
  25. Onko suotavaa käyttää omassa pelissään niinsanotusti valmiita toimintoja? Esimerkiksi netistä bongaa jonkin hyvän koodinpätkän tms toiminnon tiedostoineen ja haluaisi käyttää tätä pelissään, onko tämä suotavaa?

Syksyn 2011 kysymyksiä

1. Ohjelmointi 1 suorittaminen ja mahdollisuus oppia ilman aikaisempaa kokemusta

  1. Onko kurssi vaikea läpäistä, jos ei ole aiempaa kokemusta ohjelmoinnista?
    • demoja ja HT:tä ahkerasti tekemällä ei ollenkaan mahdoton - VL
  2. Jos ei ole minkäänlaista ohjelmointikokemusta ennestään, niin onko Ohjelmointi 1-kurssin perusteella mahdollista oikeasti oppia ohjelmoimaan?
    • ohjelmoinnin oppiminen on pitkä prosessi, Ohj 1 johdattaa alkuun vaikka kokemusta ei olisikaan. Ohjelmointia oppii vain ohjelmoimalla ja homma jatkuu Ohj2:lla yms. kursseilla - VL
  3. Kuinka iso osa kurssin osallistujista on aiempina vuosina keskimäärin läpäissyt kurssin?
    • riippuu mistä lasketaan :-) Vuosi sitten syksyllä
       322 ilmoittautui
       180 palautti ekat demot,
       126 palautti demo 11
       118 läpäisi tentin, muutamilta jäi vielä HT uupumaan
      
      eli tuosta voi laskea ihan mitä prosentteja vaan. Minusta tuo että on tehnyt demoja loppuun asti ja sitten päässyt tentistä läpi, on aika hyvä suhde. - VL
  4. Kuinka suuri prosentti kurssin opiskelijoista pääsee yleeensä läpi?
    • ks. edellä - VL
  5. Onko koskaan selvitetty, millaisia arvosanoja kurssista ovat saaneet ne, jotka itseni tavoin eivät ole koskaan aiemmin koodanneet mitään?
    • ihan laidasta laitaan. Jotkut parhaista oppilaista ovat lähteneet 0-tiedoilla (mutta ahkerasti hommia tekemään). Monet aloittelijat saavat 5:n. - VL
  6. Selviänkö Ohjelmointi 1 -kurssin käytyäni Fysiikan numeeriset menetelmät -kurssista ensi keväänä ? Yritin käydä kyseistä kurssia viime keväänä ilman minkäänlaista ohjelmointitaitoa, mutta jouduin keskeyttämään sen kun en ymmärtänyt aiheesta mitään.
    • kyllä toisen samankaltaisen asian ymmärtäminen aina auttaa toisella. Mutta tarkemmin ko. kurssia tuntematta en osaa sanoa kuinka paljon siinä tulee jäämään kiinni matemaattisesta puolesta - VL
  7. Minkälaisia tentit ovat kurssilla aiemmin olleet? (monivalintaa, esseetä, muunlaisia tehtäviä?)
  8. Kuinka monta prosenttia kurssin aloittaneista pääsee kurssita läpi ensi yrittämällä?
    • tuota en ole koskaan tilastoinut, koska yrityskertaa ei minulla ole käytössä. Sanoisin kuitenkin että ensikertalaiset hyvin ja n:n kertalaiset luulevat asiaa tutuksi eivätkä vieläkään rupea tekemään töitä. - VL
  9. Kävin ohjelmoinnin 1 kurssia jo viime keväänä. Miksi kevään ja syksyn kurssi ovat niin erilaisia?
    • erilainen lähestymistapa (tosin mitä vertaa, Tietotekniikan laitoksella Ohj1 oli keväällä samanlainen kuin nyt) - VL
    • erilainen kohderyhmä (tämä on ensisijaisesti Tietotekniikan pääaineopiskelijoille) - VL
    • Tietotekniikan laitos järjestää tällä hetkellä Ohj1 kurssin pelikurssiversion keväisin ja syksyisin. Tietojenkäsittelytieteiden laitos oman versionsa keväisin. Molemmilla laitoksilla on omat opettajansa ja traditionsa joten siitä ne erot syntyy. -AJL

2. Jypeli

  1. Mitä etuja Jypeli-kirjastosta on esimerkiksi muihin yleisesti käytettyihin kirjastoihin verrattuna?
    • Pienempi aloituskynnys, ainakin verrattuna XNA:han tai DirectX:ään, OpenGL:ään ja vastaaviin (kunhan on ensin saanut kaikki visual studiot ja xnaa:t asennettua :) -TJ
    • Grafiikka, ääni ja fysiikka yhdessä paketissa -TK
    • Ilmainen, ja varsin salliva lisensointi -AJL
    • Itse tehty => nopeasti saatavissa haluttuja ominaisuuksia (viimeisenä esim. Camera.ZoomTo viikonloppuna). - VL
    • Kun tehty itse, tunnetaan hyvin. Vieraan kirjaston kanssa olisi myös oppimiskäyrä. - VL
  2. Toimiiko Jypeli samaan tapaan kuin pelimoottori, vaikkapa Unreal, toimisi?
    • Periaatteessa kyllä (valmis pelirunko, jonka päälle lisätään sisältöä), mutta tekninen toteutus on epäilemättä hyvinkin erilainen. Unrealilla saa aikaan mahdollisimman näyttävää grafiikkaa hyvällä ruudunpäivityksellä, Jypelissä tavoitteena on ollut helppous aloittelijan kannalta. - TJ
  3. En ole vielä tuon gravitaation kanssa leikkinyt, mutta mielessä kävi että miten nuo lumiukon silmät, nenän ja suun saisi pultattua kiinteästi päähän kiinni.
  4. Toimiiko valmistetut pelit android käyttöjärjestelmässä vai ainoastaan Windows Phone? Voidaanko ohjelmat kääntää helposti android-järjstelmiin?
    • Vain Windows Phone - VL
    • Ei helposti, koska kaikki se toiminnallisuus mikä on Jypelissä, pitäisi kirjoittaa uudelleen. Mutta jos joku haluaa lähteä kääntämään Jypeliä Mac/Java?-maailmaan, niin avustamme siinä varmasti :-) - VL

3. C# vs Java

  1. Miksi C# mielummin kuin Java tai C++ ohjelmointi 1 kurssille?
  2. Mitkä ovat Java- ja C-ohjelmointikielien parhaimmat ja huonoimmat puolet verrattuna toisiinsa?
  3. C# oli mielenkiintoinen valinta ykköskurssille. Miten siihen päädyttiin?
  4. Miksi kurssin kieli on tällä kertaa C#? Olisi ollut kiva, että kurssin olisi voinut suorittaa myös macilla :)
  5. Miksi syksyn kurssi on C# kielellä, kun viime kevään kurssi ole javalla?
  6. Miksi kurssin ohjelmointikieltä on vaihdettu? ts. aikaisemmin Java, tällä kertaa C#, ensi vuonna uudestaan Java?
  7. Mitkä ovat suurimmat erot Javan ja C#:n välillä? Molemmat kuitenkin ilmeisesti kohtuullisen samanlaisia.
    • C# on hieman uudempi kieli ja siinä on otettu käyttää vähän rikkaampia ominaisuuksia, uutena funktionaalisia ominaisuuksia, vähän vanhempana erona mm. delegaatit. Delegaatit tekevät tapahtuman käsittelystä koodiltaan nätimpää luettavaa kuten jokainen kevään Javan kurssin käyvä tulee huomaamaan. Lisäksi C#:issa on Visual Basicista ja Delphistä parannettu ominaisuuksien (property) käsite. Propertyjen ansiosta voidaan sanoa esim:
        p1.X = 100;
        paikka = p1.X;
      
      kun Javassa pitää turvautua ihan tavallisiin metodikutsuihin:
        p1.setX(100);
        paikka = p1.getX();
      
      Toki tämä on pitkälle "syntaktista sokeria", eli ei täysin välttämätöntä. C#:in rikkaampi rakenne näkyy mm. siinä, että aliohjelmilla on myös viiteparametrit, jolloin aliohjelma voi muuttaa muitakin arvojaan kuin funktion paluuarvoa. Tosin ilman tätäkin on Javalla pärjännyt - puute häiritsi eniten kun siirtyi Pascal/C/C++:sta Javaan. - VL

4. Ohjelmointi 2

  1. Olen kuullut paljon pahaa ohjelmointi 2:sta, onko ko. kurssi tosiaan yhtä tuskaa?
    • se vaatii sen n. 200 tunnin täyden panostuksen. Mutta sitä se 8 op tarkoittaa. Jos työnteko on tuskaa, niin silloin tuo on tuskaa. Jos työnteko voi tuottaa iloakin, niin voi Ohj2:llakin kokea onnistumista :-) - VL
    • onko muuten kurssista oikeasti liikkeellä "pahaa"? Ainakaan opiskelijapalautteessa ei ole ollut. Toki on ollut valitusta työmäärästä ja sitä voi pienentää tekemällä nyt itselleen hyviä pohjia. 1:n arvolauseeksi Ohj1:stä ei anna hyviä pohjia.. - VL
  2. Tuleeko Ohjelmointi 2 kurssista jatkossa myös C# kurssi?
    • ei missään nimessä. tarkoitus on että kieli vaihtuu ja opitaan näkemään metsää puilta. Yhdellä kielellä menemällä ei kokonaisuus hahmotu samalla tavalla. - VL
  3. Miten suosittelet valmistautumaan Ohjelmointi 2 varten muuten kuin Villeä vilkuilemalla?
    • tekemällä ahkerasti Ohj1-kurssin demoja. Muuta ei periaatteessa tarvita. Jos haluaa, voi katsoa myös viime syksyn Ohj1-kurssin monistetta, missä on samat asiat mitä nyt on C#:illa, tehty Javalla. Siirtymä ei kuitenkaan ole pelkäämisen arvoinen :-) - VL

5. Muut kielet

  1. Mitä kaikkia kieliä ohjelmointikursseilla opetetaan?
    • C#: Ohj1, Graafisten käyttöliittymien ohjelmointi
    • Java: Ohj2: Java, Jatkokurssilla
    • C++: Ohj2 C++ jatko-osa
      • Haskell - TIES343 Funktio-ohjelmointi
    • Numeerississa menetelmissä Fortran (???)
    • C# ja Java - Ohjelmointi 1 ja 2,
      • Assembly, "konekieli" - TIEP114 Tietokoneen rakenne ja arkkitehtuuri, ITKA203 Käyttöjärjestelmät
      • Fortran - TIEA384 Fortran ja rinnakkaislaskennan perusteet
      • Python - esim. monilla verkkotekniikkakursseilla kätevä kieli
      • C - FYSE360 Mikrokontrollerit, muut sulautettujen järjestelmien kurssit
  2. Vaihtoehtoinen kysymys laajemminkin: Millaisia tulevaisuuden suunnitelmia yliopiston kielivalikoimassa on? Onko jatkossa mahdollista opiskella Javan lisäksi C#:a tai C/C++. Ehkä Python ja muut?
    • ks edellä - VL
  3. Jos CSharpilla pystyy tekemään ohjelmia Windows Phonelle, mitä muita ohjelmointikieliä on olemassa joilla voi tehdä ohjelmia muiden mobiililaitteiden käyttöjärjestelmille, kuten Symbianille, Androidille, iOS:lle jne.
    • Android: Java
    • iOS: Objective C
    • Symbian: C++ (QT Quick olisi jo kai ihan ok)
    • Symbianille tehdään ohjelmia C++:lla, C:llä, Javalla ja Pythonilla, Androidille Javalla ja C:llä, iOS:lle Objective-C:llä, C:llä ja C++:lla. Kaikista näistä löytyy myös verkkoselain, joka ajaa JavaScript?-ohjelmia. -ji
  4. Saako kurssilla tehdyn pelin toimimaan Android-puhelimella?
    • ei saa, se pitäisi kirjoittaa Javalla - VL
  5. Kuinka montaa ohjelmointikieltä tulee hallita, vai ovatko ne tarpeeksi samankaltaisia, että yhden osaamisella osaa soveltaa kaikkia niitä?
    • Ohjelmointikielet voidaan luokitella erilaisiin ryppäisiin, joita kutsutaan yleensä paradigmoiksi. Saman paradigman sisällä kielet ovat aika samanlaisia, mutta paradigmojen välillä on merkittäviä eroja; sama pätee myös kielestä toiseen siirtymisen vaikeuteen. C#, Java ja C++ kuuluvat kaikki samaan paradigmaan, mutta esimerkiksi Haskell (ks. TIES343) on merkittävästi erilainen. – AJK
    • Myös paradigman sisällä erot kielien välillä voivat olla hyvinkin suuria, esim. Java ja Smalltalk, tai Haskell ja Clojure. Joskus myös kielen katsotaan kuuluvan useampaan paradigmaan, jolloin sillä onnistuu luontevasti usean eri paradigman kaltainen ohjelmointi, esim. Common Lisp ja (jossain määrin) C++. -ji
    • Ohjelmoija saattaa pärjätä yhden kielen tai paradigman osaamisella, mutta taitava ohjelmoija osaa monia kieliä useasta eri paradigmasta. Suosittelen, jos innostusta on, uusien kielten jatkuvaa opiskelua myös omaehtoisesti. Kaikki edellä mainitut kielet ovat hyödyllisiä :-) - AJK
  6. Poikkeaako ohjelmointikielet jollain perustavalla tapaa toisistaan, vai onko periaatteessa niin, että kun osaa ohjelmoida yhdellä kielellä, muiden käyttäminen onnistuu, kun näkee vaan esim. kirjasta tai netistä, miten vastaava asia kirjoitetaan toisella kielellä?
    • Ks. edellinen vastaus. – AJK
  7. Kuinka helppoa on siirtyä kielestä toiseen, onko esim. kokeneen c# - ohjelmoijan vaikeaa siirtyä pythoniin, vai auttaako kaikki pohja tietynlaisen algoritmisen ajattelun kehittämisessä?
    • Ks. edellinen vastaus. – AJK
    • Ohjelmoinnin osaamiseen kuuluu muutakin kuin kielen osaaminen, joten kaikki pohja kyllä auttaa. – AJK
  8. Eroavatko eri ohjelmointikielet paljon toisistaan? Jos osaan C#, onko vaikea oppia Java? yms.
    • Ks. yllä olevat vastaukset. – AJK
  9. Minkä ohjelmointikielen tulevaisuus näyttää mobiilialustoja/internetiä ajatellen tällä hetkellä valoisimmalta? Miten mahdollista kaiken ohjelmoinnin keskittyminen vain yhden kielen ympärille tulevaisuudessa on?
    • tähän on vaikea sanoa - VL
    • nyt Java ja C# (sekä Objective C iOS:ssä) ovat tietysti varmoja valintoja - VL
    • JavaScript? + HTML5 lienee kohttuuvarma veto tulevaisuutta ajatellen - VL
    • Valoisin lähitulevaisuus mobiilialustoissa lienee Objective-C:llä (iOS), C#:lla (W7) ja Javalla (Android), Internet-puolella taas Java, C#, Python, Ruby, Scala, JavaScript?, CoffeeScript?, Clojure, Haskell, Smalltalk ja Erlang. PHP:n käyttö on rikos ihmisyyttä vastaan. Pitkällä tähtäimellä kukaan ei voi vastata tuohon, mutta Java pysynee vielä hetken perintönsä takia pinnalla. Ohjelmointi ei tule keskittymään yhteen kieleen ikinä, ellei sitten se kieli ole Lisp. ;-) -ji
  10. Kun oppii C#-ohjelmointikielen kunnolla, onko muiden merkittävien ohjelmointikielten opiskelu helppoa?
    • Se on itseasiassa vaikeampaa, kts. yllä olevat vastaukset :) Eli kun opit ohjelmointikielen, alat nähdä kielen mukaisia ratkaisuja ongelmiin. Jos seuraava kieli on samankaltainen kuin jo oppimasi kieli tai kielet, voi aiemmasta osaamisesta olla jopa hieman apua. Jos taas kieli vaatii täysin erilaista ajattelutapaa, eri "paradigma", on aiemmin opitusta vain haittaa. Mikään ei ole kuitenkaan niin hieno tunne, kuin oppia näkemään maailma uusin (ohjelmointikieli)silmin! Tai no ehkä on muitakin hienoja tunteita... -ji
  11. Minkä takia on niin monta eri ohjelmointi -kieltä ? Ja miten uusi kieli syntyy ?
    • Joka kielellä on hyvät ja huonot puolensa eikä kaikkien mielestä parasta kieltä ole keksitty. Siksi aina sillloin tällöin joku etevä ohjelmoija laatii oman kielen. – AJK
    • Kieli syntyy synnyttämällä. Tarvitaan näkemys siitä, miten uusi kieli eroaa nykyisistä, ja sitten hirveästi työtä yksityiskohtien kuntoon viilaamisessa. Lisäksi pitää laatia työkalut uuden kielen käyttämiseen. Työtä on siis paljon. – AJK
    • Jos asia kiinnostaa, tervetuloa (sitten kun opinnot ovat tarpeeksi edenneet) kursseille TIES542 ja TIES448. – AJK

6. Henkilökohtaisemmat

  1. Mikä olisi mielenkiintoisin koodailuprojekti, jossa haluaisit olla mukana?
    • sellainen missä tehtäisiin oikeasti helppokäyttöinen ja toimiva mobiililaite (eli älypuhelin), joka korvaisi kaikki kaukosäätimet, avaimet, lompakot, luottokortit enkä tarvitsi mitään muuta pitää mukana - VL
    • Sellainen, jossa tehtäisiin loppu tälle järjettömälle mobiililaitepalvonnalle, ja toteutettaisiin korvaava järjestelmä, joka ei häiritse olemassaolollaan, ja joka on kaikkialla apuna, mutta kytkettävissä pois päältä ilman että mikään ei sitten enää toimi. Lisää ideasta osoitteessa http://www.ubiq.com/hypertext/weiser/SciAmDraft3.html. -ji
    • Joku hullun siisti, yksinkertainen ja koukuttava peli. -AJL
  2. Kysymys luennoitsijalle: Mistä päin lehtori Lappalainen on kotoisin?
    • Syntynyt Jyväskylässä, suku Savosta
  3. Mikä on mielekkäin ohjelmointikieli, mitä olet käyttänyt?
    • Delphistä (Object Pascal) pidin ennen paljon - VL
    • assemblereilla tuli aikanaan aika paljon kirjoitettua ja mukavaa oli täysi kontrolli jota ei mikään kääntäjä muuksi muuttanut - VL
    • kyllä C#:issakin on hyviä puolia, eikä Javakaan ihan kamala ole - VL
  4. Harmittaako sinua Nokian tulevaisuuden puolesta, kun Stephen Elop "kaikessa suuressa viisaudessaan" hylkäsi Meegon kehityksen?
    • ei todellakaan. Vaihtoehdot ovat häväksi, mutta niitä on jo riittävästi mobiilimaailmassa. Nokia teki jo tarpeeksi pahaa pidettyään Symbiania (ja sen hirveää C++ koodausta väkisin hengissä niin pitkään. Nyt tehty liike olisi pitänyt uskaltaa tehdä jo paljon aikaisemmin. - VL
    • ainoa suuri munaus oli tapa millä asia esitettiin ja vesitettiin ainoat markkinoilla olevat puhelimet. - VL
  5. Mikä omasta mielestäsi on parasta koodauksessa?
  6. Mistä sinä pidät ja et pidä ohjelmoinnissa?
  7. Luennoitsijalta haluaisin kysyä, kuinka hän itse on aikoinaan kiinnostunut ohjelmoinnista.
  8. Kuinka itse kiinnostuit ohjelmoinnista, vai kiinnostuitko ollenkaan?
    • Oma "urani" lähti liikkeelle pelien kautta. Ensin pelkästään pelaamalla paljon (C64, Amiga 500, jne) --> kiinnostus tietokoneisiin yleensä. Sitten yläasteella viimein ohjelmointikurssi, joka taisi olla jonkin sortin peliohjelmointia Basicilla. Mitään järkevää ei muistaakseni saatu aikaiseksi mutta kyllä siitä kipinä jäi. -AJL
  9. Luennoijan ohjelmointitausta, lempikieli ja miksi ryhtyi alalle?
  10. Minkälaisia ohjelmia olet itse tehnyt?
  11. Minkälaisia ohjelmia olet itse kehittänyt?
  12. Mikä tietotekniikan osa-alue tai aihe on pysynyt vuodesta toiseen mielenkiintoisena/innostavana nimenomaan opettajan näkökulmasta?

7. Kurssin sisältöön liittyviä kysymyksiä

  1. Mitä tarkoittaa syntaksi?
    • kielioppia. Syntaksi määrittelee välttämättömät säännöt jotta ohjelma saadaan käännettyä. Vaikka ohjelma on syntaktisesti täysin oikein, voi se silti olla semanttisesti (merkitykseltään) väärin. - VL
    • Kielioppia, tai oikeastaan lauseoppia. Miten komentoja ja lauseita kirjoitetaan muodollisesti oikein jne. Ei sano mitään siitä onko ohjelma (tai lause) järkevä. Ks. Wikipedia. -AJL
  2. Onkohan "csc Lumiukko.cs /reference:Jypeli4.dll;"%XNAGSv4%References\Windows\x86\Microsoft.Xna.Framework.Game.dll" /platform:x86" ja vastaavia jatkossa pääteltävä itse vai annetaanko ne jatkossakin valmiina? Enpä nyt muuta kysyttävää keksinyt.
  3. Olisiko mahdollista ottaa myös Mac -esimerkkejä luennoilla? Mac -käyttäjiä on kuitenkin aika monta. Tai esim. luentomonisteisiin mac -"vinkkejä"?
    • Voin täydennellä monistetta nettiin syksyn mittaan, mutta ihan kaikkea ei monisteeseen voi laittaa. Suotavampaa olisi kirjoitella wikiin parhaita käytänteitä yms. Voitte vaikka itse perustaa wiki-sivun ja linkittää sen muille sivuille jne, ja ne keillä on macintosh niin voivat sitten täydentää. -AJL
  4. Kurssin alkukyselyyn vastattu ja kysymys olisi että kuinka monelle koneelle MSDNAA:n kautta ladattuja ohjelmia voi asentaa? Eli pystyykö esim. Visual Studion asentamaan 2 koneelle?
  5. Mitä tarkoittaa merkkauskieli?
    • arvelisin että tästä on puhuttu esim. HTML:än yhteydessä ja silloin vastaus on että esim HTML. Myös LaTeX (tieteellisen tekstin ladontakieli) on yksi esimerkki. Samoin tämä Wiki. Tyyppillistä on että kieli ei täytä vielä kaikkia ohjelmointikielen tunnusmerkkejä. - VL
  6. Mikä oli komentorivillä kirjoitettava komento, joka luo ja avaa uuden teksititiedoston ConTEXT:illä?
    • ct uusitiedosto.txt , toimii Agorassa - VL
  7. Ykköstehtävässä tulostuksen piti olla pidempi mutta sain vain yhden tulosteen, mutta en saanut alikansioita tulostettua. Käytössä Windows 7 ja käytin komentoja jotka annettiin ohjeina. Olisikohan tietoa missä on ongelma?
    • ongelma oli kai siinä, että tehtävässä käsiteltiin U-levyn juuri-hakemistoa ja tehtävän tekijä oli tehnyt vastaavan rakenteen syvemmälle tiedostupuuhun jolloin juurimerkin (\) käyttö ei toimi enää samalla tavalla. - VL
  8. Mikä oli ensimmäisten demojen tehtävän B2 motivaatio ohjelmoinnin kannalta?
    • eikähän se ole pelkästään tuon huomaaminen että 64 on jotenkin asiaan liittyvä luku, eli 2:n potenssi. - VL
    • Voisin tehtävän laatijana vastata tähän. 2-potenssien (kurssin osaamistavoite) lisäksi tuossa tehtävässä vaadittiin sellaista "laatikon ulkopuolelta" -ajattelua. Aika usein näin on myös ohjelmoinnissa, sillä ohjelmointi on yllättävän usein luovaa työtä, ei mitään mekaanista näppäimistön naputtelua. Välillä se voi olla turhauttavaakin, vähän niinkuin kirjailijoilla voi joskus olla tyhjän sivun syndrooma jne. Jonkun mielestä tämä voi olla kaukaa haettua mutta tämä olikin bonus-tehtävä :-). -AJL
  9. Jos demoja tekee ryhmässä ja lisää ryhmän jäsenten nimet ohjelman kommentteihin riittääkö että yksi ryhmän vastaus palautetaan nettidemowww:hen vai pitääkö kaikkien ryhmän jäsenten lähettää sama ohjelma ryhmänjäsenten nimillä varustettuna
    • kakki joutuvat laittamaan saman version itse oman NettiDemoWWW:n kautta - VL
  10. Onko jokin erityinen syy siihen, miksi toimintaohjeet tehtäviin ja ohjelmien asennukseen annetaan vain Windows XP:lle ja 7:lle (Muukin kuin se, että Vista on huono ;))? Löytyykö Vistan käyttäjille nyrkkisääntöä siitä, kumpia ohjeita tulisi ensisijaisesti noudattaa, vai ovatko erot niin suuret että hommaa pitää katsoa aina tapauskohtaisesti?
    • kenelläkään ohjaajista ei ole Vistaa, joten luotettavia mielipiteitä ei voi kirjoittaa. Tällöin XP-ohjeet ovat varmempi veto. Mutta Vista on välinputoaja josta kannattaa pyrkiä eroon. MSDNAA:sta saatte Windows 7:n. Jos joku saa jonkin onnistumaan Vistalla, olisi kiva että täydentäisi Wikiin tuolta osin. - VL
  11. Tehdäänkö kurssilla ohjelmointia Windows Phone 7 sovelluksella?
    • tulen muutamia esimerkkejä laittamaan WP7:lle. Ja jokainen voi kokeilla samaa itse emulaattorilla vaikka ei omistaisikaan puhelinta. Oikein hyvillä perusteilla voidaan joillekin lainata WP7 puhelinta kokeiluja varten. - VL
  12. Voiko MSDNAA-lisenssillä asentaa saman ohjelman useammalle kuin yhdelle koneelle?
    • käsittääkseni saa laittaa saman talouden koneisiin (laitoin vielä varmistuskysymyksen MS:llä ja vastaus oli että jos on sama käyttäjä kaikilla koneilla, niin OK) - VL
  13. Ovatko ohjelmointi ja koodaus synonyymejä?
    • ei missään tapauksessa. Ohjelmointi on erittäin paljon laajempi käsite, johon toki koodauskin kuuluu. - VL
  14. Mikä on kurssin THE yksittäinen aihealue, jota hallitsematta ei vain voi menestyä tentissä?
    • aliohjelmat ja parametrin välitys - VL
  15. Kysymys: Jos käyttää koodin kirjoittamisen pohjana jonkun toisen luomaa koodia ja tekee siihen lisäyksiä, miten merkitään AUTHOR -tiedot? Esimerkiksi näissä tehtävissä käytin Lumiukko.cs -tiedostossa pohjana valmista lumiukkoa, johon lisäsin silmät suun ja nenän.
    • on tietysti reilua jättää alkuperöisen tekijän tiedot näkyville jos suuri osa koodista on sieltä kotoisin. Omaat tiedot voi lisätä perään ja ihannetapauksessa kertoa mitä on muuttanut (=omaa). - VL
  16. Mitä eroa on luokkakohtaisella ja oliokohtaisella aliohjelmalla?
    • Ks. moniste - AJL
    • "luokkakohtainen aliohjelma" saa kaiken tietonsa parametrin välittyksellä (static-aliohjelma) - VL
    • "oliokohtainen aliohejlma" (metodi) taas sa osan (kaiken) tietonsa olion omista tiedoista - VL
    • Kumpikaan noista ei ole virallisesti aliohjelma, vaan luokan metodi tai olion metodi. Ohjelmointi 1 -kurssilla niitä käytetään paljolti kuten aliohjelmia. Aliohjelman ja metodin ero on siinä, että metodit liittyvät aina johonkin olioon, niissä on olioviite (C#/Java: this) mukana. Kyllä, luokkakin on olio. Aliohjelmalla taas tällaista sidosta ei ole, vaan se on tavallaan irrallinen muusta koodista, joskin sillä voi olla sivuvaikutuksia, jotka esim. muuttavat ohjelman muuttujien tilaa. Jos taas "aliohjelma" on sivuvaikutukseton ja palauttaa aina saman arvon samoilla parametreilla, sitä kutsutaan funktioksi. -ji
  17. Voiko koodia hyödyntää myös kaupallisesti?
    • Jos tarkoitat kurssin harjoitustyötä esim., niin toki voit pistää työsi WIndows Market Placeen myytäväksi. Riippuen kuinka paljon siitä on ohjaajan auttamaa, on syytä selvittää haluaako ohjaaja jonkinlaisen tekijänoikeudne myös. - VL
  18. Olisikohan tuohon bat-tiedoston tekemiseen mahdollista saada jotkut sellaiset rautalangasta väännetyt ohjeet, vaikkapa wikiin, niin että tyhmempikin ymmärtää?! Tuon PATH-polun luominen on kyllä selitetty, mutta ei sitä kuinka se .bat komento luodaan.
    • Avaa valitsemasi tekstieditori (Vaikka Notepad tai ConTEXT). Liitä tekstiksi teksti, joka on annettu laatikossa kohdassa, jossa csk.batista puhutaan. Tallenna tiedosto ja anna sille tallennettaessa csk.bat nimeksi. Valmis! - TM
    • .bat on samanlainen tiedosto tekstin puolesta kuin esim. .cs tiedosto. Ja tekstieditorilla kirjoitetaan tiedostoja. - VL

8. Ohjelmoinnin historiaa ja yhteys matematiikkaan

  1. Miten ohjelmointi on saanut alkunsa ja kuka sen "keksi?"
    • Ohjelmoitavat tietokoneet keksittiin 1940-luvulla. Merkittävä tekijä oli se, että alettiin tarvita ratkaisuja matemaattisiin ongelmiin, joita ei käsipelillä voinut ratkaista liiallisen työmäärän vuoksi. – AJK
    • Ohjelmoinnilla ei ole yhtä keksijää. Joitakin nimiä ovat Alan Turing, Kay McNulty?, Betty Jennings, Betty Snyder, Marlyn Wescoff, Fran Bilas, Ruth Lichterman, John Eckert, Grace Hopper, Maurice Wilkes, John von Neumann, ... lista jatkuu vielä pitkään :-) – AJK
    • Monasti sanotaan, että maailman ensimmäinen ohjelmoija oli Ada King (os. Byron), Lovelacen kreivitär. Hän laati 1800-luvulla ohjelmia Charles Babbagen suunnittelemalle analyyttiselle koneelle, jota ei koskaan oikeasti rakennettu. – AJK
  2. Millaista on ohjelmoijan työ?
    • Luovaa ongelmanratkaisua, koodin naputtamista itsekseen tietokoneella, asioiden pohtimista työkavereiden kanssa, projektin tilaajan vaatimusten ymmärtämistä, viestintää projektin osapuolten kesken (palavereissa, sähköpostilla...), ajoittaista turhautumista hankalan ongelman parissa, onnistumisen elämyksiä kun ongelmat ratkeaa ja homma etenee, uuden oppimista... (muut voinee jatkaa listaa :) -TJ
  3. Onko ohjemointitaidoista selkeää hyötyä muualla kuin it-alalla?
    • Ainakin esimerkiksi matemaatikoille ja tilastotieteilijöille ohjelmointitaidosta voi olla hyötyä, sillä laskujen laskeminen ja tilastojen käsittely on tehokkaampaa ohjelmilla, joita voi joutua kirjoittamaan itsekin. -TM
    • Tulevaisuudessa on vaikea keksiä alaa, millä ohjelmoinnilla ei olisi merkitystä. Kysyttyjä ovat ne ammattilaset, jotka osaavat hyvin jonkin alan ja sen soveltamisen ohjelmointiin. Mm. hyvinvointiteknologia on yksi tulevaisuudenb kulmakiviä ja siinä yhdistyy fysiologia ja siihen liittyvät erilaiset ohjelmistotuotteet (sykemittarit ovat varmaan tutuimpia). - VL
  4. Ovatko matematiikan sivuaineopinnot välttämättömiä jos pyrkii opiskelemaan ohjelmointia pidemmälle?

9. Työtehtävät, alan työnäkymät, ohjelmoijan työ

  1. Käytetäänkö alan yrityksissä yleensä windows-käyttöjärjestelmiä? Kannattaako opetella linuxin käyttöä alusta alaken?
    • Windows on edelleen paljon käytetty. Linux on kuitenkin suosittu alusta mm. webbipalvelimissa sekä sulautetuissa laitteissa, joten sen opettelu kannattaa myös. - TJ
    • ammattilaisen on aina syytä osata asioita laajemmin - VL
    • Noin puoliks offtopiccina että ei kannata fakkiutua käyttöjärjestelmä-käsitteeseen liikaa vaan tiedostaa ja tunnistaa eri systeemien edut ja haitat ja mahdollisuudet. Ikinä et tiedä mille käyttikselle lopulta teet hommia (paitsi jos päätät ettet tee kuin jollekin tietylle). -AJL
  2. Kuinka suuri tarve ohjelmoijille on työmarkkinoilla ja kuinka paljon pitää osata, jotta voi tehdä "koodarin" hommia? Minkälaisia muita töitä ohjelmointia osaavan on mahdollista saada?
  3. Millaiset työllisyysnäkymät ohjelmointialalla on?
  4. Kuinka hyvin yliopistotason ohjelmointi työllistää?
    • Vastaus kolmeen edelliseen kysymykseen: Tekemistä ja työtä on jatkuvasti enemmän kuin tekijöitä ja yrityksiä, tai edes tutkijoita ja tutkimuslaitoksia. -ji
  5. Tienaako ohjelmoija hyvin?

http://users.jyu.fi/~aleator/TIES343//images/ZI9VN.png

10. Muita

  1. Miksi kaikista tjt:n opiskelijoista pyritään tekemään koodareita?
    • tätä kai kukaan ei pyri tekemään (eikä edes usko siihen pystyvänsä :-). - VL
    • sen sijaan jokaisen joka tulee toimimaan alalla ammattilaisena, pitää ymmärtää mitä ohjelmonti on, mitkä ovat sen mahdollisuudet ja haasteet. - VL
    • kammotus olisi projektipäällikkö joka ei tiedä sitä mitä johtaa - VL
    • Kaikista tjt:n opiskelijoista ei pyritä tekemään koodareita, mutta jos on it-alalla, on hyvä tietää edes perusteet ohjelmoinnistakin. -TM
  2. Miksi laitosten välinen yhteistyö on niin vähäistä?
    • aika pitkälle henkilöristiriitoja - VL
    • historia, eli toinen laitos erkani matematiikan laitoksesta ja toinen yhteiskuntatieteellisestä tiedekunnasta - VL
    • varsin erilaiset toimintatavat - VL
    • eli ei mitään järkevää todellista syytä :-) - VL
  3. Jos komentorivi ja ihmevekotin tappelis, kumpi voittais?
    • Vesan mielipide taidetaan tietää :-). Molemmilla lienee paikkansa, mutta Windowsin Exploreria (resurssienhallinta tai mikä onkaan) on vaikeaa tai mahdotonta "ohjelmoida" eli hommien automatisointi jne. ei onnistu helposti. -AJL
  4. Onko Jyväskylässä "ohjelmointikerhoja" tai vastaavia, jos haluaa Harrastaa jatkossa ohjelmointia, vaikka tietokonepelit eivät ole lähellä sydäntä?
    • Geek Collision on nörttien kokoontuminen Jyväskylässä. Välillä myös ohjelmointitapahtumia.
    • Linkki (tietotekniikan opiskelijoiden ainejärjestö) ja linkkiläiset järjestävät laneja, joilla voi esitellä tuotoksiaan ja joilta saa myös vertaistukea. Taas keväällä oleva Instanssi on Linkin järjestämä aloittelijoillekin sopiva isompi LAN- ja demotapahtuma, jossa pääpaino on nimenomaan tietokoneella tekemisessä eikä pelaamisessa. Lisätietoja sen kanavalla IRCnetissä #instanssi, missä voi kysellä myös ohjelmointineuvoja ainakin demojen koodamiseen. -TM
  5. Miltä osin kurssilla tuotettu koodi on käyttökelpoista yliopisto-opintojen jälkeen esim. Jypeli-kirjastoa käyttävät ohjelmat?
    • Tuskin miltään osin... Kun ensimmäisiä ohjelmiaan katsoo joskus monen vuoden päästä, niin se on enimmäkseen aika kamalaa katsottavaa :) -TJ
    • Mutta toisaalta... Jos tekee jotakin joka kelpaa esim. MarketPlaceen?, niin Jypelin lisenssi ei tuota estä. Osa ajatuksista voi olla hyvinkin jalostuskelpoisia jatkossakin. Kielinen ja kirjastojen varaan ei voi tässä maailmassa laskea hirveän pitkiä ajanjaksoja. Ohj1-kurssinkin (tai sen vastineen) kielihistoria on 80-luvun alkupuolelta ollut: Pascal, Fortran, C, C++, Java, C#. Tärkeää onkin siksi ajatusmalli ei kieli.

Vielä lajittelemattomat

  1. Montako vanhaa vastaa vastaa vasta tehtyä vastaa? Ei tule mieleen kysyttävää :/
  2. Onko kuvan renderointi mahdollista rakentaa jollakin ohjelmointikielellä, olettaen, että on kirjastoja, joissa tiety(i)llä algoritmillä voitaisiin suurentaa kuvan jokainen pikseli kaksinkertaisesti, ilman, että kuvan laatu/kontrasti heikkenee (ollenkaan)? vrt. konvoluution käyttö.
  3. Joitain kaupallisia sovelluksia on, mutta ne(kään) eivät toimi ym tavalla. Mitä ongelmia tähän liittyy?
  4. Kuinka arvostettu tietotekniikan laitoksen peliohjelmointipuoli on yritysmaailmassa?
  5. Mitkä ovat ohjelmoinnin tärkeimmät osa-alueet?
  6. Kuinka tärkeää matematiikan osaaminen on ohjelmoinnissa?
  7. Tarvitaanko ohjelmoinnissa matemaattisia lahjoja?
  8. Miten opintoja kannattaisi viikon aikana rytmittää? Riittääkö näin kurssimateriaalien tutkiminen?
  9. Millä sellaisella elämän osa-alueella, vapaalla tai työkäytössä, jossa näin vielä ei ole näkisit ohjelmointia tai tietotekniikkaa yleisesti hyödynnettävän tulevaisuudessa?
  10. Mikä on pikanäppäin command promptissa tekstin kopioimiseen ja liittämiseen? Miten voin valita tekstiä command promptissa? ("maalata")
  11. Kuinka ajoissa harjoitustyötä kannattaa alkaa tekemään ja kuinka suuri osa kurssiarvosanaa se on?
  12. Mitä jos jonakin viikkona demot ei vain suju ja ärsyttää? Entä jos jättää demoja tekemättä mutta silti onnistuu tentissä?
  13. Mikä ohjelmoinnissa on tärkeintä?
    • I think that it's extraordinarily important that we in computer science keep fun in computing. --Alan J. Perlis (Lähde: SICP - kannattaa lukea, auttaa myös ymmärtämään matematiikan hyötyjä ohjelmoinnissa)
  14. Minkä muiden oppiaineiden opiskelu tukee/helpottaa ohjelmoinnin oppimista?
  15. Esim. algoritmit
  16. Vaikuttaako se, että onko käyttöjärjestelmä 64bittinen vai 32bittinen kurssin ohjelmoinnin kannalta?
  17. Olisin kiinnostunut tietämään ohjelmoinnin tulevaisuudesta ja trendeistä. Mitä esimerkiksi tarkoittaa seuraava (poimittu Wikipediasta): "Tietotekniikassa on odotettavissa rinnakkaisen käsittelyn huima yleistyminen, jolloin todennäköisesti ohjelmointikielten seuraavat edistysaskeleet liittyvät rinnakkaisuuden käyttöön. Tulevaisuudessa myös ohjelman ja laitteiston raja hämärtyy ohjelmointikielien ja laitteistokuvauskielten lähestyessä toisiaan, jolloin on mahdollista, että osa tuotetusta ohjelmasta kääntyy konekielelle, osa suorittimen mikrokoodiksi, osa porttilogiikaksi ja osa mikropiireiksi ( esimerkiksi ASIC tai FPGA). Esimerkiksi VHDL ja SystemC ovat kieliä, joilla kirjoitettu koodi on muunnettavissa laitteistoksi ja jälkimmäinen vastaa ominaisuuksiltaan C++-ohjelmointikieltä."
    • Lainaamasi teksti on tyypillistä markkinointihöpötystä, jossa on pieni totuuden siemen maustettuna hyvin vahvalla trendikuorutuksella. SystemC on toteutettu C++:lla, joten tavallaan se vastaa C++:aa. C++ on kuitenkin yleiskäyttöinen kieli, SystemC tapahtumapohjainen simulointikehys, joten vertailu on tyyliin omena ja appelsiini. Rinnakkaisuus ja sen hallinta, kuten myös hajautus ja sen hallinta, ovat tällä hetkellä taas tapetilla. On olemassa ohjelmointikieliä, joilla näiden "hallinta" on ollut yleisesti tuttuja kieliä edistyneempää, esim. Erlang. Suorittimen mikrokoodia ja ohjelmoitavia logiikoita on ohjelmoitu (eh...) vuosikymmeniä, joten mikä on tuossa tulevaisuutta? Hajautus ja rinnakkaisuus ovat lisääntyneet, mutta "uutta" on tavallaan se paine, että ne pitäisi saada yhtä helpoiksi toteuttaa kuin yhden säikeen, yhden prosessin, yhden tietokoneen ohjelmointi. Valitettavasti tämä ei ole mahdollista, koska kyse on tyystin erilaisista ajattelutavoista. Ohjelmoinni tulevaisuuden lähitrendit tulevat olemaan funktionaalinen ohjelmointi, joka antaa paljon apuja rinnakkaiseen ja hajautettuun ohjelmointiin, sekä sulautettu ohjelmointi (mikrokontrollerit, hajautus). Tämä ei kuitenkaan poista sitä seikkaa, että Wikipedian maitsemat tekniikat ovat huisan mielenkiintoisia ja uusia mahdollisuuksia avaavia. -ji
  18. Millä tapaa ohjelmointi tulee kehittymään tulevaisuudessa?
    • Lähitulevaisuudessa hyvin funktionaalisesti, kauemmasta tuskin kukaan osaa arvata. -ji
  19. Onko olemassa/olisiko mahdollista järjestää jonkinlainen reaalinen tai virtuaalinen kohtauspaikka, jossa voisi esimerkiksi yhdistää tavoitteensa/suunnitelmansa vaikkapa jonkin liikeidean suhteen?
  20. Mikä on päätavoite ohjelmoinnin opettamisessa (Jyväskylän Yliopistossa) verrattuna muihin Suomen korkeakouluihin?
  21. Onko jo tietoa, järjestetäänkö TIES343 myös ensi vuonna? Ilmeisesti viimeksi vuonna 2008... Miksi se on nimetty "Funktio-ohjelmointi" eikä "Funktionaalinen ohjelmointi"? Voisiko ainakin kurssin kuvauksessa mainita sanan "funktionaalinen" ja ehkä muita funktionaalisia kieliä jotta sen löytäisi korpista fiksummin, eikä pari viikkoa myöhässä vihdoin opinto-oppaan kokonaan lukiessa? :)
    • Kurssi on pidetty viimeksi syksyllä 2009 ja on nyt käynnissä. Ensi lukuvuonna järjestettävät kurssit päätetään loppukeväällä, mutta kyseinen kurssi on yleensä järjestetty joka toinen vuosi. - AJK
    • Funktio-ohjelmointi on parempi suomennos, mutta on totta, että kurssin tietoihin voisi kirjata myös avainsanan "funktionaalinen". Mutta se on kurssin nykyisen pitäjän Ville Tirrosen asia. - AJK