Learning Modules Map

Here is a listing of the learning modules and the assignments that fulfill them. We will update this whenever we release a new assignment. Each LM needs 10 points fulfill; some assignments give more points than others, and some LMs have more that 10 points of opportunity (so you could miss something and sill have other opportunities).

If two assignments are listed with a + between them then both are necessary to fulfill the objective. If they are comma separated then you will have a choice.

Second chance exams are not listed. Exam 2 will "second chance" Exam 1, Exam 3 will "second chance" Exam 2, and the Final will second chance all three midterms.

Module Outcome Points Fulfilling Assignment
1. Recursion 1. Integer Recursion 2 Exam 1-q1
2. Mapping Recursion 2 Activity 1 - Recursion
3. Folding Recursion 2 Activity 1 - Recursion
4. Tail Recursion 2 Exam 1-q2
5. Tail Recursion Advantage 2 Exam 1-q3
2. ADTs 1. Write datatype 2 MP 1 - Haskell
2. Consume datatype 2 Activity 2 - ADTs
3. Transform datatype 3 Exam 1-q4
4. Produce datatype 3 MP 1 - Haskell
3. HOFs 1. Writing HOFs 3 Exam 1-q5
2 Activity 3 - Fixpoint
2. Using HOFs 5 Exam 1-q6
4. Interpreters (Expressions) 1. Write a datatype for eval 2 MP 2 - Interpreter
2. Write an operator lifting function 4 MP 2 - Interpreter
3. Write an eval clause from semantics 4 MP 2 - Interpreter
5. Interpreters (Functions) 1. Use eval to create a closure 4 MP 2 - Interpreter
2. Use eval to apply a function 4 MP 2 - Interpreter
3. Show why closures need an environment 2 Exam 2-q5 (80%)
4. Select difference between procedure and function 2 Exam 2-q4 (80%)
6. Lambda calculus 1. Reduce a lambda calculus expression 10 Exam 1-q7
7. Evaluation Semantics 1. Write a big step semantics proof tree. 5 Exam 1-q8
2. Write a small step semantics proof. 5 Exam 3
8. Typing Semantics 1. Write a monotype proof tree 5 Exam 3
2. Write a polytype proof tree 5 Activity 20 - Types
3. Implement a Type Inferencer 5 MP 6
9. Hoare Semantics Canceled
10. Continuations 1. Compare Tail Recursion and Continuations 1 Exam 2-q2 (80%)
1 Exam 2-q3 (80%)
2. Convert/write a function to CPS 8 Exam 2-q1
4 MP 3 - CPS
3. Use Continuations to control program flow 4 Activity 8 - CPS
or MP 3 - CPS
11. Type Classes and Monads 1. Implement the Eq or Ord type class for a given type. 2 Activity 9 - Typeclass
2. Implement a Functor type class for a given type. 2 Exam 2-q6
3. Implement an Applicative type class for a given type. 2 Exam 2-q6
4. Implement a Monad type class for a given type. 4 Exam 2-q7
12. Grammars 1. Given a grammar, show that it is ambiguous by giving an expression and two different parse trees. 1 Activity 12 - Grammar
4 Exam 2-q8
2. Given a grammar, determine the FIRST and FOLLOW sets of its non-terminal symbols. 1 Activity 12 - Grammar
4 Exam 2-q9 (80%)
13. Regular Languages 13.1 – Given a regular expression, show an equivalent right-linear grammar. 4 Exam 2-q10
13.2 – Given a description of a pattern, show an equivalent regular expression. 4 Activity 13 - Regular Language
13.3 – Indicate the limits of a regular expression (MC) 2 Exam 2-q11 (80%)
14. LL Grammars 1. Given an LL grammar, give the Haskell implementation 4 Exam 2-q13
or Exam 3
1 Activity 14 - LL
2. Convert a non-LL grammar to LL 4 Exam 2-q12
or Exam 3
1 Activity 14 - LL
15. LR Parsing 1. Identity Location of Shift/Reduce Conflict 3 Exam 3
2. Identity Significance of Shift/Reduce Conflict 2 Exam 3
3. Produce LR Item Sets and Automata 2 Activity 15 - LR (95%)
3 Exam 3
16. Unification 1. Identify four unification operations 2 Activity 18 - Unification
2. Identify unification steps 8 Exam 3
17. State and Objects Canceled
18. Prolog 1. Write a Prolog predicate that processes a list. 4 Activity 21 - Prolog
2. Write a Prolog predicate that searches a graph-like structure. 4 Activity 21 - Prolog
3. Show how to use the cut operator to limit unwanted backtracking. 2 Activity 21 - Prolog
19. Variables 1. Identify the four properties of variables and the effect of binding them statically or dynamically. 5 Activity 22 - Variables
2. Show the effect of different parameter passing styles on a block of code. 5 Activity 22 - Variables
20. Metaprogramming 1. Write a program that writes a program 5 Activity 23 - Macros
2. Implement an interpreter with macros 5 MP 5
Previous
Next