CSPB 3155 - Principles of Programming Languages

*Note: This course description is only applicable for the Computer Science Post-Baccalaureate program.ÌýAdditionally, students must always refer to course syllabus for the most up to date information.Ìý

  • Credits: 4.0Ìý
  • Prerequisites: CSPB or CSCI 2270 -ÌýComputer Science 2: Data Structures and CSCI 2824 - Discrete Structures, bothÌýwith minimum grade C-.
  • Minimum Passing Grade: C-
  • Textbook:ÌýThis course uses an interactive online textbook, "Programming in Scala, 3rd edition", available for free online through the university library. There are also additional readings embedded into the course lessons.Ìý

[video:https://youtu.be/O8tVQ7mJnXQ]

Brief Description of Course Content

Study fundamental concepts on which programming of languages are based, and execution models supporting them. Topics include values, variables, bindings, type systems, control structures, exceptions, concurrency, and modularity. Learn how to select a language and to adapt to a new language.

Specific Goals for the Course

Ìý
  • Learn new programming languages quickly
  • Choose the language for a programming task
  • Write pure functional code
  • Write new languages or APIs with clear semantics
  • Read and write context-free grammars and parsers
  • Scala
  • Javascript
  • Program Semantics
  • Context-free grammars
  • Recursion and higher-order functions
  • Algebraic Data Types
  • Expression Trees
  • Type checking
  • Mutable State
  • Scope, bindings, and closures
  • Currying
  • Callbacks and Continuation-Passing Style
Regular Expressions, context-free grammars, proofs about program properties, recursion and induction.

Ìý Return to Course List