Tietokonejärjestelmät ¶
Ilmoittaudu Tietokonejärjestelmät, syksy 2022
Kurssin sisältö ¶
- Luentomateriaalia
- OSA I Sulautetut järjestelmät
-
Harjoitus: Sulautetut Järjestelmät
2022-10-10, 23:590.00 / 0.00
- 2. Tietokoneen toiminta
-
Harjoitus: tietokoneen toiminta
2022-10-10, 23:590.00 / 0.00
- Johdanto: Pythonista C-kieleen
-
C-ohjelmoinnin peruspalikat
0.00 / 0.00
-
Lukujärjestelmät
0.00 / 0.00
- Bittioperaatiot Pythonissa
- Ohjausrakenteet Pythonissa
-
3. Bitit ja lukujärjestelmät
0.00 / 0.00
-
Harjoitus: Bitit ja lukujärjestelmät
2022-10-10, 23:590.00 / 0.00
-
4. Muuttujat C-kielessä
0.00 / 0.00
-
Harjoitus: Muuttujat C-kielessä
2022-10-10, 23:590.00 / 0.00
- 5. Bittioperaatiot C-kielessä
-
Harjoitus: Bittioperaatiot C-kielessä
2022-10-10, 23:590.00 / 0.00
- 6. Funktiot C-kielessä
- Lisämateriaali: Rakenteellinen ohjelmointi
-
Harjoitus: Funktiot C-kielessä
2022-10-10, 23:590.00 / 0.00
- 7. Ohjausrakenteet C:ssä
-
Harjoitus: Ohjausrakenteet C:ssä
2022-10-10, 23:590.00 / 0.00
-
8. C-kielen syöte ja tulostus
0.00 / 0.00
-
Harjoitus: C-kielen Syöte ja tulostus
2022-10-10, 23:590.00 / 0.00
- 9. Osoittimet
-
Harjoitus: Osoittimet
0.00 / 0.00
-
10. Tietorakenteet
0.00 / 0.00
-
Harjoitus: Tietorakenteet
2022-10-10, 23:590.00 / 0.00
- 11. C-kielen Esikääntäjä
- 12. Kirjastot
-
Harjoitus: Kirjastot
2022-10-10, 23:590.00 / 0.00
-
Lisämateriaali: Vapaaehtoiset C-ohjelmointitehtävät
0.00 / 0.00
- 13. Sulautettu reaaliaikakäyttöjärjestelmä
-
14. SensorTag-ohjelman toteutus
0.00 / 0.00
- 15. Tilakoneet
- 16. Input / Output
-
Harjoitus: SensorTag osa I (Vapaaehtoinen: )
0.00 / 0.00
- 17. Sarjaliikenne
- 18. Keskeytykset
- 19. Langaton viestintä
-
Harjoitus: SensorTag osa II (Vapaaehtoinen)
0.00 / 0.00
- 20. SensorTagin oheislaitteista
- Laboratorioharjoitus
-
JTKJ Harjoitustyö 2023
2022-12-01, 01:000.00 / 0.00
- FAQ: Vastauksia kysymyksiin ja palautteeseen
- OSA II Tietokonejärjestelmät
- 1. Liukulukuesitys
-
Harjoitus: Liukuluvut
2022-12-15, 01:000.00 / 0.00
- 2. Suoritinarkkitehtuuri
- 3. Assembly-kieli
-
Harjoitus: y86 Assembly
2022-12-15, 01:000.00 / 0.00
- 4. Konekieli
-
Harjoitus: Konekieli
2022-12-15, 01:000.00 / 0.00
- 5. Käskysykli
-
Harjoitus: Käskysykli
2022-12-15, 01:000.00 / 0.00
- 6. Liukuhihnaprosessori
-
Harjoitus: Liukuhihnaprosessori
2022-12-15, 01:000.00 / 0.00
- 7. CISC vs RISC
-
Harjoitus: CISC vs RISC
2022-12-15, 01:000.00 / 0.00
- 8. Järjestelmäpalvelut ja poikkeukset
-
Harjoitus: Järjestelmäpalvelut ja poikkeukset
2022-12-15, 01:000.00 / 0.00
- 9. Muistihierarkia
-
Harjoitus: Muistihierarkia
2022-12-15, 01:000.00 / 0.00
- 10. Rinnakkaislaskenta
-
Harjoitus: Rinnakkaislaskenta
2022-12-15, 01:000.00 / 0.00
- 11. Tietokonejärjestelmän suorituskyky
-
Harjoitus: Suorituskyky
2022-12-15, 01:000.00 / 0.00
-
TKJ harjoitustyö 2023
2022-12-17, 01:000.00 / 0.00
- Kootut ohjeet ohjelmointiin
-
Harjoitustyöjen uusiminen
2023-02-06, 08:000.00 / 0.00
Kurssien yleiset asiat¶
Ilmoittautuminen¶
- Peppissa kurssille
- Moodleen yliopiston käyttäjätunnuksilla tai itserekisteröityminen. Muut kuin yliopiston perustutkinto-opiskelijat saavat kurssiavaimen ottamalla yhteyttä kurssihenkilökuntaan.
- Lovelaceen (ja mahd. harjoituksiin työasemaluokkissa) vaaditaan yliopiston käyttäjätunnukset tai oman tunnuksen luonti muut kuin perustutkinto-opiskelijat.
Henkilökunta¶
- Luennot: Iván Sánchez Milara
- Harjoitukset: Mika Oja, Iván Sánchez Milara
- Opetusassistentit: Jiska Parrila, Casimir Saastamoinen, Mikko Paasimaa, Teemu Puro
Yhteystiedot¶
- Yleinen sähköpostiosoite: computer-systems@lists.oulu.fi
- Kurssialue TST:n Discord-palvelimella on vapaa keskustelualue kurssin yleisistä asioista, harjoitustehtävistä ja -työstä, jne. Kutsu palvelimelle löytyy saamastasi viestistä, ja se vie ohjekanavalle, joka kertoo miten liittyä kurssialueelle. Kutsua voit pyytää sähköpostilla jos et sitä ole saanut.
Tiedotus¶
Kurssin tiedostus virallisesti luennoilla sekä Moodlessa kurssille ilmoittautuneiden-sähköposteihin. Seuraa siis sähköpostia aktiivisesti!
Kurssi(t) pähkinänkuoressa¶
Tämän kurssikokonaisuuden muodostaa kaksi kurssia:
- Johdatus tietokonejärjestelmiin (5op, 521287A)
- Tietokonejärjestelmät (8op, 521286A)
Kurssit on rakennettu siten, että Johdatus tietokonejärjestelmiin-kurssi on osa Tietokonejärjestelmät-kurssia. Johdatus-kurssin luennot ja tehtävät ovat siis kaikille samat. Jatko-osa Tietokonejärjestelmät (+3op) on joko pakollinen tai vapaaehtoinen riippuen koulutusohjelmasta ja omasta kiinnostuksesta.
Molempien kurssien kaikki luentomateriaali ja harjoitustehtävät löytyvät Lovelacesta. Allamainitut oppikirjat eivät ole välttämättömiä. Luentovideot ovat saatavilla Moodlessa.
1. Johdatus tietokonejärjestelmiin (5op)¶
Tällä kurssilla tutustutaan yleisesti tietokoneen toimintaan, C-ohjelmointikieleen ja laiteläheiseen ohjelmointiin C-kielellä.
Kurssin oppimistavoitteet ovat, että opiskelija:
- Ymmärtää tietokoneen arkkitehtuurin ja toimintaperiaatteen.
- Osaa tehdä pienimuotoisia C-kielisiä ohjelmia.
- Osaa tehdä sulautettuun laitteeseen pienimuotoisia ohjelmia, joissa ohjataan I/O-laitteita.
- Tunnistaa miten laiteläheinen ohjelmointi eroaa yleisestä työasema-ohjelmoinnista.
Kurssi on sisäisesti jaettu kahteen osaan:
- Osassa tutustutaan C-ohjelmointiin, perustuen:
- Luentomateriaaliin
- Oppikirjoihin (eivät ole välttämättömiä)
- Kernigham & Ritchie: The C programming language (vähintään 2. painos)
- Jussi Kasurinen (2008) C-kieli ja käytännön ohjelmointi, Osa 1. Lappeenrannan teknillinen yliopisto, ISBN 978-952-214-532-1, ISSN 1459-3092
- Osassa keskitytään laiteläheiseen ohjelmointiin C-kielellä sulautetulla laitteella, perustuen:
- luentomateriaaliin
- (vähäisessä määrin) laitteen käsikirjoihin ja komponettien datakirjoihin
Opetustapahtumat¶
Kurssin toteutus syksyllä 2022, periodit 1-2:
- Luennot pidetään kahdeksan kertaa luento salissa ja saman aikaa etänä Zoomissa. Luennot paikka ja aikataulut löydät virallisesti Peppista ja Tuudosta. Luennoista otetaan tallenteet. Luentomateriaali on saatavilla Lovelacessa.
- Zoom-linkit luentoihin löydät Moodlesta ennen luentoa.
- Materiaalin seassa luentoaiheita koskevia (ei-arvosteltavia) pieniä tehtäviä.
- C-kielen ja sulautetun laitteen harjoitustehtäviä Lovelacessa.
- Tehtäviä voi tehdä itsenäisesti, tai harjoituksien aikana työasemaluokissa.
- Deadline harjoitustehtäville ennen laboratorioharjoitusta! eli, Suununtai 09. lokakuuta klo 23.59
- Pakollinen laboratorioharjoitus, jonka jälkeen sulautetun laitteen saa kotilainaan.
- Laboratorioharjoituksen toteutus luokassa
- Kurssin harjoitustyönä laajempi ohjelma sulautetulle laitteelle.
- Harjoitustyö on mitoitettu parityöksi, mutta sen voi tehdä myös kolmen hengen ryhmissä. Syksyllä 2022 käytössä on rajattu määrä laitteita.
- Harjoitustyötä voi tehdä joko luokassa tai omaan tahtiin kotona, jolloin tukea saatavilla Discordin kautta.
Aikataulut¶
Aikataulut löydät virallisesti Peppi-opinto-oppaasta.
Luennot¶
Luennot pidetään luento salissa ja saman aikaa etänä Zoomissa. Zoom tuentolinkki ja -tallenteet löytyvät Moodlesta. Luennolle osallistuminen ei ole pakollista. Tänä vuonna luennot ovat englanniksi. Kaikki muut opetusmateriaali on suomeksi.
Aika | Paikka | Sisältö |
Ma 05.09. klo 12-14 | L1 ja Zoom | Kurssin aloitus; Sulautetut järjestelmät |
Ke 7.09. klo 8-10 | L3 ja Zoom | Tietokoneen toiminta, Bitit ja lukujärjestelmät |
Ma 12.09. klo 12-14 | L1 ja Zoom | Bittioperaatiot, C-kielen muuttujatyypit, Funktiot, ohjausrakenteet |
Ke 14.09. klo 8-10 | L3 ja Zoom | Syöte ja tulostus, Osoittimet, Tietorakenteet |
Ma 19.9. klo 12-14 | L1 ja Zoom | , Esikääntäjä, Kirjastot, Laiteläheinen osuus |
Ke 21.9. klo 8-10 | L3 ja Zoom | Ohjelman rakenne, I/O-yhteydet, Keskeytykset, Sarjaliikenne |
Ti 27.9. klo 8-10 | IT116 ja Zoom | Oheislaitteet, Langaton Tiedonsiirto |
Ke 28.9. klo 8-10 | L3 ja Zoom | Tilakoneet, Lopputyön julkistus ja ohjeistusta |
Ohjatut harjoitukset¶
Syksyllä 2022 ohjattuja vapaaehtoisia harjoituksia järjestetään työasemaluokissa TS135 ja TS137. Kolmas luokka on varattu BYOD-luokalle("Bring your own device" - tuo oma laitteesi). Huone on eri jokaisessa vuorossa. Tarkista Peppista luokkaan numero.
Lukujärjestykseen koulutusohjelmasta riippuen voi olla merkittynä tietyt viikottaiset harjoitusvuorot, mutta kaikkiin harjoitusvuoroihin voi osallistua vapaasti sen mukaan miten parhaiten omaan aikatauluun sopii.
Harjoitusvuorot (alkaa 12.09)
Maanantai | 10-12 ja 14-16 |
Tiistai | 12-16 |
Torstai | 08-12 |
Viikkossa 41 järjestetään laboratorioharjoitus eri aikataululla.
C-kielen harjoitustehtävät¶
Deadline C-kielen harjoitustehtäville on Suununtai 09. lokakuuta klo 23:59. Deadline koskee luentomateriaalin kappaleita 1-12, joista arvosanaan lasketaan pisteytetyt harjoitustehtävät (1-3p).
Tämä deadline on ehdoton, koska opiskelijoilla tulee olla vaadittava C-kielen osaamisen taso ennen laboratorioharjoitusta. Laboratorioharjoitus on tarkoitettu laitteen ohjelmoinnin opetteluun.
Laboratorioharjoitus¶
Kurssin pakollisen laboratorioharjoituksen voi tehdä työasemaluokassa jokaisella varatuilla ajoilla. Opiskelijoiden pitää ilmoittaa Lovelacessa harjoitusvuoronsa.
Tulkaa mahdollisesti harjoitustyön työparin kanssa mukaan samalle harjoitusvuorolle.
Aika | Paikka |
Ma 10.10. klo 10-13 | TS135 |
Ma 10.10. klo 13-16 | TS135 |
Ma 10.10. klo 16-19 | MA343 |
Ti 11.10. klo 08-11 | TS135 |
Ti 11.10. klo 14-17 | MA343 |
Ke 12.10. klo 16-19 | MA343 |
To 13.10. klo 16-19 | PK251 |
Pe 14.10. klo 12-15 | YL124 |
Harjoitustyö¶
Harjoitustyön deadline on maanantai 28. Marraskuuta klo 23:59. Tarkemmat palautus- ja arvosteluohjeet julkaistaan Lovelacen harjoitustyömateriaalissa. Harjoitustyö arvostellaan erillisessä arvostelutilaisuudessa.
Harjoitustyötä voi itsenäisesti oman aikataulun mukaan. Etänä työskennellessä tukea on saatavilla Discordissa ja työasemaluokissa harjoitusten aikaan.
Kurssiarvostelu¶
Kurssilla noudatetaan arvosana-asteikkoa 1-5, laskemalla yhteen suoritteiden pisteet seuraavasti, maksimi 60p:
- 50% arvosanasta tulee suoritettujen C-kielen ohjelmointiharjoitustehtävien pistemäärästä. Harjoitustehtävät on pisteytetty vaativuuden mukaan 1-3p, maksimi 30p.
- Hox! Luentomateriaalissa on mukana lisätehtäviä, joissa ei ole pistemerkintää ja näitä ei lasketa mukaan arvosanaan.
- 50% arvosanasta tulee harjoitustyöstä, maksimi 30p. Arvosteluperusteet julkaistaan harjoitustyömateriaalissa.
- Hyväksyttyyn kurssisuoritukseen vaaditaan toimiva toteutus harjoitustyöstä, josta lisää harjoitustyömateriaalissa, ja yhteensä vähintään 31p.
2. Tietokonejärjestelmät (8op)¶
Tämä kurssiosa syventää kuvausta tietokonetekniikasta ja tietokonejärjestelmän toiminnasta.
Kurssin oppimistavoitteet ovat, että opiskelija:
- Ymmärtää yleisellä tasolla tietokoneen arkkitehtuurin ja organisaation ja toiminnan.
- Tuntee keskusyksikön sisäisen arkkitehtuurin, toiminnalliset osat ja niiden toiminnan yleisellä tasolla.
- Osaa tehdä pienimuotoisia assembly-kielisiä ohjelmia.
Opetustapahtumat¶
Kurssin toteutus syksyllä 2022 periodissa 2:
- Luentoja pidetään 6 kertaa luento-salissa ja saman aikaa etänä Zoomissa. Luennot paikka ja aikataulut löydät virallisesti Peppista ja Tuudosta. Luennoista otetaan tallenteet. Luentomateriaali on saatavilla Lovelacessa.
- Zoom-linkit luentoihin Moodlesta.
- Luentomateriaali Lovelacessa, lisäksi oppikirjat jotka eivät ole välttämättömiä.
- Bryant & O'Hallaron: Computer Systems: A Programmer's Perspective, 3. painos, ISBN 978-0134092669, 2016. Kappaleet 1-6, 8-9.
- Patterson & Hennessy: Computer Organization and Design, The Hardware/Software Interface, 5. painos, ISBN 978-0124077263, 2014. Kappaleet 1-2, 4-6.
- Lovelacessa harjoitustehtäviä, harjoitukset työasemaluokassa
- Luentoaiheisia kysymyksiä
- Pieniä Assembly-kielen tehtäviä
- Harjoitustyönä pienehkön assembly-kielisen ohjelman toteutus simulaattorissa.
Aikataulut¶
Aikataulut löydät virallisesti Peppi-opinto-oppaasta ja/tai Tuudosta!
Luennot¶
Pidetään luentosalissa ja saman aikaa etänä Zoomissa. Zoom tuentolinkki ja -tallenteet löytyvät Moodlesta. Luennolle osallistuminen ei ole pakollista. Tänä vuonna luennot ovat englanniksi. Kaikki muut oopetusmateriaali on suomeksi.
Ti 8.11. klo 08-10 | L2 ja Zoom | Kurssin aloitus; |
Pe 11.11. klo 10-12 | L3 ja Zoom | Suoritinarkkitehtuurit, Liukuluvut |
Ti 15.11. klo 08-10 | --- | EI LUENTO |
Pe 18.11. klo 10-12 | L3 ja Zoom | Assemblykieli, Ohjelmointidemo. |
Ti 22.11. klo 08-10 | L2 ja Zoom | Käskykanta-arkkitehtuuri ja konekieli, Sekventiaalinen ja liukuhihnasuoritin |
Pe 25.11. klo 10-12 | L3 ja Zoom | CISC & RISC, Järjestelmäpalvelut, Muistihierarkia |
Ti 29.11. klo 08-10 | L2 ja Zoom | Rinnakkaislaskenta, Tietokonejärjestelmän suorituskyky |
Pe 02.12. klo 10-12 | L3 ja Zoom | Mahdollinen lisäluento tarpeen mukaan |
Ohjatut harjoitukset¶
Syksyllä 2022 ohjattuja vapaaehtoisia harjoituksia järjestetään työasemaluokissa TS135 ja TS137. Kolmas luokka on varattu BYOD-luokalle("Bring your own device" - tuo oma laitteesi). Huone on eri jokaisessa vuorossa. Tarkista Peppista luokkaan numero.
Lukujärjestykseen koulutusohjelmasta riippuen voi olla merkittynä tietyt viikottaiset harjoitusvuorot, mutta kaikkiin harjoitusvuoroihin voi osallistua vapaasti sen mukaan miten parhaiten omaan aikatauluun sopii. Harjoitusvuorot periodilla 2:
Maanantai | 10-12 ja 14-16 |
Tiistai | 12-16 |
Torstai | 08-12 |
Assembly-kielen harjoitustehtävät¶
Harjoitustehtävät julkaistaan Lovelacessa ja niiden deadline on
14.12.2022. klo 23:59
Harjoitustyö¶
Assembly-kielen harjoitustyö julkaistaan Lovelacessa ja sen deadline on
14.12.2022. klo 23:59
Arvostelu¶
Tämän kurssiosuuden arvosana tulee suoritettujen Lovelacen tehtävien ja harjoitustyön mukaan:
- Harjoitustehtävät pisteytetty vaativuuden mukaan: 1-3p, yhteensä 25p.
- Assembly-kielen harjoitustyö max 15p.
- Maksimipisteet ovat: 25p (harjoitustehtävät) + 15p (harjoitustyö) = 40p.
- Kurssisuoritus edellyttää suorituksia sekä harjoitustehtävistä että harjoitustyöstä.
Kurssikokonaisuuden arvosana lasketaan kurssin osien yhteenlasketuista pisteistä:
- Johdatus-kurssiosuudesta maksimi 60p.
- Tietokonejärjestelmät-kurssiosuudesta maksimi 40p
- Maksimipisteet 100p, jolloin hyväksyttyyn kurssisuoritukseen vaaditaan suoritukset kaikista osasuorituksista: 2 x harjoitustehtävät sekä 2 x harjoitustyöt, ja yhteispistemäärä vähintään 51p.
Apua harjoitustehtäviin¶
Paras tapa saada apua harjoitusaikojen ulkopuolella on kysyä kurssin Discord channel tai sähköpostilla osoitteesta
computer-systems@lists.oulu.fi
. Helpointa ongelmia tuottavien tehtävien kohdalla on jakaa assistenteille tehtävän vasemmalla puolella olevasta laatikosta ”<vastausten lukumäärä> answers” -linkin takaa löytyvä sivu. Tämä onnistuu aukaisemalla kyseisen sivun, kopioimalla sivun osoitteen selaimen osoitepalkista ja liittämällä osoitteen viestiisi. Voit myös klikata suoraan ”Help!”-linkkiä, joka lisää automaattisesti kyseisen osoitteen sähköpostiin. Muista myös kertoa viestissä varsinainen ongelmasi ja kysymyksesi!'
'
Vaihtoehtoisesti voit lähettää ongelmia tuottavan koodisi suoraan sähköpostin liitetiedostona kysymyksesi ja Lovelacen antaman palautteen kera; ilman kooditiedostoa (tai yrittämääsi vastausta) on usein mahdoton arvata, mistä ongelma johtuu. Älä liitä sähköpostiisi kuvia!