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

Käyttöjärjestelmät, kevät 2022.

Tämä on suunnitelma, joka muuttuu ajankäytön ja muun
perusteella. Aivan aluksi pohjana on luentojen eteneminen edellisenä
vuonna. Ei mene pahasti vikaan, jos menee samalla lailla.

* Pelisäännöt videonauhoituksista

- Soveltuvin osin yritetään saada luennot 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.)

- Keväällä 2022 on tarkoitus pitää luennot luentosalissa ja käyttää
  saleihin asennettua tilatallennusjärjestelmää.

- Julkaisun hoitaa yliopiston videotuki. Emme voi itse vaikuttaa
  julkaisunopeuteen. Yleensä vasteaika on ollut 1-2
  arkipäivää. Perjantain luento saattaa tulla saataville vasta
  seuraavalla viikolla. Tekstimuotoinen muistio tulee melko
  välittömästi luennon jälkeen.

- Emme jälkikäteen sensuroi, joten huomaa: Kun puhut, äänesi tulee
  julkaistavaan videoon - melko 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.

- Kun katsot jälkikäteen, kokeile katsoa nopeuttuna! (Mutta jos siitä
  aiheutuu pidemmän päälle huonovointisuutta tai muita oireita, lopeta
  kokeilu.)

* Vuoden 2022 kulku tähän saakka:

** Luento 1:  (ke 23.3.2022) Aloitus, yleisinfo ja suoritusvaatimukset

Tästä voidaan lukea, mitä ensimmäisellä luennolla oikein tapahtui,
kunhan se on tapahtunut klo 14:15-16:00 keskiviikkona 23.3.2022.

Runkona on copy-paste viime vuodelta.

*** Infot keväälle 2022

Paluu kampukselle on todellista! Informaatioteknologian tiedekunnan
opiskelijoille huomenna (24.3.2022) kahvia tarjolla Agoran aulassa ja
Liikuntatieteellisen opiskelijoille oman talon aulassa:

- https://www.jyu.fi/fi/ajankohtaista/arkisto/2022/03/tervetuloa-tiedekuntien-paluu-kampukselle-hyvinvointikahveille-ensi-viikolla

Lupasin mainostaa luennolla. Täten hoidettu.

Tämä nyt vain esimerkkinä siitä, että kaikenlaista alkaa tapahtua myös
fyysisessä ympäristössä. *Mukaan ja minglaamaan* siinä määrin kuin
omasta mielestä hyvältä tuntuu!

*** Tämän päivän tavoite
    
Luennon päätavoite on kuvailla kurssin pakolliset suoritusvaatimukset
ja muu perusinfo.

*** Tutustumiset ja ryhmäkuva

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

- Esittelyt: opettajat, opiskelijat, opiskelijoiden pääaineet

- Kartoitetaan kädennosto-otannalla seuraavat ensimmäisen luennon
  osanottajista:

  + Opiskelijoiden pääaineet:

    Tietotekniikka: selkeä enemmistö noin 50 läsnäolijasta.

    Tietojärjestelmätiede: noin 6% läsnäolijoista.

    Muista: Tilastotiede, kyberturvallisuus, matematiikkaa, saksa,
    ruotsi, molekyylibiologia. Myös JAMKista!
  
  + Opiskelijoiden pääasialliset käyttöjärjestelmät omassa käytössä
    (pöytäkoneet, tabletit, älypuhelimet, ...)?

    Windows: karkeasti 90% läsnäolijoista

    Android: 50 %

    Linux: 30 %

    iOS: 20 %

    MacOS: 15 %

    Muita? Älykellon käyttöjärjestelmä. DOS (DOS-boxin kautta.) iDrive
    (tmv. käyttöjärjestelmä autossa). Playstationin käyttöjärjestelmä
    (mahdollisesti FreeBSD; selvitettävissä
    "kotitehtävänä"). Television käyttöjärjestelmä. Ilmanvaihtokoneen
    käyttöjärjestelmä (esimerkiksi voi olla Linux). Ynnä muut IoT- ja
    muut laitteet.

- Ryhmäkuva


[Tauko 14 minuuttia; jatkuu tasan 15:25 (todennäköisesti?)]

Tauolla saa rupatella; ilmoitetaan aina, kun videotallennus taas
jatkuu.

Tauolla esitettyjä kysymyksiä:

- Milloin luento päättyy? Pyritään aina lopettamaan tasalta eli tänään
  16:00.

- Kuinka paljon lisätöitä, jos ohjelmointi 1:sen asiat ei ole hyvin
  hallussa?

  Jos ei ole hyvin hallussa niin aika paljon.

- Vieläkö Assembly on hengissä ja onko vielä demosceneä / koodaamista?
  Erittäin paljon hengissä!

Pidemmän kaaren tähtäyspisteet:

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

  Koreografia ryhmäkuvatiedoston kanssa.

- Kysymyksiä/vastauksia ennen "byrokratian" ja vaatimusten
  läpikäyntiä.

Mitkä olivat opettajien lempikurssit opiskeluaikoina?

Useita - tarkista videolta :).

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

- Käydään 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 ja
    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). Viime vuonna opiskelija teki CSS-tyylin; tällaista
    aktiivisuutta arvostamme!

    Seuraavalla luennolla tulee tarkempi opastus ensimmäisiin
    demoihin, joten sinne asti voi olla ihan hyvä vielä malttaa ja
    käyttää aikaa tutustumalla luentomonisteeseen ja kertaamalla
    esitietoja, erityisesti Ohjelmointi 1:n osalta!

    Palautuslaatikko avataan aikanaan, kun olemme testanneet sen
    toimivuuden.

  + 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 (ensi
    luentoon jäi tarkennus eri ryhmien tarkoituksesta!)

*** Mitä vaaditaan kurssin suorittamiseen

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

  (Jonkin verran jäi seuraavaan kertaan; mukaanlukien tarkennus
  demojen deadlineihin sekä tarkennukset Sisussa oleviin erilaisiin
  ryhmiin. Myös ajankäytön resursointiasia ja muuta nettisivulle
  kirjattua.)

- Vuonna 2022 *varaamme oikeuden* antaa kurssin aikana muutamia
  lisätehtäviä, joista saa tenttiin lisäpisteen, jos
  tekee. Tarkennetaan speksiä jos/kun, näitä mahdollisesti tulee.

*** Muuta huomioitavaa ja tarkentavia kysymyksiä

  (siirrettiin perjantaille)

*** Mitä seuraavaksi ja siitä eteenpäin

Luettavaa:

- Kurssin etusivu http://users.jyu.fi/~nieminen/kj22/ ja mitä
  liikkuvia osia keväässämme on.

- Luentomonisteen alkuosa eli luvut 1-2, jos haluat jo ennakoida. Jos
  tarvitset tai haluat niin myös pullantuoksuinen pehmojohdanto.

- Syvennymme aiheesiin perjantaina.

Aika pitkälti ehdittiin käydä se, mitä suunnitelmissa oli.

Olipa hienoa olla pitkästä aikaa luentosalissa, jossa on välitön
silmäkontakti yleisöön ja rupattelua tauolla! Tätä on ehditty kaivata!

** Luento 2:  (pe 25.3.2022) 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 ennen kuin
  seuraavan kerran nähdään yhdessä.

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

Tästä luennosta alkaen yritetään karhuluennoilla mennä kaikki asiat
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ä* tällä luennolla
käsiteltävät varoitukset on syytä ensin sisäistää!

*** Infoa keväälle 2022 (edelliseltä kerralta jääneitä)

- Aikataulut ja salit luentokurssin aikana: Aikataulut Sisussa -
  opetus pyörii niiden mukaisesti.

  Selitys "Laboratoriotyölle" huhtikuussa: Mahdollisuus tehdä demo 4
  ryhmätyönä paikan päällä. DONE: Koetetaan säätää Sisu-ryhmät niin, että
  ryhmävalintaa voisi niissä vielä vaihtaa... ehkä onnistuu;
  ilmoittelemme, miten tässä käy. Itsenäisesti voi tehdä
  samansisältöisen harjoituksen, jos ei ole helppoa päästä paikalle.
  Itsenäisesti tehden menee todennäköisesti useampi tunti.

  Selitys "Open labrapäivälle" noin viikottain: Ajankohta, jolloin
  kurssin opettaja hengaa ilmoitetussa luentosalissa. Voidaan
  käsitellä kurssin asioita tai muuta, tai tehdä vaan hiljaa omia
  hommia.

  Jos osoittautuu tarpeelliseksi tehdä lisäryhmäohjauksia
  loppukeväästä, niitä pyritään aikataulun sallimissa rajoissa
  tuottamaan. Mahdolliset ylimääräiset sessiot eivät näy Sisussa, vaan
  tiedotetaan Moodlessa.

- Demojen deadlinet?

  Vahva suositus olisi noin 1 demo viikossa sen jälkeen kun annetaan
  lupa aloittaa ensimmäinen. Muutenkin kaikilla kursseilla
  suositeltavinta on tehdä töitä tasaiseen tahtiin, tehokkaasti, ja
  pitäen kiinni myös omasta ajasta ja hyvinvoinnista!

  Ohjausta ei ehditä antamaan enää 27.5.2022 jälkeen, koska 4. periodi
  loppuu eikä kurssi ole sen jälkeen työsuunnitelmissa.

  Paavon kursseilla dedikset ovat ohjeellisia ja palautukset
  mahdollisia ympäri vuoden perustellusta syystä.

  Kannattaa kuitenkin palauttaa ohjeellisten dedisten mukaan (tai
  yrittää kovasti pyrkiä siihen!  toim. huom.). Pysyy rytmissä ja
  demot kasvattavat aina luennoilla ja monisteessa seuraavaksi
  tulevaan asiaan!

- Varmistellaan vielä se kurssin byrokratiapuoli eli nettisivun osuus
  alkaen "Tärkeätä ennakkotietoa"

- Arvosanan määräytyminen on vissiin yksi aika kiinnostava asia, joka
  unohtui viimeksi:

  + Tentti määrittää arvosanan; hyväksytynkin saa uusia.  Katsotaan
    arvosanakriteerit mallitentistä - sama periaate on voimassa,
    vaikka pistemäärät ja arvosanarajat ovat Moodle-teknisistä syistä
    kaksinkertaiset.

  + Kaikki demot täytyy tehdä hyväksytysti, että kurssista saa
    suorituksen, mutta niiden pisteytys ei vaikuta kurssin
    arvosanaan. Demopisteet antavat vain itsellesi kuvaa siitä, kuinka
    pitkälle asiat näyttävät hahmottuneen aina kulloisessakin
    vaiheessa. Kyseessä on opettajan näppituntuma verrattuna
    kokemukseen noin 10 vuoden demopalautuksista, varmaan 1000
    opiskelijan populaatio siis vertailupintana arvioissa. Mutta siis
    viitteellinen, ei kurssin arvosanaan vaikuttava näppituntuma on
    kyseessä.

*** 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.

Yksityiskohta Paavon opetusfilosofiaan liittyen: Kynä ja paperi
2022-luvulla ja kenties jotain muutakin, millä saattaa olla kaikuja
kevään 2022 tapahtumiin luennoilla.

- Opiskelutapoihin kokeiltavaksi.. Kynä ja paperi, meibi ehkä?
  Tuostakin vielä neuvoa muistiinpanojen tekemiseen:
  http://lsc.cornell.edu/how-to-study/taking-notes/cornell-note-taking-system/

[ Tauko tässä kohtaa. Aloitetaan teholla taas 11:15 ]

*** Demo 1 käyntiin siis

Pääteyhteys ja siihen liittyviä asioita:

- Luentomuoto ja kurssin työkalut alusta alkaen ja esimerkit näyttäen:
  pääteyhteys, bash-shell ja tekstipohjaiset työkaluohjelmat.

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

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

- UNIX-käyttäjätunnuksen aktivointi https://sso.jyu.fi/ -palvelussa
  (ope vois varovasti näyttää, muistaen, että etusivu näyttää oman
  henkilöturvatunnuksen... eli note-to-self: tee toisella näytöllä
  tuo eka vaihe ja sitten vasta vedä videoituvaan näyttöön!)

- HUOM: Windows-pääteyhteysohjelman (esim. KiTTY) todennäköinen
  ääkkösongelma ja sen korjaaminen: Omissa asetuksissa todettava
  etäkoneen merkistö; meidän tapauksessa UTF-8 (tätä ei pystytty
  näyttämään 2020, kun opettajilla ei ole KiTTYä tai PuTTYä
  käytössä. Suositus toki olisi ettei opiskelijoillakaan olisi!!

  Voi olla asia, jota on syytä puida vertaistukikanavalla sitä mukaa
  kuin havaitaan ongelmia ääkkösissä tai missään muussakaan!

- 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!


*** Sukelletaan luentomonisteeseen sivulta 1 alkaen (siirtyi seuraavaan kertaan)

Mikä dokkari? Kenen kaikkien tekemä? Miten tätä luetaan ja käytetään
luennoilla tai kotioloissa?

Aloita jo itsenäisesti, kuten ennakkotehtäväksi annetaan. Ensi
viikolla käydään siltä pohjalta yhdessä.

*** Ennakointia mahdollisista uusista kokeiluista

Aavistuksia kevään luennoista:

- Lupausten mukaisesti voi tulla uutta ja kokeellista menettelyä.

- "Näätäillään" tositarkoituksella, eli interaktiota ja
  ryhmäkeskusteluja on luvassa, toivottavasti.


*** 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, pyritään "näätäilemään" yksin, ryhmissä
ja koko porukalla sen asian parissa, mitä lukupaketti ja demon
tekeminen ovat siihen mennessä herättäneet ja tuottaneet
muistiinpanoihisi!

Ahkerasti käyttämään loput viikottaisesta 16 tunnin panoksesta tähän 5
opintopisteen kurssiin!

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

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

*** Infoa keväälle 2022

- Uusintatenttien aikataulu saattaa mennä hieman uusiksi!
  
  Syy: Alkuperäiset ajat ovat yleisiä tenttipäiviä, jolloin pitää olla
  mahdollisuus tehdä muiden kurssien paperitenttejä salissa. Tähän
  kuvioon voi olla haasteellinen yhdistää tämän kurssin
  Moodle-kotitenttiä.

  Pahoittelut tästä säädöstä ennakkoon ilmoitettujen aikataulujen
  suhteen!

  Annetaan kurssilaisten päättää asia kahden vaihtoehdon väliltä:

  - Vaihtoehto 1 (meidän mielestä hyvä):

    Uusintatentit olisivat keskiviikkona 6.7.2022 klo 16-20 ja
    keskiviikkona 17.8.2022 klo 12-16.

    Perustelu ajankohdille: Lähellä alun perin ilmoitettuja. Etäällä
    viikonlopuista (voi olla lomareissuja ym.). Heinäkuun ajankohtana
    ilta (väistää esimerkiksi virastoaikaan sijoittuvan kesätyön)

  - Vaihtoehto 2 (meidän mielestä mahdollisesti hankalampi):

    Uusintatentit olisivat yleisinä tenttipäivinä eli vuosi sitten
    ilmoitettuina aikoina. Toteutus kuitenkin Moodle-kotitentti.

    Seurauksia tästä: Ei muutosta ajankohtaan, jos kalenterissasi on
    jo ollut kesäsuunnitelmat, joissa uusintatentin ajankohta on
    olennainen. Aiheuttaa säätöä, mikäli on tarve tehdä jonkin toisen
    kurssin paperitentti kampuksella ja joutuisi hässäköimään
    siirtymisen rauhalliseen kotitenttipaikkaan.

  Suoritamme tästä kyselyn Moodlessa - ilmoitetaan, kun on
  vastattavissa. Vastaamalla voit vaikuttaa. Tarkista omat
  kesäsuunnitelmat. Muita vaihtoehtoja emme tarjoa, koska tämä on jo
  aika joustava valikoima.

- Pääsykoejärjestelyjen aiheuttamat muutokset saleihin, joissa luennot
  pidetään. Päivittynevät Sisuun - yksi luento tapahtuu idyllisellä
  Seminaarinmäellä elegantissa Liikunnan rakennuksessa! Silloin muista
  mennä aivan eri puolelle kampusta kuin yleensä. Muuttuneet paikat:

  22.4 klo 8.15-10.00 MaA103
  27.4 klo 14.15-16.00 L304 Kartalla: https://navi.jyu.fi/space/m1656119
  
- Dialogisuutta ja "näätäilyä" vuosimallia 2022:

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

  Moodle-alueelta löytyy linkki kevään ajan pysyvään Flinga-tauluun.

  Tarkoitus: Kun luet materiaaleja, katsot luentoja ja teet tehtäviä,
  teet joka tapauksessa muistiinpanoja, eikös niin? Kynän ja paperin
  kokeilemista suositellaan, mutta taaplaat toki tyylilläsi.

  Muistiinpanoistasi selvinnee esimerkiksi, mikä asia ei selvinnyt
  materiaalia lukemalla, itsenäisesti selvittelemällä ja kokeilemalla,
  vaan tarvitsisi lisäkäsittelyä ja selvennystä luennolla.

  Me emme opettajina voi tietää, mitä nämä selvennystä vaativat asiat
  ovat, ennen kuin se saadaan kommunikoitua meille.

  Me saamme tietää sen tällä tavoin, anonyymisti ja demokraattisesti:

  + Tutki, mitä muut ovat tähän mennessä nostaneet Flingaan

  + Jos oma toive on jo aiemmin esitetty, klikkaa sydämen muotoista
    tykkäysnappia sen kohdalla. Näin alamme nähdä, mikä suurinta osaa
    mietityttää. Demokratiassa eniten ääniä saanut voittaa suurimman
    todennäköisyyden tulla käsitellyksi luennolla.

  + Jos ei vielä löydy omaa toivetta, niin tee siitä Flingaan uusi
    lappu ja tykkää omasta lapusta ensimmäisenä. Pyri sanoittamaan
    täsmällisesti, jotta me kaikki muut ymmärretään, mitä aihetta tai
    materiaalikohtaa tarkoitat.
  
  Näytetään luennolla Flingan löytäminen ja käyttäminen. Huomioitavaa:

  + Flinga on suora ja tehokas työkalu, jossa on helppoa sotkea tai
    poistaa toisten tekemiä lappuja. Yritetään välttää. Koetetaan
    saada tästä hyödyllinen työkalu dialogin toteuttamiseksi
    kurssilaisten ja opettajien päänsisäisten maailmojen välillä.

  + Flinga on anonyymi ja anarkistinen väline. Osataan olla
    humoristeja, mutta ei liian.

  + Ulkopuolisia häiriköitä tai botteja ei haluta paikalle, joten
    linkkiä ei jaeta muualla kuin Moodle-alueella, johon tämän kevään
    opiskelijat pääsevät. Sieltä löytyy. Omiin ei-julkisiin
    bookmarkkeihin voi kevään ajaksi laittaa.

- Jonkinlaista live-näätäilyä luvassa myös tulevilla luennoilla:

  + Tullaan kokeilemaan minikeskusteluja ja tenttitärppien pohtimista
    vieressä istuvien kanssa. Emme tee sitä vielä tänään, jotta tämä
    ennakkotieto ehtii käydä mielessä eikä touhu tule yllätyksenä
    sitten, kun se tulee.

    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 on nyt yksi.

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

- Sukelletaan järjestelmällisesti luentomonisteeseen

- Kenties jo myös reaalimaailman dokumentaatioon, jollaisen
  lukemistaitoon tämäkin kurssi koettaa valmentaa. (Jäi suosiolla
  myöhempään; hyvin ehditään.)

*** Sukelletaan luentomonisteeseen sivulta 1 alkaen

Mikä dokkari? Kenen kaikkien tekemä? Miten tätä luetaan ja käytetään
luennoilla tai kotioloissa?

Käydään läpi, mihin tänään ehditään. Kunnollinen jaloittelutauko taas
sopivaan paikkaan.

Ennen taukoa juteltiin läpi esipuhe, sisältöluettelo ja johdattelu
taustoituksineen. Luentotallenteelta löytyy.

[Tauko 14 minuuttia; jatkuu kello 15:20)

Tauon jälkeen käytiin läpi luku 1 sekä alustavia poimintoja
luvusta 2. Luentotallenteelta löytyy.

*** Osaamisen arviointia

Nyt kun demo 1 on työn alla (?) niin ensi kerralla voisi olla jo jokin
siihen liittyvä tenttitärppi. Ei vielä tänään, jotta
keskusteluajatukseen ehtii valmistautua ennen kuin tapahtuu.

*** Tältä päivää oli tässä

Huomenna (to 31.3.2022) klo 8:15-10:00 "Open labrapäivä" eli: opettaja
on paikalla mikroluokassa Ag B212.1 Finland. Voi tulla kysymään
asioita tai hengaamaan muuten vaan. Päivystysluonteinen, jossa
katotaan, mitä tulee, jos tulee mitään. Tai sitten vaan tehdään ihan
muita juttuja.

Nämä jatkuvat pääsääntöisesti torstaisin Sisussa ilmoitettuihin
aikoihin toukokuun loppuun (paitsi pääsiäisviikolla).

Testaillaan mahdollisuutta pitää labrapäivää hybridinä myös Zoomin
kautta, mutta tästä ei luvata mitään ennen kuin ensin pikkuhiljaa
testaillaan.

Luennot jatkuvat perjantaina siitä, mihin tänään jäätiin.

Luentosalissa nähdään!

** Luento 4:  (pe 1.4.2022)  (P/J) Asiassa eteenpäin 

*** Infot keväälle 2022

- Demoja on palautettu jo tosi hyvin: Tänään klo 8:09 oli 76
  opiskelijalla Demo 1 tilassa Palautettu. Mahtavaa!! Keep it comin'!

  Ryhdymme tarkastamaan näitä sitä tahtia kuin vaan ehditään.

  *Huomio palautuslaatikoiden käytöstä:* Tällä hetkellä 45 palautusta
  on tilassa Keskeneräinen. Muista painaa lopuksi vielä "Lähetä
  arvioitavaksi".

  Meillä on tällainen asetus päällä tositarkoituksella: Ei tule
  vahingossa väärää tiedostoa lähetettyä. Ehdit miettiä ennen kuin
  klikkaat "lähetä".

  Mutta muista, että demo tulee meille tarkastettavaksi vasta, kun
  olet muistanut painaa "Lähetä arvioitavaksi".

- Keskiviikkona puhuttiin näätäilystä. Tsekataan, mitä Flingassa on
  tällä hetkellä, ja muistutetaan, että sellainen otettiin
  käyttöön. Tänään kokeillaan pientä ryhmäkeskustelua, jotta saadaan
  luentosalissa olemisesta lisätehoja irti.

- Torstaina oli ensimmäinen Open labrapäivä. Vielä ei ollut ruuhkaa
  mikroluokassa. Saatiin vastaus kaikkiin kysymyksiin. Tervetuloa
  jatkossakin. Labrapäivässä saa kysyä mitä vaan.

- Uusintatenttien ajankohdasta on nyt Moodlessa kysely. Muistutetaan
  tästä: vastaa mielellään pian, jos asia on oman kesäsuunnitelman
  osalta tärkeä.

*** 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 3-4. Ja aina aiemman kertaamista "uusin silmin"! Tänään
  koetetaan avata silmiä jälkimmäistä tarkoitusta varten.

*** Osaamisen arviointia

Kokeillaan "Näätäily 3.0"-menettelyä luentosalissa.

Tämä on kokeellista, mutta ei aivan täysin uutta. Tsekataan Paavon
APO-päättötyöstä, miten tämä tehtiin pilottikurssilla 2019, ja
modataan oma.

Luentotallennetta katsoessa voit käyttää selainlaajennosta, joka
mahdollistaa keskustelukohtien ohittamisen kohtuullisella vaivalla.

**** 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 vuoden 2018 tentistä, mutta se on yritetty sanoittaa
  täsmällisemmin. (Opettajan DONE: Kokeillaan tätä sanoitusta vuoden
  2022 tenteissä! Muutettu kysymyspankkiin 25.5.2022 OK.)

  Tämä on tyypillinen "tärppi" ensimmäisen demon asiaa tai
  mahdollisesti kertausta aiemmalta peruskurssilta, jos sellainen on
  käyty.

  Tutkittava esimerkki tehtäviin 27–28:

  Jäsennä seuraava komentorivi sillä tavalla kuin POSIX-yhteensopiva
  kuori (esimerkiksi Bash) jäsentää sen. Ei tarvitse ottaa kantaa
  siihen, mitä komentoja järjestelmään on asennettu, tai toimivatko
  ne:

  arg arg cat grep | grep "a b c" kissa kävelee | sort -f -r | kissa > cat

  Tehtävä 27. Montako komentoa esimerkissä tapahtuisi, jos ne kaikki toimisivat?
  
  Tehtävä 28. Montako erillistä argumenttia esimerkissä esiintyy?

- 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ä.

Myöhemmin voidaan tehdä videotarkistus, kuinka paljon tähän
"näätäilyyn" meni aikaa, ja onko meidän hyvä jatkaa tämän kokeilun
parissa myöhemmillä luennoilla.

Ehdotuksia ryhmiltä:

  arg arg cat grep | grep "a b c" kissa kävelee | sort -f -r | kissa > cat

  Tehtävä 27. Montako komentoa esimerkissä tapahtuisi, jos ne kaikki toimisivat?
  5 7 tai 8 4 4 6 4 4 5
  
  Tehtävä 28. Montako erillistä argumenttia esimerkissä esiintyy?
  3 10 6 8 5 6 6 6

Tauko 10 minuuttia. Jatketaan 11:15.

DONE: (ainakin yritetty soveltaa tilanteen mukaan; huomioitavaksi
jatkossa tauon aikana annettu palaute näätäilystä) Mallivastauksen
käsittely voidaan tehdä nopeammin!  Kiitos! Yritetään!

*** Informaation valtatien päässä on speksi?

Heti kärkeen: Mikä ihmeen POSIX? Tuo nimihän alkaa esiintyä demoissa
enenevässä määrin. Kysytään Vikkelästi Googlelta (KVG) ja edetään siitä.

Todennäköisesti muutenkin on mieltä askarruttamaan jäänyt kysymys:
"Mikä oikeastaan on 'rajapinta' nyt tämän kurssin määritelmän
mukaan?"

Vastaus tulee kurssin mittaan konkreettisina esimerkkeinä: POSIX
(käyttöjärjestelmärajapinta), C99 (ohjelmointikielirajapinta, osa
POSIXia), AMD64 (prosessorilaiterajapinta), SysV ABI AMD64
Supplement (sovelluksen binäärirajapinta).

Otetaan tässä kohtaa ensi kosketus oikeisiin dokkareihin! Näiden
lukemistaito on olennainen osaamistavoite. Näihin siis pyritään
palaamaan luennoilla tuon tuostakin.

*** Demo 2 esittely

DONE: (muistaakseni käytiin merkistöasia moneen kertaan) Demo 2:n yhteydessä käy läpi esimerkki myös UTF-8
-merkistöasetuksesta. Se on PuTTYssä oletuksena Latin-9, mistä joutuu
täysin turhiin vaikeuksiin!!

DONE: (muistaakseni käytiin tämäkin monesti) Myös PuTTyn asetusten tallentaminen - sillä säästää monta turhaa
minuuttia hukka-aikaa, jos käyttää PuTTyä!


Käydään läpi demo-ohje ja näytetään malliksi vähän esimerkkiä, miten
ryhdytään tekemään. Mutta ei toisteta sitä, mitä lyhyessä lisävideossa
jo selitetään screenistä. Katso se erikseen sitten demoa tehdessä!

*** Edetään järjestelmällisesti ja painotetaan demokraattisesti

Tsekkausta Flingaan aina. Pyritään kuitenkin myös siihen, että koko
lukemisto ja etenkin kuvat saavat jonkinlaisen käsittelyn luennoilla.

*** Katsaus seuraavaan lukupakettiin

Jotain pohjustavia sanoja luvuista 3-4.

*** Seuraava ennakkotehtävä

Luettavaa:

- Seuraava osuus luentomonisteesta: luvut 3-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.

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

- 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!

- Ja muistutetaanpa, 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 6.4.2022)  (P/J) Näätäily 3.0 jatkuu kaikissa muodoissaan.

Yritetään päästä tykittämään tasan 14:15.

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

- Aiheiden järjestelmällistä läpikäyntiä. Esilukemistona tähän asti
  oli: monisteen luvut 1-4 ja demojen 1-2 ohjetekstit.

- Hyödynnetään "Näätäily 3.0" -menettelyjä kuten Flingassa olevaa
  toiveseinää.

- Kokeile tehdä muistiinpanoja paperiin; esimerkiksi avainsanoja,
  joista haluat kysyä tarkennusta, kun tulee kysymys-/vastaushetki.

*** Ajatus, kenties ennakoiva: ryhmäkeskustelu luentoviikon kärkeen?

Tänään ehkä paras olla kippaamatta aikataulua, mutta ennakoidaan
mahdollista tulevaisuutta. 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.

*** Infot keväälle 2022 ja pari oikeutettua mainosta

Tilannekatsausta:

- Vertaistukikanava kukoistaa!

- Demo 1 palautukset on tarkastettu tähän päivään klo 11:00
  saapuneisiin asti. Muista klikata "Lähetä arvioitavaksi"-nappia
  Moodlessa! 30 vastausta oli vielä tilassa "keskeneräinen".

- Sisussa voi nyt vaihtaa ilmoittautumista mikroluokissa tapahtuvan
  "Laboratoriotyö"-session ajankohtaan. Pilottiopiskelija testasi,
  että onnistuu.

- Huomenna aamulla taas päivystysluonteinen "open labrapäivä";
  viime torstaina ei ollut ruuhkaa mikroluokassa :).

- Ensi viikolla on pääsiäisviikko eli yliopiston opetustauko. Emme tee
  kurssiin liittyen mitään; opiskelijana saat käyttää viikon
  haluamallasi tavalla ilman paineita suuntaan tai toiseen.

Mainoksia pääsiäisviikkoonkin liittyen, mutta myös tähän kurssiin:

- https://instanssi.org/

- https://xn--jyvskyl-7wae.hacklab.fi/

Hienoja harrastuksia, kohtuuhintaisia, vahvasti liitännäisiä
tietotekniikan alaan ja eetokseen. On ihme, jos kurssin aikana ei
tulla näkemään ainakin Paavon demoscene-tuotoksia esimerkkeinä
tietyistä kurssilla käsiteltävistä aiheista. Valitettavasti tänä
vuonna Instanssi/Revision -tapahtuma ei natsaa Paavon kalenteriin,
joten perinteinen "Let's make a demo" -grafiikkaohjelmointityöpaja ei
instantoidu Instanssissa.

*** Muutama esimerkki APIsta jos toisestakin

Lyhyt linkitys laajempaan kontekstiin:

- Pistetäänpä uhallakin lisää copyrightin alaista kamaa ruutuun.
  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 ensimmäisessä
  lauseessa sanotaan "This is an API / collection of APIs".

*** Katsotaan Flinga-seinää ja poimitaan teemoja

Katsotaan, mitä teemoja porukka haluaa painottaa. Tehdään kuitenkin
myös pedagogisia poimintoja vähemmän äänestetyistä tarpeen mukaan.

**** Tänään käsiteltyjä lappuja

- En tiedä, etten tiedä, mutta tiedän silti!

- Tämähän on suurenmoista näätäilyä

- Halusin vain sanoa, että pehmojohdanto oli ihan mahtava, kiitos
  siitä!

- Uusintatenttikyselystä puuttuu kohta "ei väliä". Sinänsä voihan
  jättää vastaamattakin, mutta voisi olla informatiivisempaa jos
  tällainen kolmas vaihtoehtokin löytyisi. [Vaihtoehto
  lisätty. -Jonne]

- API:t - käytetäänkö lähinnä hierarkkisesti ylhäältä alas vai myös
  "sivusuunnassa"?

  Koetimme selventää tai ainakin kontekstoida asiaa; katso video.

*** Tämän päivän tauko; jatkuu tasan 15:15.

Lyhyt käsittely vielä tästä Flinga-lapusta:

- lyhyt johdatus bash:n ja tcsh:n eroihin kiinnostaisi. Mitä ja miksi?

*** Edetään myös luentomonistetta järjestelmällisesti

Muistiinpanoja käsitellyistä aiheista tähän:

- Käytiin läpi monisteen kuvia 3 ja 4. Havainnollistettiin pinoa
  liitupaketeilla esimerkkinä tavoista, joilla voi koettaa
  havainnollistaa asioita itselleen.

*** Lukupaketti pysyy perjantaille entisenään:

- 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
  17 tuntia viikossa tehokasta tekemistä. Muista tauot ja lepo, koska
  muuten ne varsinaiset tekemisen hetket eivät ole enää tehokkaita!

*** Tältä päivää oli tässä

Perjantaina poimitaan suoraan siitä, mihin tänään jäätiin.

Huomenna (to 7.4.2021) klo 8:15-10:00 jälleen "Open labrapäivä" eli:
Voi tulla kysymään asioita tai hengaamaan
linjoilla. Päivystysluonteinen, jossa katotaan, mitä tulee, jos tulee
mitään.

Nämä jatkuvat pääsääntöisesti torstaisin Sisussa ilmoitettuihin
aikoihin toukokuun loppuun asti, paitsi tietysti pääsiäisviikolla.

Luennon jälkeenkin saa muuten jäädä juttelemaan! Odota ensin, että
ilmoitus uudesta tilatallenteesta tulee tehtyä ja lähetettyä
huolellisesti; se on meille tosi tärkeä ja keskittymistä vaativa pikku
operaatio.

** Luento 6:  (pe 8.4.2022)  (P/J) Karhuluento ("opettajat opettaa")
*** Infot keväälle 2022

- Tuli havaittua kummallisuus myös 1. tentin ajankohdasta
  Sisu-järjestelmässä:

  Ensimmäinen tentti on 27.5.2022 klo 8:15-12:15, kuten kurssin
  nettisivulla on koko ajan sanottu! Se on tullut kummallisena
  varauksena ilman opetusryhmää, joten siellä on vasta 5 tuurilla
  ilmoittautunutta. _Korjataan, nyt kun huomattiin!_ Saattaa aiheuttaa
  automaattisia ilmoituksia tapahtumien peruuntumisesta.

  Kyse ei ole peruuntumisesta, vaan sali- ja opetusryhmätietojen
  korjaamisesta vastaamaan suunniteltua todellisuutta!

- Muihin kursseihin liittyvä 2022-info: Yleinen tenttipäivä on siirtynyt!
 
- Torstaina oli taas Open labrapäivä. Jälleen saatiin vastaus kaikkiin
  kysymyksiin ja demo 2:n palautustiedosto luotua priimaan kuntoon.
  Ruuhkaa ei ollut. Tervetuloa jatkossakin. Labrapäivässä saa kysyä
  mitä vaan.

- Yleensä luentojen jälkeen on hetki aikaa kysymyksille ja
  jutustelulle (sen jälkeen kun ilmoitus tilatallennuksesta on
  tehty). On ollut kivoja jutusteluja jo tähänkin asti...

- Demon 2 tekemisen jälkeen on erittäin hyvä hetki katsoa muutama
  niihin liittyvä opastusvideo erillisten videoiden kansiosta
  Moniviestimessä!

*** Tämän luennon tavoite

- Kerätään ajatukset keskiviikolta ja jatketaan asiaa. Väännetään
  rautalankaa niin paljon kuin pystytään.

- 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.

*** Kerätään ajatukset edellisen kerran laatikkokuvista

Viimeksi katsottiin luentomonisteeseen valmiiksi piirrettyjä kuvia,
joissa oli laatikoita ja nuolia. Tavoitteena olisi opetella piirtämään
näitä itsekin, oman ymmärryksen tueksi sekä kommunikoimiseksi
kollegoiden kanssa. Esimerkiksi tutkimustyössä se on osa meidän
päivittäistä tekemistä. Piirrellään vielä pari esimerkkiä "tyhjään
tauluun".

Tässä vähän valkoista tilaa live-esimerkin pohjaksi:
(katso luentovideolta, mitä tähän tuli ja mitä siitä juteltiin)

(Tähänhän tuli siis havainnekuvia listoista, kerroksista, suunnatusta
verkosta, puusta ja tietoteoreettisesta näkökulmasta akateemiseen
arvomaailmaan ja oppimiseen)

*** Luentomonisteen teemojen valaisua
Katsotaan järjestelmällisesti eteenpäin, mitä lukupakettiin on tähän
asti kuulunut monisteen puolelta.

Pitäisi saada käytyä muisti & CPU-kuvat 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.

Saatiin juteltua, mitä tarkoitus olikin: Monisteen havainnekuvat
puumallista ja tietokoneen rakenteesta. Vilkaisu taulukkoon, jossa on
AMD64:n rekisterit.

Tähän kohtaan tauko ja sitten siirtyminen demo 3 -asiaan, että
sillekin on hyvin aikaa tässä, ennen opetuksen pääsiäistaukoa.
    
Tässä kohtaa tauko 11 minuuttia. Jatkuu, kun kello on tasan 11:20.
*** Tauko. Jatketaan tykitystä tasan 11:20!
*** Demo 3 esittely ja lukujen 3-4 konkretiaa

Käydään läpi demo-ohjetta ja näytetään malliksi vähän esimerkkiä,
miten ryhdytään tekemään.

- Luvun 3-4 aihepiireissä demon 3 "kickstarttia" ja yhtymäkohtaa
  monisteen ja demoharjoitteiden välillä. HUOM: demossa 3 vähän
  lupaillaan, että luennolla on näytetty debuggerin käyttöä, joten se
  on syytä tulla tässä samalla.

  Ehdittiin käynnistää debuggeri ja kokeilla "disassemble /mr
  main". Tästä on hyvä jatkaa myöhemmin, kun kaikki on ensin päässeet
  ohjeen kanssa hiukan kokeilemaan.

*** Seuraava ennakkotehtävä

Luettavaa:

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

- Demon 3 ohjetekstit.

- Lukua 5.1 antamaan lisävaloa edellisiin. Ei vielä pidemmälle.

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!
  
- Pääsiäisviikko; käytä se haluamallasi tavalla ja muista vähintään
  rentoutua.

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!

** (Tämän vuoden pääsiäistauko, 1 viikko, tapahtui tässä kohtaa)

Jatketaan pääsiäisen jälkeen, kokeillaan jatkaa Näätäily 3.0
-menettelyjä, mistä ollaan juteltu.

** Luento 7:  (ke 20.4.2022) (P/J) Näätäily 3.0 jatkuu.

Aletaan tykittää tasan 14:15!

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

- Alkuun uutta ja kokeellista: Interaktio, ryhmäkeskustelu.

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

*** Infoisku keväälle 2022

- Tällä välin on tapahtunut erittäin vähän, koska oli pääsiäistauko;
  aiemmin ilmoitetut opettajien-TODOt eivät ole edenneet vielä.

- 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.

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

- Luettavaa lisää poikkeuksellisesti jo tänään:

  Demo 4 ohjeteksti on ennakkolukemistoa ensi viikon ryhmätöihin.

  Päivitetty tälle vuodelle. Ei muuta kuin lukemaan!!

  Myös monisteen luku 5.2 liittyy aiheeseen, joten ryhdy silmäilemään
  sitäkin.

  Kaikki loput demot täsmentävät näitä aiheita lisää, joten
  "alkujärkytys" on normaali olotila eikä se haittaa vielä tässä
  vaiheessa. Koeta ymmärtää mahdollisimman paljon, mutta anna armoa
  itsellesi, jos kysymyksiä herää enemmän kuin ehtii saada vastauksen.

*** Kokeillaan: ryhmäkeskustelu viikon ekan luennon kärkeen?

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.

*** Ehtisikö teoriassa tenttitärpinkin tähän?

Tänään ei ole valmisteltu tenttitärppiä, joten ei pysty heittämään,
mutta katsotaan tässä kohtaa kelloa, mahtuisiko samaan lokeroon
keskustelutuokion kanssa. Tyyliin ennen taukohetkeä.

Kello on nyt: 15:01.

(Tai sitten vedetään hihasta vaikka lukujärjestelmäkysymys, joka
saattaa hyvin tulla tenttiin?)
*** Tauko 15 minuuttia.

Jatketaan tykitystä klo 15:15 tasan.


*** Aiheita järjestelmällisesti eteenpäin

Aiheita järjestelmällisesti eteenpäin.

Vilkaistaan Flingaa.

**** Nopeita poimintoja Flingasta

Kysymys oli: Onko Jypeli-kirjastoesmerkisssä API ne metodit, joita saa
Jypelistä käyttää?

- API on "jotakin, mitä toinen ohjelma käyttää", ohjelmien rajapinta.

- Muistetaan, että tärkeätä on ymmärtää näiden vehkeiden toiminta
  syvällisesti, käsitteet termien takana.

Kysymys oli: Miten irssillä pääsee liittymään jyu:n irciin?

- Ei ole jyu:n ircciä. Jonnen varoituksista jos et halua ottaa vaaria,
  irc.cc.tut.fi näyttäisi palvelevan.

Kysymys oli: Monisteen kuva 4 pinosta: siinä nuolet osoittavat
Headista loppuun päin. Onko kuitenkin niin, että pinossa alkiot
tietävät aina kenen päälle menevät, eli nuolen pitäisikin olla toiseen
suuntaan?

**** Monisteen mukaisesti

Joka tapauksessa monisteen vilkuilua ja käytännön esimerkkejä
kuoressa.
 
*** Lukupaketti perjantaita kohti:

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

- Monisteen lukua 5 eteenpäin (alustavasti)


*** Tältä päivää oli tässä

Huomenna perinteisesti "Open labrapäivä" mikroluokassa, tervetuloa!

Perjantaina luento poikkeuksellisesti jo aamulla klo 8:15!
True-meininki! Tervetuloa!

** Luento 8:  (pe 22.4.2022) (P/J) Karhuluento

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.

*** Infot keväälle 2022

- Torstaiaamun mikroluokkaohjaukseen on näköjään helppo tarjota
  Zoomilla yhteys mikroluokkaan: Ääni ja kuva välittyvät luokasta
  kotiisi ja toisin päin. Voit tulla huutelemaan etänäkin. Laitellaan
  Zoom-linkki Moodleen, niin että se ei vuoda muille kuin tämän
  kurssin opiskelijoille.
  
- Demotarkastukset pääsevät jatkumaan tänään. Opettajilla on kaikki
  sylinterit käynnissä, mutta myös pari muuta kurssia ja
  opinnäytetarkastuksia meneillään. Koetetaan muistaa laittaa
  tilannekatsaus demotarkastuksista samalla, kun päästään ilmoittamaan
  tämän päivän tallenteen tulemisesta Moniviestimestä.

  Deadline-perusteisesti tekevillä olisi hyvä olla demot 1-3 kohta
  hyväksytysti läpi ja asiat sisäistettynä.

- Ensi viikon alussa tapahtuu "Demo 4 porukalla":

  + Ryhmäharjoite

  + 90 minuutin sessio!! Paikalla vartin yli!! 90 minuutin päästä
    vasta pääsee pois. Demo 4 suoritus: olet läsnä, kun ope kirjaa,
    että olit läsnä. Läsnä: Zoomissa.

    Mahdolliset ajat on Sisussa. Voit valita itselle sopivan ja TULLA
    PAIKALLE *ENNEN VARTIN YLI*.

  + Jos tuntuu, että tarvitset haluat, voit tulla ilman
    ilmoittatutumista uuteenkin ryhmään. Joka kerta 90 minuuttia
    ryhmän kanssa!!

*** Tämän luennon tavoite

- Jatketaan käytännön esimerkkejä tasan siitä, mihin viimeksi jäätiin.

- 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.

*** Jatketaan edellisestä: Hei maailma

Poimitaan ajatukset edelliseltä kerralta, ja mennään eteenpäin.

Tavoite: Näytetään lisää, mitä ja miten pääsee itsekin kokeilemaan ja
tutkimaan suhteessa monisteen luvuissa 2-5 alustettuun teoriaan.

*** Avuksi koneen toiminnan ymmärrykseen: Little man computer

Elävää animaatiota minimalistisen tietokoneen toiminnasta. Näytetään
luennolla vähäsen:

http://peterhigginson.co.uk/LMC/

Samalta kaverilta karsittu ARM-prosessorisimulaatio:

http://peterhigginson.co.uk/ARMlite/

Kun perusidea on hahmottunut, me opettelemme käyttämään gdb:tä aivan
todellisen tietokoneen kanssa!

*** Tauko 11 min. Jatketaan tasan klo 9:20
*** Jatketaan edellisestä: Debuggerissa homma käyntiin
*** Demo 4 esittely

Flingassa on näköjään pyydetty 15 minuutin briiffiä demojen
tekemiseen.

Vilkaistaan demo-ohjetta ja näytetään malliksi vähän esimerkkiä, miten
ryhdytään tekemään.

- Demon 4 ohje ja monisteen luku 5 kytkeytyvät osin toisiinsa, eli
  luvun 5 esittelyä suhteessa demoon 4 pitää tulla tässä samalla.

Hmm... tarkemmin ajateltuna koko tämän aamun luento oli esimerkkiä
siitä, mitä kohti ollaan oppimassa: C-kielisten ohjelmien uteliasta
kokeilemista ja omien mielikuvamallien varmistamista oikean debuggerin
avulla.

*** 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.

Tekemistä:

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

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!

** Luento 9:  (ke 27.4.2022) (P/J) Näätäily 3.0

*** Infot keväälle 2022

Mahdollisia "kevennyksiä" demoscene-puolelta (asiaan liittyen)?
Jos sekä jokin tuotos että sen lähdekoodi saadaan kaivettua
näkyville... riippuu, kokeillaan... ei näköjään ehtinyt vielä tälle
päivälle; tulossa on, väistämättä, ehkäpä jo perjantaina!

- Tenttipäivät siirretään! Tähän kysyttiin kantaa Moodlessa, ja
  enemmistön päätöksellä (25 kyllä, 7 ei, 26 tyhjää) tentit ovat näin:

  + Ensimmäinen: Perjantaina   27.5.2022  klo 8-12

  + Toinen:      Keskiviikkona  6.7.2022  klo 16-20

  + Kolmas:      Keskiviikkona 17.8.2022  klo 12-16.

  Päätös on täten tehty ja tiedotettu - päivitetään Sisuun heti, kun
  on aikaa käydä klikkailemassa.

  Yleiset tentit tälle kurssille perutaan - älä ihmettele mahdollisia
  ilmoituksia asiasta! Tenttipäivät kalenteriin nyt, kun on tiedossa!

  Perustelu ajankohdille: Lähellä alun perin ilmoitettuja. Etäällä
  viikonlopuista (voi olla lomareissuja ym.). Heinäkuun ajankohtana
  ilta (väistää esimerkiksi virastoaikaan sijoittuvan kesätyön)
  
  Jokainen kerta on kotitentti, joka avautuu kurssin Moodle-alueelle
  vartin yli. Tenttiaika 4 tuntia eli myös päättyy vartin yli. Kaikki
  materiaali ja työkalusto sallittua paitsi avun kysyminen
  ulkopuoliselta henkilöltä. Paras tulos jää voimaan.

- Demotarkastusten tilanteesta ilmoitetaan jatkossakin aina, kun on
  etappi saavutettu; tänään meneillään demon 3 uusien vastausten
  tarkastaminen.

*** Demo 4: Terveiset porukkasessioista + evästys itsenäiseen suoritukseen

Laitetaan heti tähän väliin, että muistetaan tämä.

Katsotaan, mitä alkuviikosta tehtiin mikroluokissa. Kiitos ryhmille
vielä - oli hauskaa puuhaa mikroluokassa!

Nyt pääsee tekemään samaa itsenäisesti, jos ei päässyt paikalle
ryhmäsessioihin.

Samalla mikroluokassa tehtyjä havaintoja screeneistä, editoreista,
UTF-8 -merkistöistä, terminaali-ikkunan väreistä ja muusta, mitä
pystyy käymään ilmi olan yli katsomalla.

Lisähuomio: Uteliaisuus on toivottua, mutta lisäksi tarvitaan
lähdekritiikki. Tieto löytyy usein jopa lähempää kuin sieltä
internetin syövereistä. Esimerkiksi komento "man malloc"

Käydään läpi demo 4:n ohjetta ja näytetään vähän mallia, miten hommaa
lähdetään tekemään.

*** 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)

*** Tauko sopivassa välissä, ehkä näätäilyn jälkeen.

Muistetaan pitää tauko. Jatketaan tasan 15:20.

*** Asioiden käsittelyä järjestelmällisesti

Jatketaan ajatuksia ja esimerkkejä aiemmista.

Flingassa on joitakin toiveita, joihin päädytään luonnostaan, kun vaan
jatketaan tiellä, jossa ollaan.

Todetaan käsitellyksi Flinga-lappu:

"Saako tentissä käyttää kurssimateriaaleja vai pitääkö kaikki komennot
muistaa ulkoa?" (13 tykkäystä).

Viimeksi oli muun muassa hieno C-ohjelma, jonka ei olisi pitänyt
toimia! Mitä ihmettä siinä tapahtuu? Osaamistavoitehan on kyetä
selvittämään ja ymmärtämään tällaisia asioita, mitä milloinkin vastaan
tulee. Palataan siihen, ja selvitetään!

Selvitettiin!!


Perjantaina jatketaan näistä:

Olemme matkalla kohti koodiliitettä. Katsotaan, mistä koodit saa
haettua suoraan versionhallinnan web-liittymän URLeista.

Otetaan esimerkiksi "Hei maailma assemblerilla" ja käpistellään.

"Kaikenlaskijan" voi tehdä vaikka scratchistä lennosta; demonstroimaan
alustavasti aikakatkaisua ja vuoronnusta...

*** Tältä päivää oli tässä - ITKA203 loppuviikon tekemistä

- Huomenna (to) aamulla normaalisti Open labrapäivä. Nyt myös Zoomin
  kautta tarjolla.

- Ylihuomenna (pe) karhuluento - päätetään tällä kertaa opettajien
  kesken, mitä tuutista tulee. Mennään asiassa eteenpäin

- Demo 4 itsenäinen suoritustapa määritelty. Ryhdy tekemään, jos et
  ehtinyt ryhmäsessioihin! Löytyy normaalista paikasta HTML-vedoksena.

*** Meneillään olevat tehtävät (perjantaina mennään taas eteenpäin!)

Lukemista:

- Demo 4 ohjeteksti

- Monisteen luvut 5 ja 6.

Tekemistä:

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

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!













** Luento 10: (pe 29.4.2022) (P/J) Karhuluento

*** Infot keväälle 2022

- Kirjautumisongelmat jalavassa ja halavassa _pitäisi_ olla lopulta
  korjattu, kun ylläpito paikansi lopulta ehkä oikean
  juurisyyn. Tarkkailkaas tilannetta, ja vertaistukikanavalle
  havaintoja, jos ongelma jatkuu.

- Terveisiä eilisestä open labrapäivästä: Kaikkiin kysymyksiin saatiin
  taas vastaus. Ruuhkaa näissä ei ole ollut, eli mukaan mahtuu!
  Zoomissa ei käynyt ketään, mutta avataan se jatkossakin. Torstaina
  12.5.2022 ei välttämättä ole labrapäivää koulutuspäivän vuoksi.

- Demotarkastusten tilanne tänään: 26.4.2022 demo 3 saapuneet
  tarkastettu.

- Muuta, jos on.

*** Tämän luennon tavoite

- 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.

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

*** Demon 4b esittely

Käydään läpi demo-ohje ja näytetään malliksi vähän esimerkkiä, miten
ryhdytään tekemään: Hakemiston luonti, paketin nouto ja avaus,
mallikoodiin tutustuminen opituilla työkaluilla (tärkeä!),
dokumentaation lukeminen (myös tärkeä!), toimeen tarttuminen (oho;
tärkeä varmaan tämäkin!). Monisteen konekieliesimerkkien huolellinen
tutkiminen ja soveltaminen: mitä tarkoittaa?

*** Tauko sopivassa kohdassa.
Jatketaan tasan 11:20.

*** Asioiden järjestelmällistä läpikäyntiä siitä, mihin on jääty

Ja tähän jäätiin (copy-paste keskiviikon muistiinpanoista; muistetaan
silti aina vilkaista myös ehdotus-Flingaamme):

Jatkettiin näistä:

Olemme matkalla kohti koodiliitettä. Katsotaan, mistä koodit saa
haettua suoraan versionhallinnan web-liittymän URLeista.

Otetaan esimerkiksi "Hei maailma assemblerilla" ja käpistellään.

"Kaikenlaskijan" voi tehdä vaikka scratchistä lennosta; demonstroimaan
alustavasti aikakatkaisua ja vuoronnusta...

Koodiliitteen koodit vois vaikka ottaa esimerkkikansioon, kun niihin
tullaan nyt palailemaan.

Monisteen seuraavista luvuista (7-8) vois jotakin alustavia sanoja
tulla, jos ehtii.


Ollaan saatu käsiteltyä Flinga-lappuja:

'Luentomonisteen kohdan 4.3 ”Hello world!” suoraan assemblerilla voisi
käydä läpi. Koin hankalaksi yhdistää sen mitä tekstissä selitettiin
siihen mitä debugger-tulosteessa luki.'

'Mitä eroa eri rekistereillä on (RAX yms.)?'

'Jonne: monisteessa \lstinline:: on taittohärö, unohtakaa se kunnes se
poistuu (pitäs olla poistunut. raportoikaa lisää virheitä)'

*** Seuraava ennakkotehtävä

Lukemista:

- Demo 4b ohjeteksti

- Monisteen luvut 7-8

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.

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!









** Luento 11: (ke 4.5.2022) (P/J) Näätäily 3.0 tenttitärpein + asiaa.

Eli suomeksi näätäluento!
Aletaan tykittää tasan 14:15!

Tänään tauon kohdalla toteutui: Mahdollisia "kevennyksiä"
demoscene-puolelta (asiaan liittyen)?

*** Infot keväälle 2022

- Muista merkitä uusintatentit omaan kalenteriin. Niitä ei näköjään
  saa työnnettyä kurssitoteutuksen kalenteriin automaation kautta.
  Tarkka syy: " Virhe: Import failed due to validation errors: Study
  event dates must be within course unit realisation dates" sanoi
  Sisu. Kurssitoteutus puolestaan päättyy 27.5.2022, ennen
  uusintatenttien päivämääriä. Sisu on puhunut.

  Tenttiajat vielä kerran kertauksena, jo copy-paste edellisestä
  infoiskusta, nyt lisätty nähtäville myös Moodle-sivun alkuun:

  + Ensimmäinen: Perjantaina   27.5.2022  klo 8:15-12:15
  + Toinen:      Keskiviikkona  6.7.2022  klo 16:15-20:15
  + Kolmas:      Keskiviikkona 17.8.2022  klo 12:15-16:15.

- Demotarkastukset pitkälti ajan tasalla kevään osalta. Etapeista
  ilmoitetaan Uutiset-kanavalla, kun esimerkiksi kaikki on tarkastettu.

- Edelleen: Muistakaa klikata Moodlessa "lähetä
  tarkastettavaksi". Muuten emme näe vastaustasi alkuunkaan!

- Huomenna open labrapäivä perinteisesti 8:15-10:00; ensi viikolla voi
  olla että ei pystytä pitämään.

- IT-tiedekunnan opiskelija: Olet saanut sähköpostiisi kutsun
  tiedekunnan kevätpiknikille - kaivapa esiin arkistosta, ja
  ilmoittaudu ASAP ruokavahvuuteen + omat allergiat tietoon! Muuhun
  ohjelmaan mahtuu ilmoittautumatta, mutta ravintola tarvitsee
  tilauksia varten ruokailijoiden määrän.

  Ja kaikille yhteisesti: Mukaan nyt kaikkeen, mistä ilmoitellaan!
  Korona on olennaisesti ohi ainakin tällä hetkellä!!
  (Flunssaoireisina osataan olla hetki kotona, mutta muuten ei enää
  tarvitse tapahtumia vältellä, ja niitä alkaa taas olla.)

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

- Interaktio, ryhmäkeskustelu.

- Pysyen kurssin ja siihen sopivien opiskelumenetelmien
  tematiikassa. Tänään taas tenttitärppien muodossa.

Näädät eivät kiiruhda. Näädät pohtivat ja keskustelevat.
Lokalisoidaan näätäily viikon ensimmäiseen luentoneljännekseen eli
tänään ennen taukoa.

*** 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... ehkä viime vuoden (2021) ensimmäisestä tentistä
  (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)

**** (ei tänään) Toinen tehtävä?

Jos on aikaa ja uskallusta, ehkä myös kysymykset 42-44/48?

*** Tauko sopivassa välissä

Kello 15:15 tulee vähän YouTube-kamaa salissa.

Linkit kotikatsojille, Assembly Summer -tapahtuman yhden kilotavun
koodauskilpailuun eli "1k intro -compoon" osallistuneita tuotoksia:

- Opettajan oma pikkiriikkinen tuotos vuodelta 2016:
  https://www.pouet.net/prod.php?which=67941

- Kohtalaisen paljon hienompi, oikeutettu voittajatuotos vuodelta 2018:
  https://archive.assembly.org/2018/1k-intro/geelimanipulaatio-by-gib3-tix0

Kello 15:20 jatkamme tykitystä. (hiukan myöhästyi saliteknisistä syistä)

*** Jatketaan asioiden järjestelmällistä käyntiä

Teorian ja käytännön käsittelyä koodiliitteen esimerkkien avulla ja
lennostakin kokeiluja tehden: C:tä, kuorta, konekieltä ja
dokumentaatioiden tarkistelua livenä. Eli mallia opittavista asioista,
utelias ja uskalias asenne mukaanlukien.

Ensin vähän demoscene-harrastuksen puolelta, Linuxin
ELF-binääritiedostoa ja musiikkia suoraan konekielellä. Kuoriskriptiä,
mysteeritiedoston sisällön tutkimista ja reverse
engineeringiä. Innostuminen on sallittua - olipa se sitten mikä
tahansa kohde. Esimerkin vuoksi nämä Paavon demoscene-säädöt.

Kertaavaa, yhteenvetävää ja tietoturvaan liittyvää havainnointia
aiemmasta eli "Hei maailma assemblerilla" -esimerkikstä.

Jatketaan taas perjantaina siitä, mihin tänään ajatukset jäävät.

Nehän jäivät siihen, että "Hei maailma konekielellä" -esimerkistä
saatiin ammennettua kaikki ja tekninen kyberturvallisuusnäkökulma.

*** Tältä päivää oli tässä

Huomenna "Open labrapäivä" normaalisti, tervetuloa!

Perjantaina karhuluento, tervetuloa!

Kysymyksiä ja vastauksia saa jäädä esittämään sen jälkeen, kun
tilatallennuksesta on tehty videotukeen julkaisupyyntö huolellisesti.

** Luento 12: (pe 6.5.2022) (P/J) Karhuluento
*** Infot keväälle 2022
- Ei mitään uutta - homma rullaa, kun rullataan vaan!
- Paitsi jos yleisöllä on mielessä kysymyksiä tämän kevään käytännön
  toimenpiteistä?
*** Tämän luennon tavoite
- 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.
- Päivän lopuksi tiedetään, mitä seuraavaksi pitää tehdä ennen
  seuraavia yhteisiä tapaamisia: Seuraavaksi demo 5
  ohjeteksteineen, monisteen luvut 9-10.

*** Havaintoja open labrapäivästä

Havaintoja ja esimerkkejä eilisen labrapäivän muistoista.

**** Työskentelytavat

Joillain on jo hyvin näppärän näköistä työskentelyä Emacsin, Vimin ja
Screenin kanssa. Oli hienoa katseltavaa.

Joillain on vielä aivan tarpeettomia hankaluuksia - esimerkiksi
lukematon määrä ylimääräisiä screenejä ja editoreja. Oli hyödyllistä
katseltavaa. Hyvä, että oltiin samassa tilassa tekemässä ja jaettiin
kuvaruutuja Zoomilla!

Päätteen fonttikokoa ja värejä voi muuttaa mieleisemmäksi. Kannattaa
varmistua omalta kohdalta, että homma on näppärää, eikä aika mene
johonkin, mikä ei liity asiaan eli kuoreen, C:hen, konekieleen,
tietokonelaitteistoon, muistiin, käyttöjärjestelmäkutsuihin ja muuhun,
minkä tutkimiseen sen ajan pitäisi mennä harmittelun sijaan.

Tällä luennolla nähdyn "koreografian" lisäksi on ohjevideot erillisten
videoiden kansiossa! Ne kannattaa koettaa ymmärtää ja viedä
käytäntöön! Jos niissä on jotakin epäselvää, niin kannattaa kysyä
tarkennuksia täsmänä!

**** Työskentelytavat, osa 2: koodaaminen 

Pieni muutos kerrallaan!

Koko ajan homma näpeissä ja ymmärryskin mukana!

Kääntäjän virheilmoituksia on opittava lukemaan - ensimmäinen virhe
pitää aina korjata, koska loput voivat johtua siitä.

Varoitukset kannattaa pyytää kääntäjältä, eikä niitä passaa jättää
korjaamatta, koska ne ovat lähes aina merkki siitä, että ohjelma tekee
jotakin, mitä et ole tarkoittanut (tai vielä ymmärtänyt).

Debuggeri auttaa, kun virhe ilmenee niin, että ohjelma kaatuu!

*** Nopea esimerkki tai pari koodiliitteestä eteenpäin

Käydään tähän väliin koodiliitettä ja sen suhdetta teorialukuihin,
jotta näissä päästään varmasti eteenpäin tänään!

Ajatukset edellisen kerran jälkeen copy-pastella:

"Kaikenlaskijan" voi tehdä vaikka scratchistä lennosta; demonstroimaan
alustavasti aikakatkaisua ja vuoronnusta... Tutkitaan vaikka
top-komennon tulostettakin ja prosessien hallintaa. Tarkempi
prosessien hallinan esimerkistö löytyy erillisistä videoista, niin ei
käytetä siihen sen enempää aikaa tässä vaiheessa! Todetaan toivotun
omatoimisen osaamisen taso tässä vaiheessa..

Vois kuitenkin rajapintadokumentaatioesimerkin vuoksi varmistaa, mistä
kohtaa POSIXia löytyy prosessinhallinnan kuorikomennot.

Jatkossakin vaan järjestelmällisesti koodiliitteen koodeja sopivassa
järjestyksessä käsittelyyn. Suhteutus teorialukuihin, erityisesti
otsikoihin, havainnekuviin ja pseudokoodiesimerkkeihin. Teksti
itsessään on luettavaksi tehty, ei resitoitavaksi luennolla.

*** Tauko sopivassa kohdassa. Jatkuu tasan 11:20!

Purettiin viritykset. Osaat tehdä itsekin nyt! 

*** Demon 5 esittely

Tämän voi ehkä tehdä nopeastikin!? No eipä oikeastaan, koska tärkeitä
asioita oli tarpeen painottaa.

Käydään läpi demo-ohje ja näytetään malliksi vähän esimerkkiä, miten
ryhdytään tekemään.

*** Seuraava ennakkotehtävä

Lukemista:

- Demo 5 ohjeteksti

- Monisteen luvut 9-10

Tekemistä:

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

- Demo 5 työn alle. HUOMAUTUS: Demo 5:n katselu voi auttaa myös demo
  4b:n ymmärtämistä!

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!


Ensi kerralla:

** Luento 13: (ke 11.5.2022)  (P/J) Näätäily 3.0 tenttitärpein + asiaa

Tänään taas alkupuoli näätää, loppupuoli karhua; tauko välissä.
Aletaan tykittää tasan 14:15!

*** Infoisku keväälle 2022

- Demotarkastusten tilanne tänään: Demot 1 kaikki tarkastettavaksi
  jätetyt katsottu klo 10:26. Demot 2 katsottu klo 11:00. Demot 3
  katsottu klo 12:01. Demot 4, 4b seuraavaksi edessä. Tiedotetaan, kun
  ne on kaikki katsottu kertaalleen läpi.

- Suosituimpia kaloja demon 3 perusteella tähän asti (case-sensitive; Pallokala
  != pallokala):

      7 Ympäristömuuttuja LEMPIKALA == miekkakala
      7 Ympäristömuuttuja LEMPIKALA == lohi
      6 Ympäristömuuttuja LEMPIKALA == ahven
      5 Ympäristömuuttuja LEMPIKALA == muikku
      4 Ympäristömuuttuja LEMPIKALA == Lohi
      4 Ympäristömuuttuja LEMPIKALA == Kuha
      4 Ympäristömuuttuja LEMPIKALA == kissakala
      4 Ympäristömuuttuja LEMPIKALA == hauki
      4 Ympäristömuuttuja LEMPIKALA == Ahven
      3 Ympäristömuuttuja LEMPIKALA == kultakala

  Top-lista muodostettu komentorivillä
  find . -name "*.txt" | while read a;
  do grep LEMPIKALA "$a" ; done | sort | uniq -c | sort -n -r | head

  Yhteensä ehdotettuja kaloja oli 136.
  Selvitetty komentorivillä:
  find . -name "*.txt" | wc -l

  Erilaisia kaloja (case-sensitive) ehdotettu 85. Innovatiivisia
  kalastelijoita tällä kurssilla!

  Lukumäärä selvitetty putkittamalla top-listan muodostama tuloste
  viimeisenä komennolle "wc -l" eikä "head" kuten ylläolevassa.

*** Päivän päätavoitteet:
- Ensimmäisellä puoliskolla: Interaktio, ryhmäkeskustelu.
- Pysyen kurssin ja siihen sopivien opiskelumenetelmien
  tematiikassa. Tänään taas tenttitärppien muodossa.
Näädät eivät kiiruhda. Näädät pohtivat ja keskustelevat.
Lokalisoidaan näätäily viikon ensimmäiseen luentoneljännekseen eli
tänään ennen taukoa. Tauon jälkeen karhut jatkavat.

*** Näätäilyä luentokertojen välillä - 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!

*** 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.)

*** Tauko sopivassa välissä

Tauolle hengähtämään edellä alustettu kysymys mielessä. Käydään
vastaus tarkoin läpi tauon jälkeen.

Jatketaan tasan klo 15:20.

*** Jatketaan asioiden järjestelmällistä käyntiä

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?

*** Tältä päivää oli tässä

Huomenna jonkinlainen "Open labrapäivä" jälleen. Seuraa
tiedottelua. Vertaistukikanava palvelee ilmeisen hyvin!

Perjantaina normaalisti karhuluento, tervetuloa!

Aina tämä: Kysymyksiä ja vastauksia saa jäädä esittämään sen jälkeen,
kun tilatallennuksesta on tehty videotukeen julkaisupyyntö
huolellisesti. Menee keskittyen noin pari minuuttia siihen.

** Luento 14: (pe 13.5.2022)  (P/J) Karhuluento
*** Infot keväälle 2022

- Ei mitään uutta auringon alla. Eikä vesisateen alla.

- Paitsi kaikenlaista ajankohtaista, mm. NVIDIA julkaisi
  grafiikka-ajurit Linuxille avoimena lähdekoodina.

*** Tämän luennon tavoite
- 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.

- Aloitetaan viemällä viime kerran tenttitärppi loppuun.

- Päivän lopuksi tiedetään, mitä seuraavaksi pitää tehdä ennen
  seuraavia yhteisiä tapaamisia: Seuraavaksi demo 6
  ohjeteksteineen, monisteen luvut 11-12.

*** 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ä.

*** Flinga-lappujen käsittelyä: muutama nopea alta pois

Jonne on valmistellut presiksen Flingaan nostetuista yksityiskohdista.

Palvelimeltamme itka203.it.jyu.fi/ löytyy nyt muutama lisämateriaali.

Nyt käytiin läpi itka203.it.jyu.fi/lyhyet.html

Merkataan laput samalla käsitellyiksi. Nämä saatiin alta pois tässä
kohtaa:

- Jos käsitteet on ymmärretty väärin, saisiko täydelliset selitykset
  esimerkkien kera seuraaville käsitteille: algoritmi, hakkeri...
  
- Voisiko antaa teorian (ohjelmointitaso & muistitaso) miten
  attribuutit ja parametrit eroavat toisistaan

- Miten USB-muisti toimii?
  
*** Tauko, ei ylipitkä, sopivassa kohdassa

Tauko 12 min. Jatketaan tasan 11:25!

*** Asiaa järjestelmällisesti eteenpäin: Edellisistä demoista

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

**** 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ö.

*** Demon 6 esittely

Käydään läpi demo-ohje ja näytetään malliksi vähän esimerkkiä, miten
ryhdytään tekemään.

*** Seuraava ennakkotehtävä

Lukemista:

- Demo 6 ohjeteksti

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

Tekemistä:

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

- Demo 6 työn alle.

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!

** Luento 15: (ke 18.5.2022) (P/J) Viimeinen Näätäily 3.0 + asiaa

Vielä kerran alkupuoli näätää, loppupuoli karhua; tauko välissä.
Aletaan tykittää tasan 14:15!

*** Infot keväälle 2022

- Jäljellä on tämän lisäksi 2 luentoa, 1 Open labrapäivä ja tentti!

- Aikatauluhuomioita: Tämän viikon perjantaina luento on taas
  poikkeuksellisesti jo klo 8:15-10:00!

- Demotarkastuksista: 4b eiliseen mennessä palautetut
  tarkastettu. Demo 5 tarkastetaan mahdollisimman pian. Demo 6
  mahdollisesti tentin jälkeen - sehän menee kaikilla läpi vähintään
  apuvideoita seuraamalla, jos ei lähde ilman.

*** Tämän luennon tavoite

- Viimeinen, pieni näätäily, jossa viimeinen tenttitärppi. Tentistä
  ja tenttikäytännöstä tulee muutoinkin viimeistä kertaa ennakointia.

- Sitten loppukurssi karhunkäyntiä: 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.

- 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!

*** Tentin esittely viimeistä kertaa: säännöt ja käytänteet

Tentti tapahtuu ensi viikon perjantaina eli 27.5.2022 klo
8:15-12:15. Tämä tiedetään tänään:

  + Toteutustapa on Moodlen ajoitettu etätentti.

  + Ei tarvita ilmoittautumista. Tentti aukeaa kurssin Moodleen klo 8:15.

  + Vilkaistaanpa yliopiston määrittämää etätentin ohjetta, joka pitää
    hyväksyä ennen kuin tenttiin pääsee käsiksi.

Yliopiston ohjeessa on hassuja juttuja. Meidän tentin kannalta
olennaiset pointit ovat nämä:

  + Kaikkea netistä avoimesti löytyvää materiaalia on lupa käyttää,
    mutta kommunikointi kenenkään muun henkilön kanssa tentin aikana
    on ehdottomasti kiellettyä.

    Teknisesti kommunikaatiokieltoa on liki mahdoton valvoa, joten
    asia on nyt "honor code" -tasoinen. Ethän sorru huijaukseen -
    jälkihäpeä siitä on mittaamaton!

  + Kysymykset, muotoilu ja arvostelu ovat tasapuolisuussyistä
    mahdollisimman samanlaiset kuin vuosina 2017-2019 (mallitentit),
    mutta kysymyksissä ei voi olla sellaisia, joiden vastaus löytyisi
    suoraan materiaalista tai mallitenttien julkisista
    palautteista. Tänäkin vuonna tentti pyrkii mittaamaan juuri
    oikeita asioita eli soveltamista ja tarvittavan tiedon nopeaa
    kertaamista tai jopa uuden etsimistä.

  + Voidaan selvästi olettaa, että tentissä on jokaisella nettiyhteys
    ja selain käytössä, joten se mahdollistaa sellaistenkin kysymysten
    laatimisen, joiden vastaus löytyykin nimenomaan netistä eikä
    suoraan materiaalista - toki kuitenkin kurssilla nähdyillä
    toimintatavoilla. Lisäksi voidaan olettaa, että kurssin demoista
    tuttu palvelinympäristö jalava/halava on käytettävissä pieniin
    käytännön kokeiluihin myös tentissä.

    Tällaisiin voi varautua; luentovideoihin on kertynyt useita
    esimerkkejä onnistuneista ja epäonnistuneista tiedonhauista
    nimikkeellä "mallioppiminen". Kerrankin on tilanne, jossa voisi
    mitata myös tätä sinänsä kaikista tärkeintä taitoa!

  + Opettajat päivystävät kurssin Zoom-huoneessa tentin ajan teknisten
    ongelmien ratkomista varten. Linkki on siellä
    Moodlessa. Huoneeseen ei tarvitse tulla, jos ei ole teknistä
    ongelmaa. Sisältökysymyksiin ei vastata millään foorumilla tai
    välineellä tentin aikana!!

  + Vilkaistaan oman tentin ohjesivuakin kertaalleen viime vuoden
    esikatselusta.

*** Viimeinen Näätäily 3.0

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.)

*** Tauko

Jatketaan vartin yli.

*** 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...

**** Prosesseista: Signaalinkäsittely ja kill

sigesim.c

Katso briiffaus videolta.

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


*** Tältä päivää oli tässä!

Perjantaina poimitaan seuraavista teoria-aiheista ja
POSIX-esimerkeistä.

** Luento 16: (pe 20.5.2022) (P/J) Toiseksi viimeinen luento
*** Infot keväälle 2022

- Jäljellä on tämän lisäksi 1 luentoa

- Demotarkastuksista: Demo 5 tarkastettu.

*** Tämän luennon tavoite

- Loppukurssi karhunkäyntiä: 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.

- 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

**** 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.

*** Tauko sopivassa välissä

*** Lisää asiaa

**** 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

Siihen ehdittiin toiseksi viimeisellä luennolla. Loput viimeisellä
kerralla sitten.

*** Tältä päivää oli tässä

Jäljellä vielä yksi sisältöluento ja tentit!

** Luento 17: (ke 25.5.2022) (P/J) Viimeinen luento.
*** Infot keväälle 2022

- Ylihuomenna on tentti! Kaikki siihen liittyvä on tiedotettu
  luennoilla. Onnea ja osaamista matkaan, mutta ei stressiä!
  Kysymykset ovatkin jo sisässä...

- Tänään vielä tiukkaa asiaa - yritetään kaikin keinoin saada
  luentotallenne saataville jo täksi illaksi.

- Demotarkastusten tilanne: Ollaan jo alle viikon aikaikkunassa;
  yritetään saada vielä tähän iltapäivään mennessä tarkastettavaksi
  jätetyt demot 1-5 katsottua läpi, jotta palautteet tulevat ennen
  tenttiä.

- 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.

  (Lisäksi: jo viime vuonna eli 2021 pyydettiin mainitsemaan kurssin
  lopuksi courserating.fi virallisen Webropol-palautteen _lisäksi_, ei
  korvikkeena... Virallinen on se tärkeä, jonka opettajat lukevat ja
  josta esim. näätäluennot ja välidemo assemblerista ovat tulleet
  kurssille, toiveiden perusteella. Hyvine ja huonoine puolineen se on
  myös ainoa ja oikea yliopiston virallinen
  palautejärjestelmä. Courseratingissa on sinänsä omat ihan jännät
  lisäarvonsa yhteisöllisyyden kannalta ja pilottidataa mielellään
  keräisivät tänäkin vuonna... )

*** Tämän luennon tavoite

- Karhuluento: Asiat loppuun järjestelmällisesti.

- Eli nopeat infot ja aikailematta asiaan!

*** Loput asiat, 1/2

**** 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

**** Virtuaalimuisti (sivutus ja heittovaihto): 

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

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

- 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
*** Tauko (sopiva, ei kovin pitkä, mutta ajatuksia kivasti nollaava)

Asetetaan taukoaika huolellisesti, auttakaa opettajaa kellonaikojen
päässälaskussa..

Tauko klo 15:18-15:25

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

Cache thrashing esimerkkikoodi  cache.c

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

**** Välikevennyksenä tauon jälkeen: koodiliiteen B.1 pikkukoodit

Todetaan pelkästään täydellisyyden vuoksi pienet kokeilukoodit:

argumentit.c lukuja.c rekursio.c

Toivottavasti tällaisia kokeiluja on tähän mennessä tullut mieleen
kokeilla ihan itse - demoissa on heitelty täkyjä, ja esimerkkien asiat
ovat olleet mukana demojen 3 (argumentit ja ympäristömuuttujat) sekä 4
(C-kieli) sisällöissä. Vähintään jatkossa tiedät, miten voi kokeilla
ymmärtämisen avuksi - sehän meillä on tässä se iso arvotavoite ollut,
että uteliaasti uskalletaan kokeilla ja ihmetellä!

*** Loput asiat, 2/2

**** 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_*

*** Tämän kurssi-instanssin luennot olivat tässä!

Kiitos paikalle saapuneille "studioyleisöille" - toteutimme yliopiston
uusimpia 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.

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 2022!


** Tenttiaika: (pe 27.5.2022) (P/J) Klo 8:15-12:15 kotitentti!

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




* Aiempien vuosien (2020-2021) toteumaa vertailun vuoksi

** 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ä