# Activity Plan for Week 3
## Summary
In Week 3 of the Functional Programming module, we will:
1. study the list comprehensions and see how these could be used/reused for generating lists of values
2. study recursion and understand how functions could be defined in terms of themselves – a more natural way of defining functions
3. understand the concept of higher-order functions, where we can pass functions as parameters to other functions.
## Activities: what you should do this week
As in every week, the entrypoint to your learning is the [“Modules” page](https://canvas.bham.ac.uk/courses/56356/modules).
The activities there correspond to the items mentioned above:
Read the following handouts and the videos embedded with these documents:
4. Handout – [List Comprehensions](../LectureNotes/Sections/list_comprehensions.md)
5. Handout – [Recursive Functions](../LectureNotes/Sections/recursive_functions.md)
6. Handout – [Higher-order Functions](../LectureNotes/Sections/higher-order_functions.md)
Additional reading:
7. Task: Read Chapter 5, “List Comprehensions” of our textbook Programming in Haskell.
8. Task: Read Chapter 6, “Recursive Functions” of our textbook Programming in Haskell.
9. Task: Read Chapter 7, “Higher-order Functions” of our textbook Programming in Haskell.
Please go through the various material at your own pace. We have tried to measure the material such that it can be done in 12 hours.
10. Attend the lectures on Wed and Fri.
11. Attend the lab session on Thursday.