Certification Paths → Daml Fundamentals Certification Path

Daml Fundamentals Course 1: Functional Programming in Daml (DF101)

This is the first course in the Daml Fundamentals certification path, which leads to a foundational-level certification exam and capstone project. The Daml Fundamentals certification path prepares a developer to build a simple Daml application through learning the basics of Daml programming and testing. The Daml Fundamentals certification path consists of three courses: Functional Programming in Daml, Canton Ledger Programming in Daml, and Testing in Daml.

This course should take approximately 4 hours to complete, and covers the following topics:
- What makes Daml unique
- How to reason about functional programming and why it is important for creating applications in Daml
- SDK setup and configuration
- How to create and leverage functions
- Primitive data types
- Collection data structures
- Typeclasses and records
- Conditional control flow
- Iterative control flow
- Type variables

1. Basic understanding of the Daml value proposition. (https://www.digitalasset.com/developers)
2. Familiarity with Daml use cases. (https://www.digitalasset.com/use-cases)
3. Basic understanding of programming concepts such as variables, data-types, expressions, conditions, and iterations.
4. Experience leveraging programming languages and frameworks to build production applications in a professional environment.
  • Course Overview
  • What is Daml?
  • Lesson: What is Daml?
  • Quiz: What is Daml?
  • Functional Language Overview
  • Lesson: Functional Language Overview
  • Quiz: Functional Language Overview
  • Daml Development Environment
  • Instructions: Install the Daml SDK
  • Lesson: Daml Development Environment
  • Quiz: Daml Development Environment
  • Functions in Daml
  • Lesson: Functions in Daml
  • Quiz: Functions in Daml
  • Working with Functions
  • Lesson: Working with Functions
  • Quiz: Working with Functions
  • Lab 1
  • Primitive Data Types
  • Lesson: Primitive Data Types
  • Quiz: Primitive Data Types
  • Collection Data Structures
  • Lesson: Collection Data Structures
  • Quiz: Collection Data Structures
  • Lab 2
  • Lesson: Typeclasses and Records
  • Lesson: Typeclasses and Records
  • Quiz: Typeclasses and Records
  • Lab 3
  • Conditional Control Flow
  • Lesson: Conditional Control Flow
  • Quiz: Conditional Control Flow
  • Lab 4
  • Iterative Control Flow
  • Lesson: Iterative Control Flow
  • Quiz: Iterative Control Flow
  • Lab 5
  • Type Variables
  • Lesson: Type Variables
  • Quiz: Type Variables
  • Lab 6
  • Lab Solutions
  • Functional Programming Lab Solutions
  • Course Feedback - Required for Course Completion
  • Survey: Functional Programming in Daml
Completion rules
  • All units must be completed