Tietojenkäsittelytiede                          Harjoitustehtäviä
Ohjelmoinnin empiirinen tutkimus                12.11.2010

1. Anna kunkin alla olevan kognitiivisen ilmiön osalta kaksi konkreettista esimerkkiä siitä, miten kyseinen ilmiö ilmenee ohjelmoinnissa tai ohjelmistotuotannossa:

  1. tarkkavaisuuden rajallisuus
  2. yhteyden huomioiminen hahmontunnistuksessa
  3. tiedon muuttuminen havaintopohjaisesta merkityspohjaiseksi

2. Tarkastellaan Java-ohjelmia:

  1. Java-ohjelman tavanomainen esitys ohjelmatekstinä on käytännössä hierarkkinen lineaarinen lista. Minkä perusteen mukaisesti tämä hierarkkisuus muodostuu?
  2. Java-ohjelmoija voisi mahdollisesti hyötyä sellaisesta esityksestä, jossa osa tämän hierarkian tasoista olisi näkymättömissä. Anna esimerkki siitä, miltä osoitteesta http://www.cs.joensuu.fi/~saja/oo_metaphors/animations/Input.txt löytyvä ohjelma voisi näyttää, kun vain osa sen hierarkiatasoista on näkyvissä.
  3. Hahmottele sellaisen editorin käyttöliittymä, jossa hierarkian eri tasot sulkeutuvat ja avautuvat automaattisesti ohjelmoijan tarpeiden mukaan.
  4. Miten selvittäisit olisiko tällaisesta editorista todellisuudessa mitään hyötyä ohjelmoijille?

x3. Pakollinen, yksilötehtävä, kerroin 2

Perehdy VinEd:in avulla esimerkkitiedostoon moduuli.c ja tee siihen muutos, jonka ansiosta hakasulut ohitetaan samoissa tilanteissa kuin missä aaltosulut ohitetaan jo nyt.

Huomaa, että moduuli.c ei ole itsenäinen ohjelma eikä esimerkkiaineistossa ole kaikkia puuttuvia osia. Siten et pysty kääntämään etkä testaamaan muutostasi, vaan sinun on vakuuttauduttava sen toimivuudesta perehtymällä ohjelman toimintaan riittävässä määrin.

Ratkaisusi tulee koostua seuraavista osista:

  1. selvitys omasta asiantuntemuksestasi tähän tehtävään asiantuntemuksen eri dimensioissa
  2. diff-näkymä muutoksen jälkeen
  3. perustelu sille, miksi uskot muutoksesi toimivan
  4. luettelo niistä VinEd:in tarjoamista näkymistä, joita käytit hyväksesi ja lyhyt selostus siitä, mitä sait selville kunkin näkymän kautta
  5. lista näkymistä, jollaisia olisit tarvinnut, mutta joita ei ollut käytettävissä; selitä jokaisesta puuttuneesta näkymästä seuraavat asiat:

Kirjaa vastaukseesi myös:

  1. tämän x-tehtävän tehtävän tekemiseen käyttämäsi aika
  2. tehtävää tehdessäsi kohtaamasi ongelmat
  3. mitä opit tätä tehtävää tehdessäsi
  4. mahdollisia muita ajatuksiasi tästä tehtävästäsi

Tee kaikista ratkaisustasi yksi verkkosivu (joka siis kattaa sekä tekemäsi tavanomaiset harjoitustehtävät että pakollisen x-tehtävän) ja lähetä sen osoite sähköpostilla osoitteeseen saja@cs.joensuu.fi viimeistään 11.11.2010 klo 13:00. (Katso verkkosivua koskevat yleisohjeet ensimmäisten harjoitusten kohdalta.)

Ratkaisun lähettäminen ei poista velvollisuutta osallistua harjoitustilaisuuteen.


VinEd:in käyttö

Ellet ole vielä käyttänyt cslinux:ia kertaakaan, niin tee ensin edellisissä harjoituksissa annettun ohjeen "Ensimmäisellä käyttökerralla" mukaiset toimenpiteet.

VinEd:in ensimmäinen käyttö:

 - Kirjaudu cslinux:lle kuten edellisissä harjoituksissa on kuvattu

  mkdir vined-testi
  cd !$   
  cp /usr/local/cslinux_vined_26/esimerkit/* .    (huomaa lopussa oleva piste)

  vined   [ Jos ei käynnisty, niin: /usr/local/bin/vined ]

Seuraavilla käyttökerroilla riittää mennä asianomaisen hakemistoon ja käynnistää vined:
- Kirjaudu cslinux:lle kuten edellisissä harjoituksissa on kuvattu

  cd vined-testi
  vined   [ Jos ei käynnisty, niin: /usr/local/bin/vined ]

Huom 1: VinEd:in käyttö omalta kotikoneelta ei yleensä onnistu. Tee siis tämä tehtävä yliopistolla.

Huom 2: Jos et saa VinEd:iä käynnistymään yliopistollakaan, niin ota yhteyttä mikrotukeen tai kurssin luennoitsijaan. Koneongelmat eivät ole peruste olla tekemättä tätä tehtävää!