Aikataulu (sekä linkit oppimistapahtumiin ja tallenteisiin)

Aikataulua täydennetään kurssin edetessä.

Kaikki linkit

Ajat ja paikat koko kurssin ajan

Ensimmäinen luento pidetään Zoomilla 13.1.2021 klo 14.15-16, ja siihen voi osallistua. Linkki:

Muut luennot nauhoitetaan, eikä niihin voi osallistua, mutta voit katsoa nauhoituksen jälkikäteen (ks. kohta Kaikki linkit).

Vastaanottoaika (20.1 alkaen):

  • ke 9-10 (Maarit)

Vastaanottoaikana voit tavata kurssin vastuuhenkilön ja kysellä mistä tahansa kurssin asioista (kurssin sisällöstä, järjestelyistä, tehtävistä tms.). Päivystysaika on varattu erityisesti niille kysymyksille, joita usein kysytään luennon jälkeen. Kysymyksiä voit esittää tulemalla huoneeseen TF106 tai Zoom-linkin kautta (ks. kohta Kaikki linkit).

Viikkoharjoitukset pidetään seuraavana aikana Zoomissa (18.1 alkaen):

  • ma 16-18 (Anton)

Lisäksi viikkoharjoitukset nauhoitetaan (ks. kohta Kaikki linkit).

Viikkoharjoituksissa käsitellään jotakin ennalta ilmoitettua tehtävää (tai useampaa tehtävää) edelliseltä kierrokselta. Tehtäviä ei välttämättä käsitellä loppuun asti eikä palauteta Plussaan. On siis mahdollista, että joudut vielä hieman korjailemaan harjoituksissa esitettyä koodia, ennen kuin saat sen palautettua onnistuneesti Plussaan.

Kooditorio-päivystykset pidetään Discordilla viikottain (15.1 alkaen):

  • ti 10-12 (Minna) (19.1 alkaen)
  • pe 14-16 (Pauli) (15.1 alkaen)

Linkki Discordiin löytyy kohdasta Kaikki linkit.

Projektien määräaikojen lähestyessä Kooditorio-aikoja lisätään. Lisäajat ilmoitetaan tässä sekä kunkin viikon kohdalla alempana.

Lisäajat 1. projektia varten:

  • ke 10.2 klo 10-12 (Joel, Kiti)
  • to 11.2 klo 10-12 (Joel, Wilho-Pekka)
  • pe 12.2 klo 10-12 (Joel, Kiti)
  • pe 12.2 klo 14-16 (Kiti, Esra)
  • ma 15.2 klo 10-12 (Joel, Kiti)
  • ma 15.2 klo 12-14 (Joel, Kiti)
  • ma 15.2 klo 14-16 (Wilho-Pekka)
  • ma 15.2 klo 16-18 (Pauli)

Lisäajat 2. projektia varten:

  • ke 10.3 klo 14-16 (Joel, Kiti)
  • to 11.3 klo 12-14 (Kiti, Wilho-Pekka)
  • pe 12.3 klo 10-12 (Joel, Kiti)
  • pe 12.3 klo 14-16 (Wilho-Pekka, Joel)
  • ma 15.3 klo 10-12 (Joel, Esra)
  • ma 15.3 klo 12-14 (Joel, Wilho-Pekka)
  • ma 15.3 klo 14-16 (Wilho-Pekka, Kiti)
  • ma 15.3 klo 16-18 (Pauli, Kiti)

Lisäajat 3. projektia varten:

  • ke 14.4 klo 14-16 (Joel, Kiti)
  • to 15.4 klo 12-14 (Kiti, Wilho-Pekka)
  • pe 16.4 klo 10-12 (Joel, Kiti)
  • pe 16.4 klo 14-16 (Wilho-Pekka, Joel)
  • ma 19.4 klo 10-12 (Joel, Esra)
  • ma 19.4 klo 12-14 (Joel, Wilho-Pekka)
  • ma 19.4 klo 14-16 (Wilho-Pekka, Kiti)
  • ma 19.4 klo 16-18 (Pauli, Kiti)

Lisäajat 4. projektia varten:

  • ke 5.5 klo 14-16 (Joel, Kiti)
  • to 6.5 klo 10-12 (Kiti)
  • to 6.5 klo 12-14 (Joel, Kiti)
  • pe 7.5 klo 14-16 (Joel, Kiti)
  • pe 7.5 klo 16-18 (Kiti, Wilho-Pekka)
  • ma 10.5 klo 10-12 (Joel, Wilho-Pekka)
  • ma 10.5 klo 12-14 (Joel)
  • ma 10.5 klo 16-18 (Wilho-Pekka, Esra)

Viikko 1 periodilla III

  • Harjoitukset alkavat vasta 2. viikolla.

  • Kooditorio-päivystykset on erityisesti tarkoitettu Git-ongelmiin.

    • to 14.1 klo 10-12 (Minna)
    • pe 15.1 klo 14-16 (Pauli)

    Jos sinulla ei ole ongelmia Gitin kanssa eikä muissakaan kurssin asioissa, Kooditorioon ei kannata (eikä pidä) osallistua.

Viikko 2 periodilla III

  • Luennolla: Jatketaan edellisen kierroksen aiheita (jos tarpeen). Tulkkaaminen vs kääntäminen. Muuttujat ja tyypitys (staattinen tyypitys). Kontrollirakenteet.

    Luento nauhoitetaan osissa (ks. kansio Kierros 2 Panoptossa):

    • 2: Staattinen tyypitys
    • 2: C++:n kontrollirakenteista ja operaattoreista
  • Harjoituksissa: Käsitellään 1-kierroksen tehtäviä (lähinnä tehtävää 1.5.1 Kurssin palautuskäytäntö).

  • Kooditorio:

    • ti 19.1 klo 10-12 (Minna)
    • pe 22.1 klo 14-16 (Pauli)

Viikko 3 periodilla III

  • Luennolla: Arvosemantiikka ja viitesemantiikka. Johdattelu osoittimiin. Olio-ohjelmoinnin käsitteitä.

    Luento nauhoitetaan osissa (ks. kansio Kierros 3 Panoptossa):

    • 3: Arvo- ja viitesemantiikka
    • 3: Johdattelua osoittimiin
    • 3: Olio-ohjelmoinnista
  • Harjoituksissa:

    Käsitellään 2-kierroksen tehtäviä (lähinnä tehtäviä 2.4.1 Kuutio ja 2.6.1 Tekstin salaaminen sekä ajan salliessa myös tehtävää 2.3.2 Läheisimmät tekijät).

  • Kooditorio:
    • ti 26.1 klo 10-12 (Minna)
    • pe 29.1 klo 14-16 (Pauli)

Viikko 4 periodilla III

  • Luennolla: STL:n vector-säiliö. Tieto-ohjattu ohjelmointi. Vesipisarapeli. Ensimmäinen projekti.

    Luento nauhoitetaan osissa (ks. kansio Kierros 4 Panoptossa):

    • 4: Vektoreista
  • Harjoituksissa:

    Käsitellään 3-kierroksen tehtäviä (lähinnä tehtävää 3.4.1 Mölkky-pelin pisteiden laskenta ja ajan salliessa myös tehtävää 3.3.2 Kirjaston kirja).

  • Kooditorio:

    • ti 2.2 klo 10-12 (Minna)
    • pe 5.2 klo 14-16 (Pauli)

Viikko 5 periodilla III

  • Luennolla: STL:n yleiset periaatteet: iteraattorit ja algoritmit. Lisää säiliöitä. Säiliöiden yhdisteleminen.

    Luento nauhoitetaan osissa (ks. kansio Kierros 5 Panoptossa):

    • 5: cin vs getline
    • 5: Iteraattorit ja algoritmit
    • 5: Lisää säiliöitä ja säiliöiden yhdistelemistä
  • Harjoituksissa:

    Käsitellään 4-kierroksen tehtäviä (lähinnä tehtävää 4.2.2 Merkkijonon jakaminen osiin ja ajan salliessa myös 1-projektin tehtävänantoa).

  • Kooditorio (tulevia aikoja):

    • ti 9.2 klo 10-12 (Minna) [normiaika]
    • ke 10.2 klo 10-12 (Joel, Kiti)
    • to 11.2 klo 10-12 (Joel, Wilho-Pekka)
    • pe 12.2 klo 10-12 (Joel, Kiti)
    • pe 12.2 klo 14-16 (Kiti, Esra)
    • ma 15.2 klo 10-12 (Joel, Kiti)
    • ma 15.2 klo 12-14 (Joel, Kiti)
    • ma 15.2 klo 14-16 (Wilho-Pekka)
    • ma 15.2 klo 16-18 (Pauli)
    • ti 16.2 klo 10-12 (Minna) [normiaika]

Viikko 6 periodilla III

  • Luennolla: Rekursio ohjelmoinnissa. Häntärekursio.

    Luento nauhoitetaan osissa:

    • 6: Rekursio yleisesti
    • 6: Rekursiivisen funktion kirjoittaminen
    • 6: Häntärekursio
  • Harjoituksissa:

    Käsitellään 5-kierroksen tehtäviä (lähinnä tehtäviä 5.4.2 Sanan esiintymien rivilaskuri ja 5.3.1 Sekavaa tekstiä).

  • Kooditorio (mukana myös 1-projektin lisäaikoja):

    • ma 15.2 klo 10-12 (Joel, Kiti)
    • ma 15.2 klo 12-14 (Joel, Kiti)
    • ma 15.2 klo 14-16 (Wilho-Pekka)
    • ma 15.2 klo 16-18 (Pauli)
    • ti 16.2 klo 10-12 (Minna) [normiaika]
    • pe 19.2 klo 14-16 (Pauli) [normiaika]

Viikko 7 periodilla III

  • Luennolla: Käytännön vinkkejä ja demonstraatioita: Debuggerin käyttö Qt Creatorissa ja virheiden havaitseminen eri vaiheissa (käännös, linkitys, suoritus). Projektista ja tyyliseikoista.

    Luento nauhoitetaan osissa:

    • 7: Debuggauksesta ja virheistä
    • 7: const-sanan käytöstä
  • Harjoituksissa:

    Käsitellään 6-kierroksen tehtäviä (lähinnä tehtävää 6.2.1 Verkostomarkkinointia ja mahdollisesti myös tehtävää 6.1.3 Pystysuora tulostus).

  • Kooditorio:

    • ti 23.2 klo 10-12 (Minna)
    • pe 26.2 klo 14-16 (Pauli)

Viikko 1 periodilla IV (kurssin 8. viikko)

  • Luennolla: Muisti ja muistiosoitteet. Osoittimet. Taulukot.

    Luento nauhoitetaan osissa:

    • 8: Johdattelua muistinhallintaan
    • 8: Osoittimet
    • 8: Taulukot
  • Harjoituksissa:

    Käsitellään 7-kierroksen tehtäviä (projektia). Projektista käsitellään lähinnä syötetiedoston lukemista sopivaan tietorakenteeseen sekä komentoa LINES.

  • Kooditorio (tulevia aikoja):

    • ti 9.3 klo 10-12 (Minna) [normiaika]
    • ke 10.3 klo 14-16 (Joel, Kiti)
    • to 11.3 klo 12-14 (Kiti, Wilho-Pekka)
    • pe 12.3 klo 10-12 (Joel, Kiti)
    • pe 12.3 klo 14-16 (Wilho-Pekka, Joel)
    • ma 15.3 klo 10-12 (Joel, Esra)
    • ma 15.3 klo 12-14 (Joel, Wilho-Pekka)
    • ma 15.3 klo 14-16 (Wilho-Pekka, Kiti)
    • ma 15.3 klo 16-18 (Pauli, Kiti)

Viikko 2 periodilla IV (kurssin 9. viikko)

  • Luennolla: Muistin varaaminen dynaamisesti. Dynaamiset tietorakenteet.

    Luento nauhoitetaan osissa:

    • 9: Muistin varaaminen dynaamisesti
    • 9: Linkitetty lista
  • Harjoituksissa:

    Käsitellään 8-kierroksen tehtäviä (lähinnä tehtävää 8.3.2 Opiskelijarekisteri ja ajan salliessa myös tehtävää 8.4.1 Taulukko-operaatioita).

  • Kooditorio (mukana myös 2-projektin lisäaikoja):

    • ma 15.3 klo 10-12 (Joel, Esra)
    • ma 15.3 klo 12-14 (Joel, Wilho-Pekka)
    • ma 15.3 klo 14-16 (Wilho-Pekka, Kiti)
    • ma 15.3 klo 16-18 (Pauli, Kiti)
    • ti 16.3 klo 10-12 (Minna) [normiaika]
    • pe 19.3 klo 14-16 (Pauli) [normiaika]

Viikko 3 periodilla IV (kurssin 10. viikko)

  • Luennolla: Funktio-osoittimet ja älykkäät osoittimet. Lisää dynaamisia tietorakenteita.

    Kierroksen kaikki oleelliset asiat käyvät ilmi materiaalista, joten tältä viikolta ei ole luentonauhoituksia. Lisäksi (valgrindia lukuunottamatta) kaikki tämän viikon asiat ovat sellaisia, että niiden osaaminen ei ole pakollista myöhemmillä kierroksilla eikä projekteissa. Sen sijaan valgrindin käyttöä kannattaa harjoitella, koska kahdessa viimeisessä projektissa edellytetään, että muistinhallintaan liittyviä virheitä ei saa olla.

  • Harjoituksissa:

    Käsitellään 9-kierroksen tehtäviä (lähinnä tehtävää 9.2.1 Korttien siirtelyä).

  • Kooditorio:

    • ti 23.3 klo 10-12 (Minna)
    • pe 26.3 klo 14-16 (Pauli)

Viikko 4 periodilla IV (kurssin 11. viikko, sisältää pääsiäisloman)

  • Luennolla: Modulaarisuus. Murtolukuesimerkki. Vesipisarapelin toinen versio.

    Luento nauhoitetaan osissa:

    • 11: Modulaarisuus
    • 11: Abstraktit tietotyypit
  • Harjoituksissa:

    Käsitellään 10-kierroksen tehtäviä (10.3.1 Lisää korttien siirtelyä ja 10.2.1 Nelilaskin vähän yli neljällä komennolla).

  • Kooditorio:

    • ti 30.3 klo 10-12 (Minna)
    • pe 9.4 klo 14-16 (Pauli)

Viikko 5 periodilla IV (kurssin 12. viikko)

  • Luennolla: Periyttämisen alkeet. Qt:n alkeet.

    Luento on nauhoitettu osissa:

    • 12: Periytymisestä
    • 12: Qt-demo
  • Harjoituksissa:

    Käsitellään 11-kierroksen tehtäviä (projektia). Tällöin tutkitaan projektissa valmiina annettua ohjelmakoodia assistentin johdolla. Tämä on tärkeä lähtökohta uuden koodin lisäämiselle.

  • Kooditorio (tulevia aikoja):

    • ti 13.4 klo 10-12 (Minna) [normiaika]
    • ke 14.4 klo 14-16 (Joel, Kiti)
    • to 15.4 klo 12-14 (Kiti, Wilho-Pekka)
    • pe 16.4 klo 10-12 (Joel, Kiti)
    • pe 16.4 klo 14-16 (Wilho-Pekka, Joel)
    • ma 19.4 klo 10-12 (Joel, Esra)
    • ma 19.4 klo 12-14 (Joel, Wilho-Pekka)
    • ma 19.4 klo 14-16 (Wilho-Pekka, Kiti)
    • ma 19.4 klo 16-18 (Pauli, Kiti)

Viikot 6-7 periodilla IV (kurssin 13-14. viikot)

  • Luennolla: Valmistautuminen Qt-projektiin. Esimerkit konekirjoituksesta, liikkuvasta ympyrästä ja hedelmistä. Vesipisarapelin kolmas versio.

    Luento nauhoitetaan osissa:

    • 13: GUI-projektista
    • 13: Kertausta
  • Harjoituksissa 19.4.2021:

    Käsitellään kierroksen 12 tehtäviä (lähinnä tehtäviä 12.5.1 Colorpicker ja 12.6.2 Ajastin).

  • Harjoituksissa 26.4.2021:

    Käsitellään 4-projektia. Projektista ei esitetä mitään koodia, vaan mahdollisia ratkaisuperiaatteita esitellään kierroksen esimerkkien avulla, joissa on paljon samaa koodia kuin projektissakin tarvitaan.

  • Kooditorio (mukana myös 4-projektin lisäaikoja):

    • ma 19.4 klo 10-12 (Joel, Esra)
    • ma 19.4 klo 12-14 (Joel, Wilho-Pekka)
    • ma 19.4 klo 14-16 (Wilho-Pekka, Kiti)
    • ma 19.4 klo 16-18 (Pauli, Kiti)
    • ti 20.4 klo 10-12 (Minna) [normiaika]
    • pe 23.4 klo 14-16 (Minna) [normiaika]
    • ti 27.4 klo 10-12 (Pauli) [normiaika]
    • ke 28.4 klo 12-14 (Pauli)
    • ke 5.5 klo 14-16 (Joel, Kiti)
    • to 6.5 klo 10-12 (Kiti)
    • to 6.5 klo 12-14 (Joel, Kiti)
    • pe 7.5 klo 14-16 (Joel, Kiti)
    • pe 7.5 klo 16-18 (Kiti, Wilho-Pekka)
    • ma 10.5 klo 10-12 (Joel, Wilho-Pekka)
    • ma 10.5 klo 12-14 (Joel)
    • ma 10.5 klo 16-18 (Wilho-Pekka, Esra)