Skip to Content

University of Colorado Boulder
Search

Search

Computer Science
College of Engineering and Applied Science
Computer Science

Main menu

  • Home
  • Academics
  • Research
  • People
  • News & Events
  • Admissions

Secondary Menu

  • Students
  • Engage
  • Faculty/Staff Resources

Mobile menu

  • Home
  • Academics
  • Research
  • People
  • News & Events
  • Admissions
  • Students
  • Engage
  • Faculty/Staff Resources
  • About
  • Admissions
  • Contact Us
  • Jobs
  • Funding Opportunities

CSPB 3155 - Principles of Programming Languages

Course Details

*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. 

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

Specific Outcomes of Instruction
 
  • 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

Brief List of Topics to be Covered
  • 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

Mathematical Concepts Used in Course
Regular Expressions, context-free grammars, proofs about program properties, recursion and induction.

Return to Course List

  • Facebook
  • Twitter
  • LinkedIn
  • Instagram
  • YouTube

Apply  Visit  Give

Departments

  • Ann and H.J. Smead Aerospace Engineering Sciences
  • Chemical & Biological Engineering
  • Civil, Environmental & Architectural Engineering
  • Computer Science
  • Electrical, Computer & Energy Engineering
  • Paul M. Rady Mechanical Engineering

Programs

  • Applied Mathematics
  • Biomedical Engineering
  • Creative Technology & Design
  • Engineering Management
  • Engineering Physics
  • Engineering Plus
  • Environmental Engineering
  • Materials Science & Engineering

Affiliates & Partners

  • ATLAS Institute
  • BOLD Center
  • Colorado Mesa University
  • Colorado Space Grant Consortium
  • Discovery Learning
  • Engineering Honors
  • Engineering Leadership
  • Entrepreneurship

 

  • Herbst Program for Engineering, Ethics & Society
  • Idea Forge
  • Integrated Teaching and Learning
  • Global Engineering
  • Mortenson Center for Global Engineering
  • National Center for Women & Information Technology
  • Western Colorado University

Footer menu

  • About
  • Admissions
  • Contact Us
  • Jobs
  • Funding Opportunities

Computer Science

1111 Engineering Drive
ECOT 717, 430 UCB
Boulder, CO 80309-0430 USA
Phone: 303-492-7514
Contact Us by Email
Fax: 303-492-2844   
GPS Coordinates 40.006387, -105.261582

College of Engineering & Applied Science
Phone: 303-492-5071
Email: cueng@colorado.edu

Connect with CU Engineering

  • Facebook
  • Twitter
  • YouTube
  • LinkedIn
  • Instagram

University of Colorado Boulder

University of Colorado Boulder
© Regents of the University of Colorado
Privacy • Legal & Trademarks • Campus Map

Return to the top of the page