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.