Course Coordinator
Mr. Foo Yong Qi
Instructor & Ph.D. Student
Email: yongqi@nus.edu.sg
Course Outline
-
Course Introduction
- Course Administration
- Functional Programming
- Introduction to Haskell
-
Types
- Types and Type Systems
- Polymorphism
- Algebraic Data Types
- Pattern Matching
-
Typeclasses
- What Are Typeclasses?
- Important Typeclasses
- Typeclasses and Typeclass Instances
-
Railway Pattern
- Functors
- Applicative Functors
- Validation
- Monads
-
Monads
- Commonly-Used Monads
- Monad Transformers
-
Concurrent Programming
- Concurrent Programming with Threads
- Parallel Programming
- Software Transactional Memory
-
Course Conclusion
Graded Items
Item | Weightage |
---|
Assignment 1 | 20% |
Assignment 2 | 20% |
Assignment 3 | 20% |
Practical Exam | 40% |
The Practical Exam is planned to be during the last lecture.
Plagiarism Notice
Assignments are on programming… standard plagiarism rules apply.
No code sharing!
- ChatGPT (and similar tools) is allowed for learning only
- Using LLMs to generate code is not allowed
- NUS takes a strict view of plagiarism and cheating
- Disciplinary action will be taken against students who violate NUS Student Code of Conduct
- No part of your assignment can come from any other source
- No discussion and sharing of solutions during exams