ABCDEFGHIJKLMNOPQRSTUVWXYZ
1
DateWeekContentOutputs to be delivered
2
Lecture Slide Links/ Monthly Test LinksRecorded Video LinksPresenterNumber of members completed the homeworkNumber of members conducted the homework reviewQuestions
3
1-4Project Launch:
- Announce the establishment of the club on Cardano community groups and university student networks.
- Accept member registrations.
- Organize and disseminate the club's rules and regulations.
4
4Kickoff meeting:
- Introduction to the club and its activities
- Overview of Cardano and Catalyst: Potential and opportunities
- Introduction to the Haskell Course by IOG Academy
5
51. Intro to Haskell
Purely functional programming language
Basic syntax
Haskell Type system
Laziness
GHC (and GHCi)
Using online IDE: Gitpod, Demeter
Installing Haskell Locally
6
62. Data types, Signatures, and Polymorphism
Pragmatic intro to types
Type signature
Infix and prefix functions
Data Types in depth
Polymorphic values and type variables
7
73. Conditions and helper constructions
If-then-else
Guards
let expressions
where
Should I use let or where?
Things to keep in mind
8
84. Pattern matching and Case
What is pattern matching?
Pattern matching on
Function implementations
Lists
Tuples
Case
9
9Review Lessons 1-4 and assign Monthly Test
10
105. Improving and combining functions (1)
Higher-order functions
Lambda functions
Precedence and associativity
11
115. Improving and combining functions (2)
Curried functions
Composing and applying functions
Point-free style
12
126. Recursion (1)
Why Recursion?
Thinking Recursively
Steps to create your own recursive function
Examples of recursion
13
136. Recursion (2)
Extracting the foldr pattern
The foldl function
The foldl' function
When to use foldr, foldl, and foldl'
14
14Review Lessons 5-6 and assign Monthly Test
15
157. Intro to Type Classes
The awesomeness of type classes
What are type classes
Common type classes
The most general valid type
Multiple constraints
16
168. Creating Non-Parameterized Types
Type synonyms
Defining new types
Creating new types with data
Using new types
Value parameters
Record syntax
17
179. Creating Parameterized and Recursive Types (1)
Type Parameters
Prameteryzing type synonyms
Prameteryzing data types
18
189. Creating Parameterized and Recursive Types (2)
Recursive data types
Kinds
The newType keyword
19
19Review Lessons 7-9 and assign Monthly Test
20
2010. Creating Type Classes and Instances (1)
Overloading
Steps to create Type Classes and Instances (1)
21
2110. Creating Type Classes and Instances (2)
Steps to create Type Classes and Instances (2)
Subclassing
Deriving
22
2211. Basic IO (1)
Pure functions
Introduction to IO actions
IO actions under the hood
IO actions in practice
Interacting with the user
Actions are first-class values
Composing IO actions (>> and >>= operators)
23
2311. Basic IO (2)
The do block
Using let, nesting do-blocks, escaping IO and return
The main action
Creating our first program
Writing the simplest Haskell program
Compiling and running our program
24
24Review Lessons 10-11 and assign Monthly Test
25
2512. Modules
Importing Modules
Creating our own Modules
The Prelude and Standard Libraries
26
2613. Cabal and language extensions
Cabal
Introduction to Cabal
Creating a new Haskell project
Going over the Cabal file using an external library
Building and running our executable
Language extensions and Pragmas
Introduction
NumericUnderscores
TypeApplications
27
2714. Handling Errors
There're always Exceptions to the rule
Speed-running Exceptions with a dumb self-driving car
I'm the Exception cause I have class
throw all the Exceptions you want. I'll catch them all!
Maybe give me a value?
Benefits of optional values
Ok, you Either give me a value or a reason why you didn't!
From Exceptions to optional values
Tradeoffs
So, what should I use?
28
2815. How to learn on your own and Map
Using GHCi to find out more
Hoogle
HaskellWiki
Walking through while teaching Map module
29
29-30Review and take the Final Test
30
Congratulations! 🥳 You can call yourself a (beginner) Haskell developer!
YOU'RE READY FOR THE MARLOWE, PLUTUS.
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100