Kaisa_2012_3_photo by Veikko Somerpuro

Ilmoittaudu
29.12.2020 klo 08:00 - 18.1.2021 klo 23:59

Aikataulu

PäivämääräAikaOpetuspaikka
To 28.1.2021
16:00 - 19:30

Kuvaus

Tietojenkäsittelytieteen aineopintojen pakollinen kurssi.

Avoin muiden koulutusohjelmien opiskelijoille, esimerkiksi opiskelijoille englanninkielisessä Bachelors Program in Science -ohjelmassa.

On suositeltavaa, että opiskelija osaa ohjelmoida korkean tason kielellä ennen kurssille osallistumista. Esimerkiksi kurssi Ohjelmoinnin perusteet antaa riittävät esitiedot.

Kurssit Tietoliikenteen perusteet ja Käyttöjärjestelmät.

Opintojakson suoritettuaan opiskelija

  • Osaa selittää laitteistokomponenttien väliset suuret nopeuserot ja niiden vaikutukset järjestelmään.
  • Osaa selittää prosessorin toiminnan (suoritussykli) konekäskyjen suorittajana.
  • Osaa selittää väylä- ja muistihierarkian perusajatukset.
  • Osaa selittää välimuistin ja virtuaalimuistin toiminnan perusteet.
  • Osaa selittää prosessorin erilaiset suoritustilat ja erityisesti etuoikeutetun suoritustilan tarkoituksen.
  • Osaa selittää, milloin ja miten prosessorin suoritustila vaihtuu.
  • Osaa selittää keskeytysten merkityksen ja toteutuksen konekäskyjen suorituksen tasolla.
  • Osaa selittää keskeytysjärjestelmän toiminnan.
  • Osaa toteuttaa globaalien muuttujat, vakiot, tietueet ja yksinkertaiset taulukot ja selittää niiden tilanvarauksien toteutuksen käännöksen, latauksen tai suorituksen aikana.
  • Osaa ohjelmoida valinta- ja toistorakenteet sekä toteuttaa aliohjelmien kutsut.
  • Osaa selittää kokonais- ja liukulukujen esitysmuodot sekä merkkien ja merkkijonojen tallennuksen periaatteet.
  • Osaa muuttaa kokonaislukujen esitysmuodot 2-, 8-, 16- ja 10-järjestelmien välillä.
  • Osaa toteuttaa tietueiden, olioiden ja moniulotteisten taulukoiden (eri tavoin talletettuna) tilanvaraukset ja niihin viittaamisen.
  • Osaa selittää globaalien ja paikallisten tietorakenteiden erot tilanvarauksessa ja niihin viittaamisessa ja osaa käyttää aktivointitietueita ja aktivointitietuepinoa (rekursiivisten) aliohjelmien toteutuksessa.
  • Osaa selittää karkealla tasolla, kuinka (liikkuvat) kuvat ja äänet esitetään laitteistossa ja osaa selittää ja ottaa huomioon liukulukujen tarkkuuden muutokset laskennan aikana.
  • Osaa käyttää tiedon muuttumattomuuden suojauksen perusmenetelmiä (pariteettibitti, Hamming-koodi).
  • Osaa selittää prosessin käsitteen ja sen esitysmuodon käyttöjärjestelmässä sekä prosessin erilaiset tilat ja niiden väliset tilasiirtymät.
  • Osaa selittää, milloin ja miten suorituksessa oleva prosessi vaihtuu.
  • Osaa luetella käyttöjärjestelmän perustoiminnot (prosessien, muistin, tiedostojen, laitteiden ja verkon hallinta).
  • Osaa selittää käännöksen, linkityksen ja latauksen perusideat.
  • Osaa selittää käyttöjärjestelmän tavoitteet ja perustoiminnot sekä käyttäjän näkökulmasta että käyttöjärjestelmän ylläpitäjän näkökulmasta. Osaa selittää käyttöjärjestelmäpalvelujen toteutusmekanismin erilaisten (etuoikeutettujen) aliohjelmien tai prosessien avulla. Osaa selittää staattisen ja dynaamisen linkityksen edut ja haitat.
  • Osaa selittää käyttöjärjestelmän laitteistorajapinnan toteutuksen laiteajurien ja keskeytyskäsittelijöiden avulla. Osaa selittää tiedostopalvelimen ja tiedostovälimuistin perusidean.
  • Osaa selittää levymuistin rakenteen ja toiminnan sekä laskea levymuistiin talletetun tiedoston saantiajan.
  • Osaa luokitella erilaiset I/O-menetelmät.
  • Osaa selittää Java-ohjelmien erilaiset suoritustavat ja niiden eroavaisuudet.
  • Osaa selittää Java-virtuaalikoneen (JVM) perusrakenteen ja toiminnan sekä valita tiettyyn sovellukseen sopivan Java-ohjelmien suoritustavan. Osaa selittää JIT-kääntämisen perusidean.

Ensimmäisen opiskeluvuosi, ensimmäisen ohjelmointikurssin jälkeen.

Syyslukukaudella periodissa 2 normaalina luentokurssina.
Kevätlukukaudella periodissa 4 englannin kielisenä luentokurssina Computer Organization I (BSCS1004, Bachelors Program in Science)

  • Tietokonejärjestelmän rakenne
  • TTK-91 -tietokone ja sen simulaattori, konekielinen ohjelmointi, aliohjelmien toteutus
  • Suoritin ja väylä, tiedon esitysmuodot, tiedon muuttumattomuus ja muisti
  • Ohjelman ja käyttöjärjestelmän toteutus, ulkoinen muisti ja I/O:n toteutus
  • Käännös, linkitys ja lataus, tulkinta ja emulointi

MOOC-materiaalit (Teemu Kerola, 2019) kursseille Tietokoneen toiminnan perusteet (2 op) ja Tietokoneen toiminnan jatkokurssi (3 op).

William Stallings, Computer Organization and Architecture (10th ed.), Prentice Hall, 2016.
Andrew S. Tanenbaum & Todd Austin, Structured Computer Organization, 6th ed, Pearson, 2013.

Kevään kurssilla Stallings’in kirja olisi hyvä olla käytettävissä, mutta Tanenbaumin kirjaa ei kannata tätä kurssia varten hankkia.

Oppikirjojen uudempia painoksia voidaan ottaa käyttöön heti niiden julkaisun jälkeen.

Titokone ja TitoTrainer -ohjelmistojen käyttö on välttämätöntä konekielisen ohjelmoinnin oppimiseksi.

Opiskelija: MOOC-materiaalit, luennot ja niissä tapahtuva pienryhmäkeskustelu, itsenäisesti tehtävät harjoitustehtävät ja niiden yhdessä läpikäynti harjoituksissa, pajaohjaus konekielen ohjelmointiin Titokone-ohjelmiston avulla, itsenäinen konekielen ohjelmoinnin harjoittelu TitoTrainer-ohjelmiston avulla, kurssikoe ja/tai minikokeet.

Opettaja ja ohjaajat: MOOC-materiaalien päivitys, luentomateriaalin laadinta, luennot, minikokeiden valvonta, harjoitustehtävät ja niiden ratkaisut, harjoitustilaisuuksien ohjaus, koetehtävien ja niiden ratkaisut, kokeiden arviointi, assistenttien valvonta, verkkotiedotuksen ylläpito, kurssisuoritteiden kirjaus, kurssin arviointi.

Kurssin arviointi perustuu kokeissa osaamiseen, harjoitustehtävien tekemiseen ja niiden ratkaisuista keskustelemiseen harjoitustilaisuuksissa, MOOC-materiaalien pikatehtäviin sekä TitoTrainer-tehtävien tekemiseen Tito-pajoissa ja itsenäisesti. Kurssi arvioidaan asteikolla 0-5.

Yleiset tentit kestävät kolme ja puoli tuntia. (U): Tentti on (ensimmäinen kurssia seuraava) yleinen tentti ja samalla kurssitentin/kurssitenttien uusintatentti. Uusintatenttisuorituksessa harjoituspisteet tms. otetaan huomioon. (HT): Tenttiin voivat osallistua vain ne, jotka ovat suorittaneet kurssiin kuuluvat pakolliset harjoitustyöt (tms.). (HT/U): Kuten (U), mutta osallistumisoikeus on rajoitettu HT-kokeen tapaan. (ei erityismerkintää): Tentti on yleinen tentti; osallistumista ei ole rajoitettu, mutta kurssin vaatimat esitiedot on syytä ottaa huomioon.

Syksyn kurssi sisältää MOOC-materiaalia, luentoja, harjoitustilaisuuksia, kokeita sekä itsenäistä ja ohjattua ohjelmistojen käyttöä. Harjoitustilaisuuksissa ja kokeissa on oltava läsnä. Kurssiin sisältyy kurssikoe ja/tai minikokeita luentojen yhteydessä.

Kevään kurssi on englanninkielinen. Se sisältää luentoja, harjoitustilaisuuksia, kokeita sekä itsenäistä ja ohjattua ohjelmistojen käyttöä. Harjoitustilaisuuksissa ja kokeissa on oltava läsnä. Kurssiin sisältyy kurssikoe ja/tai minikokeita luentojen yhteydessä.

Erilliskokeella suoritettuna kurssin arvosana perustuu ainoastaan kokeeseen.

Teemu Kerola