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 91ÃÛÌÒ¸ó 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