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