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