Show/hide contentOpenClose All
Curricular information is subject to change
On completing this module students will be able to take a vague problem statement and produce working Haskell code that solves that problem in a way that that they can show (informally) is correct. They will be able to design and implement appropriate type structures, implement recursive problem solutions, and use list comprehensions and infinite data structures in Haskell. They will also be able to use generative assistants to produce Haskell code that solves more challenging problems in a demonstrably correct and efficient manner, and show a principled awareness of how to use these tools effectively.
Indicative Module Content:1: What is 'pure' functional programming? Why is purity important?
2: Introduction to Haskell: recursive definitions
3: Introduction to generative programming assistants
4: Using types in Haskell
5: Producing effective problem statements for programming assistants
6: Introduction to list comprehensions in Haskell
7: Problem statements that generate different solutions
8: Defining types in Haskell
9: Problem statements that generate different type definitions
10: Types and program correctness
11: Verifying and assessing generated solutions to problems
Student Effort Type | Hours |
---|---|
Lectures | 24 |
Computer Aided Lab | 24 |
Specified Learning Activities | 20 |
Autonomous Student Learning | 50 |
Total | 118 |
Not applicable to this module.
Description | Timing | Component Scale | % of Final Grade | ||
---|---|---|---|---|---|
Practical Examination: Two-hour practical programming exam covering the Functional Programming topics presented in the module. | Week 12 | n/a | Graded | No | 70 |
Continuous Assessment: 2 hour programming labs on different Functional Programming exercises, which must be completed within the lab. | Throughout the Trimester | n/a | Graded | No | 30 |
Remediation Type | Remediation Timing |
---|---|
In-Module Resit | Prior to relevant Programme Exam Board |
• Feedback individually to students, post-assessment
• Online automated feedback
Students will get automated online feedback on their assignments throughout the semester. For the practical exam they will get individual feedback and assessment.
Lecture | Offering 1 | Week(s) - 20, 21, 22, 23, 24, 25, 26, 29, 30, 31, 32, 33 | Thurs 09:00 - 09:50 |
Practical | Offering 1 | Week(s) - 20, 21, 22, 23, 24, 25, 26, 29, 30, 31, 32, 33 | Thurs 15:00 - 16:50 |
Lecture | Offering 1 | Week(s) - 20, 21, 22, 23, 24, 25, 26, 29, 30, 31, 32, 33 | Wed 09:00 - 09:50 |