Helsingin
yliopisto/Tietojenkäsittelytieteen
laitos/Ohjelmointikielten
periaatteet/Copyright © 2011 Arto Wikla.
Ohjelmointikielten periaatteet, koe 4.5.2011/AW
Kirjoita jokaiseen paperiisi kurssin nimi ja kokeen
päivämäärä sekä nimesi, opiskelijanumerosi ja allekirjoituksesi.
- Oletko jo vastannut kurssikyselyyn vai lupaatko varmasti
vastata kurssikyselyyn? Linkkiketjun alku löytyy laitoksen opiskelusivun
laatikosta "Linkkejä" kohdasta "Kurssipalaute".
Tämäkin kohta arvostellaan ihan oikeasti!
Oikeita vastauksia ovat vain myönteiset:
"Olen jo vastannut", "Lupaan varmasti viimeistään huomenna vastata", jne.
Rehellisyyttä toivotaan!
Rehellisyysprosentti julkistetaan kurssin tulossivulla loppuviikosta.
(1 piste)
- Parametrien välittäminen aliohjelmille voidaan toteuttaa
monin erilaisin tavoin. Myös se, mitä parametrina sallitaan,
vaihtelee kielestä kieleen. Kirjota selvitys parametrivälityksen
valinnoista ja valintojen seurauksista.
Vastauksen maksimipituus on yksi konseptipaperiarkki.
(9 pistettä)
- Luonnehdi ja vertaile seuraavia tekniikoita oliokielten
luokkarakenteen toteutuksessa: yksittäisperintä, moniperintä,
Java-tyylinen rajapintaluokka (interface)
ja Scala-tyyppinen piirreluokkien (traits) liittäminen (mixin).
Anna muitakin kieliesimerkkejä kuin yllä mainitut.
Vastauksen maksimipituus on yksi konseptipaperiarkki.
(10 pistettä)
- Peruskoulun kahden viimeisen luokan vaatimuksiin on päätetty
ottaa pakollinen laajahko ohjelmoinnin kurssi. Paradigman valinta on hyvin
kriittinen päätös: tulisiko aloittelijoille ensimmäiseksi opettaa
funktionaalinen ohjelmointityyli, perinteinen algoritminen
(eli "proseduraalinen" eli "imperatiivinen") tyyli vai
logiikkaan perustuva tyyli.
Pohdi vaihtoehtoja ja anna perusteltu suosituksesi.
Voit päätyä johonkin olemassaolevaan kieleen tai luonnostella
oman uuden kielen.
Vastauksen maksimipituus on yksi konseptipaperiarkki.
(10 pistettä)
Principles of Programming Languages: examination 4 May 2011
Write the name of the course, the date of the exam, your name, student
number and signature on each paper.
- Have you already answered the Course feedback or do you promise
to answer it soon? You'll find the link in the Studies page of our
Department, see the box "Links", link "Course feedback".
Also this question will give points (well one point). The only right answer
is a positive one: "yes" or "I sincerely promise", etc.
We hope you are honest!
(1 point)
- Passing parameters to subroutines can be implemented in many ways.
Also what is allowed as parameter, is varying from language to language.
Write an explanation of different ways and their consequences.
The maximum length of your answer is one "examination paper" (4 pages).
(9 points)
- Describe and compare the following techniques in implementing
the class structure of object oriented languages:
single inheritance,
multiple inheritance,
Java-style interfaces and
Scala-style of mixin-in traits.
Give also other examples of programming languages.
The maximum length of your answer is one "examination paper" (4 pages).
(10 points)
- Somebody has decided to make programming an obligatory and
quite large subject for school children in the 7th and 8th class.
Selecting the paradigm is a very critical decision:
Should a beginner first be taught:
functional, imperative or logic based programming style.
Discuss about the alternatives and give your well founded
recommendation. You can also recommend some existing language,
or you may sketch your own new language.
The maximum length of your answer is one "examination paper" (4 pages).
(10 points)