Functional Programming in Haskell: Supercharge Your Coding (FutureLearn)

Offered by University of Glasgow,
Functional Programming in Haskell: Supercharge Your Coding (FutureLearn)

Get an introduction to Haskell, the increasingly popular functional programming language, with this University of Glasgow course. Do you want to develop software using the latest programming language paradigm? Haskell is a functional programming language, based on formal mathematical principles. As such, it is easy to reason about and develop, and it executes efficiently on modern multicore machines. From investment banks to social networks, everyone is adopting Haskell.

Class Deals by MOOC List - Click here and see FutureLearn's Active Discounts, Deals, and Promo Codes.

Get an introduction to functional programming in Haskell
On this introductory course, you will discover the power, elegance and simplicity of functional programming in Haskell. By the end, you will be able to:

  • characterise the differences between imperative and functional programming paradigms;
  • implement small-scale functional programs in elementary Haskell;
  • apply standard combinators for operating on lists;
  • create new algebraic data types and use recursion to define functions that traverse recursive types; and reason in a mathematical manner about data types, functions, recursion and similar functional constructs.

Learn with developers from the birthplace of Haskell
This course has been created by the School of Computing Science at the University of Glasgow – the virtual birthplace of the Haskell language, where many of its original developers worked. It will give you the opportunity to learn with these experts and join the growing, global community of Haskell programmers.

What topics will you cover?

  • Evaluation via expression reduction
  • Semantics of function abstraction and application
  • Operations involving basic types including integers, characters and booleans
  • Definition and traversal of recursive data types including lists and trees
  • Techniques for structuring programs of non-trivial size
  • Developing custom parsing tools with library support
  • Automated testing with the QuickCheck tool
  • Infinite data structures and lazy evaluation
  • Type classes
  • Principles of Lambda calculus
  • Monads

What will you achieve?
By the end of the course, you'll be able to...

  • Develop simple programs involving basic Haskell techniques, including pure function definitions
  • Produce definitions of algebraic data types and apply recursion to define functions that traverse such types
  • Interpret data structures and function interfaces using types
  • Apply formal methods to prove properties of functional programs
  • Develop, modify, and explore code using standard Haskell platform tools
  • Justify why a program uses common standard monads (including IO and Maybe)
  • Explore standard combinators for operating on lists
Go to Class
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Related Courses

Functional Programming in Erlang (FutureLearn) FutureLearn
University of Kent

Functional Programming in Erlang (FutureLearn)

Learn the theory and practice of functional programming in Erlang, through practical exercises and suggested projects. Functional programming is increasingly important in providing global-scale applications on the internet. For example, it’s the basis of the WhatsApp messaging system, which has over a billion users worldwide.

No sessions available
3 Weeks
Understanding Maths and Logic in Computer Science (FutureLearn) FutureLearn
Raspberry Pi Foundation

Understanding Maths and Logic in Computer Science (FutureLearn)

Improve your understanding and ability to teach maths and logic in computing while building elements of an escape room. Become more familiar with maths and logic in computer science. The mathematical aspects of computer science can be difficult to understand and teach. On this course, you will be introduced to maths and logic in computing in an engaging way.

Nov 1st 2021
3 Weeks
Using JavaScript, jQuery, and JSON in Django (FutureLearn) FutureLearn
University of Michigan

Using JavaScript, jQuery, and JSON in Django (FutureLearn)

Understand how to use JavaScript, jQuery and JSON within the Django framework. Learn how JavaScript supports the framework of Django. Django is a Python web framework that encourages fast development and a clean, pragmatic design. This comprehensive course will introduce you to the JavaScript language, and will show you how it supports Django’s framework.

Feb 22nd 2021
5-12 Weeks
Software Development: Introducing Java (FutureLearn) FutureLearn
FutureLearn

Software Development: Introducing Java (FutureLearn)

Explore how Java can help support your software development career and learn its basic uses and functions. Becoming a software developer requires you to confidently use programming languages such as Python and Java to design, build, and fix software. This course is designed to build your existing Python knowledge and introduce you to Java and its applications within the development environment.

Self Paced
4 Weeks
Getting Started with Your Raspberry Pi (FutureLearn) FutureLearn
Raspberry Pi Foundation

Getting Started with Your Raspberry Pi (FutureLearn)

Discover how to set up and control your new Raspberry Pi, as well as how to use it for everyday tasks and to learn how to code. Start your Raspberry Pi journey with this introductory course. The Raspberry Pi is an accessible and versatile mini-computer – let the Raspberry Pi Foundation guide you on how to get started on your journey of exploring its many uses and applications.

Jul 20th 2020
3 Weeks
Introducing Robotics: Making Robots Move (FutureLearn) FutureLearn
Queensland University of Technology

Introducing Robotics: Making Robots Move (FutureLearn)

The world needs people who understand how to get robots moving. Making robots move requires both mathematical knowledge and programming skills. We begin with the problem of describing where things are in the world. Starting simply, we consider objects in a two-dimensional plane, exploring the concepts of position, pose, rotation, and translation. Robot movement relies on the principles of kinematics – the motion of a body or bodies. You’ll program forward kinematics equations in MATLAB and learn approaches to inverse kinematics.

No sessions available
3 Weeks
Networking with Python: Socket Programming for Communication (FutureLearn) FutureLearn
Raspberry Pi Foundation,National Centre for Computing Education

Networking with Python: Socket Programming for Communication (FutureLearn)

Discover how you can create networked applications in Python by using sockets. Supported by Google. Build your practical network application skills and understanding. On this course from the Raspberry Pi Foundation, you’ll learn how to create programs that communicate over the internet.

Mar 6th 2023
3 Weeks
Begin Programming: Build Your First Mobile Game (FutureLearn) FutureLearn
University of Reading

Begin Programming: Build Your First Mobile Game (FutureLearn)

Learn basic Java programming by developing a mobile game that you can run on your computer, Android phone or tablet. Take your first steps into the world of computer programming and learn how to build your own mobile game in just five weeks. You’ll be introduced to the basic constructs and the principles behind computer programs, as well as the building blocks that are used to create them.

No sessions available
5-12 Weeks
Creative Coding (FutureLearn) FutureLearn
Monash University

Creative Coding (FutureLearn)

Use computer programming as a creative discipline to generate sounds, images, animations and more, with this free online course. Learning to program is no longer just for computer specialists and software developers. People from many different backgrounds now want to understand the basics of programming, because it’s both fun and an increasingly valuable skill.

No sessions available
5-12 Weeks
Robotics With Raspberry Pi: Build and Program Your First Robot Buggy (FutureLearn) FutureLearn
Raspberry Pi Foundation,National Centre for Computing Education

Robotics With Raspberry Pi: Build and Program Your First Robot Buggy (FutureLearn)

Build and program your first robot buggy using a Raspberry Pi, learning how to connect motors, add sensors and write algorithms. Learn robotics by building a robot buggy and controlling it with a Raspberry Pi. On this course from the Raspberry Pi Foundation, you’ll build a robot buggy controlled by a Raspberry Pi.

Jan 2nd 2023
3 Weeks
Teaching Programming to 5 - 11 year olds (FutureLearn) FutureLearn
Raspberry Pi Foundation,National Centre for Computing Education

Teaching Programming to 5 - 11 year olds (FutureLearn)

Increase your programming knowledge and develop effective lessons to teach programming to primary school pupils (aged 5-11 years). Build your subject knowledge and develop your skills in teaching programming. Programming gives children the opportunity to be creators rather than just consumers of technology. Instead of only using existing programs to complete tasks, children can use the programs they have written themselves to solve problems and develop new ideas.

Jan 2nd 2023
4 Weeks
Programming Applications with Python: Graphics User Interface (GUI) (FutureLearn) FutureLearn
FutureLearn

Programming Applications with Python: Graphics User Interface (GUI) (FutureLearn)

Discover how to create a GUI using Python and start to explore creating APIs. Make a GUI application in Python. On this course, you’ll explore a common use for Python – how to create a successful GUI. GUIs are a crucial aspect of any web service, and knowing how to create one is a vital skill for furthering your career in programming.

May 23rd 2022
4 Weeks