Programming Language Theory and Practice

We are aware of missing faculty photos in the directory and catalog and will be updating them shortly. Thank you for your patience.

Fall 2018
Winter 2019
Credits per quarter

Compare offerings and share your lists with others.

Taught by

computer science, mathematics
computer science

This program will explore what computers can do, how we get them to do it, and what they can't do. It is designed for advanced computer science students and students with an interest in both mathematics and computer science. The program covers topics selected from formal computer languages, computability theory, type theory, programming language design, and artificial intelligence. Students will also study a functional programming language, Haskell; learn the theoretical basis of programming languages; and do an in-depth comparison of properties and capabilities of languages in the four primary programming paradigms: functional, logic, imperative, and object-oriented.

Topics are typically offered in three or four of the following threads of study: The Formal Languages thread extends for two quarters and covers the theoretical basis of language definitions, concluding with a study of what is computable. The Functional Language thread extends for two quarters and covers advanced programming techniques using the programming language Haskell. The Type Theory and Programming Language thread covers both the theoretical basis and practical implementation of types and programming languages and extends for two quarters. The Artificial Intelligence thread begins in winter and covers machine-learning and techniques for building intelligent programs, along with related topics in programming languages and computability.

Fields of study: 

This offering will prepare you for careers and advanced study in: computer science, mathematics, science, and education.

Online learning:
  • Hybrid Online Learning - This offering delivers < 25% of its instruction online, rather than via face-to-face contact between you and your instructors.

Students must have completed Computer Science Foundations or equivalent: 10  credits of computer programming, 8 credits of discrete mathematics, and 4 credits of computer architecture.

Scheduled for: Day

Located in: Olympia