-*- coding:utf-8 ; mode:org -*- Käyttöjärjestelmät, kevät 2023. Aloitettiin maaliskuussa jälleen copy-pastella vuoden 2022 toteumasta, paitsi että ajan hengen mukaisesti liitin tähän alkuun mun (==Paavo) ensimmäisen keskusteluni ChatGPT:n kanssa. 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 haluamme rikkoa kaavaa ja uudistua. * Paavon ensimmäinen juttutuokio ChatGPT:n kanssa Tuli ajankohtaiseksi ryhtyä osaksi vuoden 2023 sukupolvikokemusta, eli tutustua ChatGPT:hen omakohtaisesti. Koska kurssin alkaminen oli heräte, niin aihepiiri ensimmäiseen kysymykseenkin oli selviö. ** Juttutuokio ChatGPT:n kanssa Näin meni juttutuokio: Paavo: What is an operating system? ChatGPT: An operating system (OS) is a software program that manages the hardware and software resources of a computer system. It acts as an interface between computer hardware and application software, providing a set of common services for computer programs to use. The primary functions of an operating system include managing the computer's memory, processing tasks and scheduling, controlling input and output operations, managing file systems, and providing a user interface. An operating system also provides security measures, such as user authentication and access control, to protect the system and its data. Common examples of operating systems include Microsoft Windows, Apple macOS, and various versions of Linux. Each operating system has its own unique features and characteristics, but they all serve the same essential purpose of enabling users to interact with their computer systems in a convenient and efficient manner. Paavo: Repeat previous answer in Finnish. ChatGPT: Käyttöjärjestelmä (Operating System, OS) on ohjelmisto, joka hallinnoi tietokonejärjestelmän laite- ja ohjelmistoresursseja. Se toimii rajapintana tietokoneen laitteiston ja sovellusohjelmiston välillä, tarjoten yhteisen joukon palveluita ohjelmiin käytettäväksi. Käyttöjärjestelmän tärkeimpiin toimintoihin kuuluu tietokoneen muistin hallinta, tehtävien käsittely ja ajoitus, syöttö- ja tulostusoperaatioiden hallinta, tiedostojärjestelmien hallinta ja käyttöliittymän tarjoaminen. Käyttöjärjestelmä tarjoaa myös turvallisuustoimintoja, kuten käyttäjän tunnistautumisen ja pääsynhallinnan, joiden avulla järjestelmä ja sen tiedot ovat suojattuja. Yleisiä käyttöjärjestelmien esimerkkejä ovat Microsoft Windows, Apple macOS ja erilaiset Linux-versiot. Jokaisella käyttöjärjestelmällä on omat ainutlaatuiset ominaisuutensa ja piirteensä, mutta niillä kaikilla on sama keskeinen tarkoitus mahdollistaa käyttäjien vuorovaikutus tietokonejärjestelmiensä kanssa kätevällä ja tehokkaalla tavalla. ** Analyysi Tuokio oli lyhyt, enkä lähde kiistämään sitä, mitä ChatGPT tällä kertaa rupatteli. En kuitenkaan tämän pidemmälle lähde tuottamaan sillä kurssimateriaalia, koska (1) se olisi ensinnäkin plagiointia siinä missä kenen tahansa tekeleen esittäminen omanaan ja (2) ChatGPT on kielimalli, jonka tuottama sanajono ei välttämättä vastaa todellisuutta lainkaan. Uusi jännittävä työkalu meillä kuitenkin kielimalleissa näyttää olevan, joten muistetaan ottaa niihin tuntumaa. Jokainen meistä muistakoon nuo pointit plagioinnista ja faktojen epävarmuudesta. Akateemisessa maailmassa nämä ovat synneistä pahimpia. * 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.) - Keväällä 2023 kokeillaan rohkeasti tällaista: "Luennot" ovatkin videotuotantotilaisuuksia, joissa on studioyleisö. Studioyleisö on siis opiskelijat, jotka pääsevät kulloinkin paikalle osallistumaan. Koetetaan rakentaa yhdessä studioyleisön kanssa aihepiirivideoita, joissa hyödynnetään live-interaktiota asian selkeyttämiseksi. Aihepiirit ja käsittely tapahtuvat tietysti linjassa kurssin osaamistavoitteiden, harjoitusten ja materiaalien kanssa. Kuitenkin niin, että studioyleisön osallistuminen, keskinäinen keskustelu ja kontribuutio tuotantoon mahdollistuu. Kertyvät aihepiirivideot ovat sen jälkeen käytettävissä kunkin aiheen opiskeluun. - 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 2023 kulku tähän saakka: ** Luento 1: (ke 22.3.2023) Aloitus, yleisinfo ja suoritusvaatimukset Tästä voidaan lukea, mitä ensimmäisellä luennolla oikein tapahtui, kunhan se on tapahtunut klo 14:15-16:00 keskiviikkona 22.3.2023. Runkona on copy-paste viime vuodelta. Luennon pitävät yhdessä vastuuopettaja Paavo Nieminen ja kurssin toinen opettaja Jonne Itkonen. *** Tämän päivän tavoite Luennon päätavoite on kuvailla kurssin pakolliset suoritusvaatimukset ja muu perusinfo. *** Pakolliset suoritusvaatimukset, arviointi 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 2023 *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. Tarkentavia kysymyksiä aloitusluennolla 2023: - Ovatko viikottaiset deadlinet miten velvoittavia? Videotallenteella tarkemmin. Pääkohdat: Viivästymisestä ei sakoteta. Ohjeellisia dediksiä ahkerasti noudattamalla kurssin voi saada pakettiin 4. opetusperiodin aikana. Ohjausta ei ole mahdollista tarjota toukokuun 2023 jälkeen ja tehtävätarkastusten aikataulu harvenee merkittävästi. - Onko viimeisessä demossa sama viikon aikataulutus kuin aiemmissa? Viimeinen tehtävä on työläin, myös riippuen siitä, kuinka paljon on ehtinyt hahmottaa asioista siihen mennessä. Sen kohdalla voi tarvittaessa priorisoida tenttiin valmistautumista ja viimeistellä viimeisen demon vaikka heti tentin jälkeen. *** Vapaaehtoinen tarjonta: Sisussa olevat ryhmät ja ajankohdat Käydään läpi, mitä tarkoittaa: - Luento - Open labrapäivä - Laboratoriotyöt huhtikuussa - (International students -ryhmä perutaan, mikäli tarvitsijoita ei ole) Luentotallenteella tarkemmat selostukset näiden tilaisuuksien roolista. Jos et kuule, pyydä toimittamaan tarkempi transkriptio. Itse asiassa sellainen löytyi edelliseltä vuodelta. Tässä pääkohdat tekstimuodossa: - Selitys "Open labrapäivälle" noin viikottain: Ajankohta, jolloin kurssin opettaja hengaa ilmoitetussa luentosalissa. Voidaan käsitellä kurssin asioita tai muuta, tai tehdä vaan hiljaa omia hommia. Alkuperäinen nimi oli "Opettajan labrapäivä" hellittelymuodossa, mutta myös tulkinta "Avoin labrapäivä" vastaa toiminnon tavoitetta. - Selitys "Laboratoriotyölle" huhtikuussa: Mahdollisuus tehdä demo 4 ryhmätyönä paikan päällä. TODO: Varmistettava myös keväällä 2023, 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ä 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. Siinäpä yleisökysymyksineen tärkeimmät byrokratiasta, vaatimuksista ja aikatauluista. Päästäänkö sitten jo byrokratiapullasta kivempiin asioihin? Kyllä päästään. *** 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. Otettiin ryhmäkuva. *** Tauko Sitten tauko 12 minuuttia, klo 15:30 asti. *** Kurssin kustomointi ja käynnistäminen Kustomoidaan kurssin nettisivu, että päästään katsomaan sitä ja sisältöjä tänään ja huomenna... koreografia on suoraan osaamistavoitteiden äärellä: laitteet, tietokoneet, sovellukset, pääteyhteys, kuori, komentojono eli skripti. *** Tutustumista - Esittelyt: opettajat (ehtivät tulla tutummiksi kurssin mittaan), opiskelijat, opiskelijoiden pääaineet - Kartoitetaan kädennosto-otannalla seuraavat ensimmäisen luennon osanottajista: + Opiskelijoiden pääaineet: Tietotekniikka: valtaosa Tietojärjestelmätiede: muutamia Ketä muita on: fysiikalta, koulutusteknologialta, erillisinä opintoina suorittavia ... + Otannan perusteella tietotekniikkapainotteinen populaatio, mutta pyritään pitämään touhu hyödyllisenä kaikille. Pidemmän kaaren tähtäyspisteet: + Esimerkiksi millaisiin käytännön asioihin tämä kurssi on ensimmäinen askel? Koreografia ryhmäkuvatiedoston kanssa näytti muutamia. Videotallenteesta puuttui Paavon mikrofonimokan takia ääni, joten sitä ei ole hyötyä julkaista. Lisää tulee heti huomenna. ** Luento 2: (to 23.3.2023) Luentomuoto, demo-ohjeistus, varoitukset(!) *** Päivän päätavoitteet: - Jokainen pystyy aloittamaan demo 1:n tekemisen heti tämän luennon sisäistettyään. - Sitä varten: käydään läpi varoitukset, joita demojen tekemiseen liittyy. Näytetään vähän, miltä homman pitäisi näyttää käytännössä, kun itse tekee. - Jokainen tietää, mitä teoriapuolelta pitäisi lukea ennen kuin seuraavan kerran nähdään yhdessä. - Eli toisin sanoen: Tämän kurssin opiskelu on kaikilla 100% käynnissä! Jatkossa koetetaan studioyleisön kanssa tuotettavien aihepiirikäsittelyjen avulla mennä 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ä* tällä luennolla käsiteltävät varoitukset on syytä ensin sisäistää! *** Infoa keväälle 2023 Eduskuntavaalien ennakkoäänestys on alkanut ja 2.4.2023 on pääpäivä!! Muista äänestää omien arvojesi mukaan!! Lisätietoa tämän viikon ehkä tärkeimmästä aiheesta, ainakin tärkeämmästä kuin mikään yksittäinen opintojakso: - https://vaalit.fi/etusivu - https://www.jyu.fi/fi/ajankohtaista/arkisto/2023/02/jyvaskylan-yliopiston-toimintamalli-vuoden-2023-eduskuntavaaleissa Poliittisesti neutraali, yliopiston ohjeistuksen mukainen tiedotus päättyy. Siirrytään toissijaisempaan asiaan, eli tämän opintojakson sisältöihin. *** Mistä kurssiin liittyvät asiat löytyvät - Käydään läpi, mistä kaikki kurssiin liittyvä löytyy (kaikkiin löytyy vähintäänkin aloituslinkki kurssin nettisivulta): + 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. *** Muuta huomioitavaa ja tarkentavia kysymyksiä Elikkäs perinteinen kysymys-/vastausosio tähän. Muistetaan katsoa, että äänet on päällä mikrofoneissa ja silti varuilta muistot myös tekstiksi. Kysymyksiä keväällä 2023: - Käydäänkö läpi erityisesti reaaliaikajärjestelmiä? - Tuleeko yhtään Open labrapäivää ennen demo 1:n palautusta? Yritetään, ilmoitetaan jos tulee. *** 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. [ Tauko tässä kohtaa. Aloitetaan teholla taas 13:25 ] *** Demo 1 käyntiin siis Pääteyhteys ja siihen liittyviä asioita: - Luentomuoto ja kurssin työkalut alusta alkaen ja esimerkit näyttäen: pääteyhteys, bash-shell ja tekstipohjaiset työkaluohjelmat. - Nykyinen suositus voisi olla oman käyttöjärjestelmän mukana tulevan pääteyhteysohjelman käyttely. Demotaan vaikka luentosalin Powershellistä.. Teknisiä ongelmia ja järjestelmäeroja todennäköisesti havaitaan, ja päämääränä on yhdessä setviä ne kuntoon vertaistukikanavan kautta mahdollisimman pian! - Miten lähdetään tekemään demoa 1: Alkuvaroitukset ja toisaalta rohkaisu. - Demojen tekemisen saa aloittaa vasta, kun on sisäistänyt varoitukset!! - UNIX-käyttäjätunnuksen aktivointi https://sso.jyu.fi/ -palvelussa (ope vois varovasti näyttää, muistaen, että etusivu näyttää oman henkilöturvatunnuksen... eli note-to-self: tee toisella näytöllä tuo eka vaihe ja sitten vasta vedä videoituvaan näyttöön!) - HUOM: Windows-pääteyhteysohjelman (esim. KiTTY) todennäköinen ääkkösongelma ja sen korjaaminen: Omissa asetuksissa todettava etäkoneen merkistö; meidän tapauksessa UTF-8 (tätä ei pystytty näyttämään 2020, kun opettajilla ei ole KiTTYä tai PuTTYä käytössä. Suositus toki olisi ettei opiskelijoillakaan olisi!! Voi olla asia, jota on syytä puida vertaistukikanavalla sitä mukaa kuin havaitaan ongelmia ääkkösissä tai missään muussakaan! - HUOM: Älä ryntäile tehtäviä läpi nopean suorituksen perässä, vaan pyri sisäistämään - tee omia muistiinpanoja tärkeimmäksi kokemistasi asioista! *** Sukelletaan luentomonisteeseen sivulta 1 alkaen (jos on aikaa) Mikä dokkari? Kenen kaikkien tekemä? Miten tätä luetaan ja käytetään luennoilla tai kotioloissa? Aloita jo itsenäisesti, kuten ennakkotehtäväksi annetaan. Ensi viikolla käydään siltä pohjalta yhdessä. *** 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, voidaan kenties jo ryhtyä kokeilemaan aihepiirivideoita. Tai sitten 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! Ahkerasti käyttämään loput viikottaisesta 16 tunnin panoksesta tähän 5 opintopisteen kurssiin! Muista kuitenkin myös lepo ja tyhjäkäynti! Se auttaa jaksamaan taas toiminnan hetkinä. ** Luento 3: (ke 29.3.2023) Luentomonistetta ja muuta materiaalia päin *** Päivän päätavoitteet: Rohkea yritys tuottaa joitakin "aihepiirivideoita", joilla vielä käynnistellään kurssia ja tartutaan siihen kiinni. Ajankohtaisia ja perinteisiä aiheita toisen viikon alkaessa: - Tavoitepisteitä, motivointia ja "mindsettiä" - Sukelletaan järjestelmällisesti myös luentomonisteeseen - Reaalimaailman dokumentaatio, jollaisen lukemistaitoon tämäkin kurssi koettaa valmentaa. (Viime vuonna ei ollut vielä 3. luennolla aikaa tähän; katsotaan miten 2023 näyttäytyy). *** Infoa keväälle 2023 Aikataulutarkennuksia; mahdollisesti myös tiettyihin luentoihin: - "Open labrapäivä" siirtyi nyt pääsääntönä perjantaille, joihinkin aamuihin ja joihinkin iltapäiviin, ja lisäksi joskus myös muulle päivälle. Syy: Koetin hajauttaa ajankohtia, jotta tietty viikoittainen päällekkäisyys ei kuitenkaan joka kerta estäisi osallistumasta. Oma mausteensa on muiden tapahtumien tilkkutäkki, joka on päässyt muodostumaan vuoden aikana omaan työkalenteriin ja joka oli myös syy lähteä raivaamaan nämä pois torstaiaamusta, johon on tullut juuri viikoittainen päällekkäisyys... - Luento 4.5.2023 klo 10-12 saattaa vaihtua eri päivälle. Syy: Kurssisuunnittelun jälkeen on ilmaantunut aamusta iltaan kestävä kehityspäivä. - Luennot 10.5. ja 17.5. saattavat vaihtua eri päivälle tai aikaisempaan kellonaikaan (suunniteltu alunperin klo 14-16). Syy: Kurssisuunnittelun jälkeen on ilmaantunut projekti, joka saattaa tarvita Paavoa Tampereella fyysisesti klo 16:30 alkaen yhteiskunnallisen vuorovaikutuksen tehtävissä. Ei vielä varmaa, kuinka paljon ja riittäisikö istua etänä Jykylästä käsin... Paikkatarkennuksia: - Yritin samalla istunnolla siirtää tulevia luentoja lähemmäs Agoraa. Auditorioita ei ollut edelleenkään vapaana, eikä uskallus vielä riittänyt irtautua auditoriomaisista tiloista. - Kokeiltaneen uskallusta uudelleen, ja haetaan määrätietoisesti ajatusta tasalattiatilasta, jossa päästäisiin olemaan noin 50 hengen studioyleisön kanssa idyllisemmin kuin auditoriossa konsanaan. Toisaalta kiehtoisi käydä kerran elämässä vetämässä yksi Kunnon Luento yliopiston päärakennuksen isossa salissa... vaikka sitten huvin vuoksi. Tilannekatsausta kevään kurssin kulkuun: - Ilmeisesti ollaan oltu yksi viikko 100% käynnissä. Hienoa! - Demo 1:n palautuslaatikkoon on tullut jo 56 palautusta. Ilmeisesti toimii. - Perjantaina on 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. - Kiitos hyödyllisen keskustelun käynnistymisestä Moodlen vertaistukiryhmässä. Antaa tulla lisää vaan! *** Kohti aihepiirivideoita? - Yksi olennainen tarve on saada aihepiirivideot järkevästi järjestykseen.. Opettajien TODO-listalle varsin pian: Rakennetaan listaus, jossa on linkit Moniviestimeen sekä suositukset siitä, missä vaiheessa, missä järjestyksessä ja mihin asiaan liittyen mikäkin video olisi hyvä kurkistaa. - Dialogisuutta ja "näätäilyä" vuosimallia 2023 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. Emme tee sitä vielä tänään, jotta tämä ennakkotieto ehtii käydä mielessä eikä touhu tule yllätyksenä sitten, kun se tulee. 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: - Herätti ajatuksen, mitä 2020 palautteen antaja on tarkoittanut "kanssaopiskelijoiden yksityiskohtaisilla kysymyksillä, joihin vastaukset löytyvät materiaalista". Onkohan kysyjä ollut joku "kympin oppilas", joka on jo lukenut kaiken valmiiksi.. eli tällainen [suodatettu tästä kohtaa eräs termi pois..] ... Johtaa miettimään, mitä uskaltaa kysyä, ettei "kympin oppilaat" turhaudu! Miten näitä pitäisi käsitellä? "Itse ainakin tulen tilaisuuksiin enemmän tai vähemmän lukematta ennakkoon ainakaan kovin tarkoin" Voisiko joskus vastata "Tämä asia käsitellään materiaalissa, ei mennä siihen nyt..." Onko tämä vähän töykeätä tai lannistavaa? Olisin siitä itse vähän silleen, että "aha, soronoo sitten, pitäkää tunkkinne ja kurssinne kympin oppilaille.." Huom: On myös mahdollista, että kysyjä on nimenomaan jo lukenut sitä materiaalia ja koettanut ymmärtää!! Sitten... Syteen tai saveen: Ensimmäinen videotallenne Stop-napista poikki, ja seuraava toivottavasti alkamaan! *** Tauko 15 minuuttia. Jatketaan tasan 15:10! *** Aihepiiri 1: Aasinsiltoja aineettomasta kulttuuriperinnöstä heksavedoksiin "Aasinsiltoja aineettomasta kulttuuriperinnöstä heksavedoksiin, tutkivaan oppimiseen ja hauskanpidon kautta kynän ja paperin arvostuksen palauttamiseen" Pohjavireitä: Toivottu "mindset" eli suomeksi "mielenlaatu", "asenne". Se olisi tutkiminen, omatoiminen selvittely, mahdollisesti joistain aiheista innostuminen, hauskanpito. Käytännön keinojen hyödyntämistä. Tämäkin alkuluennolla mainitsematta jäänyt saattaa niveltyä tarinaan jollain tavoin: Yksityiskohta Paavon opetusfilosofiaan liittyen: Kynä ja paperi 2020-luvulla ja kenties jotain muutakin, millä saattaa olla kaikuja myös kevään 2023 tapahtumiin luennoilla. - Opiskelutapoihin kokeiltavaksi.. Kynä ja paperi, meibi ehkä? Tuostakin vielä neuvoa muistiinpanojen tekemiseen: http://lsc.cornell.edu/how-to-study/taking-notes/cornell-note-taking-system/ Aasinsillan alkupää eli se aineeton kulttuuriperintö oli siis demoskene, joka on nyt luetteloitu virallisesti aivan jouhikanteleen soiton ja rakentamisen sekä sahansoiton rinnalle: https://www.aineetonkulttuuriperinto.fi/assets/kansallinen-2020-fi2.pdf https://wiki.aineetonkulttuuriperinto.fi/wiki/Demoskene Videolla aasinsilta johtaa takaisinmallinnuksen taitoihin ja tietoturvasovelluksiin. Matka taitetaan biteistä ja heksaluvuista sekä komentorivityökaluista puhuen. *** Tältä päivää oli tässä Huomenna jatketaan jo alle 24 tunnin kuluttua siitä, mihin tänään jäätiin. Kalibroidaan tämän päivän kokemusten pohjalta. Nähdään siis jo aika pian! ** Luento 4: (to 30.3.2023) 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 2023 - Demoja on palautettu jo tosi hyvin: Tänään klo 10:31 oli 80 opiskelijalla Demo 1 tilassa Palautettu. 4 enemmän kuin viime vuonna tässä vaiheessa. Voititte siis alkukiihdytyksen viime vuoteen verrattuna. Mahtavaa!! Keep it comin'! Ryhdymme tarkastamaan näitä sitä tahtia kuin vaan ehditään. Uutiset-viestikanavalle tulee viestiä siinä vaiheessa, kun jokin merkittävä etappi on saavutettu. - Tänä lukuvuonna opetuksessa on ensi viikolla pääsiäistauko, jolloin opettajat yrittävät pitää näpit erossa opetusasioista. Se on meille hieno mahdollisuus tehdä tutkimusta, kehitystä ja rästitöitä. Jokainen opiskelija saa hyödyntää viikon haluamallaan tavalla, eikä esimerkiksi vertaistukikanavalla keskustelu ole kiellettyä. Ilmoitettuun viikoittaiseen työmääräarvioon (16 tuntia viikossa tehokasta opiskelua) ei ole laskettu pääsiäisviikkoa. - Huomenna on ensimmäinen Open labrapäivä. Kysymys-vastaus-osio: - 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 sitten tarvitse palauttaa uudelleen. - Jos olen aiempana vuonna tehnyt jo vaikka demot 1 ja 2, mutta sitten jäänytkin kesken, niin kuinka toimin? Palauta uudelleen joko aiemmin tehty tai nyt uusin tiedoin paranneltu vastaus. Meitä ei haittaa, jos vastaustiedoston nimi on esimerkiksi vastaus22.txt eikä vastaus23.txt. - Jos olen aiempana vuonna tehnyt demot 1-5 ja puuttu vain 6, miten toimin? Ota yhteyttä - puljataan sitten erikseen, erityisesti jos tentti on suoritettu jo aiemman opintojaksototeutuksen puitteissa. - Milloin demotehtävät tyypillisesti aukeavat? Tyypillisesti palautuslaatikko aukeaa viikon toisen luentokerran jälkeen. Huomautus: Etupainotteisesti saa tehdä viime vuoden versioita demoista. Sitten aikailematta tämä video-osuus päätökseen ja toiveikkaasti aihepiirivideon tallennus käyntiin. Opettajat muistavat tarkistaa, että mikrofonit ovat päällä... *** Aihepiiri: Demo 2 alkuun Käydään läpi demo-ohje ja näytetään malliksi vähän esimerkkiä, miten ryhdytään tekemään. Mutta ei toisteta sitä, mitä lyhyessä lisävideossa jo selitetään screenistä. Katso se erikseen sitten demoa tehdessä! Pari muistutusta työvälineistä: - Suositeltavin tapa on ottaa yhteys oman tietokoneen kuoresta esimerkiksi komennolla "ssh omatunnus@jalava.cc.jyu.fi" - Jos näyttää, että osa teksteistä puuttuu, se voi johtua väriasetuksista (taustaväri sattuu olemaan sama kuin jonkin tekstin väri). Koeta saada säädettyä omassa pääteyhteysohjelmassa näitä jostakin "Settings/Preferences/Asetukset/Ominaisuudet"-valikosta tai vastaavasta. - Varmista, että merkistö on omassa pääteyhteysohjelmassa UTF-8, jota etäkoneemme käyttävät. Ääkkösten näkymisessä ei saa sietää ongelmia hetkeäkään! (Esimerkiksi PuTTYssä oletuksena on merkistö Latin-9, mistä joutuu täysin turhiin vaikeuksiin! PuTTyn asetukset kannattaa tallentaa, jos sitä käyttää - sillä säästää monta turhaa minuuttia hukka-aikaa) - Muistaisikohan mainita vähintään ohimennen, että demoissa käytettävä komento "echo" on vuonna 2023 jo standardista poistuvaksi merkitty ominaisuus. Ollakseen "future-proof", sen tilalla saa halutessaan opetella käyttämään kuorikomentoa "printf". (Saatiin tähän kysymykseen vastaus: En muistanut mainita tätä videolla ohimennenkään. Tulee hyvin esiin myöhemmin, ei hätää.) *** Tauko 13 minuuttia. Jatketaan tasan 13:10. Tauon jälkeen opettaja laittaa mikrofonin päälle ja tarkistaa äänet!! Ja muistaa laittaa nauhoituksen päälle. *** Aihepiiri: Luentomoniste ja muu oppikirjallisuus Sukellus luentomonisteeseen sivulta 1 alkaen. Mikä dokkari? Kenen kaikkien tekemä? Miten tätä luetaan ja käytetään luennoilla tai kotioloissa? Mitä siitä tullaan käymään läpi ja missä opintojaksototeutuksemme tilaisuuksissa? Mitäs sitten, jos katsot tätä aihepiirivideota joskus tulevaisuudessa, kun luentomonisteen versio on erilainen kuin tässä videossa nähtävä? Käydään läpi, mihin tänään ehditään. Tavoitteena alustaa lukuun 4 asti! Tähän tarvittaessa muistiinpanoja, mitä tuli käytyä. Lisäksi: Mitä muita oppikirjoja maailmalla on? Kysymys-vastaus-osio: - Onko luentomonisteessa ja opintojaksolla käytettävä kieli C eikä C++? Kyllä. - Jos kerran käydään läpi konekieltä, niin eikös se ole eri tietokonelaitteissa erilainen? Kyllä. *** Aihepiiri: Informaation valtatien päässä on speksi? Eli reaalimaailman dokumentaatio, jonka etsimis- ja lukemistaidot ovat tärkeä osaamistavoite. Otetaan tässä kohtaa ensi kosketus oikeisiin dokkareihin. Näihin pyritään palaamaan jatkossa tuon tuostakin. Kaikenlaista on tarkoitus opetella tutkimaan omatoimisesti, kun ensin on kiinnostus ja halu. Loppu on sitten teknistä: miten löydetään speksejä, mitä niistä etsitään, miksi ja millä tavoin? Heti kärkeen: Mikä ihmeen POSIX? Tuo nimihän alkaa esiintyä demoissa enenevässä määrin. Kysytään Vikkelästi Googlelta (KVG) ja edetään siitä. Todennäköisesti muutenkin on mieltä askarruttamaan jäänyt kysymys: "Mikä oikeastaan on 'rajapinta' nyt tämän kurssin määritelmän mukaan?" Vastaus tulee kurssin mittaan konkreettisina esimerkkeinä: POSIX (käyttöjärjestelmärajapinta), C99 (ohjelmointikielirajapinta, osa POSIXia), AMD64 (prosessorilaiterajapinta), SysV ABI AMD64 Supplement (sovelluksen binäärirajapinta). *** 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. 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. - 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! Sunnuntaina 2.4.2023 käy äänestämässä eduskuntavaaleissa omien arvojesi mukaisesti. ** (Tämän vuoden pääsiäistauko, 1 viikko, tapahtui tässä kohtaa) ** Luento 5: (ke 12.4.2023) (P/J) Aihepiirivideoita Yritetään päästä tykittämään tasan 14:15. Ei ihan päästy. Jatkossa yritetään! *** Päivän päätavoitteet: - Aiheiden järjestelmällistä läpikäyntiä. Esilukemistona tähän asti oli: monisteen luvut 1-4 ja demojen 1-2 ohjetekstit. - Kokeile tehdä muistiinpanoja paperiin; esimerkiksi avainsanoja, joista haluat kysyä tarkennusta, kun tulee kysymys-/vastaushetki. *** Infot keväälle 2023 ja oikeutettu mainos Tilannekatsausta: - Vertaistukikanava kukoistaa! Hieno homma! - Aihepiirivideoiden ja tekstimuotoisten muistiinpanojen sijoittelu ja tiekartta hakevat muotoaan. Todetaan kurssin nettisivulta tilanne, johon ennen pääsiäistaukoa ehdittiin: Uusi org-tiedosto materiaalivaraston juuressa ja siihen suora linkki nettisivulta. - Demojen tarkastukset ovat nyt alkaneet. - Pääsiäistauko ja tämän viikon väitöstilaisuus tekee vielä pientä käynnistysviivettä. - Videotallenteet melko todennäköisesti viivästyvät tällä viikolla. Syy on huominen väitöstilaisuus... - Siihen liittyen mainos: Väitöstilaisuudet ovat julkisia, ja niiden on tarkoitus olla sekä kaikelle kansalle että oman talon opiskelijoille ikkuna tutkimuksen maailmaan. Huomenna Joakim Linja, ensi viikolla Karo Saharinen. Tiedossa olevat väitökset löytyvät aina tuolta: https://www.jyu.fi/fi/ajankohtaista/kokoelmat-rss-feedeja-varten-tiedekunnat-ja-yksikot/vaitos-it (joka löytyy hakukoneella tyyliin "väitökset jyu it") Esimerkiksi huomenna käyttöjärjestelmäluennon jälkeen vaan kaikki katsomaan, miten kakkosohjaajan korvat punastuu vastaväittäjän esittäessä vastaväitteitään :-). - Huomenna annettaneen tehtäväksi demo 3 ja seuraavalla viikolla demo 4. Siihen tulee sitten liittymään Sisussa näkyvät "Laboratoriotyö"-sessiot, joista tarkempia tietoja ensi viikon info-osuuksissa. Yritetään säätää siten ja kokeilla vaikka perjantain labrapäivässä käytännössäkin, että Sisussa voisi valikoida itselle sopivimman ajankohdan. Itsenäinenkin suoritus on mahdollinen, mutta kenties hiukan työläämpi kuin samat asiat läpi rientävä läsnäsessio. - Perjantaina päivystysluonteinen "open labrapäivä" tällä kertaa iltapäivällä klo 14-17. Käyttäkää hyödyksi! Viime kerralla saatiin hyvin vastauksia kaikenlaiseen. *** Tauko 13 minuuttia. Jatketaan tasan 15:05 Opettajat tarkistavat mikrofonit ja ääniasetukset!! Alkuun copyright notice näkyviin. Muistetaan painaa Record-nappia. *** Aihepiiri: "Hei, maailma" ja mitä siitä saadaan irti Tutkivaa selvittelyä ja uteliasta takaisinmallintelua erästä avointa ja ilmaista luentomonistetta mukaillen. Reaalimaailman dokumentaatiot mukana kuljettaen ja niiden roolia asia kerrallaan selkeyttäen. - Muistetaanpa pistää siis uhallakin lisää copyrightin alaista kamaa ruutuun samalla kun myös on sormet savessa pääteyhteydellä palvelinkoneeseen. - Opettaja ottakoon lunttilapukseen toiselle näytölle luentomonisteen "Hei maailma" -osion. Se tarjoaa tekstimuotoisen koonnin tämän aihepiirin asioista. - Tavoitteena live-koodaus ja live-tekeminen. Jokainen vahingossa tai tahallaan tuleva virhe ja ihmetys on olennainen autenttisen käsittelyn osa. Yritetään saada virheitäkin ruutuun! - Samoin "setä saattaa selittää puutaheinää"; oikea totuus on spekseissä, joita tässä samalla nähdään. Käsitteitä, joita olisi hyvä käydä läpi, esimerkiksi: - Tiedosto, tiedostojärjestelmä, hakemisto, tiedostonimi, tiedoston aikaleimat, käyttöoikeudet, sisältö, heksavedos, i-solmu, lähdekoodi, kääntäjä, kääntäminen, kohdekoodi, kohdetiedosto, suoritettava ohjelmatiedosto, linkittäminen, lataaminen, suorittaminen, konekieli, prosessori, prosessi, prosessinhallinta - Minkä tason rajapintadokumentaatio ottaa kantaa mihinkin? Tässä aihepiirivideossa päästiin kivasti käsiksi moneen ylläolevista. Luonteva jatko tälle on pureutua konekieleen, prosessoriarkkitehtuuriin, debuggeriin ja takaisinkäännökseen. Teemme sen heti huomenna 2023... Mahdollista tässä tai ehkä mieluummin jossain muussa aihepiirivideossa (kun tämä olisi nyt ehkä vaan yhteen esimerkkikokoonpanoon liittyvä): - Malliksi muita rajapintoja kuin kurssin esimerkkeinä olevat: vaikka ARM-manuaali (erilainen prosessoriarkkitehtuuri), C# library APIs, Java API, OpenGL grafiikkarajapinta, ...muita? Ihan vaan nopeesti malliksi siitä, millaisten asioiden otsikossa tai ensimmäisessä lauseessa sanotaan "This is an API / collection of APIs". *** Muita aihepiirejä, jos aikaa jää Ideakuvastoa sopivista aihepiireistä: - Jokainen speksi voisi ansaita oman täsmäkäsittelynsä. - Leikkitietokoneet? - "Kysytään ChatGPT:ltä" on nykyään aina hyvä aihe.. *** 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 17 tuntia viikossa tehokasta tekemistä. Muista tauot ja lepo, koska muuten ne varsinaiset tekemisen hetket eivät ole enää tehokkaita! *** Tältä päivää oli tässä Huomenna poimitaan suoraan siitä, mihin tänään jäätiin. ** Luento 6: (to 13.4.2023) (P/J) Karhuluento ("opettajat opettaa") *** Infot keväälle 2023 - Ei juuri kummempaa. Kurssi rullaa eteenpäin - Tänään tärkeintä meidän talossa on Joakimin väitöstilaisuus klo 12:15 - Demon 2 tekemisen jälkeen on erittäin hyvä hetki katsoa muutama niihin liittyvä opastusvideo erillisten videoiden kansiosta Moniviestimessä! *** 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. - Jatketaan eilisestä aiheesta aihepiirivideota. *** Seuraava ennakkotehtävä Luettavaa: - Luvut 1-4 uusin silmin, vahvistaen ja sisäistäen. - Demon 3 ohjetekstit. - Lukua 5.1 antamaan lisävaloa edellisiin. Ei vielä pidemmälle. Tekemistä: - Demo 2 valmiiksi ja palautusjärjestelmään! - Tarkista demoihin 1-2 liittyviltä erillisvideoilta, että olet oppinut niissä käsitellyt asiat. Videot syntyivät 2 viime vuoden aikana palautteeksi useiten havaituista ongelmista ekoissa demoissa. - Demo 3 työn alle. - Tee käytännön kokeiluja esitetyistä asioista! 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! Yleisökommentti luvuista 1-4: - "Aloitin tapani mukaan lukea vähän myöhemmin, ja huomasin, että lukemisto onkin aika tiukkaa. Erityisesti termejä tulee paljon ja ne pitää sisäistää, tai muuten menee ihan pihalle. Vaatii paljon fokusta." - Havaintoa kompattiin. "Huomaan avaavani Googlen ja tarkistavani, mitä termi tarkoittaa." *** Demo 3 esittely ja lukujen 3-4 konkretiaa Käydään läpi demo-ohjetta ja näytetään malliksi vähän esimerkkiä, miten ryhdytään tekemään. - Luvun 3-4 aihepiireissä demon 3 "kickstarttia" ja yhtymäkohtaa monisteen ja demoharjoitteiden välillä. HUOM: demossa 3 vähän lupaillaan, että luennolla on näytetty debuggerin käyttöä, joten se on syytä tulla tässä samalla. Ehditäänkö esimerkiksi käynnistää debuggeri ja kokeilla "disassemble /mr main". Tästä on hyvä jatkaa myöhemmin, kun kaikki on ensin päässeet ohjeen kanssa hiukan kokeilemaan. *** Tauko 13 minuuttia. Jatketaan tasan 11:20 Tarkistakaa mikrofonit. Copyright-kalvo! Nauhoitus päälle! *** Aihepiirivideo: Hei maailma jatko-osa, debuggeri ym. Eilisestä jatkuu suoraan. Eli siis: *** Aihepiiri: "Hei, maailma" ja mitä siitä saadaan irti lisää Tutkivaa selvittelyä ja uteliasta takaisinmallintelua erästä avointa ja ilmaista luentomonistetta mukaillen. Reaalimaailman dokumentaatiot mukana kuljettaen ja niiden roolia asia kerrallaan selkeyttäen. - Muistetaanpa pistää siis uhallakin lisää copyrightin alaista kamaa ruutuun samalla kun myös on sormet savessa pääteyhteydellä palvelinkoneeseen. - Opettaja ottakoon lunttilapukseen toiselle näytölle luentomonisteen "Hei maailma" -osion. Se tarjoaa tekstimuotoisen koonnin tämän aihepiirin asioista. - Tavoitteena live-koodaus ja live-tekeminen. Jokainen vahingossa tai tahallaan tuleva virhe ja ihmetys on olennainen autenttisen käsittelyn osa. Yritetään saada virheitäkin ruutuun! - Samoin "setä saattaa selittää puutaheinää"; oikea totuus on spekseissä, joita tässä samalla nähdään. Käsitteitä, joita olisi hyvä käydä läpi, esimerkiksi: - Tiedosto, tiedostojärjestelmä, hakemisto, tiedostonimi, tiedoston aikaleimat, käyttöoikeudet, sisältö, heksavedos, i-solmu, lähdekoodi, kääntäjä, kääntäminen, kohdekoodi, kohdetiedosto, suoritettava ohjelmatiedosto, linkittäminen, lataaminen, suorittaminen, konekieli, prosessori, prosessi, prosessinhallinta - Minkä tason rajapintadokumentaatio ottaa kantaa mihinkin? Tässä aihepiirivideossa päästiin kivasti käsiksi moneen ylläolevista. Luonteva jatko tälle on pureutua konekieleen, prosessoriarkkitehtuuriin, debuggeriin ja takaisinkäännökseen. Teemme sen heti huomenna 2023... Mahdollista tässä tai ehkä mieluummin jossain muussa aihepiirivideossa (kun tämä olisi nyt ehkä vaan yhteen esimerkkikokoonpanoon liittyvä): - Malliksi muita rajapintoja kuin kurssin esimerkkeinä olevat: vaikka ARM-manuaali (erilainen prosessoriarkkitehtuuri), C# library APIs, Java API, OpenGL grafiikkarajapinta, ...muita? Ihan vaan nopeesti malliksi siitä, millaisten asioiden otsikossa tai ensimmäisessä lauseessa sanotaan "This is an API / collection of APIs". *** 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. ** Luento 7: (ke 19.4.2023) (P/J) Karhuluento ("opettajat opettaa") Yritetään käynnistää tasan 14:15! Säädöt kestävät joskus, kun ollaan "kiertolaisina" erilaisissa luentosaleissa. *** Päivän päätavoitteet: - Ensi viikon kuvio selväksi: Demo 4 ohjetestit luettuna, mahdollisuus tulla paikalle johonkin 2 tunnin mittaiseen istuntoon. Osallistuminen toivottua, mutta ei pakollista. Myös itsenäinen suoritusmahdollisuus on. Näistä tarkemmin kohdassa "Infoisku keväälle 2023" heti alla. - Asioiden järjestelmällistä käsittelyä eteenpäin aihepiirivideoiden muodossa. Tänään vielä "Karhuluento". Huomenna voisi olla lisäksi jonkinlaista Näätäilyä tenttitärpin parissa. Esimerkiksi kokeiluluontoisesti tauon jälkeen, viikon viimeisen luentotunnin ajan. Ryhmäkeskustelu ei pamahda yllättäen eteen, kun se on nyt etukäteen luvattu :). *** Infoisku keväälle 2023 - Opintojaksototeutus kulkee kuin juna: Vertaistukikanava jyllää ja Open labrapäivässä toimintatavat ja mielikuvamallit oikenevat. Sen voi oikein kuulla, miten päässä humisee, kun asiat selkenevät. Jee! Studioyleisö voisi antaa tällä perusteella ansaitut aplodit itsellemme ja kurssikavereille tässä vaiheessa! - Pieniä säätöjä opetustiloihin tulee, kuten tähänkin asti. Esimerkiksi huomenna ollaan Alfa-salissa eikä yliopiston päärakennuksella. - Ensi viikolla tapahtuu "Demo 4 porukalla" - mitä tämä tarkoittaa!? Tutustu jo tällä viikolla Demon 4 ohjetekstiin, joka kertoo C-kielestä. Ilmoittaudu Sisussa itselle sopivaan "Laboratoriotyö" -sessioon. Tule paikalle näkemään porukkaa livenä, niin saat demon 4 suoritettua. Mutta jos on flunssaoireita, pysy kotona. Itsenäinen suoritusmahdollisuus tietenkin on, mutta se avataan myöhemmin, ettei jäädä sen takia kotiin jumimaan, että demo on jo tehty. Oppimiseen pelkkä suoritus ei riitä, vaan tarvitaan aikaa, kokeiluja ja toistoja asian parissa. Ei siis mitään uutta auringon alla. - Luettavaa lisää poikkeuksellisesti jo tänään: Demo 4 ohjeteksti on ennakkolukemistoa ensi viikon ryhmätöihin. Päivitetty tälle vuodelle. Ei muuta kuin lukemaan!! Myös monisteen luku 5.2 liittyy aiheeseen, joten ryhdy silmäilemään sitäkin. Kaikki loput demot täsmentävät näitä aiheita lisää, joten "alkujärkytys" on normaali olotila eikä se haittaa vielä tässä vaiheessa. Koeta ymmärtää mahdollisimman paljon, mutta anna armoa itsellesi, jos kysymyksiä herää enemmän kuin ehtii saada vastauksen. *** 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 (alustavasti) - Aiempia asioita uusin silmin ja kertaillen, kuten aina. Sitten asiaan tänään: Aiheita järjestelmällisesti eteenpäin. *** Aihepiiri: Demo 4 alkukäynnistys Käydään läpi demon 4 ohjeistusta. *** Tauko 9 minuuttia. Jatketaan tykitystä klo 15:30 tasan. *** Aihepiirivideo: C-kielen roolista tässä maailmassa Huomio keskustelusta, jota ei ollut tarkoitus nauhoittaa. Nauhoitetaan kuitenkin. Vastuuvapauslauseke: Osa keskustelusta saattaa sisältää puhujien omia mielipiteitä, jotka eivät välttämättä ole Jyväskylän yliopiston virallinen kanta. Herätteenä oli yleisökysymys: Miksi yliopistossa ei aloiteta opiskelua C-kielestä? Ensimmäinen esimerkkivastaus: Koska se on aivan kauhea kieli. Videolla paljon lisää dialogia asiasta. Jatkokysymys: Mistä kielestä olisi hyvä aloittaa ohjelmoinnin opetus? Mitä vaihtoehtoja voisi olla, ja miten niitä voisi perustella? On muuten perusteltukin, tutkimukseen pohjautuen!! Paljon erilaisia vaihtoehtoja. C:ssä on historian taakkaa. Herää relevantti jatkokysymys: Miksi sitten jossain vaiheessa pitää opetella C-kieltä? Keskustelua studioyleisön kanssa: Mitäs tehdään sen asian kanssa, että opetellaan tässä matkan varrella aika monia erilaisia kieliä, jotka meinaa mennä sekaisin päässä? "Osaat pikkuisen jotakin kaikenlaisesta, mutta et oikein mitään kunnolla?" Olisiko mahdollisesti parempi, että opeteltaisiin ensin yksi kieli ihan tosi hyvin ja vasta sitten joku seuraava? Vastauksen aihioita: TIOBE-listaus.. yleispätevät käsitteet syntaksien takana. Kyky oppia koko ajan uutta. Havaintoja yleisöstä: - Oma kokemus 12 vuoden koodaustyöstä on, että aina pitää opetella uutta. Siinäpä juuri oiva kokemusasiantuntijan vakuutus siitä, että ohjelmointikieltä kannattaa vaihdella jo koulutuksen aikana usein. Parasta mahdollista ratkaisua luultavasti ei ole olemassa, kuten todellisen maailman ongelmiin yleensä ei ole. Erilaisissa tavoissa tehdä asioita on puolensa ja puolensa. *** Tältä päivää oli tässä Huomenna taas jo hyvin pian nähdään!! ** Luento 8: (to 20.4.2023) (P/J) Karhuluento, ehkä myös vähän 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. *** 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. - Jatketaan käytännön esimerkkejä tasan siitä, mihin viimeksi jäätiin. - Tauon jälkeen ryhdytään katselemaan tenttiä. Tehdään sitä "näätäillen" yksin-ryhmissä-kaikki -tyyppisellä pohdintatehtävällä. *** Infot keväälle 2023 - Huomenna Open labrapäivä perinteisin menoin. Tervetuloa. - 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ä. Mahdolliset ajat on Sisussa. Voit valita itselle sopivan ja TULLA PAIKALLE *ENNEN VARTIN YLI*. + Jos tuntuu, että tarvitset tai haluat, voit tulla ilman ilmoittatutumista uuteenkin ryhmään. *** Seuraava ennakkotehtävä Lukemista: - Demo 4 ohjeteksti; tärkeä ensi viikon demo 4 -ryhmätöitä varten! - Monisteen luku 5 ennen demo 4 -ryhmätyötä. - Monisteen luku 6 heti demo 4:n jälkeen. Tekemistä: - Demo 3 valmiiksi ja palautus + asioiden sisäistäminen Kestomuistutus: 5 opintopistettä 8 viikossa tarkoittaa keskimäärin 16-17 tuntia viikossa tehokasta tekemistä. Muista tauot ja lepo, koska muuten ne varsinaiset tekemisen hetketkään eivät ole niin tehokkaita kuin voisivat olla! *** Väliaihepiiri (nauhoitettu info-osuuteen, sori): .screenrc -asetustiedosto 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. *** Tauko 11 minuuttia. Jatkuu tasan 11:25 Äänitesti, videokalvo, nauhoitusnappi. *** Aihepiiri: "Hei, maailma" vielä ainakin kerran (osa 3 tässä vaiheessa). Poimitaan ajatukset aiemmalta kerralta, ja mennään vielä eteenpäin. Tavoite: Näytetään lisää, mitä ja miten pääsee itsekin kokeilemaan ja tutkimaan suhteessa monisteen luvuissa 2-5 alustettuun teoriaan. C-kieli, debuggeri, konekieli. "-g -O0 -Wall" Suoritussykli, muisti. ** Luento 9: (ke 26.4.2023) (P/J) Tähään karhu, huomenna näätä *** Infot keväälle 2023 - Huomennakaan ei päästä kokemaan päärakennuksen juhlasalia, vaan varattiin Agorasta Alfa. - Viime kerralla Alfassa oli poikkeuksellinen tuplabuukkaus, jollaista ei pitäisi huomenna olla. - Demotarkastusten tilannekatsaus? *** Meneillään olevat tehtävät (huomenna mennään taas eteenpäin tästäkin!) Jos seurailet keväällä 2023 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. Tämän viikon tarjonta: - Demo 4 itsenäiseen suoritustapaan avautui palautuslaatikko aamulla klo 10:01. Ryhdy tekemään, jos et ehtinyt ryhmäsessioihin! Löytyy normaalista paikasta HTML-vedoksena. Ohjeellinen aikataulu on perjantai klo 17, johon mennessä ehtii olla vielä myös Open labrapäivä. - Edessä seuraavaksi Demo 4b. Sen käynnistämiseksi tehdään taas kickstart-video tänään tai huomenna. - Huomenna luento, perjantaina Open labrapäivä. Lukemista: - Demo 4 ohjeteksti - Monisteen luvut 5 ja 6. Tekemistä: - Demot 3 ja 4 valmiiksi ja palautus + asioiden sisäistäminen 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! *** Aihepiiri: Demo 4 terveiset porukkasessioista + evästystä itsenäiseen suoritukseen Laitetaan heti tähän väliin, että muistetaan tämä. Katsotaan, mitä alkuviikosta tehtiin mikroluokissa. Kiitos ryhmille vielä - oli hauskaa puuhaa mikroluokassa! Nyt pääsee tekemään samaa itsenäisesti, jos ei päässyt paikalle ryhmäsessioihin. Kevään 2023 vertaistukikanava tavoittaa nyt useita kymmeniä kurssikavereita, joilla on käytettävissään täydellinen mallivastaus demoon 4. Heiltä saa toivottavasti vinkkejä, mutta ei spoilereita :). Oppiminen tapahtuu pohtimalla ja yrittämällä itse. **Tekemisen jälkeen** pääsee käsiksi mainittuun mallivastaukseen itse kukin. Käydään läpi demo 4:n ohjetta ja näytetään vähän mallia, miten itsenäinen tekeminen eroaa ryhmätyönä tehdystä. Näytetään vielä mm. C# ja C-esimerkit. Muistettaisiinko käydä läpi seuraavat erityiskohteet: - mikroluokassa tehtyjä havaintoja screeneistä, editoreista, UTF-8 merkistöistä, terminaali-ikkunan väreistä ja muusta, mitä kävi ilmi olan yli katsomalla tai yllättävistä ilmiöistä - Lisähuomio: Uteliaisuus on toivottua, mutta lisäksi tarvitaan lähdekritiikki. Tieto löytyy usein jopa lähempää kuin sieltä internetin syövereistä. Esimerkiksi komento "man malloc" - Metataito (onko muita olennaisia taitoja olemassakaan): Siirtyminen koodin "tuijottamisesta" koodin ymmärtämiseen. *** Tauko 13 minuuttia. Jatketaan tasan 15:20 *** Aihepiiri: Demo 4b alkuohjeistus Käydään läpi demo-ohje ja näytetään malliksi vähän esimerkkiä, miten ryhdytään tekemään: Hakemiston luonti, paketin nouto ja avaus, mallikoodiin tutustuminen opituilla työkaluilla (tärkeä!), dokumentaation lukeminen (myös tärkeä!), toimeen tarttuminen (oho; tärkeä varmaan tämäkin!). Monisteen konekieliesimerkkien huolellinen tutkiminen ja soveltaminen: mitä tarkoittaa? ** Luento 10: (to 27.4.2023) (P/J) Karhuluento *** Tämän luennon tavoite - 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. *** Infot keväälle 2023 - Ei pitäis olla mitään uutta auringon alla. Suoraan asioihin vaan siis. Ensin kuitenkin katsaus oletettuun vaiheeseen lukemiston ja tekemistön kanssa. - Ohjeellinen kevään 2023 aikataulujuoksutus tehtiin yleisön pyynnöstä näkyväksi Moodleen. *** Seuraava ennakkotehtävä Lukemista: - Demo 4b ohjeteksti - Monisteen luvut 7-8 Tekemistä: - Demo 4 valmiiksi ja palautus + asioiden sisäistäminen Ryhmätehtävän suorittaneillekin pitäisi olla nyt mallivastaus demosta 4 saatavilla! Vilkaise! - Demo 4b työn alle. Kestomuistutus: 5 opintopistettä 8 viikossa tarkoittaa keskimäärin 16-17 tuntia viikossa tehokasta tekemistä. Muista tauot ja lepo, koska muuten ne varsinaiset tekemisen hetketkään eivät ole niin tehokkaita kuin voisivat olla! *** Aihepiiri: Sovellus komentojonotiedostolle - komennot c11 "Skripti" on suomeksi mieluummin komentojonotiedosto. Videolle tarttui hienon studioyleisön siivittämänä oivallinen kattaus käyttöjärjestelmiä käsittelevän opintojakson ydinosaamisasioita. *** Tauko 12 minuuttia. Jatketaan tasan 11:20 Jatketaan tasan 11:20 *** Aihepiiri: Tentin yleiskuva. Yksi tärppikysymys, jos ehditään. 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. Käytiin mallitentistä ensimmäinen kysymys tarkoin läpi. Myöhemmin tehtäväksi jää: Rakennellaan pieni yksin-ryhmissä-kaikki -harjoite, jos on aikaa. ** Open Labrapäivän jälkeen 28.4.2023 nauhoitettu lisäaihepiiri *** Aihepiiri: Havainnekuvien piirtäminen - miksi, miten ja mitä esimerkiksi? Katsotaan, mitä tuutista tulee. Kerralla purkkiin! - ainoa tapa lentää... Ja tuutistahan tuli aika hyvin tavaraa, joka tuntui ainakin omasta mielestä hyödylliseltä ja tärkeältä. ** Luento 11: (ke 3.5.2023) (P/J) Tilanteen mukaista etenemistä *** Infot keväälle 2023 - Demotarkastukset pitkälti ajan tasalla kevään osalta: 1-3 tarkastettu ja 4 tarkastetaan seuraavaksi. Etapeista ilmoitetaan Uutiset-kanavalla, kun esimerkiksi kaikki on tarkastettu. - Väki saa huisin paljon apuja Open labrapäivissä. - Vertaistukikanavalla on ollut vapun aikana huolettavan hiljaista.. Siellä kertyy nyt koko ajan porukkaa, jolla on käytössään täydet mallivastaukset meneillään oleviin demoihin. Eli vinkkejä on saatavilla, kun vaan kysyt kavereilta! *** Päivän päätavoitteet: - Asiassa eteenpäin, tasaisen aikataulun ja havaintojen perusteella. - Mahdollisesti tenttitärppi (tauon jälkeen), jos on aikaa. Jos ei ole, niin sitten siirtyy lähemmäs tenttiä. *** Seuraava ennakkotehtävä Lukemista: - Demo 5 ohjeteksti - Monisteen luvut 9-10 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ä! 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: Havaintoja open labrapäivästä demojen 4 ja 4b kohdalla Havaintoja ja esimerkkejä open labrapäivistä. **** Työskentelytavat Joillain on jo hyvin näppärän näköistä työskentelyä Emacsin, Vimin ja Screenin kanssa. On hienoa katseltavaa! Joillain on vielä aivan tarpeettomia hankaluuksia - esimerkiksi lukematon määrä ylimääräisiä screenejä ja editoreja. Oli hyödyllistä katseltavaa! Hyvä, että oltiin samassa tilassa tekemässä ja jaettiin kuvaruutuja Zoomilla! Muistakaa opastusvideo "Screenin käyttelyä aloittelijalle" ja muut jo aiempina vuosina nauhoitellut lisävideot! Ne kannattaa koettaa ymmärtää ja viedä käytäntöön! Jos niissä on jotakin epäselvää, niin kannattaa kysyä tarkennuksia täsmänä! Kertausta aiemmasta: Päätteen fonttikokoa ja värejä voi muuttaa mieleisemmäksi. *Kannattaa varmistua omalta kohdalta,* että homma on näppärää, eikä aika mene johonkin, mikä ei liity asiaan eli kuoreen, C:hen, konekieleen, tietokonelaitteistoon, muistiin, käyttöjärjestelmäkutsuihin ja muuhun, minkä tutkimiseen sen ajan pitäisi mennä harmittelun sijaan. **** Työskentelytavat, osa 2: koodaaminen Pieni muutos kerrallaan! Koko ajan homma näpeissä ja ymmärryskin mukana! Kääntäjän virheilmoituksia on opittava lukemaan - ensimmäinen virhe pitää aina korjata, koska loput voivat johtua siitä. Varoitukset kannattaa pyytää kääntäjältä, eikä niitä passaa jättää korjaamatta, koska ne ovat lähes aina merkki siitä, että ohjelma tekee jotakin, mitä et ole tarkoittanut (tai vielä ymmärtänyt). Debuggeri auttaa, kun virhe ilmenee niin, että ohjelma kaatuu! *** Aihepiiri: Demon 5 alkuopastus Tämän voi ehkä tehdä nopeastikin!? (Aiemmin ei ole oikein onnistunut, kun tässäkin on tärkeitä ja painotettavia asioita jonkin verran). Käydään läpi demo-ohje ja näytetään malliksi vähän esimerkkiä, miten ryhdytään tekemään. *** Tauko 9 minuuttia. Jatketaan tasan 15:35 *** Ei tarvinnut nauhoittaa: Demo 4b edistäminen + debuggerin käyttely Ajatuksena oli näyttää pikkuesimerkki pienestä muutoksesta, kokeilemisesta ja debuggerin käyttelystä. Mutta tätäpäs tulikin jo 3.5.2023 ennen taukoa nauhoitetuissa pätkissä. Demo 5:n ohjeessa on lisää debuggeriopastusta, ja aiheeseen varmasti palataan. Eipä siis tarvitakaan ainakaan tähän kohtaan lisäaihepiirivideota Demosta 4b. *** Virittäytyminen: Jatketaan asioiden järjestelmällistä käyntiä Teorian ja käytännön käsittelyä koodiliitteen esimerkkien avulla ja lennostakin kokeiluja tehden: C:tä, kuorta, konekieltä ja dokumentaatioiden tarkistelua livenä. Eli mallia opittavista asioista, utelias ja uskalias asenne mukaanlukien. *** Aihepiiri: Koodiliitteen lataaminen ja omatoiminen tutkiminen Olemme matkalla kohti koodiliitettä. Katsotaan, mistä koodit saa haettua suoraan versionhallinnan web-liittymän URLeista. Koodiliitteen koodit vois vaikka ottaa esimerkkikansioon, kun niihin tullaan palailemaan meneillään olevan kevätkurssin puitteissa. Samalla saa tallenteeseen autenttisen esimerkin siitä, miten voi itse tehdä saman. Ja esimerkistä tuli sellainen kuin ehkä vain livenä, ilman tarkkaa käsikirjoitusta, on mahdollista: Nähtiin, miten kuori on kuin MacGyverin linkkuveitsi esimerkiksi jonkun netistä tulevan datan, apuohjelmien tulostamien lokitietojen ja lähdekoodien tutkimisen kanssa. ** Luento 12: (to 4.5.2023) (J) +Karhuluento+ Rusinanteluento *** Infot keväälle 2023 - Ei mitään uutta - homma rullaa, kun rullataan vaan! - Paitsi jos yleisöllä on mielessä kysymyksiä tämän kevään käytännön toimenpiteistä? *** +Tämän luennon tavoite+ - Karhu ei jää kyselemään pitkäksi aikaa. Karhu vaan painaa menemään, selittää kovasti mennessään ja vääntää rautalankaa niin paljon kuin pystyy. - Päivän lopuksi tiedetään, mitä seuraavaksi pitää tehdä ennen seuraavia yhteisiä tapaamisia: Seuraavaksi demo 5 ohjeteksteineen, monisteen luvut 9-10. - Little man computer ja käydään läpi monistetta varmistaen ja kysellen, eli pattika-pattika ja pakkia-pakkia, sano Rusinante. *** Seuraava ennakkotehtävä (käsiteltiin jo luennolla 11) Lukemista: - Demo 5 ohjeteksti - Monisteen luvut 9-10 Tekemistä: - Demo 4b valmiiksi ja palautus + asioiden sisäistäminen - Demo 5 työn alle. HUOMAUTUS: Demo 5:n katselu voi auttaa myös demo 4b:n ymmärtämistä! Kestomuistutus: 5 opintopistettä 8 viikossa tarkoittaa keskimäärin 16-17 tuntia viikossa tehokasta tekemistä. Muista tauot ja lepo, koska muuten ne varsinaiset tekemisen hetketkään eivät ole niin tehokkaita kuin voisivat olla! *** Aihepiiri: "Little man computer" avuksi koneen toiminnan ymmärrykseen Elävää animaatiota minimalistisen tietokoneen toiminnasta. Näytetään luennolla vähäsen: http://peterhigginson.co.uk/LMC/ Samalta kaverilta karsittu ARM-prosessorisimulaatio: http://peterhigginson.co.uk/ARMlite/ Kun perusidea on hahmottunut, me opettelemme käyttämään gdb:tä aivan todellisen tietokoneen kanssa! *** Tauko oli sopivassa kohdassa *** Aihepiiri (ei videojulkaisua): Luentomonisteen selailua Luentomonistetta alusta läpikäyden eri kohtia korostaen: - Kerrosrakenne käyttöjärjestelmässä. - Tietokoneen rakenne: teoreettinen, eli kurssilla riittävä ja todellinen, eli jatkokurssien asia. - Prosessorin teoreettinen, yksinkertaistettu rakenne. Nykyprosessorit käsitellään muilla kursseilla. - Lista, pino ja puu tietorakenteena. - Binääri-, heksa- ja oktaaliluvut. ** Luento 13: (ke 10.5.2023) (P/J) Aihepiirejä Aletaan tykittää tasan 14:15! Ainakin yritetään taas. *** Infot keväälle 2023 - Demot 1-3 pitkälti tarkastettu; etenemme demo 4:n itsenäisten suoritusten tarkastamista kohti asap. Tilanne näköjään sama kuin viime vuonna tähän aikaan keväästä. - Suosituimpia kaloja demon 3 perusteella tähän asti (case-sensitive; Pallokala != pallokala): 10 Ympäristömuuttuja LEMPIKALA == lohi 8 Ympäristömuuttuja LEMPIKALA == ahven 7 Ympäristömuuttuja LEMPIKALA == pallokala 6 Ympäristömuuttuja LEMPIKALA == miekkakala 6 Ympäristömuuttuja LEMPIKALA == kultakala 6 Ympäristömuuttuja LEMPIKALA == hauki 5 Ympäristömuuttuja LEMPIKALA == Ahven 4 Ympäristömuuttuja LEMPIKALA == muikku 3 Ympäristömuuttuja LEMPIKALA == tonnikala 3 Ympäristömuuttuja LEMPIKALA == Pirkkala (tehdään alla oleva kuoriharjoite tähän vuoden 2023 osalta) - Viime vuoden (2022) suosikit: 7 Ympäristömuuttuja LEMPIKALA == miekkakala 7 Ympäristömuuttuja LEMPIKALA == lohi 6 Ympäristömuuttuja LEMPIKALA == ahven 5 Ympäristömuuttuja LEMPIKALA == muikku 4 Ympäristömuuttuja LEMPIKALA == Lohi 4 Ympäristömuuttuja LEMPIKALA == Kuha 4 Ympäristömuuttuja LEMPIKALA == kissakala 4 Ympäristömuuttuja LEMPIKALA == hauki 4 Ympäristömuuttuja LEMPIKALA == Ahven 3 Ympäristömuuttuja LEMPIKALA == kultakala - Top-listan muodostaminen bash-komentorivillä: find . -name "*.txt" | while read a; do grep LEMPIKALA "$a" ; done | sort | uniq -c | sort -n -r | head Kuinka monta kalaa ehdotettu: find . -name "*.txt" | wc -l Erilaisia kaloja (case-sensitive) ehdotettu 85 sekä vuonna 2023 että 2022. Innovatiivisia kalastelijoita tällä kurssilla! Lukumäärä selvitetty putkittamalla top-listan muodostama tuloste viimeisenä komennolle "wc -l" eikä "head" kuten ylläolevassa. *** Päivän ja viikon päätavoitteet: - Demo 6 alkuopastus, niin sitten on kaikki demot avattu, ja päästään keräämään hedelmiä teorian ja käytännön välisten yhteyksien havainnoimisella. - Väliin koodiesimerkkejä havainnollistamaan aiheita. Tänään ja huomenna alkupuoli luennosta (taukoon asti) - Huomenna jälkipuoliskolla eli tauon jälkeen koetetaan lopulta ehtiä tenttitärppeihin jollain tavoin keskustellen eli "näätäilleen"! *** Aihepiiri: Demon 6 esittely Käydään läpi demo-ohje ja näytetään malliksi vähän esimerkkiä, miten ryhdytään tekemään. *** Tauko sopivassa välissä Jatketaan tasan 13:36! Tauon jälkeen mikrofonitestit, nauhoitusnappulan painaminen ym. muistetaan taas.. *** Aihepiiri (koodiliitteestä): Hei maailma assemblerilla Otetaan esimerkiksi "Hei maailma assemblerilla" ja käpistellään. ** Luento 14: (to 11.5.2023) (P/J) Karhu- ja näätäluento *** Infot keväälle 2023 - Tänään ei mitään uutta. Huomenna taas Open Labrapäivä aamulla; tervetuloa. - Tämä ja 3 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 - Koodiesimerkkejä havainnollistamaan aiheita. Tehokas puoliaika koodin, kuoren, debuggerin ja materiaalien parissa. - Tauon jälkeen mennään tenttitärppeihin jollain tavoin keskustellen eli "näätäillen"! - Päivän lopuksi tiedetään, mitä seuraavaksi pitää tehdä ennen seuraavia yhteisiä tapaamisia: Seuraavaksi demo 6 ohjeteksteineen, monisteen luvut 11-12. *** Seuraava ennakkotehtävä Lukemista: - Demo 6 ohjeteksti - Monisteen luvut 11-12 (viimeinen osio "tenttialueeseen"; loput luvut ovat vapaaehtoista lisälukemistoa) Tekemistä: - Demo 5 valmiiksi ja palautus + asioiden sisäistäminen - Demo 6 työn alle. Kestomuistutus: 5 opintopistettä 8 viikossa tarkoittaa keskimäärin 16-17 tuntia viikossa tehokasta tekemistä. Muista tauot ja lepo, koska muuten ne varsinaiset tekemisen hetketkään eivät ole niin tehokkaita kuin voisivat olla! *** Virittäytyminen: Koodiliitteen aktuaaliset koodit Käydään tähän väliin koodiliitettä ja sen suhdetta teorialukuihin, jotta näissä päästään varmasti eteenpäin tänään! Ajatukset edellisen kerran jälkeen copy-pastella: "Kaikenlaskijan" voi tehdä vaikka scratchistä lennosta; demonstroimaan alustavasti aikakatkaisua ja vuoronnusta... Tutkitaan vaikka top-komennon tulostettakin ja prosessien hallintaa. Tarkempi prosessien hallinan esimerkistö löytyy erillisistä videoista, niin ei käytetä siihen sen enempää aikaa tässä vaiheessa! Todetaan toivotun omatoimisen osaamisen taso tässä vaiheessa.. Vois kuitenkin rajapintadokumentaatioesimerkin vuoksi varmistaa, mistä kohtaa POSIXia löytyy prosessinhallinnan kuorikomennot. Jatkossakin vaan järjestelmällisesti koodiliitteen koodeja sopivassa järjestyksessä käsittelyyn. Suhteutus teorialukuihin, erityisesti otsikoihin, havainnekuviin ja pseudokoodiesimerkkeihin. Teksti itsessään on luettavaksi tehty, ei resitoitavaksi luennolla. *** Aihepiiri: Aikakatkaisu ja vuoronnus "kaikenlaskija.c" "Kaikenlaskijan" voi tehdä vaikka scratchistä lennosta; demonstroimaan alustavasti aikakatkaisua ja vuoronnusta... *** Tauko sopivassa kohdassa Jatketaan tasan 11:40! Tauon jälkeen mikrofonitesti, tallennusnappi. *** Virittäytyminen: Pohdintaa ja ryhmäkeskustelua Virittäydytään välillä erilaiseen tekemisen moodiin. *** Osaamisen arviointia ( == tenttitärppi!) **** Kevään 2023 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 2023 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 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. **** Ryhmien vastaukset ja keskustelu Muistiinpanot ryhmäkoonnista: "ainakin bd" bd ja mietittiin a:ta bd ja lähdettäisiin tarkistamaan a:ta materiaalista... bd ja ehkä c.. eri mieltä a:sta kuin muut ryhmät tähän asti bd ja muista ei niin varmoja. Laitetaan tähän löydökset **** 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 oli pakkokin, salivarauksesta johtuen... kunpa osaisi jatkossakin kuvitella vastaavan paineen..) ** Luento 15: (ke 17.5.2023) (J) Asiaa eteenpäin 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ä. ** (hep, hep, helatorstai "syö" yhden luentokerran!!) ** Luento 16: (ke 24.5.2023) (P/J) Toiseksi viimeinen luento *** Infot keväälle 2023 - Jäljellä on tämän lisäksi enää huominen luento ja ylihuominen tentti. - Molemmilla luennoilla: aluksi tiukkaa asiaa, tauko, tenttitärppi. - Yritetään saada videotallenteet ulos pian luennon jälkeen, jotta ennen perjantain tenttiä ehtii vilkaista ne läpi. Samoin koetetaan saada demo 5 tarkastettua ja mallivastaus auki. Demo 6 tarkastetaan tentin jälkeen, jolloin myös sen tekemiseen voi vielä palata. - Sitten siihen asiaan! *** Tämän luennon tavoite - 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 **** 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!! ** Luento 17: (to 25.5.2023) (P/J) Viimeinen luento. *** 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_* ** Tenttiaika: (pe 26.5.2022) (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ää! * Vuoden 2022 toteuma, jota voi hätätilanteessa noudatella Päivämäärät vaihdettu 2023-mukaisiksi. Sisällöt edellisen vuoden vastaavien luentokertojen toteuman mukaisia. ** 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ä