Helsingin yliopisto / tietojenkäsittelytieteen laitos / © Arto Wikla 2013
581362 Ohjelmointikielten periaatteet keväällä 2013:
harjoitusohje
(Muutettu viimeksi 18.1.2013. Sivu perustettu 10.1.2013)
Huom: Muutokset vielä melko todennäköisiä!
Harjoitustehtävät 21.1.-22.2.
Kurssin harjoitustöinä kukin opiskelijatyöryhmä kirjoittaa neljä
artikkelia, joissa esitellään ja vertaillaan kahden ohjelmointikielen
piirteitä, ominaisuuksia ja luonnetta. Kieliparit ovat ryhmäkohtaisia.
Ensimmäisellä harjoituskerralla järjestäydytään työryhmiksi ja valitaan
kullekin ryhmälle kaksi ohjelmointikieltä.
Muille harjoitusviikoille 2.–5. ryhmät kirjoittavat artikkeleita,
joiden sisältövaatimukset kuvaillaan alempana.
Molempien harjoitusryhmien viikoittainen deadline on
keskiviikkoisin kello 23:59. Myöhästyneitä artikkeleita ei
oteta huomioon.
Perustelu tiukkuudelle on se, että työryhmien tuottamia artikkeleita käytetään
harjoitusryhmien työskentelyn materiaalina. Harjoitusryhmä 1
kokoontuu jo torstaisin, ryhmä 2 perjantaisin.
Artikkelit s-postitetaan pdf-muotoisina kurssin vastuuhenkilölle (AW)
(etunimi.sukunimi [at] cs.helsinki.fi). Viestin otsikkona on oltava
OKP: ryhmän nimi, tehtävän numero
(OKP = "Ohjelmointikielten periaatteet", ryhmän nimi: ks. alla,
tehtävän numero on 1, 2, 3 tai 4).
Artikkelit julkaistaan torstaiaamupäivisin kurssin intranet-sivulla
Opiskelijatyöryhmien laatimat artikkelit.
Muoto-ohjeita:
Työryhmien tuottamien artikkeleiden on (soveltuvin osin) noudatettava
samoja tyyli-, viittaus- ja laatuvaatimuksia, joita asetetaan
kandidaatintutkielmalle. Asiasisällön lisäksi siis myös esitystavan
laatu vaikuttaa merkittävästi artikkelien arvosteluun!
Kandidaatintutkielman tyyli- ja laatuohjeistusta löytyy
kyseisen opintojakson sivuilta.
Erityisesti on syytä tutustua esitystyylin mallin antavaan oppaaseen
Opinnäytetyön ulkoasun malli ainetta ja tutkielmaa varten (pdf).
Kandidaatintutkielmasta poiketen artikkeleihin ei sisällytetä
tiivistelmälomaketta. Myös Wikipedia-sivut kelpaavat lähteiksi ja
sisällysluettelo tarvitaan vain, jos artikkelin varsinainen asiasisältö
on pidempi kuin neljä sivua.
Harjoitusten ohjaajat ottavat tarvittaessa kantaa siihen, mitä
"soveltuvin osin" tarkoittaa.
Oikeakielisyyteen löytyy apua vaikkapa seuraavista paikoista:
Kielitoimisto,
Iso suomen kielioppi,
J. Korpelan
aineistoa suomen kielestä,
J. Korpelan
Nykyajan kielenopas,
Yliopistolaisen kielijelppi, ...
Ohjeita ja ideoita viikoittaisiin artikkeleihin
Artikkeleiden asiasisältöjen järjestyksen määrää luennolla käsiteltyjen
sisältöjen järjestys. Koska ohjelmointikielet poikkeavat merkittävästi
toisistaan, jäsentelyehdotukset ovat vain suuntaa antavia –
niitä saa ja itse asiassa pitää muuttaa ja soveltaa luovasti,
mikäli esiteltävät asiat sitä vaativat.
Annetut "otsikot" ovat vain aihepiirien luonnehdintoja –
todellisten otsikoiden on syytä olla osuvampia. Kielestä riippuen
näitä luetteloita voi joutua soveltamaan enemmän tai vähemmän
luovasti.
1. harjoitusviikko:
- Järjestäytyminen:
- muodostetataan n. 2-3 hengen opiskelijatyöryhmät
- ryhmät valitsevat itselleen yksisanaisen nimen
- kukin ryhmä valitsee kolme kieliparia suosituimmuusjärjestyksessä
tarjolla olevista kielipareista
- valintajärjestys:
ensin saavat valita kolmen hengen ryhmät, sitten kahden hengen
ryhmät, sitten mahdolliset neljän hengen ryhmät ja vasta
viimeisenä yhden hengen "ryhmät"
- valinnoissa pyritään löytämään kaikkia ryhmiä tyydyttävä konsensus;
ratkaisemattomissa ristiriitatilanteissa heitetään lanttia...
- keskustellaan ja pohditaan, mitä ja miten oikeastaan pitää kirjoittaa
- ...
2. harjoitusviikko:
- Vertailtavien kielten tausta ja tyyli lyhyesti:
- kuka/ketkä-missä-milloin-miksi, mihin käyttöön, ...,
- tyypilliset toteutustavat: kääntäjä, tulkki, välikieli, ...
- tyypillisimmät käyttökohteet
- lyhyt selostettu esimerkki kummallakin kielellä
ohjelmasta, joka tulostaa pienimmän syöttölukua suuremman
Fibonaccin luvun — ohjelmointityylin pitää olla
"mahdollisimman tyypillistä" kummallekin kielelle
- Kielten alkiorakenteen vertailu:
- tunnukset
- varatut sanat, avainsanat
- literaalivakiot
- erottimet, sisennykset, rivinvaihdot
- jne...
- havainnollisia selostettuja pieniä esimerkkejä
- kielissä tehtyjen ratkaisujen vertailua: etuja, haittoja
- Kielten syntaksista lyhyesti:
- miten ilmaistu spesifikaatiossa, määrittelyssä tai vastaavassa dokumentissa
- erikoispiirteitä (verrattuna vaikkapa "kaikille tuttuun" Javaan)
3. harjoitusviikko:
- Tunnusten näkyvyysalueet – miten ja missä itse annetut
nimet ovat käytettävissä:
- lohkorakenne (tms.), litteä ~ syvä, miten tunnukset näkyvät
lohkorakenteessa
- sidonta – staattinen ~ dynaaminen
- ensimmäisen, toisen ja kolmannen luokan arvot
- sulkeumat
- jne...
- havainnollisia selostettuja pieniä ohjalmaesimerkkejä
- kielissä tehtyjen ratkaisujen vertailua: etuja, haittoja
- Kontrollin ja/tai laskennan ohjaus – miten varsinainen
laskenta/algoritmi/tms. ilmaistaan:
- valinta
- toisto eli iteraatio
- rekursio, häntärekursio, ...
- jne...
- havainnollisia selostettuja pieniä ohjalmaesimerkkejä
- kielissä tehtyjen ratkaisujen vertailua: etuja, haittoja
4. harjoitusviikko:
- Perustietotyypit – millaisilla arvoilla tai datalla lasketaan:
- kieliin "sisäänrakennetut" alkeistyypi/perustyypit
- arvoalueet, ovatko standardoidut vai implementaatiokohtaiset, ...
- vahva tyypitys ~ heikko tyypitys — ja kuinka vahva tai heikko
- staattinen tyypitys ~ dynaaminen tyypitys
- jne...
- havainnollisia selostettuja pieniä ohjalmaesimerkkejä
- kielissä tehtyjen ratkaisujen vertailua: etuja, haittoja
- Laskennan kapselointi – miten toiminnallisuuksia nimetään ja
abstrahoidaan ja miten niistä rakennetaan uusia toiminnallisuuksia:
- nimetyt aliohjelmat ja/tai alifunktiot
- parametrivälityksen tekniikat
- suoritusaikaisiin virheisiin varautumisen välineet – poikkeukset
- tukevatko kielet rinnakkaista laskentaa, jos niin miten
- kielille tyypillisiä ohjelma-arkkitehtuureja
- jne...
- havainnollisia selostettuja pieniä ohjalmaesimerkkejä
- kielissä tehtyjen ratkaisujen vertailua: etuja, haittoja
5. harjoitusviikko:
- Datan kapselointi – millaisiksi rakenteiksi
dataa voidaan koota:
- rakenteiset ja/tai kapseloidut tyypit — taulukoista ja listoista
ties mihin himmeleihin
- oliot ja luokat — perintä, yksi-, moni-,
- arvo- vai viitesemantiikka
- kokoelmat
- geneeriset tyypit, käännösaikainen tyyppiparametrointi, ...
- "traitit", "mixin", yms.
- prototyypit, ...
- jne...
- havainnollisia selostettuja pieniä ohjalmaesimerkkejä
- kielissä tehtyjen ratkaisujen vertailua: etuja, haittoja
Takaisin kurssin pääsivulle.
by WebCounter
starting
9.1.2013