Skip to content

Course Administration

Foo Yong Qi yongqi@nus.edu.sg

Course Coordinator

Mr. Foo Yong Qi

Instructor & Ph.D. Student

Email: yongqi@nus.edu.sg

Course Outline

  1. Course Introduction

    • Course Administration
    • Functional Programming
    • Introduction to Haskell
  2. Types

    • Types and Type Systems
    • Polymorphism
    • Algebraic Data Types
    • Pattern Matching
  3. Typeclasses

    • What Are Typeclasses?
    • Important Typeclasses
    • Typeclasses and Typeclass Instances
  4. Railway Pattern

    • Functors
    • Applicative Functors
    • Validation
    • Monads
  5. Monads

    • Commonly-Used Monads
    • Monad Transformers
  6. Concurrent Programming

    • Concurrent Programming with Threads
    • Parallel Programming
    • Software Transactional Memory
  7. 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