Computability and Language Theory

Winter 2021
Spring 2021
Class Size: 50
Credits per quarter
Variable Credit Options Available

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 a selection of topics in formal computer languages, computability theory, functional programming, algorithms, artificial intelligence, machine learning, or programming language design and implementation. 

These topics are offered in four distinct threads. A thread on computing theory covers topics in formal languages and computability. The Artificial Intelligence and Machine Learning thread covers techniques for building intelligent programs. The algorithms thread covers the design and analysis of algorithms for solving a variety of problems. The programming language thread explores topics in how algorithms are implemented as computer programs, for example, language implementation issues or programming languages paradigms: imperative, object oriented, functional, or logic programming.

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

computer science, mathematics, information technology, education


Credits per quarter
Variable Credit Options Available

Variable Credit Options:

On a space-available basis 4-, 8-, or 12-credit enrollment options are possible for students planning to focus on only one, two or three threads of the program, such as students with a strong mathematical background but little programming experience or students with little mathematical background but strong programming experience. As with the 16-credit option, students joining the program in winter must have course work or experience equivalent to prior fall quarter work for each appropriate thread of study.

Fields of study: 

Students are expected to have completed Data Structures and Algorithms or the equivalent, including 1) writing, debugging and reading complex programs in an object-oriented language such as Java or C++,  2) computing the space and time complexity of moderately complex algorithms, and 3) implementing and using standard data structures, such as lists, stacks, queues, heaps, search trees, hash tables, and graphs.

In addition, some experience programming in Python is desirable.

Online learning:
  • Enhanced Online Learning - This offering requires access to web-based tools, but use of these tools does not displace any face-to-face instruction.

Upper division science credit:

All parts of the program cover upper-division material. Upper-division credit will be awarded for successful completion of upper-division work.

Class Standing: Sophomore–Senior
Class Size: 50

Scheduled for: Day

Final schedule and room assignments:

First meeting:

Monday, January 4, 2021 - 10:00 am
Purce Hall 5 - Classroom

Located in: Olympia

May be offered again in: