Syksyn 2025 luennot ja palautustilaisuudet
Syksyn 2025 luentojen rungot lisätään alle yleensä pari päivää ennen luentoa. Syksyn luennot pidetään maanantaisin klo 12-14 ja tiistaisin klo 14-16. Luennot ovat seurattavissa livenä osoitteesta: https://tim.pm/ohj1-luento. Suosittelemme asentamaan Zoom-sovelluksen, jos seuraat luentoa etänä. Kaikki nauhoitteet ja esimerkit julkaistaan tällä sivulla luennon jälkeen.
1. luento (syksy 2025): Yleiset tiedot; mitä ohjelmointi on?
- 📺 Katso tallenne (Lataa video, YouTube, Moniviestin) 📊 Kalvot. 🧾 Koodit.
- M: 1. Mitä ohjelmointi on?
- M: 2. Ensimmäinen C#-ohjelma
- Opintojakson rakenne, kotisivut ja pelisäännöt
- Monisteen täydennys: Mitä ohjelmointi on
2. luento (syksy 2025): Integroitu kehitysympäristö, graafinen C#-ohjelma
- Huom: Luento alkaa poikkeavasti tiistaina 2.9. klo 12.15
- 📺 Katso tallenne (Lataa video, YouTube, Moniviestin), 📊 Kalvot. 🧾 Koodit.
- M: 2. Ensimmäinen C#-ohjelma
- M: 4. Yksinkertainen graafinen C#-ohjelma
- M: 2.4 Kommentointi ja dokumentointi. Dokumentoi kaikki luokat ja aliohjelmat
- Tutustuttiin graafiseen kehitysympäristöön
- Jypeli-kirjasto ja sen asennus. Jypelin ohjeet Jypelin koodidokumentaatio.
3. luento (syksy 2025): Muuttujat
- 📺 Katso tallenne (Lataa video, YouTube, Moniviestin), 📊 Kalvot. 🧾 Koodit.
- M: 7. Muuttujat
- M: 26.1. -- 26.3 Binääriluvut: 10-järjestelmä ja 2-järjestelmä, lukujen esitys tietokoneessa
- Lue omatoimisesti ylläolevat monisteen luvut 26.1 -- 26.3.
4. luento (syksy 2025): Aliohjelmat
- 📺 Katso tallenne (Lataa video, YouTube, Moniviestin). 📊 Kalvot. 🧾 Koodit.
- M: 6. Aliohjelmat,
- Oletusnäkyvyys aliohjelmille on
private. Tällä kurssilla tehdään kuitenkin käytännössä ainapublic-aliohjelmia, jotenpublickirjoitetaan aliohjelmien (ja luokan) eteen aina manuaalisesti. Asiasta lisää Ohjelmointi 2 -kurssilla. - Huomaa, että komentoriviohjelmassa näkyvyysmääreen perään tulee toistaiseksi staattisuusmääre, eli
public static. Jypelissä taas riittää vainpublic
- Oletusnäkyvyys aliohjelmille on
5. luento (syksy 2025): muuttujat, operaattorit, aliohjelman paluuarvo
- 📺 Katso tallenne (Lataa video, YouTube, Moniviestin) 📊 Kalvot. 🧾 Koodit.
- M: 7. Muuttujat ja M: 7.7 Operaattorit
- M: 7.7.4 Aritmeettisten operaatioiden suoritusjärjestys
- M: 9. Aliohjelman paluuarvo
- Lukuisia esimerkkejä funktioista
6. luento (syksy 2025): Aliohjelman kuormittaminen, ehtolause
- 📺 Katso tallenne (Lataa video, YouTube, Moniviestin), 📊 Kalvot. 🧾 Koodit.
- M: 6.5 Aliohjelman kuormittaminen
- M: 13. Ehtolauseet
7. luento (syksy 2025): Testaaminen, ComTest
- 📺 Katso tallenne (Lataa video, YouTube, Moniviestin) 📊 Kalvot. 🧾 Koodit.
- Huom: Videossa on paikoin pausseja ja vaihtelevaa äänenlaatua johtuen salin vieressä olevista työmaan äänistä. Pahoittelen pausseja. -DZ
- Alkuhuomiona: M: 7.5. Muuttujien näkyvyys
- M: 11. Testaaminen
8. luento (syksy 2025): Harjoitustyö, Merkkijonot
- 📺 Katso tallenne (Lataa video, YouTube, Moniviestin) 📊 Kalvot. 🧾 Koodit.
- Harjoitustyön ohjeet
- M: 12. Merkkijonot
- Erityisesti 12.2.2. Merkkijonometodeja
9. luento (syksy 2025): Toistolauseet ja debuggaus
Luentotallenteita ei valitettavasti ole saatavilla luennoitsijan sairastumisen takia
- 📊 Kalvot. 🧾 Koodit.
- Katso viime kevään luennoista:
- Toistolauseesta:
- Luento 8, kohdat 00:26:00-01:08:59: Katso Moniviestimestä
- Monisteesta: 16. Toistorakenteet
- Debuggauksesta:
- Luento 9, kohdat 00:14:28-01:10:38: Katso Moniviestimestä
- Lisämateriaalia: Opiskele Debuggaus-materiaali ja lue monisteen Debuggaus-luku.
- Toistolauseesta:
10. luento (syksy 2025): Taulukot
Luentotallenteita ei valitettavasti ole saatavilla luennoitsijan sairastumisen takia
- 📊 Kalvot. 🧾 Koodit.
- Katso viime kevään luennoista:
- Taulukoista:
- Luento 9, kohdat 00:00:00-00:14:28: Katso Moniviestimestä
- Luento 10, kohdat 00:00:00-00:51:29: Katso Moniviestimestä
- Monisteesta: 15. Taulukot
- Taulukoista:
11. luento (syksy 2025): Tyyppimuunnokset, kertaus operaattoreista
- 📺 Katso tallenne (Lataa video, YouTube, Moniviestin) 📊 Kalvot. 🧾 Koodit.
- M: 7.7. Operaattorit
- M: 13.3. Vertailuoperaattorit
- M: 8.8. Tyyppimuunnokset
12. luento (syksy 2025): Taulukkoja ja silmukoita
Huom: Luento järjestetään vain etäluentona. Liity mukaan osoitteesta https://tim.pm/ohj1-luento.
- 📺 Katso tallenne (Lataa video, YouTube, Moniviestin) 📊 Kalvot. 🧾 Koodit.
- M: 16. Toistorakenteet
- M: 15. Taulukot
13. luento (syksy 2025): Hyödyllisiä tietorakenteita 1
- 📺 Katso tallenne (Lataa video, YouTube, Moniviestin) 📊 Kalvot. 🧾 Koodit.
- M: 12.4. Muokattavat merkkijonot
- M: 15.5. Moniulotteiset taulukot
- M: 23. Dynaamiset tietorakenteet
14. luento (syksy 2025): Hyödyllisiä tietorakenteita 2; harjoitustyön tekemisestä
Extramateriaali (syksy 2025): Harjoitustyö 2,5 tunnissa
Tämä on lisämateriaali eikä kuulu varsinaisen luentosarjan piiriin.
- 📺 Katso tallenne (YouTube) 🧾 Koodit (valmis peli).
- PS. Kokeilin parantaa äänen laatua erillisellä tekoälytyökalulla. Otan vastaan palautetta äänestä 😅 - Denis
15. luento (syksy 2025): C#-kielen tyyppijärjestelmästä
- 📺 Katso tallenne (Lataa video, YouTube, Moniviestin) 📊 Kalvot (lyhennetty), 📊 Kalvot (täydet). 🧾 Koodit.
- M: 8.3 Oliotietotyyppien ja alkeistietotyyppien ero
- Bonustietoa: (Erään laskutavan mukaan) x86-64 arkkitehtuurille käännetty ohjelma voi käyttää noin 600 erilaista reksiteriä
- Rekisterit jaetaan eri kategorioihin niiden käyttötavan mukaan (esimerkki x86-64 arkkitehtuurin rekistereistä kategorioittain
- Osa on ns. alirekisterejä, eli ne ovat osa isompaa rekisteriä
- Suuri osa on myös sellaisia, jotka ohjaavat prosessorin toimintaa
- Tavallinen x86-64 -arkkitehtuurille käännetty tietokoneohjelma käyttää lasketaan lopuksi noin 20-40 yleisrekisteriä ja niiden alirekistereitä, liukulukurekistereitä ja nykyään jotain vektorirekistereitä
- Oikeasti fyysisellä CPU-piirillä olevien rekisterien määrä on hyvinkin mallikohtainen
- Asiaa sekoittaa sekin, että x86-64 arkkitehtuurille on olemassa kaksi päätoteutusta, joilla on pieniä yksityiskohtaeroja: Intel x86-64 ja AMD64
16. luento (syksy 2025): switch-lause, attribuutit, rekursio
- 📺 Katso tallenne (Lataa video, YouTube, Moniviestin) 📊 Kalvot. 🧾 Koodit.
- M: 22. Rekursio
17. luento (syksy 2025): Kertaus, tietoa tentistä
Huom: Luento järjestetään vain etäluentona. Liity mukaan osoitteesta https://tim.pm/ohj1-luento.
- 📺 Katso tallenne (Lataa video, YouTube, Moniviestin).
- Ohj1 cheatsheet
- Viime vuosien tenttejä
Aikaisempien toteutusten materiaaleja
Alla olevat materiaalit saattavat sisältää vanhentunutta tietoa. Ne ovat kuitenkin tässä, jos haluat tutustua asiaan etupainotteisesti.
1. luento (kevät 2025): Alkubyrokratia, komentorivi, yksinkertaisin C#-ohjelma
- 📺 Katso tallenne YouTubessa. 📺 Katso tallenne Moniviestimessä. 📊 Kalvot. 🧾 Koodit.
- M: 1. Mitä ohjelmointi on?
- M: 2. Ensimmäinen C#-ohjelma
- Opintojakson rakenne, kotisivut ja pelisäännöt
- Komentorivi
- Aikaisempia harkkatöitä ja esimerkkipelejä
- Käsitekartta vastaavan Java-kurssin asioista, pätee suurimmalta osin tälläkin kurssilla
- Monisteen täydennys: Mitä ohjelmointi on
Miten luentojen mallikoodit ladataan omalle koneelle? Vastaavasti kuin demot, mutta gitlab-varaston osoite on https://gitlab.jyu.fi/tie/ohj1/2025k/esimerkit.git.
2. luento (kevät 2025): Integroitu kehitysympäristö, graafinen C#-ohjelma
- 📺 Katso tallenne YouTubessa. 📺 Katso tallenne Moniviestimessä. 📊 Kalvot. 🧾 Koodit.
- M: 2. Ensimmäinen C#-ohjelma
- M: 4. Yksinkertainen graafinen C#-ohjelma
- M: 2.4 Kommentointi ja dokumentointi. Dokumentoi kaikki luokat ja aliohjelmat
- Tutustuttiin graafiseen kehitysympäristöön
- Jypeli-kirjasto ja sen asennus. Jypelin ohjeet Jypelin koodidokumentaatio.
3. luento (kevät 2025): Lumiukko, aliohjelmat
- 📺 Katso tallenne YouTubessa. 📺 Katso tallenne Moniviestimessä. 📊 Kalvot. 🧾 Koodit.
- Katso kysymykset ja vastaukset (päivittyy hiljalleen). Uusiakin kysymyksiä saa esittää!
- M: 10. Ohjelmoijan työkaluja (IDE)
- Riderin asentaminen ja projektin luominen.
- Oletusnäkyvyys aliohjelmille on
private. Tällä kurssilla tehdään kuitenkin käytännössä ainapublic-aliohjelmia, jotenpublickirjoitetaan aliohjelmien (ja luokan) eteen aina manuaalisesti. Asiasta lisää Ohjelmointi 2 -kurssilla.
- M: 6. Aliohjelmat, M: 2.4 Kommentointi, erityisesti M: 2.4.1 Dokumentointi
- Dokumentaatiokommentit tästä eteenpäin oltava jokaisessa luokassa ja jokaisessa aliohjelmassa.
4. luento (kevät 2025): Muuttujat
- 📺 Katso tallenne YouTubessa. 📺 Katso tallenne Moniviestimessä. 📊 Kalvot. 🧾 Koodit.
- M: 6. Aliohjelmat
- M: 7. Muuttujat, M: 7.5 Muuttujien näkyvyys
- M: 26.1. -- 26.3 Binääriluvut: 10-järjestelmä ja 2-järjestelmä, lukujen esitys tietokoneessa
- Lue omatoimisesti ylläolevat monisteen luvut 26.1 -- 26.3.
5. luento (kevät 2025): muuttujat, operaattorit, funktio ja aliohjelman paluuarvo
- 📺 Katso tallenne YouTubessa. 📺 Katso tallenne Moniviestimessä. 📊 Kalvot. 🧾 Koodit.
- M: 7. Muuttujat ja M: 7.7 Operaattorit
- M: 7.7.4 Aritmeettisten operaatioiden suoritusjärjestys
- M: 9. Aliohjelman paluuarvo, eli funktiot
- Lukuisia esimerkkejä funktioista
6. luento (kevät 2025): Funktio, aliohjelman kuormittaminen, ehtolause
- 📺 Katso tallenne YouTubessa. 📺 Katso tallenne Moniviestimessä. 📊 Kalvot. 🧾 Koodit.
- M: 9. Aliohjelman paluuarvo, eli funktiot
- Katso myös aiempi vastaava Funktioita.cs
- M: 6.5 Aliohjelman kuormittaminen
- Vakioista: Muista, että vakiot merkitään
constavainsanalla. Vakioiden nimeäminen, esim.const int VARPAITA = 5;taiconst double OBJEKTIIVIN_POLTTOVALI_MM = 27.2; - M: 13. Ehtolauseet
- Harjoitustyön aikataulutus: Huomioi suunnitelman palauttamisen aikataulu (ks. etusivu).
7. luento (kevät 2025): Testaaminen, ComTest, merkkijonot
- 📺 Katso tallenne YouTubessa. 📺 Katso tallenne Moniviestimessä. 📊 Kalvot. 🧾 Koodit.
- M: [11. Testaaminen]
- M: 12. Merkkijonot
String-luokan MSDN-dokumentaatio- NimikirjaimetEsim.cs (*vuoden 2019 esimerkki)
8. luento (kevät 2025): Toistolauseet (for, while), ComTest, tyyppimuunnos
- 📺 Katso tallenne YouTubessa. 📺 Katso tallenne Moniviestimessä. 📊 Kalvot. 🧾 Koodit.
- M: 11. Testaaminen
- M: 16. Toistorakenteet
- Katso aikaisemman vuoden koodeista
- miten laitetaan lumiukko liikkeelle (mm. kontrollit, ajastin, painovoiman muutos)
- Tutki omatoimisesti miten käytetään Jypelin tasohyppelypeli-projektimallia, sekä miten lisätään kuva projektiin.
9. luento (kevät 2025): Debuggaus, taulukot
10. luento (kevät 2025): Taulukot, arvo- ja viitetyypit
11. luento (kevät 2025): Johdatus olio-ohjelmointiin (osa 1)
12. luento (kevät 2025): Johdatus olio-ohjelmointiin (osa 2)
13. luento (kevät 2024): StringBuilder, Matriisit
- 📺 Katso tallenne YouTubessa. 📺 Katso tallenne Moniviestimessä. 📊 Kalvot. 🧾 Koodit.
- M: 12.3 Muokattavat merkkijonot: StringBuilder
- (Lue myös StringBuilder-luokan MSDN-dokumentaatio)
String- jaStringBuilderin(tehokkuus-)erot merkkijonojen toistuvassa yhdistelyssä
- M: 15.5 Moniulotteiset taulukot
- M täydennykset: 2D-taulukot
14. luento (kevät 2024): Kokoelma-tietorakenteet: List, Dictionary. PelottavaPeli loppuun.
- 📺 Katso tallenne YouTubessa. 📺 Katso tallenne Moniviestimessä. 📊 Kalvot. 🧾 Koodit.
- M: 23 Dynaamiset tietorakenteet
- Vapaaehtoista lisälukemista: MjPilkkominen.cs (Kevät 2014)
15. luento (kevät 2024): Näkyvyysalueet, arvo- ja viitepohjaiset muuttujat
16. luento (kevät 2024): Funktion toteutusstrategiat, rekursio
17. luento (kevät 2024): Rekursio
- 📺 Katso tallenne YouTubessa. 📺 Katso tallenne Moniviestimessä. 📊 Kalvot. 🧾 Koodit.
- M: 22. Rekursio
- Eulerin ongelma nro 18. Luennolla näytetyn ratkaisun avulla ei ole kuitenkaan mahdollista ratkaista "isoja" puita (esim. 100 riviä, ks. Euler 67). Tehokkaan algoritmin tekeminen jätetään harjoitustehtäväksi.
- Valinnaista lisälukemista: Opiskele omatoimisesti / otetaan seuraavalla luennolla aikataulun mukaan
- SierpinskiKolmio.cs - versio jossa kolmiot piirretään viivoina
Canvas-oliolle. Tässä versiossa mukana myös liukusäädin jolla kolmiota voi zoomata - SierpinskiAnimaatio.cs - versio missä saa kolmioita piirrettyä yksi kerrallaan. Ohje: Enterillä saat lisää kolmioita, välilyönti puolittaa pienimmän kolmion koon.
- SierpinskiKolmio.cs - versio jossa kolmiot piirretään viivoina
- Valinnaista lisälukemista: Tutustu omatoimisesti viime vuoden mallikoodeihin: PallojaKarkuun.cs, Hienot räjähdykset käyttäen ExplosionSystem-luokkaa (muita efektejä ovat liekki (Flame), savu (Smoke), valo (Light)
18. luento (kevät 2024): Kertaus: SiirraMerkit-esimerkki
- 📺 Katso tallenne YouTubessa. 📺 Katso tallenne Moniviestimessä. 📊 Kalvot. 🧾 Koodit.
- Toiveita extra-luennoista/lisämateriaalista? Kirjaa ehdotuksesi tänne.
- Lue omatoimisesti:
These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.