Tietokonejärjestelmät ¶
Ilmoittaudu Tietokonejärjestelmät, syksy 2019
Kurssin sisältö ¶
- OSA I Sulautetut järjestelmät
-
Harjoitus: Sulautetut Järjestelmät
0.00 / 0.00
- 2. Tietokoneen toiminta
-
Harjoitus: tietokoneen toiminta
2016-10-24, 07:070.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
0.00 / 0.00
- 4. Muuttujat C-kielessä
-
Harjoitus: Muuttujat C-kielessä
0.00 / 0.00
- 5. Bittioperaatiot C-kielessä
-
Harjoitus: Bittioperaatiot C-kielessä
0.00 / 0.00
- 6. Funktiot C-kielessä
- 7. Ohjausrakenteet C:ssä
-
Harjoitus: Ohjausrakenteet C:ssä
0.00 / 0.00
-
8. C-kielen syöte ja tulostus
0.00 / 0.00
- 9. Osoittimet
-
Harjoitus: Osoittimet
0.00 / 0.00
-
10. Tietorakenteet
0.00 / 0.00
-
Harjoitus: Tietorakenteet
0.00 / 0.00
- 11. C-kielen Esikääntäjä
- 12. Kirjastot
-
Harjoitus: Kirjastot
0.00 / 0.00
-
13. Sulautettu reaaliaikakäyttöjärjestelmä
0.00 / 0.00
-
14. SensorTag-ohjelman toteutus
0.00 / 0.00
- 16. Input / Output
-
Harjoitus: SensorTag osa I (Vapaaehtoinen: )
0.00 / 0.00
- 17. Sarjaliikenne
- 18. Keskeytykset
- 20. SensorTagin oheislaitteista
- 15. Tilakoneet
- 19. Langaton viestintä
-
Harjoitus: SensorTag osa II (Vapaaehtoinen)
0.00 / 0.00
- Laboratorioharjoitus
-
JTKJ Harjoitustyö 2020
0.00 / 0.00
- FAQ: Vastauksia kysymyksiin ja palautteeseen
- OSA II Tietokonejärjestelmät
-
Harjoitus: Liukuluvut
0.00 / 0.00
- 2. Suoritinarkkitehtuuri
-
Harjoitus: y86 Assembly
0.00 / 0.00
- 4. Konekieli
-
Harjoitus: Konekieli
0.00 / 0.00
- 5. Käskysykli
-
Harjoitus: Käskysykli
0.00 / 0.00
- 6. Liukuhihnaprosessori
-
Harjoitus: Liukuhihnaprosessori
0.00 / 0.00
- 7. CISC vs RISC
-
Harjoitus: CISC vs RISC
0.00 / 0.00
- 8. Järjestelmäpalvelut ja poikkeukset
-
Harjoitus: Järjestelmäpalvelut ja poikkeukset
0.00 / 0.00
- 9. Muistihierarkia
-
Harjoitus: Muistihierarkia
0.00 / 0.00
- 10. Rinnakkaislaskenta
-
Harjoitus: Rinnakkaislaskenta
0.00 / 0.00
- 11. Tietokonejärjestelmän suorituskyky
-
Harjoitus: Suorituskyky
0.00 / 0.00
-
TKJ harjoitustyö 2019
0.00 / 0.00
- Kootut ohjeet ohjelmointiin
HUOM! Moodle-ympäristö ei ole kursseilla käytössä syksyllä 2019. Kaikki materiaali löytyy täältä Lovelacesta.
Kurssien yleiset asiat¶
Ilmoittautuminen¶
- WebOodissa kurssille ja laboratorioharjoitus-ryhmiin.
- Lovelaceen ja työasemaluokkiin (harjoitukset) vaaditaan yliopiston käyttäjätunnukset. Erillistä tunnusta Lovelaceen ei tarvitse tehdä.
Oppimateriaalit¶
Lovelacen luentomateriaali ja harjoitustehtävät. Oppikirjat eivät ole välttämättömiä. Kurssilla pyritään mahdollistamaan etäopiskelua.
Henkilökunta¶
- Luennot: TkT Teemu Leppänen (Center for Ubiquitous Computing, ubicomp.oulu.fi)
- Harjoitukset: Mika Oja, Teemu Leppänen
- Assistentit: Riina Annunen, Markus Hirsimäki, Sami Laitinen, Petri Lukkarinen, Vili Pelttari, Otto Poikajärvi, Olli Puhakka
Yhteystiedot¶
- Sähköpostiosoite: computer-systems@lists.oulu.fi
- Kurssin Mattermost-kanava TKJ on vapaa keskustelualue kurssin yleisistä asioista, tehtävistä, jne. Opetushenkilökuntaa on paikalla ainakin virka-aikana (arkisin 8-16).
- MatterMostiin tarvitsee rekisteröityä, sen jälkeen liittyminen kanaville on vapaata.
- MatterMost-älypuhelinsovellus tarvitsee lisäksi palvelimen osoitteen, eli
tstchat.oulu.fi
Tiedotus¶
Kurssin tiedostus virallisesti luennoilla, sekä MatterMostiin ja Weboodissa 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.
1. Johdatus tietokonejärjestelmiin (5op)¶
Tällä kurssilla tutustutaan tietokoneen perustoimintaan, C-ohjelmointikieleen ja laiteläheiseen ohjelmointiin C-kielellä. Tämä kurssi korvaa aiemman kurssin Laiteläheinen Ohjelmointi (521142A).
Kurssin oppimistavoitteet ovat, että opiskelija:
- Ymmärtää tietokoneen perusarkkitehturiin ja yleisesti toimintaperiaatteet.
- 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
- laitteen käsikirjoihin ja komponettien datakirjoihin
Opetustapahtumat¶
Kurssin toteutus:
- Luennot, pidetään kahdeksan kertaa. Materiaali julkaistaan Lovelacessa.
- Materiaalin seassa luentoaiheita koskevia (ei-arvosteltavia) pieniä tehtäviä.
- Lovelacessa C-kielen ja sulautetun laitteen harjoitustehtäviä.
- Tehtäviä voi tehdä itsenäisesti tai ohjatuissa harjoituksissa, joissa on assistentteja vastaamassa kysymyksiin.
- Jotkut harjoitustehtävät ovat tehty Tietokonejärjestelmät-kurssin (8op) opiskelijoille. Nämä on merkitty erikseen. Johdatus-kurssin opiskelijat saavat näistä lisäpisteitä.
- Deadline ennen laboratorioharjoitusta!
- Pakollinen laboratorioharjoitus, jonka jälkeen sulautetun laitteen saa kotilainaan.
- Kurssin harjoitustyönä laajempi ohjelma sulautetulle laitteelle. Harjoitustyö on mitoitettu parityöksi, mutta sen voi tehdä myös yksin.
- Työtä voi tehdä itsenäisesti tai ohjatuissa harjoituksissa, joissa on assistentteja apuna.
Aikataulut¶
Aikataulut löydät virallisesti Weboodista ja/tai Tuudosta!
Luennot¶
Pidetään Maanantai ja Perjantai.
Aika | Paikka | (Alustava) sisältö |
3.9. klo 8-10 | L4 | Kurssin aloitus; Sulautetut järjestelmät, Tietokoneen perustoiminta |
4.9. klo 8-10 | L4 | Bitit ja lukujärjestelmät, bittioperaatiot, C-kielen muuttujatyypit |
9.9. klo 12-14 | L1 | Funktiot, ohjausrakenteet, syöte ja tulostus |
13.9. klo 8-10 | L1 | Osoittimet, Tietorakenteet, Esikääntäjä, Kirjastot |
16.9. klo 12-14 | L1 | Laiteläheinen osuus; SensorTag-ohjelman rakenne, I/O |
20.9. klo 8-10 | L1 | Keskeytykset, Sarjaliikenne, Oheislaitteet |
23.9. klo 12-14 | L1 | Tilakoneet, Langaton Tiedonsiirto |
27.9. klo 8-10 | L1 | Lopputyön julkistus ja yleisiä ohjeita |
Ohjatut harjoitukset¶
Kurssin harjoituksille on varattu ensisijaisesti luokat TS135 ja TS136, joista jälkimmäisessä ei ole työasemia, joten sinne läppärin kanssa. Kurssin assistentit ovat yhteiset Ohjelmoinnin Alkeet-kurssin kanssa, joten apuja voi myös käydä kysymässä luokasta TS137.
Kurssin alussa on muutama yleisestä aikataulusta poikkeava harjoituskerta (kts. Weboodi), mutta muuten noudatetaan ao. aikataulua.
Maanantai | 8-10 | TS135 / TS136 |
14-16 | TS135 / TS136 | |
Tiistai | 12-14 | TS135 / TS136 |
14-16 | TS135 / TS136 | |
Torstai | 8-10 | TS135 / TS136 |
10-12 | TS135 / TS136 |
Hox! Lukujärjestykseen koulutusohjelmasta riippuen voi olla merkittynä tietyt harjoitusvuorot, mutta käyttäkää vapaasti niitä harjoitusaikoja, jotka parhaiten omaan aikatauluun sopivat. Saa olla paikalla vaikka kaikissa!
C-kielen harjoitustehtävät¶
Deadline JTKJ-osuuden harjoitustehtäville on 23. syyskuuta. Deadline koskee luentomateriaalin kappaleita 1-12 joista lasketaan pisteytetyt tehtävät (1-3p). Harjoitustehtäväpisteet kurssiarvosanaan lasketaan tämän päivän jälkeen.
Tämä deadline on ehdoton, koska opiskelijoilla tulee olla vaadittava C-kielen osaamisen taso ennen laboratorioharjoitusta. Harjoitus on tarkoitettu laitteen ohjelmoinnin opetteluun.
Laboratorioharjoitus¶
Jos teette harjoitustyön parityönä, niin tulkaa mahdollisuuksien mukaan samalle harjoitusvuorolle. Harjoituksista on myös mahdollista löytää työpari.
Aika | Paikka |
23.9. klo 9-12 | TS135 |
23.9. klo 14-17 | TS135 |
24.9. klo 9-12 | TS135 |
24.9. klo 12-15 | TS135 |
24.9. klo 15-18 | TS135 |
25.9. klo 12-15 | TS135 |
25.9. klo 15-18 | TS135 |
26.9. klo 8-11 | TS135 |
Harjoitustyö¶
Harjoitustyön deadline on SunnuntaI 17. Marraskuuta 2019 klo 23:59.
Harjoitustyö arvostellaan erillisessä arvostelutilaisuudessa. Tarkemmat palautus- ja arvosteluohjeet harjoitustyömateriaalissa.
Kurssiarvostelu¶
- 50% arvosanasta tulee suoritettujen C-kielen ohjelmointiharjoitustehtävien pistemäärästä
- Lovelacen harjoitustehtävät on pisteytetty vaativuuden mukaan: 1-3p, yhteensä ~30p.
- 50% arvosanasta tulee harjoitustyöstä, max. 30p. Arvosteluperusteet julkaistaan harjoitustyömateriaalissa.
2. Tietokonejärjestelmät (8op)¶
Tämä osa syventää kuvausta tietokoneen sisäisestä arkkitehtuurista ja toiminnasta.
Kurssin oppimistavoitteet ovat, että opiskelija:
- Ymmärtää tietokoneen arkkitehtuurin, organisaation, toimintaperiaatteet ja sisäisen tiedonsiirron.
- Tuntee yleisellä tasolla keskusyksikön sisäisen rakenteen ja toiminnan.
- Osaa tehdä pienimuotoisia assembly-kielisiä ohjelmia.
Opetustapahtumat¶
Kurssin toteutus:
- Luennot, pidetään 7-8 kertaa.
- Luentomateriaali
- Lisäksi oppikirjat (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ä
- Luentoaiheisia
- Pieniä Assembly-kielen tehtäviä
- Lopputyönä pienehkö assemblykielinen harjoitustyö.
Aikataulut¶
Aikataulut löydät virallisesti Weboodista ja/tai Tuudosta!
Luennot¶
Pidetään Maanantai ja Perjantai.
28.10. klo 10-12 | TS101 | Kurssin aloitus; Tietokonejärjestelmien historiaa, liukulukujen esitystapa |
1.11. klo 10-12 | PR101 | Assembly- ja konekieli |
4.11. klo 10-12 | TS101 | Sekventiaalinen ja liukuhihnasuoritin |
8.11. klo 10-12 | PR101 | CISC, RISC ja järjestelmäpalvelut |
11.11. klo 10-12 | TS101 | Muistihierarkia, rinnakkaislaskenta |
15.11. klo 10-12 | PR101 | Tietokonejärjestelmän suorituskyky |
18.11. klo 10-12 | TS101 | Sisältö päivittyy.. |
22.11. klo 10-12 | PR101 | Sisältö päivittyy.. |
Ohjatut harjoitukset¶
Kurssin harjoituksille on varattu ensisijaisesti luokat TS135 ja TS136, joista jälkimmäisessä ei ole työasemia, joten sinne läppärin kanssa. Kurssin assistentit ovat yhteiset Ohjelmoinnin Alkeet-kurssin kanssa, joten apuja voi myös käydä kysymässä luokasta TS137.
Käyttäkää vapaasti niitä harjoitusaikoja, jotka parhaiten omaan aikatauluun sopivat. Saa olla paikalla vaikka kaikissa.
Alla periodin 1 mukaiset harjoitusajat:
Maanantai | 8-10 | TS135 / TS136 |
14-16 | TS135 / TS136 | |
Tiistai | 12-14 | TS135 / TS136 |
14-16 | TS135 / TS136 | |
Torstai | 8-10 | TS135 / TS136 |
10-12 | TS135 / TS136 |
Assembly-kielen harjoitustehtävät¶
Harjoitustehtävien deadline julkaistaan myöhemmin, mutta se tulee olemaan sama kuin harjoitustyön deadline Joulukuun puolessavälissä.
Harjoitustyö¶
Harjoitustyön deadline julkaistaan myöhemmin, mutta se tulee olemaan Joulukuun puolessavälissä.
Arvostelu¶
Tämän kurssiosuuden arvosana tulee suoritettujen Lovelacen tehtävien ja harjoitustyön mukaan:
- Harjoitustehtävät pisteytetty vaativuuden mukaan: 1-3p, yhteensä 20p.
- Assembly-kielen harjoitustyö max 10p.
- Maksimipisteet ovat: 20p (harjoitustehtävät) + 10p (harjoitustyö) = 30p.
- Kurssisuoritus edellyttää suorituksia sekä harjoitustehtävistä että harjoitustyöstä.
Kurssikokonaisuuden arvosana lasketaan kurssin osien yhteenlasketuista pisteistä. Suoritukset vaaditaan kaikista kurssien osasuorituksista: 2 x harjoitustehtävät, laboratorioharjoitus sekä 2 x harjoitustyöt. Johdatus-kurssista voi saada max 60p ja Tietokonejärjestelmistä max 30p, joka kerrotaan kahdella. Läpipääsyyn vaaditaan yhteensä vähintään 61p.
Apua harjoitustehtäviin¶
Paras tapa saada apua harjoitusaikojen ulkopuolella on kysyä kurssin MatterMost-kanavalla 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!