Kuva Teemu Kerola

TIETOKONEEN TOIMINTA (COMPUTER ORGANIZATION I)

Tietokoneen ja sen käyttöjärjestelmän toiminta pääasiassa yhden ohjelman suorituksen näkökulmasta.

Kurssilla perehdytään tietokoneohjelman suoritukseen, tietokonelaitteiston komponentteihin sekä laitteiston ja käyttöjärjestelmän luomaan ohjelman suoritusympäristöön.

Syksyn monimuotokurssi sisältää normaaleja luentoja, valinnaisia verkkoluentoja, harjoitustehtäviä ja Tito-Trainer tehtävien tekemistä sekä Tito-pajassa että itsenäisesti. Konekielinen ohjelmointitaito tentitään Examinariumissa. Muut kokeet voi suorittaa joko minikokeilla tai kurssikuulustelulla.

Kevään itseopiskelukurssi tapahtuu pääsääntöisesti itsenäisellä opiskelulla, vaikka kurssiin sisältyy aloitusluento ja viikottaiset harjoitustilaisuudet. Itsenäinen opiskelu tehdään oppikirjan, verkkoluentojen ja TitoTrainerin avulla. Kokeet voi suorittaa joko minikokeilla tai kurssikuulustelulla.

Esitiedot: Ohjelmoinnin perusteet.

Kurssikirja: Stallings W.: Computer Organization and Architecture (10th ed.), Pearson, 2016.

Kurssi luennoidaan periodissa 2 syksyllä ja periodissa 4 keväällä on ohjattu itseopiskelukurssi.

Ilmoittaudu

Viestit

Käyttäjän Teemu Kerola kuva

Teemu Kerola

Julkaistu, 22.5.2018 klo 11:00

Kurssikoe (minikokeet 1-4) on arvosteltu. Arvosteluperusteet on linkitetty aikataulusivulle, mutta niistä puuttuu vielä tehtävä 3. Laitan sen paikoilleen jahka saan sen ensin assistentilta.

Koko kurssi on arvosteltu ja tulokset näkynevät Oodissa pikapuoliin.

Uusintakuulustelu on 18.6.2018. Siellä voi (erilliskokeen lisäksi) uusia minikokeen 4 tai sitten koko kurssikokeen (minikokeet 1-4, vain yhteispisteet lasketaan) .

Hyvää kesää!

Käyttäjän Teemu Kerola kuva

Teemu Kerola

Julkaistu, 3.5.2018 klo 10:41

MInikokeen 2 tehtävän a viimeisessä kohdassa oli mallivastauksessa alkuaan virhe (oikea vastaus on -5). Arvostelu korjataan kaikissa lähiaikoina.

Käyttäjän Teemu Kerola kuva

Teemu Kerola

Julkaistu, 26.4.2018 klo 13:39

Muistakaa, että minikoe 4 (ja kurssikoe) on maanantaina 7.5.2018.

Aikaisemmat minikokeet ovat olleet keskiviikkoisin, mutta tämä on maanantaina normaalin kurssikokeen yhteydessä! (Minikoe 3 on keskiviikkona 2.5.2018.)

Käyttäjän Teemu Kerola kuva

Teemu Kerola

Julkaistu, 26.3.2018 klo 15:00

This includes Stallings, 10th ed.
--
Trial of VitalSource Bridge offers 12 textbooks on various subjects until the end of the 4th teaching period. Please, forward this information also to your students. Feedback to us would be appreciated.

Check this link in english:
https://blogs.helsinki.fi/librarynews/2018/03/23/on-trial-until-6-5-2018...

in finnish:
https://blogs.helsinki.fi/librarynews/2018/03/23/koekaytto-6-5-2018-asti...

Best regards,

Merja

_____________
Merja Kettunen
Information specialist
Helsinki University Library, Viikki and Kumpula Campus Libraries
P.O. Box 64, SF-00014 University of Helsinki
http://www.helsinki.fi/kirjasto/en/

Käyttäjän Teemu Kerola kuva

Teemu Kerola

Julkaistu, 23.3.2018 klo 13:51

Harri Kähkönen ohjaa ylimääräisiä Tito-pajoja salissa BK107 seuraavina aikoina:

keskiviikko 28.3.2018 klo 12-14
keskiviikko 11.4.2018 klo 12-14
keskiviikko 18.4.2018 klo 12-14
keskiviikko 25.4.2018 klo 12-14

Käyttäjän Teemu Kerola kuva

Teemu Kerola

Julkaistu, 23.3.2018 klo 12:29

Ryhmissä oli ensimmäisellä harjoitusviikolla yhteensä 24+33+34 = 90 osallistujaa, joten uutta ryhmää ei tarvita. Kolme ryhmää on juuri sopiva määrä. Jos haluatte jatkossa vierailla muissa ryhmissä tai vaihtaa sinne, niin se sopii tilan salliessa.

Ensimmäisen viikon harjoituksiin osallistumattomat on siirretty jonotusryhmään 99, jotta kurssille oikeasti osallistuville saadaan tilaa. Jos olette ennestään jonotusryhmässä tai jos teidät on jotenkin virheellisesti siirretty sinne, niin asia on helppo korjata. Pyytäkää esim. ensi viikon harjoituksissa (harj. 2) ohjaajaa siirtämään teidät haluamaanne ryhmään.

Käyttäjän Teemu Kerola kuva

Teemu Kerola

Julkaistu, 23.3.2018 klo 10:45

Harjoituksissa 2 (lh2.pdf) oli aluksi vanhaa viime kevään tietoa uudesta harjoitusryhmästä. Sellaista ei ole vielä perustettu. Sellainen voidaan kyllä perustaa tänä keväänäkin, jos ensimmäisissä harjoituksissa käy yhteensä kovin paljon opiskelijoita. Asiasta tiedotetaan silloin erikseen.

Käyttäjän Teemu Kerola kuva

Teemu Kerola

Julkaistu, 18.3.2018 klo 19:01

Jos olette jonotuslistalla (ryhmä 99), osallistukaa tällä viikolla siihen harjoitusryhmään joka teille parhaiten sopii. Ilmoittautumissa on kokemuksen mukaan paljon ilmaa (=turhia ilmoittautumisia), joten luultavasti kaikki oikeasti kurssille osallistujat mahtuvat nykyisiin kolmeen ryhmään. Jos vierailette jossain ryhmässä, siellä on tilaa ja haluatte vaihtaa sinne, pyytäkää ohjaajaa siirtämään teidät siihen ryhmään.

Jos tällä viikolla paikalle ilmaantuu reippaasti yli 130 opiskelijaa, niin ryhmiä voidaan ehkä perustaa lisää.

Tämän viikon jälkeen harjoituksiin osallistumattomat siirretään ryhmään 99 (jono), jotta osallistujille saadaan tilaa ryhmissä. Ketään ei kuitenkaan poisteta kurssilta. Jos olette poissa tämän viikon harjoituksista, mutta haluatte silti pitää paikkanne harjoitusryhmässä, kertokaa asiasta mailitse viimeistään torstaina 22.3.2018.

Aikataulu

Tästä osiosta löydät kurssin opetusaikataulun. Tarkista mahdolliset muut aikataulut kuvauksesta.

PäivämääräAikaOpetuspaikka
Ti 13.3.2018
09:15 - 11:00

Muu opetus

15.03. - 22.03.2018 To 10.15-12.00
05.04. - 03.05.2018 To 10.15-12.00
Opetuskieli: suomi
15.03. - 22.03.2018 To 16.15-18.00
05.04. - 03.05.2018 To 16.15-18.00
Opetuskieli: suomi
16.03. - 23.03.2018 Pe 10.15-12.00
06.04. - 04.05.2018 Pe 10.15-12.00
Maria Efimova
Opetuskieli: suomi

Materiaalit

KIRJALLISUUS JA MATERIAALIT (LITERATURE AND MATERIALS)

William Stallings, Computer Organization and Architecture (10th ed.), Prentice Hall, 2016. Kirjan aikaisemmat versiot (8th ed., 2010 tai 9th ed, 2013) sopivat myös hyvin käytettäväksi. E-kirja, Helka (https://helka.finna.fi). Vuokraa oma verkkokirja: VitalSource £26.64-37.00 (https://www.vitalsource.com, 7.9.2017)

Andrew S. Tanenbaum & Todd Austin, Structured Computer Organization, 6th ed, Pearson, 2013. Luku 4.2. Kirjan aikaisempi versio (Tanenbaum, 5th ed., 2010) sopii myös hyvin käytettäväksi. (Ei tarvitse hankkia, ks. verkkoluennot ja luentomateriaali)

Verkkoluennot: Itseopiskeluun suunniteltu verkkomateriaali, jonka läpikäynti muistuttaa luennolla olemista. Verkkoluennot flash ja pdf-muodossa

Titokone: Ohjelmisto, jonka avulla voidaan kääntää ja suorittaa symbolisella konekielellä kirjoitettuja ohjelmia opetuskäyttöä varten suunnitellulle tietokoneelle. Ohjelmistoon sisältyy ohjelmistonkehitysympäristö, suorituksen simulaattori ja suorituksen animaattori.

TitoTrainer: Ohjelmisto, jonka avulla voidaan automaattisesti tarkistaa tehtäväksi annettujen Titokone-ohjelmien oikeellisuus.

Kurssilla on IRC-kanava #tito ja Telegram-ryhmä tkt-tito. Nämä on tarkoitettu opiskelijoiden vertaistuen foorumeiksi.

Kurssin suorittaminen

YLEISTÄ

Kurssilla käytetään monimuotoisia oppimistapoja. Luentojen asiasisältö on myös verkkoluentoina (Authorware, flash, pdf), joita opiskelijat voivat käydä läpi tavanomaisten luentojen rinnalla. Tavanomaiset luennot ovat kertaus- ja yhteenvetoluentoja, joissa opiskelijoiden otaksutaan perehtyneen aihepiiriin etukäteen verkkoluentojen ja oppikirjan avulla.

Kurssiviikolla 1 on Titopaja (ohjausta Titokoneen ja TitorTrainerin käyttöä). Viikolla 2-6 on harjoitukset salissa (ks. tarkempi aikataulu, linkki Materiaalit-osiossa).

Kurssin harjoitusryhmät (27.2.2018 tieto) ovat

to 10-12 Harri Kähkönen (D122)
to 16-18 Satu Bennert (D122)
pe 10-12 Maria Efimova (D122)

HARJOITUKSET

Kotitehtävät tehdään itsenäisesti tai oman opintopiirin (kavereiden) kanssa yhdessä.

Oman työn ja opintopiirityöskentelyn voi yhdistää tehokkaasti siten, että kukin pohtii ensin tehtävät läpi itsenäisesti ja sitten niitä puidaan yhdessä opintopiirissä. Jokaisen tulisi oppia tehtävien asiat täydellisesti, mielellään jo ennen tehtävien käsittelyä viikoittaisessa ryhmätapaamisessa.

Harjoitustilaisuuksissa tehtävät käydään tehtäväkohtaisesti läpi opiskelijavetoisesti keskustellen. Ohjaaja jakaa opiskelijat harjoitustilaisuudessa pöytäkuntiin, joihin pyritään saamaan kuhunkin tehtävään ainakin yksi sen tehtävän ratkaissut opiskelija. Pöydissä voi otaksua, että opiskelijat ovat tutustuneet tehtäviin etukäteen ja ainakin yrittäneet ratkaista niitä. Jos opiskelija ei ole tutustunut tehtäviin etukäteen, hän ei pysty hyödyntämään harjoitustilaisuutta kunnolla. Harjoitustilaisuuden aika ei riitä kaikkien tehtävien huolelliseen läpikäyntiin, ellei tehtäviin ole perehdytty etukäteen. Tilaisuuden ohjaaja toimii konsulttina kaikille pöytäkunnille.

Harjoitustehtävistä annetaan harjoitustilaisuudessa oikeat ratkaisut sillä tarkkuudella, että pöytäkunnat voivat itse tarkistaa tekemiensä ratkaisujen oikeellisuuden. Oikeat ratkaisut tulevat myös verkkoon seuraavalla viikolla. Lopuksi käydään yhdessä läpi yksi tai vaikkapa kaikki tehtävien ratkaisut. Kaikki ovat paikalla tilaisuuden loppuun asti.

On erityisen opettavaista ja omaa oppimista tukevaa selittää asioita jollekin toiselle, joka myös on työskennellyt tehtävän ratkaisemiseksi. Muiden opiskelijoiden auttaminen hyödyntää kumpaakin osapuolta ja yleensä opastajaa enemmän. Älkää kuitenkaan pilatko harjoitustehtävän hyötyä toiselle antamalla sen vastausta suoraan. Eihän siitä juurikaan kostu kumpikaan. Hyvää oppimista saa aikaan vuorottelemalla (a) omaa opiskelua, (b) ongelmien ratkaisuja ja (c) keskusteluja ongelmista ja niiden ratkaisuista muiden opiskelijoiden kanssa.

Harjoitustehtävien tavoitteena on oppiminen, ei pinnojen kalastelu kurssin läpäisemiseksi tai paremman arvosanan saamiseksi. Oppiminen tapahtuu nimenomaan silloin, kun ajattelee ja tekee itse merkittävän osan ongelman ratkaisua sekä keskustelee ratkaisustaan ja ratkaisumenetelmästään muiden kanssa. Valmiiden vastausten lukemisella ei opi yhtä hyvin. Samanlaisia esimerkkejä on luennoilla ja kirjoissa, joten harjoitustehtävien valmiiden ratkaisujen käyttö pelkästään luettavina esimerkkeinä on oppimisen kannalta hyvien harjoitustehtävien hukkaan heittämistä.

Tehtävistä saa harjoitustehtäväpisteitä (htp) niiden vaativuuden mukaan, mutta vain tehdyistä tehtävistä ja vain harjoitustilaisuudessa koko ajan läsnäolleille. Harjoitustehtäväpisteet skaalataan lineaarisesti arvosanapisteiksi siten, että noin 5/6 (83%) max htp:stä saa maksimimäärän arvosanapisteitä.

KURSSIN SUORITUS

Kurssi suoritetaan osallistumalla aktiivisesti luennoille ja harjoituksiin sekä tekemällä ohjelmointitehtäviä Tito-pajassa ja itsenäisesti. Kurssilla edellytetään opiskelijalta oma-aloitteisuutta ja aikatauluttamista, jotta oppiminen tahdistuu viikkoaikataulun mukaisesti.

Luentojen yhteydessä (luentoaikana) järjestetään kolme suppeata (45 min, 13 p) minikoetta, joiden koealue on koetta edeltävät luennot ja harjoitukset. Neljäs minikoe (13 p) on kurssikokeen (52 p) yhteydessä (tehtävä 4). Kukin kurssikokeen tehtävä vastaa samannumeroista minikoetta. Luentokurssin aikana järjestettyihin minikokeisiin ei ole pakko osallistua, vaan ne voi kaikki suorittaa pelkästään kurssikokeella. Kolme ensimmäistä minikoetta voi uusia kurssikokeen yhteydessä. Neljännen minikokeen yksinään tai koko kurssikokeen (kaikki tehtävät) voi uusia uusintakokeessa, joka on kurssin jälkeen seuraava erilliskoe. Perusperiaate on, että kaikkiin kokeisiin on kaksi osallistumismahdollisuutta ja paremman pisteet ratkaisevat.

Opiskelijat harjoittelevat itsenäisesti konekielistä ohjelmointi Tito-pajassa ja TitoTrainer-ohjelmiston avulla. Konekielisen ohjelmoinnin osaaminen tentitään minikokeessa 4.

Kurssin arvosanaan vaikuttavat kokeiden (52 p) lisäksi harjoituksiin osallistuminen (8 p). Kurssin läpipääsyyn vaaditaan kokeista vähintään 26/52 pistettä ja yhteensä vähintään 30/60 pistettä.

Kurssikirjanpidossa (Tikli) on paikka harjoituskerroille (Harjoitukset), neljälle minikokeelle (Koetehtävät 1-4, joista "Koe 4" on minikokeen 4 uusintakoe) ja neljälle kurssikuulustelun tehtävälle (Koetehtävät 5-8). Tarkistakaa aina aika ajoin, että omat pisteenne on kirjattu oikein

Kuvaus

Tietojenkäsittelytieteen perusopintojen pakollinen opintojakso. Avoin kaikkien koulutusohjelmien opiskelijoille.

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

Kurssit Tietokoneen rakenne, 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 opiskeluvuoden kevät, ensimmäisen ohjelmointikurssin jälkeen

Järjestetään syyslukukaudella periodissa 2 normaalina luentokurssina ja kevätlukukaudella ohjattuna itseopiskelukurssina

  • 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
  • William Stallings, Computer Organization and Architecture (10th ed.), Prentice Hall, 2016.
  • Andrew S. Tanenbaum & Todd Austin, Structured Computer Organization, 6th ed, Pearson, 2013.
  • 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.
  • Verkkoluentoja (Teemu Kerola, 2005) voi käyttää tavanomaisten luentojen tukena tai asemesta.
  • Titokone ja TitoTrainer -ohjelmistojen käyttö on välttämätöntä konekielisen ohjelmoinnin oppimiseksi.

Opiskelija: luennot ja niissä tapahtuva pienryhmäkeskustelu, verkkoluennot, 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 ja minikokeet.

Opettaja ja ohjaajat: 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. Kurssi arvioidaan asteikolla 0-5.

Luentokurssi sisältää luentoja, harjoitustilaisuuksia, kokeita sekä itsenäistä ja ohjattua ohjelmistojen käyttöä. Harjoitustilaisuuksissa ja kokeissa on oltava läsnä. Kurssi suoritetaan neljällä minikokeella luentojen yhteydessä ja osallistumalla harjoituksiin.

Ohjatulla itseopiskelukurssilla luentojen asemesta on verkkoluentoja. Muutoin sisältö on sama kuin luentokurssilla. Harjoituksissa ja kokeissa on oltava läsnä, mutta muutoin kurssin voi suorittaa etänä.

Erilliskokeella suoritettuna kurssin arvosana perustuu ainoastaan kokeeseen.