ELEC60015 High Level ProgrammingLecturer(s): Dr Tom Clarke Aims
The aims of this module are: To demonstrate to you the role of modern static type systems, sum and product data structures, immutable code, and higher order functions, in program design and analysis; To provide you with an appreciation of modularity and immutability as they apply to modern programming; To demonstrate to you the tools and techniques available to write and test large multiple-author programs.
Learning Outcomes
The approach taken is that of active learning in which students learn through structured coding and lectures are used to introduce, motivate, and reflect on self-learnt material. Periods within the lectures will be used for group discussion of coursework.
At the end of this module students will have the following competences: Be able to write programs in the hybrid object-oriented and functional programming language F#; To express simple algorithms in a transformational style using immutable operations.To write recursive and tail recursive implementations of iteration; To use list, map, array collection types and associated library functions; To analyse and debug type errors in F#; Be able to analyse problems and design appropriate functional code; To define appropriate data structures to represent problem domains; To write immutable code and encapsulate mutable operations; To split large problems into independent modules with controlled dependencies; Be able to work within a group to design, implement and test a significant application in F#. Syllabus
Programming without variables; Static Hindley-Milner polymorphic types and higher order functions; Lambda calculus and combinators; Tuples, lists, trees, maps; Map, reduce, fold; Pattern matching; sum and product types; Recursion versus loops; Garbage collection; Implementations; Railway programming; Monads. Mutability; Write-once semantics; Functional techniques in real-world programming; Functions as interfaces; Type checking; Types as program specifications; Richer than Hindley-Milner types.
Exam Duration: N/A Exam contribution: 0% Coursework contribution: 100% Term: Spring Closed or Open Book (end of year exam): N/A Coursework Requirement: Coursework only module Oral Exam Required (as final assessment): N/A Prerequisite module(s): None required Course Homepage: https://intranet.ee.ic.ac.uk/t.clarke/hlp/advert.html Book List:
|