Learning Outcomes versus Collected Course Materials
CLO1CLO2CLO3CLO4CLO5CLO6CLO7CLO8CLO9CL10CLO11 N/A
HW1XXX
HW2XXXX
MT1X
MT2X
MT3XX
MT4XXX
MT5XXX
HW3XXXX
HW4XX

MTn = Midterm Problem n. FEPn = Final Exam Problem n. Within the class there were two versions of a given test; however, these two versions were just problem permutations of each other. The results above are all for the first of these two permutations. The two classes each had different tests which were variants of each other, testing the same learning outcomes.

CLO1 (Course Learning Outcome 1) -- Recognize the history of programming languages.

CLO2 -- Discuss and distinguish the procedural, object-oriented, functional, and logic programming paradigms.

CLO3 -- Explain the roles of interpreters, compilers, and virtual machines.

CLO4 -- Critique the design of a programming language.

CLO5 -- Read and produce context-free grammars.

CLO6 -- Write recursive-descent parsers for simple languages.

CLO7 -- Understand variable scoping and lifetimes.

CLO8 -- Write interpreters for simple languages that involve arithmetic expressions, bindings of values to names, and function calls.

CLO9 -- Understand type systems.

CLO10 -- Understand the implementation of procedure calls and stack frames.

CLO11 -- Produce programs in a functional programming language.

N/A -- Important material covered in the course but not directly related to a specific learning outcome.