th gl fi fi fi es fi et lt fi hbs_lat fi fi fi fi fi en fi fi es fi et lt fi en fi en fi fi fi fi fi fi et fi de fi fi fi fi fi fi fi es fi et lt fi fi fi fi fi es fi et fi fi fi fi fi fi fi es fi et lt fi fi fi fi fi fi de fi es fi et fi fi fi fi fi fi es fi et lt fi de fi fi fi fi fi fi es fi fi lt fi fi fi io fi fi lt fi fi fi fi fi fi fi io fi fi lt fi fi it fi fi fi es fi et fi fi fi fi io fi et fi fi fi io fi et lt fi io de et lt fi fi fi fi eo fi et de it fi fi fi fi fi fi fi es fi fi fi fi fi fi fi fi fi io fi et fi fi fi fi io fi et fi fi fi fi eo fi et fi fi fi fi es fi fi fi fi fi fi fi fi fi es fi fi fi fi fi fi fi fi fi fi fi en fi fi fi fi en en
Jos haluat katsoa viime kevään luentoja (vaikkapa tutustua aiheeseen etupainotteisesti), niin ne löytyvät alapuolelta.
Luentojen aiheet sekä luentotallenteiden linkit ilmestyvät tähän.
1. luento: Alkubyrokratia, komentorivi, yksinkertaisin C#-ohjelma
Opintojakson rakenne, kotisivut ja pelisäännöt
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?
Monisteen täydennys: Mitä ohjelmointi on
M: 4. Yksinkertainen graafinen C#-ohjelma
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ä)
Katso kysymykset ja vastaukset (päivittyy hiljalleen)
Visual Studion asentaminen ja projektin luominen.
Jos Visual Studio ei laita public-sanaa luokan ja aliohjelmien eteen automaattisesti; oletusnäkyvyys aliohjelmille on private. Tällä kurssilla tehdään kuitenkin käytännössä aina public-aliohjelmia, joten public 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.
4. luento: Visual Studio, aliohjelmat, muuttujat
M: 6. Aliohjelmat, M: 6.5 Aliohjelman kuormittaminen
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: muuttujat, operaattorit, funktio ja aliohjelman paluuarvo
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 ja 3 ovat int-lukuja \(\rightarrow\) vastaus on int) mutta (4.0 + 3) / 3 \(\rightarrow\) 2.333... (lausekkeen 4.0 + 3 tyyppi on double, ja double jaettuna int-arvolla tuottaa double-tyyppisen arvon).
M: 9. Aliohjelman paluuarvo, eli funktiot
Esimerkkejä funktioista: Keskiarvo, Kolmion pinta-ala.
6. luento: Funktio, ehtolause
M: 9. Aliohjelman paluuarvo, eli funktiot
Katso myös aiempi vastaava Funktioita.cs
Vakioista: Muista, että vakiot merkitään const avainsanalla. Vakioiden nimeäminen, esim. const int VARPAITA = 5; tai const double OBJEKTIIVIN_POLTTOVALI_MM = 27.2;
Suunnitelma palautettava demo 5 mennessä deadlinea edeltävään perjantaihin mennessä.
7. luento: Testaaminen, ComTest, merkkijonot
Muista asentaa ComTest (Windows, Mac, Linux).
NimikirjaimetEsim.cs (*vuoden 2019 esimerkki)
8. luento: Merkkijonot, ehtolauseet, ComTest
Katso aikaisemman vuoden koodeista
PieninJaSuurin.cs - esimerkki funktiosta jossa if-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.
9. luento: Debuggaus, taulukot
Debuggaus. Opiskele Debuggaus-materiaali ja lue monisteen Debuggaus-luku.
10. luento: StringBuilder, arvo- ja viitetyypit
M: 12.3 Muokattavat merkkijonot: StringBuilder
(Lue myös StringBuilder-luokan MSDN-dokumentaatio)
String- ja StringBuilderin (tehokkuus-)erot merkkijonojen toistuvassa yhdistelyssä
Olioviitteet, pino ja keko
M: 8.3 Oliotietotyyppien ja alkeistietotyyppien ero
M: 15.5 Moniulotteiset taulukot
Lue 2D-taulukot luentomonisteen täydennyksistä
14. luento: Kokoelma-tietorakenteet: Lista, Sanakirja
Vapaaehtoista lisälukemista: MjPilkkominen.cs (Kevät 2014)
Mallikoodeissa myös "Pelottava peli", jota ei ehditty luennolla tehdä.
15. luento: Näkyvyysalueet, arvo- ja viitepohjaiset muuttujat
16. luento: Funktion toteutusstrategiat, rekursio
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.
[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:
Hienot räjähdykset käyttäen ExplosionSystem-luokkaa (muita efektejä ovat liekki (Flame), savu (Smoke), valo (Light)
Tulevien luentojen aiheet ilmestyvät tähän pari päivää ennen luentoa.
Kertausta: Siirra.cs - Funktio, joka siirtää merkkejä alkuperäisestä jonosta toiseen jonoon.
M: 17. Merkkijonojen paloittelu
Alla on listattu edellisen vuoden luentoja. Voit halutessasi tutustua näihin omatoimisesti.
15. luento: Lähin piste hiirestä
Lue omatoimisesti: Muiden tekemän koodin käyttämisestä omassa koodissa ja yleisesti akateemisesta rehellisyydestä
Tehtiin Lähin rage hiirestä -peli
16. luento: Olioviitteet, Dictionary
Lue omatoimisesti: Kertaus muuttujien näkyvyydestä ja parametrin välityksestä
Muistathan että vertailuoperaattorit == ja != toimivat myös String-merkkijonojen sisällön vertailussa, toisin kuin esimerkiksi Javassa.
17. luento: Palloja karkuun
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
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
M: 17. Merkkijonojen paloittelu
21. luento: Liukuluvut, kertaus
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
intel16.txt - reaaliluvut Intelin prosesorissa
Tarkkuus.cs - esimerkki miten reaaliluvut eivät ole tarkkoja
Luentoesimerkit: Lukujen muuttamista lukujärjestelmästä toiseen
Jypelin rakenne ja missä vaiheessa kutsutaan mitäkin:
These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.