Ttk-91 tietokone

Ttk-91 on Auvo Häkkisen vuonna 1991 opetuskäyttöön suunnittelema hyvin yksinkertainen tietokone [Häkk98]. Tietokone ttk-91 on määritelty sen rekisteriarkkitehtuurin, konekielen ja symbolisen konekielen avulla. Ainoa tietotyyppi on kokonaisluku, sanat ovat 32-bittisiä ja muistiosoitteet ovat sanaosoitteita.

Kevään 2011 Tietokoneen toiminta -kurssin assistentti Anna Kuosmanen teki oman ohjeistuksensa ttk-91 koneen käskyistä ja useita ohjelmaesimerkkejä. Ne ovat sivulla http://www.cs.helsinki.fi/group/nodes/kurssit/tito/kuosmanen/.

[Häkk98] Auvo Häkkinen, Tietokoneen toiminta, opetusmoniste D390 (tosi vanha kurssimoniste), Tietojenkäsittelytieteen laitos, Helsingin yliopisto, 30.1.1998.

 

Titokone

Titokone on kevällä 2004 Koski-ohjelmistotuotantoryhmän toteuttama ohjelmisto, jonka avulla voidaan kääntää ja suorittaa symbolisella konekielellä kirjoitettuja ohjelmia ttk-91 -tietokoneelle. Helpoin tapa ajaa Titokonetta on tallettaa sen jar-tiedosto (v. 1.203Titokone jar file) omalle koneellesi ja klikata sitä. Voit myös asentaa Titokoneen omalle koneellesi asennusohjeen mukaisesti, jolloin sen saa käynnistymään aina samassa omassa ympäristössäsi. Titokoneen käyttöohjeet ( Titokone user guides) ovat verkossa. Näissä on mukana asennusohje omalle koneelle ja käskyluettelo

Ttk-91 konekielen käskyjen kuvaus on tiiviissä muodossa TitoTrainerin ohjeissa ja ladattavissa tekstitiedostona Titokoneen sivuilta.  

Verkossa on lukuisia nykykurssilla käytettäviä ttk-91 esimerkkejä ( ttk-91 examples) ja vielä vanhempia ttk-91 esimerkkejä.

Titokonetta käytetään kurssilla itsenäiseen omalla tietokoneella tapahtuvaan konekielisen ohjelmoinnin harjoitteluun. Titokone osaa myös animoida konekäskyjen ja konekielisen ohjelman suoritusta ttk-91 arkkitehtuurissa.

 

TitoTrainer

Kurssilla käytetään konekieliseen ohjelmointiin tutustumisessa TitoTrainer-ohjelmistoa, joka automaattisesti tarkastaa ttk-91 -ohjelmien oikeellisuuden.  TitoTrainerin nykyversio eli TitoTrainer2  on sivulla http://titotrainer2.users.cs.helsinki.fi. ( TitoTrainer)

HUOM: Jos et pääse kirjautumaan TitoTrainer2:een (esim. "Service Temporarily Unavailable"), mailaa asiasta osoitteeseen atk-apu@cs.helsinki.fi, jolloin tilanne korjaantuu yleensä aika pian. Joidenkin päivitysten jälkeen TitoTrainer2 ei vain käynnisty uudelleen automaattisesti, vaikka näin pitäisi tapahtua.  

Kukin opiskelijan tutustuu konekieliseen ohjelmointiin suorittamalla TitoTrainerilla joukon tehtäviä. TitoTrainer pitää kirjaa suoritetuista tehtävistä. Jos ohjelman toiminnassa tai tehtävien muotoilussa on ongelmia tai outouksia, kertokaa niistä kurssin vastuuhenkilölle (Teemu Kerola).

TitoTraineriin tarvitaan oma tunnus ja salasana. Voit luoda ne TitoTrainerin kirjautumissivulla. Kirjaa tunnuksesi samalla TitoTrainer-kurssille "Kevät 2018". Älä käytä laitoksen tunnuksen tai yliopiston AD-tunnuksen salasanaa. ( sign up to course "Spring 2018")

TitoTrainer-tehtävissä on niiden nimen alussa luokittelutietoa (esim. a-150 Simppeli koodisegmentti), jossa ensimmäisenä oleva kirjain kertoo päätason:

  1. aloittelija, yksinkertainen koodi, if-then-else, silmukat  ( simple code)
  2. monimutkaisempaa koodia, tietorakenteiden käyttö ( data structures)
  3. aliohjelmien kutsuminen, konekielen hyvä ymmärrys, koodin optimointi ( subroutines use, code optimization)
  4. aliohjelmien toteutus, moniulotteiset taulukot ( subroutine implementation, multidimentional arrays)
  5. kokonaiset ohjelmat aliohjelmineen, laiteajuri ( whole programs, device driver)
  6. itse muokkaavaa koodia, ihan mitä vain ( self modifying code)

Päätason perässä oleva kolminumeroinen luku kertoo päätason sisällä vaikeusasteen (100=helppo, 900=vaikea). On suositeltavaa, että tehtävät tehdään tasojärjestyksessä helpoimmasta vaikeampaan. Vaikeusasteella 700 tehtävät millä tahansa tasolla voivat olla haastavia. Vaikeusasteen 900 tehtävät menevät jo syventävien oppimistavoitteiden puolelle. ( level 100 =easy, level 900=difficult)

Perusoppimistavoitteet ttk-91 osaamiselle

Osaat toteuttaa symbolisella ttk-91 konekielellä erilaisten tietorakenteiden (muuttujat, 1- ja 2-ulotteiset taulukot, tietueet) muistivaraukset ja niihin viittaamiset. Osaat käyttää tietorakenteita myös osoitinmuuttujien avulla. Osaat toteuttaa koodissa haarautumiset (if-then-else) ja erilaiset toistolauseet (for, while-do, do-until, ...). Osaat käyttää aliohjelmia (funktioita) ja toteuttaa ne. Osaat selittää, mikä on aktivointitietue ja aktivointitietuepino. Osaat käyttää arvo- ja viiteparametreja. Osaat varata globaaleja tietorakenteita ja aliohjelmien paikallisia tietorakenteita. Osaat viitata aliohjelmissa parametreihin sekä globaaleihin ja paikallisiin tietorakenteisiin.

 
Jos tehtävät ovat epäselviä tai mielestänne huonosti määriteltyjä, lähettäkää asiasta mailia Teemu Kerolalle (teemu.kerola (at) cs.helsinki.fi). Määrittelyihin ei tule muutoksia ellei joku ensin tuo esille niissä olevia puutteita. Kiitos! ( If problems are not well specified, email about to teemu.kerola (at) cs.helsinki.fi)