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

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

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.

- Emme jälkikäteen sensuroi, joten huomaa: Kun puhut, äänesi tulee
  julkaistavaan videoon. Chät-ikkuna ei näy, joten sinne voi
  kirjoitella, eikä se tule videoon.

- Joskus vielä tekniikka pettää, jolloin itketään hetki ja eletään
  ilman kyseistä nauhoitetta.

- Kun katsot jälkikäteen, katso nopeuttuna!

* Toteutunutta vuonna 2021:
** Luento 1:  (ke 17.3.2021) Aloitus, yleisinfo ja suoritusvaatimukset

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

*** Tutustumiset

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

- Kartoitetaan Flingalla seuraavat ensimmäisen luennon osanottajista:

  + Opiskelijoiden pääaineet:

    Tietotekniikka: 94 opiskelijaa

    Tietojärjestelmätiede: 7 opiskelijaa

    Matematiikka: 5 opiskelijaa

    Muut oppiaineet: 10 opiskelijaa (videolla hienojakoisempi)
  
  + Opiskelijoiden pääasialliset käyttöjärjestelmät omassa käytössä
    (pöytäkoneet, tabletit, älypuhelimet, ...)?

    Windows: 89 opiskelijalla käytössä.

    Android: 88 opiskelijalla käytössä.

    Linux: 30 opiskelijalla + yhdellä opettajalla käytössä

    iOS: 21 opiskelijalla käytössä

    MacOS: 14 opiskelijalla + yhdellä opettajalla käytössä

    Raspberry Pi OS: 7 opiskelijalla käytössä

    (Linux-jakelupaketteja jaoteltiin tarkemmin; näkyy videolla)

- Pidemmän kaaren tähtäyspisteet:

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

  (Luentovideolta näkyy esittelyt tarkemmin)

Lyhyt kysymys-/vastaushetki (chät) ja tauko ennen "byrokratian" ja
vaatimusten läpikäyntiä.

[Tauko 10 minuuttia; jatkuu tasan 13:15]

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
  14:00.

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

  Jos ei ole hyvin hallussa niin aika paljon.

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

  + Luentomoniste

  + Osaamistavoitteet

  + Demot ja niiden palautus: 

    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.

  + Aikataulut ja salit: Aikataulut Sisussa - opetus pyörii niiden
    mukaisesti. Toimitaan etämoodissa Zoomilla tämä kevät.

    Selitys "Laboratoriotyölle" 19.-20.4.2021: Ei tarvitse välittää
    ennakkoilmoittautumisesta Sisussa. Samanlainen ryhmäsessio
    tarjotaan kaikkina listattuina aikoina. Valitse itselle sopiva.

    Selitys "Open labrapäivälle" noin viikottain: Ajankohta, jolloin
    kurssin opettaja hengaa kurssin Zoom-huoneessa. 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. Eivät näy Sisussa, vaan tiedotetaan Moodlessa.

  + Materiaalin reaaliaikainen tilanne löytyy Gitlabista. Päivitysten
    julkaisu useimmiten 1-2 tunnin kuluttua luennon päättymisestä.

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

- Demojen deadlinet?

  Vahva suositus olisi noin 1 demo viikossa sen jälkeen kun annetaan
  lupa aloittaa eka. 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ää 23.5.2021 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ä.

*** Muuta huomioitavaa ja tarkentavia kysymyksiä

  (siirrettiin perjantaille)

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

Luettavaa:

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

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

- Syvennymme aiheesiin perjantaina.

Ennakkokatsaus kevään luentomuotoon:

- Tullaan pitämään kunkin viikon toisessa luentopäivässä
  ryhmätyövetoista toimintaa! Tähän on hyvä varatua alusta
  lähtien. Aiheesta lisää perjantaina, joka on vielä ihan perinteinen
  luento.

** Luento 2:  (pe 19.3.2021) Luentomuoto, demo-ohjeistus, varoitukset(!)

*** Info ja edellisen kerran kysymykset

- Meillä on yksi virallinen vertaistukikanava Moodlessa:

  + Käyttäkää hyödyksi

  + Otsikoikaa viestit niin, että tietää, mistä on kyse

- Edellisen kerran chätistä poimitut kysymykset vastataan tähän kärkeen:

  + Tuleeko luentotallenteet katsottavaksi heti luennon jälkeen?

    Vastaus: Muun työn ja perhe-elämän määrittämässä aikataulussa
    mahdollisimman pian. Viivettä voi silloin tällöin olla.
  
  + Millä aikataululla demoja palautetaan?

    Vastaus: Noin yksi viikossa; tarkennetaan ihan kohta kohdassa
    "byrokratia".
    
    Jonnen chat-tarkennus ekalta luennolta: Kannattaa palauttaa
    ohjeellisten dedisten mukaan (tai yrittää kovasti pyrkiä siihen!
    toim. huom.). Pysyy rytmissä ja demot kasvattaa tulevaan asiaan!

  + Pidetäänkö tällä kurssilla pääsiäislomaa joka on vissii 2vk
    päästä?

    Vastaus: Kyllä. Yliopiston ohjeita noudatetaan ja pääsiäisviikko
    on taukoa kaikesta opetustoiminnasta. Oppiminen omalla vastuulla
    ja aikataululla; pienet hengähdystauot ovat suositeltavia.

  + Oliko arvosana siis tentistä pelkästään? Ja tätä sitten voi
    korottaa myöhemmin uusinnalla tjsp...?

    Vastaus: Jep, tarkennetaan arviointi kohdassa "byrokratia" alla.

  + Tämä teidän kahden henkilön voimin luennointi on aika
    mahtava. Että toinen vastailee chatissa, kun toinen puhuu. Näin
    palautteena jo tässä vaiheessa. Kiitos tästä.

    Vastaus: Kiitos välipalautteesta - yritämme pitää draivin yllä
    näillä 15 luennolla, jotka ovat edessä.

  + Eli mitään ei ole Agoralla, vielä varmistuksena?

    Jep, ei mitään Agoralla tämän kurssin puitteissa.

  + Tuosta vielä neuvoa muistiinpanojen tekemiseen:
    http://lsc.cornell.edu/how-to-study/taking-notes/cornell-note-taking-system/

  + Mulla oli muuten tuossa alussa hiukan vaikeuksia löytää tää
    Zoomilinkki, onko se muualla kuin Sisussa?

    Moodlessa on. Yleisellä tasolla huomaa, että löytyy myös Sisusta,
    jos opettaja / toimisto on laittanut lisätietona
    järjestelmään. Katotaan vaikka livenä ja videolle, että miten.
  
  + Oliko lukumateriaalia mihin asti nyt tarkoitus lukea?

    Vastaus: Sai tutustua jo lukuihin 1-2. Tänään annetaan
    varsinaiseksi kotitehtäväksi lukea ensi keskiviikon luentoon
    mennessä luvut 1-2 ja demon 1 ohjeteksti.

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

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

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

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

Chatista poiminta:

  https://xkcd.com/327/ 

[ Tauko 11 minuuttia. Aloitetaan teholla taas 15:20 ]

*** Ryhmäkuva

Otettiin tauon jälkeen halukkaat ryhmäkuvaan, jolla kurssin etusivu
kustomoidaan myöhemmin luentoesimerkkinä. Huomaa, ei ole mikään pakko
näyttäytyä! Nou stress, nou mess!

*** Tiedote ensi kerrasta

Tämä päivä vielä aivan "perinteistä" luentoa. Ensi kerrasta jo
ennakkotiedote:

- Tulee lupausten mukaisesti uutta ja kokeellista menettelyä.

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

- Jos päätät osallistua näätäilyyn ja tulla paikalle, varaudu
  seuraaviin:

  + Todennäköisesti tullaan keskustelemaan pienryhmissä.

  + Todennäköisesti tullaan suosittelemaan videokameran käyttöä
    ryhmäkeskustelussa. Ei tietenkään haittaa, jos ei omista kameraa -
    ei tietenkään velvoiteta tekemään hankintoja. Taitaa olla myös
    vähän pulaa web-kameroista kauppojen hyllyillä koronasta johtuen...

  + Voi olla hyvä varmistaa mikrofonin toiminta etukäteen.

Muuta tästä ei vielä tiedetäkään, vaan näemme ensi kerralla miten
käy. Ehkä epäonnistutaan, ja yritetään seuraavalla näätäilykerralla
paremmin.

Tarkoitus on pitää jotakuinkin toinen luentokerta viikossa tällä
tavoin. Eli keskiviikot.

Tästä luennosta alkaen yritetään karhuluennoilla (ei näätä-) 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ämän luennon
varoitukset on syytä ensin sisäistää.

*** Sukelletaan luentomonisteeseen sivulta 1 alkaen

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

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

Luettavaa:

- Luentomonisteen alkuosa eli 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 24.3.2021) Ensimmäinen ryhmäkeskustelumuotoinen tilaisuus!

Eli suomeksi näätäluento!

Aletaan tykittää aika tasan 14:15!

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

- Interaktio, ryhmäkeskustelu.

- Pysyen kurssin ja siihen sopivien opiskelumenetelmien tematiikassa.

- Luodaan yhteistä käsitystä aiheista, joita viikon karhuluennolla
  olisi tarpeen käydä läpi.

*** Ryhmien jako

Nopee! Zoomissa satunnaiset Breakoutit nimeltä Room 1, Room 2, ...,
Room N.

Ryhmäkoko 4-5 henkeä, suurin osa 4-henkisiä.

Myöhässä tulevat ladotaan lisäjäseniksi pitkin matkaa -
väkimäärämuutokset siis todennäköisiä.

*** Lämmittely ja menettelytavan opettelu

**** Nimi- ja fiiliskierros ryhmissä

Ennakkopohdinta (1 minuutti):

- Missä tunnelmissa olen juuri nyt?
  
  Ennakkopohdinnan voi kokeilla tehdä kynällä paperille, vaikka
  avainsanoin.

Ryhmissä seuraavat (7 minuuttia):

- Mikrofonit päälle

- Videolähetykset päälle, jos on kamera

- Zoom-nimen mukaisessa aakkosjärjestyksessä (paremman ratkaisun puutteessa):

  + Jokainen vuorollaan kertoo:

    Kuka olen, mistä oppiaineesta, missä tunnelmissa olen juuri nyt.

    Muut eivät keskeytä! Pidä tunnelmakuvaus lyhyenä.

  + Kun ihan jokainen on saanut vuoron, aloitetaan uusi kierros, jossa
    saa jatkaa juttua vapaaammin.

  + Jatketaan, kunnes tulee paluu pienhuoneesta. Zoomissa on
    automaattinen 60 sekunnin varoaika takaisinkutsun jälkeen.

**** Miten meni?

Teknisten ongelmien laajuuden selvitys, jutellaan vähän ääneen ilman
videotallennusta:

- Toimiko mikrofonit?

- Oliko aika riittävä?

- Heräsikö keskusteluakin alkukierroksen pohjalta?

**** Yhteinen koonti

Tämä osio videolle.

Kerätään Flingaan: https://flinga.fi/s/FCJ98LX

- Yhteen lappuun yksi tunnelmaa kuvaava sana, joka ilmeni ryhmässäsi.

  Esimerkiksi "odottava" tai "iloinen" tai "ketutus"

- Tykkää omasta lapusta ja ristiin muiden tunnelmista, joihin itse
  samaistut.

*** Miten viikko kurssin parissa meni?

**** Mikä oli mielenkiintoisin asia, jonka opit kuluneella kurssiviikolla?

Yksilöpohjustus: Mieti oma vastaus (1 minuutti).

Kierros: Kaikki omalla vuorollaan jakaa

Sen jälkeen: Ryhmältä Flingaan yksi lappu, jossa on listattu
kierroksella löytyneet asiat. Flinga-linkki: https://flinga.fi/s/FZFWT6K

Ryhmä joutuu eli pääsee tässä käymään keskustelua uudelleen ja
päättämään, kuka toimii kirjurina Flingaan.

Esimerkki: "Room 43: Ohjelmointi 1:n aliohjelmanäytelmän juoni avautui
            ensimmäistä kertaa, osaan heksat!, pinon ja listan ero
            (x2)"

Aikaa tehtävään: 14:57 asti.

**** Yhteinen koonti:

Room 1: Esitiedot näyttäävät hallittavilta. Esitiedot näyttävät
haastavilta. Miten bitit toimivat: Miten tieto viedään biteistä
korkeammille tasoille ihmiselle asti 10-järjestelmä ja heksaluvut
Noutosuoritussyklin toiminta (fetch execute)

room 2 ollaan tehty demoja ja lueskeltu PDFää mutta ei mitään uusia
asioita vielä mutta vanhan kertausta

Room 3: Mitä tietokoneessa tapahtuu, kun sen käynnistää. Linuxin
terminaalin käyttö kohentui. Linux/unix:in shellipohjainen käyttö.
Alkulataus tai monoliittinen/mikroydin

R4. Uudet komennot komentorivillä, käyttöjärjestelmän tarkoituksen
hahmottaminen ja etäyhteyden käyttö.

Room 5: Suoritussyklit oli uutta ja jännää.

room 6: Hyvät kertaukset

Room 7: Shellin käyttö, prosessorin toiminta tarkemmin,
heksadesimaalien ja bittien suhde

Room 8: Monelle kertausta. Pari uutta komentoa shellin käytössä tullut
ihmisille. Yksi kokonaan uusi shellin käyttäjä.

R9: hyvää kertausta Linuxin shellin komennoista. Viikko hyvää
kertausta muutoinkin.

R10: Flagit, ei paljoa uusia asioita, hyvää kertausta

Room 11: Ensimmäisen viikkon aikana enimmäkseen tutustuttu kurssin
materiaaliin päälisin puolin, esim. tietokoneessa nappulan painamisen
ja näytöllä tapahtuman välillä on pitkä ja monimutkainen
tapahtumaketju.

Room 12: Näätäily -termin merkitys, SSH yhteyden ottaminen windowsin
komentokehotteen avulla.

Room 13: Putkittaminen, vaaratilanne-esimerkki (Rm -rf *)

**** Mikä asia ei vielä auennut

Ohje on jo jaettu Zoom-chatin kautta! Ota auki.

Koko tehtävän ohjeistus ennen taukoa. Yksilöpohjustus tauon aikana.
Tauon jälkeen heti ryhmään, ryhmät aukeaa tasan klo 15:15.

Yksilöpohjustus: Mieti oma vastaus (aikaa tauon ajan).

Kierros: Kaikki omalla vuorollaan jakaa

Sen jälkeen: Ryhmältä Flingaan tasan yksi asia, jonka ryhmä yhdessä
katsoo kaikkein tärkeimmäksi lisäkertausta tai selvittelyä vaativaksi
asiaksi. Löydökset muodostavat pohjaa perjantain karhuluennolle!

Flinga-linkki: https://flinga.fi/s/FAUVXGG

Joutuu ja pääsee vaihtamaan ajatuksia ja perusteluja.

Esimerkki: "Jäniksistä olisi saanut olla enemmän tietoa."

Aikaa: 15:15-15:25 (+5 minuuttia lisäaikaa)

**** Yhteinen koonti

Tämä osio videolle.

Yhteinen koonti: Flingassa anonyymi tykkäys omasta mielestä
tärkeimmistä.

Tästä nähdään, mitä perjantain karhuluennolta toivotaan! Opettajat
ottavat sen huomioon, mutta päättävät lopulta itse, mitä tuutista
tulee.

Tässä jälkikäteen Flingasta kopsittu prioriteettilista:

- 28 tykkäystä: Suoritussykli, lippurekisteri, IP

- 15 tykkäystä: POSIX-standardin käsitteen avaaminen.

- 14 tykkäystä: Muistiasioita olisi voinut avata enemmän, rekisterit, välimuisti, ROM ja RAM

- 13 tykkäystä: Kiinnostaisi oppia enemmän ymmärtämään mitä matalalla tasolla oikeasti tapahtuu

- 9 tykkäystä: Prosessorin fyysinen toiminta - mitä komponentteja prosessorissa on tmv, suoritussykli

- 8 tykkäystä: Suoritussykli

- 7 tykkäystä: Osoite-, data-, ohjauslinjoja voisi avata enemmän.

- 6 tykkäystä: Ei mikään jäänyt ymmärtämättä, mutta suoritussykli/IP aika paksua luettavaa ennenkuin asiat saadaan vedettyä yhteen.

- 5 tykkäystä: tekninen termistö, prosessorin toiminta ja fyysinen laitteisto

- 5 tykkäystä: Luvut prosessorin toiminnasta ja suoritussyklistä.

- 3 tykkäystä: Miten asiat toimivat keskenään tietokoneen sisällä?

- 2 tykkäystä: Lukujärjestelmät ja niiden visualisointi.

Tältä pohjalta karhut miettivät, mitä perjantaina luennolla käydään.


*** Oppimisen tukeminen
    
**** Anonyymi Zoom-pollaus: Paljonko tuli käytettyä aikaa?

Tästä aiheesta lisää keskustelua ja yleistä filosofiaa luentovideolla
hieman puolenvälin jälkeen. Katso.

**** Mikä auttoi oppimaan tehtäväpaketin asioita?

Kelloon katsominen: Tämä nopeana? Tai jätetään myöhempään kertaan?
Päästävä jäähdyttelyyn 15:50.

Yksilöpohjustus: Mieti oma vastaus (1 minuutti).

Kierros: Kaikki omalla vuorollaan jakaa

(Tämä jätettiin aikataulun pitämiseksi pois: Ryhmältä Flingaan tasan
yksi asia, joka voisi auttaa suurinta osaa kurssilaisista.)


*** Osaamisen arviointia

Kelloa katsoen: Jätetään tällä kertaa vielä lupaukseksi, että ensi
kerralla on jo mukana jokin tenttitärppi!

*** Jäähdyttely

**** Loppufiiliskierros.

Ryhmissä pikakierros: Missä tunnelmissa kohti seuraavaa luentoa /
muita askareita?

**** Anonyymi Zoom-pollaus 

Tuntuiko tämä ensimmäinen näätäilyluento hyödylliseltä itsellesi?

Karkeasti 50% läsnäolijoista koki tilaisuuden hyödyllisenä tai
tosiaankin hyödyllisenä. 14% ei kokenut hyödyllisenä. Kukaan ei
kokenut "tosiaankaan ei hyödyllisenä".

Opettajien johtopäätös: Näitä kannattaa jatkaa. Ovat vapaaehtoisia,
joten osallistumisen voi tehdä omasta hyötynäkökulmasta. Jatkossa
päälinjat menettelyssä ovat jo tuttuja (katso video), joten voidaan
varmaankin vielä jonkin verran tiivistää ja kristallisoida näätäilyä
siitä, mitä tänään koettiin.

Perjantaina ei näätäillä. Karhut tulee, vetää luennon.

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

Huomenna (to 25.3.2021) klo 8:15-10:00 "Open labrapäivä" eli: voi
tulla kysymään asioita tai hengaamaan linjoilla. Päivystysluonteinen,
jossa katotaan, mitä tulee, jos tulee mitään. Tai sitten vaan tehdään
ihan muita juttuja. Opettajistoa on saatavilla luento-Zoomissa
vähintään Sisussa ilmoitetun aikaikkunan ajan.

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

** Luento 4:  (pe 26.3.2021) (P/J) Karhuluento ("opettajat opettaa")

*** Infot keväälle 2021

- Demopalautus saatiin auki. Tarkastukset tulevat mallia heti kun
  ehditään. Klo 9:13 oli jo 82 palautusta ja klo 10:04
  oli 86. Mahtavaa!! Keep it comin'!

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

- Keskiviikon näätäily meni hyvin. Jatkossa jo osataan enemmän, niin
  tulee vielä vähemmän "tyhjäkäyntiä". Katso video. Ensi kerralla voi
  hyvin tulla mukaan, vaikka ei olisi ensimmäiseen päässyt. Sama
  jatkossakin.

- Torstaina oli ensimmäinen Open labrapäivä. Saatiin vastaus kaikkiin
  kysymyksiin. Paljon oli myös hiljaista työtä omien hommien
  parissa. Tervetuloa jatkossakin. Labrapäivässä saa kysyä mitä vaan.

- Välittömästi tämän päivän luennon jälkeen halukkaat voivat tehdä
  jouhevan siirtymän tilaisuuteen "Yhdessä opinnoissa eteenpäin -
  koronasta huolimatta" https://jyufi.zoom.us/j/64091782335
  Opettajista ainakin Paavo on luvannut mennä sinne saman tien, kun
  tämä päättyy (tavoite 12:00)

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

- HUOM: Tässä kohtaa on yliopiston pääsiäistauko opetuksesta. Seuraava
  yhteinen tapaaminen on näätäluento 7.4.2021 klo 14:15.

*** Demo 2 esittely

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

*** Näädät ehdotti, karhut päättivät
**** Toimenpideyhteenveto keskiviikosta

Keskiviikkona näätäluennolla kartoitettiin, mistä porukka haluaa
väännettävän rautalankaa. Hahmotimme olennaisesti viisi
asiakokonaisuutta:

1. Prosessorin ja muun laitteiston toiminta

  + 28 tykkäystä: Suoritussykli, lippurekisteri, IP

  + 13 tykkäystä: Kiinnostaisi oppia enemmän ymmärtämään mitä matalalla
    tasolla oikeasti tapahtuu

  + 9 tykkäystä: Prosessorin fyysinen toiminta - mitä komponentteja
    prosessorissa on tmv, suoritussykli

  + 8 tykkäystä: Suoritussykli

  + 6 tykkäystä: Ei mikään jäänyt ymmärtämättä, mutta suoritussykli/IP
    aika paksua luettavaa ennenkuin asiat saadaan vedettyä yhteen.

  + 5 tykkäystä: tekninen termistö, prosessorin toiminta ja fyysinen laitteisto
  
  + 5 tykkäystä: Luvut prosessorin toiminnasta ja suoritussyklistä.

  + 3 tykkäystä: Miten asiat toimivat keskenään tietokoneen sisällä?

2. Väylän toiminta

  + 7 tykkäystä: Osoite-, data-, ohjauslinjoja voisi avata enemmän.

3. Muistin toiminta

  + 14 tykkäystä: Muistiasioita olisi voinut avata enemmän,
    rekisterit, välimuisti, ROM ja RAM

4. Mikä on POSIX

  + 15 tykkäystä: POSIX-standardin käsitteen avaaminen.

5. Lukujärjestelmät ja niiden visualisointi

  + 2 tykkäystä: Lukujärjestelmät ja niiden visualisointi.

Muutamia viime vuoden (2020) kysymyksiä ohjastamaan käsittelyä:

- Mitä tarkoittavat ALU:n yhteydessä olevat rekisterit IA, MD ja AC?

- Hierarkkinen vs. modulaarinen rakenne?

  Rakenne mietityttää, "hierarkkinen" vs. "modulaarinen"
  luentomonisteessa, voisiko tästä puhua vähän lisää?

  Vastaus, jos unohtuu käsitellä luennolla: Monisteen kirjoittajan
  mielessä oli tiivistää ajatus, että tietokone koostuu osista
  (prosessori, muisti, lisälaitteet) ja osat koostuu osista
  (esimerkiksi prosessori rekistereistä, välimuistista,
  ohjauskomponenteista, ...) jotka koostuu osista (esimerkiksi
  rekisterit nopeista yhden bitin kokoisista
  muistikomponenteista). Eli rakenne on hierarkkinen, kun kunkin
  ylemmän tason toiminnallisuus koostetaan matalamman tason
  komponenteista. Komponentteja on samallakin tasolla monta ja niillä
  on erilaisia tehtäviä keskenään. Eli kunkin tason rakenne on
  modulaarinen... eli omaa tehtäväkokonaisuuttaan hoitaviin
  moduuleihin jaettu. Tätä siinä on ajateltu, ja kuvissa on koetettu
  ilmentää sekä hierarkiaa että modulaarisuutta laittamalla laatikoita
  toistensa sisään (hierarkia) ja rinnakkain (modulaarisuus).

- Mikä oikeastaan on rajapinta?

  Saisko jotakin määritelmää tms sille?

  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änään ensi kosketus oikeisiin dokkareihin!

- Muuttuuko FLAGS aina?

  Vastaus selviää prosessorin rajapinnasta, esimerkiksi AMD64:n
  manuaalin osassa 3 on kaikkien käskyjen mahdolliset vaikutukset
  FLAGSiin.

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

**** Asia 1: Prosessori ja laitteisto

Samalla yksi konkreettinen rajapinta: AMD64 prosessorin manuaalit.

Luentomonisteen kuvista juttua: Miten liittyy todelliseen
prosessoriin? Mihin kannattaa keskittyä ja mihin ei tällä kurssilla
niinkään tarvitse?


Tauko 11:15 asti. Jatkuu tarkasti ajallaan sitten!

**** Little Man Computer (Demonstroi loistavasti myös asiat 2 ja 3!)

Jonne, stage is yours!

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

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

**** Asia 2: Väylän toiminta

Tämän kurssin tarpeisiin riittää ymmärtää, että laitteistossa on
tietyt osat, joista väylä on se, joka välittää datan osalta toiselle.

Ohjauselektroniikka ei tässä niin tärkeätä. Voi tulla eteen myöhemmin
esimerkiksi mittalaitesovelluksia tehdessä, jos sellaiseen päädyt :).

Osoiteväylän leveys hyvä ymmärtää rajoitteena esimerkiksi muistin
määrälle.

Dataväylän leveys hyvä ymmärtää rajoitteena kaistanleveydelle (kaista
= väylän kellotaajuus * leveys bitteinä).

**** Asia 3: Muistin toiminta

Muistihierarkia on hyvä ymmärtää. Asia viedään loppuun, kun puhutaan
virtuaalimuistista myöhemmin. Lukuun 2 liittyen lähinnä
hinta/koko/nopeus -kompromissi.

Entäs "rekisterit, välimuisti, ROM ja RAM"

**** Asia 4: Mikä on POSIX

Yleisemmin: Mikä on toinen iso rajapinta, jota tällä kurssilla
tutkiskellaan. Miksi, mistä löytyy, ja mihin kohtaan sijoittuu
monisteen kerroskuvassa.

**** Asia 5: Lukujärjestelmät ja niiden visualisointi

Karhu katsoi kelloa ja totesi, että tämä pitää toteuttaa erillisenä:

Konkreettinen esimerkki joko tässä tai erikseen tuotettavana
apuvideona. Riippuen, paljonko aikaa karhuilla on luennossa. Ehdittävä
pieni katsaus seuraavastakin lukupaketista ennen loppua.

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

- Demoilla 1-2 haettava tavoite on saada shellin, 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 7.4.2021)  (P/J) Toinen ryhmäkeskustelumuotoinen tilaisuus!

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

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

- Interaktio, ryhmäkeskustelu.

- Pysyen kurssin ja siihen sopivien opiskelumenetelmien tematiikassa.

- Luodaan yhteistä käsitystä aiheista, joita viikon karhuluennolla
  olisi tarpeen käydä läpi.

Näädät eivät kiiruhda. Näädät pohtivat ja keskustelevat.
Näädät ehdottaa, mitä karhut vois tehdä perjantaina.

*** Ryhmien jako

Nopee! Zoomissa satunnaiset Breakoutit nimeltä Room 1, Room 2, ...,
Room N.

Ryhmäkoko 4-5 henkeä, suurin osa 4-henkisiä.

Myöhässä tulevat ladotaan lisäjäseniksi pitkin matkaa -
väkimäärämuutokset siis todennäköisiä.

*** Lämmittely

**** Nimi- ja fiiliskierros ryhmissä

Ennakkopohdinta (1 minuutti):

- Missä tunnelmissa olen juuri nyt?
  
  Ennakkopohdinnan voi kokeilla tehdä kynällä paperille, vaikka
  avainsanoin.

Ryhmissä seuraavat (7 minuuttia):

- Mikrofonit päälle

- Videolähetykset päälle, jos on kamera

- Zoom-nimen mukaisessa aakkosjärjestyksessä (paremman ratkaisun puutteessa):

  + Jokainen vuorollaan kertoo:

    Kuka olen, mistä oppiaineesta, missä tunnelmissa olen juuri nyt.

    Muut eivät keskeytä! Pidä tunnelmakuvaus lyhyenä.

  + Kun ihan jokainen on saanut vuoron, aloitetaan uusi kierros, jossa
    saa jatkaa juttua vapaaammin.

  + Jatketaan, kunnes tulee paluu pienhuoneesta. Zoomissa on
    automaattinen 60 sekunnin varoaika takaisinkutsun jälkeen.

**** Miten meni?

Varmuuden vuoksi vielä tällä kertaa. Jatkossa ehkä aletaan jo luottaa,
jos nyt onnistui yhtä hyvin kuin viimeksi...

Teknisten ongelmien laajuuden selvitys, jutellaan vähän ääneen ilman
videotallennusta:

- Toimiko mikrofonit?

- Oliko aika riittävä?

- Heräsikö keskusteluakin alkukierroksen pohjalta?

Tälläkin kertaa kaikilla onnistui hyvin. Jatkossa uskotaan, ei jäädä
kyselemään.

(opettajien ajankäyttöhuomio: fiiliskierros+tarkistus 14:20-14:32


*** Miten viikko kurssin parissa meni?

**** Anonyymi Zoom-pollaus: Mikä tilanne viikon tehtäväpaketissa?

51% oli käynyt koko alueen läpi. Hyvä!! Toivottavasti prosentti nousee
jatkosas vielä tästä! Tarkempi käsittely videolla.

**** Anonyymi Zoom-pollaus: Paljonko tuli käytettyä aikaa?

47% prosenttia oli käyttänyt alle 8 tuntia viikossa. Aiai! Täytyy
käyttää enemmän, jos aikoo päästä läpi 8 viikossa. Mitoitus on 16
tunnin mukaan tehty! Videolla tarkemmin.

(opettajien ajankäyttöhuomio: pollit ohjeineen + käsittely
14:32-14:39)

**** Mikä oli mielenkiintoisin asia, jonka opit kuluneella kurssiviikolla?

Yksilöpohjustus: Mieti oma vastaus (1 minuutti).

Kierros: Kaikki omalla vuorollaan jakaa

Sen jälkeen: Ryhmältä Flingaan yksi lappu, jossa on listattu
kierroksella löytyneet asiat. Flinga-linkki: https://flinga.fi/s/F4JCHLJ

Ryhmä joutuu eli pääsee tässä käymään keskustelua uudelleen ja
päättämään, kuka toimii kirjurina Flingaan.

Esimerkki: "Room 43: Ohjelmointi 1:n aliohjelmanäytelmän juoni avautui
            ensimmäistä kertaa, osaan heksat!, pinon ja listan ero
            (x2)"

Aikaa tehtävään: 10 minuuttia (14:42-14:52)

**** Yhteinen koonti:

Katsotaan videolle, mitä Flingaan ehti tarttua.

Tässä myös copy-pastet Flinga-lapuista:

- Room 1: Konekieli ei pelkästään bittejä, prosessorien rajapinnan
  standardisointi, screen-ohjelman käyttö komentorivillä,
  bash-scriptit

- room 2: screenin, emacsin ja vimin käyttö pääteyhteydellä

- Room 3: Ohjelman kääntäminen ja miten tietokone sen näkee

- room 4: Screenin käyttö ja omasta koneestakin löytyy C-kääntäjä ja
  assembler koodin hahmottaminen

- Room 5: Vim + konekielen syntaksi

- Room 6: Ahaa-elämys kun konekielen toimintojen läpikäynnissä pystyy
  sitouttaa aiemmin käytyyn infopläjäykseen prosessorien rakenteesta:)

- Room 7: Kurssin tahti alkaa selkenemään, tekstieditorien käyttö

(opettajien ajankäyttöhuomio: tehtäväkokonaisuus 14:39-14:56)

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

Tätä priorisoidaan tällä kertaa, jotta varmasti ehditään.

Tenttitärppi tai kaksi jos on aikaa. Tehdään taas tauolla
yksilöpohdinta karhuja varten työstettävää ryhmätehtävää varten, joten
aikaikkuna tähän on taukoon asti.

Eka tärppi: Valmisteltu Paavon repl.it -tilille. Vaatii vastausvaihtoehdot A-H

Miten meni:

42% sai pisteen. Yli puolet kurssilaisista olisivat jääneet tehtävässä
nollille!

Videolla tarkemmin - myös oikea vastaus ja selitys. Tarkista oma
osaamistasosi suhteessa 42% eturintamaan, jolla oli hallussa tämän
kurssin esitiedot! Tehtävässähän oli lyhyt ohjelmakoodi, jonka
toiminnassa ei saisi olla epäselvyyksiä :).

(opettajien ajankäyttöhuomio: tehtäväkokonaisuus 14:56-15:07)

*** Mikä asia ei vielä auennut (yksilötehtävä tauon aikana)
**** Yksilö- ja ryhmätehtävä: Mikä asia tarvitsisi lisää selvitystä

Yksilöpohjustus: Mieti oma vastaus perusteluineen

Aikaa tauon ajan, 15:10-15:20

Kierros: Kaikki omalla vuorollaan jakaa

Sen jälkeen: Ryhmältä Flingaan tasan yksi asia, jonka ryhmä yhdessä
katsoo kaikkein tärkeimmäksi lisäkertausta tai selvittelyä vaativaksi
asiaksi. Löydökset muodostavat pohjaa perjantain karhuluennolle!

Flinga-linkki: https://flinga.fi/s/F5J6KMG

Joutuu ja pääsee vaihtamaan ajatuksia ja perusteluja.

Esimerkki: "Jäniksistä olisi saanut olla enemmän tietoa."

Aikaa: 15:20-15:35! Ryhmät aukeaa tasan 15:20!

**** Yhteinen koonti

Tämä osio videolle.

Yhteinen koonti: Flingassa anonyymi tykkäys omasta mielestä
tärkeimmistä.

Tästä nähdään, mitä perjantain karhuluennolta toivotaan! Opettajat
ottavat sen huomioon, mutta päättävät lopulta itse, mitä tuutista
tulee.

Tässä jälkikäteen Flingasta kopsittu prioriteettilista:

- 14 tykkäystä (hauska oli:)): "Viesti opettajilta: Ihan pari
  minuuttia odotellaan kahta lappua vielä!"

- 11 tykkäystä: "Room 1: Tekstieditorien (VIM/EMACS) käyttöön
  vinkkejä/ohjeita"

- 10 tykkäystä: "Room2: Selvennystä pino- ja kekomuistiin."

- 10 tykkäystä: "Room 4: ohjelman kääntäminen konekieleen asti"

- 7 tykkäystä: "Bitsinnypläys assemblyssa ja miten asiat siirtyilevät
  suorituspinossa olisi mukava käydä niinkin rautalangasta vetäen"

- 7 tykkäystä: "Rekisterit ja niiden erot, sekä aritmetiikka"

- 2 tykkäystä: "Demo1 tuli mieleen että onko shellissä eri
  käyttöjärjestelmillä tai linux distrojen välillä minkään laisia
  yhtenäisiä standardeja + flagien kertaus"

(opettajien ajankäyttöhuomio: tehtäväkokonaisuus 15:20-15:41)

*** Oppimisen tukeminen
Kelloon katsominen: Ehditäänkö tällä kertaa tätä?  Päästävä
jäähdyttelyyn 15:50. Tälle tehtävälle tarvitaan 10 minuuttia. Noh, 9
riitti tällä kertaa ilmeisen hyvin.

**** Mikä auttoi oppimaan tehtäväpaketin asioita?

Yksilöpohjustus: Mieti oma vastaus (1 minuutti).

Ajan säästämiseksi ei "pakotettua" kierrosta.

Ryhmällä on tehtävä:

Flingaan tasan yksi asia, joka voisi eniten auttaa suurinta osaa
kurssilaisista: https://flinga.fi/s/FAJY3MS

**** Yhteinen koonti: Viisauden sanoja kurssilaisilta kurssilaisille

Tässä on viisauden sanoja kurssilaisilta kurssilaisille:

- Yritä keskittyä yhden kurssin asioihin per päivä

- Room 4: Asioiden kokeilu käytännössä

- Taukoja tarpeeksi, että pysyy virkeänä

- Room 3: Ei pelkästään lue materiaalia, vaan harjoittelee
  sorminäppäryyttä ja lihasmuistia, paukuttaen joka välissä kerrottuja
  komentoja.

- Lukiessa muistiinpanojen - ja etenekin tiivistelmien! - tekeminen
  avustaa huomattavasti, kun pistää aivot kirjoittamalla prosessoimaan
  asiaa. Ja myöhemmin voi itse nopeasti päästä kärryille oman
  tiivistelmän avulla (eikä tarvitse lukea uudelleen 30 sivun pakettia
  :))

- Room 1: Hyödynnä materiaaleja, opetustilaisuuksia ja googlea
  esimerkiksi: emacs/vim cheat sheet

- Enemmän kuvia materiaaliin tukemaan ja konkretisoimaan tekstin
  sanomaa. Room2

  Tästä chät-keskustelua talteen:

  + Ei se auta piirtää jos ei lähtökohtaisesti ymmärrä mikä liittyy mihinkin.

  + Jonnen kommentti: Hyvä huomio! Joskus auttaa piirtäminen saamaan
    sen ymmärryksen, joskus kyllä neuvot ja esimerkit auttaa enemmän
    alkuunpääsemiseen.

  Yritetään tehdä kuvia lisää, mutta aikaa on naftisti, niin parempi
  luvata vain se yrittäminen. Yritetään kyllä tosissaan.

(opettajien ajankäyttöhuomio: tehtäväkokonaisuus 15:41-15:53)


*** Jäähdyttely

**** Loppufiiliskierros.

Ryhmissä pikakierros: Missä tunnelmissa kohti seuraavaa luentoa /
muita askareita?

**** Anonyymi Zoom-pollaus 

Tuntuiko tämä näätäily hyödylliseltä itsellesi?

Perjantaina ei näätäillä. Karhut tulee, vetää luennon.

*** Lukupaketti pysyy perjantaille entisenään:

- Monisteen luku 3 "Hei maailma - johdattelua tietokoneeseen".

- Monisteen luku 4 "Konekielisen ohjelman suoritus".

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

Huomenna (to 8.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. Tuotetaan tarvittaessa pieniä apuvideoita aiheista. Tai sitten
vaan tehdään ihan muita juttuja. Opettajistoa on saatavilla
luento-Zoomissa vähintään Sisussa ilmoitetun aikaikkunan ajan.

Nämä jatkuvat pääsääntöisesti torstaisin Sisussa ilmoitettuihin
aikoihin toukokuun loppuun asti.

(Luennon jälkeen jäätiin vielä "puhumaan bittiä" Emacsista, Vimistä,
32-bittisestä(täh?) Visual Studiosta, tile-pohjaisista
ikkunamanagereista, terminaalimultipleksereistä ja muusta mukavasta.)

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

- Toissapäivään mennessä palautetut Demo 1 -vastaukset on tarkastettu
  kertaalleen. Katso saamasi palaute! Se on tärkeä osa oppimista!

  Jos demo on hylätty, tee palautteen perusteella uusi, korjattu
  vastaus!

  Demo 1:n korjaaminen johtaa luultavasti korjaamaan jo ennakoivasti
  demo 2:n vastauksen!
  
- Keskiviikkona näätäiltiin, ja sitä jatketaan taas ensi
  keskiviikkona. Pyritään minimoimaan "tyhjäkäyntiä" ja kasvattamaan
  mahdollisuuksia pohtivampaan keskusteluun. Tervetuloa mukaan! Katso
  edelliset videot, niin osaat ryhmätyömenettelyt. Jatkossa voidaan
  poistaa tyhjäkäyntiä olettamalla, että käytäntöohjeita ei tarvitse
  enää toistaa, vaan keskitytään näätäilyn teholliseen osuuteen.

- Torstaina oli taas Open labrapäivä. Saatiin vastaus kaikkiin
  kysymyksiin sekä kurssista että vähän muistakin opinnoista ja
  maailman menosta. Paljon oli myös hiljaista työtä omien hommien
  parissa. Tervetuloa jatkossakin. Labrapäivässä saa kysyä mitä vaan.

- Vertaistukikanavalle tullut hyviä viestejä. Paavo oli unohtanut
  tilata sen, joten näki vasta tänään. Nyt on tilattu! Muista tilata
  itsellesi myös. Ja vastailemaan kavereille!

- Yleensä luentojen jälkeen on hetki aikaa kysymyksille ja
  jutustelulle (noin 15 minuuttia). On ollut lennokkaita aiheita tähän
  asti...

*** 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: Demo 3 ohjeteksteineen, monisteen
  luvut 1-4 uusin silmin ja aiempaa vahvistaen. Ihan alkua luvusta 5.

*** Terveisiä näätäluennolta

Paavo miettii tähän vielä ennen luentoa jonkun briiffin.

- Löydökset oppimista hyödyttävistä asioista olivat mahtavia! Tsekkaa
  muistiosta ja videolta kanssaopiskelijoiden parhaat vinkit! Tule
  ensi kerralla jakamaan omia löydöksiä!

- Tenttitärpistä vielä kypsytellympi ajatus.

*** Demo 3 esittely ja lukujen 3-4 konkretiaa

Käydään läpi demo-ohje 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.

*** Tauko. Jatketaan tykitystä tasan 11:20!

*** Näädät ehdotti, karhut päättivät
**** Toimenpideyhteenveto keskiviikosta

Löytyi olennaisesti 4 erilaista asiakokonaisuutta, joiden käsittelyä
erityisesti toivottiin. Lisäksi tuli esiin seuraava, jonka ensimmäinen
osio (shell ja standardit) otetaan alkuun nopeasti:

- 2 tykkäystä: "Demo1 tuli mieleen että onko shellissä eri
  käyttöjärjestelmillä tai linux distrojen välillä minkään laisia
  yhtenäisiä standardeja + flagien kertaus"

Nopsa vastaus: Esimerkiksi POSIX kattaa monia sen kanssa
yhteensopivaksi pyrkiviä käyttöjärjestelmiä.

**** Asia 1: Emacs ja vim vinkkejä/ohjeita

- 11 tykkäystä: "Room 1: Tekstieditorien (VIM/EMACS) käyttöön
  vinkkejä/ohjeita"

- Interaktiiviset tutoriaalit:
  - Emacsissa sisäänrakennettuna heti aloitusikkunassa tai
    näppäilemällä ~F1 t~.
  - Vimin tutoriaali komentamalla kuoressa ~vimtutor~.

- Googleen "emacs reference cards", "vim cheatsheet", "Työkalu XYX
  cheatsheet", ...

- Videopalveluissa on myös opastusvideoita tarjolla.  Taso vaihtelee
  ja osa voi olla hyvinkin kustomoidulle versiolle editorista, joten
  ei kannata luovuttaa, jos näyttää hankalalle.
  
**** Asia 2: Pino- ja kekomuisti

- 10 tykkäystä: "Room2: Selvennystä pino- ja kekomuistiin."

- Pino: Leo Brodien kauniit kuvat. Oman monisteemme pinokuva. Jos
  auttaa, piirrä itse haluamasi lainen pino.

- Keko: Mainitaan luentomonisteessa ensimmäisen kerran vasta sivulla
  70, joka on seuraavaa lukupakettia vasta! Ei käsitellä vielä.

**** Asia 3: Ohjelman kääntäminen konekieleen asti

- 10 tykkäystä: "Room 4: ohjelman kääntäminen konekieleen asti"

- Tämän piti tulla demo 3:n esittelyssä jo. Varmistetaan, jäikö jotain
  puuttumaan!

**** Asia 4: Bitsinnypläys assemblyssä ja suorituspino, rekisterit, muun muassa flags

- 7 tykkäystä: "Bitsinnypläys assemblyssa ja miten asiat siirtyilevät
  suorituspinossa olisi mukava käydä niinkin rautalangasta vetäen"

- 7 tykkäystä: "Rekisterit ja niiden erot, sekä aritmetiikka"

- 2 tykkäystä: "... ja flagsit"

Kelloa katsoen tämä siten, että ehditään selittää ennakkotehtäväkin.

- Debuggerilla hyvä näyttää konkreettisella esimerkillä näitä.

- Hello world suoraan symbolisella konekielellä

- Muistetaan näyttää gdb:stä myös "layout" -näkymän vaihto.

**** Lisäasia: Joku pieni selvennys heksalukujen "matematiikkaan", jos on aikaa tässä.

Tämä roikkuu vielä - monella varmasti epäselvää vielä. Tässä jos on aikaa, niin hyvä.

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

- Demo 3 työn alle.

- Tee käytännön kokeiluja esitetyistä asioista!

Huomautus:

- Keskiviikon näätäluennolla tulee jo lisää luettavaa, jotta ehditään
  valmistautua sitä seuraavan viikon demo 4 ryhmätöihin!

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 7:  (ke 14.4.2021) (P/J) Kolmas ryhmäkeskustelumuotoinen tilaisuus

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

*** Infoisku keväälle 2021

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

  Rakenteilla - informoidaan ylihuomenna tarkemmin. Eteenpäin, näädät!

- Luettavaa lisää, kuten luvattiin:

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

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

  Monisteen luku 5.2 liittyy aiheeseen, joten ryhdy silmäilemään.

  Kaikki loput demot täsmentävät näitä aiheita lisää, joten
  "alkujärkytys" ei haittaa tällä viikolla.

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

- Interaktio, ryhmäkeskustelu.

- Pysyen kurssin ja siihen sopivien opiskelumenetelmien tematiikassa.

- Luodaan yhteistä käsitystä aiheista, joita viikon karhuluennolla
  olisi tarpeen käydä läpi.

Näädät eivät kiiruhda. Näädät pohtivat ja keskustelevat.
Näädät ehdottaa, mitä karhut vois tehdä perjantaina.

*** Ryhmien jako

Nopee! Zoomissa satunnaiset Breakoutit nimeltä Room 1, Room 2, ...,
Room N.

Ryhmäkoko 4-5 henkeä, suurin osa 4-henkisiä.

Myöhässä tulevat ladotaan lisäjäseniksi pitkin matkaa -
väkimäärämuutokset siis todennäköisiä.

*** Lämmittely
**** Nimi- ja fiiliskierros ryhmissä

Luvattuun tapaan optimoidaan ajankäyttöä, kun ohjeet ja käytäntö on jo
tuttua!! Suoraan fiiliskierrokseen vaan.

Ryhmissä seuraavat (7 minuuttia):

- Mikrofonit päälle

- Videolähetykset päälle, jos on kamera

- Zoom-nimen mukaisessa aakkosjärjestyksessä (paremman ratkaisun puutteessa):

  + Jokainen vuorollaan kertoo:

    Kuka olen, mistä oppiaineesta, missä tunnelmissa olen juuri nyt.

    Muut eivät keskeytä! Pidä tunnelmakuvaus lyhyenä.

  + Kun ihan jokainen on saanut vuoron, aloitetaan uusi kierros, jossa
    saa jatkaa juttua vapaaammin.

  + Jatketaan, kunnes tulee paluu pienhuoneesta. Zoomissa on
    automaattinen 60 sekunnin varoaika takaisinkutsun jälkeen.

*** Miten viikko kurssin parissa meni?
**** Anonyymi Zoom-pollaus: Mikä tilanne viikon tehtäväpaketissa?

Tässä vaiheessa oli työn alla:
- 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!
- Demo 3 työn alle.
- Tee käytännön kokeiluja esitetyistä asioista!

Poll. 

90% oli tehnyt vähintään osittain. Videolla tarkemmin.

**** Anonyymi Zoom-pollaus: Paljonko tuli käytettyä aikaa?

Poll.

Keskimäärin käytetty 8 tuntia, joka on puolet ajasta, joka 5
opintopisteen kurssilla yhdessä periodissa tulisi käyttää. Videolla
tarkemmin.

**** Mikä oli mielenkiintoisin asia, jonka opit kuluneella kurssiviikolla?

Yksilöpohjustus: Mieti oma vastaus (1 minuutti).

Kierros: Kaikki omalla vuorollaan jakaa

Sen jälkeen: Ryhmältä Flingaan yksi lappu, jossa on listattu
kierroksella löytyneet asiat. Flinga-linkki: https://flinga.fi/s/F7G9JVZ

Ryhmä joutuu eli pääsee tässä käymään keskustelua uudelleen ja
päättämään, kuka toimii kirjurina Flingaan.

Esimerkki: "Room 43: Ohjelmointi 1:n aliohjelmanäytelmän juoni avautui
            ensimmäistä kertaa, osaan heksat!, pinon ja listan ero
            (x2)"

Aikaa tehtävään: 10 minuuttia (14:39-14:49)

**** Yhteinen koonti:

Katsotaan videolle, mitä Flingaan ehti tarttua.

Tässä myös copy-pastet Flinga-lapuista:

- Group 1: C-ohjelman käsittely kuoressa ja debugaus,
  komentorividebuggerin käyttö, C-kielen syntaksia

- Ryhmä 4: emacs opettelu, gdb deguggaus

- R2: Assembly, C, ympäristömuuttujien teko, komentorivillä
  leikkiminen ylipäätään, sekä segmentoitu muisti.

- Room 3: Debuggeri ja disassembly


(koko osio 14:30-14:52)

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

Tätä priorisoidaan, jotta varmasti ehditään.

**** Toistetaan edellinen aihe - osataanko nyt paremmin?

Tällä kertaa 80 % sai pisteen. 

**** Komentorivin jäsentyminen (kysymykset 16-17)

Pohjaksi vaikka 5.7.2019 ollut uusintatentti. Ehdittiin käydä siitä
kysymys 16.

Vaihtoehdot:
A: 1  B: 3  C: 4  D: 5
E: 9  F: 10 F: 13 G: (ei käytössä)

(Vaihtoehdoissa typo, 2 x F-vaihtoehto, mutta ei näköjään vaikutusta
lopputulemaan)

Tulos: 40% eli alle sai pisteen. Loput jäi nollille. Kertaamaan!
Videolla vinkkejä yleisistä harhakäsityksistä.

Tauolla (ei videolla) tuli tarkentavia kysymyksiä, jollaisia soisi
näkevänsä vertaistukikanavalla tai open labrapäivässä. Vink, vink...

*** Mikä asia ei vielä auennut (yksilötehtävä tauon aikana)
**** Yksilö- ja ryhmätehtävä: Mikä asia tarvitsisi lisää selvitystä

Yksilöpohjustus: Mieti oma vastaus perusteluineen

Aikaa tauon ajan, 15:10-15:20

Kierros: Kaikki omalla vuorollaan jakaa

Sen jälkeen: Ryhmältä Flingaan tasan yksi asia, jonka ryhmä yhdessä
katsoo kaikkein tärkeimmäksi lisäkertausta tai selvittelyä vaativaksi
asiaksi. Löydökset muodostavat pohjaa perjantain karhuluennolle!

Flinga-linkki: https://flinga.fi/s/FFDLRSQ

Joutuu ja pääsee vaihtamaan ajatuksia ja perusteluja.

Esimerkki: "Jäniksistä olisi saanut olla enemmän tietoa."

Aikaa: 15:21-15:35! Ryhmät aukeaa tasan 15:20!

**** Yhteinen koonti

Tämä osio videolle.

Yhteinen koonti: Flingassa anonyymi tykkäys omasta mielestä
tärkeimmistä.

Tästä nähdään, mitä perjantain karhuluennolta toivotaan! Opettajat
ottavat sen huomioon, mutta päättävät lopulta itse, mitä tuutista
tulee.

Tässä jälkikäteen Flingasta kopsittu prioriteettilista:

- 5 tykkäystä: R2: Virtuaaliosoitteet. Miten ne muuttuvat fyysiksi ja
  muutenkin aukaista asiaa hieman enemmän.

- 4 tykkäystä: Ryhmä 4: lisä selvennystä käskyosoiterekisteristä ja
  pino-osoitinrekisteristä

- 3 tykkäystä: Group 1: Bitittäiset operaatiot

- 3 tykkäystä: Room 3: Mitä oikeasti tapahtuu, kun kirjasto liitetään
  koodiin (#include, import ero). Monisteessa voisi myös mainita
  käytännön etuja ja käyttötarkoituksia tekstieditoreille.

- 3 tykkäystä: Ympäristömuuttujat

- 2 tykkäystä: Luvun kannan vaihtaminen eri suuntiin (binääri <-> desimaali)

(chat-ilmoituksen mukaan jostain lapusta lähti tekstiä... sehän käy
helposti Flingassa; videotarkistuksesta ei selvinnyt, mistä olisi
ollut kyse. Jos lähti oma tärkeä kysymys, pistä se uudelleen
esim. vertaistukikanavan kautta.)


*** Oppimisen tukeminen

Kelloon katsominen: Ehditäänkö tällä kertaa tätä?  Päästävä
jäähdyttelyyn 15:50.
 
**** Pessimistihattu: Mikä estää toteuttamasta viime kerran ohjeita

Ajan säästämiseksi ei "pakotettua" kierrosta.

Ryhmällä on tehtävä:

Flingaan yksi lappu kerrallaan:

- Asioita, jotka voivat estää toteuttamasta viimeksi löydettyjä
  hienoja ohjeita.

Niin paljon lappuja kuin aikaikkunassa ehtii tulla.

Flinga: https://flinga.fi/s/F282QR2

Nämä olivat ne hienot ohjeet. Mikä estää näitä:

- Yritä keskittyä yhden kurssin asioihin per päivä

- Asioiden kokeilu käytännössä

- Taukoja tarpeeksi, että pysyy virkeänä

- Ei pelkästään lue materiaalia, vaan harjoittelee
  sorminäppäryyttä ja lihasmuistia, paukuttaen joka välissä kerrottuja
  komentoja.

- Lukiessa muistiinpanojen - ja etenekin tiivistelmien! - tekeminen
  avustaa huomattavasti, kun pistää aivot kirjoittamalla prosessoimaan
  asiaa. Ja myöhemmin voi itse nopeasti päästä kärryille oman
  tiivistelmän avulla (eikä tarvitse lukea uudelleen 30 sivun pakettia
  :))

- Hyödynnä materiaaleja, opetustilaisuuksia ja googlea
  esimerkiksi: emacs/vim cheat sheet

Aikaa tehtävälle: 15:42 - 15:52

**** Koonti esteistä

Näiden juurisyiksi havaittujen selättämiseen koetetaan ensi kerralla
tuoda apua esimerkiksi aiemmista omista kokemuksista vastaavien
parissa:

- Asioiden kokeilu käytännössä: Ei demojen lisäksi tiedä miten voisi
  tehdä käytännön harjoitteita

- Group 1: Mielenkiinto loppuu yhtä aihetta kohtaan, emacs komennot
  eivät toimi odotetusti, ei aikaa tauoille, yleinen laiskuus

- Ajanhallinta (aikatauluttaminen)

- "Koittakaa jaksaa" terveisin hallitus

- Tehtävien + lukemispakettien kasaantuminen useammilta kursseilta

- Monta kurssia, joten vaikea keskittyä vain yhteen kurssiin per päivä

- Sairastuminen

*** Jäähdyttely

**** Loppufiiliskierros.

Ryhmissä pikakierros: Missä tunnelmissa kohti seuraavaa luentoa /
muita askareita?

**** Anonyymi Zoom-pollaus 

Tuntuiko tämä näätäily hyödylliseltä itsellesi?

Perjantaina ei näätäillä. Karhut tulee, vetää luennon.

*** Lukupaketti perjantaita kohti:

- Demo 4:n ohjeistus (maantaina luettu)

- Monisteen luku 5 kokonaan (alustavasti)

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

Huomenna "Open labrapäivä", tervetuloa!

Perjantaina karhuluento, tervetuloa!

** Luento 8:  (pe 16.4.2021) (P/J) Karhuluento
*** Infot keväälle 2021

- Demo 1 tarkastettu kokonaan. Demo 2 40% tarkastettu. Todennäköisesti
  tänään illan mittaan loput. Lue jälleen palaute ja toimi sen mukaan!

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

  + 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 useita
    kertoja. Joka kerta 90 minuuttia ryhmän kanssa!!

- Ensi viikon näätäluento on poikkeuksellinen:

  Mennään klo 13:45-15:15 katsomaan Supercellin 1.5 tunnin luento, ja
  sitten klo 15:15 mennään purkamaan kokemus suhteessa tämän kurssin
  sisältöihin. Koetetaan ehtiä 45 minuuttiin myös hiukan muuta
  tilannekatsausta.

  Pääjuttuna tämä harvinaislaatuinen vierailuluento.

*** 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: Demo 4 ohjeteksteineen, monisteen
  luvut 5, alkuviikolla luku 6.

*** Terveisiä näätäluennolta ja open labrapäivästä

Paavo mietti tähän vielä ennen luentoa jonkun briiffin.

Toissapäivän näätäilystä:

- Edellisen kerran tenttitärppi toistettiin ja se osattiin.

- Uudessa tenttitärpissä ei vielä osattukaan; tärkeä havaita ja
  korjata asia!
  
- Osiossa "oppimisen tukeminen" haettiin mahdollisia esteitä viime
  kerralla ehdotettujen opiskeluvinkkien toteuttamiseen. Ensi kerralla
  (1.5 viikon päästä) päästään miettimän keinoja esteiden purkamiseen.

Eilisen labrapäivästä:

- Olipas kivaa opastaa ruutujaon kautta "olan yli" täsmällisiin
  kysymyksiin liittyviä juttuja.

- Mahtavaa oli huomata, että monet kysymykset tulivat omatoimisten
  kokeilujen ja pohdintojen kautta. Esimerkiksi .jar -tiedoston
  reverse-engineeraus, hakemistojen poistaminen, "miksi kaverin
  lähettämä .docx ei aukea", LEMPIKALAn asettaminen pysyvästi omiin
  profiiliasetuksiin.

- Ensi torstaina taas lisää, jee!

*** Demo 4 esittely

Käydään läpi demo-ohje 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.

*** Tauko sopivassa kohdassa. Tykitys jatkuu tasan klo 11:25

Tarkennus kysymykseen ennen taukoa: 'Jos tentissä kysytään montako
argumenttia exec saa komennossa "exec bash -l", niin onko vastaus siis
yksi? Onko oikein myös sanoa, että kaksi, mutta bash syö toisen'

Vastaus: Ilman muuta "exec" on komento, joka saa kaksi argumenttia,
"bash" ja "-l". Muut asiat tapahtuvat komennon suorituksen yhteydessä.

*** Näädät ehdotti, karhut päättivät

Hei maailma konekielellä koeputkiesimerkiksi juttuihin! Jäi viimeksi
pois. Sitä modailemalla voi näyttää kaikkia bittijuttuja ja RSPtä,
RIPiä, virtuaaliosoitteitakin!!

Näin sitten tehtiin. Alla pari sanaa siitä, miten luennolla näprättiin
konkretiaa kustakin näätien ehdottamista teemoista.

**** Toimenpideyhteenveto keskiviikosta

Tuli 5 erityisesti pyydettyä asiaa. Niiden ympärille voitaneen
rakennella esimerkkejä myös laajemmin muusta, mitä kurssin sisältöön
kuuluu.

**** Asia 1: Ympäristömuuttujat

- 3 tykkäystä: Ympäristömuuttujat

Näitä nähtiin ennen taukoa tulleessa esimerkissä joitakin tyypillisiä
käyttötarkoituksineen (Esimerkiksi Javan CLASSPATH) ja sijoittuminen
kuoren asetusskriptiin.

**** Asia 2: Konekielen ja osoitteiden parissa

- 5 tykkäystä: R2: Virtuaaliosoitteet. Miten ne muuttuvat fyysiksi ja
  muutenkin aukaista asiaa hieman enemmän.

  Lupaus, että asiaan palataan luvussa 10 tosi tarkasti. Koetetaan
  kestää mystisyyden verhoa siihen asti.

- 4 tykkäystä: Ryhmä 4: lisä selvennystä käskyosoiterekisteristä ja
  pino-osoitinrekisteristä

  Näitä katsottiin debuggerilla, eli käskyosoitteen eteneminen ja
  push-käsky pinon huipulle.

- 3 tykkäystä: Group 1: Bitittäiset operaatiot

  Tehtiin biteittäinen AND, tarkoituksena nollata RSP-rekisterin 4
  viimeistä bittiä, jotta siitä saadaan lähin 16:lla jaollinen luku,
  joka on pienempi kuin nykyinen.

**** Asia 3: C-kielen ja esikäännöksen parissa

- 3 tykkäystä: Room 3: Mitä oikeasti tapahtuu, kun kirjasto liitetään
  koodiin (#include, import ero).

  Tästä luvattiin, että demo 4:n ohjeteksti avaa asiaa tai johtaa
  täsmällisempiin jatkokysymyksiin.

**** TODO Asia 4: Tekstieditoinnin parissa

Tämä jätettiin seuraavaan karhuluentoon - Jonnella on valmisteltu show
tähän asiaan. Eli jätetääs tähän toi TODO-merkintä, niin muistetaan
ottaa esiin.

- 3 tykkäystä: Monisteessa voisi myös mainita
  käytännön etuja ja käyttötarkoituksia tekstieditoreille.

**** Asia 5: Lukujärjestelmistä

- 2 tykkäystä: Luvun kannan vaihtaminen eri suuntiin (binääri <-> desimaali)

(Yleinen algoritmi on: Jaetaan muunnettava luku uudella kantaluvulla.
Jakojäännös tulee seuraavaksi vähiten merkitseväksi numeroksi
tulokseen. Toistetaan osamäärälle samaa... Jos vaikka jakokulmassa
laskee, niin siinä pittää vaan uusi kantalukukin kirjoittaa siinä
kannassa, missä muutettavakin luku. Ei ole leppoisaa, mukavaa, eikä
tarpeellistakaan esimerkiksi binääri-, oktaali- ja heksalukujen
ymmärtämiseksi ja käyttämiseksi!!)

Olennaista on saada näppituntuma siihen, mitä esimerkiksi disassembler
ja hexdump tulostavat ja miten 2-järjestelmässä on luontevaa
sijoitella dataa. Esim. 0:aan päättyvät heksat on jaollisia 16:lla ja
joko 0:aan tai 8:aan päättyvät 8:lla jaollisia...

Luennolla nähtiin useita kohtia käytännön muunnoksista. Vaikka
sormilla voi laskea lukujen välisiä välimatkoja, kun muistaa, että
heksanumerot on 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F. Edelleen vaikka
peräkkäisten heksalukujen kirjoittaminen paperiin ei ainakaan haittaa
ymmärtämistä.

*** 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 21.4.2021) (P/J) Erikoissupersolunäädät 13:45-16:00
*** Timo Heinäpurolan vierailuluento

Käytiin katsomassa vierailuluento klo 13:45-15:15 (
https://www.jyu.fi/fi/ajankohtaista/arkisto/2021/04/vierailuluento-peliohjelmoinnista-timo-heinapurola-supercell
)

Luento tallennettiin - yritämme saada sen jakoon. Tiedotamme heti, kun
tiedämme miten siinä käy.

15:15-16:00 näätäiltiin jälkitunnelmissa.

Flingalla kerättiin tunnelmat tuoreeltaan vierailun jälkeen:

- 7 tykkäystä: Olipas se huippu!

- 5 tykkäystä: Aika paljon termistöä jne meni ohi kun on niin junnu
  näissä hommissa :D

- 5 tykkäystä: Luento oli hyvä ja informatiivinen, itselle
  päällisinpuolin nousi tosin ahdistus jostain menestyjäkulttuurista.

- 4 tykkäystä: Paljon meni ohi, kun ei pelipuolen juttuja niin tunne,
  mutta muuten huippu luento

- 3 tykkäystä: Teknistä puolta välillä haastava seurata, kun piti
  kääntää aivot englanniksi

- En ehtinyt ihan koko esitystä kuuntelemaan, mutta se mitä ehdin oli
  kyllä jäätävää asiantuntemusta

- Todella mielenkiintoista ja sai hyvää intoa opiskeluun

- Tekninen puoli meni ohi ja lujaa mut kiva oli seurata!

- Kurssiin liittyen ihan hyvä juttu se Map tietorakenteen käytöstä vs
  kahden vektorin käytöstä

- Oli hauskaa kuinka kuitenkin etenkin alkupäässä leikattiin kurssin
  asioihin prosessorirakenteista

- motivoi!

- Ihan mielenkiintoista oli kuunnella asiantuntijan kokemuksia ja
  näkemyksiä

- Hyviä vinkkejä siihen miten ittensä saa brändättyä alalle

Käytiin läpi vielä suusanallinen kierros kaikkien läsnäolijoiden
kesken. Ei nauhoitettu, jotta saatiin jännittämätön juttelutuokio.

*** ITKA203 loppuviikko

- Huomenna (to) aamulla normaalisti Open labrapäivä

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

  HUOMAUTUS: Perjantain luento on poikkeuksellisesti jo klo
  8:15. Kellot herättämään!

- 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 23.4.2021) (P/J) Karhuluento

*** Infot keväälle 2021

- Demotarkastusten tilanne: Jatkuvat viikonlopun jälkeen.

- 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, monisteen luvut 7-8.

*** Terveisiä demo 4 ryhmistä, näätäluennolta ja open labrapäivästä

Alkuviikon ryhmätyöt:

- Montakos siellä tarkkaan ottaen kävikään? Varmaan noin kolmasosa
  aktiivisista kurssilaisista.

- Tehokkaan tuntuisia ja ainakin evidenssin perusteella tehokkaita ja
  hyödyllisiä. Omatoimista opiskelua on tarpeen jatkaa, mutta
  lähtökiihdytys saatiin.

- Esitettiin monesti ja toisistaan riippumatta toive, että
  näätäluennot olisivat näiden ryhmätöiden kaltaisia. Pidämme
  mietintämyssyssä ja ehkä keksitään ensi viikon näätäluentoon
  mennessä jotain sinne päin. Koetetaan sytytellä idealamppua.

- Demo 4:n itsenäinen suoritustapa ohjeistettiin toissapäivän
  minivideossa maatuskapingviineille ja muille, jotka katsovat
  tallenteen.

Toissapäivän näätäilystä:

- Timo Heinäpurolan vierailuluennosta on pyydetty tallenne kaikkien
  kurssilaisten käyttöön. Tiedotetaan, jos/kun on saatavilla.

- Läsnäolleiden kokemukset löytyvät muistiosta omalta paikaltaan
  eli 21.4.2021 yllä.

Eilisen labrapäivästä:

- Kaikkiin kysymyksiin saatiin taas vastaus. Ruuhkaa näissä ei ole
  ollut, eli mukaan mahtuu!

- Läsnäolleiden kanssa tehtiin jälleen kerran tärkeä havainto: Ei
  kannata liian monta tuntia lyödä päätä seinään yksin, mikäli on
  mahdollisuus kysyä apua. Aktiivisen opetuksen ajan
  on. Labrapäivissä, luentojen jälkeen, ja vertaistukikanavalla!

Vertaistukikanavasta:

- Nyt on ollut opettajana mukava vaan tarkkailla, että kysymyksiä
  esitetään ja niihin tulee vastauksia. Keep it coming!

*** Demon 4b esittely

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

*** Tauko sopivassa kohdassa. Jatketaan tasan 9:15

*** Karhut päättivät, mitä käydään.

**** Asia 1: Tekstieditoinnin parissa

Siirtyi viime kerralta: Jonnella on valmisteltu show tähän asiaan.

- Aiemmassa näätäilyssä 3 tykkäystä: Monisteessa voisi myös mainita
  käytännön etuja ja käyttötarkoituksia tekstieditoreille.

Katso videolta tykitys.

Orgmode ja tieteelliset julkaisut:
https://www.jstatsoft.org/article/view/v046i03 (linkki tuli mieleen
luennon jälkeen)

**** Asia 2: Lukujärjestelmistä

- 2 tykkäystä: Luvun kannan vaihtaminen eri suuntiin (binääri <-> desimaali)

Tämä kärpänen saatiin samalla iskulla kuin tekstieditointi.

Katso videolta tykitys.

**** Asia 3: Kurssin kustomointi

Jos Paavo ehtii kaivaa vanhan skriptin naftaliinista.. Ja ehtihän se:

Kurssin etusivulla on nyt kurssin ensimmäisenä päivänä otettu
ryhmäkuva, kuten historiallisesti kuuluukin! Viime vuonna jäi
akuutissa koronakriisissä väliin.

*** Seuraava ennakkotehtävä

Lukemista:

- Demo 4b ohjeteksti

- Monisteen luvut 7-8

Tekemistä:

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

- 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 28.4.2021) (P/J) Ryhmäkeskustelumuotoinen tilaisuus

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

*** Infoisku keväälle 2021

- Demot 1&2 tarkastettu kaikki. Demosta 3 jäljellä 33%.

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

- Palautuslaatikot demoille 4 ja 4b olivat jääneet tulevaisuuden
  puolelle (vuoteen 2038). Tilanne on nyt korjattu - voi palauttaa!
  Teknisistä ongelmista kannattaa muuten huudahtaa, eli jos on
  luennolla luvattu jonkin olevan auki, mikä ei sitten oikeasti
  olekaan auki.. muuten saatetaan kuvitella, että kaikki on
  kondiksessa..

- Huomenna open labrapäivä perinteisesti 8:15-10:00.

- Perjantaina on perinteiset "vapun etkot" eli käyttöjärjestelmien
  karhuluento klo 10:15-12:00!

- Tämän luennon jälkeen on perinteisesti aikaa vapaille
  kysymyksille. Sen jälkeen tapahtuu vielä pienten lisävideoiden
  nauhoittamista, mihin saa halutessaan jäädä
  "studioyleisöksi". (Muutenhan puhutaan puupingviineille, mikä ei ole
  ihan täysin sama juttu kuin ihmiset..)

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

- Interaktio, ryhmäkeskustelu. HUOM: Välipalautteen perusteella
  koetetaan tuunata tekemistä enemmän "demo 4 porukalla" -sessioiden
  tyyppiseksi.

- Pysyen kurssin ja siihen sopivien opiskelumenetelmien tematiikassa.

- Luodaan yhteistä käsitystä aiheista, joita viikon karhuluennolla
  olisi tarpeen käydä läpi.

Näädät eivät kiiruhda. Näädät pohtivat ja keskustelevat.
Näädät ehdottaa, mitä karhut vois tehdä perjantaina.

*** Ryhmien jako

Nopee! Zoomissa satunnaiset Breakoutit nimeltä Room 1, Room 2, ...,
Room N.

Ryhmäkoko 3-4 henkeä, suurin osa 3-henkisiä. (optimaalisempi nopeata
keskustelua varten)

Myöhässä tulevat ladotaan lisäjäseniksi pitkin matkaa -
väkimäärämuutokset siis todennäköisiä.
*** Lämmittely
**** Nimi- ja fiiliskierros ryhmissä

Luvattuun tapaan optimoidaan ajankäyttöä, kun ohjeet ja käytäntö on jo
tuttua!! Suoraan fiiliskierrokseen vaan.

Ryhmissä seuraavat (5 minuuttia):

- Mikrofonit päälle

- Videolähetykset päälle, jos on kamera

- Zoom-nimen mukaisessa aakkosjärjestyksessä (paremman ratkaisun puutteessa):

  + Jokainen vuorollaan kertoo:

    Kuka olen, mistä oppiaineesta, missä tunnelmissa olen juuri nyt.

    Muut eivät keskeytä! Pidä tunnelmakuvaus lyhyenä.

  + Kun ihan jokainen on saanut vuoron, aloitetaan uusi kierros, jossa
    saa jatkaa juttua vapaaammin.

  + Jatketaan, kunnes tulee paluu pienhuoneesta. Zoomissa on
    automaattinen 60 sekunnin varoaika takaisinkutsun jälkeen.

14:24-14:29

*** Miten viikko kurssin parissa meni?
**** Anonyymi Zoom-pollaus: Mikä tilanne viikon tehtäväpaketissa?

Tässä vaiheessa oli työn alla:
- Luvut 7-8
- Demon 4b ohjetekstit.

Tekemistä:
- Demo 4 valmiiksi ja palautusjärjestelmään!
- Demo 4b työn alla.
- Tee käytännön kokeiluja esitetyistä asioista!

Poll. 

Oli pieni otanta paikalla, mutta otanta kuitenkin.

Tilanne keskimäärin hyvän näköinen.

**** Anonyymi Zoom-pollaus: Paljonko tuli käytettyä aikaa?

Poll.

Kestomuistutus: Se, minkä taakseen jättää, sen edestään
löytää. Mitoitus 5 op kurssiin yhdessä opetusperiodissa on noin 16
tuntia viikossa. Tentissä jos osaa puolet, niin pääsee läpi, ja
vitoseen pitää osata lähes kaikki. Oletus on, että ajankäytön määrän
ja opiskelutapojen tehokkuuden kanssa se lopputulos korreloi.

Arvosanajakaumaa voimme aikanaan verrata näihin matkan varrella
tehtyihin ajankäyttökyselyihin.

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

Tätä priorisoidaan, jotta varmasti ehditään.

Rakenne:

- Tärppi vuoden 2019 ekasta tentistä: konekielisen ohjelman jälki ja vaikutukset

- Ryhmissä keskustelu: Millä strategialla tämä tehtäisiin ilman
  debuggerin apua? Ei yritetä vielä tehdä tehtävää.

Aika: 14:40-14:50

- Keskustelu kaikkien ryhmien kesken (ei nauhoiteta videolle)
  Tarvittaessa opettajien spoileri.

- Tauko (aito, ei tekemistä tauon aikana).

15:05-15:15 taukoa. Heti 15:15 koetetaan tehdä tehtävä tällä periaatteella!

- Tehtävän tekeminen (yksilötyö). Pollataan vastaukset.

Yksilötyö 15:15-15:25

- Oikean vastauksen toteaminen oikealla debuggerilla.

Katso videolta!!

*** Mikä asia ei vielä auennut

Tehdään Flingaan koko porukalla laput ja tykkäysäänestys asioista,
joita halutaan karhuluennolta.

- 6 tykkäystä: Säikeen toiminta ja prosessin ero (+1 tykkäys Säikeet)

- 6 tykkäystä: Musta hevonen (varmasti tulee Jonnen ja Paavon
  päättämiä aiheita:))

- 3 tykkäystä: Millon rekisterin nimi pitää olla suluissa, jos esim
  siirtää arvoa rekisteristä toiseen?

*** Jäähdyttely

**** Loppufiiliskierros.

Ryhmissä pikakierros: Missä tunnelmissa kohti seuraavaa luentoa /
muita askareita?

**** Anonyymi Zoom-pollaus 

Tuntuiko tämä näätäily hyödylliseltä itsellesi?

Perjantaina ei näätäillä. Karhut tulee, vetää luennon.

*** Ennakkoon tiedotettu osuus päättyy

Huomenna "Open labrapäivä", tervetuloa!

Perjantaina karhuluento, tervetuloa!

Kysymyksiä ja vastauksia 15 minuuttia.

Sitten voi jäädä studioyleisöksi ja tarkentavien kysymysten
esittäjäksi pienten aihevideoiden tuotantotuokioon.

(Ensin pieni taukio, että opettaja saa keskittyä tuotantotuokioon)


Sitten videonauhoittelusessio... alkaen Paavon pikkutauon jälkeen..


Lopeteltiin keskustelulla klo 16:01. Sitten käsiteltiin useita
täsmäkysymyksiä.

** Videotuotantotuokio (28.4.2021); videoita aiempien havaintojen pohjalta.

Näistä tehtiin myöhempääkin käyttöä varten videoita "lyhyiden
videoiden" kansioon Moniviestimessä.

Videoiden "jälkituotannossa" tullee menemään muutama päivä
kalenteriaikaa. Muutama pieni sensurointi näköjään tarvitaan ja
jotain...

*** Asia 1: Prosessien tarkkailua ja omien prosessien hallintaa

Lavastettuja tilanteita demo 2:sta tehtyjen havaintojen pohjalta
(editori-instanssit, yes-prosessit ynnä muut). Keinot tilanteiden
purkamiseen.

ps, jobs, fg, bg, top, killall

Samalla tullee näytettyä käytännön esimerkkiä prosessoriajasta
käyttöjärjestelmän hallitsemana resurssina. Kellokeskeytys ilmeisesti
tarvitaan, että voi olla enemmän prosesseja kuin prosessoriytimiä!

*** Asia 2: C-esikäännös ja #include / import ero

- 3 tykkäystä: Room 3: Mitä oikeasti tapahtuu, kun kirjasto liitetään
  koodiin (#include, import, using ero).

  Aiemmin luvattiin, että demo 4:n ohjeteksti avaa asiaa tai johtaa
  täsmällisempiin jatkokysymyksiin.

  Nyt ainakin täsmennetään vähäsen:

  gcc:n argumentti -E

  Muistetaan, että "kirjaston liittäminen" on vielä ihan eri asia kuin
  #include. 

  C#:n using tai Javan import tekee konepellin alla monipuolisempia
  asioita kuin C:n #include, vaikka lähdekoodin (ihmis-)lukijalle
  melko samankaltaisessa roolissa onkin.

Huom: Miksipä ei? Vetäistään Linuxin ytimen uusimman version
include/linux/sched.h ruudulle ja ihmetellään esikääntäjää, structeja,
pointtereita, kommentteja ja muuta.

Jos/kun ope eksyy etsintämatkalla luennolla, niin tässä edellisenä
iltana tallennetut täsmälinkit:

task_struct alkaa:  https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/linux/sched.h?h=v5.12-rc8#n649
task_struct loppuu: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/linux/sched.h?h=v5.12-rc8#n1389

*** Yksi esimerkki ympäristömuuttujasta

Ympäristömuuttuja PS1 bash-kuoressa.

** Luento 12: (pe 30.4.2021) (P/J) Vapun etkot
*** Infot keväälle 2021

- Paavo-opella pienenpieniä aikatauluhaasteita lähipäivinä (nopea
  asuntokauppa rullaamassa, "force majeure" josta pahoittelut
  etukäteen; yritetään maksimoida tehot myös kurssin
  suhteen!). Esimerkiksi videoita tulee varmasti ASAP, mutta mikä
  siinä on "P" niinkuin "possible" on epävarma.

- Demotarkastusten tilanne: Demot 1-3 tarkistettu. Demo 4
  läsnäoloversion tehneille on mallivastaus Moodlessa - käykääs
  katsomassa!

- Näätäluennon konsepti uudistui - entistä parempi nyt!

- Puhutaan tentistä jo: Siinä on pari muuttujaa..

  Moodlen huoltoikkuna, jota ei voida siirtää. Ratkaistaan jotenkin.

  Moodle saattaa olla hetken alhaalla tentin aikana, jolloin tulee
  pieni keskeytys tentin vastaamiseen. Viimeisin tallentamaton vastaus
  saattaa hukkua, mutta ei /pitäisi/ olla vaikutusta sen isommin.

  Päivystämme tentin ajan ja tarkkailemme tilannetta.

  Testitentti auki tänään klo 10-13 (luennon jälkeen). Ei vaikuta
  kurssin arvosteluun! Toivomme, että tätä kokeillaan.

- 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: Seuraavaksi demo 5
  ohjeteksteineen, monisteen luvut 9-10.

*** Demon 5 esittely

Tämän voi nyt tehdä nopeastikin!!

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

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

*** Karhut päättivät, mitä käydään

**** Prosessi ja säie

Järjestelmällisesti luentomonisteen ja erityisesti esimerkkikoodien
kanssa selittäen.

Karhut katsovat kelloa koko ajan:

Päästävä vähintään säikeiden hyötyä ilmentävään esimerkkiin
saikeiden_tarve.c tjsp.

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

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 13: (ke 5.5.2021)  (P/J) Ryhmäkeskustelumuotoinen tilaisuus

Eli suomeksi näätäluento (v2.0+)!
Aletaan tykittää tasan 14:15!

*** Infoisku keväälle 2021

- Demotarkastusten tilanne. Demot 1-3 kaikki tarkastettu. Demo 4
  lähtee työn alle saman tien tänään. Eli hyvä.

- Suosituimpia kaloja demon 3 perusteella (case-sensitive; Pallokala != pallokala):

     13 ahven
      5 Pallokala
      5 miekkakala
      5 kampela
      4 hauki
      3 Pirkkala
      3 pallokala
      3 kuha
      2 Tonnikala
      2 ruutana
      2 muikku
      2 Lohi
      2 kissakala
      2 karppi
      2 kala
      2 Hauki
      2 haikala
      2 Ahven
      1 Yhen kilon siika
      1 Vyökirjoahven

- Tänään taas näätäilyn jälkeen jonkin verran aikaa yksilöllisille
  kysymyksille mistä vaan.

- Huomenna open labrapäivä perinteisesti 8:15-10:00.


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

- Interaktio, ryhmäkeskustelu. HUOM: Välipalautteen perusteella
  koetetaan tuunata tekemistä enemmän "demo 4 porukalla" -sessioiden
  tyyppiseksi.

- Pysyen kurssin ja siihen sopivien opiskelumenetelmien tematiikassa.

- Luodaan yhteistä käsitystä aiheista, joita viikon karhuluennolla
  olisi tarpeen käydä läpi.

Näädät eivät kiiruhda. Näädät pohtivat ja keskustelevat.
Näädät ehdottaa, mitä karhut vois tehdä perjantaina.

*** Ryhmien jako

Nopee! Zoomissa satunnaiset Breakoutit nimeltä Room 1, Room 2, ...,
Room N.

Ryhmäkoko 3-4 henkeä, suurin osa 3-henkisiä. (optimaalisempi nopeata
keskustelua varten)

Myöhässä tulevat ladotaan lisäjäseniksi pitkin matkaa -
väkimäärämuutokset siis todennäköisiä.

*** Lämmittely
**** Nimi- ja fiiliskierros ryhmissä

Luvattuun tapaan optimoidaan ajankäyttöä, kun ohjeet ja käytäntö on jo
tuttua!! Suoraan fiiliskierrokseen vaan.

Ryhmissä seuraavat (5 minuuttia):

- Mikrofonit päälle

- Videolähetykset päälle, jos on kamera

- Zoom-nimen mukaisessa aakkosjärjestyksessä (paremman ratkaisun puutteessa):

  + Jokainen vuorollaan kertoo:

    Kuka olen, mistä oppiaineesta, missä tunnelmissa olen juuri nyt.

    Muut eivät keskeytä! Pidä tunnelmakuvaus lyhyenä.

  + Kun ihan jokainen on saanut vuoron, aloitetaan uusi kierros, jossa
    saa jatkaa juttua vapaaammin.

  + Jatketaan, kunnes tulee paluu pienhuoneesta. Zoomissa on
    automaattinen 60 sekunnin varoaika takaisinkutsun jälkeen.

14:24-14:29

*** Miten viikko kurssin parissa meni?
**** Anonyymi Zoom-pollaus: Mikä tilanne viikon tehtäväpaketissa?

Tässä vaiheessa oli työn alla:
- Luvut 9-10
- Demon 5 ohjetekstit.

Tekemistä:
- Demo 4b valmiiksi ja palautusjärjestelmään!
- Demo 5 työn alla.
- Tee käytännön kokeiluja esitetyistä asioista!

Poll. 

Näytti normaalijakaumalta. Otanta on kovin pieni, joten älkäämme
kuvitelko sen olevan tilastollisesti mitään.

**** Anonyymi Zoom-pollaus: Paljonko tuli käytettyä aikaa?

Poll.

Näytti normaalijakaumalta 8:n tunnin ympärillä, mikä on 50% siitä
ajasta, mitä oletetusti vaatii saavuttaa pienin välttävästi
hyväksyttävä taso kurssilla.

Otanta on kovin pieni, joten älkäämme kuvitelko sen olevan
tilastollisesti mitään.

Kestomuistutus: Se, minkä taakseen jättää, sen edestään
löytää. Mitoitus 5 op kurssiin yhdessä opetusperiodissa on noin 16
tuntia viikossa. Tentissä jos osaa puolet, niin pääsee läpi, ja
vitoseen pitää osata lähes kaikki. Oletus on, että ajankäytön määrän
ja opiskelutapojen tehokkuuden kanssa se lopputulos korreloi.

Arvosanajakaumaa ja läpäisyprosenttia voimme aikanaan verrata näihin
matkan varrella tehtyihin ajankäyttökyselyihin.

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

Tätä priorisoidaan, jotta varmasti ehditään.
Nyt tehdään 2 kpl.

**** Tentistä 15.5.2019 tehtävät 18-19

Rakenne:

- Tärppi vuoden 2019 ekasta tentistä: komentorivi-istunnon näkymä

- Tehdään ilman apuvälineitä!

- Ryhmissä keskustelu: Mitkä ovat oikeat vastaukset ja *miksi*?

Aika: 14:34-14:44 (10 min)

- Pollataan henkilökohtaiset vastaukset.

  Tehtävä 18: 100% vastaa B (ei)
  Tehtävä 19: 100% vastaa B (ei)

  Oikein!

- Keskustelu kaikkien ryhmien kesken (ei nauhoiteta videolle)
  Tarvittaessa opettajien spoileri.

- Tauko, jos on sopiva hetki (aito, ei tekemistä tauon aikana).

**** Tentistä 15.5.2019 tehtävät 46-47

Rakenne:

- Tärppi vuoden 2019 ekasta tentistä: copy-paste demo 5:stä

- Tehdään ilman apuvälineitä!

- Ryhmissä keskustelu: Mitkä ovat oikeat vastaukset ja *miksi*?

Aika: 14:57-15:07 (10 min)

- Pollataan henkilökohtaiset vastaukset.

  Tehtävä 46: Ehdotettu 56

  Tehtävä 47: Ehdotettu  0x00007fffffffde38
                         0
                         "returnin heksalukukäsky"

- Keskustelu kaikkien ryhmien kesken (ei nauhoiteta videolle)
  Tarvittaessa opettajien spoileri.

- Oikean vastauksen toteaminen oikealla debuggerilla.

Katso videolta!!

*** Tauko tasan 15:45 asti. Sitten vielä loppunäätäilyt!

*** Mikä asia ei vielä auennut

Tehdään Flingaan koko porukalla laput ja tykkäysäänestys asioista,
joita halutaan karhuluennolta.

- (4 tykkäystä) Luvun 10 "Leluesimerkin" rautalangasta vääntö

- Sivun käsite, tarkennusta siitä miten käyttöjärjestelmä ylläpitää
  sivutaulua ja heittovaihdon tapahtuminen

- Heittovaihto

- Pinokehys

- (lisäksi) "Musta hevonen?", "musta poni, ovat pitkäikäisempiä",
  "Pinkie Pie is the best pony ever!", "Mutta rusinantte :("

*** Jäähdyttely

**** Loppufiiliskierros.

Ryhmissä pikakierros: Missä tunnelmissa kohti seuraavaa luentoa /
muita askareita?

*** Lopetus ja kysymyksiä

Vedettiin vielä koko porukan kierros kokemuksista tästä 2-tuntisesta
ja tämän kevään näätäilystä ylipäätään. Ja sitten täsmäkysymyksiä muun
muassa demoon 5 mutta muuhunkin liittyen. Aamulla jatkuu open
labrapäivässä.

** Luento 14: (pe 7.5.2021)  (P/J) Karhuluento

*** Infot keväälle 2021

- Ensi keskiviikkona on karhuluento!

- Kiitos näätäilijöille tältä keväältä!

- Keskiviikkona myös aamulla Open labrapäivä 8:15-10:00
  (Helatorstaina vietämme nimittäin kaikki vapaata)
  Merkkaa itsellesi ylös tämä aika! Ei tule Sisun kalenteriin.

- Demot 1-3 kaikki tarkastettu. Katso palautteet!  Demon 4 itsenäinen
  suoritus vielä 21 jonossa. Monella on yhteispalaute ja mallivastaus
  saatavilla Moodlessa. Lukemaan!

*** 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 6
  ohjeteksteineen, monisteen luvut 11-12.

*** Kuitenkin näätäpollit alkuun

pollit.


*** Demon 6 esittely

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

*** Tauko sopivassa kohdassa
*** Karhut päättivät, mitä käydään

Edetään monisteen koodiliitteessäkin olevien konkreettisten
esimerkkikoodien kautta, loogisessa järjestyksessä.

**** Säikeistä

saikeiden_tarve.c
saikeet.c

Katso esimerkkien briiffaus videolta.

*** Tauko 11:30 asti. Tykitys jatkuu tasan 11:30.
*** Karhut jatkavat

**** Prosesseista: Signaalinkäsittely ja kill

sigesim.c

Katso briiffaus videolta.

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

race_fixed_sem_mutex.c käsitellään luontevasti seuraavalla kerralla.

*** 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 12.5.2021) (P/J) Karhuluento

*** Infot keväälle 2021

- Ensi keskiviikkona on tentti!

- Tentin jälkeisenä perjantaina (21.5.2021) ei ole luentoa! Oli
  varapäivä, jota ei tarvita.

- Demotarkastusten tilanne.

*** 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: Valmistautuminen tenttiin. Demo 6
  työn alla.

*** Tentin esittely.

Tentti tapahtuu ensi viikon keskiviikkona eli 19.5.2020 klo
14:15-18:15. Tämä tiedetään tänään:

  + Toteutustapa on Moodlen ajoitettu etätentti.

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

  + 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, kiitos koronaviruksen, tentti mittaa
    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!

  + Erikoisuus 2021: Moodlessa tulee mahdollisesti huoltokatko tentin
    aikana. Tarkkailemme tilannetta, ja jatkamme tenttiaikaa lopusta
    sen verran kuin mahdollinen katko vie välistä.

    Moodle tallentaa vastauksen aina, kun siirryt tehtäväsivulta toiselle,
    joten katkossa hukkuu korkeintaan meneillään olleen sivun vastaukset.

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

*** Uusintatentit

Tulee kaksi massauusintaa samalla kaavalla.

Päivämäärät tiedotetaan ensimmäisen tenttikerran jälkeen.

Iso toive on, että mahdollisimman moni osallistuu jo ensimmäiseen
yritykseen!

Ensimmäinen uusinta on heinäkuussa (lukuvuosi 2020-2021). Toinen on elokuussa
(lukuvuosi 2021-2022). Kesäkuussa ei ole tenttimismahdollisuutta.

*** Eteenpäin asiassa

**** Kyssäri viime luennon lopussa

'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 muutamasas
  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 :).


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

Vappusimalaattori:

Aloitetaan esimerkistä vappu_sekaisin.c

Tähän kohtaan mietintätauko. Jatketaan tasan 15:20 esimerkkiä!

Jos opettaja unohtaa, miten esimerkki viedään läpi "lennosta", niin
opettaja voi luntata seuraavien vaiheiden esimerkeistä:

vappu_deadlock.c

vappu_ei_lukkiudu.c


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

Semaforista suhteessa poissulkuun:

race_fixed_sem_mutex.c

Tuottaja-kuluttaja -tilanne:

tuottaja_kuluttaja_rikki.c

Korjataan lennosta muokkaamalla. Jos opettaja eksyy, voi hän luntata
korjatusta mallista (tuottaja_kuluttaja.c)


Loput viimeisellä kerralla sitten.



( HUOM: pyydetty 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 tulivat. Courseratingissa on omat ihan jännät
lisäarvonsa yhteisöllisyyden kannalta ja pilottidataa mielellään
keräisivät... )

*** Viimoseen kertaan siirtynyttä


**** Virtuaalimuisti (sivutus ja heittovaihto): 

Näädiltä tulleita ehdotuksia:

- Sivun käsite, tarkennusta siitä miten käyttöjärjestelmä ylläpitää
  sivutaulua ja heittovaihdon tapahtuminen

- Heittovaihto

- (4 tykkäystä) Luvun 10 "Leluesimerkin" rautalangasta vääntö

**** Lokaalisuusperiaate

Cache thrashing esimerkkikoodi




**** Sikanopee esimerkki: Viestit

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

chattomyself.c


** Luento 16: (pe 14.5.2021) (P/J) Viimeinen luento.
*** Infot keväälle 2021

- Ensi keskiviikkona on tentti!

- Tentin jälkeisenä perjantaina (21.5.2021) ei ole luentoa! Oli
  varapäivä, jota ei tarvita.

- Demotarkastusten tilanne.
  - Sunnuntai-iltaan 16.5. mennessä palautetut demo 5 -tehtävät
    yritetään saada tarkastettua niin, että tarkastuksista on
    hyötyä tenttiin valmistautuessa.

- Demo 5:n jälkeen paukut tentiin, demo 6:n ehtii tehdä ja palauttaa
  tentin jälkeen.

- Torstaina 20.5. ja 27.5. open labrapäivä. (Jälkimmäinen ei näy
  sisussa.)

- Palautemahdollisuus Webropol 17.5. alkaen, muistutus myöhemmin

  ( HUOM: pyydetty 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
  tulivat. Courseratingissa on omat ihan jännät lisäarvonsa
  yhteisöllisyyden kannalta ja pilottidataa mielellään keräisivät... )

*** 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: Valmistautuminen tenttiin. Demo 6
  työn alla.

**** Virtuaalimuisti (sivutus ja heittovaihto): 

Näädiltä tulleita ehdotuksia:

- Sivun käsite, tarkennusta siitä miten käyttöjärjestelmä ylläpitää
  sivutaulua ja heittovaihdon tapahtuminen

- Heittovaihto

- (4 tykkäystä) Luvun 10 "Leluesimerkin" rautalangasta vääntö

**** Lokaalisuusperiaate

Cache thrashing esimerkkikoodi  cache.c

**** Oheislaitteet ja tiedostojärjestelmät

(Kuva 31)


** Kysymyksiä?

* Viime vuoden (2020) toteumaa pohjaksi suunnitteluun

** Vuoden 2020 Luennoilta 11-13 pohjaksi suunnittelulle

*** Läpikäydään uusia kysymyksiä

** Vuoden 2020 luento 14 suunnittelun pohjaksi

*** Tilannekartoitus edellisestä tavoitteesta

Mitä piti olla tehtynä?

Pollataan edellisen tavoitteen toteuma ja keskittynyt ajankäyttö 7
vuorokauden liukuvassa ikkunassa.

*** Tavoite

Lukemista:

- Monisteen luvut 9 ja 10 luvussa ja luettuna

Tekemistä:

- Demo 5 täydessä vauhdissa

- Kysymyksiä kannattaa merkitä ylös etukäteen materiaalia lukiessa ja
  demoja tehdessä

Tämän päivän tavoite siis:

- Paikataan ymmärrysaukkoja lukuihin 9 ja 10 kysymysten pohjalta.
- Varmistetaan, että demo 5 on käynnissä.

*** Läpikäydään vanhoja kysymyksiä

**** Hitaat:

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

*** Pääsimmekö tavoitteeseen

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

*** Tulevat tehtävät

- Luvut 11 ja 12 luettuna.
- Demo 5 valmiiksi ja palautus tarkkaavaisesti!
- Demo 6 käyntiin.
- Kysymykset muistiin!

** Vuoden 2020 luento 15 suunnittelun pohjaksi

*** Infoisku keväälle 2020

**** Demotarkastusten tilanne

Demo 4 katsottu 30%, loput tullee tämän illan aikana.

Todennäköistä, että demot 1-5 tarkastettuna hyvinkin tällä viikolla!

**** Ensisijainen tentti 20.5.2020 klo 14:15-18:15


**** Toissijainen tentti 27.5.2020 klo 16:00-20:00.

Toinen tentti on jo 27.5.2020 klo 16:00-20:00.

Ajankohta on helppo lukita - tietenkin sama kuin jo viime kesänä
tiedotettu yleisen tentin ajankohta:

    https://www.jyu.fi/it/fi/ohjeita-opiskelijalle/opiskelu/yleiset-tentit/tenttipaivat

Ei lähdetä säätämään tai sooloilemaan yhtään, sama mitä
koronaviruksia sataisi taivaalta, vaan pidetään se, mikä on ollut
mahdollisesti kalenterissa jo vuoden verran!

Huomioitavaa:

  + Kyseessä on tavallinen yleinen tentti, joten ilmoittaudu ihan
    normaaliin tapaan Korpissa.

  + Tentti on saman muotoinen kuin 20.5.2020, mutta tietysti eri
    kysymykset.

  + Toivottavaa on, että tämä on toissijainen vaihtoehto, mikäli
    20.5.2020 klo 14:15 tapahtuva tentti ei ole mitenkään mahdollinen
    itsellesi.

  + Esimerkiksi uusintana tätä ei voi ajatella, koska 20.5.2020 ei
    varmastikaan ehdi olla tarkastettu ennen kuin 27.5.2020 jo
    tapahtuu.

  + Myöhempiäkin tenttimahdollisuuksia tulee; oletan ja toivon, että
    suurin osa käy tenttimässä jo 20.5.2020 ja lopuissa on sitten muun
    muassa vähemmän hommaa tarkastaa jne.

Tarkennuksia, lisäspeksiä:

- Tenttiin 20.5.2020 ei tarvitse ilmoittautua näillä näkymin.

- Jos käy molemmat, niin jääkö huonompi voimaan?

  Vastaus: Saa käyttää aikaa 8h sen sijaan että 4h. Parempi jää voimaan.

**** Tällä viikolla open labrapäiviä tavanomaista viikkoa tiheämmin.

Tällä viikolla open labrapäiviä tavanomaista viikkoa tiheämmin:

  + to 8:15-12:00 (yhteensä 4 tuntia!)

  + pe 8:15-10:00 (eli vielä ennen viimeistä luentoa yksi)

Tulee myös ensi viikolle, mutta aikataulut tiedotetaan myöhemmin.

**** Aikatauluttamisen osalta "demot vs. tentti" huomioi seuraavaa:

Aikatauluttamisen osalta huomioi seuraavaa:

  + Demo 6 on pakollinen kurssin suorittamiseksi, mutta sen sisältö ei
    ole tentissä suuressa määrin tärkeä (paitsi se, mitä se
    mahdollisesti selventää jo demossa 5 käytyyn asiaan nähden). Näin
    ollen kannattaa ehkä käyttää energia ja aika ensin tenttiin
    valmistautumiseen ja vasta tentin jälkeen demon 6 viemiseen
    loppuun.

  + Demojärjestelmän deadline 24.5.2020 on ohjeellinen.

  + Demo 5 vähän sama juttu: Siihen liittyen on vakiotärppejä luvassa
    tenttiin usean pisteen edestä, mutta mikäli se tuntuu haastavalta,
    voi olla tärkeämpää hoitaa ensin tentti. Arvosanatavoitteeseen 4-5
    tuskin pääsee vastaamatta oikein myös demo 5:n osaamista
    mittaaviin tärppeihin, mutta kaikki muutkin arvosanat ovat
    vaarassa, jos yleisemmän tason perusteissa on puutteita. Huomioi
    siis oman ajankäytön balansoinnissa tämäkin!

  + ERIKOISHUOM: Tentin jälkeen on vielä saatavilla apua demon 6
    tekemiseen. To 21.5.2020 on vapaapäivä (helatorstai), mutta jo pe
    22.5.2020 tulee Open labrapäivä klo 8:15-12. Sitä seuraavalle
    viikolle tulee vielä erityisesti demo 6:tta varten ohjauksia,
    joista tiedotetaan myöhemmin. Ja toki, jos ongelmia on vielä
    aiemmissakin demoissa, niin niihin saa apuja vielä toukokuun ajan.

**** Opettajan kainot toiveet lähiviikoille

Tämä kaikki sanottuna, toivon seuraavaa:

- Mahdollisimman moni tekisi tentin heti 20.5.2020, vaikka myöhempiä
  uusintojakin tulee.

- Mahdollisimman moni hyödyntäisi toukokuun apujen pyytämiseen kaikkia
  kanavia pitkin, jotta kurssisuoritus jälkijunassakin
  helpottuisi. Toukokuun jälkeen opettajien työsuunnitelma on täynnä
  muuta kuin tätä kurssia, joten apujen saaminen tämän suhteen tulee
  olemaan niukkaa.
    
*** Tilannekartoitus edellisestä tavoitteesta

Perinteiset pollit.

Tavoite oli:

- Luvut 11 ja 12 luettuna.
- Demo 5 valmiiksi ja palautus tarkkaavaisesti!
- Demo 6 käyntiin.
- Kysymykset muistiin!

Ajankäytössä kurssin on nyt sama selkeä notkahdus kuin aiempinakin
vuosina on tässä kohtaa nähty. Nyt tsemppiä! On faktisesti vähän
jäljellä! "Jaksaa, jaksaa, painaa, painaa!"

*** Tämän päivän ja viikon tavoite

Aikataulun mukainen tentti on ensi viikolla. On tullut aika asettaa
viimeinen luentoviikkotavoite:

- Kartoitetaan avoimeksi jääneet kysymykset, ja käsitellään ne, mitä
  ehditään.

- Lisäksi ja erityisesti: Arvioidaan osaamista ja
  kokonaisymmärrystä. Tämän viikon jälkeenhän pitäisi olla hahmottunut
  kaikki se, mitä tämän kurssin aikana on ylipäätään tarkoitus ehtiä
  hahmottaa!

- Perjantaina jokaisella on havaintojen pohjalta käsitys, paljonko ja
  minkälaista tekemistä vaatii saavuttaa itse tavoittelemansa
  osaamistaso.

Poll: Onko selkeä vai tarvitseeko tarkentaa?

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

*** Väliin ainakin yksi tenttitärppi, että muistetaan käydä

Otsikon mukaisesti tsekataan jo joku yleisempikin tenttikysymys.

Käytiin läpi "lauseiden yhdistämistehtävät" kahdessa esiintyvässä
muodossaan: (1) yhdestä yhteen ja (2) yhdestä moneen vaihtoehtoiseen
loppuun.

Muut tehtävätyypit (väittämä, lukuarvovastaus) on käyty läpi jo
aiemmilla luennoilla. Nyt on tiedossa tarkalleen tämänkin vuoden
tentissä tulevat kysymykset.

*** Kysymykset kevään tenteistä + sisällön ulkopuolelle rajatut

Käytänteisiin liittyvää:

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

  Vastaus: Kyllä!

- Tuleeko olemaan aamupäivän tenttejä tarjolla? Työt menee keskiviikon
  tentin kanssa päällekkäin...

  Vastaus: Pohditaan.

- Lisää tenttitärppien läpikäymistä!

  Vastaus: Tuli jo.


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

** Luento 16: (pe 14.5.2021) (P/J) Viimeinen luento.

*** Infoisku keväälle 2020

- Demo 4 on tarkastettu. Katso palaute!!

- Paavon opetusnäyte 20 min asiantuntijaluento + 10 min kysymykset
  ma 18.5.2020 klo 14:15-14:45. Zoom-linkki tulee keskustelulistalle
  Tervetuloa!

*** Perinteiset alkutoimet vielä kerran

Pollit tehtiin.

*** Tämän päivän tavoite

Näkyy väliotsikoista:

*** Kysymysten läpikäyntiä

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ä

*** Luento-osuuden loppuarviointi

Ks. video.

MUISTA anonyymi kurssipalaute kaikista kursseista!

*** Seuraava välitavoite

Tentti.









** Tentti: (ke 19.5.2021)

** (Varapäivä pe 21.5.2021 - saatetaan perua tai käyttää palautteeseen tmv.)

** Jotain viime vuotisia

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