-*- coding:utf-8 ; mode:org -*-

Käyttöjärjestelmien ja pilvipalveluiden perusteet, kevät 2025.

Aloitettiin maaliskuussa jälleen copy-pastella edellisen vuoden 2024
toteumasta.

Tämä on suunnitelma, joka muuttuu ajankäytön ja muun
perusteella. Pohjana on luentojen eteneminen edellisenä vuonna. Ei
mene pahasti vikaan, jos menee samalla lailla. Tosin keväällä 2023 jo
rikottiin kaavaa ja uudistuttiin tavalla, joka ennakoi lisää uutta
tälle vuodelle.

* Pelisäännöt videonauhoituksista

- Soveltuvin osin yritetään saada yhteisiä oppimistilaisuuksia
  nauhalle.

- Oletamme, että tallenteet katsotaan ja sisäistetään etenkin, jos ei
  päässyt paikalle.

- Poikkeus edelliseen voi olla, jos et näe tai kuule: etsimme silloin
  yksilölliset menettelyt, joilla voit seurata kurssia! (Sama poikkeus
  pätee muihinkin asioihin, joissa tyypilliselle opiskelijalle
  suunnattu tehtävä ei tosiasiallisesti ole mahdollinen.)

- Toissa keväänä 2023 ryhdyttiin kokeilemaan rohkeasti tällaista:

  "Luennot" olivatkin videotuotantotilaisuuksia, joissa on
  studioyleisö - eli siis opiskelijat, jotka pääsivät kulloinkin
  paikalle osallistumaan.

  Rakennettiin yhdessä studioyleisön kanssa aihepiirivideoita, joissa
  hyödynnettiin läsnävuorovaikutusta asian selkeyttämiseksi.

  Aihepiirit ja käsittely tapahtuivat linjassa kurssin
  osaamistavoitteiden, harjoitusten ja materiaalien kanssa. Kuitenkin
  niin, että studioyleisön osallistuminen, keskinäinen keskustelu ja
  kontribuutio tuotantoon mahdollistui.

  Kertyneet aihepiirivideot ovat nyt käytettävissä kunkin aiheen
  opiskeluun.

- Nyt videoita on jo paljon, ja oletus on, että niitä hyödynnetään
  opiskelussa. Keväällä 2025 kokoonnutaan yhteen keskustelemaan ja
  syventämään ymmärrystä materiaalin ja etukäteen katsottavaksi
  tarkoitettujen aihepiirivideoiden pohjalta.

  Yhteisissä tilaisuuksissa päästään toivottavasti lähinnä
  rytmittämään ja ryhmävalmentamaan tekemistä, joka tapahtuu
  suurimmalta osin tapaamisten välillä.

  Tuotetaan tarvittaessa uusia, parempia versioita aiemmista
  aihepiirivideoista, tai täsmentäviä lisäosia niihin. Tavoitteena on
  parantaa materiaalipankin laatua inkrementaalisti yhdessä, samalla
  kun opitaan käsitellyt asiat syvemmin kuin mikään vuosikurssi tähän
  asti on voinut tehdä.

  Samat pelisäännöt ja tavoitteet ovat voimassa myös uusia tallenteita
  tehtäessä.

- Uusien videoiden julkaisussa on viivettä, joka johtuu muista
  työtehtävistä. Parhaimmillaan viive voi olla 1-2 arkipäivää, mutta
  esimerkiksi loppuviikon videot saattavat tulla saataville vasta
  seuraavalla viikolla.

- Emme jälkikäteen sensuroi, joten huomaa: Kun puhut, äänesi tulee
  julkaistavaan videoon - mahdollisesti hiljaisena, koska mikrofoni on
  kiinni luennoitsijan kauluksessa. Kysymykset ja kommentit yritämme
  muistaa toistaa mikrofoniin kotikatsojia varten ja kirjata pääkohdat
  muistioon tekstinä.

- Joskus vielä tekniikka pettää, jolloin itketään hetki ja eletään
  ilman kyseistä nauhoitetta. Aihepiirivideot voidaan aina tehdä
  seuraavalla kerralla uudelleen kertauksena ja oppimisen testaamisena
  :).

- Kun katsot jälkikäteen, kokeile katsoa nopeuttuna! (Mutta jos siitä
  aiheutuu pidemmän päälle huonovointisuutta tai muita oireita, lopeta
  kokeilu tai aloita siedätysharjoittelu 110% nopeudesta, sitten 120%
  jne.)

* Vuoden 2025 kulku tähän saakka:
** Luento 1:  (ke 19.3.2025) Aloitus, yleisinfo ja suoritusvaatimukset

Tästä voidaan lukea, mitä ensimmäisellä luennolla oikein tapahtui,
kunhan se on tapahtunut klo 10:15-12:00 keskiviikkona 19.3.2025.

Runkona on copy-paste viime vuodelta.

Luennon pitävät yhdessä vastuuopettaja Paavo Nieminen ja opintojakson
toinen opettaja Jonne Itkonen.

*** Tämän päivän tavoite
    
Aloitusluennon päätavoite on kuvailla kurssin pakolliset
suoritusvaatimukset, aikataulut, deadlinet ja muu byrokraattinen
perusinfo, jotta niitä ei tarvitse sen jälkeen etsiskellä. Jotakin
luvataan ja jotakin jätetään eksplisiittisesti lupaamatta
toistaiseksi. Tästä kohtaa muistiota ja tallennetta voidaan tarkistaa,
miten nämä kevään 2025 toteutuksen osalta menivätkään.

*** Ryhmäkeskustelulla liikkeelle!

Ei rikottu vanhaa kaavaa vaan luotiin uusi. Aivan ensimmäisenä asiana
pöruistiin noin 3 hengen ryhmissä odotuksista kurssia kohtaan.

Esimerkki 19.3.2025:

- Videonauhoitus tauolle ja pöristään: Miksi olen tällä kurssilla nyt?

  Löydökset: Pakollinen kurssi. Omasta mieleenkinnosta (yksi opiskelija 60:stä)

- Jatkokysymys: Mitä odotat tältä pakolliselta kurssilta?

  Löydökset: Yleistä ymmärrystä rakenteesta, miten ohjelmistot ja
  käyttöjärjestelmä toimivat ja kommunikoivat. Miten pilvipalvelut
  toimivat? Syvempiä perusteita kuin jollain "lukiokurssilla"
  vastaavasta otsikosta tulisi. Jatkoa Tietokoneen rakenne ja
  arkkitehtuurit -kurssille. C-kielestä alkeita. Kokonaisuutta odotan
  mielenkiinnolla. "Vain tulin tänne". Konteista kova kytö saada
  tietää. Opintopisteitä odotan! Suoritusmerkintä Sisuun. Jos jotain
  jäis mieleen, se ois kiva. Avoimin mielin tullaan, tyhjä taulu
  lähtötilanteessa. Odotamme näkevämme erilaisia pedagogisia tapoja
  lähestyä tällaisia. Odotamme Paavon puujalkavitsejä.

"Taikuri paljastaa tempun" eli aikuiskouluttaja kertoo, miksi heti
kärkeen tehtiin ryhmäpörinää: Päämääränä on kasvojen tuleminen tutuksi
ja raja-aitojen madaltuminen kasuaaliin jutteluun opiskelukavereiden
kesken. Joku aito lisäarvo paikalle tulemiselle versus
videotallenteiden katselu. Oppimisyhteisön luominen. Alkuasetelmilla
on tapana jäädä voimaan, joten emme aloita byrokratiamonologilla,
vaikka sekin täytyy melko alkuvaiheessa aina tehdä.

Yritetäänpä tehdä tällaista toimintakulttuurityötä ahkerasti
jatkossakin, jotta paikalle pääsevä porukka tutustuisi toistensa
kasvoihin ja kynnys madaltuisi jutella käytävillä, ruokapöydissä ja
muualla aina kohdatessamme!

*** Pakolliset suoritusvaatimukset, arvosanat ja päivämäärät

Käydään läpi byrokratia ennen kuin mitään muuta:

- Käydään läpi määrälliset vaatimukset, jotka ovat jo näkyvillä myös
  nettisivulla: Pakolliset demot ja tentti.

  Demojen deadlinet: noin yksi viikossa, dedikset tulevat näkyviin
  Moodlessa.

Tarkentavia kysymyksiä aloitusluennolla 2025:

- Lukuisia hyviä tarkennuksia. Kannattaa tarkistaa tallenteelta.

- Kysy lisää vertaistukikanavalla!

*** Ryhmäkuva

Otetaan halukkaista opiskelijoista ryhmäkuva kurssin nettisivulle. Ei
huolta: Kuvan ottamisesta ilmoitetaan etukäteen, joten ehtii hyvin
piiloutua pöydän alle, jos haluaa.

Näin tehtiin.

*** Tauko

(Tauot yritetään aina pitää, mutta tänään oli niin hienot ja
intensiiviset yleisökysymykset, että jäi poikkeuksellisesti pitämättä)

Mikrotaukoja ja jaloitteluita muistetiin, kuten tulisi aina muistaa
tehdä. https://www.jamk.fi/fi/projekti/aktiivinen-ja-hyvinvoiva-korkeakoulu
https://www.jamk.fi/fi/artikkeli/aktiivinen-ja-hyvinvoiva-korkeakoulu-aktivoiva-breikki

"Istumista ja paikallaanoloa tulisi tauottaa 20–30 minuutin välein
vähentääkseen istumisen aiheuttamia haittoja ja fyysistä kuormitusta."

*** Mistä kurssiin liittyvät asiat löytyvät

- Käytiin läpi, mistä kaikki kurssiin liittyvä löytyy (kaikkiin löytyy
  vähintäänkin aloituslinkki kurssin nettisivulta):

  + Kaksi videokansiota: Yksi tämän vuoden luentotaltioinneille.
    Toinen erillisille, suoritusvuodesta riippumattomille
    opastusvideoille.

  + Näkymä tämän muistion HTML-tulosteeseen yliopiston
    gitlab-palvelussa. Aina viimeisin versio, jonka opettaja on
    muistanut työntää gitlabiin.

  + Luentomoniste

  + Demot ja niiden palautus Moodlen kautta:

    Demot on julkaistu toistaiseksi HTML-muodossa (linkki kurssin
    etusivulta). Joitain vuosia sitten opiskelija teki CSS-tyylin;
    tällaista aktiivisuutta arvostamme!

    Ensimmäisen demon saa aloittaa sitten, kun luennolla on käyty läpi
    siihen liittyvät varoitukset.

    Palautuslaatikko avataan aikanaan, kun olemme testanneet sen
    toimivuuden. Asiat tiedotetaan joko yhteisissä tilaisuuksissa tai
    Moodlen Uutiset-viestissä. Ei tarvitse eikä kannata "pollata"
    muutosten syntymistä ennen tiedotuksia. Hoputtaminen ei nopeuta;
    asiat tapahtuvat maksimivauhdilla rajoitteiden puitteissa.

  + Moodle-ympäristössä on demopalautukset, vertaistukifoorumi ja
    pelkästään kurssilaisten tietoon tarkoitetut salaisuudet, kuten
    tallenteiden polkuavaimet, Zoom-huone ja vastaavat. **Älä vuoda
    näitä ulkopuolisille**.

  + Materiaalin reaaliaikainen tilanne löytyy Gitlabista. Päivitysten
    julkaisu useimmiten 1-2 tunnin kuluttua luennon
    päättymisestä. Gitlabista ei tarvitse välittää muiden kuin niiden,
    jotka haluavat kehittää materiaalia. Vedokset riittävät
    opiskeluun.

  + Aikataulut Sisussa - opetus pyörii niiden mukaisesti. Muutokset
    ovat mahdollisia, mutta Sisu-kalenterin pitäisi teoriassa pysyä
    ajan tasalla niistä.

  + Tenttikokoelma takavuosilta; sitä saa hyödyntää, ja tullaan
    käymään yhdessäkin läpi opintojakson mittaan.

  + Joitakin aiempien vuosien palautteita lähinnä tiedoksi ja merkiksi
    siitä, että palautteet luetaan ja niitä hyödynnetään erityisesti
    silloin, jos on kokeiltu jotakin aiemmasta merkittävästi poikkeavaa.

** Luento 2:  (to 20.3.2025) Luentomuoto, demo-ohjeistus, varoitukset(!)
*** Päivän päätavoitteet:

- Jokainen pystyy aloittamaan demo 1:n tekemisen heti tämän luennon
  sisäistettyään.

- Sitä varten: käydään läpi varoitukset, joita demojen tekemiseen
  liittyy. Näytetään vähän, miltä homman pitäisi näyttää käytännössä,
  kun itse tekee.

- Jokainen tietää, mitä teoriapuolelta pitäisi lukea ja katsoa ennen
  kuin seuraavan kerran nähdään yhdessä.

- Eli toisin sanoen: Tämän opintojakson opiskelu on kaikilla 100%
  käynnissä!

Tehdään tänään parit aihepiirivideot, joita viime vuonna ei uskallettu
vielä toisella luennolla ryhtyä tekemään. Tästä alkaen sitten
kirjallisen lukemiston ja aihepiirivideoiden avulla mennään asioita
läpi juurta jaksaen, käytännön esimerkkejä näyttäen ja auki
selittäen. Tavoite on, että viimeistään demojen 1 ja 2 jälkeen
opiskelijat uskaltautuvat myös itse kokeilemaan samoja juttuja
omatoimisesti. *Turvallisuus- ja mukavuussyistä* alussa käsiteltävät
varoitukset on syytä ensin sisäistää! Pidemmän päälle *tutkiva asenne
ja utelias kokeileminen* on tavoitetilanne koko
yliopistokoulutuksessa, jota tässäkin nyt täten harjoitetaan.

*** Infoa keväälle 2025

Vakiokohta, mutta tällä kertaa melko tyhjä: Ei mitään uutta muutosta
tai yllätystä tiedotettavana opintojakson eilen tapahtuneen
alun jälkeen.

Ensi maanantaina yksi kappale Open labrapäivää. Selitys kannattanee
antaa tässä kohtaa.

Näitä voi tullla myöhemmin lisää opettajien kevätkalenterin
mahdollistamiin lokeroihin.

*** Vapaaehtoinen tarjonta: Sisussa olevat ryhmät ja ajankohdat

Käydään läpi, mitä tarkoittaa sisussa näkyvät tapahtumakuvaukset
"Luento", "Open labrapäivä", "Laboratoriotyöt":

- **Luento:** Vähimmäismäärä varattuja aikoja ja saleja, jotka
  alkutilanteessa näkyvät kaikkien ilmoittautuneiden
  kalenterissa. Näissä rytmitetään ja tuetaan tekemistä, ja näihin
  tullaan sitten, kun on tutustuttu meneillään olevien aiheiden
  materiaaliin ja aihepiirivideoihin ennakolta. Näissä hyödynnetään
  sitä, että ollaan yhdessä - pyritään siihen, että yksin hiljaa
  istuminen ei ole mahdollinen tapa viettää näitä tilaisuuksia.

  **Varaamme oikeuden seuraaviin muutoksiin:** Poistetaan osa
  varauksista, jos vaikuttaa, että selvitään tiiviimmällä yhteisellä
  käsittelyllä. Vaihdetaan varattuja tiloja pienemmäksi, jos se
  vaikuttaa tarkoituksenmukaiselta. Kolme ihmistä auditoriossa on
  tuntunut joskus vähän oudohkolta. Mahdollisesti pidetään osa
  tilaisuuksista täysin etämuodossa. Tehdään näitä muutoksia sitten,
  kun se näyttää olevan tilanteeseen nähden tarpeen tai kun halutaan
  kokeilla jotakin uutta pilottimielessä.

- **"Open labrapäivä"** ajoittain, opettajien aikataulun mukaisesti:
  Ajankohta, jolloin opettaja hengaa ilmoitetussa
  luentosalissa. Voidaan käsitellä tämän opintojakson asioita tai
  muuta, tai tehdä vaan hiljaa omia hommia. Alkuperäinen ajatus nimen
  takana oli "Opettajan labrapäivä" hellittelymuodossa, mutta myös
  tulkinta "Avoin labrapäivä" vastaa toiminnon tavoitetta. Yhdistetään
  vastikään käynnistettyyn Koodaamo-toimintaan, jonka ylösajoa ja
  mainostusta tässä nyt samalla tehdään!

  Koodaamon on tarkoitus olla IT-tiedekunnan vastine matematiikan
  Ratkomolle eli yhteisölliselle demotyöskentelytilanteelle.

- **"Laboratoriotyö"** huhtikuun kauniina perjantaina 25.4.2025:
  Mahdollisuus tehdä demo 4 ryhmätyönä etänä.

  Tänä vuonna tullaan tarjoamaan kyseisenä päivänä 3 vaihtoehtoista 2
  tunnin aikaikkunaa, joissa voi Zoomin kautta käydä kuittaamassa
  demon 4.

  Poikkeuksellisesti emme tarjoa fyysisesti mikroluokissa yhdessä
  tehtävää versiota.

  Demon 4 itsenäinen suoritustapa kannattaa yrittää tehdä jo
  kyseisellä viikolla kuntoon. Perjantain yhteisistunto on tukiverkko,
  jossa viimeistään saat varmasti tehtyä. Jos ei millään pääse
  osallistumaan, voi itsenäistä suoritusta jatkaa normaalisti.

  TODO: Mietittävä keväällä 2025, tarvitaanko jotain Sisu-ryhmiä
  tälle, vai olisiko vain, että tullaan paikalle kurssin Zoomiin.

  HUOM: paikan päällä tehtävä muoto edellyttää materiaalin omatoimista
  opiskelua ennen ja jälkeen live-kohtaamisen. Suoritusmerkintä
  demosta siis kuitenkin mahdollinen lyhyen läsnäolotuokion
  perusteella.

Luentotallenteella saattaa olla tarkemmat selostukset näiden
tilaisuuksien roolista. Jos et kuule ja jotakin jäi ylläolevasta
mietityttämään, pyydä toimittamaan tarkempi transkriptio tai kysy
opettajalta tarvittavat tarkennukset jälkikäteen. Pätee muuten
kaikkiin aiheisiin, jotka epähuomiossa ovat saavutettavissa vain joko
kuulo- tai näköaistilla. Korjataan tilanne tarvittaessa.

Kysymyksiä ja toivottavasti vastauksia tähän astisesta:

- ... Herääkö tälle vuotta?

*** Ryhmäpörinää


- Esittelyt: opettajat (ehtivät tulla tutummiksi kurssin mittaan),
  opiskelijat, opiskelijoiden pääaineet

- Kartoitetaan kädennosto-otannalla seuraavat toisen luentopäivän
  osanottajista:

  + Opiskelijoiden pääaineet:

    Tietojenkäsittelytiede / Tietotekniikka (LuK/FM): suurin osa

    Tieto- ja ohjelmistotekniikka (TkK/DI): toiseksi suurin osa

    Teknologiajohtaminen (TkK/DI): useita

    Koulutusteknologia: muutamia

    Tietojärjestelmätiede: ei salissa ketään tänään

    Ketä muita on: tilastotiede

*** Opintojaksototeutuksen kustomointi ja käynnistäminen

Kustomoidaan kurssin nettisivu tämän kevään kasvoilla... koreografia
on suoraan osaamistavoitteiden äärellä: laitteet, tietokoneet,
sovellukset, pääteyhteys, kuori, komentojono eli skripti.

Pidemmän kaaren tähtäyspisteet:

  + Esimerkiksi millaisiin käytännön asioihin tämä kurssi on
    ensimmäinen askel?

  Seuraisi yksi perinteinen koreografia ryhmäkuvatiedoston
  kanssa. Vuosien varrella tämä on mokattu ainakin seuraavin erilaisin
  tavoin:

  + Mikrofoni ei ollut päällä, joten tallenne oli aika turhaa käsien
    ja poninhännän heilumista.

  + Opettajan henkilökohtainen kuvagalleria edellisen kesän
    festarikuvineen luentotallenteelle - liikaa hikeä ja paljasta
    pintaa, joten joutui sensurointipuuhiin jälkikäteen.

  Katsotaan, miten tänä vuonna käy.

*** Tauko 7 minuuttia

Muistettiin pitää pidempi jaloittelutauko tänään.
Jatketaan klo 11:25 tasan.

*** Ryhmäpörinää: Esitietojen mittailua ja muuta

Tähän jotain f2f-pörinää!

Mitä äskeinen demo herätti suhteessa omaan osaamiseen?

- Skripti varmaan toimii samanlaisena toistuviin tehtäviin.

- Selvisi, miten pääsyä eri tiedostoihin voi rajoittaa
  kotisivuhakemistossa.

- Nämä varmaan pitäisi muistaa aikaisemmalta kurssilta.

- Ossamisen ja ymmärryksen eroja on tässä alkuvaiheessa.

- Meemi "Burger King foot lettuce" -tekijää olisi hyödyttänyt osata
  IT:tä ja käydä vaikka tämä kurssi. Varo, mitä tiedostoon jää sisään
  :)

*** Huomioita aiemmin tallennetuista aihepiirivideoista

Tällaisia alkuun liittyviä aiheita on ehditty tallentelemaan, ja
ajankohtaista on aloittaa alusta niihin tutustumaan. Voi olla vanhaa
tuttua aiemmilta opintojaksoilta tai muusta aiemmasta osaamisesta,
mutta sitten voi kahlata nopeammin läpi:

- Ensimmäistä kertaa JYU-tietokoneelle pääteyhteyksiä ottavalle:

  "Unix-käyttäjätunnusten aktivointi JYU:n opiskelijalle."

  Opastaa läpi askeleen, joka on saatettu tehdä jo Web-julkaiseminen
  -opintojaksolla, jos sellainen on tullut tehtyä aiemmin.

  Aktivoitumisessa on noin 15 minuutin viive viime vuosien havaintojen
  perusteella.

- Windows-käyttäjille:

  "Pääteyhteyden ottaminen PuTTYllä ja PuTTYn asetukset"

  Pääpointti: Ei saa jäädä kärsimään hankalista ilmiöistä ääkkösten,
  huonosti erottuvien värien, liian pienten kirjasimien,
  ohjemateriaaleista poikkeavasti välittyvien erikoismerkkien tai
  muunkaan kummallisen kanssa. Ratkotaan alussa pois kaikki turha!!

*** Sittenpä valmistaudutaan aihepiirivideon tekemiseen

Mikrofonitestit tehty? Opella vettä lasissa? Käsis mietittynä?
Sopivat välilehdet auki ja ruudulla front slide?

Studioyleisö hereillä ja valmiina osallistumaan, spottaamaan virheitä
ja kysymään tarkennuksia?

Sitten vaan kerralla purkkiin...

(Eka aihe on perusteltua tallentaa uudelleen joka vuosi, koska se on
niin tärkeä ja siinä yritetään saada jännityksen kautta mahdollisimman
vahvaa muistijälkeä luotua läsnäolijoille!)

*** Aihepiiri: Demo 1 käyntiin - muutama varoituskin alkuun

- Miten lähdetään tekemään demoa 1: Alkuvaroitukset ja toisaalta
  rohkaisu.

- Demojen tekemisen saa aloittaa vasta, kun on sisäistänyt varoitukset!!

- HUOM: Älä ryntäile tehtäviä läpi nopean suorituksen perässä, vaan
  pyri sisäistämään - tee omia muistiinpanoja tärkeimmäksi kokemistasi
  asioista!

*** Ennakkotehtävät ennen seuraavaa luentoa:

Luettavaa:

- Luentomonisteen alkuosa eli esipuhe ja luvut 1-2. Jos tarvitset tai
  haluat niin myös pullantuoksuinen pehmojohdanto.

- Demo 1:n varoitukset ja ohjetekstit.

Tekemistä:

- Demo 1 työn alle.

Kun tapaamme seuraavan kerran, katsotaan, missä tilanteessa ollaan:
Aihepiirivideoita on nyt kertynyt hyvin. Jotakin saattaa olla tarve
nauhoittaa uudestaan. Jotakin hyödyllistä on saattanut unohtua
aihepiirivideoista. Tai sitten tehdään jotakin muuta tilanteeseen ja
kevään kulkuun sopivaa sen pohjalta, mitä lukupaketti ja demon
tekeminen ovat siihen mennessä herättäneet ja tuottaneet itse kunkin
muistiinpanoihin! (Jos ei tullut sanottua aiemmin, niin **tee
muistiinpanoja** - se auttaa muistamista ja oppimista!!)

Ahkerasti käyttämään loput viikoittaisesta 16 tunnin panoksesta tähän
5 opintopisteen opintojaksoon.

Muista kuitenkin myös lepo ja tyhjäkäynti! Se auttaa jaksamaan taas
toiminnan hetkinä.


* Vuoden 2024 toteuma suunnitelmaksi

** Luento 3:  (ke 26.3.2025) Luentomonistetta ja muuta materiaalia päin

*** Päivän ja viikon päätavoitteet:

Fokusoidaan tekemistä kertyneen materiaalipaletin kanssa:

- Tarkistetaan tilanne ensimmäisten kotitehtävien suhteen.

- Kalibroidaan ITKA2030:n tahti. Hiukan nopeammin pitää voida olla
  tehtävissä nyt, kun Ohjelmointi 2 vähintään samaan aikaan on nimetty
  esitieto-opintojaksoksi. Alku on pitkälti kertausta ja
  syvennystä. Sen mukaisesti vauhti päälle:

  + Demot 2 ja 3 hyvin pian alta pois vaan.

  + Opettajien TODO: Tulossa olevien viikoittaisten lukupakettien
    nypläys etupainotteisemmaksi jo etukäteen.

- Matsku on jo tallennettuna, sitä vaan nyt tiuhaan tahtiin
  kotioloissa katsomaan:

  + Mm. luentomoniste, reaalimaailman dokumentaatio ja omatoimisen
    kokeilemisen työkalusto.

  + Inspirointia, tavoitepisteitä, motivointia ja "mindsettiä"

- Täydennetään materiaalia tarpeelliselta vaikuttavilla lisäosilla:

  + POSIX ja sitä kautta C on päivittynyt - siitä uutta nyt!!

  + Ja toki ne kontit on tulossa.

*** Infoa keväälle 2025

Demotarkastukset alkaneet. Toistaiseksi ei tiedossa muutoksia
aikatauluihin tai paikkoihin. Open labrapäivä -tilaisuuksia tulee sitä
mukaa kun kalentereista löytyy tilaa niille; reaaliaikainen tilanne
Sisussa, ja ilmoitetaan näissä infohetkissä luennoilla sitten myös.

Tilannekatsausta kevään kurssin kulkuun:

- Opintojakso on kestänyt viikon.

- Demo 1:n palautuslaatikkoon on tullut jo 90 palautusta. Ennätys!?
  Ilmeisesti toimii. Pyritään avaamaan Demo 2:n palautuslaatikko
  huomenna ja jatkossakin vähintään viikkorytmissä.

- Tehtävien julkaistuja versioita voi halutessaan tehdä eteenpäin
  vauhdikkaamminkin. Palautuslaatikot ja tarkastukset pääsääntönä
  viikkoittaisen tekemisen tahtiin.

- Vertaistukiryhmä (eli Moodle-alueelta löytyvä
  keskusteluaktiviteetti) lähti todella hienosti käyntiin! Antaa mennä
  lisää vaan!

*** TODO Valmistellaan, mitä ehtii ennen luentoa

- Demo 2 ohjeet kuosiin, speedrun päivitetyssä Jalavassa

- Ryhmäpörinät agendaan ennakolta

- Tsekkaa, että on aikaa kestävät videot olemassa aiheista.

- Tämänä päivän ennakkotehtävä jo eteen, eteen painottaen!

*** Oppimateriaalin pariin

Kerätään tilannetieto, mitä on, mistä löytyy, ja miten lähestytään:

- Luentomoniste: Esitellään aiemmin toteutetulla aihepiirivideolla,
  joka olisi tarkoitus katsoa, minkä jälkeen voidaan jutella aiheesta
  ja täsmentää tarvitaessa. Ehkä ei vielä 4 vuorokauden aikana ole
  ehditty aloittaa katsomaan? Nyt olisi hyvä aloittaa, niin päästään
  vauhtiin.

- Reaalimaailman dokumentaatio, jollaisen lukemistaitoon tämäkin
  kurssi koettaa valmentaa: Esitellään aiemmin toteutetulla
  aihepiirivideolla. Katsottaisiin, minkä jälkeen juteltaisiin ja
  täsmennettäisiin.

- Demotehtävät: Rullaavat nyt jo. Kukin demo esitellään aiemmin
  toteutetulla aihepiirivideolla. Katsottaisiin ensin niitä
  omatoimisesti, minkä jälkeen juteltaisiin ja täsmennettäisiin niiltä
  osin, mitä ohjeista ja aiemmalta aloitusvideolta ei vielä selviä.

- Vinkkejä demotehtäviin: Yritettäisiin tehdä demoja ensin
  alkuopastuksen mukaisesti. Sen jälkeen olisi hyvä katsoa aiemmilta
  vuosilta kertyneitä vinkkivideoita - niissä puututaan yleisiin
  väärinkäsityksiin.

  **Malta kokeilla itse ensin!** Oppiminen toimii paremmin niin, että
  teet ensin itse, mahdollisesti väärinkin, ja sen jälkeen korjaat
  käsitystä. Jos ainoastaan toistat jotakin, mitä joku toinen näyttää,
  se ei jää mieleen kovin pitkäksi aikaa, vaikka olisi miten
  täydellistä ja oikeaoppista! Toisaalta myöskään kyseenalaistamatta
  omia tottumuksia ja vertaamatta niitä muiden antamiin vinkkeihin, on
  riski jäädä paljon oppimatta myös.

  Muista kolme vaihetta, kaikki tärkeitä: käsityksen muodostaminen,
  kyseenalaistaminen ja asteittainen korjaaminen.

Tällainen on tiedossa:

- Yksi olennainen tarve on saada aihepiirivideot järkevästi
  järjestykseen ja sopivan kokoisiksi kokoelmiksi esimerkiksi
  viikoittaista tehtäväpakettia..

  Tämänhetkinen suunnitelma:

  + Opettajat koettaa järjestää Moniviestimen videokansiossa
    aihepiirejä loogisesti etenevään järjestykseen niin, että
    esitiedot edellisistä riittäisi aina seuraavaan. **Järjestys voi
    muuttua** keväällä 2024 sitä mukaa, kun käsitys loogisesta
    järjestyksestä muuttuu. Uusille videoille täytyy etsiä paikka
    aiempien keskeltä, joten aluksi voi joutua hakemaan. **Saa ja
    kannattaa ehdottaa** järjestysmuutoksia, kun huomaa jotain, mikä
    tulee liian aikaisin tai myöhään.

  + Näillä yhteisillä luennoilla katsastetaan aina seuraavan sopivan
    lukemisto- ja katselukokoelman tilanne, keskustellaan edellisestä
    ja täydennellään aihepiireillä, joita sieltä vaikutti puuttuvan.

  + Koetetaan veivata nyt **alkupuolta nopeampaan tahtiin** kuin koskaan
    aiemmin, kun videopätkiä on valmiina. Yritetään päästä erityisesti
    koodiesimerkkien pariin hyvin pian.

- Dialogisuutta ja "näätäilyä" vuosimallia 2024 voi olla tulossa:

  Mikä "näätäily"? Tsekataan vuoden 2020 opiskelijapalautteesta; katso
  luentovideolta...

  Ennakkotiedotuksena, että jotakin vastaavaa saatetaan tehdä tänäkin
  vuonna osana aihepiirivideoiden tuottamista. Silloin siis
  aihepiirinä jonkin seikan tai tenttitärpin ympärillä tapahtuvaa
  näätäilyä tositarkoituksella.

  Näätäily tarkoittaisi jotakin tällaista:

  + Tullaan kokeilemaan minikeskusteluja ja tenttitärppien pohtimista
    vieressä istuvien kanssa.

    Toimintaa mahdollisesti tukisi tilaisuuden siirtäminen
    auditoriosta tilaan, jossa on tasalattia ja käänneltävät pöydät.

    Ei huolta: Ei koskaan turhan päiten; ei koskaan aiheen vierestä;
    ei koskaan sellaista, mitä luentotallenteen katsojan ei tulisi
    miettiä kotona yksikseen samassa kohtaa luentosarjaa.

    Miksi: Koetetaan hyödyntää maksimaalisesti kaikki käytössä olevat
    puitteet, joista fyysinen luentosali (tai muu huone) on nyt yksi.

Kysymys- vastausosio edellisestä (keväällä 2024):

- Mistä tietää, mitä aiheita seuraavalla kerralla näätäillään? Tästä
  luentosuunnitelmasta, joka on jatkuvasti kurssimateriaalin
  julkisessa git-varastossa. Katso videolta esimerkki, kuinka
  esimerkiksi tässä 3.4.2024 käydyt asiat voi tarkistella ja
  annettuihin tehtäviin palata.

- Miten sitä videon soittonopeutta voi muuttaa nettisivulla?

  Kolme keinoa:

  (1) Nettisivun tekijän tarjoamat säädöt,

  (2) Omaan selaimeen asennettava lisäosa, joka tarjoaa säädöt, vaikka
  nettisivun tekijä ei olisi niitä laittanut ja

  (3) Pistä selaimesi suorittamaan sopiva Javascript-pätkä, joka
  asettaa videoelementin toistonopeuden - ainakin Chromessa näköjään
  voi tallentaa javascriptiä kirjanmerkiksi.

  Opettajan oma nykyinen suosikki on kirjanmerkkikansio, jossa on
  kirjanmerkit mallia "javascript:
  document.querySelector('video').playbackRate = 2.0;" mutta joskus
  videokuvan yläkulmaan upotettu portaaton säätöpainike on kiva, joten
  olen sellaisen lisäosankin asentanut kyllä. Löytyi googlella
  jotenkin "video speed plugin chrome" tai jotakin.

- Missä tuo playbackRate on määritelty? Videolla näytetty vastaus
  tähän piti sisällään syvemmän, tärkeimpiin osaamistavoitteisiin
  kuuluvan esimerkin speksin paikantamisesta ja tietyn yksityiskohdan
  tarkastamisesta sieltä.

*** Mietteitä, keskustelua, toiveita?

Tulimme yhteen, ja siihen on ilmeisesti se syy, että halutaan nähdä
toisiamme livenä. Hyödynnetään vaikka ideariihenä.

Toteutettiin lonkalta tällaista:

- Ensin lämmittelyjutustelu; tänään vaan ajankohtaisesti "Miten meni
  pääsiäinen"?

- Mitä odotamme oppivamme tällä opintojaksolla? Keskustelu 5 min.

  + Intuitiota ja demystifiointia käyttöliittymän ja laitteiston
    väliseen pintaan

  + Kun on käynyt aiemmin Ohjelmoinnin ja Tietokoneen rakenne
    -kurssin, niin olisiko tämä sellainen, joka kertoo, mitä siinä
    välissä tapahtuu

  + Pääseekö tällä kurssilla siihen Linuxiin käsiksi? Mihin se johtaa?

  + Toivotaan yleisempää käsitystä käyttöjärjestelmistä yleensä, ei
    vain tietystä. Toivetta olisi kokonaiskuvan osalta kuulla
    harvinaisemmista käyttöjärjestelmistä ja sitten myös
    ns. tunnettujen markkinajohtajien välisistä isommista eroista.

  + Tutustumista uusiin ohjelmointikieliin

  + Tehotyökaluja pinnan alle pääsemiseen. 

  + Kädentaitoja ja soveltamista

  + Miten eri prosessorityypit otetaan huomioon käyttöjärjestelmissä?

  + Pieni kosketus assembleriin olis kiva

  + Jotain uskomatonta skriptien kirjoittamista

  + Yleisempää tietoa käyttöjärjestelmistä ja tapoja optimoida
    toisteista työtä skriptien avulla

  


*** Ennakkotehtävät ennen seuraavaa luentoa:

Luettavaa:

- Luentomonisteen alkuosa eli esipuhe ja luvut 1-2. Jos tarvitset tai
  haluat niin myös pullantuoksuinen pehmojohdanto.

- Demo 1:n varoitukset ja ohjetekstit.

Katsottavaa:

- Videot sekä tämän vuoden kansiosta että pitkäkestoisesta kansiosta,
  jotakuinkin demo 2:n alkuohjeistukseen saakka. Demo 2 annetaan
  tehtäväksi ylihuomenna, jolloin sitä voidaan luennolla tarkentaa,
  mutta ei opasteta uudestaan sitä, mikä aiemmalla videolla jo
  kerrotaan. Tämä "käänteisen luokkahuoneen" idea nyt mahdollinen
  aihepiirivideoiden avulla. Muistakaa katsoa nopeutettuna ja tehdä
  samalla käytännön harjoituksia, joita videoissa toivottavasti
  muistetaan kehottaa tekemään.

Tekemistä:

- Demo 1 valmiiksi ja palautukseen.

Kun tapaamme seuraavan kerran, katsotaan jälleen, missä tilanteessa
ollaan: Viime vuonna aihepiirivideoita uskallettiin ryhtyä tekemään
vähän myöhemmässä vaiheessa, joten saattaa olla tarvetta tuottaa
muutama ihan uusi aihepiirivideo alkupuolen aiheista. Tai sitten
tehdään jotakin muuta tilanteeseen ja kevään kulkuun sopivaa sen
pohjalta, mitä lukupaketti ja demojen tekeminen ovat siihen mennessä
herättäneet ja tuottaneet itse kunkin muistiinpanoihin

- Vakiomuistutus: **Tee muistiinpanoja!** Se auttaa muistamista ja
  oppimista! Eikä kysymykset unohdu sitten niinä hetkinä, kun on
  mahdollisuus kysyä .

Ahkerasti käyttämään seuraavan opintoviikon 16 tunnin panos tähän 5
opintopisteen opintojaksoon.

Muista myös lepo ja tyhjäkäynti! Se auttaa jaksamaan taas toiminnan
hetkinä.

** Luento 4:  (to 27.3.2025) Asiassa eteenpäin 
*** Tämän luennon tavoite

- Päivän lopuksi tiedetään, mitä seuraavaksi pitää tehdä ennen
  seuraavia yhteisiä tapaamisia: Demo 2 ohjeteksteineen ja monisteen
  luvut 1-4. Ja aina aiemman kertaamista "uusin silmin"!

- Koetetaan tehdä mahdollisesti aikaakin kestäviä aihepiirivideoita,
  studioyleisön tarkkaavaisten huomioiden ryydittämänä.

*** Tilannekatsaus kevääseen 2024

- Demoja on palautettu jo tosi hyvin: Tänään klo 10:00 oli 105
  opiskelijalla Demo 1 tilassa Palautettu. 25 enemmän kuin viime vuonna
  tässä vaiheessa. Voititte siis alkukiihdytyksen viime vuoteen
  verrattuna. Mahtavaa!!

  Tarkastukset alkaneet. Jatkamme sitä tahtia kuin vaan
  ehditään. Uutiset-viestikanavalle tulee viestiä siinä vaiheessa, kun
  jokin merkittävä etappi on saavutettu - esimerkiksi kaikki demo 1:n
  ensimmäiset palautukset tarkastettu.

- Unohtui kait mainita demoista: Niistä tulee numeroarvio, joka **ei
  vaikuta** kurssiarvosanaan!! Niistä voi ajatella matkan varrella
  saatavana formatiivisena palautteena, jonka avulla voi fokusoida
  omaa tekemistään. Hyväksyttyjä demoja **ei tarvitse palauttaa
  uudestaan**.

- Arvio 0 tarkoittaa, että demo ei ole vielä hyväksytty, vaan se
  täytyy korjata ja palauttaa uudelleen.

- Voiko demoja palauttaa uudelleen, jos esimerkiksi labrapäivässä
  huomaa, että osaisikin tehdä sen nyt paremmin?

  Opettajien TODO: Yritämme laittaa Moodle-asetukset kuntoon siten,
  että olisi mahdollista päivittää aiempaa vastausta siihen asti, kun
  tarkastus tapahtuu...

  Aiemmin hyväksyttyä ei siis tarvitse palauttaa uudelleen.

- Jos olen aiempana vuonna tehnyt jo vaikka demot 1 ja 2, mutta sitten
  jäänytkin kesken, niin kuinka toimin?

  Tee vaan uudelleen - joko se on minuutin homma tai sitten on
  syytäkin kerrata ja opetella uudestaan.

Kysymyksiä uusia kevään kulusta tänään?

Sitten päästään miettimään, mitä on mielekkäintä tehdä tänään. Muutama
uusi aihepiirivideo tarvittaneen demo 2:n aloittamisen lisätueksi. Muu
riippuukin sitten siitä, kuinka paljon on ehditty katsoa ennakkoon...


*** Pikku näätäilyt

Ryhmäkeskustelu 5 minuuttia:

- Mikä jännittää tämän aihepiirin opiskelussa?

Yhteenveto ja valmentajien tsemppiviestit nauhoitettiin tauon jälkeen.

*** Tauko 12 minuuttia

Jatketaan tasan 11:15.

Opettajat muistaa laittaa mikit päälle sitten... 

*** Yhteenveto päivän keskustelusta: Mikä jännittää aluksi?

Yhteenvetoa:

- Vaikeustason ja työmäärän kehittyminen opintojakson mittaan

- Liittyen edelliseen: Kun eka demo oli helppo, niin jatkuuko sama vai
  vaikeutuuko?

- Eka demo oli mukavaa, mutta mitenkähän käy jatkossa... jos
  komentorivin käyttäminen ei ole tuttua...

- Miten vältytään "tuhoisilta komennoilta", joita käytiin ekalla
  luennolla läpi.. Miten saa korjattua tuhot, jos ja kun käy...

  Tarkennus: Jos olisin linuxin juurihakemistossa, ja suorittaisin
  täyden poistokomennon, niin estäisikö käyttöoikeudet vahinkojen
  tapahtumisen?

  Mietittiin asiaa ja todettiin, että EI ESTÄISI vahinkojen
  tapahtumista omiin tiedostoihin, joihin itsellä on oikeudet. Muiden
  tiedot ovat turvassa.

  Videolta voi taas katsella, kuinka opettaja hiukan hikoilee, koska
  vahinko on viretty esimerkin vuoksi yhden näppäimen painalluksen
  taakse... Mutta saa ilmeisesti vielä olla töissä ensi viikollakin,
  koska mitään ei tuhoutunut! Vastuullista ja rauhallista
  työskentelytapaa opetellaan - meidän vaarat ovat joka tapauksessa
  pienempiä kuin esimerkiksi kemian laboratoriossa myrkkyjen kanssa
  väsäillessä...

- Miten esitietoni riittävät, kun on mainittu niin monta valinnaista
  esitieto-opintojaksoa, joista "olisi hyötyä".

- Miten saa pysyttyä tässä mukana, että ei jää jälkeen. Miten löytää
  aikaa?

- Laaja aihepiiri - miten onnistuu saamaan ydinasiat käsiin? Tässähän
  on satoja sivuja materiaalia ja tuhansia sivuja speksiä...

- Yhtä ryhmää ei jännitä yhtään...


*** Seuraava ennakkotehtävä

Luettavaa:

- Luentomonisteen luvut 1-4.

- Demon 2 ohjetekstit.

- Huomaa, että myös aiempiin on aina hyvä palata "uusin silmin", kun
  asiat tarkentuvat myöhemmissä kohdissa.

Tekemistä:

- Demo 1 valmiiksi ja palautusjärjestelmään!

- Demo 2 työn alle.

Katseltavaa:

- Videot tähän saakka: Luentojen 1-4 kertymä 2024-videoista. Demon 2
  ohjeisiin ja vähän siitä eteenpäinkin pitkäkestoisista
  aihepiireistä.

Huomioitavaa:

- Jo luvussa 3 on kuoressa tehtyjä esimerkkejä, joita on tarkoitus
  alkaa kokeilla luovasti myös itse sitten, kun demo 1 & 2 hahmottuu
  ja tekstimuotoinen koneen käyttö alkaa olla turvallisen tuntuista ja
  omalla mukavuusalueella. Koetetaan päästä siihen pisteeseen pian.

- Demoilla 1-2 haettava tavoite on saada kuoren, pääteyhteyden ja
  screenin käyttö tuotua omalle mukavuusalueelle! Tämä vaatii paljon
  harjoitusta ja energiaa, joka on sitten koko myöhempää elämää varten
  alta pois!

- Monelle nämä alkupään asiat ovat jo vanhaa tuttua asiaa. Haasteemme
  sille porukalle: Jakakaa viisautta ja kokemusta niille, joille asia
  on uutta. Omalta kohdalta koettakaa hioa omaa tutkivaa asennetta ja
  viedä omaa osaamista seuraava askel pidemmälle. Esimerkiksi
  POSIX-standardiin tutustuminen tai uusien ominaisuuksien etsiminen
  tutuista työkaluista on toivottavaa.

- Vakiomuistutus: **Tee muistiinpanoja!** Se auttaa muistamista ja
  oppimista! Eikä kysymykset unohdu sitten niinä hetkinä, kun on
  mahdollisuus kysyä .

- Muistutellaanpa, että 5 opintopistettä 8 viikossa tarkoittaa
  keskimäärin 16-17 tuntia viikossa tehokasta tekemistä. Muista tauot
  ja lepo, koska muuten ne varsinaiset tekemisen hetketkään eivät ole
  niin tehokkaita kuin voisivat olla!

** Luento 5:  (ke 2.4.2025)  (P/J) Muistiinpanojen vertailua

*** Päivän ja viikon päätavoitteet:

- Verrataan muistiinpanoja tähän astisesta. Esilukemistona tähän asti
  oli: monisteen luvut 1-4 ja demojen 1-2 ohjetekstit.

- Pyritään nyt kiihdyttämään esitieto- ja kädentaito-osuuden
  ohjeellista tahtia, kun aihepiirivideot on jo aimmin tallennettu ja
  kaikkein todennäköisimmät yleisökysymykset niissä käsitelty.

- Tehdään tarpeen mukaan tarkentavia aihepiirivideoita tai uusia
  versioita aiemmista aihepiirikäsittelyistä.

- Pyritään saamaan aika nopeasti haltuun myös C-kieli ja debuggeri,
  eli Demo 3 ja myös demo 4:n ennakko-ohjeistus aika pian käyntiin ja
  "Hei maailma" -aihepiirivideoiden tyyppisiä ohjattuja ja itse
  keksittyjä kokeiluja tekemään!

- Kokeile tehdä muistiinpanoja paperiin myös paikan päällä;
  esimerkiksi avainsanoja, joista haluat kysyä tarkennusta, kun tulee
  kysymys-/vastaushetki. Kysymys tuppaa unohtumaan, jos ei siitä heti
  merkkaa ylös jotakin pientä muistikasta.

*** Infot keväälle 2024

Tilannekatsausta:

- Katsotaan ja tiedotellaan, missä mennään... aika paljon olisi
  opettajillakin ollut hommaa tähän mennessä: Demotarkastukset,
  aihepiirivideoiden järjesteleminen, lähestyvien läsnädemojen
  valmistelu, ulkopuolisen aikataulupaineen alaisten ennakkotentin
  speksaus, Open labrapäivien allokointi kalenteriin ... mitä on
  ehditty tähän mennessä?

  + Demotarkastuksissa etappi ja toimintaohjeet ilmoitettu - varmista,
    että saat Uutiset-kanavan tiedotteet.

  + Aihepiirivideot vaikuttaisivat olevan OK muutamia eteenpäin

  + Pari Open labrapäivää löytyi: Huomenna etänä, ensi viikolla
    luokassa. Nämä julkaistaan Sisussa, josta ne saa halutessaan omaan
    kalenteriin myös ilman ryhmäilmoittautumista toiminnolla, jota
    olen nähnyt käytettävän. Joku "Näytä omassa kalenterissa" tmv.

- Mitä muuta meneillään.. tsekataan. Ei tullut mieleen, mutta olihan
  tuossakin jo edistystä viime kerralta.

*** Tilanteen mukaista toimintaa tässä

Keskustellaan luku-, katselu- ja tekemispaketista. Vertaillaan
muistiinpanoja niin sanotusti.

Kietaistaan uusia aihepiirivideoita tarpeen ja pyyntöjen
mukaan. Joitain onkin jo jonossa.

Muistetaan päätavoitteet siinä, mitä tehdään.

Alla viime vuoden (2023) vitosluennon muistiosta vielä toistaiseksi.

*** Vertaillaan muistiinpanoja!

[Keskusteltiin, minkä jälkeen tauko 15 minuuttia.
Yhteenveto seuraavasta videolle tasan 15:15 alkaen.]

Lämmittelykeskustelu: Mitä olet ehtinyt tehdä auringossa? 4 min.

Aihekeskustelu: Missä vaiheessa kukin on materiaalin ja
muistiinpanojen kanssa? 6 minuuttia.

Yhteinen tilannekuva studioyleisöstä, kerätään tähän ja tallennetaan
nauhalle:

- Oltiin jo demossa 3, mutta kaikki eivät yhtä pitkällä. "Hyvällä
  mallilla kaikki". Muistiinpano-osastolla olisi kehitettävää.

- Neloslukuun asti saatu luettua ja demot 2 asti keskimäärin tehty.

- Demo 2 ei vielä aloitettu, eikä muistiinpanoja vielä aloitettu.

- Kaikki mukana kurssilla vielä. Muistiinpanometodi on hakusessaan,
  eli mitä ja miten kannattaisi laittaa muistiin? Komentoja muistiin
  listaksi? Käsitteitä listaksi? Voisiko demoa tehdessäkin heittää
  jotakin muistiin?

- Silmäilty lukua 4, luvusta 2 tehty itselle muistiinpanoja. Demo
  2:een tutustuttu, mutta ei vielä palautuskunnossa. Videoita katsottu
  tuplanopeudella.

- Demo 2 tehty tai melkein tehty. Lukeminen luvussa 3.

- Muistiinpanot aika alkeellisia - etsinnässä menetelmät
  muistiinpanojen tekemiseen. Demo 1:n korjaaminen menossa.

Toimenpideyhteenveto:

- Lukupaketti ilmeisesti sopivan kokoinen. Jos meinaat jäädä jälkeen,
  koeta ottaa pari harppausta (rauhallista tekemisen aikaa) ja kysyä
  tarvittaessa apuja esimerkiksi Open labrapäivässä.

Vinkkejä muistiinpanojen tekemiseksi (vertaisryhmältä 2024):

- Komentoja muistiin listaksi? Ilman muuta. Rakenna uudesta aiheesta
  "Cheat sheet" eli lunttilappu siihen asti, kunnes asia menee
  refleksiksi.

  Valmiit cheatsheetit ovat jännittävien ominaisuuksien
  konvehtirasioita.

  Tämä sama muuten pätee kivasti myös näppäinohjattuihin ohjelmiin,
  kuten Emacs, Vim, Screen, Bash, gdb, mutta myös tehotyökaluihin
  kuten IDEt, DAWs, CADit, 3d-mallinnussoftat, ...

- Voisiko demoa tehdessäkin heittää jotakin muistiin? Ilman muuta!

- Käsitteitä listaksi? Joo, ja kartoiksi ja kuviksi, tai muuta mikä
  auttaa itseä.

- Niin sanotut alleviivaukset ovat mahdollisia sähköisin
  välinein. Kaupallisia tuotteita löytyy (esim. Amazonin Kindle, joka
  mahtuu taskuun) ja löytynee myös ilmaisia
  vaihtoehtoja. PDF-lukijoissa on vakio-ominaisuutena huomiokynä
  tmv. annotaatiot.

- [Jonnen muistutus]: Tuore tutkimus toteaa, että aidon tai
  mahdollisimman aitokirjaiseksi tehdyn digitaalisen kirjan
  lukemisesta oppii tehokkaammin kuin muilla välineillä.

  [Eriävä näkemys]: Toisaalta esimerkiksi lukujen välillä selailu on
  digitaalisessa lukijassa helpompaa kuin paperikirjassa.

- Jos tekee nopeasti avainsanamuistiinpanoja, niin ne kannattaa
  kirjoittaa puhtaaksi aika pian tilaisuuden jälkeen, koska muuten ne
  unohtuvat.

- Huomatkaa kotitehtävänä googlettaa Cornell Note Taking System.

- Toinen googleteltava voisi olla "sketchnotes"

*** Lukupaketti lähipäiville meillä olisi olemassa ja tiedotettuna
Tällaisten parissa mielellään oltaisiin työskentelemässä:
- Monisteen luku 3 "Hei maailma - johdattelua tietokoneeseen".
- Monisteen luku 4 "Konekielisen ohjelman suoritus".
- Demojen 1 ja 2 ohjetekstit ja omatoimiset kokeilut.
- Kestomuistutus: 5 opintopistettä 8 viikossa tarkoittaa keskimäärin
  16-17 tuntia viikossa tehokasta tekemistä. Muista tauot ja lepo, koska
  muuten ne varsinaiset tekemisen hetket eivät ole enää tehokkaita!

** Luento 6:  (to 3.4.2025)  (P/J) Karhuluento ("opettajat opettaa")
*** Infot keväälle 2024

- Tänään klo 11:50 tulee kollega esittelemään tutkimusta, johon
  luvattiin virka-apuna kattava tiedotus sopivalle kohderyhmällä tämän
  kurssin videojakelun kautta. Tutkimukseen osallistuville arvotaan
  palkintoja.

  Tutkimuksen esittelystä on erillinen video ja siitä tulee
  Uutiset-viesti, jossa on lisätiedot, ohjeistus ja linkki kyselyyn.

- Ovatko opettajat ehtineet jutella läpi tarkennuksia tulevaan? Ovat!
  Käydään läpi Sisusta:

  + Tiistaiaamu 23.4.2024 klo 8:15-10:00 mikroluokassa opettajien
    yhteenveto-osuudet nauhoitettaisiin mahdollista myöhempää käyttöä
    varten.

  + Keskiviikkoaamu olisikin etänä Zoomilla, ei fyysisessä mikroluokassa.

  Sisun asetukset on nyt korjattu: Omaa ryhmäilmoittautumista pystyy
  muuttamaan. Ilmoittautumiset eivät kuitenkaan ole ns. "sitovia" eli
  voi tulla haluamaansa ryhmään. Ilmoittautumistieto auttaa varautumaan.

*** Tämän luennon tavoite

- Päivän lopuksi tiedetään, mitä seuraavaksi pitää tehdä ennen
  seuraavia yhteisiä tapaamisia: Demo 3 ohjeteksteineen, monisteen
  luvut 1-4 uusin silmin ja aiempaa vahvistaen. Ihan alkua luvusta 5?
  Ei vaan **Rohkeasti** jo 2024 isompi haukku luvusta 5!

- C-kieleen ja Demo 3:een liittyvät videot keväältä 2023 ovat edelleen
  käypäisiä, joten tänään voidaan tehdä jotakin uutta.

- Ideapankista ainakin muutamia jo kertyneitä aiheita. Koetetaan
  lisäksi muistella demo 1:n ja demo 2:n tekemistä, olisiko siellä
  muistiinpanoihin jäänyt jotakin askarruttavaa, mitä voisi väännellä

*** Seuraava ennakkotehtävä

Luettavaa:

- Luvut 1-4 uusin silmin, vahvistaen ja sisäistäen.

- Demon 3 ohjetekstit.

- Lukua 5 jo alustavasti eteenpäin.

Tekemistä:

- Demo 2 valmiiksi ja palautusjärjestelmään!

- Tarkista demoihin 1-2 liittyviltä erillisvideoilta, että olet
  oppinut niissä käsitellyt asiat. Videot syntyivät 2 viime vuoden
  aikana palautteeksi useiten havaituista ongelmista ekoissa demoissa.

- Demo 3 työn alle.

- Tee käytännön kokeiluja esitetyistä asioista!
  
Kestomuistutus: 5 opintopistettä 8 viikossa tarkoittaa keskimäärin
16-17 tuntia viikossa tehokasta tekemistä. Muista tauot ja lepo, koska
muuten ne varsinaiset tekemisen hetketkään eivät ole niin tehokkaita
kuin voisivat olla!




*** Aihepiiri: Kuoren muuttaminen toiseksi kuoreksi komennolla exec

Video, joka tulevaisuudessa suositellaan katsottavaksi nopsaan ihan
alussa pääteyhteyden opiskelua.

Muutama asia hyvin lyhyesti ilman sen syvempää perustelua:

- Todetaan, minkä kuoren etäpalvelin käynnisti kirjautumisen
  yhteydessä.

- Vaihdetaan kuori toiseksi taikasanalla "exec toinenkuori -l" (pikku
  ällä)

- Todetaan, että kuori vaihtui

- Vaihdetaan vielä, ja vaikka vielä ja vielä, että varmasti osataan.

- Kun teet kokeiluja jonkin ohjeen tai vinkin avulla, kannattaa
  käyttää juuri sitä kuorta, jolle vinkit on tehty. Silloin ei tule
  yllätyksiä.

- Jätetään mieleen, että kuori nimeltä bash on melko yleinen, ja sille
  löytyy todella iso määrä hyviä ja huonoja vinkkejä netistä. 

Perusteluiden aika on melko pian, koska tämän jakson
osaamistavoitteena on ymmärtää ja kyetä soveltamaan näitä ja monia
muita temppuja aina tarvittaessa.

*** Tauko 12 minuuttia

*** Aihepiiri: Mikä on terminaalimultiplekseri screen?

Tämä video on henkistä tukea omatoimiseen opetteluun tutoriaalien
avulla - esimerkiksi Jyväskylän yliopiston
käyttöjärjestelmäopintojakson toisen viikkoharjoituksen eli "demo 2:n"
alkuvaiheessa.

Näytetään käytännössä ja demo 2:n ohjekohtaan viitaten - spoilaamatta
varsinaista opiskelua lukemalla ja kokeilemalla itse.



** Luento 7:  (ke 9.4.2025) (P/J) Tilanteen mukaista toimintaa

Yritetään aina käynnistää mahdollisimman lähelle 14:15! Säädöt
kestävät joskus, kun ollaan "kiertolaisina" erilaisissa
luentosaleissa... Miten käy tämän päivän kilpajuoksussa tekniikkaa
vastaan :-)

*** Päivän ja viikon päätavoitteet:

Open labrapäivä oli juuri äsken livenä mikroluokassa - sieltä
luultavasti kertyy jotakin terveisiä ja ideoita
käsiteltäväksi? Lisäksi on jo ideapankissakin tavaraa. Lisää saa
ehdottaa. Tärkeätä myös keskustella, koska ollaan tultu yhteen.

- Kohti ensi viikkoa ja puolivälin ryhmätyöpajaa: Onhan kaikki selvää
  sitä varten, mm. pajaan tullessa mielellään Demo 4 ohjetestit
  luettuna

- Asioiden järjestelmällistä käsittelyä eteenpäin aihepiirivideoiden
  muodossa.

*** Infoisku keväälle 2024

- Ensi viikolla tapahtuu "Demo 4 porukalla" - mitä tämä tarkoittaa!?

  Tutustu jo tällä viikolla Demon 4 ohjetekstiin, joka kertoo C-kielestä.

  Ilmoittaudu Sisussa itselle sopivaan "Laboratoriotyö" -sessioon.

  Tule paikalle näkemään porukkaa livenä, niin saat demon 4 suoritettua.

  Mutta jos on flunssaoireita, pysy kotona.

  Huomaa poikkeukset, joista tiedotettiin viime viikolla ja Sisussa.

  Itsenäinen suoritusmahdollisuus tietenkin on, mutta se avataan
  myöhemmin, ettei jäädä sen takia kotiin jumimaan, että demo on jo tehty.

  Oppimiseen pelkkä suoritus ei riitä, vaan tarvitaan aikaa, kokeiluja
  ja toistoja asian parissa. Ei siis mitään uutta auringon alla.


*** Lukupaketti tällä hetkellä:

- Demo 4:n ohjeistus (maanantaihin mennessä luettuna)

  Täsmennys: Tässä vaiheessa kyseessä on "demo 4" eli d04_c.html
  Vasta ensi viikolla on "demo 4b" eli d04_miniasmit.html

- Monisteen lukua 5 eteenpäin

- Aiempia asioita uusin silmin ja kertaillen, kuten aina.













*** Aihepiiri: Tiedosto-oikeuksien kokeileminen JYU:n suorakäyttökoneella

Pari keinoa omatoimiseen kokeiluun täällä meillä JYU:ssa.

- Videolle kertyi uhkarohkeitakin kokeiluja.

- Studioyleisö oli hienosti hereillä, ja aiheessa käväistiin syvällä

- Lopussa rohkaisu kohti osaamista ja ymmärrystä sekä niiden kautta syntyvää turvallisuuden tunnetta

*** Tsemppikeskustelu paikan päällä

Tehtiin pari keskustelukierrosta läsnäolijoiden kesken. Tätä ei
tallennettu.

** Luento 8:  (to 10.4.2025) (P/J) Tilanteen mukaista toimintaa
*** Tämän luennon tavoite

- Päivän lopuksi tiedetään, mitä seuraavaksi pitää tehdä ennen
  seuraavia yhteisiä tapaamisia: Demo 4 ohjeteksteineen, monisteen
  luvut 1-5, alkuviikolla jo lukua 6. Aihepiirivideoista voi saada
  tukea ja oppiminen tapahtuu omatoimisen kokeilun kautta.

- Näätäillään tositarkoituksella: Nyt on luettu jo aika paljon asiaa,
  niin selvitellään, mikä sieltä tarvitsisi lisää rautalankaa.

- Aihepiirivideoita: Rautalangan vääntämistä uusista ja aiemmin
  toivotuista aiheista.

- Mahdollisesti ryhdytään katselemaan tenttiä. Tehdään sitäkin
  "näätäillen" yksin-ryhmissä-kaikki -tyyppisellä pohdintatehtävällä.

*** Seuraava ennakkotehtävä

Lukemista:

- Demo 4 ohjeteksti; tärkeä ensi viikon demo 4 -ryhmätöitä varten!

- Monisteen luku 5 ennen demo 4 -ryhmätyötä.

- Monisteen luku 6 heti demo 4:n jälkeen.

Katsomista:

- Aiemmin tallennetut aihepiirivideot ovat loogisessa järjestyksessä
  jo ainakin Demo 4b:n alkuopastukseen asti, ja aika hyvin siihen
  liittyy "Little Man Computer" sekä "Havainnekuvien
  piirtäminen". Vaikuttaisi olevan tie selvä. HUOM: "Esimerkkikoodien
  lataaminen" -aihepiiri siirtyi pikkuisen aiempaan kohtaan, ja tulee
  jo heti demo 4:n jälkeen.

Tekemistä:

- Demo 3 valmiiksi ja palautus + asioiden sisäistäminen

- Omatoimista kokeilua, kun rohkeus niihin karttuu.

Kestomuistutus: 5 opintopistettä 8 viikossa tarkoittaa keskimäärin
16-17 tuntia viikossa tehokasta tekemistä. Muista tauot ja lepo, koska
muuten ne varsinaiset tekemisen hetketkään eivät ole niin tehokkaita
kuin voisivat olla!

*** Infot keväälle 2024

- Ensi viikon alussa tosiaan tapahtuu "Demo 4 porukalla":

  + Ryhmäharjoite

  + **Mielellään paikalla siten, että päästään aloittamaan aina vartin
    yli!!** Aikaisintaan 90 minuutin päästä vasta pääsee pois. Demo 4
    suoritus: olet läsnä, kun ope kirjaa, että olit läsnä.

  + Harjoitteesta vauhtia tekemiseen - oman session jälkeen
    viimeistään voi edetä luentomonistetta ja aihepiirivideoita
    eteenpäin, mm. "Demo 4 havaintoja tekemisestä" ja siitä eteenpäin.

*** Tauko

Tauon jälkeen muistettava: Äänitesti, videokalvo, nauhoitusnappi.

*** Aihepiiri: Hupsista vaan, täytin verkkolevyni satunnaisella tauhkalla..

Havainto demo 1:n tarkastusten yhteydessä: Vaikka ei vaarallista, niin
kuorella on helppo tehdä itselleen vahingossa kaikenlaisia "jekkuja"
kuten tiedoston tulostaminen itsensä perään äärettömän monta kertaa
heksavedoksena.. Ctrl-C pysäyttää meneillään olevan, ja aika monet
viritykset voi purkaa, kun rauhassa tekee.

*** Näätäilyt: Mikä kohta on jäänyt epäselväksi tähän asti (luvut 1-5, demo-ohjeet 1-4)

Lämmittelyksi:

- Mikä on ollut kivointa tällä viikolla yliopistolla tai muualla?

3 minuuttia.

Ryhmissä:

- Vertaillaan muistiinpanoja, ja etsitään ehdotus:

  Mikä asia tähän asti tarvitsisi lisää selvennystä?

  Minkälaista?

7 minuuttia.

Yhteenveto ryhmittäin:

- Monisteen nelosluku oli raskas ja vaikealukuinen. Tuli paljon uusia
  asioita, eikä tullut yhdellä lukemisella valmiiksi.

  Keskustelua: Demo 4b tulee auttamaan luvun 4 selventämisessä. Demon
  ajoitus on ehkä vähän myöhässä suhteessa lukemistoon. Samoin
  aiheesta nauhoiteltu video on tänään (19.4.2024 vähän myöhäisessä
  vaiheessa katsomisjärjestystä)

- Vimiä ja emacsia ei varmaan kukaan ota haltuun kerralla. Tämä on
  vielä vaiheessa. Monisteessa on tiivistä asiaa paljon - siihen
  varmaan pitää palata vielä uudelleen, kun kokemusta
  kertyy. Alkupäässä sivutaan hyvin nopeasti asioita, joista ei vielä
  kuitenkaan anneta yksityiskohtia - tämä vähän hämmensi.

- Kun ei ole aiempaa kokemusta, niin uudet eteen tulevat asiat
  kuormittavat, esimerkiksi C-kääntäjän käyttäminen kuoresta.

  Pienet osatehtävät / "lämmittelyt" auttavat, esimerkiksi demon 3
  Hello world -osio. Kuormitus tulee sitten isommasta askeleesta,
  kuten demon 3 palautustehtävä, jossa on jo 90 riviä.

  Selitys kääntämiselle, linkittämiselle tulee Ohjelmointi 2:n
  lisäosissa selkeämmin kuin tämän kurssin materiaalissa.

Opettajan jälkihuomiot:

- Materiaali on rakennettu suunnitteluperusteella, jonka mukaan
  asteittainen tarkentuminen ja alkushokki ovat tarkoitettuja
  tunteita. Perustuu myös siihen, että shokista selviytymiseen on
  tarjolla tukea ja turvaa. Tämäkin keskustelu osa sitä.

** (Pääsiäistauko 14.-21.4.2025)

Tämän opintojakson osalta aktiivista aikaa laskettiin tässä välissä
noin yksi arkipäivä, eipä siinä paljonkaan asiat ehtineet edetä ...

** Luento 9:  (ke 23.4.2025) (P/J) Tähään karhu, ylihuomenna näätä

Mikä "karhuluento"?

- Verrattuna näätään: Karhu ei jää kyselemään pitkäksi aikaa. Karhu
  vaan painaa menemään, selittää kovasti mennessään ja vääntää
  rautalankaa niin paljon kuin pystyy.

Mikä "näätäily"?

- Pistetään vähän viisasta päätä yhteen ja jutellaan vieruskaverin
  kanssa.. tehdään yhteenvedot myös koko porukan kesken ja
  kotikatsomoita varten. Soveltuu esimerkiksi tenttitärppien
  miettimiseen. Näädät syöttää aiheita rautalankakarhuille.


*** Meneillään olevat tehtävät (huomenna mennään taas eteenpäin tästäkin!)

Jos seurailet keväällä 2024 tapahtuvaa opintojaksoa omaan tahtiin
"aikakoneella", tästä osiosta voit päätellä, missä kohtaa lukemisen ja
tekemisen osalta olisi hyvä olla menossa. Videotallenteet on ehkä
saatettu järjestellä tiekarttaan siihen mennessä. Tätä nauhoitettaessa
työ on vaiheessa - vertaistukikanavalle tuli tähän astisista posti,
jossa on listattu uudet videot.

Meneillään:

- Edessä seuraavaksi Demo 4b.

Lukemista:

- Demo 4b ohjeteksti

- Monisteen luvut 1-6.

Katseltavaa:

- Eteenpäin vaan videoita, jos niistä on hyötyä.

Tekemistä:

- Demot 3 ja 4 valmiiksi ja palautus + asioiden sisäistäminen

- Demo 4b työn alle.

Täsmennys demo 4 osalta: Läsnäsuoritus kuittasi asian, jos asut
Jyväskylässä ja pääsit käymään paikalla. Mallivastaus on saatavilla
Moodlessa. Aikakoneella tallennetta katsoessa käytettävissäsi on
itsenäinen suoritustapa.

Kestomuistutus: 5 opintopistettä 8 viikossa tarkoittaa keskimäärin
16-17 tuntia viikossa tehokasta tekemistä. Muista tauot ja lepo, koska
muuten ne varsinaiset tekemisen hetketkään eivät ole niin tehokkaita
kuin voisivat olla!








*** Infot keväälle 2024

- Demo 4 itsenäiseen suoritustapaan avautaan palautuslaatikko just
  nyt. Ryhdy tekemään, jos et ehtinyt ryhmäsessioihin! Löytyy
  normaalista paikasta HTML-vedoksena. Ohjeellinen aikataulu on
  perjantai klo 17.

- Demotarkastusten tilannekatsaus?

- Tulen ehdottamaan ennakkotenttiä tarvitseville tasan viikkoa ennen
  ekaa massatenttiä iltapäivällä johonkin aikaan.



*** Kevään 2024 terveiset porukkasessioista Demo 4 ja Open labrapäivistä

Kiitos! Mallivastausta kannattaa vielä vilkuilla ja alkaa tehdä
omatoimisia kokeiluja.

Fyysisesti kävi noin 40, etänä 14.

Tärkeimpiä havaintoja oli jälleen kerran: Malttia!!

Yli puoli sataa osallistujaa olivat tarkkoina ja löysivät hienoja
tarkentavia kysymyksiä, jotka eivät olisi muuten tulleet
mieleenkään. Ehkäpä tästä voimaannutaan keskustelemaan myös
vertaistukikanavalla nyt, kun ollaan vielä 120 opiskelijan kesken
aktiivisia toukokuun ajan!?



*** Tauko 13 minuuttia. Jatketaan tasan 15:15

Mikrofonitesti...

*** Supersalainen palautevideo: Demo 2:n jälkeen opittavaksi

(Tästä tulisi salainen video, jonka näkee halutessaan sitten, kun demo
2 on hyväksytysti palautettu.)

Speedrunnataan ensin demo 2:n ja samaan syssyyn demo 1:n pakolliset
vastausosiot.

Samalla aiheeseen liittyvää tarkennusta:

- Nykyinen alikuorisyntaksi

- Yhdistelmäkomentosyntaksi

- Muuttujat kuorikomentoriviohjelmassa

- Lainausmerkit alikuorikomennon ja muuttuja-arvon ympärillä

- aputyökaluja kuten ShellCheckiä on hyvä käytellä

*** Aihepiiri: printf kuoressa

Sopiva kohta olisi demon 1 ja demon 2 välissä. Tällasta jotain olisi
aihepiirin sisältönä:

- Muistetaan ``echo miten  kaiku  vastaa``

- Sitten koetetaan unohtaa echo, ja opetellaan käyttämään
  tulostamiseen aina komentoa ``printf``. Tuo ``echo`` on nimittäin
  nykyisessä POSIX-standardissa merkitty välteltäväksi (eli
  *deprecated*) ja suositellaan korvattavaksi komennolla
  ``printf``. Keväällä 2024 osa tehtävistä voi vielä olla
  päivittämättä nykyaikaan, mutta voit itse tehdä sen. Esimerkiksi
  äskeisen komennon tilalla pitäisi olla mieluummin tämä::

     printf "Mitä printf tekee\n"

  Huomaa lainausmerkit ja lopussa oleva kenoviiva ja än-kirjain.

- Tutkiskellaan printf:ää kuoressa, kuoren manuaalissa, standardissa

- Eiköhän aihepiiriin saada liittymään käytännön esimerkki jos
  toinenkin standardoinnista, syntakseista, speksin tarkistelusta ym.

** Luento 10: (to 24.4.2025) (P/J) Tilanteen mukaista toimintaa
*** Tämän luennon tavoite

- Puolivälin etappi.

- Pikkuhiljaa kenties ryhdytään katsomaan jo ennalta vähän tenttiä,
  josta tulee arvosana tästä opintojaksosta. Tehdään sitä hiukan
  ryhmissä näätäilemällä: otetaan hyötyjä siitä, että ollaan samassa
  paikassa yhdessä; saadaan jaettua viisautta myös kotikatsojille sekä
  aikakoneella tulevaisuuden puolelta opintojaksototeutusta
  seuraaville.

- Päivän lopuksi tiedetään, mitä seuraavaksi pitää tehdä ennen
  seuraavia yhteisiä tapaamisia: Seuraava demo 4b ohjeteksteineen ja
  linkkeineen, monisteen luvut 7-8 ja jo 9.1.

*** Infot keväälle 2024

- Ei pitäis olla mitään uutta auringon alla. Varmistumaan päin se
  ennakkotentti hakuja varten 17.5.2024 klo 14-18.

- Tänään vedettiin alkuun perinteinen fiiliskierros paikan päällä.

- Sitten tapahtuu tilanteen ja toiveiden mukaista menoa, josta saattaa
  olla videoita saatavilla jälkikäteen.

*** Seuraava ennakkotehtävä

Lukemista:

- Demo 4b ohjeteksti

- Monisteen luvut 7-8 ja 9.1

Katselemista:

- Aihepiirivideot jopa Demo 5 alkuohjeistukseen saakka.

Tekemistä:

- Demo 4 valmiiksi ja palautus + asioiden sisäistäminen

  Ryhmätehtävän suorittaneillekin pitäisi olla nyt mallivastaus
  demosta 4 saatavilla! Vilkaise!

- Demo 4b työn alle.

- Esimerkkikoodeja voi alkaa omatoimisestikin katsomaan

Kestomuistutus: 5 opintopistettä 8 viikossa tarkoittaa keskimäärin
16-17 tuntia viikossa tehokasta tekemistä. Muista tauot ja lepo, koska
muuten ne varsinaiset tekemisen hetketkään eivät ole niin tehokkaita
kuin voisivat olla!





*** Tauko 12 min. Jatketaan 11:25 tasan

*** Aihepiiri: Demo 3 palautevideo

(Tästä tehdään tulevaisuutta varten samanlainen salainen
juonipaljastusvideo kuin demo 1-2:sta aiemmin)

Demo 3:n jälkitarkennuksia ehkä muutakin?

Käsiteltävää:

- Speedrun alkuun

- Keskustelua siitä: Tehtäväohjeessa oli paljon asiaa luettavaksi ja
  kokeiltavaksi.

- Havainto paikan päällä: Lisäjutut ohjeessa olivat hyvä, koska se
  innosti kokeilemaan itsekin asetustiedoston tekemistä ja muuta!

- LC_ALL ja muut kieliasetukset - mikä näiden stoori on?

- Muuta mieleentulevaa studioyleisön kanssa?




** Luento 11: (ke 30.4.2025 Vappuaatto!) (P/J) Tentin detaljit ja ensimmäinen tärppi

*** Päivän päätavoitteet:

- Kevään 2024 tenttimuoto ja tärpit tähän kohtaan.

- Materiaalirunko videoineen vaikuttaisi olevan kasassa, joten nyt
  päästään kunnolla näätäilemään: tehdään, mitä väki kokee
  tarpeelliseksi.

*** Infot keväälle 2024

- Demotarkastukset pitkälti ajan tasalla kevään osalta: 1-3
  tarkastettu ja 4 tarkastetaan seuraavaksi. Etapeista ilmoitetaan
  Uutiset-kanavalla, kun esimerkiksi kaikki on tarkastettu.

- Open labrapäiviä mahtui ensi viikkoon seuraavasti: Ma etänä aamu- ja
  iltapäivällä pitkästi, ke hybridinä juuri ennen tämän opintojakson
  luentoslottia. Yksityiskohdat Sisussa.

- Vertaistukikanavalla taas apuja saatu, jopa vappuna. Selvästi hyviä
  vinkkejä on saatavilla, kun vaan kysyt kavereilta!

**Opettajien TODO** (ehtii tuleville vuosille):

- Live-keskustelussa 2.5.2024 esitettiin oivallinen ehdotus
  luentomonistetta varten: "Pohdittavaksi"-tyyppisiä kysymyksiä
  lukujen loppuun (tai kohdentamisen tueksi jopa alkuun!)
  osaamistavoitteiden ja tiivistelmien tueksi.

*** Seuraava ennakkotehtävä

Lukemista:

- Demo 5 ohjeteksti

- Monisteen luvut 9-10

Katselemista:

- Aihepiirivideot monisteen koodiliitteessä olevista
  esimerkeistä. Näiden tavoite on tukea teoriaosuuden ymmärtämistä.

Tekemistä:

- Demo 4b valmiiksi ja palautus + asioiden sisäistäminen tähän
  astisesta.

- Demo 5 työn alle. *HUOMAUTUS:* Demo 5:n katselu voi auttaa myös demo
  4b:n ymmärtämistä! Eli niiden tekemisjärjestystä voi koettaa vaihtaa
  tai yhdistää toisiinsa, jos tuntuisi olevan hyödyksi itselle.

- Omatoimisia kokeiluja, havainnekuvien piirtelyä ja niiden kautta
  yhteyksien etsimistä teorian, käytännön ja
  rajapintadokumentaatioiden välille.

- Tarkennusta tai rautalankaa vaativien kysymysten listaamista ylös,
  jotta voidaan vääntää rautalankaa niistä.

Kestomuistutus: 5 opintopistettä 8 viikossa tarkoittaa keskimäärin
16-17 tuntia viikossa tehokasta tekemistä. Muista tauot ja lepo, koska
muuten ne varsinaiset tekemisen hetketkään eivät ole niin tehokkaita
kuin voisivat olla!






*** Aihepiiri: Tentin yleiskuva 2024.

Moodlen tentti Opettajan esikatseluna.

Usein kysyttyjä kysymyksiä on jo tiedossa. Voidaan käsitellä
ennaltaehkäisevästi:

- "Saako tentissä käyttää kurssimateriaaleja vai pitääkö kaikki komennot
  muistaa ulkoa?"

Vastaus pääpiirteissään on: Saa käyttää kaikkea, paitsi avun kysymistä
henkilöltä, ChatGPT:ltä tai muulta taholta, jolle voi esittää
kysymyksen tentin aikana. Esimerkiksi internetiin aiemmin päätyneitä
sisältöjä saa käyttää mielin määrin. Saa myös kokeilla asioita
käytännössä esimerkiksi pääteyhteydellä.

*** Tauko 10 minuuttia. Tenttitärppi klo 15:43

Tauolta tullessa järjestäydytään pienryhmiin, joissa tärppejä
mietitään.

*** Osaamisen arviointia ( == tämän kevään ensimmäinen tenttitärppi!)

Tässä kohtaa kevään 2024 ensimmäinen tenttitärppi.

**** Kevään 2024 menettely

"Näätäilyä" eli luentotilaisuuteen kytkettyä ryhmäkeskustelua on
kokeiltu erilaisin tavoin useiden vuosien ajan inkrementaalisti.

Keksitään pyörä uudelleen jollain tähän kevääseen sopivalla
tavalla. Raamit:

- Yksin-ryhmissä-kaikki -menettely; sama sukka sopii joskus moniinkin
  jalkoihin.

- Saadaan kuvaa omasta ja kaverien oppimisen vaiheesta *ilman
  suorituspaineita*; kokonaiskuva välittyy tallennettujen osioiden
  kautta myös kotikatsomoihin

- Simuloidaan tenttiä, jolla kevään 2024 opintojaksosta tulee lopuksi
  arvosana.

**** Protokolla:

  - Kolmen hengen ryhmät lähellä istuvien kanssa.

  - 3*30 sekunnin nimi- ja fiiliskierros, jotta keskustelu lämpenee.

  - Päivän tenttitärppi yksin-ryhmissä-kaikki -menettelyllä (seuraava
    kohta).

  - Oikean vastauksen takana oleva ajatuksenkulku

**** Tehtävä

- Kysymys on... Moodlesta aiemman vuoden tentistä joku kysymys
  (kysymys 9/48 kevään 2021 tentistä)

- Kellotetaan 1 minuutti aikaa tehtävän lukemiseen.
  
- Kellotetaan 1 minuutti aikaa siihen, että jokainen miettii hiljaa
  itselleen vastaukset

- Ryhmäkeskustelu 2 minuuttia: Käykää läpi kaikkien omat vastaukset.

  Neuvotelkaa siitä, mikä niistä ehkä on eniten oikein.

- Yhteinen koonti: Kerätään luentotallenteelle ehdotuksia
  vastauksista.

  Varmistaan myös oikea vastaus ja että lopulta kaikki osaisivat tehdä
  tällaisen tehtävän tentissä täysillä pisteillä.

Tässä on täydellisyyden vuoksi tehtävä ja siihen liittyvä ohjeteksti
kopioituna:

Tutkittava esimerkki tehtäviin 9–10: Kurssin luennoilta ja demoista tutussa ympäristössä (Linux,bash) tehty yksittäinen, POSIX-syntaksin mukainen komentorivi:

  arg echo arg echo | arg | grep -v -i "arg echo" | arg > echo

Tehtävä 9: Montako komentoa shell yrittää käynnistää koko rivin
suorittamiseksi?

**** Ryhmien vastaukset ja keskustelu

Muistiinpanot ryhmäkoonnista:

- Mutu-tuntumalla yrittää 4 komentoa

- Nopeesti laskettuna 4 ehkä - en tiiä, on vaikeasti tulkittava

- 4, perusteella että "komento, argumentit, tolppa, komento,
  argumentit, tolppa, ... ja lopussa ohjataan tiedostoon".
  
**** Oikeaksi tarkoitettu vastaus ja logiikka sen takana

Luentotallenteelle selitys ja logiikka, jolla tavoiteltu oikea vastaus
on selvitettävissä.

(Yritetään muistaa ja toteuttaa aiempien vuosien palaute:
Mallivastauksen käsittely voidaan tehdä nopeasti. Tänään ei tosin
ollut pakko, kun oltiin ensimmäistä kertaa tärpin parissa ja osa
porukasta jäi vielä vapaaehtoisesti yliajalle käsittelemään sitä)

** Luento 12: (ke 7.5.2025) (J) Tärppejä lisää
*** Tämän päivän agenda

Ryhmätyöpainotus: tenttitärppejä, muistiinpanojen vertailua ja kysymyksiä .

*** Infot keväälle 2024

- Demo 4 tarkastettu kaikilta palauttaneilta tämän päivän mittaan

- Käyttäkää ensi viikon Open labrapäivät hyödyksi. Kysymyksiä ylös,
  niin muistat kysyä! Tekemisen haasteita on paras näyttää käytännössä
  ruutujaolla tai mikroluokassa ruudulta.
  
*** Seuraava ennakkotehtävä (sama kuin eilen todettiin)

Lukemista:

- Demo 5 ohjeteksti

- Monisteen luvut 9-10

Katselemista:

- Aihepiirivideot monisteen koodiliitteessä olevista
  esimerkeistä. Näiden tavoite on tukea teoriaosuuden ymmärtämistä.

Tekemistä:

- Demo 4b valmiiksi ja palautus + asioiden sisäistäminen tähän
  astisesta.

- Demo 5 työn alle. *HUOMAUTUS:* Demo 5:n katselu voi auttaa myös demo
  4b:n ymmärtämistä! Eli niiden tekemisjärjestystä voi koettaa vaihtaa
  tai yhdistää toisiinsa, jos tuntuisi olevan hyödyksi itselle.

- Omatoimisia kokeiluja, havainnekuvien piirtelyä ja niiden kautta
  yhteyksien etsimistä teorian, käytännön ja
  rajapintadokumentaatioiden välille.

- Tarkennusta tai rautalankaa vaativien kysymysten listaamista ylös,
  jotta voidaan vääntää rautalankaa niistä.

Kestomuistutus: 5 opintopistettä 8 viikossa tarkoittaa keskimäärin
16-17 tuntia viikossa tehokasta tekemistä. Muista tauot ja lepo, koska
muuten ne varsinaiset tekemisen hetketkään eivät ole niin tehokkaita
kuin voisivat olla!






*** Aihepiiri: Tsemppausta kevään 2024 toteutuksen tekijöille

Paikan päällä pienryhmien lämmittely fiiliskierroksen merkeissä

Kerätään vähän fiiliksiä yhteen myös koko porukan kesken:

- Joku ryhmä hyppäsi jo asiaankiin.

- Toisella ryhmällä itse asia vaikutti tunteisiinkin.

- Kurssista puhuttiin kolmannessakin ryhmässä

Havaintoja:

- Demo 4b aiheutti päänvaivaa aamulla

- Monisteen luku 4 tuli aiemmin luettua huolella, mutta tuntuu, että
  ilmeisesti ei tullut syväopittua sitä. MUTTA on MAHTAVAA päästä
  vetämään tuskassa epämukavuusalueella!

- Linkkivinkki: GNU Assembler examples
  ( https://cs.lmu.edu/~ray/notes/gasexamples/ )


*** Tauko 14 minuuttia.

Jatketaan tasan 11:10

*** Tenttitärppi nro 2

Tässä kohtaa kevään 2024 toinen tenttitärppi.

**** Kevään 2024 menettely

"Näätäilyä" eli luentotilaisuuteen kytkettyä ryhmäkeskustelua on
kokeiltu erilaisin tavoin useiden vuosien ajan inkrementaalisti.

Keksitään pyörä uudelleen jollain tähän kevääseen sopivalla
tavalla. Raamit:

- Yksin-ryhmissä-kaikki -menettely; sama sukka sopii joskus moniinkin
  jalkoihin.

- Saadaan kuvaa omasta ja kaverien oppimisen vaiheesta *ilman
  suorituspaineita*; kokonaiskuva välittyy tallennettujen osioiden
  kautta myös kotikatsomoihin

- Simuloidaan tenttiä, jolla kevään 2024 opintojaksosta tulee lopuksi
  arvosana.

**** Protokolla:

  - Kolmen hengen ryhmät lähellä istuvien kanssa.

  - 3*30 sekunnin nimi- ja fiiliskierros, jotta keskustelu lämpenee.
    (voidaan tehdä myös session aluksi, ei tarvitse joka kysymyksen
    kohdalla lämmitellä uudelleen)

  - Päivän tenttitärppi yksin-ryhmissä-kaikki -menettelyllä (seuraava
    kohta).

  - Oikean vastauksen takana oleva ajatuksenkulku

**** Tehtävä

- Kysymys on... Moodlesta aiemman vuoden tentistä joku kysymys
  (kysymys 6/48 kevään 2021 tentistä)

- Kellotetaan 1 minuutti aikaa tehtävän lukemiseen.
  
- Kellotetaan 1 minuutti aikaa siihen, että jokainen miettii hiljaa
  itselleen vastaukset

- Ryhmäkeskustelu 2 minuuttia: Käykää läpi kaikkien omat vastaukset.

  Neuvotelkaa siitä, mikä niistä ehkä on eniten oikein.

- Yhteinen koonti: Kerätään luentotallenteelle ehdotuksia
  vastauksista.

  Varmistaan myös oikea vastaus ja että lopulta kaikki osaisivat tehdä
  tällaisen tehtävän tentissä täysillä pisteillä.

Tässä on täydellisyyden vuoksi tehtävä ja siihen liittyvä ohjeteksti
kopioituna:

Ohje tehtävään: Yhdistä lauseen loppua vastaava kirjain
numeroituun alkuun siten, että lause on totta. Alkuihin on yksi,
yksikäsitteinen, oikea loppu. Jokainen loppu voi sopia useampaan
alkuun tai ei yhteenkään. Tutkitaan prosessien tilasiirtymiä.

Valitse oikea vaihtoehto:

Prosessi siirtyy User running -tilasta Kernel running -tilaan, ...

A) kun prosessori siirtyy keskeytyksen tai käyttöjärjestelmäkutsun
käsittelyyn.

B) kun tapahtuu paluu käyttöjärjestelmäkutsun tai keskeytyksen
käsittelijästä (esim. AMD64:n konekielikäsky sysret tai iret).

C) kun prosessi on tehnyt pyynnön esim. lukeakseen merkkejä
tiedostosta, eikä luettava data ole vielä saapunut fyysiseltä
laitteelta toimitettavaksi prosessille saakka.

D) kun käyttöjärjestelmän vuorontaja siirtää suoritukseen toisen
prosessin, vaikka nykyinenkin prosessi pystyisi jatkamaan laskemista
jo seuraavassa konekielikäskyssään.

**** Ryhmien vastaukset ja keskustelu

Muistiinpanot ryhmäkoonnista:

- Oltiin a-vaihtoehdossa, mutta ei 100%-varmasti. Mielessä kävi myös b
  ja d.

- Vahvin arvaus a, mutta muitakin vaihtoehtoja oli; joku mainitsi
  d:n. Aggressiivista puolustamista ei vielä nähty.

- Yhtä mieltä a:sta, koska "Kernel Running" on käyttöjärjestelmätila,
  ja a- ja b-vaihtoehdoissa puhutaan käyttöjärjestelmäkutsusta, muissa
  ei. Ja a ja b ovat eri suuntaan meneviä. (a:ssa "siirtyminen", b:ssä
  "paluu")
  
**** Oikeaksi tarkoitettu vastaus ja logiikka sen takana

Luentotallenteelle selitys ja logiikka, jolla tavoiteltu oikea vastaus
on selvitettävissä.

(Yritetään muistaa ja toteuttaa aiempien vuosien palaute:
Mallivastauksen käsittely voidaan tehdä nopeasti.)

















P
*** Tenttitärppi nro 3

Tässä kohtaa kevään 2024 kolmas tenttitärppi.

**** Kevään 2024 menettely

"Näätäilyä" eli luentotilaisuuteen kytkettyä ryhmäkeskustelua on
kokeiltu erilaisin tavoin useiden vuosien ajan inkrementaalisti.

Keksitään pyörä uudelleen jollain tähän kevääseen sopivalla
tavalla. Raamit:

- Yksin-ryhmissä-kaikki -menettely; sama sukka sopii joskus moniinkin
  jalkoihin.

- Saadaan kuvaa omasta ja kaverien oppimisen vaiheesta *ilman
  suorituspaineita*; kokonaiskuva välittyy tallennettujen osioiden
  kautta myös kotikatsomoihin

- Simuloidaan tenttiä, jolla kevään 2024 opintojaksosta tulee lopuksi
  arvosana.

**** Protokolla:

  - Kolmen hengen ryhmät lähellä istuvien kanssa.

  - 3*30 sekunnin nimi- ja fiiliskierros, jotta keskustelu lämpenee.
    (voidaan tehdä myös session aluksi, ei tarvitse joka kysymyksen
    kohdalla lämmitellä uudelleen)

  - Päivän tenttitärppi yksin-ryhmissä-kaikki -menettelyllä (seuraava
    kohta).

  - Oikean vastauksen takana oleva ajatuksenkulku

**** Tehtävä

- Kysymys on... Moodlesta aiemman vuoden tentistä joku kysymys
  (kysymys 25/48 kevään 2021 tentistä)

- Kellotetaan 1 minuutti aikaa tehtävän lukemiseen.
  
- Kellotetaan 1 minuutti aikaa siihen, että jokainen miettii hiljaa
  itselleen vastaukset

- Ryhmäkeskustelu 2 minuuttia: Käykää läpi kaikkien omat vastaukset.

  Neuvotelkaa siitä, mikä niistä ehkä on eniten oikein.

- Yhteinen koonti: Kerätään luentotallenteelle ehdotuksia
  vastauksista.

  Varmistaan myös oikea vastaus ja että lopulta kaikki osaisivat tehdä
  tällaisen tehtävän tentissä täysillä pisteillä.

Tässä on täydellisyyden vuoksi tehtävä ja siihen liittyvä ohjeteksti
kopioituna:

Ryhmäkeskustelu 3 minuuttia.

Ohje tehtävään: Yhdistä lauseen loppua vastaavat kirjaimet (vähintään
yksi, mutta mahdollisesti useita) lauseenalun perään siten, että
muodostuvat lauseet vastaavat todellisuutta. Vastauksessa on oltava
listattuna kaikki todellisuutta vastaavat vaihtoehdot.

Valitse oikea vaihtoehto (mahdollisesti useita sopivia):

Kurssilla käsitelty käyttöjärjestelmän rajapintastandardi POSIX
(vuoden 2018 versio) määrää, että ...

A) Konekielisen aliohjelman ensimmäinen parametri välitetään
rekisterissä RDI, jos se on tyypiltään kokonaisluku.

B) shell-komento echo tulostaa argumenttinsa.

C) järjestelmäkutsu exit() tapahtuu sijoittamalla rekisteriin RAX luku 60 ja suorittamalla syscall-konekielikäsky.

D) shell-komennolla kill voi lähettää prosessille signaalin.

**** Ryhmien vastaukset ja keskustelu

Muistiinpanot ryhmäkoonnista:

- bd  TAI b,d 

- bd toiseltakin ryhmältä 

- bd kolmanneltakin ryhmältä

- Perusteluina: kahdessa muussa enemmän konekielitason toteutusta, kun
  POSIX määrää sitä, mitä tapahtuu eikä että miten.
  
**** Oikeaksi tarkoitettu vastaus ja logiikka sen takana

Luentotallenteelle selitys ja logiikka, jolla tavoiteltu oikea vastaus
on selvitettävissä.

(Yritetään muistaa ja toteuttaa aiempien vuosien palaute:
Mallivastauksen käsittely voidaan tehdä nopeasti.)







** Luento 13: (to 8.5.2025)  (J) Muistiinpanojen vertailua ja olan yli havaittua
*** Infot keväälle 2024

- Open labrapäivissä on saatu hommia hyvin eteenpäin. Ainakin yksi
  labrapäivä mahtui vielä keväälle, 14.5.2024 klo 8:30-10:00.

- Demot 1-4 tarkastettu; etenemme demo 4b:n itsenäisten
  suoritusten tarkastamista kohti asap. Tilanne pidemmällä kuin
  viime vuonna tähän aikaan keväästä.

- Demo 5 tarkastetaan aikaisintaan ensi viikolla

- Demo 6 saa alkaa ilman muuta jo tekemään. Palautuslaatikko aukeaa
  todennäköisesti vasta ensi viikolla, mutta voit tehdä vaikka
  valmiiksi asti jo ennen sitä. Muista, että tänä vuonna tehtävä ei
  ole pakollinen (mutta täysiin kurssipisteisiin se tarvitaan). Videot
  auttavat vaiheittain, ja viimeinen jos tarvitaan, niin siihen pitää
  rohjeta kysyä polkuavain ihan opettajalta. Sähköposteihin
  reagoimisessa tällä hetkellä noin 3 arkipäivän viive.


*** Päivän ja viikon päätavoitteet:

- Kaikki demot nyt auki, kaikki videot käytettävissä. Tehdään lisää
  tarpeen mukaan - läsnäolijat keväällä 2024 ehtivät vaikuttaa siihen,
  mitä tehdään. Aikakoneella tallenteita seuraaville kaikki on jo
  valmista.

*** Jäljellä olevaa tekemistä

Lukemista:

- Monisteen luvut 11-12 (viimeinen osio "tenttialueeseen"; loput luvut
  ovat vapaaehtoista lisälukemistoa)

- Aiempiin palailua uusin silmin. Kokonaisuuksien hahmottamista.

- Demo 6 ohjeteksti

Katsomista:

- Kaikki videot, mitä tehty on.

Tekemistä:

- Demo 5 valmiiksi ja palautus + asioiden sisäistäminen

- Koodiliitteen esimerkkeihin tutustumista. Uteliasta kokeilemista.

- Demo 6 oman valinnan mukaan. Vuonna 2024 se on siirretty
  vapaaehtoiseksi siten kuin ensimmäisellä luennolla tiedotettiin.

Kestomuistutus: 5 opintopistettä 8 viikossa tarkoittaa keskimäärin
16-17 tuntia viikossa tehokasta tekemistä. Muista tauot ja lepo, koska
muuten ne varsinaiset tekemisen hetketkään eivät ole niin tehokkaita
kuin voisivat olla!

*** Keskustelutuokio

Kokeiltiin lähteä päivän teeman mukaisesti keskustelut edellä
liikkeelle.

Lämmittely "fiiliskierros" noin klo 14:26 asti.

Yhteenvetoa:

- Läksyt mielessä; demo 4b ja 5 työn alla.

- Vahingossa asiaan jo toisessakin ryhmässä. Demo 4b tehty - alkuun
  pääseminen oli haastavaa, kun esimerkkejä oli melko niukasti.

- Demo 5 jo työn alla. Sen tekeminen auttoi myös hahmottamaan aiempia
  asioita monisteessa.

- Luentomatskuista tuntuu saavan enemmän irti sen jälkeen, kun välillä
  kokeilee käytännössä esimerkiksi demojen parissa. Ensimmäisellä
  lukukerralla ei vielä hahmotu, mitä asiat ihan oikeasti
  tarkoittavat.

Ryhmäkeskustelu:

- Mitä voisimme nyt tehdä tunnin verran paikan päällä, mistä olisi
  hyötyä? Käytettävissä on 2 opettajaa, 10 viisasta päätä,
  tietokoneita, videotykki, Internet ...

Yhteenveto:

- Vaikea päättää, mitä tarvitaan... Haluttaisiin assemblerista
  hahmottaa yleiskuvaa RIP:stä, eli mikä päivittää RIP:tä.

- Luku 10 päättyy tenttitärppiin, jonka voisi vetää Kylli-täti
  -tyyliin, eli mistä mikäkin luku tulee.

- Varsinaisesti esimerkiksi ei noussut esiin tiettyä asiaa, mikä olisi
  jäänyt muita epäselvemmäksi materiaaleissa.


Sitten tauko, jonka jälkeen toteutetaan toiveista sen verran kuin pystytään!!

*** Tauko 17 min.

Studioyleisö paikalle ja hereille jo ennen tauon päättymistä!

15:10 nauhoitetaan.

*** Aihepiiri: Suoritussykli, RIP-rekisteri

Herätteenä studioyleisön paikan päällä esittämä kysymys: "Haluttaisiin
assemblerista hahmottaa yleiskuvaa RIP:stä, eli mikä päivittää RIP:tä"

- Ristiviittaus aiemmin tuotettuihin aihepiirivideoihin tästä.

- Vilkaistaan monistetta aiheen tiimoilta

- Koetetaan saada vastausta aikaan

- Studioyleisö, mukaan lukien kysyjät, tarkkana, että saadaan
  hyödyllistä materiaalia!

** Luento 14: (ke 14.5.2025)  (J) Vesivärikissaluento
*** Infot keväälle 2024

- Tavoitetilanne: Demot 1-5 saisi mielellään olla tarkastettu. Mikä
  meillä on tilanne?

  Vaiheessa. Ilmeisesti tiedämme, mitä teemme tänään
  illalla.. Mahdollisimman pian tapahtuu.

- Ylihuominen ennakkotentti saisi olla luotuna niitä varten, jotka
  hakevat toukokuun loppuun mennessä opiskelupaikkaa, johon
  tenttitulos tarvitaan. Mikä meillä on tilanne?

  Tämä on nyt tehty! Olet saanut asiasta sähköpostia juuri äsken, tai
  sitten aiempi keskustelu on mennyt vahingossa roskakoriin ja joudut
  vielä kerran muistuttamaan siitä.

  Muillekin *viimeinen kuulutus:* Jos olet osallistumassa yhteishakuun
  tai muuhun vastaavaan, missä tarvitset liitteeksi todistuksen tämän
  opintojakson suorittamisesta jo ennen ensimmäistä massatenttiä (+14
  vuorokauden tarkastusaika), niihin siihen on *yksi ainokainen*
  mahdollisuus, *ylihuomenna 17.5.2024 klo 14:15-18:15* ja siitä pitää
  sopia etukäteen sähköpostilla Paavon kanssa, jotta pääset Moodlessa
  tenttiryhmään! Eli meiliä nyt heti laittamaan, jos tarvitset tämän!

- Tämä ja 2 kertaa "Luento"-nimisiä tapaamisia jäljellä ennen
  tenttiä. Käytetään aika tehokkaasti, eli opettaja lopettaa
  jaarittelun ja menee asiaan?

*** Tämän luennon tavoite

Näistä se, mitä tänään ehditään. Myöhemmin lisää se, mitä ehditään:

- Viime kerralla pyydetyt aiheet loppuun

- Demo 4 jälkivideo

- Demo 4b jälkivideo, olettaen että tarkastukset jo tehty (on)

- Demo 5 jälkivideo, olettaen että tarkastukset jo tehty (ei ole, eli
  tämä olisi pläni perjantain ensimmäiseksi ohjelmanumeroksi).

- Tenttitärppejä tai muuta, mitä halutaan.

*** Jäljellä olevaa tekemistä

Lukemista:

- Monisteen luvut 11-12 (viimeinen osio "tenttialueeseen"; loput luvut
  ovat vapaaehtoista lisälukemistoa)

- Kokonaisuuden hahmottamista

- Demo 6 ohjeteksti

Katsomista:

- Kaikki videot, mitä tehty on

Tekemistä:

- Demo 5 valmiiksi ja palautus + asioiden sisäistäminen

- Demo 6 oman valinnan mukaan. Vuonna 2024 se on siirretty
  vapaaehtoiseksi siten kuin ensimmäisellä luennolla tiedotettiin.

Kestomuistutus: 5 opintopistettä 8 viikossa tarkoittaa keskimäärin
16-17 tuntia viikossa tehokasta tekemistä. Muista tauot ja lepo, koska
muuten ne varsinaiset tekemisen hetketkään eivät ole niin tehokkaita
kuin voisivat olla!



*** Aihepiiri: Virtuaalimuistinhallinta leluesimerkin avulla

Herätteenä studioyleisön paikan päällä esittämä kysymys: "Luku 10
päättyy tenttitärppiin, jonka voisi vetää Kylli-täti -tyyliin, eli
mistä mikäkin luku tulee."

Tämä aihepiiri muodostaa jatkumon aiheen "Suoritussykli ja RIP:n
muuttuminen" herättämän jatkokysymyksen kanssa.

- Tämä aihe vetää aika hyvin yhteen monta asiaa matkan
  varrelta. Kerätään palaset ja pistetään ne yhteen, piirrellen kuin
  Kylli-täti.

- Linux-palvelimella voi tutkia oikeita karttoja /proc/PID/smap ja
  komennolla pmap

** Luento 15: (to 15.5.2025) (J) Asiaa eteenpäin
*** Infot keväälle 2024

Ajankohtaista:

- Porukalla on jo demo 6 työn alla. Se on kuulemma mukava!

- Toukokuun lopun ja kesäkuun alun aikatauluista on ajankohtaista
  ilmoitella:

  + Tentti viikon päästä

  + Opettajien ja vertaistukikanavan apua on vielä tarjolla hyvin,
    koska periodi ei ole vielä ohi!!

  + Kesäkuun alusta alkaen tulee olemaan paljon harvemmin tarjolla
    vastauksia kysymyksiin tai demotarkastuksia ja sitä kautta
    palautteita.

  + Itsenäinen suorittelu voi kuitenkin hyvin jatkua.



*** Tenttitärppi: Tehtävä liittyen koodiesimerkkiin ('minish.c')

Tässä kohtaa kevään 2024 tenttitärppi.

**** Kevään 2024 menettely

"Näätäilyä" eli luentotilaisuuteen kytkettyä ryhmäkeskustelua on
kokeiltu erilaisin tavoin useiden vuosien ajan inkrementaalisti.

Keksitään pyörä uudelleen jollain tähän kevääseen sopivalla
tavalla. Raamit:

- Yksin-ryhmissä-kaikki -menettely; sama sukka sopii joskus moniinkin
  jalkoihin.

- Saadaan kuvaa omasta ja kaverien oppimisen vaiheesta *ilman
  suorituspaineita*; kokonaiskuva välittyy tallennettujen osioiden
  kautta myös kotikatsomoihin

- Simuloidaan tenttiä, jolla kevään 2024 opintojaksosta tulee lopuksi
  arvosana.

**** Protokolla:

  - Kolmen hengen ryhmät lähellä istuvien kanssa.

  - 3*30 sekunnin nimi- ja fiiliskierros, jotta keskustelu lämpenee.
    (voidaan tehdä myös session aluksi, ei tarvitse joka kysymyksen
    kohdalla lämmitellä uudelleen)

  - Päivän tenttitärppi yksin-ryhmissä-kaikki -menettelyllä (seuraava
    kohta).

  - Oikean vastauksen takana oleva ajatuksenkulku

**** Tehtävä

- Kysymys on... Moodlesta aiemman vuoden tentistä joku kysymys
  (kysymys 35/48 kevään 2021 tentistä)

- Kellotetaan 2 minuuttia aikaa tehtävän lukemiseen.
  
- Kellotetaan 1 minuutti aikaa siihen, että jokainen miettii hiljaa
  itselleen vastaukset

- Ryhmäkeskustelu 2 minuuttia: Käykää läpi kaikkien omat vastaukset.

  Neuvotelkaa siitä, mikä niistä ehkä on eniten oikein.

- Yhteinen koonti: Kerätään luentotallenteelle ehdotuksia
  vastauksista.

  Varmistaan myös oikea vastaus ja että lopulta kaikki osaisivat tehdä
  tällaisen tehtävän tentissä täysillä pisteillä.

Tässä on täydellisyyden vuoksi tehtävä ja siihen liittyvä ohjeteksti
kopioituna:

Tutkittava esimerkki tehtäviin 35–37: monisteessa esitetyn kaltainen minimalistinen shell-ohjelma (kommentit poistettu, rivit numeroitu, näytetty vain olennainen toimintopätkä):

  1   while(true){
  2     luekomento(komento, argumentit);
  3     pid = fork();
  4     if (pid > 0) {
  5       status = wait();
  6     } else if (pid == -1) {
  7       ilmoita("fork() epäonnistui!");
  8       exit(1);
  9     } else {
  10      exec(komento, argumentit);
  11      ilmoita("Komentoa ei voitu suorittaa!");
  12      exit(1);
  13    }
  14  }

Kysymys 35: Väite: Aina, kun rivi 4 tulee suoritukseen, se tapahtuu
ainoastaan fork() -kutsun luomassa lapsiprosessissa.  (A=kyllä; B=ei)

**** Ryhmien vastaukset ja keskustelu

Muistiinpanot ryhmäkoonnista:

- Ehdotettu A (kyllä), koska oli sellainen fiilis.

- Ehdotettu A (kyllä), koska fork() kutsu asettaa pid:n ja sitten tulee
  if-ehto.

- Ehdotettu B (ei), koska fork() on järjestelmäkutsu, joka luo
  lapsiprosessin vanhempiprosessin rinnalle ja ne molemmat jatkavat
  sen jälkeen suoritusta itsenäisesti.

- Ehdotettu B (ei), koska "raamatussa" (eli luentomonisteessa)
  sanottiin, että "fork() palauttaa vanhempiprosessin kontekstissa
  ..." niin tästä päättelin, että sielläkin jotain tapahtuu vielä
  fork()-kutsun jälkeen.

- Syntaksin perusteella näyttää siltä, että fork() vaan kutsutaan, ja
  sen jälkeen suoritus jatkuu normaalisti.

- Näyttää siltä, myös muun toimintalogiikan suhteen, eli pid on
  paikallinen muuttuja, jota ei viedä fork()-funktiolle ja jota
  seuraavalla rivillä käytetään tämän ohjelmamoduulin tarpeisiin.

HUOMAA että kaksi viimeistä perustelua eivät pelitä esimerkiksi exec()
tai exit() -käyttöjärjestelmäkutsujen kohdalla!! Tästä lisää
yksityiskohtia videolla!
  
**** Oikeaksi tarkoitettu vastaus ja logiikka sen takana

Luentotallenteelle selitys ja logiikka, jolla tavoiteltu oikea vastaus
on selvitettävissä.

(Yritetään muistaa ja toteuttaa aiempien vuosien palaute:
Mallivastauksen käsittely voidaan tehdä nopeasti.)


** Luento 16: (ke 21.5.2025) (J) Viimeinen luento
*** Infot keväälle 2024

- Jäljellä on tämän lisäksi enää ylihuominen tentti.

- Yritetään saada videotallenteet ulos pian luennon jälkeen, jotta
  ennen perjantain tenttiä ehtii vilkaista ne läpi.

- Demo 6 tarkastetaan tentin jälkeen, jolloin myös sen tekemiseen voi
  vielä palata.

- Kertaus ja täsmennyksiä hyppyrin nokalla:

  + Tentti 8:15-12:15.

    Muista pyytää tarvittaessa lisäaikaa - toimita siihen oikeuttava
    dokumentti.

  + Tentin ja demojen tarkastukset, suoritusmerkintöjen aikataulut:
    Demo 6 ehtii vaikuttaa arvosanaan, kun teet sen 13 vuorokauden
    sisällä tentistä. Arvosanat merkitään 14 vuorokauden kuluttua
    tentistä.

- Sitten siihen asiaan!

*** HUOM: Alkutallenteen jälkeen kysyttyä, lisätty jälkikäteen

Voiko demoja 1-5 palautella vielä tentin jälkeen?

- Kyllä voi. Kunkin tentin jälkeen arvostelu ja arvosanojen
  rekisteriin vienti tapahtuu 14 vuorokauden päästä, minkä aikaa voi
  jatkaa demojen tekemistä normaalisti.

  *Huomaa:* Tarkastuksia ja mallivastauksia ei enää luvata
  kesäkaudella ajantasaisesti! Voi olla, että kaikki tulee
  kertatarkastuksena lopuksi.

Voiko arvosanaa korottaa?

- Voi ilman muuta. Aiheeseen liittyvä speksi on Tutkintosääntö, joka
  määrittää asian kaikkien opintojaksojen osalta:
  https://www.jyu.fi/fi/opiskelijalle/kandi-ja-maisteriopiskelijan-ohjeet/opintoja-ohjaavat-saadokset-ja-maaraykset/tutkintosaanto
  Sieltä 40 § Suoritusmahdollisuudet.
  
  Sisussa ei taida vielä olla automatiikkaa hyväksytyn suorituksen
  korottamiseen, joten muista hoidattaa arvosanan korotus rekisteriin
  sähköpostitse opettajan kanssa. Saatetaan tarvita
  toimistohenkilönkin apua, että saadaan korostus
  rekisteriin.

  Tutkintosäännön puitteissa ja rajoitteilla siihen ilman muuta on
  lupa tällä ja muilla opintojaksoilla!

*** Tämän luennon tavoite

- Alkuun lyhyesti kuulumiskeskustelu ja paikalla olevien mahdolliset
  toiveet, mitä voitaisiin 2 päivää ennen tenttiä vielä tehdä:

  + Pienempiä kysymyksiä mielessä. Hienoa! Kun kyse on detaljeista,
    jotka ei kuulu niin sanottuun isoon kuvaan, niin paras paikka ja
    aika näille on vertaistukikanava ja ensi viikko. Katotaan silloin
    mistä speksistä mitäkin löytyisi.

  + Pinokehyksen rakentamisesta tarkentava kysymys, että onko sen
    lisäksi tavallista tai "kaunista" pushailla ja poppailla pinon
    kautta tavaraa aliohjelman sisällä? Vai onko se purkkavirittelyä?

  + Kun varataan muistia dynaamisesti "malloc(koko)" tai "new
    Luokka()", niin mikä ero on siihen, että varataan pinosta?

- Mahdollisuus: Tuotetaan tähän asti hienoimman studioyleisön
  läsnäollessa salaiset palautevideot Demoihin 4, 4b ja 5.

- Jos on aikaa, niin muita aiheita. Kertaukseen ja yhteenvetoon
  liittyviä voisi kuvitella luontevaksi tässä vaiheessa.

*** Tauko 14 minuuttia. Tykitetään loppuaika tasan 15:15 alkaen.
*** Demo 4 jälkikäteisvideo

- Tehtäväohje

- Speedrun

- Yleisökysymykset

*** Orientoitumistauko ja staminatarkistus klo 16.
Ja sitten vielä jatkettiin sekä läsnä- että etäyleisön kanssa.
*** Demo 4b jälkikäteisvideo
- Tehtäväohje

- Speedrun

- Yleisökysymykset

*** Demo 5 jälkikäteisvideo
- Tehtäväohje

- Speedrun

- Yleisökysymykset



** Tenttiaika: (to 22.5.2025) (J) Klo 8:15-12:15 kotitentti!

Tämä löytyy tentin alkaessa Moodlesta. Olemme valmistautuneet tärpein.
_Hyvin se menee, ja uusintojakin on tulossa_.
Ei siis yhtään mitään hätää!
















* Vaaanhoja muistiinpanoja vuosilta 2020-2024 ja aiemmin

Käyttöjärjestelmät palaa vuonna 2025, pilvipalveluiden kera ja
koodilla ITKA2030. Odotettavissa aikakoneella vietyjä
aihepiirivideoita ja mahdollisesti uudenkarhea "Demo 7" samoista
jutuista pilvi- / konttikontekstissa. Tai sitten jotakin aivan muuta.

Alla asioita, joita ei ehditty käsitellä, mutta ei varmaan ollut
tarpeenkaan.

** Aiemmasta tokavikasta luennosta backlogia

(Vuoden 2023 toteuma alla suunnitelmaksi)

Teorian ja käytännön välisten yhteyksien etsimistä koodiliitteen
esimerkkien, debuggerin, havainnekuvien ja speksien kautta.

*** Infot keväälle 2023

- Jäljellä on tämän lisäksi 2 luentoa, 1 Open labrapäivä ensi viikon
  tiistaina klo 16.30-18.15 ja tentti!

- Lukemisto ja tekemistö on nyt kokonaan työn alla: Luentomonisteen
  luvut 1-12 ja demot 1-6. Kokonaisuuden hahmottaminen.

*** Tämän luennon tavoite

- Tässä välissä tiukkaa asiaa, konkretiaa ja rautalankaa.

- Päivän lopuksi tiedetään, mitä seuraavaksi pitää tehdä ennen
  seuraavia yhteisiä tapaamisia: Hedelmien keräämistä pohjatyön
  jälkeen eli ymmärryksen lisäämistä ja valmistautumista
  tenttiin. Demo 6 työn alla - sitä saa palauttaa sitä vielä tentin
  jälkeen, eli voi keskittyä teoriapuoleen tässä kohtaa!


*** Asiaa järjestelmällisesti eteenpäin: Koodiliitettä ja monistetta

Edetään demoissa aiemmin nähtyjen ja monisteen koodiliitteessäkin
olevien konkreettisten esimerkkikoodien kautta, loogisessa
järjestyksessä.

**** Säikeistä

saikeiden_tarve.c
saikeet.c

Katso esimerkkien briiffaus videolta. Seinäkelloaika lyhenee, jos
tehtävän voi hajauttaa moneen prosessoriytimeen rinnakkain.

Katsellaan säikeitä myös ps -komennon avulla (vipu -L) sekä
luentosalin tietokoneella esimerkiksi Chrome-nettiselaimessa ja
Windowsin prosessinhallinnassa, jos opettajan perustunnuksen
käyttöoikeudet riittävät (eivät välttämättä riitä..).

Omalla tietokoneella voi kokeilla oman tietokoneen graafisia työkaluja
prosessin- ja säikeidenhallintaan, nimeltään tyyliin "Task Manager" /
"Tehtävienhallinta" tai vastaavaa...

*** Tauko sopivassa välissä
Jatkuu 15.22

**** Prosesseista: Signaalinkäsittely ja kill

sigesim.c

Katso briiffaus videolta.

Koetetaan näyttää näppäilyjä ja kill -kuorikomennon käyttelyä.


** (Vuoden 2023 viimeisen luennon toteuma alla suunnitelmaksi)

*** Asiaa järjestelmällisesti eteenpäin: Koodiliitettä ja monistetta

**** Aihepiiri: Debuggeri voimatyökaluna kutsupinon tutkimiseen rekursiossa

rekursio.c

**** Minikuori: prosessin luonti ja binäärin käynnistys POSIX-tavalla

minish.c

Uuden prosessin luonti haaroittamalla fork() -kutsulla, suoritettavan
ohjelmatiedoston lataaminen ja käynnistäminen meneillään olevan
prosessin tilalle exec() -kutsulla ja prosessin lopetus exit()
-kutsulla.


minish.c

*** Tauko sopivassa välissä

Jatketaan tasan 15:15.

*** Yksi aihepiirivideo tässä välissä vielä

**** Synkronointi 1/3: Kilpajuoksu ja MutEx

race.c

Korjataan lennosta muokkaamalla. Jos opettaja eksyy, voi hän luntata
korjatuista malleista (race_fixed_mutex.c ja race_fixed_sem_mutex.c)

Katso briiffaus videolta.


*** Tenttitärppi yksin-ryhmissä-kaikki

**** Protokolla:

  - Kolmen hengen ryhmät lähellä istuvien kanssa.

  - 3*30 sekunnin nimi- ja fiiliskierros, jotta keskustelu lämpenee.

  - Päivän tenttitärppi yksin-ryhmissä-kaikki -menettelyllä (seuraava
    kohta).

  - Oikean vastauksen takana oleva ajatuksenkulku

**** Tehtävä

- Kysymys on... Moodlesta aiemman vuoden tentistä joku kysymys
  (kysymys 42-44/48)

  Esimerkkikoodin perusteella:

  + Kuinka monta konekielikäskyä ohjelmanpätkän jälki sisältää,
    ts. kuinka monta käskyä prosessi suorittaa siitä alken, kun
    käyttöjärjestelmä siirtää kontrollin nimettyyn aloituspisteeseen
    "_start"?

  + Mikä on rekisterin RCX sisältö ohjelmanpätkän suorituksen lopuksi?

  + Mikä on rekisterin RDI sisältö ohjelmanpätkän suorituksen lopuksi?

- Kellotetaan 1 minuutti aikaa siihen, että jokainen miettii hiljaa
  itselleen strategiaa, miten vastaukset olisi mielekästä tentissä
  tuottaa

- Ryhmäkeskustelu 2 minuuttia: Käykää läpi kaikkien omat strategiat.
  Neuvotelkaa siitä, mikä niistä ehkä on eniten toimiva.

**** Ryhmien vastaukset ja keskustelu

- Yhteinen koonti: Kerätään luentotallenteelle ehdotuksia
  ratkaisumallista:

  + Lähdetään debuggimaisesti käymään läpi koodia. Eli tehdään
    "pöytätesti" kynän, paperin ja aivojen kanssa. (Pelkkiin aivoihin
    ei yleensä kannata luottaa, jos muistissa pidettäviä asioita on
    enemmän kuin muutama. Eli suosiolla kynä, paperi ja sormet
    apuun!!)

  + Käytetään ihan oikeata debuggeria halavassa/jalavassa.

  Molemmat keinot ovat erittäin hyviä! Molemmissa pitää olla
  huolellinen ja soveltaa huolellisuuden lisäksi muitakin tärkeitä
  osaamistavoitteita.

**** Oikeaksi tarkoitettu vastaus ja logiikka sen takana

  Videotallenteella (kevään 2023 salaisen polkuavaimen takana):
  Varmistettiin molemmilla tavoilla oikea vastaus ja että lopulta
  kaikki osaisivat tehdä tällaisen tehtävän tentissä täysillä
  pisteillä. Varmalta vaikuttaa!!















* Suunnitelmaa kevään 2024 lähitulevaisuuteen

** Ideapankkia aihepiirivideoiksi 2024

Tähän voisi kerätä ideoita / toiveita kokonaan uusiksi tai aiempaa
toteutusta paremmiksi aihepiirivideoiksi
*** Tenttitärppi (tyhjä sapluuna copy-paste-modifyä varten)

Tässä kohtaa kevään 2024 tenttitärppi.

**** Kevään 2024 menettely

"Näätäilyä" eli luentotilaisuuteen kytkettyä ryhmäkeskustelua on
kokeiltu erilaisin tavoin useiden vuosien ajan inkrementaalisti.

Keksitään pyörä uudelleen jollain tähän kevääseen sopivalla
tavalla. Raamit:

- Yksin-ryhmissä-kaikki -menettely; sama sukka sopii joskus moniinkin
  jalkoihin.

- Saadaan kuvaa omasta ja kaverien oppimisen vaiheesta *ilman
  suorituspaineita*; kokonaiskuva välittyy tallennettujen osioiden
  kautta myös kotikatsomoihin

- Simuloidaan tenttiä, jolla kevään 2024 opintojaksosta tulee lopuksi
  arvosana.

**** Protokolla:

  - Kolmen hengen ryhmät lähellä istuvien kanssa.

  - 3*30 sekunnin nimi- ja fiiliskierros, jotta keskustelu lämpenee.
    (voidaan tehdä myös session aluksi, ei tarvitse joka kysymyksen
    kohdalla lämmitellä uudelleen)

  - Päivän tenttitärppi yksin-ryhmissä-kaikki -menettelyllä (seuraava
    kohta).

  - Oikean vastauksen takana oleva ajatuksenkulku

**** Tehtävä

- Kysymys on... Moodlesta aiemman vuoden tentistä joku kysymys
  (kysymys xx/48 kevään 2021 tentistä)

- Kellotetaan 1 minuutti aikaa tehtävän lukemiseen.
  
- Kellotetaan 1 minuutti aikaa siihen, että jokainen miettii hiljaa
  itselleen vastaukset

- Ryhmäkeskustelu 2 minuuttia: Käykää läpi kaikkien omat vastaukset.

  Neuvotelkaa siitä, mikä niistä ehkä on eniten oikein.

- Yhteinen koonti: Kerätään luentotallenteelle ehdotuksia
  vastauksista.

  Varmistaan myös oikea vastaus ja että lopulta kaikki osaisivat tehdä
  tällaisen tehtävän tentissä täysillä pisteillä.

Tässä on täydellisyyden vuoksi tehtävä ja siihen liittyvä ohjeteksti
kopioituna:




**** Ryhmien vastaukset ja keskustelu

Muistiinpanot ryhmäkoonnista:

- kerätään tähän
  
**** Oikeaksi tarkoitettu vastaus ja logiikka sen takana

Luentotallenteelle selitys ja logiikka, jolla tavoiteltu oikea vastaus
on selvitettävissä.

(Yritetään muistaa ja toteuttaa aiempien vuosien palaute:
Mallivastauksen käsittely voidaan tehdä nopeasti.)










*** Aihepiiri: Vimin ja Emacsin tutoriaalit käyntiin

Kuinka opettelet tekstieditorin käytön sen oman tutoriaalin avulla.


*** Aihepiiri: Demo 2:n uudistukset vuodesta 2023 vuoteen 2024

Kun ei ehtinyt nauhoittaa ajallaan, niin tämän videon arvo keväälle
2024 vähenee. Ehkä sopiva 2025, jos samoja demoja käytetään yhä?

"Emacs tai Vim" palvelinkoneilla, tällä opintojaksolla, ja lentävässä
lauseessa kahvihuoneissa. Mutta yleisempää sanelua siitä, mitä pitää
käyttää tai ei pidä käyttää yritetään välttää.






*** Aihepiiri: rajapintoja muitakin - esimerkkien kytkemistä laajempaan kuvaan

Jäännös 2023 Hei maailma -videosta. Joskus aikanaan voisi tehdä tästä
erillisen videon, kuten ajatus silloin oli:

- Malliksi muita rajapintoja kuin kurssin esimerkkeinä olevat: vaikka
  ARM-manuaali (erilainen prosessoriarkkitehtuuri), C# library APIs,
  Java API, OpenGL grafiikkarajapinta, ...muita? Ihan vaan nopeesti
  malliksi siitä, millaisten asioiden otsikossa tai esipuheen
  ensimmäisessä lauseessa sanotaan "This is an API / collection of
  APIs" tai jokin muu "XYX Interface"..


*** Kenties: Luentomonisteen teemojen valaisua

Vilkaistaisiinko luentomonistetta kevään 2023 meneillään olevan
"lukupaketin" kohdilta...

Pitäisi saada käytyä muisti ja suoritussykli, koska seuraavaksi tänään
aletaan katsella täsmälleen sitä asiaa käytännössä
AMD64-prosessorissa. Demo 3:ssa on tarkoitus kokeilla näitä ihan itse.


*** Muita aihepiirihaaveita vuodelta 2023 "jos aikaa jää"-kategoriassa

Ideakuvastoa sopivista aihepiireistä:

- Jokainen speksi voisi ansaita oman täsmäkäsittelynsä?

- Leikkitietokoneet? (LMC:stähän onkin jo yksi video; riittänee?)

- "Kysytään ChatGPT:ltä" on nykyään aina hyvä aihe..


*** Väliaihepiiri (jo nauhoitettu v 2023 luennon 8 info-osuuteen, sori): .screenrc -asetustiedosto

Tämän voisi kenties kaivaa vuoden 2023 tallenteesta erilleen, jos
jaksaisi... oli ajankohtainen ja lennosta tehty 8. luennon kohdalla, mutta ehkä hyödyllinen.

Käytännön esimerkki sovelluksen asetuksista ja Unix-tyyppisten
järjestelmien tiedostoista, joiden nimi alkaa pisteellä.

**** Keskustelua paikan päällä

Havainto: Näitä taitoja tarvitaan etenkin backend-töissä, mutta myös
muualla.

Kysymys:

- Jos teen asetukset halava-koneella, niin muuttuuko ne pysyvästi?

  Kyllä, koska mitä vain tehtiin oli, että muutettiin yhden tiedoston
  sisältöä. Se on pysyvää, kunnes tehdään jokin uusi muutos.

- Muuttuuko ne myös jalavalla?

  Kyllä, koska sama tiedosto samalla verkkolevyllä näkyy kaikissa
  tietokoneissa, joihin se on kytketty. Esimerkiksi jalavan ja halavan
  kotihakemisto ja yliopiston Windows-työasemien U: -asema.

- Jos suljen screenin, niin katoaako ne asetukset?

  Ei.  Nehän ovat vain yksi tiedosto, jota juuri muutettiin.

  Ei katoa, jos ei tiedostoa muuteta uudelleen tai hävitetä.

- Muuttuko ne mun omalla tietokoneella vai ainoastaan halavalla?

  Ei muutu niissä tietokoneissa, joissa ei ole kyseinen verkkolevy
  kytkettynä. Jos omassa koneessa jostain syystä kokeilet screeniä, se
  lukee asetukset oman tietokoneen levyltä.

  Verkkolevyn hakemistoa ei kannata kytkeä kotihakemistoksi omassa
  henkilökohtaisessa tietokoneessa. Yliopiston työasemat ja
  palvelinkoneet ovat erilainen käyttökohde.



*** Ensimmäisellä luennolla käsittelemättä jäänyttä

Muistetaanpa vielä, mitä viime kerralla ei ehditty käsitellä, kun
luennon alku vähän viivästyi. Ainakin sisältö- ja
osaamistavoitekuvaukset. Kollataan livenä netistä:

- kurssin kuvaus opinto-oppaasta; myös suhde tulevaisuuden versioon
  "ITKA2030".

- HTML-vedos osaamistavoitteista ja niiden
  tausta-aineistoista. Käytiin viimeksi, mutta ehkä hiukan lyhyesti.





* Vuoden 2023 toteumaa suunnitelmaksi

Päivämäärät ja lukumäärä päivitetty kevään 2024 salivarausten
mukaiseksi. Kaikki muu sisältö on toistaiseksi yksi-yhteen kopio
vuodesta 2023. Tavoitteena oli kiihdyttää alkuvaihe siten, että
kertausta tai syvennystä tarvitsevat hoidetaan alussa teho-ohjauksella
samalle viivalle niiden kanssa, joilla on runsaammin aiempaa kokemusta
esitiedoista. Vaikuttaisi toteutuneen ainakin havaintopiiriin tulleen
tiedon perusteella (todettu 2.5.2024).


** Luento 17: (ei mahdu kevääseen 2024) (P/J) Viimeinen luento.
(Vuoden 2023 toteuma alla suunnitelmaksi)

*** Infot keväälle 2023

- Huomenna on tentti! Kaikki siihen liittyvä on tiedotettu luennoilla
  ja tallenteissa. Onnea ja osaamista matkaan, mutta ei stressiä!

- Tänään vielä tiukkaa asiaa - yritetään kaikin keinoin saada
  luentotallenne saataville jo täksi illaksi. Myös demo 5 mallivastaus
  saadaan ainakin ohjeelliseen deadlineen mennessä palauttaneille.

- Tänään paukut tentiin ja katse kohti sitä! Demo 6:n ehtii tehdä ja
  palauttaa tentin jälkeen, vaikka samana päivänä.

- Palautemahdollisuus (ja -velvollisuus, kaikilla kursseilla!)
  Webropolissa - sieltä pitäisi tulla automaattisia viestejä asiasta.

*** Tämän luennon tavoite

- Ensin tykitetään vielä koodiesimerkkejä. Sitten yksi tenttitärppi vielä.

*** Infotallenteeseen vielä tämä: Kevään toteutus oli tässä!

Kiitos paikalle saapuneille "studioyleisöille" - toteutimme vielä
yliopiston koronan jälkeisiä linjauksia opettamisesta paikan päällä
fyysisellä kampuksella.

Kiitos myös mielenkiinnosta kotikatsomolle, jossa 80-90%
kurssilaisista ilmeisesti seurasivat kevään kulkua. Toteutimme myös
IT-tiedekunnan "vanhaa normaalia", jossa tallenteiden kautta voi
seurata opetusta ajasta ja paikasta riippumatta.

Tällä kertaa koetettiin rakentaa hieman enemmän aikaa kestäviä
"aihepiirivideoita", jotta ensi vuonna päästäisiin kokeilemaan
käänteistä luokkahuonetta: Katsotaan asiat ensin kotona, ja tullaan
sitten yhteen keskustelemaan, soveltamaan ja tekemään vaikka demoja
porukalla.

Omaan tahtiin saa jatkaa - demotarkastuksia tehdään kesällä
erityisesti uusintatenttien ympärillä: muutamia päiviä ennen kutakin
tenttiä sekä kunkin tentin tarkastuksen yhteydessä. Kurssimerkintöjä
tehdään kolmena ryppäänä: Kunkin tenttikerran tarkastuksen yhteydessä.

Kiitos kolmannen kerran, onnea tenttiin jos toiseenkin, ja erittäin
hyvää kesäkautta, jossa kevään puserruksen jälkeen pääsee lataamaan
akkuja kohti syyslukukautta 2023!


*** Eiliseltä jääneet aihepiirit

**** Synkronointi 2/3: Useita yhteisiä resursseja, Deadlock

Vappusimalaattori:

Aloitetaan esimerkistä vappu_sekaisin.c

Jos opettaja unohtaa, miten esimerkki viedään läpi "lennosta", tai jos
sattuu olemaan perjantaiaamu lyhyellä luennon valmisteluajalla, niin
opettaja voi luntata seuraavien vaiheiden esimerkeistä:

vappu_deadlock.c

vappu_ei_lukkiudu.c








**** Synkronointi 3/3: Monta yksikköä samasta resurssista, Semafori

Semaforista suhteessa poissulkuun, esimerkkinä Tuottaja-Kuluttaja:

tuottaja_kuluttaja_rikki.c

Tutkitaan eroa korjattuun malliin, joka on monisteessa pseudokoodina
ja melko tyypillinen tenttitärppi mallia "Mahdollisesti rikottu tai
sitten ei".

tuottaja_kuluttaja.c


*** Tauko (sopiva, ei kovin pitkä, mutta ajatuksia kivasti nollaava)

Tauko klo 11:20-11:30


*** Katsotaan, mihin aihepiireihin on vielä aikaa

**** Lokaalisuusperiaate käytännössä: implikaatiot suorituskykyyn

Cache thrashing esimerkkikoodi  cache.c

Iltalukemista aiheen ympäriltä:
http://denninginstitute.com/pjd/PUBS/CACMcols/cacmJul05.pdf


*** Vielä yksi kokoava tenttitärppi

**** Virtuaalimuisti (sivutus ja heittovaihto): 

Strategia, miten käydään läpi:

- Aloitus tenttitärpistä, joka löytyy monisteestakin (Kuva 30).

Kysymykset:

Mihin fyysiseen muistiosoitteeseen
kohdistuisi prosessin 2 tekemä
kirjoitus virtuaalimuistiosoitteeseen
0x7f123?

Prosessi 2 suorittaa hyppykäskyn
aliohjelmaan muistiosoitteessa
0x03200. Tapahtuuko prosessorissa
sivunvaihtokeskeytys?

Prosessissa 7 aiheutuu
sivunvaihtokeskeytys ja fyysinen
muisti on täynnä; korvausalgoritmi
on LRU. Pitääkö fyysisen sivun 0x437
sisältö tällöin tallentaa levylle














- Mitä siihen liittyy: Lokaalisuusperiaate (alkaen esitietoluvun
  kuvista 7, 8, 9 ), sivun käsite (kuvat 12, 13, 15, 16, 25 ja 26),
  tarkennusta siitä miten käyttöjärjestelmä ylläpitää sivutaulua
  (kuvat 27, 28 ja 29) sekä heittovaihdon tapahtuminen.

- Heittovaihto


*** Loput asiat, jos aikaa tänä vuonna sattuu olemaan...

Näihin juttuihin ei ole muutamanakaan vuonna jäänyt aikaa, kuten ei
nytkään. Voitaneen alkaa todeta, että ei mahdu kevätkurssiin..

**** Oheislaitteet ja tiedostojärjestelmät

(Kuva 31, korkeintaan pikavilkaisuna 32)

Laiteriippuva ja laiteriippumaton I/O -ohjelmisto.

Koodiliitteestä pikavilkaisu, jos on aikaa:

liit.c

**** Sikanopee esimerkki, jos aikaa jää (ei superrelevantti): Viestit

Ehkä, jos aikaa jossain välissä on(?)

chattomyself.c

**** Sikanopee esimerkki, jos aikaa jää (ei superrelevantti): Jaettu muisti

Ehkä, jos aikaa jossain välissä on(?)

shm_*



** Edellisiltä kerroilta jääneitä

*** Aihepiiri: Joku seuraava, sopiva juttu koodiliitteestä 

*** Aihepiiri: Yhteenvetoa reaalimaailman dokumenteista; mikä määrittää mitäkin

Mikä dokumentti määrittää mitäkin kerrosta laitteisto- ja
ohjelmistopinkassa. Mitä mikäkin niistä puolestaan ei määritä.
*** Aihepiiri: Joku seuraava koodiesimerkki jne



** Ideapankkia tulevia luentokertoja varten ("back-log" toteutuksen kulusta)

HUOM: Opettajien aikataulusäätöjen sumplimista:

17.5.2023 Jonne pitää (Paavo yhteiskunnallisen vuorovaikutuksen
tehtävissä Tampereella).

Jaettiin myös jo alustavasti muitakin vetovuoroja.

*** Osaamisen arviointia ( == tenttitärppi!)

Tutkitaan kysymyspankin kysymysten rakennetta ja poimitaan jotakin,
mihin pitäisi olla jo vastauksia hahmottumaan päin.

Noudatetaan näätäilyprotokollaa.

**** Protokolla:

  - Kolmen hengen ryhmät lähellä istuvien kanssa.

  - 3*30 sekunnin nimi- ja fiiliskierros, jotta keskustelu lämpenee.

  - Päivän tenttitärppi yksin-ryhmissä-kaikki -menettelyllä (seuraava
    kohta).

**** Tehtävä

- Kysymys on... Moodlesta aiemman vuoden tentistä joku kysymys
  (kysymys 25/48)

- Kellotetaan 1 minuutti aikaa tehtävän lukemiseen.
  
- Kellotetaan 1 minuutti aikaa siihen, että jokainen miettii hiljaa
  itselleen vastaukset

- Ryhmäkeskustelu 2 minuuttia: Käykää läpi kaikkien omat vastaukset.

  Neuvotelkaa siitä, mikä niistä ehkä on eniten oikein.

- Yhteinen koonti: Kerätään luentotallenteelle ehdotuksia
  vastauksista.

  Varmistaan myös oikea vastaus ja että lopulta kaikki osaisivat tehdä
  tällaisen tehtävän tentissä täysillä pisteillä.

Tässä on täydellisyyden vuoksi tehtävä ja siihen liittyvä ohjeteksti
kopioituna:

Ohje tehtävään: Yhdistä lauseen loppua vastaavat kirjaimet (vähintään
yksi, mutta mahdollisesti useita) lauseenalun perään siten, että
muodostuvat lauseet vastaavat todellisuutta. Vastauksessa on oltava
listattuna kaikki todellisuutta vastaavat vaihtoehdot.

Kysymys 25. Valitse oikea vaihtoehto (mahdollisesti useita sopivia):
Kurssilla käsitelty käyttöjärjestelmän rajapintastandardi POSIX
(vuoden 2018 versio) määrää, että ...

a) Konekielisen aliohjelman ensimmäinen parametri välitetään
rekisterissä RDI, jos se on tyypiltään kokonaisluku.

b) shell-komento echo tulostaa argumenttinsa.

c) järjestelmäkutsu exit() tapahtuu sijoittamalla rekisteriin RAX luku
60 ja suorittamalla syscall-konekielikäsky.

d) shell-komennolla kill voi lähettää prosessille signaalin.



Muistiinpanot ryhmäkoonnista:

  acd ad+c? b bd cd abcd

(Yritetään muistaa ja toteuttaa aiempi palaute: Mallivastauksen
käsittely voidaan tehdä nopeasti)


*** Näätäily 3.0: Tenttitärppi viime vuoden ekasta tentistä

Noudatetaan näätäilyprotokollaa.

**** Protokolla:

  - Kolmen hengen ryhmät lähellä istuvien kanssa.

  - 3*30 sekunnin nimi- ja fiiliskierros, jotta keskustelu lämpenee.

  - Päivän tenttitärppi yksin-ryhmissä-kaikki -menettelyllä (seuraava
    kohta).

**** Tehtävä

- Kysymys on viime vuoden (2021) ensimmäisestä tentistä (kysymys 48/48)

- Kellotetaan 1 minuutti aikaa tehtävän lukemiseen.
  
- Kellotetaan 1 minuutti aikaa siihen, että jokainen miettii hiljaa
  itselleen vastaukset tehtäviin 27 ja 28.

- Ryhmäkeskustelu 2 minuuttia: Käykää läpi kaikkien omat vastaukset.

  Neuvotelkaa siitä, mikä niistä ehkä on eniten oikein.

- Yhteinen koonti: Kerätään luentotallenteelle ehdotuksia
  vastauksista.

  Varmistaan myös oikea vastaus ja että lopulta kaikki osaisivat tehdä
  tällaisen tehtävän tentissä täysillä pisteillä.

Tehtävänanto copy-pastella tässä täydellisyyden vuoksi:

Tutkittava esimerkki tehtävään 48: Nelijärjestelmän kantaluku on 4 ja
siinä on käytössä numerot 0, 1, 2 ja 3. Muuten se toimii ihan kuin
kymmenjärjestelmä, 16-järjestelmä (heksaluvut) ja 8-järjestelmä
(oktaaliluvut).

Tehtävä 48: Kirjoita kymmenjärjestelmän luku 255 nelijärjestelmässä.

Muistiinpanot ryhmäkoonnista:

3333 1020 3333 3333 3333 (ei vielä lopullista) (joku konvertteri
käyttöön ja katsotaan, mitä se kertoo) 3333

Logiikkaa, esim: Lähellä oleva luku 256 on 4^4. Joten se on ykkönen ja
neljä nollaa.. Siitä edellinen luku 255 on 3333.


255 on heksana 0xff.

Se on bitteinä 1111  1111
               11 11 11 11
               3  3  3  3


(Yritetään muistaa ja toteuttaa aiempi palaute: Mallivastauksen
käsittely voidaan tehdä nopeasti)


*** Näätäilyä livenä: Osaamisen arviointia ( == tenttitärppi!)

Tutkitaan kysymyspankin kysymysten rakennetta ja poimitaan jotakin,
mihin pitäisi olla jo vastauksia hahmottumaan päin.

Noudatetaan jo tutuksi tullutta näätäilyprotokollaa.

**** Protokolla:

  - Kolmen hengen ryhmät lähellä istuvien kanssa.

  - 3*30 sekunnin nimi- ja fiiliskierros, jotta keskustelu lämpenee.

  - Päivän tenttitärppi yksin-ryhmissä-kaikki -menettelyllä (seuraava
    kohta).

**** Tehtävä

- Kysymys on... ehkä viime vuoden (2021) ensimmäisestä tentistä
  (kysymykset 35-37/48)

  Kysymys on aiempia pidempi, kun on koodiesimerkki! Kellotetaan
  tuplamäärät aikaa kaikkiin vaiheisiin, verrattuna aiempaan.
  Askarrellaan kysymykset näkyviin samaan videonäyttöön koodiesimerkin
  kanssa, jos jotenkin mahdollista:

  Kysymys 35. Väite: Aina, kun rivi 4 tulee suoritukseen, se tapahtuu
  ainoastaan fork() -kutsun luomassa lapsiprosessissa. (A=kyllä; B=ei)

  b b b a/b b

  Kysymys 36. Väite: Aina, kun rivi 5 tulee suoritukseen, on olemassa
  sekä shell että sen luoma lapsiprosessi. (A=kyllä; B=ei)

  a a a b a

  Kysymys 37. Väite: Aina, kun rivi 7 tulee suoritukseen, se tapahtuu
  alkuperäisessä shell-prosessissa, ei siis fork():n luomassa
  lapsiprosessissa.  (A=kyllä; B=ei)

  a a a a a 

- Kellotetaan 2 minuuttia aikaa tehtävän lukemiseen.

- Kellotetaan 2 minuuttia aikaa siihen, että jokainen miettii hiljaa
  itselleen vastaukset

- Ryhmäkeskustelu 4 minuuttia: Käykää läpi kaikkien omat vastaukset.

  Neuvotelkaa siitä, mikä niistä ehkä on eniten oikein.

- Yhteinen koonti: Kerätään luentotallenteelle ehdotuksia
  vastauksista.

  Varmistaan myös oikea vastaus ja että lopulta kaikki osaisivat tehdä
  tällaisen tehtävän tentissä täysillä pisteillä.

Muistiinpanot ryhmäkoonnista:

yllä.



(Yritetään muistaa ja toteuttaa aiempi palaute: Mallivastauksen
käsittely voidaan tehdä nopeasti. Eipäs, vaan tästä saatiin aasinsilta
takaisin karhuluennon puolelle.)




*** Muistiin tilanne vuoden 2022 luennolla 13

Koodiliitettä eteenpäin!

minish

Jouheva jatkumo edellisistä asioista, demoista ja tenttitärpistä...
säikeistä jo? vai signaaleista?

Vai kutsupino ja rekursio debuggerilla tutkittuna demo4:n
esimerkkikoodin kanssa?

*** Tilannekuvaa vuoden 2022 luennon 14 paikkeilta

Edetään demoissa aiemmin nähtyjen ja monisteen koodiliitteessäkin
olevien konkreettisten esimerkkikoodien kautta, loogisessa
järjestyksessä.

**** Viime kerran asia loppuun: minish, fork(), exec(), wait(), exit()

Jatketaan viime kerran asia loppuun, ja kollataan vielä näätäilijöiden
vastausten oikeellisuus tenttitärpistä.

**** Demo 4 revisited: Debuggerin käyttöä, kutsupino, muistivuoto

Debuggeri, kutsupinon tutkiminen, backtrace, muistin sisällön
tutkimista, reverse engineeringiä.

Debuggerin heksana näyttämien osoitteiden suhteutus monisteen
muistikarttakuviin!

**** Demo 4b revisited: Siitä oikeasti tulee viiden rivin vastaus.

Pinokehys? Ei vielä tarvita paljonkaan. Miksi?

**** Demo 5 revisited: Mitä tästä saa demo 4b:n ja demo 6:n välissä

Tässä nähdään vaiheittain aliohjelman kutsuminen ja SysV ABIn mukainen
pinokehysten käyttö.



*** Vuoden 2022 viimeinen Näätäily 3.0 tapahtui luennolla 15

Noudatetaan harjoiteltua protokollaa. Katsotaan konekielitärppiin
keskustellen ratkaisustrategiaa.

**** Protokolla:

  - Kolmen hengen ryhmät lähellä istuvien kanssa.

  - 3*30 sekunnin nimi- ja fiiliskierros, jotta keskustelu lämpenee.

  - Päivän tenttitärppi yksin-ryhmissä-kaikki -menettelyllä (seuraava
    kohta).

**** Tehtävä

- Kysymys on... viime vuoden (2021) ensimmäisestä tentistä
  (kysymykset 42-44/48)

  Koetetaan askarrella näkyville mallikoodi ja kysymykset.

  Käydään tämä ratkaisustrategian tasolla,
  eli miten lähtisit ratkomaan tällaista?

  Kysymys 42: Kuinka monta käskyä
  ohjelmanpätkän jälki sisältää, ts.
  kuinka monta käskyä prosessi
  suorittaa siitä alken, kun
  käyttöjärjestelmä siirtää kontrollin
  nimettyyn aloituspisteeseen "_start"?

  Kysymys 43: Mikä on RCX:n
  sisältämä luku suorituksen lopuksi?

  Kysymys 44: Mikä on RDI:n
  sisältämä luku suorituksen lopuksi?

- Ryhmäkeskustelu 3 minuuttia:
  Käykää läpi kaikkien omat
  ratkaisustrategiat.

  Neuvotelkaa siitä, mikä niistä
  ehkä olisi paras tai helpoin tapa.

- Kellotetaan 2 minuuttia aikaa
  tutustua tehtävään.

- Kellotetaan 1 minuutti aikaa
  miettiä oma lähtökohta: Mitä teen,
  että saan vastaukset oikein.


- Yhteinen koonti: Kerätään luentotallenteelle ehdotuksia
  vastauksista.

  Varmistaan myös oikea vastaus ja että lopulta kaikki osaisivat tehdä
  tällaisen tehtävän tentissä täysillä pisteillä.

Muistiinpanot ryhmäkoonnista:

- Tehtävään 42: Lasketaan rivit _start:n
  jälkeen. Vastaus suoraan 7.

- Tehtävään 42: Lasketaan rivit _start
  jälkeen ja lisäksi ali:n jälkeen
  tulevat rivit. Vastaus suoraan 7+3 = 10.

- Tehtävään 42: Seurataan ohjelman
  toimintaa alusta lähtien käsky
  kerrallaan.

  Kynä ja paperi!

- Entäpä jopa kokeilu jalavassa/halavassa

Äänesteltiin. Voittajaksi nousi:

Seurataan ohjelman
toimintaa alusta lähtien käsky
kerrallaan.

Kynä ja paperi!

(Yritetään muistaa ja toteuttaa aiempi palaute: Mallivastauksen
käsittely voidaan tehdä nopeasti. Näytetään siis pari toimivaa tapaa
ratkaista.)







* Aiempien vuosien (2020-2022) toteumaa vertailun vuoksi ja suunnittelun tueksi

** Ideoita jo vuoden 2024 toteutusta ajatellen

*** Vuoden 2022 Näätäily 3.0 kohti vuotta 2024: ryhmäkeskustelu viikon ekan luennon kärkeen?

**** (ennakointia pääsiäisen paikkeilla 2022) Ajatus, kenties ennakoiva: ryhmäkeskustelu luentoviikon kärkeen?

Kokeiltiin 2022 seuraavanlaista menettelyä. Se voidaan ehkä ottaa
käyttöön sitten, kun ehkä päästään aidompaan "Flipped classroomiin" jo
olemassa olevien aihepiirivideoiden myötä. Tämä tapahtunee
aikaisintaan keväällä 2024. Vuonna 2023 oli vähän erilaisia kokeiluja
(aihepiirivideoiden tuottaminen studioyleisön läsnäollessa).

Viikon ensimmäisellä luennolla voitaisiin käydä pienet
ryhmäkeskustelut tähän malliin (siis alkaen pääsiäisen jälkeen):

- Nimi- ja fiiliskierros 3x30 sekuntia

- Ajatustenvaihto yksin-ryhmässä-kaikki: Mikä on ollut
  mielenkiintoisinta viikon lukupaketissa?

- Ajatustenvaihto yksin-ryhmässä-kaikki: Mikä on auttanut ymmärtämään
  asioita omalla kohdalla?

- Koonnit luentovideolle ja muistioon.

Mahdollisesti kokeillaan pääsiäisen jälkeen ja otetaan vähän aikaa,
paljonko tällainen näätäily vaatisi. Tavoitteena olisi saada buustia
fyysisestä läsnäolosta.

**** Eka toteuma

Otettiin tällaista käyttöön luennolla 7 keväällä 2022. Ei välttämättä
tule ihan tällaista keväälle 2023, kun tehdään aihepiirivideoita, eikä
"paluu kampukselle" ole enää vastaavalla tavalla prioriteetti kuin se
oli vielä 2022 korona-ajan jälkeen. Siitä muuten huomio:
Kannustuksista ja patistuksista huolimatta iso osa ei koskaan palannut
fyysiselle kampukselle. Tämä oikeastaan on nyt sisäistetty ja
sisällytetty kevään 2023 kulkuun tässä "studioyleisön sparraamien
aihepiirivideoiden tuottaminen kotikatsomoille" -konseptissa.

Entä tulevaisuus? Vuonna 2024 ehkä on aihepiirivideot jo nauhalla,
jolloin voisi olla perusteltua tarjota lähinnä keskustelu- ja
näätäilyhetkiä tositarkoituksella? Joskus "vain läsnä", joskus "vain
etä", joskus "hybridi sekä että" - ennakkoon tiedotetusti
kutakin. Niille, jotka kovat hyötyvänsä live-interaktiosta videoiden
ja tekstimateriaalien lisäksi.

Alla copy-paste vuodelta 2022. (Silloisen käytännön kuvaus.)

Kaksi viikkoa sitten ennakoitiin tätä, ja nyt kokeillaan. Viikon
ensimmäisellä luennolla voitaisiin käydä pienet ryhmäkeskustelut tähän
malliin (siis alkaen pääsiäisen jälkeen). Ideaalisti kolmen hengen
ryhmissä:

- Nimi- ja fiiliskierros 3x30 sekuntia

- Ajatustenvaihto yksin-ryhmässä-kaikki:

  Mikä on ollut mielenkiintoisinta lukupaketissa / demoissa tähän
  asti?

  Yksin: 1 minuutti.
  Ryhmässä: 2 minuuttia.

  Kaikki: Niin kauan, että saadaan ajatukset ylös ja tallentumaan
  videolle.
  
  Muistiinpanoja: Demot ovat olleet mielenkiintoisia. Riippuu
  henkilöstä. Skriptin kirjoittaminen oli mielenkiintoista. Demot on
  lopulta yksinkertaisempia, kuin ohjetta lukemalla ensin
  vaikuttaa. Teoriapuoli on ollut monelle kertausta tähän asti (pätee
  tietotekniikan pääaineopiskelijoille). Osalle taas teoriapuoli ei
  ole vielä auennutkaan. Vim ja Emacs nousseet mielekkäimmiksi
  harjoiteltaviksi.

- Ajatustenvaihto yksin-ryhmässä-kaikki:

  Mikä on auttanut ymmärtämään asioita omalla kohdalla?

  Yksin: 1 minuutti.
  Ryhmässä: 2 minuuttia.

  Kaikki: Niin kauan, että saadaan ajatukset ylös ja tallentumaan
  videolle.
  
  Muistiinpanoja: Googlen käyttö auttaa (+1). YouTube-videot, joissa
  näitä asioita on animoitu. Torstaiaamun "open labrapäivä". Oikeiden
  dokumenttien lueskelu (voisi olla enemmän englanninkielisiä
  termejä). Käytännön tekeminen oikeassa
  elämässä. Pelillistäminen. Kaverin kanssa tekeminen ja
  keskusteleminen. Ylipäätään demojen tekeminen. Teorian ja käytännön
  välillä vaihtelu. Asioille pitää varata aikaa! Kalenterointi,
  rutiini. Opettaminen toiselle. Omin käsin tekeminen. Innostavat
  luennot auttavat.

- Koonnit / kiteytykset luentovideolle ja muistioon.

Kokeillaan ja otetaan vähän aikaa, paljonko tällainen näätäily
vaatisi. Tavoitteena olisi saada buustia fyysisestä läsnäolosta ja
pieni yhteisöllinen aspekti siihen, että ollaan tultu kampukselle.









*** Vuoden 2022 Näätäilyä luentokertojen välillä (esimerkki) - kurkistetaan Flingaan

Kurkataan Flingaan lyhyesti, suuntaviivoiksi tuleville luentokerroille
ja suhteessa aiemmin käsitelyyksi tulleisiin asioihin. Jotakin on
saatu varmaankin viime viikolla jo pakettiin?

Käsiteltyä:

- Kertaus - mikä tuo Makefilejuttu on? (Luennolta: POSIX-standardi
  auki, sieltä Shell & Utilities, sieltä make; lyhyesti make
  'valmistaa' ohjelman annetun Makefile-ohjeen mukaisesti.)

- Voisiko luentoihin sisällyttää jonkinlaisen demojen työstämistä
  helpottavan 10-15min tiiserin, jolla pääsee hieman helpommin kiinni
  kunkin viikon "kotitehtävään"?

- Käyttäessä pääteyhteyttä screenin kanssa, jossa pyörii emacs on
  screeniin vaihtaminen huomattavasti hitaampaa kuin Paavon. Mistä
  tämä johtuu? (Ei pitäisi tietokoneen tehoista johtua)

- Sori, ei ollut tarkoitus. Kiitos silti!


** Jotain viime- ja toissavuotisia

*** Kyssäri erään luennon lopussa 2021: Mitä AMD64 oikeastaan tekee FLIHissä?

'Toinen kysymys tuli mielee eri aiheesta, tulkinnanvarasta, sanottiin
luentomonisteessa että "keskytyskäsittely on laitetasolla ehkä
monimutkikkain prosessorin operaatio mitä käydään kurssilla". Saisiko
tähän avautta vähän, siis kirjaimellisesti vai vaikea ymmärtää. Oli
siinä vaiheita kyllä.'

Vastaus: AMD64-manuaali.

Opettaja teki vähän kotiläksyjä.. Eli etsi tarkat kohdat
lähdemateriaalissa:

AMD64 manual, Vol 2, s. 19 (luku 1.6) esittelee keskeytykset
alustavasti. Ristiviittaus tarkempaan selostukseen myöhemmässä kohtaa
manuaalia. Nykypäivänä 64-bittiselle arkkitehtuurille "Long-Mode
Interrupt" on se, mitä katsotaan (ristiviittaus sivulle 247).

Sivu 247 eli luku 8.9: Osoittautuu, että nykyinen on laajennos
vanhalle. Eli uutta peruskuvauksessa on sivut 247-253 (5
manuaalisivua). Kokonaisuuden perustuu vanhaan. Vanha 32-bittinen
kuvaillaan sivuilla 237-244 (7 manuaalisivua). Näiden yhteensä 12
sivun ymmärtäminen vaatinee 100-200 sivua esitietoa manuaalin
johdantoluvuista.

Syventävällä jatkokurssilla (jota ei vielä ole olamassa) nämä kaikki
opeteltaisiin sille tasolle, että pystyttäisiin tekemään oma
keskeytyskäsittelijä vähintään näppäinpainallukselle ja kellolle
osaksi omaa pientä käyttöjärjestelmää. Lisäharjoitteena voisi olla
toteuttaa nämä sekä AMD64-prosessorille että jollekin toiselle :). 

Nyt ei olla syventävällä jatkokurssilla, joten tyydymme
luentomonisteen kiteytykseen, joka on kiteytys tyypillisessä
oppikirjassa olevalle kiteytykselle.

Kiteytyksissä on minimaaliset "hyvä tietää" -tyyppiset asiat siitä,
mitä keskeytyksen käsittelyyn siirtyminen vaatii.

Palataan alkuperäiseen kysymykseen luennon chatista:

- "keskytyskäsittely on laitetasolla ehkä monimutkikkain prosessorin
  operaatio mitä käydään kurssilla". Saisiko tähän avautta vähän, siis
  kirjaimellisesti vai vaikea ymmärtää. Oli siinä vaiheita kyllä.

*Vastaus*: Joo-o, ilmeisesti siinä tapahtuu kerralla paljon enemmän
kuin vaikkapa aliohjelmakutsuun siirtymisessä eli CALL-käskyn
suorittamisessa"! Jokainen keskeytys on hirvittävän pitkään kestävä
operaatio verrattuna siihen, että prosessori vain etenee
suoritussyklissä nykyisen prosessin käskysarjaa eteenpäin. Eli:

- "kirjaimellisesti" - ei sen kummempaa kuin: "Prosessori tekee, mitä
  sen pitää, että yksi prosessi voi keskeytyä ja jatkaa myöhemmin
  niin, että sen ei tarvitse edes tietää mitään keskeytyksestä"

- "kirjaimellisesti" - aika monta asiaa, mitkä eivät hoidu muutamassa
  nanosekunnissa, ei sitten millään. Toisin kuin joku pluslasku
  rekisterien välillä.

- "vaikea ymmärtää"? Ei sen vaikeampaa kuin ylläoleva kiteytyksen
  kiteytys.

- "vaikea ymmärtää, että saan tehtyä asian X"? Riippuu asiasta
  X. Tavalliseen sovellusohjelmaan ei tasan mitään väliä. Kahta
  säiettä tausta-ajoon käyttävässä ohjelmassa tarvitset jo jotain
  käryä asiasta. Kokonaisen käyttöjärjestelmän tekemiseksi pitää
  hallita tuhansia sivuja niiden prosessorien dokumentaatiota, joille
  järjestelmä keskeytyskäsittelyineen tehdään.

- Mikään ei ole vaikea ymmärtää, jos ymmärrät kaikki esitiedot, mitä
  seuraava pieni askel vaatii. Aloita vaikka AMD64:n Volume 1:n
  johdantoluvusta ja Käyttöjärjestelmät -kurssin
  luentomonisteesta. Yhteensäkin vain muutama sata sivua :).

  "Matka alkaa ensimmäisestä askeleesta!"

*** Vuoden 2021 luennon 14 paikkeilla käsiteltyä:

- Tehtäiskö vaikka esimerkkitapaus kädestä pitäen virtuaaliosoitteen
  muuttamisesta fyysiseksi, esim. materiaalin kuvan 27 -> avulla?
  - Katso luentovideo.

        [ TAUKO -> 11:15 ASTI ]

- Lokaalisuusperiaattesta jokin tiivistävä määritelmä? Milloin taikka
  miten tulisi huomioida vai tulisiko lainkaan?
  - kannattaa pohtia esimerkin B.4 cache.c kautta
  - iltalukemista: http://denninginstitute.com/pjd/PUBS/CACMcols/cacmJul05.pdf


- Jos prosessi olisi jaettavissa 2 täysin identtiseen osaan jotka
  jaettaisi 2 säikeelle niin missä suhteessa prosessin läpiajo
  nopeutuisi vs prosessi suoritettaisiin yhdellä säikeellä alusta
  loppuun?
  - Katso vaikka Wikipediasta Amdahlin laki.
  ( - esimerkin kautta 'Rinnakaislaskentaa säikeistämisellä' s. 217 ja seuraava )


Katsottiin vielä, mistä Demo 6:ssa on kyse.


Tämän päivän tavoite siis:

- Varmistetaan, että demo 5 on käynnissä.
- Paikataan ymmärrysaukkoja lukuihin 9 ja 10 kysymysten pohjalta.
- Katsottiin demo 6:tta

*** Vuonna 2020 luennolla 15 kartoitettuja uusia kysymyksiä

Kysymykset tänään (5 min aikaa esittää):

- Joku maininta Flash muistista ja sen erosta SSD muistiin?

- Tietääkö siis siitä että on varmasti kurssilla, että pääsee
  moodlessa sivulle jossa lukee "Prinsessa ei ole tässäkään
  linnassa."? Ja tämä riitti tentti-ilmoittautumiseksi?

- Luentomonisteessa sivuilla 145 ja 146 esitettyjen kysymyksien
  vastauksien perustelut.

- Tuleeko olemaan aamupäivän tenttejä tarjolla? Työt menee keskiviikon
  tentin kanssa päällekkäin...

- Jos joku kova linkattu tiedosto poistetaan niin poistuuko kaikki
  kyseisessä linkki "ketjussa" olevat tiedostot?

- oisko mahdollista saada joku yhteenveto kurssin pääaiheista/
  tärkeimmistä aiheista

- Voidaanko katsoa vielä mistä kohtaa luentomonistetta näkyisi demo 5
  parhaat neuvot?

- Lisää tenttitärppien läpikäymistä!

- Voisiko katsoa materiaalien sivulla 164 kuvan 33. vielä läpi, jotta
  kunnolla sisäistää kokonaisuuden

- Mitenkä parametrinvälitys aliohjelmalle (assembly-tasolla) menee,
  jos ei ole integer-tyyppinen muuttuja vaan esimerkiksi file?

- DMA ja RAID? Näiden toimintaperiaatteet? 

- Luentomonisteen tärkeimmät luvut jotka erityisesti kannattaa
  sisäistää?

- s.57 monisteessa puhutaan exit() kutsusta ja sen järjestysnro on 60,
  mutta s 56 olevassa koodissa en löydä tätä

- voisi vielä kerrata tuota sivun 79 kuvan pinokehysasiaa 

Priorisoidaan tauon jälkeen.

[Tauko 15:15 asti. Kesti vähän yli, koska tapahtui opettajien
pedagoginen esikarsinta ja jäsennys ennen pollausta.]

Priorisoitiin.

*** Vuonna 2021 (ja yleensäkin aina) pois jätettyjä: Flash, SSD, DMA, RAID


Aihealueen ohittavat:

- Joku maininta Flash muistista ja sen erosta SSD muistiin?

  Vastaus: Katso Googlesta.

- DMA ja RAID? Näiden toimintaperiaatteet? 

  Vastaus: Rajataan tänä vuonna tentin ulkopuolelle. Monisteessa on OK
  lähdöt, ja Wikipedia kertoo kyllä lisää.

[Perjantaina loput.]

*** Aiemman vuoden kysymys ja vastaus heksaluvuista 3.4.2020

- Heksaluvut, apuja opetteluun?

  ja sitten, missähän pääsee opettelemaan noita heksamuunnosjuttuja,
  mulla on joku niihin liittyvä narkolepsia ja tarviin toisteisuutta
  että opin :)

  Luentomonisteessa oli esimerkki: "Esimerkiksi luku 123 on
  heksajärjestelmässä 7B_16 = 7 · 16^1 + 11 · 16^0 = 123." Miten tuo
  ratkaisu saadaan? Miten sitä lähdetään selvittämään?

  Eri lukujärjestelmien numerot:
  - 01                binäärit
  - 0123456789        desimaalit
  - 0123456789ABCDEF  heksadesimaalit

  Esimerkki kymmenjärjestelmässä ja heksadesimaalina:
     123 = 1 * 100 + 2 * 10 + 3 * 1
    0x7B =           7 * 16 + B * 1   = 7 * 16  + 11 * 1  = 112 + 11 = 123

  Tuo '0x' on yleinen tunniste monissa kielissä, kun halutaan esittää heksoja.

  Liikaakin lisätietoa löytyy osoitteesta https://en.wikipedia.org/wiki/Hexadecimal
*** Joitain kysymyksiä ja vastauksia vuodelta 2020, viimeisellä luennolla

Nopeat:

- Mitenkä parametrinvälitys aliohjelmalle (assembly-tasolla) menee,
  jos ei ole integer-tyyppinen muuttuja vaan esimerkiksi file?

  Vastaus: "file" (anteeksi lainausmerkit) välitetään esimerkiksi
  fgetc():lle muistiosoitteena FILE -tyyppiseen
  tietueeseen. Välitettävänä on siis kokonaisluku, joka on
  muistiosoite. Parametrin välitys on täsmälleen samanlainen kuin
  saman pituisissa kokonaisluvuissa. Esimerkiksi AMD64:ssä
  64-bittisille kokonaisluvuille. Sopimus: SysV ABI kertoo kaikki
  muutkin vaihtoehdot, mutta niitä EI nähdä tällä kurssilla.

- Voidaanko katsoa vielä mistä kohtaa luentomonistetta näkyisi demo 5
  parhaat neuvot?

  Vastaus: Luennolla kuvatuin perustein sanoisin, että *erityisesti luku
  4* avaa demon 5 asiaa. Edellyttää esitietoja luvuista 1-3, ja koko
  homman tavoitteena on tukea lukujen 6-12 ymmärtämistä.

- Luentomonisteessa sivuilla 145 ja 146 esitettyjen kysymyksien
  vastauksien perustelut.

  Vastaus: Pitkä ja harras selitys tärpeistä tähän tehtävään on
  "Luento 14: (pe 8.5.2020)". Kysymys virtuaalimuistiosoitteen
  muuntamisesta.


Esikarsitut, pollatut ja priorisoidut:

- Kurssin pääaiheiden yhteenveto

  Oisko mahdollista saada joku yhteenveto kurssin pääaiheista/
  tärkeimmistä aiheista

  Vastaus: Katso luentovideo.

  Luentomonisteen tärkeimmät luvut jotka erityisesti kannattaa
  sisäistää?

  * Luvut 1-5 ehdottoman tärkeä. Muuten ei ole edellytyksiä edetä.

  * Luku 6 motivaation kannalta, mutta ei ehkä teknisen näkökulman tai
    teknisen tekemisen tasolla.

  * Varsinainen sisältö ovat (tällä kurssilla) luvut 7-12. Kaikki ovat
    yhtä tärkeitä!
  

[Tauko 11:20 asti]
  
- Tiedostojärjestelmän tietorakenteet (s. 164)

  Voisiko katsoa materiaalien sivulla 164 kuvan 33. vielä läpi, jotta
  kunnolla sisäistää kokonaisuuden

  Vastaus: Katso luentovideo.


Pointtereita seuraaviin, joita ei ehditty käydä "varren kanssa":

- Pinokehyksen kertaaminen (s. 79)

  voisi vielä kerrata tuota sivun 79 kuvan pinokehysasiaa 

  Varsi olisi ollut: Etsittäisiin luentomuistiinpanoista, millä
  luennolla tätä käytiin läpi. Tarkistettaisiin videolta, tuliko
  siellä riittävästi.

  Jatkovarsi olisi ollut: Miten tämä asia ilmenee demossa 5.

- Miten tiedostolinkit toimivat?

  Jos useampi tiedosto on kova linkattu niin poistaa yhden poistuuko
  kaikki? Vai ymmärsinkö koko linkityksen väärin

  Varsi olisi ollut: Kokeillaan käytännössä halavalla / jalavalla.

  Vastaus: On hyvä perusosaamisen testi itsellesi, osaatko tehdä tämän
  kokeilun ja vakuuttua siitä, kuinka homma näyttää
  jalavalla/halavalla pelittävän.

- Miksi s.57 exit() on 60 mutta ei konekoodissa?

  s.57 monisteessa puhutaan exit() kutsusta ja sen järjestysnro on 60,
  mutta s 56 olevassa koodissa en löydä tätä