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
- Patterson & Hennessy, Computer Organization and Design, 5th Edition: The Hardware/Software Interface, 5th edition. (Vain ensimmäinen luku)
- Bryant & O'Hallaron, Computer Systems: A Programmer's Perspective, 3rd edition. (Vain ensimmäinen luku)
Opetustapahtumat¶
Kurssin toteutus syksyllä 2024, periodit 1-2:
- Luennot pidetään kymmenen kertaa luentosalissa. Luentojen paikka ja aikataulut löydät virallisesti Peppista ja Tuudosta. Luennoista otetaan tallenteet. Luentomateriaali on saatavilla Lovelacessa.
- Materiaalin joukossa 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.
- Kaksi pakollista laboratorioharjoitusta, jonka jälkeen sulautetun laitteen voi lainata kotiin.
- 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ä 2024 käytössä on rajattu määrä laitteita.
- Harjoitustyötä voi tehdä joko luokassa tai omaan tahtiin kotona, jolloin tukea saatavilla Discordin kautta.
- Välikokeet
- Kurssin aikana voidaan tarjota erilaisia kysymyksiä / harjoituksia sisältäviä kokeita. Opiskelijoilla on 12 tuntia aikaa ja useita yrityksiä vastata näihin kysymyksiin / harjoituksiin. Jos kokeista ei saada vähimmäispisteitä, se voi johtaa kurssin automaattiseen hylkäämiseen.
Aikataulut¶
Aikataulut löydät virallisesti Peppi-opinto-oppaasta.
Implementation¶
Määräajat¶
C-ohjelmointiharjoitusten, jotka kattavat materiaalin luvut 1-12, palautus on 2024-10-11 23:59.
Kurssiprojektin palautus on 2024-11-24 23:59. Katso ohjeet kurssiprojektin materiaalista.
Luennot¶
Luennot pidetään luento salissa. Luennolle osallistuminen ei ole pakollista. Tänä vuonna luennot ovat englanniksi. Kaikki muut opetusmateriaali on suomeksi.
Aika | Paikka | Sisältö |
Ma 02.09.2024 klo 12.15-14.00 | L3 | Kurssin aloitus |
Ke 04.09.2024 klo 08.15-10.00 | L3 | Sulautetut järjestelmät, Tietokoneen toiminta, Bitit ja lukujärjestelmät |
Ma 09.09.2024 klo 12.15-14.00 | L3 | Bittioperaatiot, C-kielen muuttujatyypit, Funktiot, ohjausrakenteet |
Ke 11.09.2024 klo 08.15-10.00 | L3 | Syöte ja tulostus, Osoittimet (I) |
Ma 16.09.2024 klo 12.15-14.00 | L3 | Osoittimet (II), Tietorakenteet |
Ke 18.09.2024 klo 08.15-10.00 | L3 | Esikääntäjä, Kirjastot |
Ma 23.09.2024 klo 12.15-14.00 | L3 | Laiteläheinen ohjelmointi, I/O-yhteydet, Oheislaitteet |
Ke 25.09.2024 klo 08.15-10.00 | L3 | Keskeytykset, Sarjaliikenne |
Ma 30.09.2024 klo 12.15-14.00 | L3 | Langaton tiedonsiirto, Tilakoneet |
Ke 02.10.2024 klo 08.15-10.00 | L3 | Sulautetun ohjelmoinnin esimerkkejä. Lopputyön julkistus |
Ohjatut harjoitukset¶
Syksyllä 2024 ohjattuja vapaaehtoisia harjoituksia järjestetään työasemaluokissa TS135 ja TS137. 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 18.09)
Aikataulu 3.10. asti¶
Tiistai | 10-12 |
Tiistai | 14-16 |
Torstai | 10-12 |
Aikataulu 21.10. - 31.10.¶
Maanantai | 10-12 |
Tiistai | 14-16 |
Torstai | 10-12 |
Aikataulu 4.11. - 28.11.¶
Tiistai | 12-16 |
Torstai | 10-12 |
Viikkojen 41 ja 42 aikana järjestetään laboratorioharjoitus eri aikataululla.
C-kielen harjoitustehtävät¶
Opiskelijoiden tulee suorittaa harjoitustehtävät itsenäisesti Lovelacessa. Lovelace antaa automaattisesti arvosanan. Opiskelijat voivat toistaa harjoitukset niin monta kertaa kuin haluavat. Määräajan jälkeen palautettuja tehtäviä ei lasketa mukaan pisteisiin.
Laboratorioharjoitus¶
Kurssin pakollisen laboratorioharjoituksen voi tehdä työasemaluokassa jokaisella varatuilla ajoilla. Opiskelijoiden pitää ilmoittaa Lovelacessa harjoitusvuoronsa. 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 | Sessio |
Ma 07.10. klo 10-12 | TS135 | Sessio 1 |
Ma 07.10. klo 12-14 | TS135 | Sessio 1 |
Ti 08.10. klo 12-14 | TS135 | Sessio 1 |
Ti 08.10. klo 14-16 | TS135 | Sessio 1 |
Ke 09.10. klo 12-14 | TS135 | Sessio 1 |
Ke 09.10. klo 14-16 | TS135 | Sessio 1 |
To 10.10. klo 10-12 | TS135 | Sessio 1 |
To 10.10. klo 12-14 | TS135 | Sessio 1 |
Ma 14.10. klo 10-12 | TS135 | Sessio 2 |
Ma 14.10. klo 12-14 | TS135 | Sessio 2 |
Ti 15.10. klo 12-14 | TS135 | Sessio 2 |
Ti 15.10. klo 14-16 | TS135 | Sessio 2 |
Ke 16.10. klo 12-14 | TS135 | Sessio 2 |
Ke 16.10. klo 14-16 | TS135 | Sessio 2 |
To 17.10. klo 10-12 | TS135 | Sessio 2 |
To 17.10. klo 12-14 | TS135 | Sessio 2 |
Harjoitustyö¶
Harjoitustyö tehdään 2-3 hengen ryhmissä. Yksilötyötä ei hyväksytä.
Tarkemmat palautus- ja arvosteluohjeet julkaistaan Lovelacen harjoitustyömateriaalissa. Harjoitustyö arvostellaan erillisessä arvostelutilaisuudessa, johon kaikkien ryhmän jäsenten on osallistuttava.
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 Lovelacen.
- Harjoitustehtävät on pisteytetty vaativuuden mukaan 1-3p, maksimi 30p.
- Osa kyselyistä on suoritettava rajatussa ajassa (12 tuntia). Nämä kyselyt ilmoitetaan etukäteen.
- Hox! Luentomateriaalissa on mukana lisätehtäviä, joissa ei ole pistemerkintää ja näitä ei lasketa mukaan arvosanaan.
- 50% arvosanasta tulee kurssin harjoitustyöstä, maksimi 30p.
- Arvosteluperusteet julkaistaan myöhemmin harjoitustyömateriaalissa.
- Lopputyöhön voi sisältyä yksi tai useampi kysely, jotka on suoritettava rajatussa ajassa (12 tuntia). Nämä kyselyt ilmoitetaan etukäteen.
- Hyväksyttyyn kurssisuoritukseen vaaditaan toimiva toteutus, joka täyttää harjoitustyön minimivaatimukset.
- Kurssin läpäisemiseksi on täytettävä kaikki seuraavat ehdot (
AND
, eiOR
): - Kaikkien pisteiden summa on vähintään 31 (60:stä)
- Lovelacen C-kielen kyselyistä ja ohjelmointitehtävistä on saatava vähintään 16 pistettä
- Harjoitustyö täyttää vähimmäisvaatimukset (lisätietoja harjoitustyöraportissa)
- Harjoitustyön arvosana on vähintään 16 pistettä
- Opiskelijoiden on kyettävä vastaamaan suullisiin kysymyksiin loppuarviointitilaisuudessa. Kysymykset liittyvät heidän harjoitustyöhönsä. Opiskelijan tulee pystyä selittämään teoreettisia käsitteitä, joita hän on soveltanut toteutuksessaan. Kaikkien ryhmän opiskelijoiden on kyettävä vastaamaan näihin kysymyksiin. Jos opiskelijat osoittavat puutteellista tietämystä aiheesta tai eivät kykene selittämään, kuinka he ovat toteuttaneet koodinsa eri osat, he eivät voi läpäistä harjoitustyöosuutta, ja tällöin kurssi hylätään.
- Opiskelijoiden on saatava minimimäärä oikein rajatuissa ajassa tehtävissä kyselyissä. Jos tätä minimiä ei saavuteta, ei ole taattua, että opiskelijat läpäisevät kurssin.
Erityispolku arvosanaan 1 tähtääville opiskelijoille:
- Opiskelijan on saatava vähintään 16 pistettä Lovelacen harjoitustehtävistä
- Opiskelijan on suoritettava harjoitustyö täyttäen vähimmäisvaatimukset (lisätietoja lopputyöstä)
- Opiskelijan on esitettävä työnsä arviointitilaisuudessa ja selitettävä koodinsa ja päähaasteensa
- Opiskelijan on saatava minimimäärä oikein rajatuissa ajassa tehdyissä kyselyissä.Jotkin näistä rajatuista ajan kyselyistä voivat olla avoinna VAIN opiskelijoille, jotka tavoittelevat arvosanaa 1.
Pistealue | Arvosana |
< 31 | 0 |
31 - 36 | 1 |
37 - 42 | 2 |
43 - 48 | 3 |
49 - 54 | 4 |
55 - 60 | 5 |
Opiskelijat edellisiltä vuosilta¶
Opiskelijat, jotka suorittivat kurssin edellisenä vuonna (2023), eivät tarvitse tehdä koko kurssia uudelleen.
- C-tehtävien arvosana voidaan säilyttää
- Projektityön arvosana voidaan säilyttää
- Assembly-kielen harjoitusten arvosana voidaan säilyttää
- Assembly-projektiharjoitusten arvosana voidaan säilyttää
Opiskelijoiden tulee seurata vuoden 2024 arviointikriteerejä (mukaan lukien projektityön vaatimukset ja harjoitukset) suorittaakseen puuttuvan osion.
Opiskelijoiden tulee ilmoittaa kurssin henkilökunnalle mahdollisimman pian, miltä näistä osioista he haluaisivat säilyttää arvosanansa vuodelle 2024.
Opiskelijoiden, jotka suorittivat kurssin ennen vuotta 2023, on yleensä suoritettava koko kurssi uudelleen.
Yleensä opiskelijat, jotka ovat suorittaneet Tietokonejärjestelmiin johdanto kurssin, eivät voi suorittaa Tietokonejärjestelmät-kurssia tänä vuonna ilman, että he suorittavat koko kurssin uudelleen.
- Poikkeus: Tietokonejärjestelmät on opiskelijalle pakollinen kurssi. -> Hänen tulisi pyytää lupa study.itee:ltä poistaa arvosana Tietokonejärjestelmiin johdanto kurssilta ja korvata se Tietokonejärjestelmät-kurssin arvosanalla.
Tekoälyn käyttö¶
Tämä kurssi noudattaa Oulun yliopiston määrittelemiä suuntaviivoja tekoälyn käytöstä koulutuksessa.
Erityisenä kurssisääntönä:
- Opiskelija voi käyttää mitä tahansa tekoälyjärjestelmää ratkaistakseen tehtäviä.
- Jos opiskelija käyttää tekoälyä, heidän tulee sisällyttää koodiin:
- Käytetty tekoälytyökalu
- Käytetty komento tai kysely
- Miten he muokkasivat tekoälyn tuottamaa koodia
- Jos tätä tietoa ei sisällytetä, opiskelija voi syyllistyä plagiointiin ja on alttiina yliopiston yleisille eettisen tutkimuksen sääntöjen mukaisille seuraamuksille.
- Opiskelijat ovat täysin vastuussa luomastaan koodista.
- Jos koodi ei toimi oikein, tekoälyä ei voi syyttää.
- Opiskelijoiden TÄYTYY ymmärtää tuottamansa koodi.
- Jos opiskelijat eivät pysty vastaamaan kysymyksiin liittyen kirjoittamaansa koodiin, eivätkä kykene yhdistämään koodin osia kurssin teoreettisiin käsitteisiin, he eivät voi läpäistä kurssia.
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!