đź’»
Plutus Pioneers Program: Fourth Cohort
  • Welcome to the Plutus Pioneers Program
  • Preliminary Work
    • Learn Haskell
    • Working Environment Set Up
      • Using Demeter
      • Using Docker
  • Lectures
    • Lecture 1
      • Lesson 1.1: Setting Up Our Development Environment
      • Lesson 1.2: Kuber Marketplace Demo
      • Lesson 1.3: Hashing & Digital Signatures
      • Lesson 1.4: The EUTxO-Model
      • Lecture 1 Homework Assignment
    • Lecture 2
      • Lesson 2.1: Low-Level, Untyped Validation Scripts
      • Lesson 2.2: Using the Cardano CLI to Interact with Plutus
      • Lesson 2.3: High-Level, Typed Validation Scripts
      • Lesson 2.4: Lesson 2 Summary
      • Lecture 2 Homework Assignment
    • Lecture 3
      • Lesson 3.1: Script Contexts
      • Lesson 3.2: Handling Time
      • Lesson 3.3: A Vesting Example
      • Lesson 3.4: Parameterized Contracts
      • Lesson 3.5: Off-Chain Code with Lucid
      • Lesson 3.6: Reference Scripts
      • Lesson 3.7: Lesson 3 Summary
      • Lecture 3 Homework Assignment
    • Lecture 4
      • Lesson 4.1: On-Chain Vs. Off-Chain Code
      • Lesson 4.2: Off-Chain Code with Cardano CLI and GUI
      • Lesson 4.3: Off-chain Code with Kuber
      • Lesson 4.4: Off-Chain Code with Lucid
      • Lecture 4 Homework Assignment
    • Lecture 5
      • Lesson 5.1: Introduction to Native Tokens in Cardano
      • Lesson 5.2: The Value Type
      • Lesson 5.3: A Simple Minting Policy
      • Lesson 5.4: A More Realistic Minting Policy
      • Lesson 5.5: Non-Fungible Tokens (NFTs) in Cardano
      • Lecture 5 Homework Assignment
    • Lecture 6
      • Lesson 6.1: The State Monad in Practice
      • Lesson 6.2: Introduction to the Plutus Simple Model Library
      • Lesson 6.3: Unit Testing a Smart Contract
      • Lesson 6.4: Property Testing a Smart Contract
      • Lesson 6.5: Testing Smart Contracts with Lucid
      • Lecture 6 Homework Assignment
    • Lecture 7
      • Lesson 7.1: Introduction to Marlowe
      • Lesson 7.2: Marlowe Playground Demo
      • Lecture 7 Homework Assignment
      • Lesson 7.3: Marlowe Starter Kit - Docker
      • Lesson 7.4: Marlowe Starter Kit Preliminaries
      • Lesson 7.5: ZCB using the Marlowe Runtime command-line client
      • Lesson 7.6: ZCB using the Marlowe Runtime REST API
      • Lesson 7.7: ZCB using the Marlowe Runtime CLI
      • Lesson 7.8: Escrow using the Marlowe Runtime's REST API
      • Lesson 7.9: Swap contract using the Marlowe Runtime's REST API
    • Lecture 8
      • Lesson 8.1: Introduction to Lecture 8
      • Lesson 8.2: The Private Testnet
      • Lesson 8.3: Plutus and Staking
      • Lesson 8.4: Trying Stake Validators on the Private Testnet
      • Lecture 8 Homework Assignment
    • Lecture 9
      • Lesson 9.1: Creating our own Stablecoin Dapp
      • Lesson 9.2: Using our Stablecoin Dapp UI
      • Lesson 9.3: Stablecoin's Oracle
      • Lesson 9.4: Deploying Stablecoin's Reference Scripts
      • Lesson 9.5: Minting Stablecoins
      • Lesson 9.6: Burning Stablecoins and Liquidating Positions
      • Lesson 9.7: Testing our Stablecoin's scripts
      • Lecture 9 Homework Assignment
    • Lecture 10
      • Lesson 10.1: Developing a Dapp with MeshJS and PluTs (Typescript)
      • Lesson 10.2: Developing smart contracts with Plu-Ts (Typescript)
      • Lesson 10.3: Developing smart contracts with OpShin and PyCardano (Python)
      • Lesson 10.4: Developing smart contracts with Plutarch (Haskell)
      • Lesson 10.5: Aiken Hello World (CLI version)
Powered by GitBook
On this page
  1. Preliminary Work

Learn Haskell

PreviousWelcome to the Plutus Pioneers ProgramNextWorking Environment Set Up

Last updated 2 years ago

is a purely functional, statically typed, and lazy programming language. It has a robust, static type system with type inference and supports higher-order programming and pattern matching. Haskell also has a wide range of libraries, making it an excellent choice for developing reliable, robust, and efficient applications. In addition, Haskell is an open source language and provides a platform for experimenting with functional programming.

As Plutus is mainly based on Haskell, having some prior experience with Haskell (or another functional programming language) will be very helpful for this program.

If you want to start learning Haskell in advance of the Plutus Pioneers Program, we provide a self-paced Haskell Bootcamp course introducing you to Haskell. To take this course, you should have programming experience and a mathematical and technical mindset.

For every lesson on this Bootcamp, we provide:

  • A video lecture

  • An interactive coding environment based on Jupyter notebooks

  • Homework assignments to put your new Haskell skills into action

You can take this course completely free and review the detailed syllabus using the following links:

Both resources offer the same learning content; the main difference is that if you enroll in our e-learning platform, you can share your questions and interact with other learners by using the discussion forums provided for each lesson. For both options, you can also hang out and discuss with other students through the by checking out the #ask-haskell channel.

This course is offered in English; if you are a Spanish speaker and want to contribute to translating the Haskell Bootcamp course, we encourage you to fork the GitHub repository and share your contributions through a pull request.


This work is licensed under a .

Haskell
The “Haskell Bootcamp Course” on GitHub
The “Haskell Bootcamp Course” in our e-learning platform
IOG's technical community on Discord
Creative Commons Attribution 4.0 International License
Creative Commons License BY 4.0