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

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
Programming Pedagogy in Secondary Schools: Inspiring Computing Teaching (FutureLearn) FutureLearn
Raspberry Pi Foundation,National Centre for Computing Education

Programming Pedagogy in Secondary Schools: Inspiring Computing Teaching (FutureLearn)

Examine a range of pedagogical approaches suitable for teaching computing in Key Stage 3 (Grade 6–8 in the USA). Transform your teaching by developing your pedagogical approach. In the first two weeks of this course, you’ll be introduced to a range of pedagogical approaches suitable for Key Stage 3. You’ll look at a range of pedagogies aimed at developing your students’ computational thinking skills, from unplugged approaches to PRIMM, and more. You’ll also investigate worked examples and targeted tasks such as Parson’s Problems.

Mar 6th 2023
3 Weeks
Programming 101: An Introduction to Python for Educators (FutureLearn) FutureLearn
Raspberry Pi Foundation

Programming 101: An Introduction to Python for Educators (FutureLearn)

Explore the basics of Python. Guided by the Raspberry Pi Foundation, you’ll learn to code your first program. Learn how to program in Python with help from Raspberry Pi. On this course, you’ll explore programming in Python. Guided by the Raspberry Pi Foundation, you’ll discover basic programming concepts, learning how to understand the basics of python syntax and interpret error messages.

Nov 1st 2021
4 Weeks
Object-oriented Programming in Python: Create Your Own Adventure Game (FutureLearn) FutureLearn
Raspberry Pi Foundation,National Centre for Computing Education

Object-oriented Programming in Python: Create Your Own Adventure Game (FutureLearn)

Learn object-oriented programming principles by creating your own text-based adventure game in Python. Object-oriented programming is a programming paradigm based on objects and data rather than actions and logic. This online course will introduce you to the principles of object-oriented programming in Python, showing you how to create objects, functions, methods, and classes.

Jan 2nd 2023
4 Weeks
Django Features and Libraries (FutureLearn) FutureLearn
University of Michigan

Django Features and Libraries (FutureLearn)

Gather all the skills you need in order to build Django-based web applications suitable for use. Learn the ins and outs of Django and how to build web applications. This practical, six-week course from the University of Michigan will give you all the skills you need in order to build Django-based web applications suitable for use by end users.

Jan 11th 2021
5-12 Weeks
Collaborative Coding with Git (FutureLearn) FutureLearn
University of Manchester,Institute of Coding

Collaborative Coding with Git (FutureLearn)

Find out how to improve code quality and work collaboratively on large-scale projects using Git. Gain an in-depth introduction to remote collaboration with Git. Git is an enormously powerful and flexible version control system used by over 90% of developers. On this course, you’ll discover ways to visualise and explore a project’s history through Git repositories. These skills will allow you to quickly adapt to a new collaborative environment, especially when working with Git remotely.

Self Paced
5-12 Weeks
Software Development Basics (FutureLearn) FutureLearn
FutureLearn

Software Development Basics (FutureLearn)

Learn the basics of HTML code, gain expert insights into web development, and decide if the industry is right for you. Kick-start your career in web-based software development. The web design and development industry is growing exponentially and offers several exciting employment opportunities. Many people perceive this field as too complex, assume they won’t understand the material and therefore don’t consider it as a viable job prospect.

Self Paced
4 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
Programming 103: Saving and Structuring Data (FutureLearn) FutureLearn
Raspberry Pi Foundation,National Centre for Computing Education

Programming 103: Saving and Structuring Data (FutureLearn)

Learn how to save and structure data in external files, and import files back into your Python programs. Supported by Google. Discover how to save data to use it across multiple runs of your program. On this course, you will learn how to save text and binary files, and how to structure data so that programs can interpret it correctly.

Jan 2nd 2023
3 Weeks
Computer Programming for Everyone (FutureLearn) FutureLearn
University of Leeds,Institute of Coding

Computer Programming for Everyone (FutureLearn)

Discover the art of computer programming and learn what code can do with the Institute of Coding and the University of Leeds. Explore computer programming and complete block-language programming exercises. What are computers good at and how can you get the best out of them? On this course, you’ll find out how and why people program computers.

Self Paced
2 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
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