CPSC 376 - Programming Language Theory

Catalog Description

Programming languages are studies from the Theoretical viewpoint. The goal is deeper understanding of the design and translation of computer languages. Topics include compilation, automata and formal languages, computability by Turing machines and recursive functions, uncomputability, data types, data structures, binding scope, control mechanisms, conversions, storage management, reliability, portability,modularity, documentation, implementation methods and language extensibility.

Prerequisite: CPSC 246 (3 credits)

Course Outcomes

This course and its outcomes support the Computing Learning Outcomes of Problem Solving and Critical Thinking (PS&CT) and Communication and Interpersonal Skills (C&IS). These Computing Learning Outcomes are tied directly to the University Wide Outcomes of Critical Thinking, Quantitative Reasoning, Effective Communication and Whole Personality.

Program Objectives Assessed in CPSC 376

Learning OutcomesAssessed Course Objectives
PS & CT a. Formulate project requirements and alternative solutions appropriate to the computing problems1. Analyze the semantic differences of variables, data types, expressions, assignment statements, control structures, subprograms, data abstraction, concurrency, and exception handling in diverse programming language paradigms
PS & CT c. Perform critical analyses of the impacts of decisions based on mathematics2. Identify and use methods for describing the syntax and semantics of a programming language.
C & IS b. Use written, oral, and electronic communication to convey technical information effectively3. Give an oral presentation to convey programming language features
C & IS d. Work cooperatively in teams and with others4. Work in teams on a programming language project.

Additional Course Objectives include:

The student will be able to:

  1. dentify and use methods for describing the syntax and semantics of a programming language.
  2. write programs in programming languages other than the departmental core language.
  3. analyze programming languages and their features that can be utilized to ensure the security, privacy and integrity of data