CS 451 Programming Paradigms
Sample Final

Sample CS 451 Final Exam Questions 9 May 1997

 

Please answer each question. Your answers must be done on a word processor and spell-checked. The approximate number of words (or less) expected for each answer is next to the question number. Total points for the exam is 100.

Please do the exam by yourself using any books or notes you wish, with questions only to me. Please turn the exam into my office by 5 pm next Monday, 12 May.

 

1. (60)

Who created LISP and when? What is "pure lisp"? What was the original "semantic philosophy" for creating LISP?

 

2. (60)

What is l-abstraction? How might l-abstraction be used in solving a problem? How might it be used in building "meta-interpreters"?

 

3. (100)

What is the philosophy behind the creation of SML-NJ (there are two critical points here)? How did its designers build this philosophy into the language?

 

4. (100)

What is a Turing Machine? What is a Universal Turing Machine? What is Post's Production System accounting of computing? How is it possible to show these computational models equivalent?

 

5.(100)

What is the Church/Turing Hypothesis? Why is it an hypothesis? What does this have to say about the selection of a particular language or programming paradigm for solving a particular problem?

 

6. (100)

Explain the origins of either Smalltalk or Java. Who created the language? What was their design philosophy, and how may this philosophy be seen in the language?

 

7. (80)

Explain the byte-code portability issue for Java. What are plusses and minuses of this approach?

 

8. (60)

Explain the differences between single and multiple inheritance in object-oriented languages. In the 451 course, which languages had what? What are the plusses and minuses of each approach?

 

9. (100)

Who created PROLOG, what was its design philosophy? Does PROLOG's procedural semantics reflect this design philosophy? What does PROLOG do with the query: ?- 2 + 3 = 5? Why?

 

10. (60)

Explain the difference between functional and declarative programming. Give examples.

 

11. Bonus question (50)

a) What did you like best in the course and why?

b) What was your least-liked aspect of the class and how can it be improved?

 


[ Back to CS451 Home Page ]