Spring 2019 CSE 283 Introduction to Object Oriented Design Review for test 2
Test 2
Date: 4/17/2019, in class Coverage
Condition equations, recursion, list comprehension, higher order functions; type classes and its properties (example: laws for Eq, Ord, Functor laws etc.) data declarations; program construction (example: sudoku) utilizing patterns (example: fold functions and its variants and the fusion law); induction proofs for simple data types (example: Nat) and lists (example: finite lists, partial lists and infinite lists).
Emphasis:
• Concepts and techniques shown as Ch. 4 – Ch. 6 (Bird); slides used in class to illustrate these concepts (example: defining new data types via data declarations where new data types such as proposition used in the development of tautology checker, trees, Nat are developed and enhanced by joining existing type classes the `deriving’)
• The example (case study: sudoku) that provide the context of many of these concepts and show case the application of program construction with several techniques (example: using higher order functions, F unctor laws, fusion laws and the construction of proofs.
Preparation
1. Review the slides and the examples used from each lecture.
2. Review the required reading and practice on the examples given.
3. The test will include 5 questions. You must answer all of them.
a. (16-25 point) Short question
You need to evaluate a collection of Haskell expressions to demonstrate your skills in understanding the general features of Haskell as stated in the coverage.
Time: you are expected to spend 12-15 minutes for that part of the examination b. (16-25 point)
You will be asked to write Haskell functions with a unified theme to meet the specific requirement.
Time: you are expected to spend 12-15 minutes for that part of the examination
c. (16–25 point)
You will be asked to write Haskell functions with a unified theme to meet the specific requirement.
Andrew C. Lee 1 EECS Department, Syracuse University
Spring 2019 CSE 283 Introduction to Object Oriented Design Review for test 2 Time: you are expected to spend 12-15 minutes for that part of the examination
d. (16-25 point) Conceptual question
You need to answer short conceptual questions such as those related to the following higher order functions (e.g. notations and meanings of lambda notations; curry/uncurry; foldr and its variants; map, filter and functoral properties; Requirements on induction proofs)
Time: you are expected to spend 12-15 minutes for that part of the examination
e. (16-25 point) Proof question
You need to apply mathematical reasoning skills (e.g. equation reasoning, suitable forms of mathematical induction or both) to present a proof regarding properties among a collection of given Haskell functions
Time: you are expected to spend 12-15 minutes for that part of the examination
Andrew C. Lee 2 EECS Department, Syracuse University