Principles and techniques of high-level programming language specification, including syntax and semantics, and implementation methods. Languages are considered formal constructs representing computable functions, and the course presents the basic results of computability theory. Methods of recognition for regular and context-free languages, the functional alternative to the state-based imperative paradigm, parse trees as control constructs, and concurrent programming synchronization primitives are also covered. COS 360 is required for Computer Science majors. Credits: 3.

Prerequisite: Grade of C or higher in COS 280 and COS 285.

Learning Outcomes

By the end of this course, students will be able to:

  • Program in different language paradigms and evaluate their relative benefits.
  • Describe the importance of understanding different programming languages and constructs.
  • Explain the fundamental characteristics of the various programming language domains.
  • Explain the structural differences among various programming languages using multiple evaluation criteria.
  • Discuss the influences on modern programming language design.
  • Identify the various programming language categories.
  • Explain the programming language design trade-offs.
  • Write basic algorithms in a functional programming language.

Textbook

Louden, K. & Lambert K., (2012). Programming Languages Principles and Practices 3rd Edition, Cengage Learning.

Syllabus

Fall 2023

Offered

Fall Semester