Kotisivu | Luennot | Demot | Ohjaukset | Harjoitustyö | Moniste | Työkalut | Hae TIMistä
Luennot
22. luento: Liukulukujen esittäminen tietokoneessa, kertausta (Video: HD, SD)
- Tentistä vielä: Tenttialueena on moniste kokonaisuudessaan, myös monisteen täydennykset, ''paitsi'' jypeli-spesifiset luvut ja syntaksin kuvaamiseen liittyvä luku
- Aikaisempia tenttejä voi ja kannattaa katsella täältä.
- Tehtiin SiirraMerkit-funktio loppuun
- 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
21. luento: Merkkijonojen paloittelu. Kertausta. (Video: HD, SD)
- M: 17. Merkkijonojen paloittelu
- Kertausta
- Siirra.cs - Aloitettiin tekemään luennolla funktiota, joka siirtää vokaalit (tai mitkä tahansa muut merkit) toiseen jonoon. Tätä jatketaan huomenna.
- 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
- Tentti perjantai 22.4. kello 12:00. Ilmoittaudu Korpissa.
- Luennon koodit
20. luento: Rekursio (Video: HD, SD)
- M: 21. Rekursio
- Rekursiivisen funktion idea
- Fibonaccin luvut rekursiivisesti
- Sierpinskin kolmio ja muut fraktaalit: esim. Mandelbrotin joukko, Kochin lumihiutale
- SierpinskiMatto.cs
- Wikipedia: Sierpinski triangle, kuva eräästä toteutuksesta
- SierpinskiKolmio.cs - versio jossa kolmiot piirretään viivoina
Canvas
-oliolle. Tässä versiossa mukana myös liukusäädin jolla kolmiota voi zoomata
- Lisälukemista. Opiskele omatoimisesti.
- 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 67. Tällä ratkaisulla ei ole kuitenkaan mahdollista ratkaista "isoja" puita (esim. 100 riviä). Tehokkaan algoritmin tekeminen jätetään harjoitustehtäväksi.
- 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.
- Luennon koodit
19. luento: Palloja karkuun (Video: HD, SD)
- Jatkettiin Palloja Karkuun -peliä
- PallojaKarkuun.cs
- Hienot räjähdykset käyttäen ExplosionSystem-luokkaa (muita efektejä ovat liekki (Flame), savu (Smoke), valo (Light)
- Dictionary-tietorakenne
- Luennon koodit
(PERUTTU) 18. luento: Palloja karkuun (Video: HD, SD)
- Joudun siirtämään luennon numero 18 tiistaille 15.3. lapsen sairastumisen takia.
- Jatketaan silloin Palloja Karkuun -peliä
- PallojaKarkuun.cs
- Luennon koodit
17. luento: Palloja karkuun (Video: HD, SD)
- Katsottiin Anagrammi-tehtävän "guru"-osan ratkaisu. Pahoittelut että jälkimmäisessä esimerkissä oli "hieman" haparointia :-). Tarkoitus oli tehdä \(\mathcal{O}(n^2)\) ratkaisu mutta eihän siitä mitään tullut :-). Tuli näytettyä kuitenkin esimerkki
Dictionary
-tietorakenteesta. - Aloitettiin Palloja Karkuun -peli
- Luennon koodit
16. luento: Lähin piste hiirestä (Video: HD, SD)
- Tehtiin Lähin piste hiirestä -"peli" loppuun
- Luennon koodit
15. luento: Listat. Video: HD, SD)
- Keskusteltiin muiden tekemän koodin käyttämisestä omassa koodissa (ja vähän akateemisesta rehellisyydestä)
- Käytiin läpi
List<T>
-kokoelman perusteita (List-dokumentaatio MSDN:ssä) - Tehtiin Lähin rage hiirestä -peli
- MjPilkkominen.cs (Kevät 2014)
Mä kysyn ihan silkasta mielenkiinnosta: Mikä on tämä kebab-juttu, jota tuolla Socrativessa jotkut ovat puhuneet??
—14. luento. EI LUENTOA AGORALLA.
Katsokaa viime kevään video kohdasta 22:00 eteenpäin. Osa on vähän kertausta mutta voitte sitten kelata oman maun mukaan. Videolla tehdään "Pelottava peli" loppuun.
Tuleeko pelin koodia tänne? Ja löytyisikö noista tageista enemmän juttua jostain, vai onko se jokaisen oma asia etsiä niistä lisää tietoa itse?
—Lisäsin linkin Tag-ominaisuuteen luennon 13 kohdalle. Lopullisen pelin koodit luennon 14 kohdalla. /AJL
—13. luento: Pelikenttä merkkijonosta, törmäykset, tägit, ym. (Video: HD, SD)
- Aloitettiin PelottavaPeli
- Luennon koodit
- Olioiden
Tag
-ominaisuus
12. luento: Debuggaus, moniulotteiset taulukot (Video: HD, SD)
- Tehtiin CatchHeads-peli loppuun.
- Käytiin Jypelin toimintoja: ajastimet, pistelaskuri
- Moniulotteiset taulukot (erityisesti 2-ulotteiset taulukot eli matriisit)
- M: 15.5 Moniulotteiset taulukot
- Lue myös 2D-taulukot luentomonisteen täydennyksistä
- Matriisit.cs
- Lue omalla ajalla: Wiki: Debuggaus
- Luennon koodit
11. luento: Johdatus olio-ohjelmointiin (Video: HD, SD)
- Erittäin lyhyt johdatus olio-ohjelmointiin, erityisesti perintään
- Elain-, Koira- ja Kissa-luokat
- Palikat-peli ja Palikka-luokka
- Luennon koodit
10. luento: Taulukot, olioviitteet (Video: HD, SD)
- M: 15. Taulukot
- Taulukot.cs
- Tehtiin
TulostaYksitellen
-funktio, joka palauttaa taulukon sisältö yhtenä merkkijonona, jossa on erotinmerkit mukana
- M: Oliotietotyypit, olioviitteet, M: Olioviitteiden ja alkeistietotyyppien ero
- muuttujat-muistiinpanot.txt
- Olioviitteet.cs
- Muistathan että vertailuoperaattorit
==
ja!=
toimivat myösString
-merkkijonojen sisällön vertailussa, toisin kuin esimerkiksi Javassa. - Vapaaehtoista lisälukemista: Viime vuoden kalvot olio-ohjelmoinnista (PDF) - tätä aihetta tullaan kyllä käsittelemään myöhemmällä luennolla, tässä vähän esimakua.
- Aloitettiin Catch Heads -peliä.
- Luennon koodit
9. luento: String, StringBuilder, taulukot, silmukat (Video: HD, SD)
- M: 16. Toistorakenteet
- Toistorakenteita ovat C#:ssa
while
,for
,do-while
, jaforeach
- Silmukat.cs (
do-while
)
- Toistorakenteita ovat C#:ssa
- M: 15. Taulukot
- Silmukoita voidaan käyttää taulukon alkioiden läpikäymiseen (esim. tulostaminen, summaaminen, ...)
- Taulukoita.cs
- M: 12.3 Muokattavat merkkijonot: StringBuilder
- Merkkijonot.cs
- (Lue myös StringBuilder-luokan MSDN-dokumentaatio)
String
- jaStringBuilderin
(tehokkuus-)erot
- Vapaaehtoista lisälukemista
- Miten luentojen koodi- ja muut tiedostot ladataan omalle koneelle
- Tämän luennon koodit
8. luento: Merkkijonot, ehtolauseet, ComTest (Video: HD, SD)
- M: 13. Ehtolauseet
EhtolauseEsimerkki.cs
(pisin merkkijono kolmesta)
- M: 16. Toistorakenteet
- Käytiin läpi
while
-toistorakenne. Toistorakenteita kutsutaan kavereiden kesken silmukoiksi. Silmukat.cs
. Kerrotaanluku
-muuttujaa 1.1:llä niin kauan että päästään yli 1000:n.MontaPalloa.cs
- Käytiin läpi
- Testaaminen ComTestilla. Muista asentaa ComTest Visual Studioon.
- Tee omatoimisesti Pong-tutoriaalin vaiheet 1-3. Demoissa tehdään sitten 4-7.
- Katso viime vuoden koodeista
- miten laitetaan lumiukko liikkeelle (mm. kontrollit, ajastin, painovoiman muutos)
PieninJaSuurin.cs
- esimerkki funktiosta jossaif
-lause.LumiukkoRiehuu.cs
- 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
- Tämän luennon koodit
6. luento: Aliohjelman paluuarvo, funktio ja parametrin välitys (Video: HD, SD)
- Muista: Vakiot merkitään
const
avainsanalla. Vakioiden nimeäminen, esim.const int VARPAITA = 5;
taiconst double OBJEKTIIVIN_POLTTOVALI_MM = 27.2;
- M: 9. Aliohjelman paluuarvo, eli funktiot
- Harjoitustyöstä.
- Katso omatoimisesti viime vuoden video: Versionhallinta ja harkkatyön vieminen versionhallintaan
- M: 12. Merkkijonot
- Luennon koodit
5. luento: muuttujat, operaattorit, funktio ja aliohjelman paluuarvo (Video: HD, SD)
- 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ä. Pahoittelut että nyt kysymykset menivät eri ruudulle, joten ne eivät näy nauhoituksessa. Tämä oli mun moka. Ensi kerralla laitan kysymykset nauhoittavaan ruutuun mukaan.
- M: 9. Aliohjelman paluuarvo, eli funktiot
- Esimerkkejä funktioista: Keskiarvo, Kolmion pinta-ala.
- Luennon koodit
4. luento: Visual Studio, aliohjelmat, muuttujat (Video: HD, SD)
- 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: 6.5 Aliohjelman kuormittaminen
- Lumiukko.cs - Lumiukko, jolle säde ym. parametrina
- M: 7. Muuttujat
- M: 26.3 Binääriluvut: 10-järjestelmä ja 2-järjestelmä, lukujen esitys tietokoneessa
- Lue omatoimisesti ylläoleva monisteen luku
- Esimerkki: binääriluvun muuttaminen 10-järjestelmään ja toisinpäin
- Luennon koodit
3. luento: Lumiukko, aliohjelmat, muuttujat (Video: HD, SD)
- Katso kysymykset ja vastaukset (päivittyy hiljalleen)
- 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 ja dokumentoituna.
- M: 7. Muuttujat
- M: 7.5 Muuttujien näkyvyys
- Luennon koodit
Linkit eivät toimi...
—Osa linkeistä ei vieläkään toimi
Nyt pitäisi toimia. Ilmoitelkaa jos vielä joku paikka rikki. /AJL
2. luento: Graafinen C#-ohjelma, aliohjelma (Video: HD, SD)
- M: 2. Ensimmäinen C#-ohjelma
- 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ä)
1. luento: Alkubyrokratia, komentorivi, yksinkertaisin C#-ohjelma (Video: HD, SD)
- Käytiin läpi kurssin kotisivut ja pelisäännöt
- Tutustuttiin komentoriviin.
- Lisälukemista komentorivistä: ks. työvälinekurssin moniste
- Vastaa kurssin alkukyselyyn
- Mitä ohjelmoinnilla voidaan tehdä
- Esim. GoogleMaps, Excel, Word, autojen jarrut + kaikki muu kontrolli
- MS Imagine Cup -kilpailut opiskelijoille: MS Imagine Cup 2008
- Vuoden 2009 Software design -kategorian voittaja: Upcity
- "3D-kuvaa 2D-kameralla"
- Arkipäiväisten asioiden helpottaminen, esim. monen kuvan koon pienentäminen automaattisesti.
- Motivaatio peleihin: mm. Project Natal Ces
- Esimerkkejä siitä, mitä kurssilla ja Jypeli-kirjastolla voidaan tehdä
- 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
These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.