What you need to do to pass this course

  • At least 40% of the weekly assignments (demot in Finnish) and at least two per week.
  • Pass the debugging test. This test is done during the supervised demo sessions by the end of exercise round 8.
  • Complete the course assignment. This is an extensive programming project which will strengthen your programming skills and brings together the main points taught during this course. Usually students make a small game using Visual Studio and the Jypeli physics library.
  • Pass the final exam.

About the translations

Note! most of the links will take you to pages that are all in Finnish because we have just started to translate this course into English and haven't got that far yet. If you read an English page and all of a sudden there is Finnish among the English please send an email to the teacher so that we can fix it fast. If you come across some grammatical errors or if you don't understand what the English sentence is trying to convey, please leave a comment for that paragraph. You can add comment and notes by clicking the blue line that appears at the left side of the paragraph when you hover over it with a mouse. The comments will appear at the right side of the paragraph. Make the comments seeable by everyone so that we can read them and fix the text.

How to get to the English pages

If you end up on a Finnish page and want to know if there is a translation available of it check the top right corner of the menu bar and see if there is en - fi links there. If you click the en link you get to the English version of this page. If the link is there but you cannot access it the translation of this page is not finished yet and you can try it again later.

Image
Image

Ohjelmointi 1 (C#, Jypeli), syksy 2024

TIMin käytöstä, avaa ja lue tämä jos et ole TIMin kanssa tuttu.

Jos jossakin on vielä vahingossa vuoden 2023 tai muuten rikkinäisiä linkkejä, niin ilmoita niistä kurssin keskustelusivulla tai kommentilla suoraan rikkinäisen linkin lohkon vieressä.

Please to interact with this component.

Calendar

Miten saan kurssin kalenterin omaan kalenteriini ja puhelimeeni?


Työskentelytavat = lähi/etäopetus

Kurssin viikkorytmi koostuu luennoista, viikkotehtävistä (demoista), (pääte)ohjauksista sekä demojen palautuksista. Sitten on vielä harjoitustyö. Kaikkia noita voidaan tehdä lähi- tai etäopiskeluna. Kaikkeen tähän on syytä varata vähintään 15 tuntia/viikko.

  • Luennot ovat ma ja ti auditoriossa. Luentoja voi seurata myös Zoomilla tai katsoa niitä jälkeenpäin videoilta.
  • (Pääte)ohjaukset järjestetään Agoran mikroluokissa ja niissä harjoitellaan tekniikan käyttöä ja kun viikon tehtävät on tehty, voi myös tehdä demoja. Ohjauksissa on paikalla ohjaajia ja niissä on mahdollista kysellä apua tekniikasta, demoista ja harjoitustyöstä. Ohjauksia pidetään myös Zoomissa etäversioina. Alkukurssin ohjauksissa on pakollisia tekniikkatehtäviä.
  • Demoja (eli viikkotehtäviä) tehdään periaatteessa omalla ajalla, mutta niitä voi tehdä myös ohjauksissa sen jälkeen kun tekniikkatehtävät on tehty.
  • Demojen palautuksissa (maanantaisin 2 valinnaista ryhmää, ei ole pakko käydä samassa ryhmässä koko kurssin ajan) katsotaan "oikeat" vastaukset ja sitten omat vastaukset pitää korjata oikeiksi. Kuten luennot, demojen käsittely pidetään auditoriossa ja voi osallistua Zoomilla tai katsoa videoilta.
  • Harjoitustyötä tehdään yksin tai pienryhmissä omaan tahtiin noudattaen annettua aikataulua. Aikataulun puitteissa työtä näytetään ohjaajille paikanpäällä tai Zoomissa etänä. Palauttamalla HT vaiheita ajoissa, saa Bonus-pisteitä.

Opetustapahtumiin ilmoittaudutaan ensimmäisen luennon jälkeen siellä annettujen ohjeiden mukaan.

Opiskelusta

  • tee ajatuksen kanssa demojen harjoittelutehtäviä
  • lue kerran luentomoniste läpi niin tiedät missä on mitäkin
  • lue ennen luentoa monisteesta aina vastaava kohta (merkitty luentojen sivulle)
  • KYSY kurssin keskustelussa
  • jos epäselviä demotehtäviä, laita kommentti viereen
  • bookmarkkaa (vasen yläkulma ja klemmari) itsellesi tärkeät sivut
  • älä seuraa jokaista linkkiä
  • jos luennolla ei näe, voi sielläkin pitää Zoomin auki
  • ÄLÄ käytä Googlea tai tekoälyä!
# aikajana
Tiedot päivittyvät tunnin välein. Viimeksi:

Please to interact with this component.

{}


Viikko 36
1.9.
37
8.9.
38
15.9.
39
22.9.
40
29.9.
41
6.10.
42
13.10.
43
20.10.
44
27.10.
45
3.11.
46
10.11.
47
17.11.
48
24.11.
49
1.12.
Luennot 1&2 3&4 5&6 7&8 9&10 11&12 13&14 15&16 17&18 19&20 21&22 23&24
Tärkeät ti: bonus
pe: HT1
Väli-
kysely
pe: Debug-
näyte

ti: bonus
pe: HT2
ti: bonus
pe: HT3
Tentti
pe: 29.11
dh 1 2 3 4 5 6 7 8 9 10 11 Summa %
Demot

Please to interact with this component.

{}

Please to interact with this component.

{}

Please to interact with this component.

{}

Please to interact with this component.

{}

Please to interact with this component.

{}

Please to interact with this component.

{}

Please to interact with this component.

{}

Please to interact with this component.

{}

Please to interact with this component.

{}

Please to interact with this component.

{}

Please to interact with this component.

{}

Please to interact with this component.

{}

Please to interact with this component.

{}

Please to interact with this component.

{}

Korjattu

Please to interact with this component.

{}

Please to interact with this component.

{}

Please to interact with this component.

{}

Please to interact with this component.

{}

Please to interact with this component.

{}

Please to interact with this component.

{}

Please to interact with this component.

{}

Please to interact with this component.

{}

Please to interact with this component.

{}

Please to interact with this component.

{}

Please to interact with this component.

{}

Tunnit

Please to interact with this component.

{}

Please to interact with this component.

{}

Please to interact with this component.

{}

Please to interact with this component.

{}

Please to interact with this component.

{}

Please to interact with this component.

{}

Please to interact with this component.

{}

Please to interact with this component.

{}

Please to interact with this component.

{}

Please to interact with this component.

{}

Please to interact with this component.

{}

Please to interact with this component.

{}

Please to interact with this component.

{}

Please to interact with this component.

{}

Luentojen ja demonpalautusten aluksi aina osoitteeseen : tim.pm/ohj1 ja sieltä mainittuun Zoomiin.
Ohjausten (=pääteohjaus) aluksi avaa aina ko. viikon pääteohjaussivu yllä olevasta menusta.

Kurssista

# kuva1
  • Kurssi Sisussa
  • Kurssin työmäärä keskimääräiselle opiskelijalle:
    • 6 op = n. 14.5 tuntia/vko!

Open plugin

  • kurssiin voi liittää kaksi lisäkurssia asiaa laajentavilla harjoitustöillä (yht max 5 p)
  • In English: Course synopsis (short description of contents and objectives)

Pääaineen (DI, mutta pätee muihinkin) tavoitteet:

  1. Riittävä ymmärrys nykyisestä IT:stä ja sen toteutuksesta
  2. Valmius jatkuvaan oppimiseen ja kehittymiseen
  3. Ongelmanratkaisutaito
  4. Yhteistyö sidostahojen kanssa, projektimainen työskentely
  5. Tarve- ja käyttäjälähtöisyys
  6. Kyky elää perinnejärjestelmien, epätäydellisyyden ja epävarmuuden kanssa
  7. Kyky vastata siitä, että mitä tekee on oikein ja toimivaa (VL lisäys)

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

Kurssin aikana sinun on tarkoitus oppia seuraavia asioita (osaamisen taso sovelletulla Bloomin asteikolla: 1=muistaa, 2=ymmärtää, 3=osaa soveltaa, 4=osaa analysoida, 5=osaa arvioida, 6=osaa luoda)

Siirrä alla osaamisesi (punainen pallukka) aina sitä vastaavalle kohdalle. Keltainen ruutu on tavoite johon tulisi päästä kurssin lopuksi. Ruksaa ensin muokkaa.

# goaltable2

Please to interact with this component.

Osattava asia123456
Rakenteisen ohjelmoinnin perusajatus o
Algoritminen ajattelu o
C#-kielen perusteet o
Peräkkäisyys o
Muuttujat o
Aliohjelmat ja funktiot o
Parametrin välitys o
Ehtolauseet o
Silmukat o
Taulukot o
Tiedostot ohjelmasta käytettynä o
Olioiden käyttö o
Yksikkötestit (TDD) o
Debuggerin käyttö o
Lukujärjestelmät, ASCII-koodi o
Rekursio o
Dokumentointi ja sen lukeminen o

Sisussa ilmoittautuminen

# miten-aloitan

Miten aloitan

  1. Ilmoittaudu Sisussa kurssille (syksyn luento-opetus, ks ohje edellä), muihin ryhmiin ei kannata ilmoittautua Sisussa, sillä ei ole kurssin kannalta merkitystä. Ryhmiin ilmoittaudutaan aikanaan TIMissä myöhemmin tulevilla ohjeilla. Luennoille voit ilmoittautua Sisussa, niin saat ne kalenteriin ja näin tulee säännöllinen rytmi. Ryhmistä:

    • ilmoittaudu molempiin luentoryhmiin Luento 1 ja Luento 2. Luennot ovat auditoriosssa, mutta niitä voi seurata myös Zoomilla (salasana ohj2) ja niistä tulee videotallenne. Jos katsot vain videotallenteen, ei välttämättä luennoillekaan kannata ilmoittautua Sisussa.
    • demoryhmistä valitset yhden (siis aikanaan TIMissä kunkin viikon demotehtävien sivulla), voit käydä eri viikoilla eri ryhmissä
    • pääteohjausryhmistä 1-n kpl sen mukaan paljonko tunnet tarvitsevasi apua (yleensä 1 tai 2 viikossa). Valinta tehdään kullekin viikolle erikseen TIMissä ko. viikon (pääte)ohjausdokumentissa.
  2. vastaa esitietokyselyyn

  3. tee esi-demotehtävät. Erityisesti Robotti on extrahyödyllinen.

  4. lataa kurssin työkalut

  5. Lähde heti alusta sillä asenteella, että opettelet ymmärtämään, et oppimaan ulkoa satunnaisia komentoja.

# opiskelu
# tableForm_table

Please to interact with this component.

# posti1


Kurssin 1. sähköposti. Avaa tästä jos et ole jo lukenut.

# kurssinaluksi

Mitä teen kun kurssi alkaa

Seuraava koskee sekä lähi- että etäopiskelijoita:

  1. Lue luentomonistetta ainakin lukuun 2.3 asti ensimmäisellä kertaa. Muilla kerroilla ennen luentoa vähintään luennoissa M: mainitut kohdat ja merkitse niitä luetuksi klikailemalla punaisia pois.
  2. Osallistu tai katso 1. viikon luennot: Livekatsojat (paikalla tai Zoom): Aloita aina kirjautumalla luennolle linkistä tim.pm/ohj1 ja sieltä klikkaa Zoom-linkkiä ja siirry kyseisen luennon linkistä itse luennon TIM-sivulle.
    Etäkatsojat: Ota yläreunan menusta Luennot-kohdasta aina kukin luento.
  3. Tee 1. viikon pääteohjaukset
  4. Tee 1. viikon demotehtävät ma klo 11:00 mennessä!
  5. Osallistu tai katso 1. viikon demojen palautukset
  6. Korjaa omat tehtäväsi niin, että Tauno ja T1-T6 tuottavat vähintään 7p.
  7. Jatka kohdasta 1. seuraavan viikon tiedoilla.
  8. Tee harjoitustyötä muiden vaiheiden ohella sopivasti.
# viikkorytmi

Open JS-frame

Ohjelmointi 1 -kurssin viikkorytmi joka toistuu 11 viikon ajan

 

# kurssipvm

Kurssin tärkeät päivämäärät

Jos pvm perässä on (!), niin kyseessä on eksakti päivämäärä. Muut ovat takarajoja, joissa asia kannattaa hoitaa jo ennen takarajaa. HT1-HT3 ohjaus/näyttöajat varataan tuntiopettajilta.

# tarkeatpvm

Open plugin

(*) Periaatteessa HT pitäisi olla valmis pe pe 22.11., mutta koska ohjausvoimat ovat rajallisia, joudumme venyttämään sen näyttöä/tarkastusta pidemmälle jopa joulukuulle asti.

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

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

# suorittamisesta

Kurssin suorittamisesta

Sisältö: C#-kielen alkeet, rakenteisen ohjelmoinnin perusteet. Kurssin työmäärä 14.5 t/viikko

Kurssin arvolause tulee summasta demohyvitykset + tentin pisteet + HT bonukset. Tentin max pisteet ovat 24. Arvolause 5: summa 26,..., 1: summa 12. Katso myös tentti.

Normaali tapa suorittaa:

# takaportti

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

  • mikäli ei läpäise kurssin tenttiä (tai ei osallistu siihen, tähän tarvitsee luvan ohjaajilta), 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, joista joka kerralla vähintään kaksi merkityistä tähtitehtävistä
    • debuggausnäyte hyväksytty
    • harjoitustyö on melkein valmis ja ohjaajien suullisessa kuulustelussa hyväksymä
    • on kurssilla 1. kertaa

Etäopiskelu:

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

# yhteystiedot

Yhteystiedot

Tärkeät linkit

Tarkemmin ohjelmointiin liittyvät

Kurssilla käytettävät työkalut

Kurssin opiskelusta

Suositeltava tapa opiskella:

  • Ma julkistetaan 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, keskustelusivu, pääteohjaukset, luennoilla luentoseinä, 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!

Edellisten kurssien pelejä

# Video1

Ohjelmointi1 -kurssilla tehtyjä pelejä keväällä 2014

# Video3

Ohjelmointi1 -kurssilla tehtyjä pelejä syksyllä 2014

# Video2

Ohjelmointi1 -kurssilla tehtyjä pelejä keväällä 2015

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