Ohjelmointi 1, C#, s 2023 Luennot
Please
Liitä tästä luentoja omaan kalenteriisi.
Luennot ovat alempana käänteisessä aikajärjestyksessä. Yleensä kaksi tulevaa odottamassa ja sen alapuolella jo pidetyt luennot ja vielä sen alapuolella edellisenä vuonna pidetyt luennot. Kunkin luennon kohdalla on tieto luennolla käsitellyistä asioista sekä linkkejä mahdollisiin ohjelmalistauksiin joita luennolle/luennolla on tehty. Ja aina kunkin luennon kohdan lopussa linkki luentojen videointeihin.
Ennen kutakin luentoa pitäisi lukea luennon kohdalla M: merkitty luentomonisteen luku/aliluku.
- vuosien 2011-2021 videohakemistot
- Videoiden hakemisto aihepiireittäin 2021
- Videoiden hakemisto aihepiireittäin 2020
- Videoiden hakemisto aihepiireittäin 2019
- Videoiden hakemisto aihepiireittäin 2018
- Videoiden hakemisto aihepiireittäin 2017
- Videoiden hakemisto aihepiireittäin 2016
- Videoiden hakemisto aihepiireittäin 2015
- Videoiden hakemisto aihepiireittäin 2014
- Videoiden hakemisto aihepiireittäin 2013
- Videoiden hakemisto aihepiireittäin syksy 2012
- Videoiden hakemisto aihepiireittäin syksy 2011
Syksyn 2023 aikataulu ja aiheet sekä videot
- tarkista että luennon jälkeen videon osoitteessa on 2023s (ei siis 2022?), silloin video on päivittynyt uudeksi. Yleensä aikaisintaan 2 tuntia ko. tapahtuman jälkeen. Jos vuosi on väärin, korjaa oikea siihen tilalle. Ennen luentojen pitämistä videolinkeissä on edellisen vuoden vastaava luento.
- videon nimi on muotoa luentoXXy.mp4, jossa XX on luennon numero, esim 01 ja y=a jos ensimmäinen luennon puolisko (tai luento pidetty kokonaan yhteen) ja y=b jos luennon toinen puolisko. Videon mobiiliversio on nimellä luentoXXy_m.mp4.
Tulossa
24. luento: ti 21.11.2023 klo 14:15-16:00: Graafisen käyttöliittymän tekeminen
Katsotaan yhdessä videolta ja Vesa vastailee kysymyksiin
- Autolaskuri
- Katso luento 24 ohjeet
- MainPage.xaml.cs - varsinainen ohjelma
- MainPage.xaml - ohjelman ulkoasu
- AutolaskuriProp
- MainPage.xaml.cs - versio, jossa KA ja HA propertyinä
- MainPage.xaml - ulkoasun kuvaus
- AutolaskuriBind
- MainPage.xaml.cs - versio, jossa laskurit liitettävinä (bind) komponetteina
- MainPage.xaml - ulkoasun kuvaus
- BindLaskuri.cs - laskuri joka voidaan liittää (bind)
- AutolaskuriAndroid
- Xamarin forms
- MainActivity.cs - varsinainen ohjelma
- activity_main.xml - ulkoasu (vielä todella vaatimaton)
- Tuomarikone
- Testisivu - Silverlightilla tehty testisivu (toimii vain Windows ja sielläkin IE).
- MainPage.xaml.cs - SL-version ohjelma
- MainPage.xaml - SL-version ulkoasu
- MainPage.xaml.cs - WP7-ohjelma
- MainPage.xaml - WP7-ulkoasu
- CycloLite
- taulukonharjoittelu
- Luennolle tehdyt koodit versionhallinnassa -
- Luennon koodit versionhallinnassa
- 24. luento videona: Osa 1 MP4 alkuperäinen
23. luento: ma 20.11.2023 klo 12:15-14:00: Kertausluento, Luentokysymyksiä
- luento pidetään TIMin luentokyselyillä
- luennolle tarvitaan tietokone/täppäri/älypuhelin, koittakaa pariutua
- Javan ja C#:in vertailua
- Katso luento 23 pohja
- Pallot.cs - alkuperäinen versio
- attribuutien poistoa - kurssin taidoilla
- Pallot.cs - käytetään ref-parametrin välitystä (erona alkuperäiseen)
- Luennolle tehdyt koodit versionhallinnassa
- Pallot.cs - alkuperäinen versio
- 23. luento videona: Osa 1 MP4 alkuperäinen,
- luentoseinä
Pidetty
22. luento: ti 14.11.2023 klo 14:15-16:00: Liukulukujen esittäminen tietokoneessa, kertausta
- M: 26.6 Liukuluku (floating-point)
- Reaalilukujen esittäminen:
- intel16.txt - reaaliluvut Intelin prosesorissa
- desimaal.c - c-ohjelma, jolla voidaa tulostaa lukujen esitysmuoto
- Tarkkuus.cs - esimerkki miten reaaliluvut eivät ole tarkkoja
- esimerkit itse ajettavana koodina
- int-, long-, float- ja double-lukujen esityskyvyn rajat
- IntDoubleYms.cs
- Luennolle tehdyt koodit versionhallinnassa -
- Luennon koodit versionhallinnassa
- 22. luento videona: MP4 alkuperäinen (TIMin kehittäminen)
- Vuoden 2019 22. luento videona: MP4 alkuperäinen (liukuluvuista tarkemmin)
- luentoseinä
linkki luentoseinään ei muuten toimi, tarjoaa vuoden 2020 vastaavan luennon luentoseinää
VL: en ole noita jaksaanut vaihdella jos ei ole tullut hyviä kysymyksiä. luennolla 22 ei tullut yhtään.
—21. luento: ma 13.11.2023 klo 12:15-14:00: Kertausta - Luentokyselyt
- ottakaa laitteet mukaan (kannettava, tabletti, älykännykkä)
- Kalevalasta pitää selvittää kunkin säkeen kolme 1. vokaalia
- Siirra.cs - luennolle tehty versio, jossa InSitu -kysymykset
- Siirra.cs - luennolla tehty versio, jossa jossa pelkkä vastaus
- Luennolle tehdyt koodit versionhallinnassa -
- Luennon koodit versionhallinnassa
- 21. luento videona: Osa 1 MP4 alkuperäinen
- luentoseinä
20. luento: ti 7.11.2023 klo 14:15-16:00: Poikkeukset, Delegaatti ja Lambda-lauseke, ohjelman suoritusaika
- Poistot.cs - esimerkki delegaatista ja Lambda-lausekkeesta
- M: 24. Poikkeukset
Idea:
try { // poikkeusalttiit lauseet } catch(Poikkeusluokka p) { // lauseet poikkeuksen sattuessa } finally { // Lauseet jotka tehdään aina }
- TiedostoIsoksi.cs - poikkeus mikäli tiedostoa ei ole.
- Poikkeus.cs - esimerkkissä ComTestissä
#THROWS
, eli ko. testirivin PITÄÄ heittää poikkeus tai testi epäonnistuu jos se ei heitä. Tällä on dokumentoitu käytös noissa kahdessa tapauksessa. - finally
- Maarat.cs - käytiin läpi
- muita nopeustestejä
- Demo 9 G1-2 tehtävän erilaisia ratkaisuvaihtoehtoja ja miten kauan mikäkin veisi suoritusaikaa mm KuvaVertailua.cs
- Luennolle tehdyt koodit versionhallinnassa
- Luennon koodit versionhallinnassa
- 20. luento videona: Osa 1 MP4 alkuperäinen
- luentoseinä
19. luento: ma 6.11.2023 klo 12:15-14:00: Rekursio
- M: 22. Rekursio
- Kertoma - esimerkki jossa määritelmä voidaan antaa itsensä avulla (=rekursiivinen määritelmä)
- Rekursion idea ja kertoma
- Rekursio.cs - luennon versio rekursiivisena ja iteratiivisena (silmukalla, ei saa laskea oikeasti muuten)
- kuvioita rekursion avulla:
- Droste Effect (1, 2)
- Sierpinskin kolmio ja muut fraktaalit
- Mandelbrotin joukko, Kochin lumihiutale
- SierpinskiKolmio.cs - luentomonisteen versio
- SierpinskiKolmio2.cs - versio jossa kolmiot piirretään heti Jypelin olioilla
- SierpinskiKolmio3.cs - versio jossa kolmiot piirretään viivoina Canvakselle ja jossa voi animoida syntyä
- SierpinskiMatto.cs
- Wikipedia: Sierpinski triangle, kuva eräästä toteutuksesta
- Haskell esimerkki rekursiosta
- Luennolle tehdyt koodit versionhallinnassa
- Luennon koodit versionhallinnassa
- 19. luento videona: Osa 1 MP4 alkuperäinen
- luentoseinä
18. luento: ti 31.10.2023 klo 14:15-16:00: Tiedoston lukeminen ja käsittely
- M: 25. Tietojen lukeminen ulkoisesta lähteestä
- MSDN: How to: Read From a Text File
- Isoksi.cs - esimerkki filtteristä, eli joka lukee syötettä ja tulostaa sitä jotenkin muutettuna
- TiedostoIsoksi.cs - esimerkki, joka lukee tiedoston ja tulostaa sen isoilla kirjaimilla
- Kaino.cs - esimerkki, joka muuttaa Kotus-sanaston sanat Hirsipuupeliä varten sopivaksi
- Syksyllä 2011 tehtiin ohjelma, jonka avulla voi korjata luentomonisteen rikkinäiset linkit
- KorjaaMoniste.cs - "valmiiksi" korjattu versio
- KorjaaMoniste.cs - luennon jälkeinen tilanne
- Syksyn 2011 luennon koodit versionhallinnassa
- Syksyn 2011 videot: Osa 1 MP4 alkuperäinen, MP4 kännykkäversio
- Syksyllä 2019 tehtiin ohjelma, jolla havainnolistetaan ajankäyttöä vs saatuja pisteitä
- Aika.cs - ajankäyttö vs demopisteet, esimerkki, jossa yhdistetään kahden erilaisen tiedoston sisältöä
- Syksyn 2019 videot: Osa 1 MP4 alkuperäinen
- Katsottiin kuvankäsittelyä (nykyisin videot demojen yhteydessä)
- Kuvankasittely
- Konvoluutio kuvan käsittelyyn - lataa ja aja
java -jar konvo.jar
- Kuva.cs - demo9 pohjatiedosto kuvan käsittelylle
- Palapeli.cs - demo9 pohjatiedosto palapelille
- Hirsiauta.cs - apuohjelma hirsipuun pelaamiseksi
- Luennolle tehdyt koodit versionhallinnassa
- Luennon koodit versionhallinnassa
- 18. luento videona: Osa 1 ja 2 MP4 alkuperäinen
- luentoseinä
17. luento: ma 30.10.2023 klo 12:15-14:00: Pelin tekeminen
- Vuoden 2015 esimerkki: Hirsipuu
- Vuoden 2012 esimerkki: Lumiukot oliolla:
- ks: s2012 luennot
- Luennolle tehdyt koodit versionhallinnassa
- Luennon koodit versionhallinnassa
- 17. luento videona: Osa 1 ja 2 MP4 alkuperäinen
- luentoseinä
16. luento: ti 24.10.2023 klo 14:15-16:00: Oliot
Muu sisältö: listat, silmukat, muuttujien näkyvyys, hiiren kuuntelu (Jypeli)
- Kuvatiedosto
- Muuttujien näkyvyys
- M: 23. Dynaamiset tietorakenteet
- Hiiren kuuntelu
- Oliot (ei kurssiasiaa, mutta voi auttaa harjoitustyössä selkeyttämään)
- Yksinkertaisesti pikkuluokkia
- Elaimet.cs - pohjaksi Kissa ja Koira-luokka
- ElaimetPerimalla.cs - toteutettu perinnällä sekä lista Elaimista (polymorfismi)
- sama sovellettuna Jypeliin
- Yksinkertaisesti pikkuluokkia
- Luennolle tehdyt koodit versionhallinnassa
- Luennon koodit versionhallinnassa
- 16. luento videona: Osa 1 ja 2 MP4 alkuperäinen
- luentoseinä
- PP1. luento videona: Osa 1 ja 2 MP4 alkuperäinen, MP4 kännykkäversio
Näkyykö muillakin luentovideolla pelkkää mustaa?
—Mullakin näkyy vain musta ruutu :(
VL: kokeilen kohta laittaa varanauhoituksen tyonne kunhan valmistuu...
VL: Nyt on varanauhoitus käytössä.
—15. luento: ma 23.10.2023 klo 12:15-14:00: Dynaamiset tietorakenteet: lista
Muu sisältö: Funktioiden kutsuminen, taulukot
- M: 23. Dynaamiset tietorakenteet
- Käytiin läpi
List<T>
-kokoelman perusteta (List-dokumentaatio MSDN:ssä) - LaskeMatka.cs - luennolla tehdyt muutokset eli pisteet listaksi.
- Listat.cs
- Listat.cs - luennolla taulukoista listoiksi muutettu esimerkki
- Käytiin läpi
- Tekstuuri neliölle (ohje Jypeli-wikissä)
- Luennolle tehdyt koodit versionhallinnassa
- Luennon koodit versionhallinnassa
- 15. luento videona: Osa 1 ja 2 MP4 alkuperäinen
- luentoseinä
14. luento: ti 17.10.2023 klo 14:15-16:00: Matriisit, Taulukko vektoreista, Törmäysten käsittely (Jypeli), laskurit (Jypeli).
Muu sisältö: moniulotteiset taulukot
- Demopohjan hakeminen
- M: 15.5. Moniulotteiset taulukot.
- M: 16.8.1 break
- Jypeli:
- Jypelin ohjeet
- Jypelin "arkkitehtuurikuva"
- GameObject
- Jypelin suoritus -kaavio miten oma koodi on suhteessa Jypelin-koodiin (Framework)
- Kehitettiin AngryLego-peliä,
- TileMap.cs - katso Insert-metodin toteutusta
- Matriisit.cs - luennolla tehty esimerkki kokonaislukumatriisista
- Pisteitä (
Vector
) listassa: - Luennolle tehdyt koodit versionhallinnassa
- Luennon koodit versionhallinnassa
- 14. luento videona: Osa 1 ja 2 MP4 alkuperäinen,
- luentoseinä
13. luento: ma 16.10.2023 klo 12:15-14:00: Merkkijonojen paloittelu. Harjoitustyön aloittaminen.
- M: 17. Merkkijonojen paloittelu
- Pelikenttä merkkijonosta:
- Matriisit.cs - matriisiesimerkkejä
- KentanMuokkaus - muutetaan taulukko merkkijonoksi, erot luennon 12 versioon
- AngryLego.cs - peli aluille, kenttä merkkijonosta (ks: ruutukenttä)
- Katso myös video GalaxyTripin tekemisestä ja sen lähdekoodi.
- Muita "livenä tehtyjä" harjoitustyön tasoisia "pelejä":
- Tiernapoikapeli yliopiston pikkujouluja varten 2013:
- 2013 esimerkki: AmebaDanceWars refaktorointi, if-lauseiden vähentäminen olioita käyttämällä
- pohjaksi AmebaDanceWars.cs
- koko muutoshistoria
- .cs (diff) - lisätty Ameba-luokka ja omaAmeba osaa tanssia
- .cs (diff) - lisätty !VastusAmeba-luokka, joka osaa arpoa ja tehdä omat liikeensä
- .cs (diff) - lisätty !OmaAmeba-luokka, joka osaa tallettaa omat suoritukset ja periaatteessa laskea pisteet
- .cs (diff) - lisätty !SuoritusValmis-delegaatti -tyyppi, jolla ameba voi ilmoittaa, että pyydetty homma on tehty
- .cs (diff) - vaihdettu luokan nimeksi !TanssiAmeba ja lisätty joukko taustatanssijoita, korjattu myös että arpoo liikkeitä tason mukaan (ennen otti määrän aina Begin-metodin suoritushetkellä).
- muunneltu versio olioilla AmebaDanceWars.cs
- Luennon koodit versionhallinnassa (valmista ohjelmaa varten ota hakemistosta .exe, .dll ja content-kansion kaikki tiedostot).
- luento videona MP4 alkuperäinen, MP4 kännykkäversio
- Kuvaaja.cs - pohja demo 7 tehtäville
- Taulukot.cs - pohja taulukkotehtäville
- AngryLego.cs - luentojen yksinkertaisin versio, muutama seinä, ei vielä liikettä
- Luennolle tehdyt koodit versionhallinnassa
- Luennon koodit versionhallinnassa
- 13. luento videona Osa 1 ja2 MP4 alkuperäinen
12. luento: ti 10.10.2023 klo 14:15-16:00: Aliohjelmien kutsuminen, etsiminen taulukosta
- Näytelmä aliohjelmien kutsumisesta
- Näytelmä videona - käynnistä yhtäaikaa katsoessasi luennon videointia.
- Kutsuminen.cs - näytelmässä käytetty koodi
- Kutsuminen.asm - koodi optimoidusti käännettynä konekielelle (näkee kun painaa
Ctrl-Alt-D
debuggauksen aikana)
- Taulukoista:
- SuurinJaPienin.cs -taulukon Suurimman ja pienimmän etsiminen
- Matriisit.cs -esimerkki matriiseista
- 1-ulotteiset taulukot
- TIM-lisäsivu 2D-taulukoista
- Kutsuminen.cs - esimerkkejä 1-ulotteisen taulukon käyttämisestä
- SuurinJaPienin.cs -
- suurimman ja pienimmän sekä tietyn luvun etsiminen
- LumiukotTaulukolla.cs - lumiukon pallot taulukkoon
- Tutustu: demo 5 gurutehtävien malliratkaisut.
- Luennolle tehdyt koodit versionhallinnassa
- Luennon koodit versionhallinnassa
- 12. luento videona (2021, katso tämä): Osa 1 ja 2 MP4 alkuperäinen
12. luento videona: Osa 1 ja 2 MP4 alkuperäinen - luentoseinä
https://tim.jyu.fi/files/kurssit/tie/ohj1/2023s/luentojen-aiheet/luento12b.mp4
Linkki ei toimi. 12b -> 12a näyttää toimivan
—11. luento: ma 9.10.2023 klo 12:15-14:00: Olioviitteet, 2-ulotteiset taulukot
Muu sisältö: Aliohjelmien tekeminen, taulukot, silmukat, if-lauseet, etsiminen, debuggaus, pelikenttä merkkijonosta
- Alkukysely
- muista animaatiot
- M: 10.3 Debuggaus
- M: 8. Oliotietotyypit, luokat ja oliot
- M: 14. Olioiden ja alkeistietotyyppien ero
- SuurinJaPienin.cs - taulukon Suurimman ja pienimmän etsiminen
- SuurinJaPienin.cs - luennolla tehty versio jossa ei päästy yhtä pitkälle
- TIM-lisäsivut: 2-ulotteiset taulukot
- M: 15.5 Moniulotteiset taulukot
- LumiukotTaulukolla.cs - lumiukon pallot taulukkoon
- Matriisit.cs -esimerkki 2-ulotteisesta taulukosta
- KentanMuokkaus.cs, moniulotteisten taulukkojen hyödyntäminen käytännössä
- Luennolle tehdyt koodit versionhallinnassa
- Luennon koodit versionhallinnassa
- 11. luento videona: Osa 1 ja2 MP4 alkuperäinen
- luentoseinä
10. luento: ti 3.10.2023 klo 14:15-16:00: Taulukot, silmukat
- TIM lisäsivu taulukoista
- M: 16. Toistorakenteet
while
-silmukka,for
-silmukka,do-while
-silmukka- MontaPalloa.cs
- DoWhile.cs
- M: 15. Taulukot
- TIM-sivu taulukoista
- Pallot.cs - motivointi silmukoihin ja taulukoihin
- Silmukoiden käyttäminen taulukon alkioiden läpikäymiseen (esim. tulostaminen, summaaminen, ...)
- Taulukoita.cs
- Taulukoita.cs- luennolla tehty hieman suppeampi versio
- Luennolle tehdyt koodit versionhallinnassa
- Luennon koodit versionhallinnassa
- 10. luento videona: Osa 1 ja 2 MP4 alkuperäinen
- luentoseinä
9. luento: ma 2.10.2023 klo 12:15-14:00: Aliohjelmien kutsuminen, String, StringBuilder
Muu sisältö: ehtolauseet, luokan käyttäminen sekä olioviitteet
- Pong-muutokset kurssia varten
- TIM-sivu aliohjelmien kutsumisesta
- AliohjelmienKutsuminen.cs - esimerkkejä aliohjelmien kutsuista
- M: 12.3 Muokattavat merkkijonot: StringBuilder
- StringVsStringBuilder.cs - String vs. StringBuilder nopeus
- IntVsDouble.cs - int vs. double nopeus
- M: 13. Ehtolauseet
- M: 13.6.1 Operaattoreiden totuustaulut
- HUOM! Vertailuoperaattorit == ja != toimivat myös
String
-merkkijonojen ''sisällön'' vertailussa, toisin kuin esimerkiksi Javassa. Mutta eivät toimiStringBuilder
-jonoille! - Totuustaulut
- HUOM! Vertailuoperaattorit == ja != toimivat myös
- Luennolle tehdyt koodit versionhallinnassa
- Luennon koodit versionhallinnassa
- 9. luento videona: Osa 1 ja2 MP4 alkuperäinen
- luentoseinä
Tallenne jumahtaa kohtaan 57:21. Tallennetta voi katsoa kyllä eteen päin, jos kelaa suoraan esim. kohtaan 58:00.
—8. luento: ti 26.9.2023 klo 14:15-16:00: Ehtolauseet, String
- Pahasti Pihalla
- M: 13. Ehtolauseet
- Lue demoja varten myös: Aliohjelminen kutsuminen
- Muista aina katsoa välillä C#-pikasyntaksi
- Tee omatoimisesti Pong-tutoriaalin vaiheet 1-3. Demoissa tehdään sitten 4-7.
- Voit tehdä myös Läpsylintu-tutoriaalin
- Voit tehdä myös Läpsylintu-tutoriaalin
- Lukuja.cs - esimerkki funktiosta jossa if-lause
- M: 12. Merkkijonot
- String-luokan MSDN-dokumentaatio
- StringBuilder-luokan MSDN-dokumentaatio
- Merkkijonoja.cs - esimerkkejä merkkijonoista ja kirjaimista sejä merkijonofunktiosta
- Jonoja.cs - esimerkkejä merkkijonofunktioista
- Luennolle tehdyt koodit versionhallinnassa
- Luennon koodit versionhallinnassa
- 8. luento videona: Osa 1 ja 2 MP4 alkuperäinen
- luentoseinä
7. luento: ma 25.9.2023 klo 12:15-14:00: HT, ehtolauseet (luentokysymyksiä)
Muu sisältö: Rider, parametrin välitys, muuttujat, funktiot, testaaminen
- Katso animaatio funktion kutsumisesta
- Muistutuksia demotehtävien nimeämisistä
- Ei ääkkösiä eikä välilyöntejä tiedostojen, eikä luokkien nimiin
- Luokan nimi samaksi kuin tiedoston nimi. C#:ssa tämä on suositus, Javassa näin on pakko tehdä. Yhtenäisyyden vuoksi toimimme kuitenkin näin.
- Luokkien ja aliohjelmien nimet alkavat isolla, muuttujien (ja siten myös parametrien) pienellä.
- M: 28. Syntaksin kuvaaminen
- Harjoitustyö:
- M: 10. Visual Studio
- Aliohjelmien kirjoittaminen
- Ohjelman synty ja testaaminen:
- Kolmiota.cs - luennon ohjelma valmiina. Sisältää mm. Kysy-metodin.
- Sisällön tuominen peliin
- KolmionMetsastys.cs - valmis 50% versio
- Kolmion metsästyksen versiot
- ComTest for Windows, ComTest for Mac
- Luennolle tehdyt koodit versionhallinnassa
- Luennon koodit versionhallinnassa
- 7. luento videona. Osa 1 ja 2 MP4 alkuperäinen
- luentoseinä
6. luento: ti 19.9.2023 klo 14:15-16:00: Aliohjelman paluuarvo, funktio ja parametrin välitys (luentokysymyksiä)
- Riderin käyttö jatkuu...
- M: 26.4 Negatiiviset binääriluvut
- M: 7. Muuttujat
- M: 28. Syntaksin kuvaaminen
- M: 9. Aliohjelman paluuarvo
- Keskiarvon laskeminen, funktioesimerkkejä
- Laskuja.cs - luennon esimerkki, jossa edellisen luennon paperitehtävän funktio toteutettu ja testattu.
- Funktioita.cs
- FunktioitaNC.cs - sama ilman kommentteja, jotta rakenne näkyy paremmin
- Esimerkki syntyneestä dokumentaatiosta, jossa ComTest-esimerkit mukana.
- Käyttäjän vuorovaikutus
- LumiukkoVoima.cs - lumiukko jossa käyttäjä voi vaikuttaa "peliin".
- Katso myös Voimia ja sitominen
- Harjoitustyön suunnitelma
- Luennolle tehdyt koodit versionhallinnassa
- Luennon koodit versionhallinnassa
- 6. luento videona: Osa 1 ja 2 MP4 alkuperäinen
- luentoseinä
5. luento: ma 18.9.2023 klo 12:15-14:00: Rider, aliohjelmat, muuttujat (vastaaminen luentokysymyksiin)
- MUISTAKAA TEHDÄ luentovideoista hakemisto
- Ollaan aliohjelmia
- Luentokysymyksiä
- M: 10. Ohjelmoijan työkaluja
- Riderin asentaminen ja käynnistäminen, solutionin luominen, projektin luominen.
- M: 10.3 Debuggaus (askella esim. LumiukkoAli)
- Aliohjelmat:
- M: 6. Aliohjelmat, metodin kuormittaminen
- Laskuja.cs - yksinkertainen esimerkki funktioaliohjelmasta joka laskee ja PALAUTTAA keskiarvon
- LaskujaTest.cs - ComTestin generoima NUnit-tiedosto
- LumiukkoAli.cs - kuormitettu
PiirraLumiukko
- KaannaTaulukko.cs - taulukon kääntäminen tyhmästi
- KaannaTaulukkoAli.cs - taulukon kääntäminen aliohjelmalla (vielä puuttuu jotakin, mitä???)
- Matka.cs - idean alkua muunnokselle
- Jypelin "arkkitehtuurikuva"
- Luennolle tehdyt koodit versionhallinnassa
- Luennon koodit versionhallinnassa
- 5. luento videona: Osa 1 ja 2 MP4 alkuperäinen
- 5. luento videona (2020 versio kun 2022 jäi vajaaksi): Osa 1 ja 2 MP4 alkuperäinen
- luentoseinä
Linkki M: 10. Visual Studio ei minulla vörki ja haullakaan en saa selkeyttä mitä luennolle pitäisi lukea.
VL: Joo, tekstejä ei ollut vaihdettu, Rideriahan tietysti tarkoitetaan aina kun vanhassa puhutaan Visual Studiosta.
Ah, päivänselvää. Asia kunnossa!
—- Itsenäisesti katsottavaksi: tietokoneen toiminnasta:
- Katso myös YouTubesta suurennettu tietokone
Hei. Miksi jo toistamiseen puhutaan ohjelmointi kaksi kurssista? Varmaan virheellisesti vain.
VL: Varmaan vahinko...
—4. luento: ti 12.9.2023 klo 14:15-16:00: Aliohjelmat, muuttujat
- M: 26.1 Lukujärjestelmät: 10-järjestelmä ja 2-järjestelmä, lukujen esitys tietokoneessa
- ks esimerkki bitistä TIEP114 -kurssilta
- Khan Academy - esimerkkejä JavaScriptillä (voi tehdä oheisharjoituksina)
- M: 7. Muuttujat
- LumiukkoAli.cs - lumiukko jossa myös pallot piirretään aliohjelmalla
- Muuttujat.cs - esimerkki muuttujista
- Muuttujat.java - sama esimerkki Javalla
- Eri versioiden välinen ero
- Luennolle tehdyt koodit versionhallinnassa
- Luennon koodit versionhallinnassa
- 4. luento videona Osa 1 ja 2 MP4 alkuperäinen
- luentoseinä
3. luento: ma 11.9.2023 klo 12:15-14:00: Yksinkertainen graafinen C#-ohjelma, aliohjelmat, dokumentointi
- osallistu tekemään luentovideoista hakemisto
- Kurssin postilistat ja niiden arkistot
- Kurssin keskustelualue
- faktaa vai fiktiota?
- M: 6. Aliohjelmat
- Lumiukot tyhmästi
- Lumiukko aliohjelmien avulla ja dokumentoituna.
- Lumiukot-koodin dokumentaatio
- M: 2.4 Kommentointi
- Dokumentaatiokommentit tästä eteenpäin oltava jokaisessa luokassa ja jokaisessa aliohjelmassa.
- Esimerkki doxygenin tuottamasta Jypeli-kirjaston dokumentaatiosta.
- M: 7.5 Muuttujien näkyvyys
- Muuttujat.cs - esimerkki muuttujista
- Muuttujat.java - sama esimerkki Javalla
- Matka.cs
- Luennolle tehdyt koodit versionhallinnassa
- Luennon koodit versionhallinnassa
- 3. luento videona Osa 1 MP4 alkuperäinen
- luentoseinä
2. luento: ti 5.9.2023 klo 14:15-16:00: Yksinkertainen graafinen C#-ohjelma
Muu sisältö: Tekstinkäsittely, näppäinoikotiet
- Demotehtävien tarkastelua
- HelloWorld muilla kielillä
- pääteohjauksiin osallistujien määrän laskeminen
- Excelillä
- AWKilla
- M: 1. Mitä ohjelmointi on?
- M: 2. Ensimmäinen C#-ohjelma - kerrataan syntaksia ja kääntämistä
- M: 3.5 Peräkkäisyys
- M: 4. Yksinkertainen graafinen C#-ohjelma
- Lumiukko.cs
- Jypeli-kirjasto ja sen asennus. Kirjaston dokumentaatio.
- Näppäinoikoteitä näppäimistön käyttöä nopeuttamaan (NPO wikissä)
- Tiedoston sisältö binäärisenä
- Luennolle tehdyt koodit versionhallinnassa
- Luennon koodit versionhallinnassa
- 2. luento videona: Osa 1 ja 2 MP4 alkuperäinen,
- luentoseinä
1. luento: ma 4.9.2023 klo 12:15-14:00: Alkubyrokratia, komentorivi, yksinkertaisin C#-ohjelma
- 3 tärkeää asiaa
- Kurssin kotisivujen ja pelisääntöjen läpikäynti
- Vastaa kurssin esitietokyselyyn
- Mitä ohjelmoinnilla voidaan tehdä
- Työpaikat
- "Tärkeintä on osata kehittää uutta, ettei vain seuraile muita. Tällöin pitää tuntea olemassa olevat rakennuspalikat ja osata rakentaa niistä jotain uutta." Mika Helenius, toiminnanjohtaja, TIVIA ry.
- Esim. GoogleMaps, Oma kartta
- TIM
- Excel, Word, autojen jarrut + kaikki muu kontrolli
- MS Imagine Cup -kilpailut opiskelijoille.
- MS Imagine Cup 2008, lyhyempi tekstitetty versio
- edellisen pidempi versio joka on koostettu Micropsoftin videoista
- Imagine Cup 2013 voittajat
- "3D-kuvaa 2D-kameralla"
- Työpaikat
- Motivaatio peleihin
- KSML artikkeli leikin vaikutuksesta oppimiseen
- Project Natal Ces http://www.youtube.com/watch?v=Ay9mpb0TN3g
- Esimerkkejä siitä, mitä kurssilla ja Jypeli-kirjastolla voidaan tehdä
- GalaxyTrip, AngryLego (arvosteluja) ja Tankkipeli
- Aikaisempia harkkatöitä ja esimerkkipelejä (jos sinulla ei facebook-tiliä, niin katso täältä)
- Syksy 2014
- Kevät 2012 harjoitustöitä
- Koripallopeli
- Fall Down
- Viimeinen Systeemi
- Esimerkkejä NPO-kurssilta
- Jumpy Jumpie
- Rampege
- Hyppijä
- Palikkatesti WMV
- Auto ja pyörivä ukko, R2->R funktio. (Java-kurssin esimerkkejä) (Seuraava ei enää toimi: Kuinka saat Appletit käyttöön)
- Konvoluutio kuvan käsittelyyn (lataa
konvo.jar
ja käynnistä)
- Käsitekartta vastaavan Java-kurssin asioista, pätee suurimmalta osin tälläkin kurssilla
- Komentorivi
- Ohjelman kääntäminen komentoriviltä
- Mahdollisimman paljon koneen käyttöä muuten kuin hiirellä
- Vuoden 2007 materiaali Windowsin komentorivistä
- Vuoden 2007 materiaali Linuxin käytöstä Jyväskylän yliopistossa.
- Komentorivistä muita linkkejä: Työvälinekurssin moniste
- M: 1. Mitä ohjelmointi on? TIM
- M: 2. Ensimmäinen C#-ohjelma TIM
- Mitä kääntäminen tekee
- Julkkiskin haluaa pysyä ajan hermolla
- Luennolle tehdyt koodit versionhallinnassa
- Luennon koodit versionhallinnassa
- 1. luento videona: Osa 1 ja 2 MP4 alkuperäinen
- luentoseinä
Syksyn 2022 luennot
Syksyn 2016 luennot
3D. luento: ti 29.11.2016 klo 12:15-12:45 (MaA 102): Matriisit ja 3D-grafiikka
- ks: 3D-grafiikka ja lineearialgebra
- 3D. luento videona
- Osa 1 MP4 alkuperäinen, MP4 kännykkäversio
- 2015 versio: Osa 1 MP4 alkuperäinen, MP4 kännykkäversio
Syksyn 2015 luennot
M1. luento: ma 30.11.2015 klo 14:15-16:00: Pelin siirtäminen puhelimeen
Ei luentoa, katsotaan alla olevat videot ja tehdään harkka.
- Pelin siirtäminen puhelimeen
- Mobiilin jatko-osan Wiki-sivut
- Koko esimerkkiprojekti
- GalaxyTrip.cs - ennen puhelinmuutoksia (tosin vibrat pitäisi olla vielä poissa)
- GalaxyTrip.cs - puhelinmuutosten jälkeen
- Muutokset puhelimen takia
- Luennolle tehdyt koodit versionhallinnassa
- M1. luento videona: Osa 1 MP4 alkuperäinen, MP4 kännykkäversio
- s2013 (VS2012): Osa 1 MP4 alkuperäinen, MP4 kännykkäversio
Syksyn 2013 luennot
M1. luento: ti 3.12.2013 klo 16:00-18:00: Pelin siirtäminen puhelimeen
- Pelin siirtäminen puhelimeen
- Mobiilin jatko-osan Wiki-sivut
- Koko esimerkkiprojekti
- GalaxyTrip.cs - ennen puhelinmuutoksia (tosin vibrat pitäisi olla vielä poissa)
- GalaxyTrip.cs - puhelinmuutosten jälkeen
- Muutokset puhelimen takia
- Luennolle tehdyt koodit versionhallinnassa
- M1. luento videona
- Osa 1 MP4 alkuperäinen, MP4 kännykkäversio
24. luento: ti 26.11.2013 klo 14:15-16:00: Esimerkki pelin tekemisestä
- Tiernapoikapeli laitoksen pikkujouluja varten.
- "Valmis" tiernapoikapeli
- Luennon koodit versionhallinnassa
- Luennolle tehdyt koodit versionhallinnassa
- Tietoturva-asiat
- luento videona
- Osa 1 MP4 alkuperäinen, MP4 kännykkäversio
- luento videona
- Osa 1 MP4 alkuperäinen, MP4 kännykkäversio
Vanhojen kurssien luentojen aiheet
- Kevät 2016 - C# / Antti-Jussi Lakanen
- Syksy 2015 - C# / Vesa Lappalainen
- Kevät 2015 - C# / Antti-Jussi Lakanen
- Syksy 2014 - C# / Vesa Lappalainen
- Kevät 2014 - C# / Antti-Jussi Lakanen
- Syksy 2013 - C# / Vesa Lappalainen
- Kevät 2013 - C# / Antti-Jussi Lakanen
- Syksy 2012 - C# / Vesa Lappalainen
- Kevät 2012 - C# / Antti-Jussi Lakanen
- Syksy 2011 - C# / Vesa Lappalainen
- Kevät 2011 - C# / Antti-Jussi Lakanen
- Kevät 2010 - C# / Antti-Jussi Lakanen
- Syksy 2010 - Java / Vesa Lappalainen
- Syksy 2009 - Java / Vesa Lappalainen
- Syksy 2008 - Java / Vesa Lappalainen
2023 syksy videot
Luennot audioina
- luento01a.mp3
- luento02a.mp3
- luento03a.mp3
- luento04a.mp3
- luento05a.mp3
- luento06a.mp3
- luento07a.mp3
- luento08a.mp3
- luento09a.mp3
- luento10a.mp3
- luento11a.mp3
- luento12a.mp3
- luento13a.mp3
- luento14a.mp3
- luento15a.mp3
- luento16a.mp3
- luento17a.mp3
- luento18a.mp3
- luento19a.mp3
- luento20a.mp3
- luento21a.mp3
- luento22a.mp3
- luento23a.mp3
- luento24a.mp3
bash-skriptejä videoiden ja audioiden käsittelyyn:
audio.sh
Hakee kaikki videot ja muuttaa ne .mp3-tiedostoiksi:
#!/bin/bash
for i in $(seq -w 01 24); do
# Muodostetaan lähdetiedoston URL
input_url="https://tim.jyu.fi/files/kurssit/tie/ohj1/2023s/luentojen-aiheet/luento${i}a.mp4"
# Muodostetaan kohdetiedoston nimi
output_file="luento${i}.mp3"
# muunnetaan video audioksi
ffmpeg -i "$input_url" -q:a 0 -map a "$output_file"
done
haeaudio.sh
Haetaan kaikki audiotiedostot omalle levylle. Tee tiedosto haeaudio.sh
jossa on alla oleva sisältö ja sitten aja se GitBash
tai bash
-shellissä ./haeaudio.sh
.
These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.