Luennot
Kaikki tämän kevään luentovideot löydät listana osoitteesta (linkki tulossa).
Jos haluat katsoa viime kevään luentoja (vaikkapa tutustua aiheeseen etupainotteisesti), niin ne löytyvät täältä: https://kurssit.it.jyu.fi/ITKP102/2020k/luento/
Kevään 2021 luennot
Pidetyt luennot
Luentojen aiheet sekä luentotallenteiden linkit ilmestyvät tähän.
1. luento: Alkubyrokratia, komentorivi, yksinkertaisin C#-ohjelma
- 📺 Katso tallenne
- Kalvot (luento01.pdf)
- Opintojakson rakenne, kotisivut ja pelisäännöt
- Komentorivi
- Vastaa kurssin esitietokyselyyn
- Aikaisempia harkkatöitä ja esimerkkipelejä 2015 2013, 2012, 2012 (nuorten kesäkurssit)
- Käsitekartta vastaavan Java-kurssin asioista, pätee suurimmalta osin tälläkin kurssilla
- M: 1. Mitä ohjelmointi on?
- M: 2. Ensimmäinen C#-ohjelma
- HelloWorld.cs
- Monisteen täydennys: Mitä ohjelmointi on
Miten luentojen koodi- ja muut tiedostot ladataan omalle koneelle: Ohjeet tulossa!
2. luento: Graafinen C#-ohjelma
- 📺 Katso tallenne
- Lyhyt kertaus edellisen luennon asioista (luento02.pdf)
- M: 2. Ensimmäinen C#-ohjelma
- M: 4. Yksinkertainen graafinen C#-ohjelma
- Lumiukko.cs copy-pastettamalla palloja
- Tutustuttiin Visual Studioon
- M: 2.4 Kommentointi ja dokumentointi. Dokumentoi kaikki luokat ja aliohjelmat
- Jypeli-kirjasto ja sen asennus. Kirjaston dokumentaatio.
- Näppäinoikoteitä näppäimistön käyttöä nopeuttamaan (NPO wikissä)
- Luennon koodit
3. luento: Lumiukko, aliohjelmat
- 📺 Katso tallenne
- Katso kysymykset ja vastaukset (päivittyy hiljalleen)
- M: 10. Visual Studio
- Visual Studion asentaminen ja projektin luominen.
- Jos Visual Studio ei laita
public
-sanaa luokan ja aliohjelmien eteen automaattisesti; oletusnäkyvyys aliohjelmille onprivate
. Tällä kurssilla tehdään kuitenkin käytännössä ainapublic
-aliohjelmia, jotenpublic
kirjoitetaan 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.
- Esimerkki doxygenin tuottamasta Jypeli-kirjaston dokumentaatiosta.
- Lumiukko aliohjelmien avulla.
- Luennon koodit
4. luento: Visual Studio, aliohjelmat, muuttujat
- 📺 Katso tallenne: osa 1, osa 2
- M: 6. Aliohjelmat, M: 6.5 Aliohjelman kuormittaminen
- Lumiukot - Lumiukko, jolle säde ym. parametrina
- 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.
- Luennon koodit
Onko tarkoitus, että demoissa tehdään ennakkoon seuraavien luentojen aiheisiin liittyviä tehtäviä? Esim. tässä nämä binääriluvut vasta ja jo demo1:ssa on perustehtävä näistä. Mietin, että missä tahdissa monistetta tulisi lukea, ilmeisesti aina ennakkoon? :)
M-merkinnällä annetut linkit riittävät. Lisäksi demotehtävissä voi olla tarvittavaa lisämateriaalia annettuna, mikäli luennon aikana ei ehditä kaikkea tarvittavaa materiaalia käymään läpi. -AJL
—5. luento: muuttujat, operaattorit, funktio ja aliohjelman paluuarvo
- 📺 Katso tallenne
- M: 7. Muuttujat ja M: 7.7 Operaattorit
- M: 7.7.4 Aritmeettisten operaatioiden suoritusjärjestys
- Laskutoimituksen lopputulos riippuu tyypeistä, joita operoidaan. Esimerkiksi
4/3
\(\rightarrow\)1
(4
ja3
ovatint
-lukuja \(\rightarrow\) vastaus onint
) mutta(4.0 + 3) / 3
\(\rightarrow\)2.333...
(lausekkeen4.0 + 3
tyyppi ondouble
, jadouble
jaettunaint
-arvolla tuottaadouble
-tyyppisen arvon).
- Laskutoimituksen lopputulos riippuu tyypeistä, joita operoidaan. Esimerkiksi
- Socrative-kysymyksiä.
- M: 9. Aliohjelman paluuarvo, eli funktiot
- Esimerkkejä funktioista: Keskiarvo, Kolmion pinta-ala.
- Luennon koodit
6. luento: Funktio, ehtolause
- 📺 Katso tallenne
- M: 9. Aliohjelman paluuarvo, eli funktiot
- Jatkettiin funktioiden käsittelyä
- Funktioita.cs
- Katso myös viime vuoden vastaava Funktioita.cs
- Vakioistat: Muista, että vakiot merkitään
const
avainsanalla. Vakioiden nimeäminen, esim.const int VARPAITA = 5;
taiconst double OBJEKTIIVIN_POLTTOVALI_MM = 27.2;
- Harjoitustyön aikataulutus.
- Suunnitelma palautettava demo 5 mennessä deadlinea edeltävään perjantaihin mennessä.
- M: 13. Ehtolauseet
- Luennon koodit
Linkki videoon “Versionhallinta ja harkkatyön vieminen versionhallintaan” johtaa videoon vuoden 2015 kurssilta?
Kiitos, otin pois tuon turhan linkin. -AJL
—7. luento: Merkkijonot, muuttujat, funktiot
- 📺 Katso tallenne
- M: [11. Testaaminen]
- Testaaminen.cs
- Muista asentaa ComTest (Windows, Mac, Linux).
- M: 12. Merkkijonot
String
-luokan MSDN-dokumentaatio- Merkkijonoja.cs
- NimikirjaimetEsim.cs (*vuoden 2019 esimerkki)
- Kalvot (luento07.pdf)
- Luennon koodit
8. luento: Merkkijonot, ehtolauseet, ComTest
- 📺 Katso tallenne
- M: 11. Testaaminen
- M: 13. Ehtolauseet
- M: 16. Toistorakenteet
- Käytiin läpi
while
-,for
-, jado-while
-toistorakenteet. Toistorakenteita kutsutaan myös silmukoiksi. MontaPalloa.cs
Silmukat.cs
.
- Käytiin läpi
- Katso aikaisemman vuoden koodeista
PieninJaSuurin.cs
- esimerkki funktiosta jossaif
-lause.- 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.
- Miten luentojen koodi- ja muut tiedostot ladataan omalle koneelle
- Luennon koodit
9. luento: StringBuilder, olioviitteet, taulukot
- 📺Katso tallenne
- M: 12.3 Muokattavat merkkijonot: StringBuilder
- Merkkijonoja.cs
- (Lue myös StringBuilder-luokan MSDN-dokumentaatio)
String
- jaStringBuilderin
(tehokkuus-)erot merkkijonojen toistuvassa yhdistelyssä
- Olioviitteet, pino ja keko
- M: 15. Taulukot
- Vapaaehtoista lisälukemista: Kertausta return-lauseesta 1, 2
- Luennon koodit
10. luento: Johdatus olio-ohjelmointiin
- 📺Katso tallenne
- Johdatus olio-ohjelmointiin.
- Luennon koodit
11. luento: Olio-ohjelmointi
- 📺Katso tallenne
- Jatkettiin olio-ohjelmointia
- Luennon koodit
12. luento: Matriisit
- 📺Katso tallenne
- Moniulotteiset taulukot
- M: 15.5 Moniulotteiset taulukot
- Lue myös 2D-taulukot luentomonisteen täydennyksistä
- Matriisit.cs
- Luennon koodit
13. luento: Pelottava peli loppuun: pelikenttä merkkijonosta, törmäykset, tägit, ym.
- 📺 Katso tallenne
- PelottavaPeli
- Luennon koodit
14. luento: Listat
- 📺 Katso tallenne
- Käytiin läpi
List<T>
-kokoelman perusteita (List-dokumentaatio MSDN:ssä) - Lue omatoimisesti: MjPilkkominen.cs (Kevät 2014)
- Luennon koodit
15. luento: Lähin piste hiirestä
- 📺 Katso tallenne
- Lue omatoimisesti: Muiden tekemän koodin käyttämisestä omassa koodissa ja yleisesti akateemisesta rehellisyydestä
- Tehtiin Lähin rage hiirestä -peli
- Luennon koodit
16. luento: Olioviitteet, Dictionary
- 📺 Katso tallenne
- M: Oliotietotyypit, olioviitteet, M: Olioviitteiden ja alkeistietotyyppien ero
- Lue omatoimisesti: Kertaus muuttujien näkyvyydestä ja parametrin välityksestä
- Dictionary-tietorakenne
- Luennon koodit
17. luento: Palloja karkuun
- 📺 Katso tallenne
- Tehtiin Anagrammi-tehtävän ratkaisu.
- Tehtiin Palloja Karkuun-peli
- Kiinnostuneille: MonoJypelin lähdekoodia pääset tutkimaan täällä. Voit myös ladata lähdekoodin koneellesi samaan tapaan kuin luentojen esimerkit, https://github.com/Jypeli-JYU/Jypeli
- Luennon koodit
Jypelin lähdekoodia jos lähtee tutkailemaan, sen lataus onnistuu komennolla:
git clone https://github.com/Jypeli-JYU/Jypeli.git --recursive
Oleellinen lisä on siis tuo --recursive
lisäasetus.
(Tällä hetkellä) kansiosta testit/TasohyppelypeliFarseer
löytyy toimiva hyvin minimalistinen projekti, johon on valmiiksi liitetty kaikki tarvittava. Kaikki muut projektit siellä eivät välttämättä toimi ihan suoraan.
Lopullinen kansion koko ajamisen jälkeen on noin 1.1 gb :)
Lisäys juuri ennen luentoa: Nyt myös kansion juuresta löytyvästä Jypeli.NET
-solutionista löytyy testiprojektit.
-MR
—Luennon 17 koodit eivät ole vielä näkyvissä, mutta luennon 18 on?
JEp, sori ku non kestänyt. Laitan ne vielä tämän päivän aikana näkyville. -AJL
Nyt on vihdoin nuokin koodit lisätty. -AJL
—18. luento: Rekursio
- 📺 Katso tallenne
- M: 22. Rekursio
- Rekursiivisen funktion idea
- Kertoma, Fibonaccin luvut, Summa, Minimi
- Sierpinskin kolmio ja muut fraktaalit: esim. Mandelbrotin joukko, Kochin lumihiutale
- Wikipedia: Sierpinski triangle, kuva eräästä toteutuksesta
- 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.
- Droste Effect: 1, 2
- M: 26. Poikkeukset
Idea:
try { // poikkeusalttiit lauseet } catch(Poikkeusluokka p) { // lauseet poikkeuksen sattuessa } finally { // Asiat jotka tehdään huolimatta siitä tapahtuiko poikkeuksia }
- Vesan mallikoodit syksyltä liittyen poikkeuksiin:
- Poikkeus.cs - esimerkkiin lisätty luennon jälkeen vielä !ComTestiin #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.
- SierpinskiKolmio.cs - versio jossa kolmiot piirretään viivoina
- Luennon koodit
Luennon 17 koodit linkkaavat luennon 18 koodeihin (vieläkin…?)
Korjattu. -AJL
—19. luento: Rekursio
- 📺 Katso live/tallenne
- M: 22. Rekursio
- SierpinskinMatto.cs
- SuurinPolku.cs - Etsitään "puun" paras reitti (tarkemmin sanottuna reitin alkioiden summa). Tämä voidaan tehdä rekursiivisella algoritmilla. Tehtävä on ns. Eulerin ongelma nro 18. Tällä ratkaisulla ei ole kuitenkaan mahdollista ratkaista "isoja" puita (esim. 100 riviä, ks. Euler 67). Tehokkaan algoritmin tekeminen jätetään harjoitustehtäväksi.
- 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)
- Luennon koodit
20. luento: Kertaus
- 📺 Katso live/tallenne
- Kertausta: Siirra.cs - Funktio, joka siirtää merkkejä alkuperäisestä jonosta toiseen jonoon.
- HT esittelyt, varaa esitysvuorosi
- HT pitää myös julkisen esittelemisen lisäksi myös virallisesti palauttaa ohjaajalle (ohjauksissa, tai varaa aika), missä katsotaan muodolliset vaatimukset
- Lue omatoimisesti:
- Luennon koodit
Korppi ei ole varmaan enää oleellinen? -MR
—21. luento: Liukuluvut, kertaus
- 📺 Katso live/tallenne
- Tentistä vielä: Tenttialueena on
- moniste kokonaisuudessaan (''paitsi'' jypeli-spesifiset luvut ja syntaksin kuvaamiseen liittyvä luku), ja lisäksi
- monisteen täydennysten kohdat Muuttujat, Aliohjelmat, Taulukot, Syntaksi
- Aikaisempia tenttejä voi ja kannattaa katsella täältä.
- M: 27. Lukujen esitys tietokoneessa
- Reaalilukujen esittäminen liukulukuina
- intel16.txt - reaaliluvut Intelin prosesorissa
- Tarkkuus.cs - esimerkki miten reaaliluvut eivät ole tarkkoja
- Liukulukujen esityskyvyn rajat
- FloatDouble.cs
- Luentoesimerkit: Lukujen muuttamista lukujärjestelmästä toiseen
- Jypelin rakenne ja missä vaiheessa kutsutaan mitäkin:
- Luennon koodit
Lisäjuttuihin myös Jypelin arkkitehtuuri ja koodimäärät voivat olla kiinnostavia:
https://tim.jyu.fi/view/kurssit/tie/ohj1/materiaali/monisteenTaydennykset#jypelin-arkkitehtuuri
-MR
—Tulevat luennot
Tulevien luentojen aiheet ilmestyvät tähän pari päivää ennen luentoa.
Kevään 2020 luennot
Alla on listattu edellisen vuoden luentoja. Voit halutessasi tutustua näihin omatoimisesti.
These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.