-*- coding:utf-8 ; mode:org -*- Käyttöjärjestelmät, kevät 2024. Aloitettiin maaliskuussa jälleen copy-pastella edellisen vuoden 2023 toteumasta. Tämä on suunnitelma, joka muuttuu ajankäytön ja muun perusteella. Pohjana on luentojen eteneminen edellisenä vuonna. Ei mene pahasti vikaan, jos menee samalla lailla. Tosin keväällä 2023 jo rikottiin kaavaa ja uudistuttiin tavalla, joka ennakoi lisää uutta tälle vuodelle. * Pelisäännöt videonauhoituksista - Soveltuvin osin yritetään saada yhteisiä oppimistilaisuuksia nauhalle. - Oletamme, että tallenteet katsotaan ja sisäistetään etenkin, jos ei päässyt paikalle. - Poikkeus edelliseen voi olla, jos et näe tai kuule: etsimme silloin yksilölliset menettelyt, joilla voit seurata kurssia! (Sama poikkeus pätee muihinkin asioihin, joissa tyypilliselle opiskelijalle suunnattu tehtävä ei tosiasiallisesti ole mahdollinen.) - Viime keväänä 2023 ryhdyttiin kokeilemaan rohkeasti tällaista: "Luennot" olivatkin videotuotantotilaisuuksia, joissa on studioyleisö - eli siis opiskelijat, jotka pääsivät kulloinkin paikalle osallistumaan. Rakennettiin yhdessä studioyleisön kanssa aihepiirivideoita, joissa hyödynnettiin läsnävuorovaikutusta asian selkeyttämiseksi. Aihepiirit ja käsittely tapahtuivat linjassa kurssin osaamistavoitteiden, harjoitusten ja materiaalien kanssa. Kuitenkin niin, että studioyleisön osallistuminen, keskinäinen keskustelu ja kontribuutio tuotantoon mahdollistui. Kertyneet aihepiirivideot ovat nyt käytettävissä kunkin aiheen opiskeluun. - Nyt videoita on jo paljon, ja oletus on, että niitä hyödynnetään opiskelussa. Keväällä 2024 kokoonnutaan yhteen keskustelemaan ja syventämään ymmärrystä materiaalin ja etukäteen katsottavaksi tarkoitettujen aihepiirivideoiden pohjalta. Yhteisissä tilaisuuksissa päästään toivottavasti lähinnä rytmittämään ja ryhmävalmentamaan tekemistä, joka tapahtuu suurimmalta osin tapaamisten välillä. Tuotetaan tarvittaessa uusia, parempia versioita aiemmista aihepiirivideoista, tai täsmentäviä lisäosia niihin. Tavoitteena on parantaa materiaalipankin laatua inkrementaalisti yhdessä, samalla kun opitaan käsitellyt asiat syvemmin kuin mikään vuosikurssi tähän asti on voinut tehdä. Samat pelisäännöt ja tavoitteet ovat voimassa myös uusia tallenteita tehtäessä. - Uusien videoiden julkaisussa on viivettä, joka johtuu muista työtehtävistä. Parhaimmillaan viive voi olla 1-2 arkipäivää, mutta esimerkiksi loppuviikon videot saattavat tulla saataville vasta seuraavalla viikolla. - Emme jälkikäteen sensuroi, joten huomaa: Kun puhut, äänesi tulee julkaistavaan videoon - mahdollisesti hiljaisena, koska mikrofoni on kiinni luennoitsijan kauluksessa. Kysymykset ja kommentit yritämme muistaa toistaa mikrofoniin kotikatsojia varten ja kirjata pääkohdat muistioon tekstinä. - Joskus vielä tekniikka pettää, jolloin itketään hetki ja eletään ilman kyseistä nauhoitetta. Aihepiirivideot voidaan aina tehdä seuraavalla kerralla uudelleen kertauksena ja oppimisen testaamisena :). - Kun katsot jälkikäteen, kokeile katsoa nopeuttuna! (Mutta jos siitä aiheutuu pidemmän päälle huonovointisuutta tai muita oireita, lopeta kokeilu tai aloita siedätysharjoittelu 110% nopeudesta, sitten 120% jne.) * Vuoden 2024 kulku tähän saakka: ** Luento 1: (ke 20.3.2024) Aloitus, yleisinfo ja suoritusvaatimukset Tästä voidaan lukea, mitä ensimmäisellä luennolla oikein tapahtui, kunhan se on tapahtunut klo 14:15-16:00 keskiviikkona 20.3.2024. Runkona on copy-paste viime vuodelta. Luennon pitävät yhdessä vastuuopettaja Paavo Nieminen ja opintojakson toinen opettaja Jonne Itkonen. *** Tämän päivän tavoite Aloitusluennon päätavoite on kuvailla kurssin pakolliset suoritusvaatimukset, aikataulut, deadlinet ja muu byrokraattinen perusinfo, jotta niitä ei tarvitse sen jälkeen etsiskellä. Jotakin luvataan ja jotakin jätetään eksplisiittisesti lupaamatta toistaiseksi. Tästä kohtaa muistiota ja tallennetta voidaan tarkistaa, miten nämä kevään 2024 toteutuksen osalta menivätkään. *** Pakolliset suoritusvaatimukset, arvosanat ja päivämäärät Käydään läpi byrokratia ennen kuin mitään muuta: - Käydään läpi määrälliset vaatimukset, jotka ovat jo näkyvillä myös nettisivulla: Pakolliset demot ja tentti. Demojen deadlinet: noin yksi viikossa, dedikset tulevat näkyviin Moodlessa. - Vuonna 2024 *varaamme oikeuden* antaa kurssin aikana muutamia lisätehtäviä, joista saa tenttiin lisäpisteen, jos tekee. Tarkennetaan speksiä, jos/kun näitä mahdollisesti tulee. Kiinnitetään jo raamit: mahdollisuuksia tulee 0-3 tenttipisteen arvosta, jos ollenkaan. Oikeus on varattu ennenkin, mutta ajan puutteen vuoksi ei ole ehditty hyödyntää. Tarkentavia kysymyksiä aloitusluennolla 2024: - Tuleeko pääsiäisviikolla uutta demoa? Ei tule. - Vaikuttaako demojen myöhästyminen ohjeellisesta aikataulusta arvosanaan? Ei vaikuta. *** Ryhmäkuva Otetaan halukkaista opiskelijoista ryhmäkuva kurssin nettisivulle. Ei huolta: Kuvan ottamisesta ilmoitetaan etukäteen, joten ehtii hyvin piiloutua pöydän alle, jos haluaa. Näin tehtiin. *** Tauko Sitten tauko 10 minuuttia, klo 15:20 asti. Tauolla tulee aina juttuja mieleen.. Tällanen tietenkin: - Tekniikan opiskelijoille ITKA203 käy päikseen HOPSissa olevan ITKA2030:n kanssa. Se ehditään inkarnoimaan vasta ensi vuonna. *** Vapaaehtoinen tarjonta: Sisussa olevat ryhmät ja ajankohdat Käydään läpi, mitä tarkoittaa sisussa näkyvät tapahtumakuvaukset "Luento", "Open labrapäivä", "Laboratoriotyöt" ja "International students": - **Luento:** Vähimmäismäärä varattuja aikoja ja saleja, jotka alkutilanteessa näkyvät kaikkien ilmoittautuneiden kalenterissa. Näissä rytmitetään ja tuetaan tekemistä, ja näihin tullaan sitten, kun on tutustuttu meneillään olevien aiheiden materiaaliin ja aihepiirivideoihin ennakolta. Näissä hyödynnetään sitä, että ollaan yhdessä - pyritään siihen, että yksin hiljaa istuminen ei ole mahdollinen tapa viettää näitä tilaisuuksia. **Varaamme oikeuden seuraaviin muutoksiin:** Poistetaan osa varauksista, jos vaikuttaa, että selvitään tiiviimmällä yhteisellä käsittelyllä. Vaihdetaan varattuja tiloja pienemmäksi, jos se vaikuttaa tarkoituksenmukaiselta. Kolme ihmistä auditoriossa on tuntunut joskus vähän oudohkolta. Mahdollisesti pidetään osa tilaisuuksista täysin etämuodossa. Tehdään näitä muutoksia sitten, kun se näyttää olevan tilanteeseen nähden tarpeen tai kun halutaan kokeilla jotakin uutta pilottimielessä. - **"Open labrapäivä"** noin viikoittain: Ajankohta, jolloin opettaja hengaa ilmoitetussa luentosalissa. Voidaan käsitellä tämän opintojakson asioita tai muuta, tai tehdä vaan hiljaa omia hommia. Alkuperäinen ajatus nimen takana oli "Opettajan labrapäivä" hellittelymuodossa, mutta myös tulkinta "Avoin labrapäivä" vastaa toiminnon tavoitetta. **Varaamme oikeuden seuraaviin muutoksiin:** Vaihdetaan mahdollisesti osa varauksista pelkästään etänä pidettäväksi, mikäli mikroluokissa paikalla oleva väkimäärä on lähellä nolla. Sillä säästyy tilakustannuksia ja mahdollistuu sekä opettajan että opiskelija etätyöskentlypäivä. Parhaimmillaan meillä on muutenkin molempia, sekä lähi että etä. Vaivihkaa pilotoidaan todennäköisesti uudelleen käynnistyvää Koodaamo-toimintaa, joka olisi vastine matematiikan Ratkomolle eli yhteisölliselle demotyöskentelytilanteelle. - **"Laboratoriotyö"** huhtikuussa: Mahdollisuus tehdä demo 4 ryhmätyönä paikan päällä. **Varaamme oikeuden seuraaviin muutoksiin, mutta emme myöskään lupaa toteuttaa niitä:** Mahdollisesti jostakin ryhmätyöajankohdasta tehdään sellainen, että sen keskusteluosiot tallennetaan kertaamista varten ja niiden hyödyksi, jotka eivät päässeet osallistumaan. Mahdollisesti jokin ryhmätyöaika toteutetaan Zoomia ja Breakout-huoneita käyttäen, jotta pidemmän matkan päässä asuvilla olisi tasavertainen mahdollisuus hyödyntää vertaiskeskustelua ajantasaisesti. **Ilmoitamme mahdollisista muutoksista** etukäteen, jotta voit vaihtaa ryhmävalintasi tarvittaessa itselle sopivammaksi. Lähes vuosi sitten tehdyt varaukset ovat aivottomasti tehty copy-paste siitä, miten asia on tähän asti aina tehty eli mikroluokissa 2 tunnin sloteissa. TODO: Varmistettava myös keväällä 2024, että Sisu-ryhmät toimivat niin, että ryhmävalintaa voisi niissä vielä vaihtaa... ehkä onnistuu vaikka kurssi on jo käynnissä.. ilmoittelemme, miten tässäkin käy. Itsenäisesti voi tehdä samansisältöisen harjoituksen, jos ei ole helppoa päästä paikalle. Itsenäisesti tehden menee todennäköisesti useampi tunti. Myös paikan päällä tehtävä muoto edellyttää materiaalin omatoimista opiskelua ennen ja jälkeen live-kohtaamisen. Suoritusmerkintä demosta siis kuitenkin mahdollinen lyhyen läsnäolotuokion perusteella. - **International students** -ryhmä: Oletus on, että tämä perutaan, mikäli tarvitsijoita ei ole. Missään ennakkotiedoissa ei ole luvattu englanninkielistä toteutusta tai suoritusmahdollisuutta keväälle 2024. Paavon vanhana vammana speksi kulkee mukana... never say never - ehkä jossain vaiheessa saatetaan taas tarvita kandikursseja englanniksi syystä tai toisesta... Luentotallenteella saattaa olla tarkemmat selostukset näiden tilaisuuksien roolista. Jos et kuule ja jotakin jäi ylläolevasta mietityttämään, pyydä toimittamaan tarkempi transkriptio tai kysy opettajalta tarvittavat tarkennukset jälkikäteen. Pätee muuten kaikkiin aiheisiin, jotka epähuomiossa ovat saavutettavissa vain joko kuulo- tai näköaistilla. Korjataan tilanne tarvittaessa. Kysymyksiä ja toivottavasti vastauksia tähän astisesta: - Onko Moodlessa näkyvissä olevat demot 1-7 jo miten ajankohtaisia? Tämä oli hyvä kysymys ja toimiva aasinsilta seuraavaan aiheeseen, jossa käytiin läpi demojen vedosten tilanne ja myös kaikki muut materiaalilinkit. Siinäpä yleisökysymyksineen tärkeimmät byrokratiasta, vaatimuksista ja aikatauluista. Päästäänkö sitten jo byrokratiapullasta kivempiin asioihin? Lähestyttiin, mutta varsinainen leivonta pääsee alkamaan vasta ylihuomenna perjantaina. Aasinsillasta päästiin tsekkaamaan kurssisivun linkit seuraavan osion mukaisesti. *** Mistä kurssiin liittyvät asiat löytyvät - Käytiin läpi, mistä kaikki kurssiin liittyvä löytyy (kaikkiin löytyy vähintäänkin aloituslinkki kurssin nettisivulta): + Kolme videokansiota: Yksi tämän vuoden luentotaltioinneille. Toinen erillisille, suoritusvuodesta riippumattomille opastusvideoille. Kolmas on viime vuoden lineaarinen luentosarja. + Näkymä tämän muistion HTML-tulosteeseen yliopiston gitlab-palvelussa. Aina viimeisin versio, jonka opettaja on muistanut työntää gitlabiin. + Luentomoniste + Demot ja niiden palautus Moodlen kautta: Demot on julkaistu toistaiseksi HTML-muodossa (linkki kurssin etusivulta). Toissa vuonna opiskelija teki CSS-tyylin; tällaista aktiivisuutta arvostamme! Ensimmäisen demon saa aloittaa sitten, kun luennolla on käyty läpi siihen liittyvät varoitukset. Palautuslaatikko avataan aikanaan, kun olemme testanneet sen toimivuuden. Asiat tiedotetaan joko yhteisissä tilaisuuksissa tai Moodlen Uutiset-viestissä. Ei tarvitse eikä kannata "pollata" muutosten syntymistä ennen tiedotuksia. Hoputtaminen ei nopeuta; asiat tapahtuvat maksimivauhdilla rajoitteiden puitteissa. + Moodle-ympäristössä on demopalautukset, vertaistukifoorumi ja pelkästään kurssilaisten tietoon tarkoitetut salaisuudet, kuten tallenteiden polkuavaimet, Zoom-huone ja vastaavat. **Älä vuoda näitä ulkopuolisille**. + Materiaalin reaaliaikainen tilanne löytyy Gitlabista. Päivitysten julkaisu useimmiten 1-2 tunnin kuluttua luennon päättymisestä. Gitlabista ei tarvitse välittää muiden kuin niiden, jotka haluavat kehittää materiaalia. Vedokset riittävät opiskeluun. + Aikataulut Sisussa - opetus pyörii niiden mukaisesti. Muutokset ovat mahdollisia, mutta Sisu-kalenterin pitäisi teoriassa pysyä ajan tasalla niistä. + Tenttikokoelma takavuosilta; sitä saa hyödyntää, ja tullaan käymään yhdessäkin läpi opintojakson mittaan. + Joitakin aiempien vuosien palautteita lähinnä tiedoksi ja merkiksi siitä, että palautteet luetaan ja niitä hyödynnetään erityisesti silloin, jos on kokeiltu jotakin aiemmasta merkittävästi poikkeavaa. ** Luento 2: (pe 22.3.2024) Luentomuoto, demo-ohjeistus, varoitukset(!) *** Päivän päätavoitteet: - Jokainen pystyy aloittamaan demo 1:n tekemisen heti tämän luennon sisäistettyään. - Sitä varten: käydään läpi varoitukset, joita demojen tekemiseen liittyy. Näytetään vähän, miltä homman pitäisi näyttää käytännössä, kun itse tekee. - Jokainen tietää, mitä teoriapuolelta pitäisi lukea ja katsoa ennen kuin seuraavan kerran nähdään yhdessä. - Eli toisin sanoen: Tämän opintojakson opiskelu on kaikilla 100% käynnissä! Tehdään tänään parit aihepiirivideot, joita viime vuonna ei uskallettu vielä toisella luennolla ryhtyä tekemään. Tästä alkaen sitten kirjallisen lukemiston ja aihepiirivideoiden avulla mennään asioita läpi juurta jaksaen, käytännön esimerkkejä näyttäen ja auki selittäen. Tavoite on, että viimeistään demojen 1 ja 2 jälkeen opiskelijat uskaltautuvat myös itse kokeilemaan samoja juttuja omatoimisesti. *Turvallisuus- ja mukavuussyistä* alussa käsiteltävät varoitukset on syytä ensin sisäistää! Pidemmän päälle *tutkiva asenne ja utelias kokeileminen* on tavoitetilanne koko yliopistokoulutuksessa, jota tässäkin nyt täten harjoitetaan. *** Infoa keväälle 2024 Vakiokohta, mutta tällä kertaa melko tyhjä: Ei mitään uutta muutosta tai yllätystä tiedotettavana opintojakson toissapäivänä tapahtuneen alun jälkeen. Ehkä kannattaa alussa vielä muistuttaa, että tämän luennon ja lounastauon jälkeen on ensimmäinen Open labrapäivä. Niitä tulee myöhemmin lisää opettajien kevätkalenterin mahdollistamiin lokeroihin. *** Tutustumista - Esittelyt: opettajat (ehtivät tulla tutummiksi kurssin mittaan), opiskelijat, opiskelijoiden pääaineet - Kartoitetaan kädennosto-otannalla seuraavat toisen luentopäivän osanottajista: + Opiskelijoiden pääaineet: Tietotekniikka (LuK/FM): suurin osa Ohjelmisto- ja tietoliikennetekniikka (TkK/DI): toiseksi suurin osa Tietojärjestelmätiede: pari löytyy Ketä muita on: koulutusteknologia, matematiikka, kyberturvallisuus, fysiikka Pidemmän kaaren tähtäyspisteet: + Esimerkiksi millaisiin käytännön asioihin tämä kurssi on ensimmäinen askel? Seuraisi yksi perinteinen koreografia ryhmäkuvatiedoston kanssa. Vuosien varrella tämä on mokattu ainakin seuraavin erilaisin tavoin: + Mikrofoni ei ollut päällä, joten tallenne oli aika turhaa käsien ja poninhännän heilumista. + Opettajan henkilökohtainen kuvagalleria edellisen kesän festarikuvineen luentotallenteelle - liikaa hikeä ja paljasta pintaa, joten joutui sensurointipuuhiin jälkikäteen. Katsotaan, miten tänä vuonna käy. *** Kurssin kustomointi ja käynnistäminen Kustomoidaan kurssin nettisivu tämän kevään kasvoilla... koreografia on suoraan osaamistavoitteiden äärellä: laitteet, tietokoneet, sovellukset, pääteyhteys, kuori, komentojono eli skripti. *** Tauko 10 minuuttia Jatketaan tasan 11:30. *** Sittenpä valmistaudutaan aihepiirivideon tekemiseen Mikrofonitestit tehty? Opella vettä lasissa? Käsis mietittynä? Sopivat välilehdet auki ja ruudulla front slide? Studioyleisö hereillä ja valmiina osallistumaan, spottaamaan virheitä ja kysymään tarkennuksia? Sitten vaan kerralla purkkiin... *** Aihepiiri: Pääteyhteyden ottaminen PuTTYllä ja PuTTYn asetukset Pääteyhteys ja siihen liittyviä asioita: - Luentomuoto ja opintojakson työkalut alusta alkaen ja esimerkit näyttäen: pääteyhteys, bash-kuori ja tekstipohjaiset työkaluohjelmat. - Nykyinen suositus **voisi** olla oman käyttöjärjestelmän mukana tulevan pääteyhteysohjelman käyttely. Tästä on jo tehty aihepiirivideo aiemmin. Teknisiä ongelmia ja järjestelmäeroja todennäköisesti havaitaan, ja päämääränä on yhdessä setviä ne kuntoon vertaistukikanavan kautta mahdollisimman pian! Kokemus muutamalta viime vuodelta (2022-2023) on kuitenkin, että Windows-käyttäjillä **saattaa kuitenkin** olla mukavampaa PuTTY-pääteyhteysohjelman kanssa kuin Powershellillä. - Merkistön täsmentäminen, riippumatta siitä, millä välineellä otetaan yhteys. Esimerkiksi PuTTYn merkistöasetus UTF-8:ksi ja asetusten tallentaminen. - HUOM: Ihan liian moni Windowsia käyttävä opiskelija tuskailee tämän asian kanssa ihan turhaan vielä viikkojen päästä. Poista tuska ja tee se heti. Älä mene tuskaan takaisin. Tässä ohjeet siihen. - Yllättäviä ongelmia erilaisten pääteohjelmien kanssa voi tulla. Jos pääset olemaan mukana esimerkiksi aihetta käsittelevällä yliopiston opintojaksolla, käytettävissäsi on varmasti jokin vertaistukikanava, jossa voit kysyä apua kaikkiin ongelmiin esimerkiksi ääkkösiin tai mihinkään muuhunkaan liittyen! *** Aihepiiri: Unix-käyttäjätunnusten aktivointi JYU:n opiskelijalle - Tämä ohje koskee Jyväskylän yliopiston (JYU) opinto-oikeuden saaneita. Meillä on täällä isolla opintojaksolla näppärää, kun kaikki tekevät harjoituksia samalla etäkoneella. Jos sinulla ei ole vielä paikka auringon alla eli Jyväskylän yliopistossa, voit kokeilla Unix-juttuja vaikka omalla tietokoneellasi, jos laitat siihen Linuxin tai Windowsin päällä toimivan WSL:n. Macillä voit käynnistää omalla koneellasi Päätteen. - Reunahuomautus: JYU:ssa on tarjolla ainakin vuonna 2024 opintojakso Web-julkaiseminen, jossa harjoitellaan alustavasti etäpalvelinten käyttöä. Tässä ihan alussa voi olla osittain päällekkäistä sisältöä, koska osa muiden aineiden kuin tietotekniikan opiskelijoista ei ole välttämättä käynyt sitä. Asioita on hyvä myös kerrata, ja nopeasti tässä lähdetään myös menemään syvemmälle. - 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!) - Käyttöoikeuksien aktivoitumisessa on kevään 2024 havaintojen perusteella viive, joka kestää joitakin kymmeniä minuutteja. *** Aihepiiri: Demo 1 käyntiin - muutama varoituskin alkuun - Miten lähdetään tekemään demoa 1: Alkuvaroitukset ja toisaalta rohkaisu. - Demojen tekemisen saa aloittaa vasta, kun on sisäistänyt varoitukset!! - HUOM: Älä ryntäile tehtäviä läpi nopean suorituksen perässä, vaan pyri sisäistämään - tee omia muistiinpanoja tärkeimmäksi kokemistasi asioista! *** Ennakkotehtävät ennen seuraavaa luentoa: Luettavaa: - Luentomonisteen alkuosa eli esipuhe ja luvut 1-2. Jos tarvitset tai haluat niin myös pullantuoksuinen pehmojohdanto. - Demo 1:n varoitukset ja ohjetekstit. Tekemistä: - Demo 1 työn alle. Kun tapaamme seuraavan kerran, katsotaan, missä tilanteessa ollaan: Viime vuonna aihepiirivideoita uskallettiin ryhtyä tekemään vähän myöhemmässä vaiheessa, joten saattaa olla tarvetta tuottaa muutama ihan uusi aihepiirivideo alkupuolen aiheista. Tai sitten tehdään jotakin muuta tilanteeseen ja kevään kulkuun sopivaa sen pohjalta, mitä lukupaketti ja demon tekeminen ovat siihen mennessä herättäneet ja tuottaneet itse kunkin muistiinpanoihin! (Jos ei tullut sanottua aiemmin, niin **tee muistiinpanoja** - se auttaa muistamista ja oppimista!!) Ahkerasti käyttämään loput viikoittaisesta 16 tunnin panoksesta tähän 5 opintopisteen opintojaksoon. Muista kuitenkin myös lepo ja tyhjäkäynti! Se auttaa jaksamaan taas toiminnan hetkinä. Tässä välissä on lisäksi myös pääsiäistauko, jonka aikana ei ole opetusta eikä oleteta tapahtuvan myöskään opiskelua! ** (Pääsiäistauko) Tämän opintojakson osalta aktiivista aikaa laskettiin tässä välissä noin yksi arkipäivä, eipä siinä paljonkaan asiat ehtineet edetä ... ** Luento 3: (ke 3.4.2024) Luentomonistetta ja muuta materiaalia päin *** Päivän ja viikon päätavoitteet: Fokusoidaan tekemistä kertyneen materiaalipaletin kanssa: - Tarkistetaan tilanne ensimmäisten kotitehtävien suhteen. Nythän oli heti periodin alussa pääsiäisviikko, joten voi olla, että pitää hakea käynnistämisen fiilistä vähän uudestaan. - Kartoitetaan seuraavia aiheita. Tutuksi tulevat luentomoniste, reaalimaailman dokumentaatio ja omatoimisen kokeilemisen työkalusto. - Täydennetään materiaalia tarpeelliselta vaikuttavilla lisäosilla. - Inspirointia, tavoitepisteitä, motivointia ja "mindsettiä" *** Infoa keväälle 2024 Demotarkastukset alkaneet. Toistaiseksi ei tiedossa muutoksia aikatauluihin tai paikkoihin. Open labrapäivä -tilaisuuksia tulee sitä mukaa kun kalentereista löytyy tilaa niille; reaaliaikainen tilanne Sisussa, ja ilmoitetaan näissä infohetkissä luennoilla sitten myös. Tänään ei ole ehtinyt tapahtua mitään - pääsiäisviikko meni täysin muiden asioiden parissa, kuten pitikin. Tilannekatsausta kevään kurssin kulkuun: - Opintojakso on kestänyt pääsiäistauko huomioiden 4 arkivuorokautta. - Demo 1:n palautuslaatikkoon on tullut jo 73 palautusta. Ilmeisesti toimii. Pyritään avaamaan Demo 2:n palautuslaatikko ylihuomenna ja jatkossakin vähintään viikkorytmissä. - Tehtävien julkaistuja versioita voi halutessaan tehdä eteenpäin vauhdikkaamminkin. Palautuslaatikot ja tarkastukset pääsääntönä viikkoittaisen tekemisen tahtiin. - Ennen pääsiäistä oli jo ensimmäinen "Open labrapäivä". Siis mahdollisuus tulla kyseisen aikavälin sisällä joko Sisussa ilmoitettuun mikroluokkaan tai Moodlessa tiedotettuun Zoom-huoneeseen hengaamaan ja tarvittaessa kysymään. Lörpöttelyksikin meni välillä, mutta saatiin myös asioita eteenpäin. Lisää tulee, kun ehditään säätää. - Vertaistukiryhmässä (eli Moodle-alueelta löytyvä keskusteluaktiviteetti) ehdittiin vaihtaa pari viestiä. Antaa mennä lisää vaan! *** Oppimateriaalin pariin Kerätään tilannetieto, mitä on, mistä löytyy, ja miten lähestytään: - Luentomoniste: Esitellään aiemmin toteutetulla aihepiirivideolla, joka olisi tarkoitus katsoa, minkä jälkeen voidaan jutella aiheesta ja täsmentää tarvitaessa. Ehkä ei vielä 4 vuorokauden aikana ole ehditty aloittaa katsomaan? Nyt olisi hyvä aloittaa, niin päästään vauhtiin. - Reaalimaailman dokumentaatio, jollaisen lukemistaitoon tämäkin kurssi koettaa valmentaa: Esitellään aiemmin toteutetulla aihepiirivideolla. Katsottaisiin, minkä jälkeen juteltaisiin ja täsmennettäisiin. - Demotehtävät: Rullaavat nyt jo. Kukin demo esitellään aiemmin toteutetulla aihepiirivideolla. Katsottaisiin ensin niitä omatoimisesti, minkä jälkeen juteltaisiin ja täsmennettäisiin niiltä osin, mitä ohjeista ja aiemmalta aloitusvideolta ei vielä selviä. - Vinkkejä demotehtäviin: Yritettäisiin tehdä demoja ensin alkuopastuksen mukaisesti. Sen jälkeen olisi hyvä katsoa aiemmilta vuosilta kertyneitä vinkkivideoita - niissä puututaan yleisiin väärinkäsityksiin. **Malta kokeilla itse ensin!** Oppiminen toimii paremmin niin, että teet ensin itse, mahdollisesti väärinkin, ja sen jälkeen korjaat käsitystä. Jos ainoastaan toistat jotakin, mitä joku toinen näyttää, se ei jää mieleen kovin pitkäksi aikaa, vaikka olisi miten täydellistä ja oikeaoppista! Toisaalta myöskään kyseenalaistamatta omia tottumuksia ja vertaamatta niitä muiden antamiin vinkkeihin, on riski jäädä paljon oppimatta myös. Muista kolme vaihetta, kaikki tärkeitä: käsityksen muodostaminen, kyseenalaistaminen ja asteittainen korjaaminen. Tällainen on tiedossa: - Yksi olennainen tarve on saada aihepiirivideot järkevästi järjestykseen ja sopivan kokoisiksi kokoelmiksi esimerkiksi viikoittaista tehtäväpakettia.. Tämänhetkinen suunnitelma: + Opettajat koettaa järjestää Moniviestimen videokansiossa aihepiirejä loogisesti etenevään järjestykseen niin, että esitiedot edellisistä riittäisi aina seuraavaan. **Järjestys voi muuttua** keväällä 2024 sitä mukaa, kun käsitys loogisesta järjestyksestä muuttuu. Uusille videoille täytyy etsiä paikka aiempien keskeltä, joten aluksi voi joutua hakemaan. **Saa ja kannattaa ehdottaa** järjestysmuutoksia, kun huomaa jotain, mikä tulee liian aikaisin tai myöhään. + Näillä yhteisillä luennoilla katsastetaan aina seuraavan sopivan lukemisto- ja katselukokoelman tilanne, keskustellaan edellisestä ja täydennellään aihepiireillä, joita sieltä vaikutti puuttuvan. + Koetetaan veivata nyt **alkupuolta nopeampaan tahtiin** kuin koskaan aiemmin, kun videopätkiä on valmiina. Yritetään päästä erityisesti koodiesimerkkien pariin hyvin pian. - Dialogisuutta ja "näätäilyä" vuosimallia 2024 voi olla tulossa: Mikä "näätäily"? Tsekataan vuoden 2020 opiskelijapalautteesta; katso luentovideolta... Ennakkotiedotuksena, että jotakin vastaavaa saatetaan tehdä tänäkin vuonna osana aihepiirivideoiden tuottamista. Silloin siis aihepiirinä jonkin seikan tai tenttitärpin ympärillä tapahtuvaa näätäilyä tositarkoituksella. Näätäily tarkoittaisi jotakin tällaista: + Tullaan kokeilemaan minikeskusteluja ja tenttitärppien pohtimista vieressä istuvien kanssa. Toimintaa mahdollisesti tukisi tilaisuuden siirtäminen auditoriosta tilaan, jossa on tasalattia ja käänneltävät pöydät. Ei huolta: Ei koskaan turhan päiten; ei koskaan aiheen vierestä; ei koskaan sellaista, mitä luentotallenteen katsojan ei tulisi miettiä kotona yksikseen samassa kohtaa luentosarjaa. Miksi: Koetetaan hyödyntää maksimaalisesti kaikki käytössä olevat puitteet, joista fyysinen luentosali (tai muu huone) on nyt yksi. Kysymys- vastausosio edellisestä (keväällä 2024): - Mistä tietää, mitä aiheita seuraavalla kerralla näätäillään? Tästä luentosuunnitelmasta, joka on jatkuvasti kurssimateriaalin julkisessa git-varastossa. Katso videolta esimerkki, kuinka esimerkiksi tässä 3.4.2024 käydyt asiat voi tarkistella ja annettuihin tehtäviin palata. - Miten sitä videon soittonopeutta voi muuttaa nettisivulla? Kolme keinoa: (1) Nettisivun tekijän tarjoamat säädöt, (2) Omaan selaimeen asennettava lisäosa, joka tarjoaa säädöt, vaikka nettisivun tekijä ei olisi niitä laittanut ja (3) Pistä selaimesi suorittamaan sopiva Javascript-pätkä, joka asettaa videoelementin toistonopeuden - ainakin Chromessa näköjään voi tallentaa javascriptiä kirjanmerkiksi. Opettajan oma nykyinen suosikki on kirjanmerkkikansio, jossa on kirjanmerkit mallia "javascript: document.querySelector('video').playbackRate = 2.0;" mutta joskus videokuvan yläkulmaan upotettu portaaton säätöpainike on kiva, joten olen sellaisen lisäosankin asentanut kyllä. Löytyi googlella jotenkin "video speed plugin chrome" tai jotakin. - Missä tuo playbackRate on määritelty? Videolla näytetty vastaus tähän piti sisällään syvemmän, tärkeimpiin osaamistavoitteisiin kuuluvan esimerkin speksin paikantamisesta ja tietyn yksityiskohdan tarkastamisesta sieltä. *** Mietteitä, keskustelua, toiveita? Tulimme yhteen, ja siihen on ilmeisesti se syy, että halutaan nähdä toisiamme livenä. Hyödynnetään vaikka ideariihenä. Toteutettiin lonkalta tällaista: - Ensin lämmittelyjutustelu; tänään vaan ajankohtaisesti "Miten meni pääsiäinen"? - Mitä odotamme oppivamme tällä opintojaksolla? Keskustelu 5 min. + Intuitiota ja demystifiointia käyttöliittymän ja laitteiston väliseen pintaan + Kun on käynyt aiemmin Ohjelmoinnin ja Tietokoneen rakenne -kurssin, niin olisiko tämä sellainen, joka kertoo, mitä siinä välissä tapahtuu + Pääseekö tällä kurssilla siihen Linuxiin käsiksi? Mihin se johtaa? + Toivotaan yleisempää käsitystä käyttöjärjestelmistä yleensä, ei vain tietystä. Toivetta olisi kokonaiskuvan osalta kuulla harvinaisemmista käyttöjärjestelmistä ja sitten myös ns. tunnettujen markkinajohtajien välisistä isommista eroista. + Tutustumista uusiin ohjelmointikieliin + Tehotyökaluja pinnan alle pääsemiseen. + Kädentaitoja ja soveltamista + Miten eri prosessorityypit otetaan huomioon käyttöjärjestelmissä? + Pieni kosketus assembleriin olis kiva + Jotain uskomatonta skriptien kirjoittamista + Yleisempää tietoa käyttöjärjestelmistä ja tapoja optimoida toisteista työtä skriptien avulla *** Ennakkotehtävät ennen seuraavaa luentoa: Luettavaa: - Luentomonisteen alkuosa eli esipuhe ja luvut 1-2. Jos tarvitset tai haluat niin myös pullantuoksuinen pehmojohdanto. - Demo 1:n varoitukset ja ohjetekstit. Katsottavaa: - Videot sekä tämän vuoden kansiosta että pitkäkestoisesta kansiosta, jotakuinkin demo 2:n alkuohjeistukseen saakka. Demo 2 annetaan tehtäväksi ylihuomenna, jolloin sitä voidaan luennolla tarkentaa, mutta ei opasteta uudestaan sitä, mikä aiemmalla videolla jo kerrotaan. Tämä "käänteisen luokkahuoneen" idea nyt mahdollinen aihepiirivideoiden avulla. Muistakaa katsoa nopeutettuna ja tehdä samalla käytännön harjoituksia, joita videoissa toivottavasti muistetaan kehottaa tekemään. Tekemistä: - Demo 1 valmiiksi ja palautukseen. Kun tapaamme seuraavan kerran, katsotaan jälleen, missä tilanteessa ollaan: Viime vuonna aihepiirivideoita uskallettiin ryhtyä tekemään vähän myöhemmässä vaiheessa, joten saattaa olla tarvetta tuottaa muutama ihan uusi aihepiirivideo alkupuolen aiheista. Tai sitten tehdään jotakin muuta tilanteeseen ja kevään kulkuun sopivaa sen pohjalta, mitä lukupaketti ja demojen tekeminen ovat siihen mennessä herättäneet ja tuottaneet itse kunkin muistiinpanoihin - Vakiomuistutus: **Tee muistiinpanoja!** Se auttaa muistamista ja oppimista! Eikä kysymykset unohdu sitten niinä hetkinä, kun on mahdollisuus kysyä . Ahkerasti käyttämään seuraavan opintoviikon 16 tunnin panos tähän 5 opintopisteen opintojaksoon. Muista myös lepo ja tyhjäkäynti! Se auttaa jaksamaan taas toiminnan hetkinä. ** Luento 4: (pe 5.4.2024) Asiassa eteenpäin *** Tämän luennon tavoite - Päivän lopuksi tiedetään, mitä seuraavaksi pitää tehdä ennen seuraavia yhteisiä tapaamisia: Demo 2 ohjeteksteineen ja monisteen luvut 1-4. Ja aina aiemman kertaamista "uusin silmin"! - Koetetaan tehdä mahdollisesti aikaakin kestäviä aihepiirivideoita, studioyleisön tarkkaavaisten huomioiden ryydittämänä. *** Tilannekatsaus kevääseen 2024 - Demoja on palautettu jo tosi hyvin: Tänään klo 10:00 oli 105 opiskelijalla Demo 1 tilassa Palautettu. 25 enemmän kuin viime vuonna tässä vaiheessa. Voititte siis alkukiihdytyksen viime vuoteen verrattuna. Mahtavaa!! Tarkastukset alkaneet. Jatkamme sitä tahtia kuin vaan ehditään. Uutiset-viestikanavalle tulee viestiä siinä vaiheessa, kun jokin merkittävä etappi on saavutettu - esimerkiksi kaikki demo 1:n ensimmäiset palautukset tarkastettu. - Unohtui kait mainita demoista: Niistä tulee numeroarvio, joka **ei vaikuta** kurssiarvosanaan!! Niistä voi ajatella matkan varrella saatavana formatiivisena palautteena, jonka avulla voi fokusoida omaa tekemistään. Hyväksyttyjä demoja **ei tarvitse palauttaa uudestaan**. - Arvio 0 tarkoittaa, että demo ei ole vielä hyväksytty, vaan se täytyy korjata ja palauttaa uudelleen. - Voiko demoja palauttaa uudelleen, jos esimerkiksi labrapäivässä huomaa, että osaisikin tehdä sen nyt paremmin? Opettajien TODO: Yritämme laittaa Moodle-asetukset kuntoon siten, että olisi mahdollista päivittää aiempaa vastausta siihen asti, kun tarkastus tapahtuu... Aiemmin hyväksyttyä ei siis tarvitse palauttaa uudelleen. - Jos olen aiempana vuonna tehnyt jo vaikka demot 1 ja 2, mutta sitten jäänytkin kesken, niin kuinka toimin? Tee vaan uudelleen - joko se on minuutin homma tai sitten on syytäkin kerrata ja opetella uudestaan. Kysymyksiä uusia kevään kulusta tänään? Sitten päästään miettimään, mitä on mielekkäintä tehdä tänään. Muutama uusi aihepiirivideo tarvittaneen demo 2:n aloittamisen lisätueksi. Muu riippuukin sitten siitä, kuinka paljon on ehditty katsoa ennakkoon... *** Pikku näätäilyt Ryhmäkeskustelu 5 minuuttia: - Mikä jännittää tämän aihepiirin opiskelussa? Yhteenveto ja valmentajien tsemppiviestit nauhoitettiin tauon jälkeen. *** Tauko 12 minuuttia Jatketaan tasan 11:15. Opettajat muistaa laittaa mikit päälle sitten... *** Yhteenveto päivän keskustelusta: Mikä jännittää aluksi? Yhteenvetoa: - Vaikeustason ja työmäärän kehittyminen opintojakson mittaan - Liittyen edelliseen: Kun eka demo oli helppo, niin jatkuuko sama vai vaikeutuuko? - Eka demo oli mukavaa, mutta mitenkähän käy jatkossa... jos komentorivin käyttäminen ei ole tuttua... - Miten vältytään "tuhoisilta komennoilta", joita käytiin ekalla luennolla läpi.. Miten saa korjattua tuhot, jos ja kun käy... Tarkennus: Jos olisin linuxin juurihakemistossa, ja suorittaisin täyden poistokomennon, niin estäisikö käyttöoikeudet vahinkojen tapahtumisen? Mietittiin asiaa ja todettiin, että EI ESTÄISI vahinkojen tapahtumista omiin tiedostoihin, joihin itsellä on oikeudet. Muiden tiedot ovat turvassa. Videolta voi taas katsella, kuinka opettaja hiukan hikoilee, koska vahinko on viretty esimerkin vuoksi yhden näppäimen painalluksen taakse... Mutta saa ilmeisesti vielä olla töissä ensi viikollakin, koska mitään ei tuhoutunut! Vastuullista ja rauhallista työskentelytapaa opetellaan - meidän vaarat ovat joka tapauksessa pienempiä kuin esimerkiksi kemian laboratoriossa myrkkyjen kanssa väsäillessä... - Miten esitietoni riittävät, kun on mainittu niin monta valinnaista esitieto-opintojaksoa, joista "olisi hyötyä". - Miten saa pysyttyä tässä mukana, että ei jää jälkeen. Miten löytää aikaa? - Laaja aihepiiri - miten onnistuu saamaan ydinasiat käsiin? Tässähän on satoja sivuja materiaalia ja tuhansia sivuja speksiä... - Yhtä ryhmää ei jännitä yhtään... *** Seuraava ennakkotehtävä Luettavaa: - Luentomonisteen luvut 1-4. - Demon 2 ohjetekstit. - Huomaa, että myös aiempiin on aina hyvä palata "uusin silmin", kun asiat tarkentuvat myöhemmissä kohdissa. Tekemistä: - Demo 1 valmiiksi ja palautusjärjestelmään! - Demo 2 työn alle. Katseltavaa: - Videot tähän saakka: Luentojen 1-4 kertymä 2024-videoista. Demon 2 ohjeisiin ja vähän siitä eteenpäinkin pitkäkestoisista aihepiireistä. Huomioitavaa: - Jo luvussa 3 on kuoressa tehtyjä esimerkkejä, joita on tarkoitus alkaa kokeilla luovasti myös itse sitten, kun demo 1 & 2 hahmottuu ja tekstimuotoinen koneen käyttö alkaa olla turvallisen tuntuista ja omalla mukavuusalueella. Koetetaan päästä siihen pisteeseen pian. - Demoilla 1-2 haettava tavoite on saada kuoren, pääteyhteyden ja screenin käyttö tuotua omalle mukavuusalueelle! Tämä vaatii paljon harjoitusta ja energiaa, joka on sitten koko myöhempää elämää varten alta pois! - Monelle nämä alkupään asiat ovat jo vanhaa tuttua asiaa. Haasteemme sille porukalle: Jakakaa viisautta ja kokemusta niille, joille asia on uutta. Omalta kohdalta koettakaa hioa omaa tutkivaa asennetta ja viedä omaa osaamista seuraava askel pidemmälle. Esimerkiksi POSIX-standardiin tutustuminen tai uusien ominaisuuksien etsiminen tutuista työkaluista on toivottavaa. - Vakiomuistutus: **Tee muistiinpanoja!** Se auttaa muistamista ja oppimista! Eikä kysymykset unohdu sitten niinä hetkinä, kun on mahdollisuus kysyä . - Muistutellaanpa, että 5 opintopistettä 8 viikossa tarkoittaa keskimäärin 16-17 tuntia viikossa tehokasta tekemistä. Muista tauot ja lepo, koska muuten ne varsinaiset tekemisen hetketkään eivät ole niin tehokkaita kuin voisivat olla! ** Luento 5: (ke 10.4.2024) (P/J) Muistiinpanojen vertailua *** Päivän ja viikon päätavoitteet: - Verrataan muistiinpanoja tähän astisesta. Esilukemistona tähän asti oli: monisteen luvut 1-4 ja demojen 1-2 ohjetekstit. - Pyritään nyt kiihdyttämään esitieto- ja kädentaito-osuuden ohjeellista tahtia, kun aihepiirivideot on jo aimmin tallennettu ja kaikkein todennäköisimmät yleisökysymykset niissä käsitelty. - Tehdään tarpeen mukaan tarkentavia aihepiirivideoita tai uusia versioita aiemmista aihepiirikäsittelyistä. - Pyritään saamaan aika nopeasti haltuun myös C-kieli ja debuggeri, eli Demo 3 ja myös demo 4:n ennakko-ohjeistus aika pian käyntiin ja "Hei maailma" -aihepiirivideoiden tyyppisiä ohjattuja ja itse keksittyjä kokeiluja tekemään! - Kokeile tehdä muistiinpanoja paperiin myös paikan päällä; esimerkiksi avainsanoja, joista haluat kysyä tarkennusta, kun tulee kysymys-/vastaushetki. Kysymys tuppaa unohtumaan, jos ei siitä heti merkkaa ylös jotakin pientä muistikasta. *** Infot keväälle 2024 Tilannekatsausta: - Katsotaan ja tiedotellaan, missä mennään... aika paljon olisi opettajillakin ollut hommaa tähän mennessä: Demotarkastukset, aihepiirivideoiden järjesteleminen, lähestyvien läsnädemojen valmistelu, ulkopuolisen aikataulupaineen alaisten ennakkotentin speksaus, Open labrapäivien allokointi kalenteriin ... mitä on ehditty tähän mennessä? + Demotarkastuksissa etappi ja toimintaohjeet ilmoitettu - varmista, että saat Uutiset-kanavan tiedotteet. + Aihepiirivideot vaikuttaisivat olevan OK muutamia eteenpäin + Pari Open labrapäivää löytyi: Huomenna etänä, ensi viikolla luokassa. Nämä julkaistaan Sisussa, josta ne saa halutessaan omaan kalenteriin myös ilman ryhmäilmoittautumista toiminnolla, jota olen nähnyt käytettävän. Joku "Näytä omassa kalenterissa" tmv. - Mitä muuta meneillään.. tsekataan. Ei tullut mieleen, mutta olihan tuossakin jo edistystä viime kerralta. *** Tilanteen mukaista toimintaa tässä Keskustellaan luku-, katselu- ja tekemispaketista. Vertaillaan muistiinpanoja niin sanotusti. Kietaistaan uusia aihepiirivideoita tarpeen ja pyyntöjen mukaan. Joitain onkin jo jonossa. Muistetaan päätavoitteet siinä, mitä tehdään. Alla viime vuoden (2023) vitosluennon muistiosta vielä toistaiseksi. *** Vertaillaan muistiinpanoja! [Keskusteltiin, minkä jälkeen tauko 15 minuuttia. Yhteenveto seuraavasta videolle tasan 15:15 alkaen.] Lämmittelykeskustelu: Mitä olet ehtinyt tehdä auringossa? 4 min. Aihekeskustelu: Missä vaiheessa kukin on materiaalin ja muistiinpanojen kanssa? 6 minuuttia. Yhteinen tilannekuva studioyleisöstä, kerätään tähän ja tallennetaan nauhalle: - Oltiin jo demossa 3, mutta kaikki eivät yhtä pitkällä. "Hyvällä mallilla kaikki". Muistiinpano-osastolla olisi kehitettävää. - Neloslukuun asti saatu luettua ja demot 2 asti keskimäärin tehty. - Demo 2 ei vielä aloitettu, eikä muistiinpanoja vielä aloitettu. - Kaikki mukana kurssilla vielä. Muistiinpanometodi on hakusessaan, eli mitä ja miten kannattaisi laittaa muistiin? Komentoja muistiin listaksi? Käsitteitä listaksi? Voisiko demoa tehdessäkin heittää jotakin muistiin? - Silmäilty lukua 4, luvusta 2 tehty itselle muistiinpanoja. Demo 2:een tutustuttu, mutta ei vielä palautuskunnossa. Videoita katsottu tuplanopeudella. - Demo 2 tehty tai melkein tehty. Lukeminen luvussa 3. - Muistiinpanot aika alkeellisia - etsinnässä menetelmät muistiinpanojen tekemiseen. Demo 1:n korjaaminen menossa. Toimenpideyhteenveto: - Lukupaketti ilmeisesti sopivan kokoinen. Jos meinaat jäädä jälkeen, koeta ottaa pari harppausta (rauhallista tekemisen aikaa) ja kysyä tarvittaessa apuja esimerkiksi Open labrapäivässä. Vinkkejä muistiinpanojen tekemiseksi (vertaisryhmältä 2024): - Komentoja muistiin listaksi? Ilman muuta. Rakenna uudesta aiheesta "Cheat sheet" eli lunttilappu siihen asti, kunnes asia menee refleksiksi. Valmiit cheatsheetit ovat jännittävien ominaisuuksien konvehtirasioita. Tämä sama muuten pätee kivasti myös näppäinohjattuihin ohjelmiin, kuten Emacs, Vim, Screen, Bash, gdb, mutta myös tehotyökaluihin kuten IDEt, DAWs, CADit, 3d-mallinnussoftat, ... - Voisiko demoa tehdessäkin heittää jotakin muistiin? Ilman muuta! - Käsitteitä listaksi? Joo, ja kartoiksi ja kuviksi, tai muuta mikä auttaa itseä. - Niin sanotut alleviivaukset ovat mahdollisia sähköisin välinein. Kaupallisia tuotteita löytyy (esim. Amazonin Kindle, joka mahtuu taskuun) ja löytynee myös ilmaisia vaihtoehtoja. PDF-lukijoissa on vakio-ominaisuutena huomiokynä tmv. annotaatiot. - [Jonnen muistutus]: Tuore tutkimus toteaa, että aidon tai mahdollisimman aitokirjaiseksi tehdyn digitaalisen kirjan lukemisesta oppii tehokkaammin kuin muilla välineillä. [Eriävä näkemys]: Toisaalta esimerkiksi lukujen välillä selailu on digitaalisessa lukijassa helpompaa kuin paperikirjassa. - Jos tekee nopeasti avainsanamuistiinpanoja, niin ne kannattaa kirjoittaa puhtaaksi aika pian tilaisuuden jälkeen, koska muuten ne unohtuvat. - Huomatkaa kotitehtävänä googlettaa Cornell Note Taking System. - Toinen googleteltava voisi olla "sketchnotes" *** Lukupaketti lähipäiville meillä olisi olemassa ja tiedotettuna Tällaisten parissa mielellään oltaisiin työskentelemässä: - Monisteen luku 3 "Hei maailma - johdattelua tietokoneeseen". - Monisteen luku 4 "Konekielisen ohjelman suoritus". - Demojen 1 ja 2 ohjetekstit ja omatoimiset kokeilut. - Kestomuistutus: 5 opintopistettä 8 viikossa tarkoittaa keskimäärin 16-17 tuntia viikossa tehokasta tekemistä. Muista tauot ja lepo, koska muuten ne varsinaiset tekemisen hetket eivät ole enää tehokkaita! ** Luento 6: (pe 12.4.2024) (P/J) Karhuluento ("opettajat opettaa") *** Infot keväälle 2024 - Tänään klo 11:50 tulee kollega esittelemään tutkimusta, johon luvattiin virka-apuna kattava tiedotus sopivalle kohderyhmällä tämän kurssin videojakelun kautta. Tutkimukseen osallistuville arvotaan palkintoja. Tutkimuksen esittelystä on erillinen video ja siitä tulee Uutiset-viesti, jossa on lisätiedot, ohjeistus ja linkki kyselyyn. - Ovatko opettajat ehtineet jutella läpi tarkennuksia tulevaan? Ovat! Käydään läpi Sisusta: + Tiistaiaamu 23.4.2024 klo 8:15-10:00 mikroluokassa opettajien yhteenveto-osuudet nauhoitettaisiin mahdollista myöhempää käyttöä varten. + Keskiviikkoaamu olisikin etänä Zoomilla, ei fyysisessä mikroluokassa. Sisun asetukset on nyt korjattu: Omaa ryhmäilmoittautumista pystyy muuttamaan. Ilmoittautumiset eivät kuitenkaan ole ns. "sitovia" eli voi tulla haluamaansa ryhmään. Ilmoittautumistieto auttaa varautumaan. *** Tämän luennon tavoite - Päivän lopuksi tiedetään, mitä seuraavaksi pitää tehdä ennen seuraavia yhteisiä tapaamisia: Demo 3 ohjeteksteineen, monisteen luvut 1-4 uusin silmin ja aiempaa vahvistaen. Ihan alkua luvusta 5? Ei vaan **Rohkeasti** jo 2024 isompi haukku luvusta 5! - C-kieleen ja Demo 3:een liittyvät videot keväältä 2023 ovat edelleen käypäisiä, joten tänään voidaan tehdä jotakin uutta. - Ideapankista ainakin muutamia jo kertyneitä aiheita. Koetetaan lisäksi muistella demo 1:n ja demo 2:n tekemistä, olisiko siellä muistiinpanoihin jäänyt jotakin askarruttavaa, mitä voisi väännellä *** Seuraava ennakkotehtävä Luettavaa: - Luvut 1-4 uusin silmin, vahvistaen ja sisäistäen. - Demon 3 ohjetekstit. - Lukua 5 jo alustavasti eteenpäin. Tekemistä: - Demo 2 valmiiksi ja palautusjärjestelmään! - Tarkista demoihin 1-2 liittyviltä erillisvideoilta, että olet oppinut niissä käsitellyt asiat. Videot syntyivät 2 viime vuoden aikana palautteeksi useiten havaituista ongelmista ekoissa demoissa. - Demo 3 työn alle. - Tee käytännön kokeiluja esitetyistä asioista! Kestomuistutus: 5 opintopistettä 8 viikossa tarkoittaa keskimäärin 16-17 tuntia viikossa tehokasta tekemistä. Muista tauot ja lepo, koska muuten ne varsinaiset tekemisen hetketkään eivät ole niin tehokkaita kuin voisivat olla! *** Aihepiiri: Kuoren muuttaminen toiseksi kuoreksi komennolla exec Video, joka tulevaisuudessa suositellaan katsottavaksi nopsaan ihan alussa pääteyhteyden opiskelua. Muutama asia hyvin lyhyesti ilman sen syvempää perustelua: - Todetaan, minkä kuoren etäpalvelin käynnisti kirjautumisen yhteydessä. - Vaihdetaan kuori toiseksi taikasanalla "exec toinenkuori -l" (pikku ällä) - Todetaan, että kuori vaihtui - Vaihdetaan vielä, ja vaikka vielä ja vielä, että varmasti osataan. - Kun teet kokeiluja jonkin ohjeen tai vinkin avulla, kannattaa käyttää juuri sitä kuorta, jolle vinkit on tehty. Silloin ei tule yllätyksiä. - Jätetään mieleen, että kuori nimeltä bash on melko yleinen, ja sille löytyy todella iso määrä hyviä ja huonoja vinkkejä netistä. Perusteluiden aika on melko pian, koska tämän jakson osaamistavoitteena on ymmärtää ja kyetä soveltamaan näitä ja monia muita temppuja aina tarvittaessa. *** Tauko 12 minuuttia *** Aihepiiri: Mikä on terminaalimultiplekseri screen? Tämä video on henkistä tukea omatoimiseen opetteluun tutoriaalien avulla - esimerkiksi Jyväskylän yliopiston käyttöjärjestelmäopintojakson toisen viikkoharjoituksen eli "demo 2:n" alkuvaiheessa. Näytetään käytännössä ja demo 2:n ohjekohtaan viitaten - spoilaamatta varsinaista opiskelua lukemalla ja kokeilemalla itse. ** Luento 7: (ke 17.4.2024) (P/J) Tilanteen mukaista toimintaa Yritetään aina käynnistää mahdollisimman lähelle 14:15! Säädöt kestävät joskus, kun ollaan "kiertolaisina" erilaisissa luentosaleissa... Miten käy tämän päivän kilpajuoksussa tekniikkaa vastaan :-) *** Päivän ja viikon päätavoitteet: Open labrapäivä oli juuri äsken livenä mikroluokassa - sieltä luultavasti kertyy jotakin terveisiä ja ideoita käsiteltäväksi? Lisäksi on jo ideapankissakin tavaraa. Lisää saa ehdottaa. Tärkeätä myös keskustella, koska ollaan tultu yhteen. - Kohti ensi viikkoa ja puolivälin ryhmätyöpajaa: Onhan kaikki selvää sitä varten, mm. pajaan tullessa mielellään Demo 4 ohjetestit luettuna - Asioiden järjestelmällistä käsittelyä eteenpäin aihepiirivideoiden muodossa. *** Infoisku keväälle 2024 - Ensi viikolla tapahtuu "Demo 4 porukalla" - mitä tämä tarkoittaa!? Tutustu jo tällä viikolla Demon 4 ohjetekstiin, joka kertoo C-kielestä. Ilmoittaudu Sisussa itselle sopivaan "Laboratoriotyö" -sessioon. Tule paikalle näkemään porukkaa livenä, niin saat demon 4 suoritettua. Mutta jos on flunssaoireita, pysy kotona. Huomaa poikkeukset, joista tiedotettiin viime viikolla ja Sisussa. Itsenäinen suoritusmahdollisuus tietenkin on, mutta se avataan myöhemmin, ettei jäädä sen takia kotiin jumimaan, että demo on jo tehty. Oppimiseen pelkkä suoritus ei riitä, vaan tarvitaan aikaa, kokeiluja ja toistoja asian parissa. Ei siis mitään uutta auringon alla. *** Lukupaketti tällä hetkellä: - Demo 4:n ohjeistus (maanantaihin mennessä luettuna) Täsmennys: Tässä vaiheessa kyseessä on "demo 4" eli d04_c.html Vasta ensi viikolla on "demo 4b" eli d04_miniasmit.html - Monisteen lukua 5 eteenpäin - Aiempia asioita uusin silmin ja kertaillen, kuten aina. *** Aihepiiri: Tiedosto-oikeuksien kokeileminen JYU:n suorakäyttökoneella Pari keinoa omatoimiseen kokeiluun täällä meillä JYU:ssa. - Videolle kertyi uhkarohkeitakin kokeiluja. - Studioyleisö oli hienosti hereillä, ja aiheessa käväistiin syvällä - Lopussa rohkaisu kohti osaamista ja ymmärrystä sekä niiden kautta syntyvää turvallisuuden tunnetta *** Tsemppikeskustelu paikan päällä Tehtiin pari keskustelukierrosta läsnäolijoiden kesken. Tätä ei tallennettu. ** Luento 8: (pe 19.4.2024) (P/J) Tilanteen mukaista toimintaa *** Tämän luennon tavoite - Päivän lopuksi tiedetään, mitä seuraavaksi pitää tehdä ennen seuraavia yhteisiä tapaamisia: Demo 4 ohjeteksteineen, monisteen luvut 1-5, alkuviikolla jo lukua 6. Aihepiirivideoista voi saada tukea ja oppiminen tapahtuu omatoimisen kokeilun kautta. - Näätäillään tositarkoituksella: Nyt on luettu jo aika paljon asiaa, niin selvitellään, mikä sieltä tarvitsisi lisää rautalankaa. - Aihepiirivideoita: Rautalangan vääntämistä uusista ja aiemmin toivotuista aiheista. - Mahdollisesti ryhdytään katselemaan tenttiä. Tehdään sitäkin "näätäillen" yksin-ryhmissä-kaikki -tyyppisellä pohdintatehtävällä. *** Seuraava ennakkotehtävä Lukemista: - Demo 4 ohjeteksti; tärkeä ensi viikon demo 4 -ryhmätöitä varten! - Monisteen luku 5 ennen demo 4 -ryhmätyötä. - Monisteen luku 6 heti demo 4:n jälkeen. Katsomista: - Aiemmin tallennetut aihepiirivideot ovat loogisessa järjestyksessä jo ainakin Demo 4b:n alkuopastukseen asti, ja aika hyvin siihen liittyy "Little Man Computer" sekä "Havainnekuvien piirtäminen". Vaikuttaisi olevan tie selvä. HUOM: "Esimerkkikoodien lataaminen" -aihepiiri siirtyi pikkuisen aiempaan kohtaan, ja tulee jo heti demo 4:n jälkeen. Tekemistä: - Demo 3 valmiiksi ja palautus + asioiden sisäistäminen - Omatoimista kokeilua, kun rohkeus niihin karttuu. Kestomuistutus: 5 opintopistettä 8 viikossa tarkoittaa keskimäärin 16-17 tuntia viikossa tehokasta tekemistä. Muista tauot ja lepo, koska muuten ne varsinaiset tekemisen hetketkään eivät ole niin tehokkaita kuin voisivat olla! *** Infot keväälle 2024 - Ensi viikon alussa tosiaan tapahtuu "Demo 4 porukalla": + Ryhmäharjoite + **Mielellään paikalla siten, että päästään aloittamaan aina vartin yli!!** Aikaisintaan 90 minuutin päästä vasta pääsee pois. Demo 4 suoritus: olet läsnä, kun ope kirjaa, että olit läsnä. + Harjoitteesta vauhtia tekemiseen - oman session jälkeen viimeistään voi edetä luentomonistetta ja aihepiirivideoita eteenpäin, mm. "Demo 4 havaintoja tekemisestä" ja siitä eteenpäin. *** Tauko Tauon jälkeen muistettava: Äänitesti, videokalvo, nauhoitusnappi. *** Aihepiiri: Hupsista vaan, täytin verkkolevyni satunnaisella tauhkalla.. Havainto demo 1:n tarkastusten yhteydessä: Vaikka ei vaarallista, niin kuorella on helppo tehdä itselleen vahingossa kaikenlaisia "jekkuja" kuten tiedoston tulostaminen itsensä perään äärettömän monta kertaa heksavedoksena.. Ctrl-C pysäyttää meneillään olevan, ja aika monet viritykset voi purkaa, kun rauhassa tekee. *** Näätäilyt: Mikä kohta on jäänyt epäselväksi tähän asti (luvut 1-5, demo-ohjeet 1-4) Lämmittelyksi: - Mikä on ollut kivointa tällä viikolla yliopistolla tai muualla? 3 minuuttia. Ryhmissä: - Vertaillaan muistiinpanoja, ja etsitään ehdotus: Mikä asia tähän asti tarvitsisi lisää selvennystä? Minkälaista? 7 minuuttia. Yhteenveto ryhmittäin: - Monisteen nelosluku oli raskas ja vaikealukuinen. Tuli paljon uusia asioita, eikä tullut yhdellä lukemisella valmiiksi. Keskustelua: Demo 4b tulee auttamaan luvun 4 selventämisessä. Demon ajoitus on ehkä vähän myöhässä suhteessa lukemistoon. Samoin aiheesta nauhoiteltu video on tänään (19.4.2024 vähän myöhäisessä vaiheessa katsomisjärjestystä) - Vimiä ja emacsia ei varmaan kukaan ota haltuun kerralla. Tämä on vielä vaiheessa. Monisteessa on tiivistä asiaa paljon - siihen varmaan pitää palata vielä uudelleen, kun kokemusta kertyy. Alkupäässä sivutaan hyvin nopeasti asioita, joista ei vielä kuitenkaan anneta yksityiskohtia - tämä vähän hämmensi. - Kun ei ole aiempaa kokemusta, niin uudet eteen tulevat asiat kuormittavat, esimerkiksi C-kääntäjän käyttäminen kuoresta. Pienet osatehtävät / "lämmittelyt" auttavat, esimerkiksi demon 3 Hello world -osio. Kuormitus tulee sitten isommasta askeleesta, kuten demon 3 palautustehtävä, jossa on jo 90 riviä. Selitys kääntämiselle, linkittämiselle tulee Ohjelmointi 2:n lisäosissa selkeämmin kuin tämän kurssin materiaalissa. Opettajan jälkihuomiot: - Materiaali on rakennettu suunnitteluperusteella, jonka mukaan asteittainen tarkentuminen ja alkushokki ovat tarkoitettuja tunteita. Perustuu myös siihen, että shokista selviytymiseen on tarjolla tukea ja turvaa. Tämäkin keskustelu osa sitä. ** Luento 9: (ke 24.4.2024) (P/J) Tähään karhu, ylihuomenna näätä Mikä "karhuluento"? - Verrattuna näätään: Karhu ei jää kyselemään pitkäksi aikaa. Karhu vaan painaa menemään, selittää kovasti mennessään ja vääntää rautalankaa niin paljon kuin pystyy. Mikä "näätäily"? - Pistetään vähän viisasta päätä yhteen ja jutellaan vieruskaverin kanssa.. tehdään yhteenvedot myös koko porukan kesken ja kotikatsomoita varten. Soveltuu esimerkiksi tenttitärppien miettimiseen. Näädät syöttää aiheita rautalankakarhuille. *** Meneillään olevat tehtävät (huomenna mennään taas eteenpäin tästäkin!) Jos seurailet keväällä 2024 tapahtuvaa opintojaksoa omaan tahtiin "aikakoneella", tästä osiosta voit päätellä, missä kohtaa lukemisen ja tekemisen osalta olisi hyvä olla menossa. Videotallenteet on ehkä saatettu järjestellä tiekarttaan siihen mennessä. Tätä nauhoitettaessa työ on vaiheessa - vertaistukikanavalle tuli tähän astisista posti, jossa on listattu uudet videot. Meneillään: - Edessä seuraavaksi Demo 4b. Lukemista: - Demo 4b ohjeteksti - Monisteen luvut 1-6. Katseltavaa: - Eteenpäin vaan videoita, jos niistä on hyötyä. Tekemistä: - Demot 3 ja 4 valmiiksi ja palautus + asioiden sisäistäminen - Demo 4b työn alle. Täsmennys demo 4 osalta: Läsnäsuoritus kuittasi asian, jos asut Jyväskylässä ja pääsit käymään paikalla. Mallivastaus on saatavilla Moodlessa. Aikakoneella tallennetta katsoessa käytettävissäsi on itsenäinen suoritustapa. Kestomuistutus: 5 opintopistettä 8 viikossa tarkoittaa keskimäärin 16-17 tuntia viikossa tehokasta tekemistä. Muista tauot ja lepo, koska muuten ne varsinaiset tekemisen hetketkään eivät ole niin tehokkaita kuin voisivat olla! *** Infot keväälle 2024 - Demo 4 itsenäiseen suoritustapaan avautaan palautuslaatikko just nyt. Ryhdy tekemään, jos et ehtinyt ryhmäsessioihin! Löytyy normaalista paikasta HTML-vedoksena. Ohjeellinen aikataulu on perjantai klo 17. - Demotarkastusten tilannekatsaus? - Tulen ehdottamaan ennakkotenttiä tarvitseville tasan viikkoa ennen ekaa massatenttiä iltapäivällä johonkin aikaan. *** Kevään 2024 terveiset porukkasessioista Demo 4 ja Open labrapäivistä Kiitos! Mallivastausta kannattaa vielä vilkuilla ja alkaa tehdä omatoimisia kokeiluja. Fyysisesti kävi noin 40, etänä 14. Tärkeimpiä havaintoja oli jälleen kerran: Malttia!! Yli puoli sataa osallistujaa olivat tarkkoina ja löysivät hienoja tarkentavia kysymyksiä, jotka eivät olisi muuten tulleet mieleenkään. Ehkäpä tästä voimaannutaan keskustelemaan myös vertaistukikanavalla nyt, kun ollaan vielä 120 opiskelijan kesken aktiivisia toukokuun ajan!? *** Tauko 13 minuuttia. Jatketaan tasan 15:15 Mikrofonitesti... *** Supersalainen palautevideo: Demo 2:n jälkeen opittavaksi (Tästä tulisi salainen video, jonka näkee halutessaan sitten, kun demo 2 on hyväksytysti palautettu.) Speedrunnataan ensin demo 2:n ja samaan syssyyn demo 1:n pakolliset vastausosiot. Samalla aiheeseen liittyvää tarkennusta: - Nykyinen alikuorisyntaksi - Yhdistelmäkomentosyntaksi - Muuttujat kuorikomentoriviohjelmassa - Lainausmerkit alikuorikomennon ja muuttuja-arvon ympärillä - aputyökaluja kuten ShellCheckiä on hyvä käytellä *** Aihepiiri: printf kuoressa Sopiva kohta olisi demon 1 ja demon 2 välissä. Tällasta jotain olisi aihepiirin sisältönä: - Muistetaan ``echo miten kaiku vastaa`` - Sitten koetetaan unohtaa echo, ja opetellaan käyttämään tulostamiseen aina komentoa ``printf``. Tuo ``echo`` on nimittäin nykyisessä POSIX-standardissa merkitty välteltäväksi (eli *deprecated*) ja suositellaan korvattavaksi komennolla ``printf``. Keväällä 2024 osa tehtävistä voi vielä olla päivittämättä nykyaikaan, mutta voit itse tehdä sen. Esimerkiksi äskeisen komennon tilalla pitäisi olla mieluummin tämä:: printf "Mitä printf tekee\n" Huomaa lainausmerkit ja lopussa oleva kenoviiva ja än-kirjain. - Tutkiskellaan printf:ää kuoressa, kuoren manuaalissa, standardissa - Eiköhän aihepiiriin saada liittymään käytännön esimerkki jos toinenkin standardoinnista, syntakseista, speksin tarkistelusta ym. ** Luento 10: (pe 26.4.2024) (P/J) Tilanteen mukaista toimintaa *** Tämän luennon tavoite - Puolivälin etappi. - Pikkuhiljaa kenties ryhdytään katsomaan jo ennalta vähän tenttiä, josta tulee arvosana tästä opintojaksosta. Tehdään sitä hiukan ryhmissä näätäilemällä: otetaan hyötyjä siitä, että ollaan samassa paikassa yhdessä; saadaan jaettua viisautta myös kotikatsojille sekä aikakoneella tulevaisuuden puolelta opintojaksototeutusta seuraaville. - Päivän lopuksi tiedetään, mitä seuraavaksi pitää tehdä ennen seuraavia yhteisiä tapaamisia: Seuraava demo 4b ohjeteksteineen ja linkkeineen, monisteen luvut 7-8 ja jo 9.1. *** Infot keväälle 2024 - Ei pitäis olla mitään uutta auringon alla. Varmistumaan päin se ennakkotentti hakuja varten 17.5.2024 klo 14-18. - Tänään vedettiin alkuun perinteinen fiiliskierros paikan päällä. - Sitten tapahtuu tilanteen ja toiveiden mukaista menoa, josta saattaa olla videoita saatavilla jälkikäteen. *** Seuraava ennakkotehtävä Lukemista: - Demo 4b ohjeteksti - Monisteen luvut 7-8 ja 9.1 Katselemista: - Aihepiirivideot jopa Demo 5 alkuohjeistukseen saakka. Tekemistä: - Demo 4 valmiiksi ja palautus + asioiden sisäistäminen Ryhmätehtävän suorittaneillekin pitäisi olla nyt mallivastaus demosta 4 saatavilla! Vilkaise! - Demo 4b työn alle. - Esimerkkikoodeja voi alkaa omatoimisestikin katsomaan Kestomuistutus: 5 opintopistettä 8 viikossa tarkoittaa keskimäärin 16-17 tuntia viikossa tehokasta tekemistä. Muista tauot ja lepo, koska muuten ne varsinaiset tekemisen hetketkään eivät ole niin tehokkaita kuin voisivat olla! *** Tauko 12 min. Jatketaan 11:25 tasan *** Aihepiiri: Demo 3 palautevideo (Tästä tehdään tulevaisuutta varten samanlainen salainen juonipaljastusvideo kuin demo 1-2:sta aiemmin) Demo 3:n jälkitarkennuksia ehkä muutakin? Käsiteltävää: - Speedrun alkuun - Keskustelua siitä: Tehtäväohjeessa oli paljon asiaa luettavaksi ja kokeiltavaksi. - Havainto paikan päällä: Lisäjutut ohjeessa olivat hyvä, koska se innosti kokeilemaan itsekin asetustiedoston tekemistä ja muuta! - LC_ALL ja muut kieliasetukset - mikä näiden stoori on? - Muuta mieleentulevaa studioyleisön kanssa? ** Luento 11: (ke 2.5.2024) (P/J) Tentin detaljit ja ensimmäinen tärppi *** Päivän päätavoitteet: - Kevään 2024 tenttimuoto ja tärpit tähän kohtaan. - Materiaalirunko videoineen vaikuttaisi olevan kasassa, joten nyt päästään kunnolla näätäilemään: tehdään, mitä väki kokee tarpeelliseksi. *** Infot keväälle 2024 - Demotarkastukset pitkälti ajan tasalla kevään osalta: 1-3 tarkastettu ja 4 tarkastetaan seuraavaksi. Etapeista ilmoitetaan Uutiset-kanavalla, kun esimerkiksi kaikki on tarkastettu. - Open labrapäiviä mahtui ensi viikkoon seuraavasti: Ma etänä aamu- ja iltapäivällä pitkästi, ke hybridinä juuri ennen tämän opintojakson luentoslottia. Yksityiskohdat Sisussa. - Vertaistukikanavalla taas apuja saatu, jopa vappuna. Selvästi hyviä vinkkejä on saatavilla, kun vaan kysyt kavereilta! **Opettajien TODO** (ehtii tuleville vuosille): - Live-keskustelussa 2.5.2024 esitettiin oivallinen ehdotus luentomonistetta varten: "Pohdittavaksi"-tyyppisiä kysymyksiä lukujen loppuun (tai kohdentamisen tueksi jopa alkuun!) osaamistavoitteiden ja tiivistelmien tueksi. *** Seuraava ennakkotehtävä Lukemista: - Demo 5 ohjeteksti - Monisteen luvut 9-10 Katselemista: - Aihepiirivideot monisteen koodiliitteessä olevista esimerkeistä. Näiden tavoite on tukea teoriaosuuden ymmärtämistä. Tekemistä: - Demo 4b valmiiksi ja palautus + asioiden sisäistäminen tähän astisesta. - Demo 5 työn alle. *HUOMAUTUS:* Demo 5:n katselu voi auttaa myös demo 4b:n ymmärtämistä! Eli niiden tekemisjärjestystä voi koettaa vaihtaa tai yhdistää toisiinsa, jos tuntuisi olevan hyödyksi itselle. - Omatoimisia kokeiluja, havainnekuvien piirtelyä ja niiden kautta yhteyksien etsimistä teorian, käytännön ja rajapintadokumentaatioiden välille. - Tarkennusta tai rautalankaa vaativien kysymysten listaamista ylös, jotta voidaan vääntää rautalankaa niistä. Kestomuistutus: 5 opintopistettä 8 viikossa tarkoittaa keskimäärin 16-17 tuntia viikossa tehokasta tekemistä. Muista tauot ja lepo, koska muuten ne varsinaiset tekemisen hetketkään eivät ole niin tehokkaita kuin voisivat olla! *** Aihepiiri: Tentin yleiskuva 2024. Moodlen tentti Opettajan esikatseluna. Usein kysyttyjä kysymyksiä on jo tiedossa. Voidaan käsitellä ennaltaehkäisevästi: - "Saako tentissä käyttää kurssimateriaaleja vai pitääkö kaikki komennot muistaa ulkoa?" Vastaus pääpiirteissään on: Saa käyttää kaikkea, paitsi avun kysymistä henkilöltä, ChatGPT:ltä tai muulta taholta, jolle voi esittää kysymyksen tentin aikana. Esimerkiksi internetiin aiemmin päätyneitä sisältöjä saa käyttää mielin määrin. Saa myös kokeilla asioita käytännössä esimerkiksi pääteyhteydellä. *** Tauko 10 minuuttia. Tenttitärppi klo 15:43 Tauolta tullessa järjestäydytään pienryhmiin, joissa tärppejä mietitään. *** Osaamisen arviointia ( == tämän kevään ensimmäinen tenttitärppi!) Tässä kohtaa kevään 2024 ensimmäinen tenttitärppi. **** Kevään 2024 menettely "Näätäilyä" eli luentotilaisuuteen kytkettyä ryhmäkeskustelua on kokeiltu erilaisin tavoin useiden vuosien ajan inkrementaalisti. Keksitään pyörä uudelleen jollain tähän kevääseen sopivalla tavalla. Raamit: - Yksin-ryhmissä-kaikki -menettely; sama sukka sopii joskus moniinkin jalkoihin. - Saadaan kuvaa omasta ja kaverien oppimisen vaiheesta *ilman suorituspaineita*; kokonaiskuva välittyy tallennettujen osioiden kautta myös kotikatsomoihin - Simuloidaan tenttiä, jolla kevään 2024 opintojaksosta tulee lopuksi arvosana. **** Protokolla: - Kolmen hengen ryhmät lähellä istuvien kanssa. - 3*30 sekunnin nimi- ja fiiliskierros, jotta keskustelu lämpenee. - Päivän tenttitärppi yksin-ryhmissä-kaikki -menettelyllä (seuraava kohta). - Oikean vastauksen takana oleva ajatuksenkulku **** Tehtävä - Kysymys on... Moodlesta aiemman vuoden tentistä joku kysymys (kysymys 9/48 kevään 2021 tentistä) - Kellotetaan 1 minuutti aikaa tehtävän lukemiseen. - Kellotetaan 1 minuutti aikaa siihen, että jokainen miettii hiljaa itselleen vastaukset - Ryhmäkeskustelu 2 minuuttia: Käykää läpi kaikkien omat vastaukset. Neuvotelkaa siitä, mikä niistä ehkä on eniten oikein. - Yhteinen koonti: Kerätään luentotallenteelle ehdotuksia vastauksista. Varmistaan myös oikea vastaus ja että lopulta kaikki osaisivat tehdä tällaisen tehtävän tentissä täysillä pisteillä. Tässä on täydellisyyden vuoksi tehtävä ja siihen liittyvä ohjeteksti kopioituna: Tutkittava esimerkki tehtäviin 9–10: Kurssin luennoilta ja demoista tutussa ympäristössä (Linux,bash) tehty yksittäinen, POSIX-syntaksin mukainen komentorivi: arg echo arg echo | arg | grep -v -i "arg echo" | arg > echo Tehtävä 9: Montako komentoa shell yrittää käynnistää koko rivin suorittamiseksi? **** Ryhmien vastaukset ja keskustelu Muistiinpanot ryhmäkoonnista: - Mutu-tuntumalla yrittää 4 komentoa - Nopeesti laskettuna 4 ehkä - en tiiä, on vaikeasti tulkittava - 4, perusteella että "komento, argumentit, tolppa, komento, argumentit, tolppa, ... ja lopussa ohjataan tiedostoon". **** Oikeaksi tarkoitettu vastaus ja logiikka sen takana Luentotallenteelle selitys ja logiikka, jolla tavoiteltu oikea vastaus on selvitettävissä. (Yritetään muistaa ja toteuttaa aiempien vuosien palaute: Mallivastauksen käsittely voidaan tehdä nopeasti. Tänään ei tosin ollut pakko, kun oltiin ensimmäistä kertaa tärpin parissa ja osa porukasta jäi vielä vapaaehtoisesti yliajalle käsittelemään sitä) ** Luento 12: (pe 3.5.2024) (P/J) Tärppejä lisää *** Tämän päivän agenda Ryhmätyöpainotus: tenttitärppejä, muistiinpanojen vertailua ja kysymyksiä . *** Infot keväälle 2024 - Demo 4 tarkastettu kaikilta palauttaneilta tämän päivän mittaan - Käyttäkää ensi viikon Open labrapäivät hyödyksi. Kysymyksiä ylös, niin muistat kysyä! Tekemisen haasteita on paras näyttää käytännössä ruutujaolla tai mikroluokassa ruudulta. *** Seuraava ennakkotehtävä (sama kuin eilen todettiin) Lukemista: - Demo 5 ohjeteksti - Monisteen luvut 9-10 Katselemista: - Aihepiirivideot monisteen koodiliitteessä olevista esimerkeistä. Näiden tavoite on tukea teoriaosuuden ymmärtämistä. Tekemistä: - Demo 4b valmiiksi ja palautus + asioiden sisäistäminen tähän astisesta. - Demo 5 työn alle. *HUOMAUTUS:* Demo 5:n katselu voi auttaa myös demo 4b:n ymmärtämistä! Eli niiden tekemisjärjestystä voi koettaa vaihtaa tai yhdistää toisiinsa, jos tuntuisi olevan hyödyksi itselle. - Omatoimisia kokeiluja, havainnekuvien piirtelyä ja niiden kautta yhteyksien etsimistä teorian, käytännön ja rajapintadokumentaatioiden välille. - Tarkennusta tai rautalankaa vaativien kysymysten listaamista ylös, jotta voidaan vääntää rautalankaa niistä. Kestomuistutus: 5 opintopistettä 8 viikossa tarkoittaa keskimäärin 16-17 tuntia viikossa tehokasta tekemistä. Muista tauot ja lepo, koska muuten ne varsinaiset tekemisen hetketkään eivät ole niin tehokkaita kuin voisivat olla! *** Aihepiiri: Tsemppausta kevään 2024 toteutuksen tekijöille Paikan päällä pienryhmien lämmittely fiiliskierroksen merkeissä Kerätään vähän fiiliksiä yhteen myös koko porukan kesken: - Joku ryhmä hyppäsi jo asiaankiin. - Toisella ryhmällä itse asia vaikutti tunteisiinkin. - Kurssista puhuttiin kolmannessakin ryhmässä Havaintoja: - Demo 4b aiheutti päänvaivaa aamulla - Monisteen luku 4 tuli aiemmin luettua huolella, mutta tuntuu, että ilmeisesti ei tullut syväopittua sitä. MUTTA on MAHTAVAA päästä vetämään tuskassa epämukavuusalueella! - Linkkivinkki: GNU Assembler examples ( https://cs.lmu.edu/~ray/notes/gasexamples/ ) *** Tauko 14 minuuttia. Jatketaan tasan 11:10 *** Tenttitärppi nro 2 Tässä kohtaa kevään 2024 toinen tenttitärppi. **** Kevään 2024 menettely "Näätäilyä" eli luentotilaisuuteen kytkettyä ryhmäkeskustelua on kokeiltu erilaisin tavoin useiden vuosien ajan inkrementaalisti. Keksitään pyörä uudelleen jollain tähän kevääseen sopivalla tavalla. Raamit: - Yksin-ryhmissä-kaikki -menettely; sama sukka sopii joskus moniinkin jalkoihin. - Saadaan kuvaa omasta ja kaverien oppimisen vaiheesta *ilman suorituspaineita*; kokonaiskuva välittyy tallennettujen osioiden kautta myös kotikatsomoihin - Simuloidaan tenttiä, jolla kevään 2024 opintojaksosta tulee lopuksi arvosana. **** Protokolla: - Kolmen hengen ryhmät lähellä istuvien kanssa. - 3*30 sekunnin nimi- ja fiiliskierros, jotta keskustelu lämpenee. (voidaan tehdä myös session aluksi, ei tarvitse joka kysymyksen kohdalla lämmitellä uudelleen) - Päivän tenttitärppi yksin-ryhmissä-kaikki -menettelyllä (seuraava kohta). - Oikean vastauksen takana oleva ajatuksenkulku **** Tehtävä - Kysymys on... Moodlesta aiemman vuoden tentistä joku kysymys (kysymys 6/48 kevään 2021 tentistä) - Kellotetaan 1 minuutti aikaa tehtävän lukemiseen. - Kellotetaan 1 minuutti aikaa siihen, että jokainen miettii hiljaa itselleen vastaukset - Ryhmäkeskustelu 2 minuuttia: Käykää läpi kaikkien omat vastaukset. Neuvotelkaa siitä, mikä niistä ehkä on eniten oikein. - Yhteinen koonti: Kerätään luentotallenteelle ehdotuksia vastauksista. Varmistaan myös oikea vastaus ja että lopulta kaikki osaisivat tehdä tällaisen tehtävän tentissä täysillä pisteillä. Tässä on täydellisyyden vuoksi tehtävä ja siihen liittyvä ohjeteksti kopioituna: Ohje tehtävään: Yhdistä lauseen loppua vastaava kirjain numeroituun alkuun siten, että lause on totta. Alkuihin on yksi, yksikäsitteinen, oikea loppu. Jokainen loppu voi sopia useampaan alkuun tai ei yhteenkään. Tutkitaan prosessien tilasiirtymiä. Valitse oikea vaihtoehto: Prosessi siirtyy User running -tilasta Kernel running -tilaan, ... A) kun prosessori siirtyy keskeytyksen tai käyttöjärjestelmäkutsun käsittelyyn. B) kun tapahtuu paluu käyttöjärjestelmäkutsun tai keskeytyksen käsittelijästä (esim. AMD64:n konekielikäsky sysret tai iret). C) kun prosessi on tehnyt pyynnön esim. lukeakseen merkkejä tiedostosta, eikä luettava data ole vielä saapunut fyysiseltä laitteelta toimitettavaksi prosessille saakka. D) kun käyttöjärjestelmän vuorontaja siirtää suoritukseen toisen prosessin, vaikka nykyinenkin prosessi pystyisi jatkamaan laskemista jo seuraavassa konekielikäskyssään. **** Ryhmien vastaukset ja keskustelu Muistiinpanot ryhmäkoonnista: - Oltiin a-vaihtoehdossa, mutta ei 100%-varmasti. Mielessä kävi myös b ja d. - Vahvin arvaus a, mutta muitakin vaihtoehtoja oli; joku mainitsi d:n. Aggressiivista puolustamista ei vielä nähty. - Yhtä mieltä a:sta, koska "Kernel Running" on käyttöjärjestelmätila, ja a- ja b-vaihtoehdoissa puhutaan käyttöjärjestelmäkutsusta, muissa ei. Ja a ja b ovat eri suuntaan meneviä. (a:ssa "siirtyminen", b:ssä "paluu") **** Oikeaksi tarkoitettu vastaus ja logiikka sen takana Luentotallenteelle selitys ja logiikka, jolla tavoiteltu oikea vastaus on selvitettävissä. (Yritetään muistaa ja toteuttaa aiempien vuosien palaute: Mallivastauksen käsittely voidaan tehdä nopeasti.) P *** Tenttitärppi nro 3 Tässä kohtaa kevään 2024 kolmas tenttitärppi. **** Kevään 2024 menettely "Näätäilyä" eli luentotilaisuuteen kytkettyä ryhmäkeskustelua on kokeiltu erilaisin tavoin useiden vuosien ajan inkrementaalisti. Keksitään pyörä uudelleen jollain tähän kevääseen sopivalla tavalla. Raamit: - Yksin-ryhmissä-kaikki -menettely; sama sukka sopii joskus moniinkin jalkoihin. - Saadaan kuvaa omasta ja kaverien oppimisen vaiheesta *ilman suorituspaineita*; kokonaiskuva välittyy tallennettujen osioiden kautta myös kotikatsomoihin - Simuloidaan tenttiä, jolla kevään 2024 opintojaksosta tulee lopuksi arvosana. **** Protokolla: - Kolmen hengen ryhmät lähellä istuvien kanssa. - 3*30 sekunnin nimi- ja fiiliskierros, jotta keskustelu lämpenee. (voidaan tehdä myös session aluksi, ei tarvitse joka kysymyksen kohdalla lämmitellä uudelleen) - Päivän tenttitärppi yksin-ryhmissä-kaikki -menettelyllä (seuraava kohta). - Oikean vastauksen takana oleva ajatuksenkulku **** Tehtävä - Kysymys on... Moodlesta aiemman vuoden tentistä joku kysymys (kysymys 25/48 kevään 2021 tentistä) - Kellotetaan 1 minuutti aikaa tehtävän lukemiseen. - Kellotetaan 1 minuutti aikaa siihen, että jokainen miettii hiljaa itselleen vastaukset - Ryhmäkeskustelu 2 minuuttia: Käykää läpi kaikkien omat vastaukset. Neuvotelkaa siitä, mikä niistä ehkä on eniten oikein. - Yhteinen koonti: Kerätään luentotallenteelle ehdotuksia vastauksista. Varmistaan myös oikea vastaus ja että lopulta kaikki osaisivat tehdä tällaisen tehtävän tentissä täysillä pisteillä. Tässä on täydellisyyden vuoksi tehtävä ja siihen liittyvä ohjeteksti kopioituna: Ryhmäkeskustelu 3 minuuttia. Ohje tehtävään: Yhdistä lauseen loppua vastaavat kirjaimet (vähintään yksi, mutta mahdollisesti useita) lauseenalun perään siten, että muodostuvat lauseet vastaavat todellisuutta. Vastauksessa on oltava listattuna kaikki todellisuutta vastaavat vaihtoehdot. Valitse oikea vaihtoehto (mahdollisesti useita sopivia): Kurssilla käsitelty käyttöjärjestelmän rajapintastandardi POSIX (vuoden 2018 versio) määrää, että ... A) Konekielisen aliohjelman ensimmäinen parametri välitetään rekisterissä RDI, jos se on tyypiltään kokonaisluku. B) shell-komento echo tulostaa argumenttinsa. C) järjestelmäkutsu exit() tapahtuu sijoittamalla rekisteriin RAX luku 60 ja suorittamalla syscall-konekielikäsky. D) shell-komennolla kill voi lähettää prosessille signaalin. **** Ryhmien vastaukset ja keskustelu Muistiinpanot ryhmäkoonnista: - bd TAI b,d - bd toiseltakin ryhmältä - bd kolmanneltakin ryhmältä - Perusteluina: kahdessa muussa enemmän konekielitason toteutusta, kun POSIX määrää sitä, mitä tapahtuu eikä että miten. **** Oikeaksi tarkoitettu vastaus ja logiikka sen takana Luentotallenteelle selitys ja logiikka, jolla tavoiteltu oikea vastaus on selvitettävissä. (Yritetään muistaa ja toteuttaa aiempien vuosien palaute: Mallivastauksen käsittely voidaan tehdä nopeasti.) ** Luento 13: (ke 8.5.2024) (P/J) Muistiinpanojen vertailua ja olan yli havaittua *** Infot keväälle 2024 - Open labrapäivissä on saatu hommia hyvin eteenpäin. Ainakin yksi labrapäivä mahtui vielä keväälle, 14.5.2024 klo 8:30-10:00. - Demot 1-4 tarkastettu; etenemme demo 4b:n itsenäisten suoritusten tarkastamista kohti asap. Tilanne pidemmällä kuin viime vuonna tähän aikaan keväästä. - Demo 5 tarkastetaan aikaisintaan ensi viikolla - Demo 6 saa alkaa ilman muuta jo tekemään. Palautuslaatikko aukeaa todennäköisesti vasta ensi viikolla, mutta voit tehdä vaikka valmiiksi asti jo ennen sitä. Muista, että tänä vuonna tehtävä ei ole pakollinen (mutta täysiin kurssipisteisiin se tarvitaan). Videot auttavat vaiheittain, ja viimeinen jos tarvitaan, niin siihen pitää rohjeta kysyä polkuavain ihan opettajalta. Sähköposteihin reagoimisessa tällä hetkellä noin 3 arkipäivän viive. *** Päivän ja viikon päätavoitteet: - Kaikki demot nyt auki, kaikki videot käytettävissä. Tehdään lisää tarpeen mukaan - läsnäolijat keväällä 2024 ehtivät vaikuttaa siihen, mitä tehdään. Aikakoneella tallenteita seuraaville kaikki on jo valmista. *** Jäljellä olevaa tekemistä Lukemista: - Monisteen luvut 11-12 (viimeinen osio "tenttialueeseen"; loput luvut ovat vapaaehtoista lisälukemistoa) - Aiempiin palailua uusin silmin. Kokonaisuuksien hahmottamista. - Demo 6 ohjeteksti Katsomista: - Kaikki videot, mitä tehty on. Tekemistä: - Demo 5 valmiiksi ja palautus + asioiden sisäistäminen - Koodiliitteen esimerkkeihin tutustumista. Uteliasta kokeilemista. - Demo 6 oman valinnan mukaan. Vuonna 2024 se on siirretty vapaaehtoiseksi siten kuin ensimmäisellä luennolla tiedotettiin. Kestomuistutus: 5 opintopistettä 8 viikossa tarkoittaa keskimäärin 16-17 tuntia viikossa tehokasta tekemistä. Muista tauot ja lepo, koska muuten ne varsinaiset tekemisen hetketkään eivät ole niin tehokkaita kuin voisivat olla! *** Keskustelutuokio Kokeiltiin lähteä päivän teeman mukaisesti keskustelut edellä liikkeelle. Lämmittely "fiiliskierros" noin klo 14:26 asti. Yhteenvetoa: - Läksyt mielessä; demo 4b ja 5 työn alla. - Vahingossa asiaan jo toisessakin ryhmässä. Demo 4b tehty - alkuun pääseminen oli haastavaa, kun esimerkkejä oli melko niukasti. - Demo 5 jo työn alla. Sen tekeminen auttoi myös hahmottamaan aiempia asioita monisteessa. - Luentomatskuista tuntuu saavan enemmän irti sen jälkeen, kun välillä kokeilee käytännössä esimerkiksi demojen parissa. Ensimmäisellä lukukerralla ei vielä hahmotu, mitä asiat ihan oikeasti tarkoittavat. Ryhmäkeskustelu: - Mitä voisimme nyt tehdä tunnin verran paikan päällä, mistä olisi hyötyä? Käytettävissä on 2 opettajaa, 10 viisasta päätä, tietokoneita, videotykki, Internet ... Yhteenveto: - Vaikea päättää, mitä tarvitaan... Haluttaisiin assemblerista hahmottaa yleiskuvaa RIP:stä, eli mikä päivittää RIP:tä. - Luku 10 päättyy tenttitärppiin, jonka voisi vetää Kylli-täti -tyyliin, eli mistä mikäkin luku tulee. - Varsinaisesti esimerkiksi ei noussut esiin tiettyä asiaa, mikä olisi jäänyt muita epäselvemmäksi materiaaleissa. Sitten tauko, jonka jälkeen toteutetaan toiveista sen verran kuin pystytään!! *** Tauko 17 min. Studioyleisö paikalle ja hereille jo ennen tauon päättymistä! 15:10 nauhoitetaan. *** Aihepiiri: Suoritussykli, RIP-rekisteri Herätteenä studioyleisön paikan päällä esittämä kysymys: "Haluttaisiin assemblerista hahmottaa yleiskuvaa RIP:stä, eli mikä päivittää RIP:tä" - Ristiviittaus aiemmin tuotettuihin aihepiirivideoihin tästä. - Vilkaistaan monistetta aiheen tiimoilta - Koetetaan saada vastausta aikaan - Studioyleisö, mukaan lukien kysyjät, tarkkana, että saadaan hyödyllistä materiaalia! ** (hep, hep, helatorstai "syö" yhden luentokerran!!) Välissä ennen seuraavaa kertaa on kuitenkin 3 arkipäivää, eli tasainen tahti tarkoittaa kyllä tasaista tekemistä tälläkin välin! ** Luento 14: (ke 15.5.2024) (P/J) Vesivärikissaluento *** Infot keväälle 2024 - Tavoitetilanne: Demot 1-5 saisi mielellään olla tarkastettu. Mikä meillä on tilanne? Vaiheessa. Ilmeisesti tiedämme, mitä teemme tänään illalla.. Mahdollisimman pian tapahtuu. - Ylihuominen ennakkotentti saisi olla luotuna niitä varten, jotka hakevat toukokuun loppuun mennessä opiskelupaikkaa, johon tenttitulos tarvitaan. Mikä meillä on tilanne? Tämä on nyt tehty! Olet saanut asiasta sähköpostia juuri äsken, tai sitten aiempi keskustelu on mennyt vahingossa roskakoriin ja joudut vielä kerran muistuttamaan siitä. Muillekin *viimeinen kuulutus:* Jos olet osallistumassa yhteishakuun tai muuhun vastaavaan, missä tarvitset liitteeksi todistuksen tämän opintojakson suorittamisesta jo ennen ensimmäistä massatenttiä (+14 vuorokauden tarkastusaika), niihin siihen on *yksi ainokainen* mahdollisuus, *ylihuomenna 17.5.2024 klo 14:15-18:15* ja siitä pitää sopia etukäteen sähköpostilla Paavon kanssa, jotta pääset Moodlessa tenttiryhmään! Eli meiliä nyt heti laittamaan, jos tarvitset tämän! - Tämä ja 2 kertaa "Luento"-nimisiä tapaamisia jäljellä ennen tenttiä. Käytetään aika tehokkaasti, eli opettaja lopettaa jaarittelun ja menee asiaan? *** Tämän luennon tavoite Näistä se, mitä tänään ehditään. Myöhemmin lisää se, mitä ehditään: - Viime kerralla pyydetyt aiheet loppuun - Demo 4 jälkivideo - Demo 4b jälkivideo, olettaen että tarkastukset jo tehty (on) - Demo 5 jälkivideo, olettaen että tarkastukset jo tehty (ei ole, eli tämä olisi pläni perjantain ensimmäiseksi ohjelmanumeroksi). - Tenttitärppejä tai muuta, mitä halutaan. *** Jäljellä olevaa tekemistä Lukemista: - Monisteen luvut 11-12 (viimeinen osio "tenttialueeseen"; loput luvut ovat vapaaehtoista lisälukemistoa) - Kokonaisuuden hahmottamista - Demo 6 ohjeteksti Katsomista: - Kaikki videot, mitä tehty on Tekemistä: - Demo 5 valmiiksi ja palautus + asioiden sisäistäminen - Demo 6 oman valinnan mukaan. Vuonna 2024 se on siirretty vapaaehtoiseksi siten kuin ensimmäisellä luennolla tiedotettiin. Kestomuistutus: 5 opintopistettä 8 viikossa tarkoittaa keskimäärin 16-17 tuntia viikossa tehokasta tekemistä. Muista tauot ja lepo, koska muuten ne varsinaiset tekemisen hetketkään eivät ole niin tehokkaita kuin voisivat olla! *** Aihepiiri: Virtuaalimuistinhallinta leluesimerkin avulla Herätteenä studioyleisön paikan päällä esittämä kysymys: "Luku 10 päättyy tenttitärppiin, jonka voisi vetää Kylli-täti -tyyliin, eli mistä mikäkin luku tulee." Tämä aihepiiri muodostaa jatkumon aiheen "Suoritussykli ja RIP:n muuttuminen" herättämän jatkokysymyksen kanssa. - Tämä aihe vetää aika hyvin yhteen monta asiaa matkan varrelta. Kerätään palaset ja pistetään ne yhteen, piirrellen kuin Kylli-täti. - Linux-palvelimella voi tutkia oikeita karttoja /proc/PID/smap ja komennolla pmap ** Luento 15: (pe 17.5.2024) (J) Asiaa eteenpäin *** Infot keväälle 2024 Ajankohtaista: - Porukalla on jo demo 6 työn alla. Se on kuulemma mukava! - Toukokuun lopun ja kesäkuun alun aikatauluista on ajankohtaista ilmoitella: + Tentti viikon päästä + Opettajien ja vertaistukikanavan apua on vielä tarjolla hyvin, koska periodi ei ole vielä ohi!! + Kesäkuun alusta alkaen tulee olemaan paljon harvemmin tarjolla vastauksia kysymyksiin tai demotarkastuksia ja sitä kautta palautteita. + Itsenäinen suorittelu voi kuitenkin hyvin jatkua. *** Tenttitärppi: Tehtävä liittyen koodiesimerkkiin ('minish.c') Tässä kohtaa kevään 2024 tenttitärppi. **** Kevään 2024 menettely "Näätäilyä" eli luentotilaisuuteen kytkettyä ryhmäkeskustelua on kokeiltu erilaisin tavoin useiden vuosien ajan inkrementaalisti. Keksitään pyörä uudelleen jollain tähän kevääseen sopivalla tavalla. Raamit: - Yksin-ryhmissä-kaikki -menettely; sama sukka sopii joskus moniinkin jalkoihin. - Saadaan kuvaa omasta ja kaverien oppimisen vaiheesta *ilman suorituspaineita*; kokonaiskuva välittyy tallennettujen osioiden kautta myös kotikatsomoihin - Simuloidaan tenttiä, jolla kevään 2024 opintojaksosta tulee lopuksi arvosana. **** Protokolla: - Kolmen hengen ryhmät lähellä istuvien kanssa. - 3*30 sekunnin nimi- ja fiiliskierros, jotta keskustelu lämpenee. (voidaan tehdä myös session aluksi, ei tarvitse joka kysymyksen kohdalla lämmitellä uudelleen) - Päivän tenttitärppi yksin-ryhmissä-kaikki -menettelyllä (seuraava kohta). - Oikean vastauksen takana oleva ajatuksenkulku **** Tehtävä - Kysymys on... Moodlesta aiemman vuoden tentistä joku kysymys (kysymys 35/48 kevään 2021 tentistä) - Kellotetaan 2 minuuttia aikaa tehtävän lukemiseen. - Kellotetaan 1 minuutti aikaa siihen, että jokainen miettii hiljaa itselleen vastaukset - Ryhmäkeskustelu 2 minuuttia: Käykää läpi kaikkien omat vastaukset. Neuvotelkaa siitä, mikä niistä ehkä on eniten oikein. - Yhteinen koonti: Kerätään luentotallenteelle ehdotuksia vastauksista. Varmistaan myös oikea vastaus ja että lopulta kaikki osaisivat tehdä tällaisen tehtävän tentissä täysillä pisteillä. Tässä on täydellisyyden vuoksi tehtävä ja siihen liittyvä ohjeteksti kopioituna: Tutkittava esimerkki tehtäviin 35–37: monisteessa esitetyn kaltainen minimalistinen shell-ohjelma (kommentit poistettu, rivit numeroitu, näytetty vain olennainen toimintopätkä): 1 while(true){ 2 luekomento(komento, argumentit); 3 pid = fork(); 4 if (pid > 0) { 5 status = wait(); 6 } else if (pid == -1) { 7 ilmoita("fork() epäonnistui!"); 8 exit(1); 9 } else { 10 exec(komento, argumentit); 11 ilmoita("Komentoa ei voitu suorittaa!"); 12 exit(1); 13 } 14 } Kysymys 35: Väite: Aina, kun rivi 4 tulee suoritukseen, se tapahtuu ainoastaan fork() -kutsun luomassa lapsiprosessissa. (A=kyllä; B=ei) **** Ryhmien vastaukset ja keskustelu Muistiinpanot ryhmäkoonnista: - Ehdotettu A (kyllä), koska oli sellainen fiilis. - Ehdotettu A (kyllä), koska fork() kutsu asettaa pid:n ja sitten tulee if-ehto. - Ehdotettu B (ei), koska fork() on järjestelmäkutsu, joka luo lapsiprosessin vanhempiprosessin rinnalle ja ne molemmat jatkavat sen jälkeen suoritusta itsenäisesti. - Ehdotettu B (ei), koska "raamatussa" (eli luentomonisteessa) sanottiin, että "fork() palauttaa vanhempiprosessin kontekstissa ..." niin tästä päättelin, että sielläkin jotain tapahtuu vielä fork()-kutsun jälkeen. - Syntaksin perusteella näyttää siltä, että fork() vaan kutsutaan, ja sen jälkeen suoritus jatkuu normaalisti. - Näyttää siltä, myös muun toimintalogiikan suhteen, eli pid on paikallinen muuttuja, jota ei viedä fork()-funktiolle ja jota seuraavalla rivillä käytetään tämän ohjelmamoduulin tarpeisiin. HUOMAA että kaksi viimeistä perustelua eivät pelitä esimerkiksi exec() tai exit() -käyttöjärjestelmäkutsujen kohdalla!! Tästä lisää yksityiskohtia videolla! **** Oikeaksi tarkoitettu vastaus ja logiikka sen takana Luentotallenteelle selitys ja logiikka, jolla tavoiteltu oikea vastaus on selvitettävissä. (Yritetään muistaa ja toteuttaa aiempien vuosien palaute: Mallivastauksen käsittely voidaan tehdä nopeasti.) ** Luento 16: (ke 22.5.2024) (P/J) Viimeinen luento *** Infot keväälle 2024 - Jäljellä on tämän lisäksi enää ylihuominen tentti. - Yritetään saada videotallenteet ulos pian luennon jälkeen, jotta ennen perjantain tenttiä ehtii vilkaista ne läpi. - Demo 6 tarkastetaan tentin jälkeen, jolloin myös sen tekemiseen voi vielä palata. - Kertaus ja täsmennyksiä hyppyrin nokalla: + Tentti 8:15-12:15. Muista pyytää tarvittaessa lisäaikaa - toimita siihen oikeuttava dokumentti. + Tentin ja demojen tarkastukset, suoritusmerkintöjen aikataulut: Demo 6 ehtii vaikuttaa arvosanaan, kun teet sen 13 vuorokauden sisällä tentistä. Arvosanat merkitään 14 vuorokauden kuluttua tentistä. - Sitten siihen asiaan! *** HUOM: Alkutallenteen jälkeen kysyttyä, lisätty jälkikäteen Voiko demoja 1-5 palautella vielä tentin jälkeen? - Kyllä voi. Kunkin tentin jälkeen arvostelu ja arvosanojen rekisteriin vienti tapahtuu 14 vuorokauden päästä, minkä aikaa voi jatkaa demojen tekemistä normaalisti. *Huomaa:* Tarkastuksia ja mallivastauksia ei enää luvata kesäkaudella ajantasaisesti! Voi olla, että kaikki tulee kertatarkastuksena lopuksi. Voiko arvosanaa korottaa? - Voi ilman muuta. Aiheeseen liittyvä speksi on Tutkintosääntö, joka määrittää asian kaikkien opintojaksojen osalta: https://www.jyu.fi/fi/opiskelijalle/kandi-ja-maisteriopiskelijan-ohjeet/opintoja-ohjaavat-saadokset-ja-maaraykset/tutkintosaanto Sieltä 40 § Suoritusmahdollisuudet. Sisussa ei taida vielä olla automatiikkaa hyväksytyn suorituksen korottamiseen, joten muista hoidattaa arvosanan korotus rekisteriin sähköpostitse opettajan kanssa. Saatetaan tarvita toimistohenkilönkin apua, että saadaan korostus rekisteriin. Tutkintosäännön puitteissa ja rajoitteilla siihen ilman muuta on lupa tällä ja muilla opintojaksoilla! *** Tämän luennon tavoite - Alkuun lyhyesti kuulumiskeskustelu ja paikalla olevien mahdolliset toiveet, mitä voitaisiin 2 päivää ennen tenttiä vielä tehdä: + Pienempiä kysymyksiä mielessä. Hienoa! Kun kyse on detaljeista, jotka ei kuulu niin sanottuun isoon kuvaan, niin paras paikka ja aika näille on vertaistukikanava ja ensi viikko. Katotaan silloin mistä speksistä mitäkin löytyisi. + Pinokehyksen rakentamisesta tarkentava kysymys, että onko sen lisäksi tavallista tai "kaunista" pushailla ja poppailla pinon kautta tavaraa aliohjelman sisällä? Vai onko se purkkavirittelyä? + Kun varataan muistia dynaamisesti "malloc(koko)" tai "new Luokka()", niin mikä ero on siihen, että varataan pinosta? - Mahdollisuus: Tuotetaan tähän asti hienoimman studioyleisön läsnäollessa salaiset palautevideot Demoihin 4, 4b ja 5. - Jos on aikaa, niin muita aiheita. Kertaukseen ja yhteenvetoon liittyviä voisi kuvitella luontevaksi tässä vaiheessa. *** Tauko 14 minuuttia. Tykitetään loppuaika tasan 15:15 alkaen. *** Demo 4 jälkikäteisvideo - Tehtäväohje - Speedrun - Yleisökysymykset *** Orientoitumistauko ja staminatarkistus klo 16. Ja sitten vielä jatkettiin sekä läsnä- että etäyleisön kanssa. *** Demo 4b jälkikäteisvideo - Tehtäväohje - Speedrun - Yleisökysymykset *** Demo 5 jälkikäteisvideo - Tehtäväohje - Speedrun - Yleisökysymykset ** Tenttiaika: (pe 24.5.2024) (P/J) Klo 8:15-12:15 kotitentti! Tämä löytyy tentin alkaessa Moodlesta. Olemme valmistautuneet tärpein. _Hyvin se menee, ja uusintojakin on tulossa_. Ei siis yhtään mitään hätää! * Siinäpä oli Käyttöjärjestelmät 2024. Käyttöjärjestelmät palaa vuonna 2025, pilvipalveluiden kera ja koodilla ITKA2030. Odotettavissa aikakoneella vietyjä aihepiirivideoita ja mahdollisesti uudenkarhea "Demo 7" samoista jutuista pilvi- / konttikontekstissa. Tai sitten jotakin aivan muuta. Alla asioita, joita ei ehditty käsitellä, mutta ei varmaan ollut tarpeenkaan. ** Aiemmasta tokavikasta luennosta backlogia (Vuoden 2023 toteuma alla suunnitelmaksi) Teorian ja käytännön välisten yhteyksien etsimistä koodiliitteen esimerkkien, debuggerin, havainnekuvien ja speksien kautta. *** Infot keväälle 2023 - Jäljellä on tämän lisäksi 2 luentoa, 1 Open labrapäivä ensi viikon tiistaina klo 16.30-18.15 ja tentti! - Lukemisto ja tekemistö on nyt kokonaan työn alla: Luentomonisteen luvut 1-12 ja demot 1-6. Kokonaisuuden hahmottaminen. *** Tämän luennon tavoite - Tässä välissä tiukkaa asiaa, konkretiaa ja rautalankaa. - Päivän lopuksi tiedetään, mitä seuraavaksi pitää tehdä ennen seuraavia yhteisiä tapaamisia: Hedelmien keräämistä pohjatyön jälkeen eli ymmärryksen lisäämistä ja valmistautumista tenttiin. Demo 6 työn alla - sitä saa palauttaa sitä vielä tentin jälkeen, eli voi keskittyä teoriapuoleen tässä kohtaa! *** Asiaa järjestelmällisesti eteenpäin: Koodiliitettä ja monistetta Edetään demoissa aiemmin nähtyjen ja monisteen koodiliitteessäkin olevien konkreettisten esimerkkikoodien kautta, loogisessa järjestyksessä. **** Säikeistä saikeiden_tarve.c saikeet.c Katso esimerkkien briiffaus videolta. Seinäkelloaika lyhenee, jos tehtävän voi hajauttaa moneen prosessoriytimeen rinnakkain. Katsellaan säikeitä myös ps -komennon avulla (vipu -L) sekä luentosalin tietokoneella esimerkiksi Chrome-nettiselaimessa ja Windowsin prosessinhallinnassa, jos opettajan perustunnuksen käyttöoikeudet riittävät (eivät välttämättä riitä..). Omalla tietokoneella voi kokeilla oman tietokoneen graafisia työkaluja prosessin- ja säikeidenhallintaan, nimeltään tyyliin "Task Manager" / "Tehtävienhallinta" tai vastaavaa... *** Tauko sopivassa välissä Jatkuu 15.22 **** Prosesseista: Signaalinkäsittely ja kill sigesim.c Katso briiffaus videolta. Koetetaan näyttää näppäilyjä ja kill -kuorikomennon käyttelyä. ** (Vuoden 2023 viimeisen luennon toteuma alla suunnitelmaksi) *** Asiaa järjestelmällisesti eteenpäin: Koodiliitettä ja monistetta **** Aihepiiri: Debuggeri voimatyökaluna kutsupinon tutkimiseen rekursiossa rekursio.c **** Minikuori: prosessin luonti ja binäärin käynnistys POSIX-tavalla minish.c Uuden prosessin luonti haaroittamalla fork() -kutsulla, suoritettavan ohjelmatiedoston lataaminen ja käynnistäminen meneillään olevan prosessin tilalle exec() -kutsulla ja prosessin lopetus exit() -kutsulla. minish.c *** Tauko sopivassa välissä Jatketaan tasan 15:15. *** Yksi aihepiirivideo tässä välissä vielä **** Synkronointi 1/3: Kilpajuoksu ja MutEx race.c Korjataan lennosta muokkaamalla. Jos opettaja eksyy, voi hän luntata korjatuista malleista (race_fixed_mutex.c ja race_fixed_sem_mutex.c) Katso briiffaus videolta. *** Tenttitärppi yksin-ryhmissä-kaikki **** Protokolla: - Kolmen hengen ryhmät lähellä istuvien kanssa. - 3*30 sekunnin nimi- ja fiiliskierros, jotta keskustelu lämpenee. - Päivän tenttitärppi yksin-ryhmissä-kaikki -menettelyllä (seuraava kohta). - Oikean vastauksen takana oleva ajatuksenkulku **** Tehtävä - Kysymys on... Moodlesta aiemman vuoden tentistä joku kysymys (kysymys 42-44/48) Esimerkkikoodin perusteella: + Kuinka monta konekielikäskyä ohjelmanpätkän jälki sisältää, ts. kuinka monta käskyä prosessi suorittaa siitä alken, kun käyttöjärjestelmä siirtää kontrollin nimettyyn aloituspisteeseen "_start"? + Mikä on rekisterin RCX sisältö ohjelmanpätkän suorituksen lopuksi? + Mikä on rekisterin RDI sisältö ohjelmanpätkän suorituksen lopuksi? - Kellotetaan 1 minuutti aikaa siihen, että jokainen miettii hiljaa itselleen strategiaa, miten vastaukset olisi mielekästä tentissä tuottaa - Ryhmäkeskustelu 2 minuuttia: Käykää läpi kaikkien omat strategiat. Neuvotelkaa siitä, mikä niistä ehkä on eniten toimiva. **** Ryhmien vastaukset ja keskustelu - Yhteinen koonti: Kerätään luentotallenteelle ehdotuksia ratkaisumallista: + Lähdetään debuggimaisesti käymään läpi koodia. Eli tehdään "pöytätesti" kynän, paperin ja aivojen kanssa. (Pelkkiin aivoihin ei yleensä kannata luottaa, jos muistissa pidettäviä asioita on enemmän kuin muutama. Eli suosiolla kynä, paperi ja sormet apuun!!) + Käytetään ihan oikeata debuggeria halavassa/jalavassa. Molemmat keinot ovat erittäin hyviä! Molemmissa pitää olla huolellinen ja soveltaa huolellisuuden lisäksi muitakin tärkeitä osaamistavoitteita. **** Oikeaksi tarkoitettu vastaus ja logiikka sen takana Videotallenteella (kevään 2023 salaisen polkuavaimen takana): Varmistettiin molemmilla tavoilla oikea vastaus ja että lopulta kaikki osaisivat tehdä tällaisen tehtävän tentissä täysillä pisteillä. Varmalta vaikuttaa!! * Suunnitelmaa kevään 2024 lähitulevaisuuteen ** Ideapankkia aihepiirivideoiksi 2024 Tähän voisi kerätä ideoita / toiveita kokonaan uusiksi tai aiempaa toteutusta paremmiksi aihepiirivideoiksi *** Tenttitärppi (tyhjä sapluuna copy-paste-modifyä varten) Tässä kohtaa kevään 2024 tenttitärppi. **** Kevään 2024 menettely "Näätäilyä" eli luentotilaisuuteen kytkettyä ryhmäkeskustelua on kokeiltu erilaisin tavoin useiden vuosien ajan inkrementaalisti. Keksitään pyörä uudelleen jollain tähän kevääseen sopivalla tavalla. Raamit: - Yksin-ryhmissä-kaikki -menettely; sama sukka sopii joskus moniinkin jalkoihin. - Saadaan kuvaa omasta ja kaverien oppimisen vaiheesta *ilman suorituspaineita*; kokonaiskuva välittyy tallennettujen osioiden kautta myös kotikatsomoihin - Simuloidaan tenttiä, jolla kevään 2024 opintojaksosta tulee lopuksi arvosana. **** Protokolla: - Kolmen hengen ryhmät lähellä istuvien kanssa. - 3*30 sekunnin nimi- ja fiiliskierros, jotta keskustelu lämpenee. (voidaan tehdä myös session aluksi, ei tarvitse joka kysymyksen kohdalla lämmitellä uudelleen) - Päivän tenttitärppi yksin-ryhmissä-kaikki -menettelyllä (seuraava kohta). - Oikean vastauksen takana oleva ajatuksenkulku **** Tehtävä - Kysymys on... Moodlesta aiemman vuoden tentistä joku kysymys (kysymys xx/48 kevään 2021 tentistä) - Kellotetaan 1 minuutti aikaa tehtävän lukemiseen. - Kellotetaan 1 minuutti aikaa siihen, että jokainen miettii hiljaa itselleen vastaukset - Ryhmäkeskustelu 2 minuuttia: Käykää läpi kaikkien omat vastaukset. Neuvotelkaa siitä, mikä niistä ehkä on eniten oikein. - Yhteinen koonti: Kerätään luentotallenteelle ehdotuksia vastauksista. Varmistaan myös oikea vastaus ja että lopulta kaikki osaisivat tehdä tällaisen tehtävän tentissä täysillä pisteillä. Tässä on täydellisyyden vuoksi tehtävä ja siihen liittyvä ohjeteksti kopioituna: **** Ryhmien vastaukset ja keskustelu Muistiinpanot ryhmäkoonnista: - kerätään tähän **** Oikeaksi tarkoitettu vastaus ja logiikka sen takana Luentotallenteelle selitys ja logiikka, jolla tavoiteltu oikea vastaus on selvitettävissä. (Yritetään muistaa ja toteuttaa aiempien vuosien palaute: Mallivastauksen käsittely voidaan tehdä nopeasti.) *** Aihepiiri: Vimin ja Emacsin tutoriaalit käyntiin Kuinka opettelet tekstieditorin käytön sen oman tutoriaalin avulla. *** Aihepiiri: Demo 2:n uudistukset vuodesta 2023 vuoteen 2024 Kun ei ehtinyt nauhoittaa ajallaan, niin tämän videon arvo keväälle 2024 vähenee. Ehkä sopiva 2025, jos samoja demoja käytetään yhä? "Emacs tai Vim" palvelinkoneilla, tällä opintojaksolla, ja lentävässä lauseessa kahvihuoneissa. Mutta yleisempää sanelua siitä, mitä pitää käyttää tai ei pidä käyttää yritetään välttää. *** Aihepiiri: rajapintoja muitakin - esimerkkien kytkemistä laajempaan kuvaan Jäännös 2023 Hei maailma -videosta. Joskus aikanaan voisi tehdä tästä erillisen videon, kuten ajatus silloin oli: - Malliksi muita rajapintoja kuin kurssin esimerkkeinä olevat: vaikka ARM-manuaali (erilainen prosessoriarkkitehtuuri), C# library APIs, Java API, OpenGL grafiikkarajapinta, ...muita? Ihan vaan nopeesti malliksi siitä, millaisten asioiden otsikossa tai esipuheen ensimmäisessä lauseessa sanotaan "This is an API / collection of APIs" tai jokin muu "XYX Interface".. *** Kenties: Luentomonisteen teemojen valaisua Vilkaistaisiinko luentomonistetta kevään 2023 meneillään olevan "lukupaketin" kohdilta... Pitäisi saada käytyä muisti ja suoritussykli, koska seuraavaksi tänään aletaan katsella täsmälleen sitä asiaa käytännössä AMD64-prosessorissa. Demo 3:ssa on tarkoitus kokeilla näitä ihan itse. *** Muita aihepiirihaaveita vuodelta 2023 "jos aikaa jää"-kategoriassa Ideakuvastoa sopivista aihepiireistä: - Jokainen speksi voisi ansaita oman täsmäkäsittelynsä? - Leikkitietokoneet? (LMC:stähän onkin jo yksi video; riittänee?) - "Kysytään ChatGPT:ltä" on nykyään aina hyvä aihe.. *** Väliaihepiiri (jo nauhoitettu v 2023 luennon 8 info-osuuteen, sori): .screenrc -asetustiedosto Tämän voisi kenties kaivaa vuoden 2023 tallenteesta erilleen, jos jaksaisi... oli ajankohtainen ja lennosta tehty 8. luennon kohdalla, mutta ehkä hyödyllinen. Käytännön esimerkki sovelluksen asetuksista ja Unix-tyyppisten järjestelmien tiedostoista, joiden nimi alkaa pisteellä. **** Keskustelua paikan päällä Havainto: Näitä taitoja tarvitaan etenkin backend-töissä, mutta myös muualla. Kysymys: - Jos teen asetukset halava-koneella, niin muuttuuko ne pysyvästi? Kyllä, koska mitä vain tehtiin oli, että muutettiin yhden tiedoston sisältöä. Se on pysyvää, kunnes tehdään jokin uusi muutos. - Muuttuuko ne myös jalavalla? Kyllä, koska sama tiedosto samalla verkkolevyllä näkyy kaikissa tietokoneissa, joihin se on kytketty. Esimerkiksi jalavan ja halavan kotihakemisto ja yliopiston Windows-työasemien U: -asema. - Jos suljen screenin, niin katoaako ne asetukset? Ei. Nehän ovat vain yksi tiedosto, jota juuri muutettiin. Ei katoa, jos ei tiedostoa muuteta uudelleen tai hävitetä. - Muuttuko ne mun omalla tietokoneella vai ainoastaan halavalla? Ei muutu niissä tietokoneissa, joissa ei ole kyseinen verkkolevy kytkettynä. Jos omassa koneessa jostain syystä kokeilet screeniä, se lukee asetukset oman tietokoneen levyltä. Verkkolevyn hakemistoa ei kannata kytkeä kotihakemistoksi omassa henkilökohtaisessa tietokoneessa. Yliopiston työasemat ja palvelinkoneet ovat erilainen käyttökohde. *** Ensimmäisellä luennolla käsittelemättä jäänyttä Muistetaanpa vielä, mitä viime kerralla ei ehditty käsitellä, kun luennon alku vähän viivästyi. Ainakin sisältö- ja osaamistavoitekuvaukset. Kollataan livenä netistä: - kurssin kuvaus opinto-oppaasta; myös suhde tulevaisuuden versioon "ITKA2030". - HTML-vedos osaamistavoitteista ja niiden tausta-aineistoista. Käytiin viimeksi, mutta ehkä hiukan lyhyesti. * Vuoden 2023 toteumaa suunnitelmaksi Päivämäärät ja lukumäärä päivitetty kevään 2024 salivarausten mukaiseksi. Kaikki muu sisältö on toistaiseksi yksi-yhteen kopio vuodesta 2023. Tavoitteena oli kiihdyttää alkuvaihe siten, että kertausta tai syvennystä tarvitsevat hoidetaan alussa teho-ohjauksella samalle viivalle niiden kanssa, joilla on runsaammin aiempaa kokemusta esitiedoista. Vaikuttaisi toteutuneen ainakin havaintopiiriin tulleen tiedon perusteella (todettu 2.5.2024). ** Luento 17: (ei mahdu kevääseen 2024) (P/J) Viimeinen luento. (Vuoden 2023 toteuma alla suunnitelmaksi) *** Infot keväälle 2023 - Huomenna on tentti! Kaikki siihen liittyvä on tiedotettu luennoilla ja tallenteissa. Onnea ja osaamista matkaan, mutta ei stressiä! - Tänään vielä tiukkaa asiaa - yritetään kaikin keinoin saada luentotallenne saataville jo täksi illaksi. Myös demo 5 mallivastaus saadaan ainakin ohjeelliseen deadlineen mennessä palauttaneille. - Tänään paukut tentiin ja katse kohti sitä! Demo 6:n ehtii tehdä ja palauttaa tentin jälkeen, vaikka samana päivänä. - Palautemahdollisuus (ja -velvollisuus, kaikilla kursseilla!) Webropolissa - sieltä pitäisi tulla automaattisia viestejä asiasta. *** Tämän luennon tavoite - Ensin tykitetään vielä koodiesimerkkejä. Sitten yksi tenttitärppi vielä. *** Infotallenteeseen vielä tämä: Kevään toteutus oli tässä! Kiitos paikalle saapuneille "studioyleisöille" - toteutimme vielä yliopiston koronan jälkeisiä linjauksia opettamisesta paikan päällä fyysisellä kampuksella. Kiitos myös mielenkiinnosta kotikatsomolle, jossa 80-90% kurssilaisista ilmeisesti seurasivat kevään kulkua. Toteutimme myös IT-tiedekunnan "vanhaa normaalia", jossa tallenteiden kautta voi seurata opetusta ajasta ja paikasta riippumatta. Tällä kertaa koetettiin rakentaa hieman enemmän aikaa kestäviä "aihepiirivideoita", jotta ensi vuonna päästäisiin kokeilemaan käänteistä luokkahuonetta: Katsotaan asiat ensin kotona, ja tullaan sitten yhteen keskustelemaan, soveltamaan ja tekemään vaikka demoja porukalla. Omaan tahtiin saa jatkaa - demotarkastuksia tehdään kesällä erityisesti uusintatenttien ympärillä: muutamia päiviä ennen kutakin tenttiä sekä kunkin tentin tarkastuksen yhteydessä. Kurssimerkintöjä tehdään kolmena ryppäänä: Kunkin tenttikerran tarkastuksen yhteydessä. Kiitos kolmannen kerran, onnea tenttiin jos toiseenkin, ja erittäin hyvää kesäkautta, jossa kevään puserruksen jälkeen pääsee lataamaan akkuja kohti syyslukukautta 2023! *** Eiliseltä jääneet aihepiirit **** Synkronointi 2/3: Useita yhteisiä resursseja, Deadlock Vappusimalaattori: Aloitetaan esimerkistä vappu_sekaisin.c Jos opettaja unohtaa, miten esimerkki viedään läpi "lennosta", tai jos sattuu olemaan perjantaiaamu lyhyellä luennon valmisteluajalla, niin opettaja voi luntata seuraavien vaiheiden esimerkeistä: vappu_deadlock.c vappu_ei_lukkiudu.c **** Synkronointi 3/3: Monta yksikköä samasta resurssista, Semafori Semaforista suhteessa poissulkuun, esimerkkinä Tuottaja-Kuluttaja: tuottaja_kuluttaja_rikki.c Tutkitaan eroa korjattuun malliin, joka on monisteessa pseudokoodina ja melko tyypillinen tenttitärppi mallia "Mahdollisesti rikottu tai sitten ei". tuottaja_kuluttaja.c *** Tauko (sopiva, ei kovin pitkä, mutta ajatuksia kivasti nollaava) Tauko klo 11:20-11:30 *** Katsotaan, mihin aihepiireihin on vielä aikaa **** Lokaalisuusperiaate käytännössä: implikaatiot suorituskykyyn Cache thrashing esimerkkikoodi cache.c Iltalukemista aiheen ympäriltä: http://denninginstitute.com/pjd/PUBS/CACMcols/cacmJul05.pdf *** Vielä yksi kokoava tenttitärppi **** Virtuaalimuisti (sivutus ja heittovaihto): Strategia, miten käydään läpi: - Aloitus tenttitärpistä, joka löytyy monisteestakin (Kuva 30). Kysymykset: Mihin fyysiseen muistiosoitteeseen kohdistuisi prosessin 2 tekemä kirjoitus virtuaalimuistiosoitteeseen 0x7f123? Prosessi 2 suorittaa hyppykäskyn aliohjelmaan muistiosoitteessa 0x03200. Tapahtuuko prosessorissa sivunvaihtokeskeytys? Prosessissa 7 aiheutuu sivunvaihtokeskeytys ja fyysinen muisti on täynnä; korvausalgoritmi on LRU. Pitääkö fyysisen sivun 0x437 sisältö tällöin tallentaa levylle - Mitä siihen liittyy: Lokaalisuusperiaate (alkaen esitietoluvun kuvista 7, 8, 9 ), sivun käsite (kuvat 12, 13, 15, 16, 25 ja 26), tarkennusta siitä miten käyttöjärjestelmä ylläpitää sivutaulua (kuvat 27, 28 ja 29) sekä heittovaihdon tapahtuminen. - Heittovaihto *** Loput asiat, jos aikaa tänä vuonna sattuu olemaan... Näihin juttuihin ei ole muutamanakaan vuonna jäänyt aikaa, kuten ei nytkään. Voitaneen alkaa todeta, että ei mahdu kevätkurssiin.. **** Oheislaitteet ja tiedostojärjestelmät (Kuva 31, korkeintaan pikavilkaisuna 32) Laiteriippuva ja laiteriippumaton I/O -ohjelmisto. Koodiliitteestä pikavilkaisu, jos on aikaa: liit.c **** Sikanopee esimerkki, jos aikaa jää (ei superrelevantti): Viestit Ehkä, jos aikaa jossain välissä on(?) chattomyself.c **** Sikanopee esimerkki, jos aikaa jää (ei superrelevantti): Jaettu muisti Ehkä, jos aikaa jossain välissä on(?) shm_* ** Edellisiltä kerroilta jääneitä *** Aihepiiri: Joku seuraava, sopiva juttu koodiliitteestä *** Aihepiiri: Yhteenvetoa reaalimaailman dokumenteista; mikä määrittää mitäkin Mikä dokumentti määrittää mitäkin kerrosta laitteisto- ja ohjelmistopinkassa. Mitä mikäkin niistä puolestaan ei määritä. *** Aihepiiri: Joku seuraava koodiesimerkki jne ** Ideapankkia tulevia luentokertoja varten ("back-log" toteutuksen kulusta) HUOM: Opettajien aikataulusäätöjen sumplimista: 17.5.2023 Jonne pitää (Paavo yhteiskunnallisen vuorovaikutuksen tehtävissä Tampereella). Jaettiin myös jo alustavasti muitakin vetovuoroja. *** Osaamisen arviointia ( == tenttitärppi!) Tutkitaan kysymyspankin kysymysten rakennetta ja poimitaan jotakin, mihin pitäisi olla jo vastauksia hahmottumaan päin. Noudatetaan näätäilyprotokollaa. **** Protokolla: - Kolmen hengen ryhmät lähellä istuvien kanssa. - 3*30 sekunnin nimi- ja fiiliskierros, jotta keskustelu lämpenee. - Päivän tenttitärppi yksin-ryhmissä-kaikki -menettelyllä (seuraava kohta). **** Tehtävä - Kysymys on... Moodlesta aiemman vuoden tentistä joku kysymys (kysymys 25/48) - Kellotetaan 1 minuutti aikaa tehtävän lukemiseen. - Kellotetaan 1 minuutti aikaa siihen, että jokainen miettii hiljaa itselleen vastaukset - Ryhmäkeskustelu 2 minuuttia: Käykää läpi kaikkien omat vastaukset. Neuvotelkaa siitä, mikä niistä ehkä on eniten oikein. - Yhteinen koonti: Kerätään luentotallenteelle ehdotuksia vastauksista. Varmistaan myös oikea vastaus ja että lopulta kaikki osaisivat tehdä tällaisen tehtävän tentissä täysillä pisteillä. Tässä on täydellisyyden vuoksi tehtävä ja siihen liittyvä ohjeteksti kopioituna: Ohje tehtävään: Yhdistä lauseen loppua vastaavat kirjaimet (vähintään yksi, mutta mahdollisesti useita) lauseenalun perään siten, että muodostuvat lauseet vastaavat todellisuutta. Vastauksessa on oltava listattuna kaikki todellisuutta vastaavat vaihtoehdot. Kysymys 25. Valitse oikea vaihtoehto (mahdollisesti useita sopivia): Kurssilla käsitelty käyttöjärjestelmän rajapintastandardi POSIX (vuoden 2018 versio) määrää, että ... a) Konekielisen aliohjelman ensimmäinen parametri välitetään rekisterissä RDI, jos se on tyypiltään kokonaisluku. b) shell-komento echo tulostaa argumenttinsa. c) järjestelmäkutsu exit() tapahtuu sijoittamalla rekisteriin RAX luku 60 ja suorittamalla syscall-konekielikäsky. d) shell-komennolla kill voi lähettää prosessille signaalin. Muistiinpanot ryhmäkoonnista: acd ad+c? b bd cd abcd (Yritetään muistaa ja toteuttaa aiempi palaute: Mallivastauksen käsittely voidaan tehdä nopeasti) *** Näätäily 3.0: Tenttitärppi viime vuoden ekasta tentistä Noudatetaan näätäilyprotokollaa. **** Protokolla: - Kolmen hengen ryhmät lähellä istuvien kanssa. - 3*30 sekunnin nimi- ja fiiliskierros, jotta keskustelu lämpenee. - Päivän tenttitärppi yksin-ryhmissä-kaikki -menettelyllä (seuraava kohta). **** Tehtävä - Kysymys on viime vuoden (2021) ensimmäisestä tentistä (kysymys 48/48) - Kellotetaan 1 minuutti aikaa tehtävän lukemiseen. - Kellotetaan 1 minuutti aikaa siihen, että jokainen miettii hiljaa itselleen vastaukset tehtäviin 27 ja 28. - Ryhmäkeskustelu 2 minuuttia: Käykää läpi kaikkien omat vastaukset. Neuvotelkaa siitä, mikä niistä ehkä on eniten oikein. - Yhteinen koonti: Kerätään luentotallenteelle ehdotuksia vastauksista. Varmistaan myös oikea vastaus ja että lopulta kaikki osaisivat tehdä tällaisen tehtävän tentissä täysillä pisteillä. Tehtävänanto copy-pastella tässä täydellisyyden vuoksi: Tutkittava esimerkki tehtävään 48: Nelijärjestelmän kantaluku on 4 ja siinä on käytössä numerot 0, 1, 2 ja 3. Muuten se toimii ihan kuin kymmenjärjestelmä, 16-järjestelmä (heksaluvut) ja 8-järjestelmä (oktaaliluvut). Tehtävä 48: Kirjoita kymmenjärjestelmän luku 255 nelijärjestelmässä. Muistiinpanot ryhmäkoonnista: 3333 1020 3333 3333 3333 (ei vielä lopullista) (joku konvertteri käyttöön ja katsotaan, mitä se kertoo) 3333 Logiikkaa, esim: Lähellä oleva luku 256 on 4^4. Joten se on ykkönen ja neljä nollaa.. Siitä edellinen luku 255 on 3333. 255 on heksana 0xff. Se on bitteinä 1111 1111 11 11 11 11 3 3 3 3 (Yritetään muistaa ja toteuttaa aiempi palaute: Mallivastauksen käsittely voidaan tehdä nopeasti) *** Näätäilyä livenä: Osaamisen arviointia ( == tenttitärppi!) Tutkitaan kysymyspankin kysymysten rakennetta ja poimitaan jotakin, mihin pitäisi olla jo vastauksia hahmottumaan päin. Noudatetaan jo tutuksi tullutta näätäilyprotokollaa. **** Protokolla: - Kolmen hengen ryhmät lähellä istuvien kanssa. - 3*30 sekunnin nimi- ja fiiliskierros, jotta keskustelu lämpenee. - Päivän tenttitärppi yksin-ryhmissä-kaikki -menettelyllä (seuraava kohta). **** Tehtävä - Kysymys on... ehkä viime vuoden (2021) ensimmäisestä tentistä (kysymykset 35-37/48) Kysymys on aiempia pidempi, kun on koodiesimerkki! Kellotetaan tuplamäärät aikaa kaikkiin vaiheisiin, verrattuna aiempaan. Askarrellaan kysymykset näkyviin samaan videonäyttöön koodiesimerkin kanssa, jos jotenkin mahdollista: Kysymys 35. Väite: Aina, kun rivi 4 tulee suoritukseen, se tapahtuu ainoastaan fork() -kutsun luomassa lapsiprosessissa. (A=kyllä; B=ei) b b b a/b b Kysymys 36. Väite: Aina, kun rivi 5 tulee suoritukseen, on olemassa sekä shell että sen luoma lapsiprosessi. (A=kyllä; B=ei) a a a b a Kysymys 37. Väite: Aina, kun rivi 7 tulee suoritukseen, se tapahtuu alkuperäisessä shell-prosessissa, ei siis fork():n luomassa lapsiprosessissa. (A=kyllä; B=ei) a a a a a - Kellotetaan 2 minuuttia aikaa tehtävän lukemiseen. - Kellotetaan 2 minuuttia aikaa siihen, että jokainen miettii hiljaa itselleen vastaukset - Ryhmäkeskustelu 4 minuuttia: Käykää läpi kaikkien omat vastaukset. Neuvotelkaa siitä, mikä niistä ehkä on eniten oikein. - Yhteinen koonti: Kerätään luentotallenteelle ehdotuksia vastauksista. Varmistaan myös oikea vastaus ja että lopulta kaikki osaisivat tehdä tällaisen tehtävän tentissä täysillä pisteillä. Muistiinpanot ryhmäkoonnista: yllä. (Yritetään muistaa ja toteuttaa aiempi palaute: Mallivastauksen käsittely voidaan tehdä nopeasti. Eipäs, vaan tästä saatiin aasinsilta takaisin karhuluennon puolelle.) *** Muistiin tilanne vuoden 2022 luennolla 13 Koodiliitettä eteenpäin! minish Jouheva jatkumo edellisistä asioista, demoista ja tenttitärpistä... säikeistä jo? vai signaaleista? Vai kutsupino ja rekursio debuggerilla tutkittuna demo4:n esimerkkikoodin kanssa? *** Tilannekuvaa vuoden 2022 luennon 14 paikkeilta Edetään demoissa aiemmin nähtyjen ja monisteen koodiliitteessäkin olevien konkreettisten esimerkkikoodien kautta, loogisessa järjestyksessä. **** Viime kerran asia loppuun: minish, fork(), exec(), wait(), exit() Jatketaan viime kerran asia loppuun, ja kollataan vielä näätäilijöiden vastausten oikeellisuus tenttitärpistä. **** Demo 4 revisited: Debuggerin käyttöä, kutsupino, muistivuoto Debuggeri, kutsupinon tutkiminen, backtrace, muistin sisällön tutkimista, reverse engineeringiä. Debuggerin heksana näyttämien osoitteiden suhteutus monisteen muistikarttakuviin! **** Demo 4b revisited: Siitä oikeasti tulee viiden rivin vastaus. Pinokehys? Ei vielä tarvita paljonkaan. Miksi? **** Demo 5 revisited: Mitä tästä saa demo 4b:n ja demo 6:n välissä Tässä nähdään vaiheittain aliohjelman kutsuminen ja SysV ABIn mukainen pinokehysten käyttö. *** Vuoden 2022 viimeinen Näätäily 3.0 tapahtui luennolla 15 Noudatetaan harjoiteltua protokollaa. Katsotaan konekielitärppiin keskustellen ratkaisustrategiaa. **** Protokolla: - Kolmen hengen ryhmät lähellä istuvien kanssa. - 3*30 sekunnin nimi- ja fiiliskierros, jotta keskustelu lämpenee. - Päivän tenttitärppi yksin-ryhmissä-kaikki -menettelyllä (seuraava kohta). **** Tehtävä - Kysymys on... viime vuoden (2021) ensimmäisestä tentistä (kysymykset 42-44/48) Koetetaan askarrella näkyville mallikoodi ja kysymykset. Käydään tämä ratkaisustrategian tasolla, eli miten lähtisit ratkomaan tällaista? Kysymys 42: Kuinka monta käskyä ohjelmanpätkän jälki sisältää, ts. kuinka monta käskyä prosessi suorittaa siitä alken, kun käyttöjärjestelmä siirtää kontrollin nimettyyn aloituspisteeseen "_start"? Kysymys 43: Mikä on RCX:n sisältämä luku suorituksen lopuksi? Kysymys 44: Mikä on RDI:n sisältämä luku suorituksen lopuksi? - Ryhmäkeskustelu 3 minuuttia: Käykää läpi kaikkien omat ratkaisustrategiat. Neuvotelkaa siitä, mikä niistä ehkä olisi paras tai helpoin tapa. - Kellotetaan 2 minuuttia aikaa tutustua tehtävään. - Kellotetaan 1 minuutti aikaa miettiä oma lähtökohta: Mitä teen, että saan vastaukset oikein. - Yhteinen koonti: Kerätään luentotallenteelle ehdotuksia vastauksista. Varmistaan myös oikea vastaus ja että lopulta kaikki osaisivat tehdä tällaisen tehtävän tentissä täysillä pisteillä. Muistiinpanot ryhmäkoonnista: - Tehtävään 42: Lasketaan rivit _start:n jälkeen. Vastaus suoraan 7. - Tehtävään 42: Lasketaan rivit _start jälkeen ja lisäksi ali:n jälkeen tulevat rivit. Vastaus suoraan 7+3 = 10. - Tehtävään 42: Seurataan ohjelman toimintaa alusta lähtien käsky kerrallaan. Kynä ja paperi! - Entäpä jopa kokeilu jalavassa/halavassa Äänesteltiin. Voittajaksi nousi: Seurataan ohjelman toimintaa alusta lähtien käsky kerrallaan. Kynä ja paperi! (Yritetään muistaa ja toteuttaa aiempi palaute: Mallivastauksen käsittely voidaan tehdä nopeasti. Näytetään siis pari toimivaa tapaa ratkaista.) * Aiempien vuosien (2020-2022) toteumaa vertailun vuoksi ja suunnittelun tueksi ** Ideoita jo vuoden 2024 toteutusta ajatellen *** Vuoden 2022 Näätäily 3.0 kohti vuotta 2024: ryhmäkeskustelu viikon ekan luennon kärkeen? **** (ennakointia pääsiäisen paikkeilla 2022) Ajatus, kenties ennakoiva: ryhmäkeskustelu luentoviikon kärkeen? Kokeiltiin 2022 seuraavanlaista menettelyä. Se voidaan ehkä ottaa käyttöön sitten, kun ehkä päästään aidompaan "Flipped classroomiin" jo olemassa olevien aihepiirivideoiden myötä. Tämä tapahtunee aikaisintaan keväällä 2024. Vuonna 2023 oli vähän erilaisia kokeiluja (aihepiirivideoiden tuottaminen studioyleisön läsnäollessa). Viikon ensimmäisellä luennolla voitaisiin käydä pienet ryhmäkeskustelut tähän malliin (siis alkaen pääsiäisen jälkeen): - Nimi- ja fiiliskierros 3x30 sekuntia - Ajatustenvaihto yksin-ryhmässä-kaikki: Mikä on ollut mielenkiintoisinta viikon lukupaketissa? - Ajatustenvaihto yksin-ryhmässä-kaikki: Mikä on auttanut ymmärtämään asioita omalla kohdalla? - Koonnit luentovideolle ja muistioon. Mahdollisesti kokeillaan pääsiäisen jälkeen ja otetaan vähän aikaa, paljonko tällainen näätäily vaatisi. Tavoitteena olisi saada buustia fyysisestä läsnäolosta. **** Eka toteuma Otettiin tällaista käyttöön luennolla 7 keväällä 2022. Ei välttämättä tule ihan tällaista keväälle 2023, kun tehdään aihepiirivideoita, eikä "paluu kampukselle" ole enää vastaavalla tavalla prioriteetti kuin se oli vielä 2022 korona-ajan jälkeen. Siitä muuten huomio: Kannustuksista ja patistuksista huolimatta iso osa ei koskaan palannut fyysiselle kampukselle. Tämä oikeastaan on nyt sisäistetty ja sisällytetty kevään 2023 kulkuun tässä "studioyleisön sparraamien aihepiirivideoiden tuottaminen kotikatsomoille" -konseptissa. Entä tulevaisuus? Vuonna 2024 ehkä on aihepiirivideot jo nauhalla, jolloin voisi olla perusteltua tarjota lähinnä keskustelu- ja näätäilyhetkiä tositarkoituksella? Joskus "vain läsnä", joskus "vain etä", joskus "hybridi sekä että" - ennakkoon tiedotetusti kutakin. Niille, jotka kovat hyötyvänsä live-interaktiosta videoiden ja tekstimateriaalien lisäksi. Alla copy-paste vuodelta 2022. (Silloisen käytännön kuvaus.) Kaksi viikkoa sitten ennakoitiin tätä, ja nyt kokeillaan. Viikon ensimmäisellä luennolla voitaisiin käydä pienet ryhmäkeskustelut tähän malliin (siis alkaen pääsiäisen jälkeen). Ideaalisti kolmen hengen ryhmissä: - Nimi- ja fiiliskierros 3x30 sekuntia - Ajatustenvaihto yksin-ryhmässä-kaikki: Mikä on ollut mielenkiintoisinta lukupaketissa / demoissa tähän asti? Yksin: 1 minuutti. Ryhmässä: 2 minuuttia. Kaikki: Niin kauan, että saadaan ajatukset ylös ja tallentumaan videolle. Muistiinpanoja: Demot ovat olleet mielenkiintoisia. Riippuu henkilöstä. Skriptin kirjoittaminen oli mielenkiintoista. Demot on lopulta yksinkertaisempia, kuin ohjetta lukemalla ensin vaikuttaa. Teoriapuoli on ollut monelle kertausta tähän asti (pätee tietotekniikan pääaineopiskelijoille). Osalle taas teoriapuoli ei ole vielä auennutkaan. Vim ja Emacs nousseet mielekkäimmiksi harjoiteltaviksi. - Ajatustenvaihto yksin-ryhmässä-kaikki: Mikä on auttanut ymmärtämään asioita omalla kohdalla? Yksin: 1 minuutti. Ryhmässä: 2 minuuttia. Kaikki: Niin kauan, että saadaan ajatukset ylös ja tallentumaan videolle. Muistiinpanoja: Googlen käyttö auttaa (+1). YouTube-videot, joissa näitä asioita on animoitu. Torstaiaamun "open labrapäivä". Oikeiden dokumenttien lueskelu (voisi olla enemmän englanninkielisiä termejä). Käytännön tekeminen oikeassa elämässä. Pelillistäminen. Kaverin kanssa tekeminen ja keskusteleminen. Ylipäätään demojen tekeminen. Teorian ja käytännön välillä vaihtelu. Asioille pitää varata aikaa! Kalenterointi, rutiini. Opettaminen toiselle. Omin käsin tekeminen. Innostavat luennot auttavat. - Koonnit / kiteytykset luentovideolle ja muistioon. Kokeillaan ja otetaan vähän aikaa, paljonko tällainen näätäily vaatisi. Tavoitteena olisi saada buustia fyysisestä läsnäolosta ja pieni yhteisöllinen aspekti siihen, että ollaan tultu kampukselle. *** Vuoden 2022 Näätäilyä luentokertojen välillä (esimerkki) - kurkistetaan Flingaan Kurkataan Flingaan lyhyesti, suuntaviivoiksi tuleville luentokerroille ja suhteessa aiemmin käsitelyyksi tulleisiin asioihin. Jotakin on saatu varmaankin viime viikolla jo pakettiin? Käsiteltyä: - Kertaus - mikä tuo Makefilejuttu on? (Luennolta: POSIX-standardi auki, sieltä Shell & Utilities, sieltä make; lyhyesti make 'valmistaa' ohjelman annetun Makefile-ohjeen mukaisesti.) - Voisiko luentoihin sisällyttää jonkinlaisen demojen työstämistä helpottavan 10-15min tiiserin, jolla pääsee hieman helpommin kiinni kunkin viikon "kotitehtävään"? - Käyttäessä pääteyhteyttä screenin kanssa, jossa pyörii emacs on screeniin vaihtaminen huomattavasti hitaampaa kuin Paavon. Mistä tämä johtuu? (Ei pitäisi tietokoneen tehoista johtua) - Sori, ei ollut tarkoitus. Kiitos silti! ** Jotain viime- ja toissavuotisia *** Kyssäri erään luennon lopussa 2021: Mitä AMD64 oikeastaan tekee FLIHissä? 'Toinen kysymys tuli mielee eri aiheesta, tulkinnanvarasta, sanottiin luentomonisteessa että "keskytyskäsittely on laitetasolla ehkä monimutkikkain prosessorin operaatio mitä käydään kurssilla". Saisiko tähän avautta vähän, siis kirjaimellisesti vai vaikea ymmärtää. Oli siinä vaiheita kyllä.' Vastaus: AMD64-manuaali. Opettaja teki vähän kotiläksyjä.. Eli etsi tarkat kohdat lähdemateriaalissa: AMD64 manual, Vol 2, s. 19 (luku 1.6) esittelee keskeytykset alustavasti. Ristiviittaus tarkempaan selostukseen myöhemmässä kohtaa manuaalia. Nykypäivänä 64-bittiselle arkkitehtuurille "Long-Mode Interrupt" on se, mitä katsotaan (ristiviittaus sivulle 247). Sivu 247 eli luku 8.9: Osoittautuu, että nykyinen on laajennos vanhalle. Eli uutta peruskuvauksessa on sivut 247-253 (5 manuaalisivua). Kokonaisuuden perustuu vanhaan. Vanha 32-bittinen kuvaillaan sivuilla 237-244 (7 manuaalisivua). Näiden yhteensä 12 sivun ymmärtäminen vaatinee 100-200 sivua esitietoa manuaalin johdantoluvuista. Syventävällä jatkokurssilla (jota ei vielä ole olamassa) nämä kaikki opeteltaisiin sille tasolle, että pystyttäisiin tekemään oma keskeytyskäsittelijä vähintään näppäinpainallukselle ja kellolle osaksi omaa pientä käyttöjärjestelmää. Lisäharjoitteena voisi olla toteuttaa nämä sekä AMD64-prosessorille että jollekin toiselle :). Nyt ei olla syventävällä jatkokurssilla, joten tyydymme luentomonisteen kiteytykseen, joka on kiteytys tyypillisessä oppikirjassa olevalle kiteytykselle. Kiteytyksissä on minimaaliset "hyvä tietää" -tyyppiset asiat siitä, mitä keskeytyksen käsittelyyn siirtyminen vaatii. Palataan alkuperäiseen kysymykseen luennon chatista: - "keskytyskäsittely on laitetasolla ehkä monimutkikkain prosessorin operaatio mitä käydään kurssilla". Saisiko tähän avautta vähän, siis kirjaimellisesti vai vaikea ymmärtää. Oli siinä vaiheita kyllä. *Vastaus*: Joo-o, ilmeisesti siinä tapahtuu kerralla paljon enemmän kuin vaikkapa aliohjelmakutsuun siirtymisessä eli CALL-käskyn suorittamisessa"! Jokainen keskeytys on hirvittävän pitkään kestävä operaatio verrattuna siihen, että prosessori vain etenee suoritussyklissä nykyisen prosessin käskysarjaa eteenpäin. Eli: - "kirjaimellisesti" - ei sen kummempaa kuin: "Prosessori tekee, mitä sen pitää, että yksi prosessi voi keskeytyä ja jatkaa myöhemmin niin, että sen ei tarvitse edes tietää mitään keskeytyksestä" - "kirjaimellisesti" - aika monta asiaa, mitkä eivät hoidu muutamassa nanosekunnissa, ei sitten millään. Toisin kuin joku pluslasku rekisterien välillä. - "vaikea ymmärtää"? Ei sen vaikeampaa kuin ylläoleva kiteytyksen kiteytys. - "vaikea ymmärtää, että saan tehtyä asian X"? Riippuu asiasta X. Tavalliseen sovellusohjelmaan ei tasan mitään väliä. Kahta säiettä tausta-ajoon käyttävässä ohjelmassa tarvitset jo jotain käryä asiasta. Kokonaisen käyttöjärjestelmän tekemiseksi pitää hallita tuhansia sivuja niiden prosessorien dokumentaatiota, joille järjestelmä keskeytyskäsittelyineen tehdään. - Mikään ei ole vaikea ymmärtää, jos ymmärrät kaikki esitiedot, mitä seuraava pieni askel vaatii. Aloita vaikka AMD64:n Volume 1:n johdantoluvusta ja Käyttöjärjestelmät -kurssin luentomonisteesta. Yhteensäkin vain muutama sata sivua :). "Matka alkaa ensimmäisestä askeleesta!" *** Vuoden 2021 luennon 14 paikkeilla käsiteltyä: - Tehtäiskö vaikka esimerkkitapaus kädestä pitäen virtuaaliosoitteen muuttamisesta fyysiseksi, esim. materiaalin kuvan 27 -> avulla? - Katso luentovideo. [ TAUKO -> 11:15 ASTI ] - Lokaalisuusperiaattesta jokin tiivistävä määritelmä? Milloin taikka miten tulisi huomioida vai tulisiko lainkaan? - kannattaa pohtia esimerkin B.4 cache.c kautta - iltalukemista: http://denninginstitute.com/pjd/PUBS/CACMcols/cacmJul05.pdf - Jos prosessi olisi jaettavissa 2 täysin identtiseen osaan jotka jaettaisi 2 säikeelle niin missä suhteessa prosessin läpiajo nopeutuisi vs prosessi suoritettaisiin yhdellä säikeellä alusta loppuun? - Katso vaikka Wikipediasta Amdahlin laki. ( - esimerkin kautta 'Rinnakaislaskentaa säikeistämisellä' s. 217 ja seuraava ) Katsottiin vielä, mistä Demo 6:ssa on kyse. Tämän päivän tavoite siis: - Varmistetaan, että demo 5 on käynnissä. - Paikataan ymmärrysaukkoja lukuihin 9 ja 10 kysymysten pohjalta. - Katsottiin demo 6:tta *** Vuonna 2020 luennolla 15 kartoitettuja uusia kysymyksiä Kysymykset tänään (5 min aikaa esittää): - Joku maininta Flash muistista ja sen erosta SSD muistiin? - Tietääkö siis siitä että on varmasti kurssilla, että pääsee moodlessa sivulle jossa lukee "Prinsessa ei ole tässäkään linnassa."? Ja tämä riitti tentti-ilmoittautumiseksi? - Luentomonisteessa sivuilla 145 ja 146 esitettyjen kysymyksien vastauksien perustelut. - Tuleeko olemaan aamupäivän tenttejä tarjolla? Työt menee keskiviikon tentin kanssa päällekkäin... - Jos joku kova linkattu tiedosto poistetaan niin poistuuko kaikki kyseisessä linkki "ketjussa" olevat tiedostot? - oisko mahdollista saada joku yhteenveto kurssin pääaiheista/ tärkeimmistä aiheista - Voidaanko katsoa vielä mistä kohtaa luentomonistetta näkyisi demo 5 parhaat neuvot? - Lisää tenttitärppien läpikäymistä! - Voisiko katsoa materiaalien sivulla 164 kuvan 33. vielä läpi, jotta kunnolla sisäistää kokonaisuuden - Mitenkä parametrinvälitys aliohjelmalle (assembly-tasolla) menee, jos ei ole integer-tyyppinen muuttuja vaan esimerkiksi file? - DMA ja RAID? Näiden toimintaperiaatteet? - Luentomonisteen tärkeimmät luvut jotka erityisesti kannattaa sisäistää? - s.57 monisteessa puhutaan exit() kutsusta ja sen järjestysnro on 60, mutta s 56 olevassa koodissa en löydä tätä - voisi vielä kerrata tuota sivun 79 kuvan pinokehysasiaa Priorisoidaan tauon jälkeen. [Tauko 15:15 asti. Kesti vähän yli, koska tapahtui opettajien pedagoginen esikarsinta ja jäsennys ennen pollausta.] Priorisoitiin. *** Vuonna 2021 (ja yleensäkin aina) pois jätettyjä: Flash, SSD, DMA, RAID Aihealueen ohittavat: - Joku maininta Flash muistista ja sen erosta SSD muistiin? Vastaus: Katso Googlesta. - DMA ja RAID? Näiden toimintaperiaatteet? Vastaus: Rajataan tänä vuonna tentin ulkopuolelle. Monisteessa on OK lähdöt, ja Wikipedia kertoo kyllä lisää. [Perjantaina loput.] *** Aiemman vuoden kysymys ja vastaus heksaluvuista 3.4.2020 - Heksaluvut, apuja opetteluun? ja sitten, missähän pääsee opettelemaan noita heksamuunnosjuttuja, mulla on joku niihin liittyvä narkolepsia ja tarviin toisteisuutta että opin :) Luentomonisteessa oli esimerkki: "Esimerkiksi luku 123 on heksajärjestelmässä 7B_16 = 7 · 16^1 + 11 · 16^0 = 123." Miten tuo ratkaisu saadaan? Miten sitä lähdetään selvittämään? Eri lukujärjestelmien numerot: - 01 binäärit - 0123456789 desimaalit - 0123456789ABCDEF heksadesimaalit Esimerkki kymmenjärjestelmässä ja heksadesimaalina: 123 = 1 * 100 + 2 * 10 + 3 * 1 0x7B = 7 * 16 + B * 1 = 7 * 16 + 11 * 1 = 112 + 11 = 123 Tuo '0x' on yleinen tunniste monissa kielissä, kun halutaan esittää heksoja. Liikaakin lisätietoa löytyy osoitteesta https://en.wikipedia.org/wiki/Hexadecimal *** Joitain kysymyksiä ja vastauksia vuodelta 2020, viimeisellä luennolla Nopeat: - Mitenkä parametrinvälitys aliohjelmalle (assembly-tasolla) menee, jos ei ole integer-tyyppinen muuttuja vaan esimerkiksi file? Vastaus: "file" (anteeksi lainausmerkit) välitetään esimerkiksi fgetc():lle muistiosoitteena FILE -tyyppiseen tietueeseen. Välitettävänä on siis kokonaisluku, joka on muistiosoite. Parametrin välitys on täsmälleen samanlainen kuin saman pituisissa kokonaisluvuissa. Esimerkiksi AMD64:ssä 64-bittisille kokonaisluvuille. Sopimus: SysV ABI kertoo kaikki muutkin vaihtoehdot, mutta niitä EI nähdä tällä kurssilla. - Voidaanko katsoa vielä mistä kohtaa luentomonistetta näkyisi demo 5 parhaat neuvot? Vastaus: Luennolla kuvatuin perustein sanoisin, että *erityisesti luku 4* avaa demon 5 asiaa. Edellyttää esitietoja luvuista 1-3, ja koko homman tavoitteena on tukea lukujen 6-12 ymmärtämistä. - Luentomonisteessa sivuilla 145 ja 146 esitettyjen kysymyksien vastauksien perustelut. Vastaus: Pitkä ja harras selitys tärpeistä tähän tehtävään on "Luento 14: (pe 8.5.2020)". Kysymys virtuaalimuistiosoitteen muuntamisesta. Esikarsitut, pollatut ja priorisoidut: - Kurssin pääaiheiden yhteenveto Oisko mahdollista saada joku yhteenveto kurssin pääaiheista/ tärkeimmistä aiheista Vastaus: Katso luentovideo. Luentomonisteen tärkeimmät luvut jotka erityisesti kannattaa sisäistää? * Luvut 1-5 ehdottoman tärkeä. Muuten ei ole edellytyksiä edetä. * Luku 6 motivaation kannalta, mutta ei ehkä teknisen näkökulman tai teknisen tekemisen tasolla. * Varsinainen sisältö ovat (tällä kurssilla) luvut 7-12. Kaikki ovat yhtä tärkeitä! [Tauko 11:20 asti] - Tiedostojärjestelmän tietorakenteet (s. 164) Voisiko katsoa materiaalien sivulla 164 kuvan 33. vielä läpi, jotta kunnolla sisäistää kokonaisuuden Vastaus: Katso luentovideo. Pointtereita seuraaviin, joita ei ehditty käydä "varren kanssa": - Pinokehyksen kertaaminen (s. 79) voisi vielä kerrata tuota sivun 79 kuvan pinokehysasiaa Varsi olisi ollut: Etsittäisiin luentomuistiinpanoista, millä luennolla tätä käytiin läpi. Tarkistettaisiin videolta, tuliko siellä riittävästi. Jatkovarsi olisi ollut: Miten tämä asia ilmenee demossa 5. - Miten tiedostolinkit toimivat? Jos useampi tiedosto on kova linkattu niin poistaa yhden poistuuko kaikki? Vai ymmärsinkö koko linkityksen väärin Varsi olisi ollut: Kokeillaan käytännössä halavalla / jalavalla. Vastaus: On hyvä perusosaamisen testi itsellesi, osaatko tehdä tämän kokeilun ja vakuuttua siitä, kuinka homma näyttää jalavalla/halavalla pelittävän. - Miksi s.57 exit() on 60 mutta ei konekoodissa? s.57 monisteessa puhutaan exit() kutsusta ja sen järjestysnro on 60, mutta s 56 olevassa koodissa en löydä tätä