Updated

Course Administration

Course Coordinator

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

ItemWeightage
Assignment 120%
Assignment 220%
Assignment 320%
Practical Exam40%

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