Cơ hội học hỏi và kiếm lợi nhuận từ việc tham gia Câu lạc bộ CÙNG NHAU HỌC HASKELL/PLUTUS !!!
Hình thức học: Online trên nền tảng zoom, định kỳ 1 buổi tối/tuần từ 20:30 đến 22:00
“Tham gia vào hành trình “Learn to Earn” cùng chúng tôi, bạn không những tích lũy thêm kiến thức bổ ích mà còn mở ra cơ hội nhận phần thưởng dựa trên sự nỗ lực và đóng góp của bạn trong Câu lạc bộ!”
Tại đây, bạn sẽ được dẫn dắt qua một hành trình khám phá về Haskell - ngôn ngữ lập trình mạnh mẽ được Cardano lựa chọn cho việc phát triển smart contract.
Hiểu biết về Haskell không chỉ là một kỹ năng, mà còn là cơ hội để bạn tham gia vào thế giới của Cardano, một cộng đồng đầy tiềm năng và sự phát triển.
Tại CLB “CÙNG NHAU HỌC HASKELL/PLUTUS”, bạn sẽ có cơ hội học hỏi từ các chuyên gia, trải nghiệm những bài học chất lượng và thực hành trên thực tế.
Đừng bỏ lỡ cơ hội này! Hãy đăng ký ngay tại link sau để bắt đầu hành trình của bạn: Link đăng ký
Sau hai tuần mở form đăng ký, câu lạc bộ Haskell/Plutus đã thu hút sự quan tâm đáng kể từ các thành viên trong cộng đồng Việt Nam. Chúng tôi rất vui khi nhận được 57 lượt đăng ký tham gia.
Vào 20h30 ngày 20/03/2024, câu lạc bộ đã tổ chức buổi kick-off meeting nhằm giới thiệu mô hình hoạt động của câu lạc bộ đến các thành viên.
Buổi họp đã diễn ra với các nội dung chính như sau:
Phần 1: Giới thiệu về chặng đường trở thành một nhà phát triển trên nền tảng Cardano.
Phần 2: Giới thiệu về nội dung của khóa học Haskell.
Phần 3: Giới thiệu về hình thức hoạt động và tổ chức của câu lạc bộ, cũng như phần thưởng khích lệ dành cho các thành viên.
Cuối buổi họp, chúng tôi đã tổ chức phân nhóm cho các thành viên và giao nhiệm vụ chuẩn bị bài giảng cho từng nhóm.
Video buổi họp được ghi lại tại đây: Part 1, Part 2
Các buổi học tiếp theo sẽ được tổ chức định kỳ vào các buổi tối thứ Tư hàng tuần. Rất mong được gặp lại tất cả các thành viên trong các buổi học sắp tới!
Buổi “Cùng nhau học Haskell” đầu tiên đã diễn ra vào 20h30 ngày 27/03/2024.
Bài chia sẻ do các thành viên nhóm 1 thực hiện và trình bày, với các nội dung:
- Giới thiệu về ngôn ngữ lập trình Haskell
- Ngôn ngữ lập trình thuần hàm
- Cú pháp cơ bản
- Hệ thống kiểu Haskell
- Tính lười
- GHC (and GHCi)
- Sử dụng môi trường clould: Gitpod
- Cài đặt môi trường cục bộ
- GHCup
- VSCode Extensions
Cuối buổi học là phần giao bài tập về nhà, phổ biến hình thức làm và chấm bài tập cho các thành viên.
Link video buổi học có tại đây.
Buổi học tiếp theo sẽ diễn ra vào 03/04/2024 với nội dung của bài 2: Giới thiệu về hệ thống kiểu, chữ ký kiểu và tính đa hình trong Haskell.
Ngày 03/04/2024, các thành viên câu lạc bộ tiếp tục tham gia buổi “Cùng nhau học Haskell” thứ 2.
Đầu buổi học, Nhóm 1 thực hiện chữa bài homework tuần 1.
Tiếp đến là phần nội dung chính, nhóm 2 thực hiện chia sẻ bài học số 2:
- Giới thiệu về kiểu dữ liệu
- Chữ ký của hàm
- Làm việc với hàm
- Biến trong Haskell
- Hàm trung tố và tiền tố
- Các kiểu dữ liệu phổ biến
- Giá trị đa hình và biến kiểu
- Vui vẻ với list!
Cuối buổi học, các thành viên trao đổi, thảo luận và xem xét bài tập về nhà.
Format các buổi sẽ gồm 3 phần như trên, gần như duy trì xuyên suốt các buổi bọc sau này.
Các bạn không tham gia buổi học có thể xem lại tại đây.
Hẹn gặp lại các bạn ở buổi học kế tiếp!
Buổi học tiếp theo của Haskell/Plutus Club tiếp tục diễn ra vào ngày 10/04/2024 với nội dung của bài số 3:
Câu lệnh điều kiện và các cấu trúc bổ trợ
- Biểu thức if-then-else.
- Guards
- Biểu thức
let
where
Buổi học diễn ra với các phần thảo luận sôi nổi xoay quanh các chủ đề của bài học:
- Điểm khác biệt của if-then-else với một số ngôn ngữ khác.
- Cách hoạt động, cách sử dụng Guards và điểm khác biệt lớn nhất so với if-then-else.
where
vàlet
có thể đặt tại đâu trong chương trình, có thể sử dụng chúng lồng nhau như thế nào.
Cuối buổi, cả nhóm bầu chọn ra thành viên tích cực tham gia trao đổi và có những câu hỏi hay nhất, và có một phần thưởng nhỏ dành cho bạn.
Video ghi hình buổi học đã có tại đây.
Hãy tham gia câu lạc bộ cùng chúng tôi để có được những trải nghiệm học tập thú vị.
Ngày 17/04/2024, nhóm tiếp tục thực hiện bài học Haskell số 4 với nội dung:
Khớp mẫu và biểu thức Case
- Khớp mẫu trong hàm
- Mẫu tổng quát - Catch-all pattern
- Hiểu sâu hơn về danh sách
- Khớp mẫu trên:
- Danh sách
- Tuple
- Biểu thức Case
- Phong cách khai báo vs Phong cách biểu thức
Video buổi học có tại đây.
Như vậy là sau 4 tuần hoạt động, nhóm đã đi hết 4 bài học đầu tiên của khóa học IOG Haskell Course. Buổi thứ 5 (24/4/2024), các thành viên trong nhóm cùng nhau ôn tập lại kiến thức đã học, với hình thức live coding. Ba thành viên trong nhóm phụ trách ra đề bài và thực hiện live code.
-
Phần chữa bài tập bài 4:
-
Bài live code số 1: Password generator
-
Bài live code số 2: Trò chơi ném phi tiêu
-
Bài live code số 3: Quản lý điểm số sinh viên
Video buổi học đã có tại đây.
Sau buổi ôn tập này, các thành viên sẽ thực hiện 1 bài kiểm tra cuối tháng để đánh giá kết quả học tập.
Sau 1 tuần nghỉ lễ 30/4-1/5, lớp học Haskell đã quay trở lại ngày 08/05/2024 với nội dung bài học số 5:
- Hàm bậc cao
filter
any
map
- Hàm Lambda
- Mức ưu tiên (Precedence) và tính kết hợp (associativity)
- Hàm curry - Curried functions
- Áp dụng một phần - Partial application
- Áp dụng hàm và hàm hợp
- Toán tử
$
- Toán tử
.
- Toán tử
- Phong cách Point-free
Đầu buổi học là phần chữa bài tập tháng 1:
Bạn hãy theo dõi video bài giảng tại đây.
Bài học số 6 của CLB Haskell tiếp tục được thực hiện vào ngày 15/5/2024. Trong bài học này chúng ta bắt đầu tìm hiểu về đệ quy - giải pháp để xử lý vòng lặp trong Haskell:
- Tại sao dùng đệ quy?
- Tư duy kiểu đệ quy
sum
vàproduct
- Các bước để tạo hàm đệ quy
- Một số ví dụ về đệ quy
and
,length
,reverse
,drop
,take
,map
,filter
- Trích rút mẫu cho
foldr
- Hàm
foldl
- Hàm
foldl'
- Khi nào sử dụng
foldr
,foldl
vàfoldl'
Bài giảng đã được ghi hình lại tại đây.
Buổi học tiếp theo, nhóm sẽ tiến hành ôn tập lại các kiến thức đã học ở bài 5, 6 về Hàm bậc cao, Áp dụng một phần, Point-free, Đệ quy, Các hàm fold. Đây là các kiến thức khá mới mẻ so với các ngôn ngữ lập trình quen thuộc. Trong buổi ôn tập chúng ta sẽ thực hiện một số bài thực hành giúp các bạn củng cố lại các khái niệm.
Buổi ôn tập kiến thức Haskell bài 5 - 6 đã được nhóm thực hiện vào ngày 22/5/2024, ba thành viên đã lên ý tưởng về các bài tập và thực hiện live-code:
-
Phần chữa bài tập Week 6:
-
Bài live-code 01: Mã hóa passphrase ví
-
Bài live-code 02: Tính giá trị đơn hàng trong giỏ hàng
-
Bài live-code 03: Kiểm tra tính hợp lệ của email, mật khẩu
Video buổi học có tại đây.
Sau buổi này, các bạn sẽ làm bài MonthlyTest02 để kiểm tra kiến thức đã học. Chúc các bạn hoàn thành tốt bài kiểm tra.
Buổi học tiếp theo của CLB Haskell tiếp tục diễn ra vào ngày 29/5/2024 với bài học số 7 của khóa học Haskell:
-
Phần chữa bài kiểm tra tháng 2:
-
Nội dung bài số 7:
- Sự tuyệt vời của các lớp kiểu (type class)
- Lớp kiểu là gì
- Các lớp kiểu thông dụng
Eq
,Ord
Num
,Integral
,Floating
Read
,Show
- Kiểu dữ liệu hợp lệ tổng quát nhất
- Nhiều ràng buộc
Video bài học đã có tại đây.
Bài học Haskell số 8 tiếp tục được thực hiện ngày 5/6/2024 với phần chia sẻ của Nhóm 4.
Trong bài này chúng ta sẽ bắt đầu tìm hiểu cách định nghĩa kiểu dữ liệu trong Haskell:
- Kiểu đồng nghĩa - Type synonyms
- Cách định nghĩa
- Cách sử dụng
- Kiểu mới với từ khóa
data
- Cách định nghĩa
- Cách sử dụng
- Tham số giá trị - Value Parameters
- Cú pháp Record
Các bạn có thể theo dõi video buổi học tại đây.
Ngày 12/6/2024, các thành viên tiếp tục cùng học Haskell như thường lệ, với nội dung bài số 9:
- Kiểu có tham số
- Kiểu đồng nghĩa
type
có tham số - Kiểu
data
có tham số
- Kiểu đồng nghĩa
- Kiểu
data
đệ quyTweet
me a river- A
Sequence
ofNode
s - A
Tree
ofNode
s
- Loại - Kinds
- Từ khóa
newType
Video của buổi học có tại đây.
Ngày 20/6/2024, nhóm tiến hành ôn tập các kiến thức đã học ở bài 7 - 9, với hình thức live code như thường lệ. Dưới đây là 1 số hình ảnh của buổi học:
-
Phần chữa bài tập buổi 9, đây là 2 bài khá hay: Maze, Forest
-
Phần live code 1: Schedule Manager
-
Phần live code 2: Inventory Manager
Video buổi học đã có tại đây.
Sau 1 tuần ôn tập và thực hiện bài kiểm tra tháng, các thành viên câu lạc bộ tiếp tục quay trở lại với bài học mới. Đây là nội dung của buổi học - bài số 10:
- Overloading
- Steps to create Type Classes and Instances
- The
Eq
type class- Defining the Type Class
- Defining multiple instances
- Improving our
Eq
type class with mutual recursion (and MCD) - Defining an instance for a parameterized type.
- The
WeAccept
Type Class - The
Container
Type Class - Exploring
Ord
type class (Subclassing) - Deriving
- Deriving can go wrong
Một số hình ảnh trong buổi học:
Các bạn có thể xem lại video buổi học tại đây.
Ngày 10/7/2024, CLB thực hiện buổi live code để cùng ôn tập kiến thức Haskell bài 10-11.
Phần live code được trình bày bởi bạn Vũ Quang Tú mang lại cho các thành viên nội dung ôn tập khá toàn diện:
Tiêu đề: Chương Trình Quản lý Thư Viện Bằng Haskell
Nội dung: Chương trình cho phép quản lý sách và thành viên. Hỗ trợ các chức năng mượn sách, trả sách, hiển thị thông tin sách và thành viên, ghi lại lịch sử mượn trả của thành viên và của từng loại sách…
Chức năng:
- Mượn sách: Người dùng có thể mượn sách bằng cách nhập mã
- Trả sách: Người dùng có thể trả sách bằng cách nhập mã ID thành viên và ID sách. Hệ thống sẽ kiểm tra danh sách sách đã mượn và cập nhật trạng thái mượn trả.
- Hiển thị trạng thái sách: Hiển thị danh sách sách trong hệ thống cùng với số lượng còn lại.
- Hiển thị trạng thái mượn của thành viên: Hiển thị danh sách các thành viên cùng với các sách họ đã mượn.
- Hiển thị lịch sử mượn trả: Hiển thị lịch sử mượn trả của một sách hoặc thành viên cụ thể.
- Lưu Lại Database : Lưu thành file dữ liệu các thành viên, các loại sách, số lượng tổng và tồn kho,lịch sử mượn , trả cho từng loại sách và từng thành viên thư viện ….
- Thoát: Thoát khỏi chương trình.
Các kiến thức Haskell sử dụng trong chương trình : Data types, Pattern matching and Case expressions, Recursion and Folds, Hyder order function, Parameter Types, Creating Type Classes and Instances, Basic I/O…
Video bài giảng có tại đây.
Sau buổi ôn tập, buổi học ngày 17/07/2024 của câu lạc bộ tiếp tục với nội dung bài học mới. Buổi học cover hai lesson của khóa học IOG Haskell Course.
-
Phần 1: Review bài Monthly Test 04
-
Phần 2: Lesson 12 - Installing Haskell Locally
- Installing Haskell
- Installing GHCup
- Installing GHC, Cabal, Stack, and HLS with GHCup
- Installing VSCode Extensions
- Creating our first program
- Writing the simplest Haskell program
- Compiling and running our program
- Installing Haskell
-
Phần 3: Lesson 13 - Modules
- Importing Modules
- Controlling environments
- Controlling namespaces
- Creating our own Modules
- The
Prelude
and Standard Libraries
- Importing Modules
Các bạn hãy theo dõi video ghi lại buổi học tại đây.
Vào ngày 24/7/2024, các thành viên CLB Haskell đã tiếp tục với bài học số 14 về Cabal và 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
- NumericUnderscores
- TypeApplications
Video buổi học có thể xem tại đây.
Sau 1 tuần, nhóm Cùng nhau học Haskell tiếp tục đến với bài 15 của khóa học Haskell IOG với nội dung về xử lý lỗi trong Haskell:
Đầu buổi học là phần chữa homework 14 - Forest Game, bạn Vũ Quang Tú đã phát triển một phiên bản nâng cao của game, bổ sung nhiều tính năng thú vị.
Nội dung bài 15:
Handling:firefighter: errors:fire: in Haskell
- There’re always
Exception
s to the rule - Speed-running
Exception
s with a dumb self-driving car- I’m the
Exception
cause I haveclass
throw
all theException
s you want. I’llcatch
them all!
- I’m the
Maybe
give me a value?- Benefits of optional values
- Ok, you
Either
give me a value or a reason why you didn’t! - From
Exception
s to optional values - Tradeoffs
- So, what should I use?