Programming Language Theory and Practice

Fall 2018
Winter 2019
Spring 2019
Class Size: 50
Credits per quarter

Compare offerings and share your lists with others.

Taught by

computer science, mathematics
computer science
Richard Weiss
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. The spring topics are still under development. (Neal Nelson FW, Sheryl Shulman FS) 

This offering will prepare you for careers and advanced study in:

computer science, mathematics, science, and education.


Credits per quarter

Fields of study: 

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.

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.

Upper division science credit:

Students may earn up to 16 upper division science credits per quarter in computer science.

Class Standing: Sophomore–Senior
Class Size: 50

Scheduled for: Day

Final schedule and room assignments:

First meeting:

Monday, April 1, 2019 - 10:00 am
LIB 2610 - Mac Lab

Located in: Olympia

2018-11-30Richard Weiss added to faculty team for winter and spring at 4 credits
2018-08-31adjusted program description
2018-08-22updated program to reflect FWS quarters, and faculty teaching loads
2018-08-14Updated description to include faculty teaching distinctions per quarter