Syllabuses - UG

CS316 - Functional Programming

TIMETABLETEACHING MATERIAL
Credits20
Level3
SemesterSemester 1
AvailabilityPossible elective
PrerequisitesBasic programming skills, as might be gained by taking CS105 Programming Foundations or a similar introductory programming class.
Learning Activities BreakdownLectures: 20 | Tutorials: 10 | Labs: 18
Assignments: 60 | Self study: 92
Items of Assessment2
AssessmentThe class is assessed by 1 class test and 1 large coursework. The class test is 50% and the coursework is 50%. The class test is in week 5. Students who fail the class test (get <40/50) get a second attempt in Week 9. The coursework is designed so that 15/50 of marks are for completing a basic version of an application; 35/50 of the marks are for extensions to the application conceived, designed, and implemented by the student.
LecturerRobert Atkey

Aims and Objectives

To provide the student with skills in basic functional programming and experience in integrated deployment of those skills.

Learning Outcomes

On completion of the class, a student should be able:

  • To understand the basic advantages of high-level programming languages.
  • To understand the basic advantages of using mathematics to structure programming.
  • To understand the basic principles of functional program design and demonstrate their practical application.
  • To specify and implement simple functional programs in the programming language Haskell.
  • To integrate the basic techniques of functional programming in a substantial project.

Syllabus

Core topics in the Haskell programming language are: Basic functions; Haskell’s built in data types; if expressions; case expressions; guarded functions; local definitions; pattern matching; list processing with built-in functions; recursion; polymorphism; anonymous functions; first-class functions; algebraic data types including recursive and polymorphic such types; standard type classes; monadic-style input/output.

The course will conclude with substantial integrative project work (e.g. a lexer-parser-interpreter, turtle graphics, or data analysis application).

Recommended Reading

This list is indicative only – the class lecturer may recommend alternative reading material. Please do not purchase any of the reading material listed below until you have confirmed with the class lecturer that it will be used for this class.

Programming in Haskell. Graham Hutton. Cambridge University Press, 2007, ISBN-13: 9780521692694

Last updated: 2024-08-19 13:33:25