Harjoitukset

Tietokoneen toiminta, Itseopiskelukurssi, HT 6

  1. Java ohjelmia (tavukoodia) voidaan suorittaa (ainakin) neljällä eri tavalla: tulkitsemalla, tavallisella käännöksellä, Just-In-time -käännöksellä tai suoraan Java-suorittimella.
    1. Anna esimerkkejä tilanteesta, jolloin tulkitseminen olisi parempi kuin muut vaihtoehdot. Perustele, miksi muut tavat olisivat huonompia.
    2. Anna vastaavat esimerkit ja perustelut tilanteista, jolloin muut e.m. vaihtoehdoista olisivat parhaita vaihtoehtoja.
    3. Mikä olisi paras vaihtoehto (Java) ohjelmoinnin harjoitustyön suorittamiseen? Miksi?
    4. Mitä prosesseja järjestelmässä tarvitaan ohjelman suoritushetkellä, jos Java ohjelmaasi MyProg suoritetaan 1) tulkitsemalla, 2) tavallisella käännöksellä, 3) Just-In-Time -käännöksellä tai 4) suoraan Java-suorittimella?
    5. Milloin käyttäisit C#'ia Javan asemesta? Mitä eroja/yhtäläisyyksiä C#'lla ja Javalla on?

  2. Java virtuaalikone. Tee seuraavat oletukset. X, Y ja Z ovat paikallisia muuttujia numero 3, 4 ja 5. Tbl osoittaa 20 alkioiseen taulukkoon ja se (Tbl) on talletettu paikalliseen muuttujaan numero 6.
    1. Anna konekäskyt, joilla X:n arvoa kasvatetaan 5:llä.
    2. Anna konekäskyt, joilla X:n arvoksi tulee Y+Z
    3. Anna konekäskyt, joilla Y:n arvoksi tulee Tbl[3]
    4. Mitkä ovat suurimmat erot JVM ja ttk-91 arkkitehtuurien välillä?
       
  3. Javan suoritus
    1. Missä olosuhteissa Javalla tehdyn ohjelman suoritus olisi nopeampaa kuin saman ohjelman C:llä tai C++:lla tehty toteutus? Miksi? Onko tämä tärkeätä? Milloin?
    2. Missä olosuhteissa Javalla tehdyn ohjelman suoritus olisi hitaampaa kuin saman ohjelman C:llä tai C++:lla tehty toteutus? Miksi? Onko tämä tärkeätä? Milloin?
    3. Oletetaan, että osaat hyvin sekä Java- että C-kieliä. Sinulle on annettu tietty sovellus toteutettavaksi ja saat itse valita toteutuskielen. Kumpaa käyttäisit? Miksi? Onko tämä tärkeätä? Miksi?
    4. Onko Javan suoritus tulkissa emulointia vai simulointia?
    5. Mikä on emuloinnin ja simuloinnin ero?
    6. Miten Java-ohjelmien suoritus eroaa C-ohjelmien suorituksesta?
    7. Miten Javan suoritus tulkin avulla eroaa ttk-91 ohjelmien suorituksesta Titokoneessa? Mitä niillä on yhteistä?

     
  4. Vastaa kurssikyselyyn.

    Vastaa kurssikyselyn kohdassa 14 ("Miten kurssia voisi kehittää?") myös allaoleviin lisäkysymyksiin. Merkitse vastaukseesi kyseisten lisäkysymyksen kohdat (a, b, ...). Ota kopiot vastauksestasi mukaan opintopiiri- ja ryhmätapaamiseesi.

    1. Montako tuntia olet käyttänyt tähän kurssiin yhteensä tähän asti aikaa?
      Verkkoluentojen seuraamiseen? Harjoitustehtäviin? Projekteihin? Itseopiskeluun?
    2. Kuinka suureen osaan verkkoluennoista kävit läpi? (100%, 90%, ...)
    3. Oliko aikataulu nopea/sopiva/hidas?
    4. Käytitkö englanninkielisiä oppikirjoja(Stallings, Tanenbaum)? Kuinka paljon? Montako tuntia luit?
    5. Paljonko aikaa (tunteja) opintopiirisi käytti harjoitustehtävien läpikäyntiin ennen ryhmätapaamista?
    6. Oliko harjoitustehtäviä liikaa/liian vähän?
    7. Hyviä ideoita tämän itseopiskelukurssin kehittämiseen

     
  5. Tämän viikon TitoTrainer tehtävät, ainakin tehtävät e-300, e-310 ja e-410.