Ohjelmointi 1 (C#, Jypeli), syksy 2017

Sivuille tulee vielä muutoksia ja joissakin kohti voi olla linkkejä vanhoihin kursseihin, näitä korjataan syyskuun alkuun mennessä.

Kurssin lopussa opiskelijan odotetaan osaavan:

  1. selittää rakenteisen ohjelmoinnin perusperiaatteet
  2. löytää yksinkertaiseen ongelmanratkaisuun sopivat algoritmit, tietotyypit ja tietorakenteet
  3. suunnitella ja toteuttaa pienimuotoisen ohjelman käyttäen C#-ohjelmointikieltä ja siihen tarkoitettuja työkaluja

2. Ajankohtaista

Jos jotakin ei löydy, katso lisämateriaali.

  • TortoiseSVN:n kanssa käytettävä osoite:
    • https://svn.cc.jyu.fi/srv/svn/ohj1-pelit/2017s/oma_kayttajatunnus/

VAROITUS: TIMillä on aika helppo työskennellä, mutta siitä huolimatta tehtäviä on opeteltava tekemään myös oikeilla työkaluilla (mm. Visual Studio tai Xamarin)! Erityisesti debuggeria on osattava käyttää heti alusta alkaen.

Normaali tapa suorittaa:

Takaportti mikäli tenttiä ei läpäisty:

  • mikäli ei läpäise kurssin tenttiä (tai ei osallistu siihen), voi kurssilta silti saada arvolauseen 1/5 edellyttäen että KAIKKI seuraavat ehdot täyttyvät:
    • demoista on tehty vähintään 5 pistettä/kerta ja joka kerralla vähintään kaksi merkityistä tähtitehtävistä
    • debuggausnäyte hyväksytty
    • harjoitustyö on melkein valmis ja ohjaajien suullisessa kuulustelussa hyväksymä

Etäopiskelu:

Erikoissuorittaminen (lukiolaisten 3op ohj1 tai ohj2 tehty tai aikaisempi kokemus tai 3 op laajentaminen 6 op):

  • jos Ohjelmointi 2 on jo suoritettu ja haluaa Ohj1-arvolauseen
    1. Jos AHOT ja HOPS käytänteillä on sovittu että voi aloittaa Ohj2 kurssilla ja ohj1 ei ole yritettykään: merkitään Ohj1 kurssista sama arvolause kun Ohj2-kurssista. Pitää tehdä Ohj1 harjoitustyö ja siitä suullinen kuulustelu, samoin kaikki tiedon esittämiseen (mm binääriluvut) liittyvät demotehtävät pitää esittää tehtyinä.
    2. jos taas kyse on siitä, että on Ohj2:sta saanut paremman arvolauseen kuin Ohj1:stä ja haluaa Ohj1:stä korottaa, niin normaali Ohj1 tentti (ilman demopisteitä). Ja tenttiohjesäännön mukaan tämäkin vuoden sisällä Ohj1 suorituksesta.
  • muissa tapauksissa jos on VAHVASTI aikaisempaa kokemusta, niin suoritustapa voi olla HT+Tentti (kysyttävä ohjaajilta erikseen)
  • mikäli aikaisemmalta vuodelta on tehty tentti ja demot, niin kurssin voi suorittaa loppuun sen vuoden tentin+demojen antamalla arvolauseella tekemällä harkan loppuun ja debug-näytten mikäli se puuttuu.
  • jos olet suosittanut lukiolaisten 3 op version, sinun tulee tehdä:
    • kannattaa kerrata demo 1-7 muiden mukana tai itsenäisesti
      • kopioi kesän demo1 syksyn demo vastauksiin, muut tulevat automaattisesti
    • debuggausnäyte
    • demokerrat 8--11 (ilmoita opettajalle demojen 1-7 tehtyjen summa ja vuosi)
    • harjoitustyö
    • tentti
    • katso tarkempi kuvaus

4. Tärkeät linkit

6. Kurssin opiskelusta

Suositeltava tapa opiskella:

  • Ma luennolla jaetaan seuraavan viikon demotehtävät. Tehtäviin kannattaa tutustua jo heti saman tien ja jopa yrittää niiden tekemistä ennen ti luentoa. Näin on paremmin motivaatiota luennolla, kun tietää mitä pitää oppia.
  • Pääteohjauksissa tehdään alkuvaiheessa erillisiä pääteohjaustehtäviä, joissa opiskellaan teknisiä asioita, jotka ovat hyödyksi demoja ja harjoitustyötä tehtäessä. Jos aikaa jää (tai voi käydä toisessakin pääteohjausryhmässä), voi tehdä demotehtäviä ja saada niihin alkuunpääsyohjeita. Loppukurssista pääteohjauksissa tehdään vain demoja ja harjoitustyötä.
  • Kun demot on palautettu, kannattaa käydä demonpalautuksissa katsomassa mitä "olisi pitänyt" tehdä. Kun jotakin on tosissaan yrittänyt, on vastaanottavaisempi sille, mitä muuta saman tehtävän tiimoilta olisi pitänyt miettiä. Se mikä itsestä tuntuu oikealta, ei välttämättä olekaan paras ratkaisu.
  • Ville-tehtäviä kannattaa tehdä jopa etukäteen ja näin taas nähdä luentoja varten mitä pitäisi oppia. Tehtäviä voi sitten tehdä uudelleen demoja varten.
  • Luentomonistetta kannattaa lukea itsenäisesti etupainotteisesti ja näin saada taas pohjaa luentojen asialle.
  • Harjoitustyötä kannattaa tehdä etupainotteisesti, niin että se olisi valmis joulukuun alussa. Liian myöhäinen aloitus johtaa kohtuuttomaan kuormaan. HT ei ole pikkujuttu aloittelijalle.
  • Kun on ongelmia pitää kysyä. Kanavia ovat kurssin postilistat, pääteohjaukset, suora kontakti johonkin kurssin opettajista sähköpostilla tai hihasta vetämällä. Ja tietysti luennolla kysymällä saman ongelman saa ratkaistuksi koko joukon puolesta.
  • Koe onnistumisen elämyksiä. Ole kuitenkin valmis oppimaan tekemään vielä paremmin!

8. Edellisten kurssien pelejä

xxxHEXJSONxxx7b22696e666f223a20224e6f6e65222c2022696672616d65223a202254727565222c2022757365725072696e74223a202246616c7365222c20227461736b4944457874223a20223131373334352e566964656f312e57314b4f4550644f52484156222c202269735175657374696f6e223a2022222c202270726576696577223a202246616c7365222c20226f70656e223a202254727565222c2022646f4c617a79223a202246616c7365222c2022666f6f746572223a20224f686a656c6d6f696e746931202d6b75727373696c6c612074656874796a5c75303065342070656c656a5c7530306534206b65765c75303065345c75303065346c6c5c75303065342032303134222c20227769647468223a2022353630222c202266696c65223a20222f2f7777772e796f75747562652e636f6d2f656d6265642f7a4634367a62547864504d222c2022686569676874223a2022333135222c2022616e6f6e796d6f7573223a202246616c7365222c2022757365725f6964223a2022416e6f6e796d6f7573222c20226c617a79223a202246616c7365222c20227461736b4944223a20223131373334352e566964656f31222c2022746172676574466f726d6174223a20226c61746578227d
xxxHEXJSONxxx7b22696e666f223a20224e6f6e65222c2022696672616d65223a202254727565222c2022757365725072696e74223a202246616c7365222c20227461736b4944457874223a20223131373334352e566964656f332e754c6773354c466b515a454e222c202269735175657374696f6e223a2022222c202270726576696577223a202246616c7365222c20226f70656e223a202254727565222c2022646f4c617a79223a202246616c7365222c2022666f6f746572223a20224f686a656c6d6f696e746931202d6b75727373696c6c612074656874796a5c75303065342070656c656a5c75303065342073796b73796c6c5c75303065342032303134222c20227769647468223a2022353630222c202266696c65223a202268747470733a2f2f7777772e796f75747562652e636f6d2f77617463683f763d6e74494c6964786e633234222c2022686569676874223a2022333135222c2022616e6f6e796d6f7573223a202246616c7365222c2022757365725f6964223a2022416e6f6e796d6f7573222c20226c617a79223a202246616c7365222c20227461736b4944223a20223131373334352e566964656f33222c2022746172676574466f726d6174223a20226c61746578227d
xxxHEXJSONxxx7b22696e666f223a20224e6f6e65222c2022696672616d65223a202254727565222c2022757365725072696e74223a202246616c7365222c20227461736b4944457874223a20223131373334352e566964656f322e503533396247316264306458222c202269735175657374696f6e223a2022222c202270726576696577223a202246616c7365222c20226f70656e223a202254727565222c2022646f4c617a79223a202246616c7365222c2022666f6f746572223a20224f686a656c6d6f696e746931202d6b75727373696c6c612074656874796a5c75303065342070656c656a5c7530306534206b65765c75303065345c75303065346c6c5c75303065342032303135222c20227769647468223a2022353630222c202266696c65223a20222f2f7777772e796f75747562652e636f6d2f656d6265642f79727953477a5034537641222c2022686569676874223a2022333135222c2022616e6f6e796d6f7573223a202246616c7365222c2022757365725f6964223a2022416e6f6e796d6f7573222c20226c617a79223a202246616c7365222c20227461736b4944223a20223131373334352e566964656f32222c2022746172676574466f726d6174223a20226c61746578227d