Oregon State University CS 381 Learning Objectives

CS 381 -- Programming Languages

Course Learning Objectives: a detailed list

On completion of the course, students will be able to:

  1. Describe and work problems that accurately predict program behavior under static versus dynamic scoping mechanisms.
  2. Describe and work problems that accurately predict program behavior under static versus dynamic typing mechanisms, with or without the use of type constraints.
  3. Describe and work problems that accurately predict program behavior under the by-value, by-reference, by-constant, by-result, by-value-result, and by-name mechanisms of parameter passing.
  4. Describe the contents of the run-time stack as it stands at any moment in program execution.
  5. Describe the extent of polymorphism facilitated by dynamic typing versus inheritance versus overloading.
  6. Understand exception handling mechanisms and be able to implement exception handlers in Java and in 2-3 other programming languages.
  7. Explain the essential differences between the imperative, functional, dataflow, and object-oriented paradigms. Create programs in several paradigms.
  8. Explain how programming language semantics are defined (axiomatic, denotational, operational semantics).