πŸ“˜ FIT2102: Programming Paradigms

Map of Content

Index for FIT2102 Programming Paradigms β€” programming languages as different abstractions of computation. The whole unit turns on one distinction: Syntax versus Semantics. Arc: abstraction ladder β†’ paradigms β†’ JavaScript/TypeScript β†’ Haskell (type classes β†’ Functor/Applicative β†’ Foldable/Traversable β†’ Monad/IO β†’ parser combinators) β†’ lambda calculus β†’ MiniZinc. No exam β€” the assessable act is defending your own code in an interview, so every note must make the WHY sayable out loud.

πŸ“Š Assessment Map

  • Tutorials + Quizzes (40%) βž” completed individually, assessed via in-class interviews. Marked on correct and timely completion (submitted via Moodle) and demonstrated understanding in the interview.
  • Assignment 1 (30%) βž” set W4, due W7. Individual; interviews check understanding; standard plagiarism checks.
  • Assignment 2 (30%) βž” set W8, due W12. Same conditions.
  • Workload calibration βž” most tutorial tasks are a few lines; no single problem should exceed ~30 minutes. Stuck? Write the question as a code comment, split it into sub-questions, bring it to the lab. This is deliberate β€” the pedagogy is productive failure + active learning.
  • Out of scope βž” not a full β€œProgramming Languages” course: you will not build a compiler or design a language, though both are discussed.

πŸ“… Knowledge Index

Week 1 β€” Syntax vs Semantics, Abstraction, JavaScript

🧭 Suggested Reading Order

🎯 Learning Outcomes

  • W1 βž”
    • justify abstraction from machine instructions to high-level languages
    • distinguish syntax from semantics
    • write JS with immutable bindings; desugar arrows to function form
    • define a closure as a function capturing its enclosing scope
    • contrast composition via higher-order functions vs objects (cons list)
    • replace hand-coded loops with Array HOFs or accumulator recursion