Harjoitukset
Tietokoneen toiminta, Ks2004, LH 6
Nämä tehtävät tehdään harjoituksissa 3.9.2004.
Tee tehtävät yksi kerrallaan haluamassasi järjestyksessä. Tarvittaessa
pyydä apua paikalla olevilta ohjaajilta. Halutessasi voit tehdä tehtäviä
pienessä ryhmässä, mutta kaikkien tulee silti kirjoittaa omat vastauksensa ja
tehdä omat ohjelmansa omalla koneellaan. Saatuasi valmiiksi jonkun tehtävän
(joukon tehtäviä), voit pyytää ohjaajaa tarkistamaan suorituksesi.
Ennen pois lähtöäsi varmista vielä, että ohjaajat ovat kirjanneet kaikki
tekemäsi tehtävät. Harjoitustehtäviä voi toki tehdä vielä kotonakin,
mutta kurssin läpipääsyyn ja arvosanaan vaikuttavat vain harjoitustilanteessa
kirjatut tehtävät. Kurssin suoritus edellyttää aktiivisuutta myös
harjoitustehtävien suhteen.
- 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.
- Anna esimerkkejä tilanteesta, jolloin tulkitseminen olisi parempi kuin
muut vaihtoehdot. Perustele, miksi muut tavat olisivat huonompia.
- Anna vastaavat esimerkit ja perustelut tilanteista, jolloin muut e.m.
vaihtoehdoista olisivat parhaita vaihtoehtoja.
- Mikä olisi paras vaihtoehto (Java) ohjelmoinnin harjoitustyön suorittamiseen?
Miksi?
- 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?
- 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.
- Anna konekäskyt, joilla X:n arvoa kasvatetaan 5:llä.
- Anna konekäskyt, joilla X:n arvoksi tulee Y+Z
- Anna konekäskyt, joilla Y:n arvoksi tulee Tbl[3]
- Javan suoritus.
- Missä olosuhteissa Javalla tehdyn ohjelman suoritus olisi
nopeampaa kuin saman ohjelman C:llä tai C++:lla tehty toteutus?
Miksi?
- Missä olosuhteissa Javalla tehdyn ohjelman suoritus olisi hitaampaa
kuin saman ohjelman C:llä tai C++:lla tehty toteutus? Miksi?
- Oletetaan, että osaat hyvin sekä Java- että C-kieliä. Sinulle on annettu
tietty sovellus toteutettavaksi ja saat itse valita toteutuskielen. Kumpaa
käyttäisit ja miksi?
- Mitä ohjelma mystery.k91
tekee? Miten se tekee sen? Entä ohjelma mystery3.k91?
Miten se tekee sen?
Mihin tällaista ohjelmointitapaa voisi hyödyntää? Mitä
ongelmia tällaisessa ohjelmointitavassa on?
- [1 htp] Vastaa kurssikyselyyn.
Kiinnitä lisähuomiota kohtien 14 ja 19 vastauksiin.
Vastaa kurssikyselyn kohdassa 14 ("Miten kurssia voisi kehittää?")
myös lisäkysymyksiin:
- Montako tuntia olet käyttänyt tähän kurssiin yhteensä tähän asti aikaa?
Luentojen seuraamiseen? Harjoituksiin? Itseopiskeluun?
- Kuinka suureen osaan luennoista osallistuit? (100%, 90%, ...)
- Oliko aikataulu nopea/sopiva/hidas?
- Käytitkö englanninkielisiä oppikirjoja? Kuinka paljon?
- Käytitko Häkkisen suomenkielistä monistetta? Kuinka paljon?
Vastaa kurssikyselyn kohdassa 19 ("Muita kommentteja ...") myös
lisäkysymyksiin:
- Asensitko Titokoneen kotikoneellesi? Minkä version (Windows 98/2000/XP,
Linux, Mac)?
- Mielipiteesi Titokoneesta yleensä?
- Miten Titokonetta voisi mielestäsi tehdä paremmaksi?
- Minkälaisia
puutteita olet havainnut Titokoneessa (siis muita kuin Titokoneen piirteet
tai ongelmat -sivulla on jo mainittu)?
Teemu Kerola