{:title ["Programming Languages"],
 :rank ["computation" "families_of_languages" "clojure"]}

Index

Programming Languages

CSCI 3055U

Ken Pu

ken . pu @ ontariotechu . net

Faculty of Science
Ontario Tech University

Outline

Course Outline

  • Theory of computation

    1. Turing Machine
    2. $\lambda$-calculus
  • Overview of programming languages

    1. Imperative programming: controlling states
    2. Functional programming: controlling expressions
  • Functional programming and $\lambda$-calculus

    1. Functions and data
    2. s-expressions, homoiconicity and Lisp
  • Lisp programming using Clojure

    1. Syntax and features of Clojure
    2. Sequence processing
    3. Lazy evaluation
    4. Concurrency
    5. Macros
  • Type Systems

    1. Static versus dynamic typing
    2. Object oriented programming with unified typing
    3. Types, type checking, and type inference
  • Object-oriented programming with static types using Scala

    1. Syntax and features of Scala
    2. Type system of Scala
    3. Extensible syntax of Scala
  • Other programming paradigms