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.
  1. 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)

  2. 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ä)

  3. 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ä)

  4. 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.
  1. 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)

  2. 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)

  3. 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)

  4. 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)