Computability and Language Theory

Fall 2014 and Winter 2015 quarters

Taught by

computer science
mathematics, computer science
computer science, mathematics


Computer Science Foundations program or a strong mathematical background with two quarters of computer programming. Students with a strong mathematical background but little programming experience will be accepted in variable credit options.

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 in formal computer languages, systems of formal logic, computability theory and programming language design and implementation. Students will also study a functional programming language, Haskell, learn the theoretical basis of programming languages and do an in-depth comparison of the properties and capabilities of languages in the four primary programming paradigms: functional, logic, imperative and object-oriented. Program seminars will explore selected advanced topics in logic, language theory and computability.

These topics are offered in four distinct threads. The Formal Languages thread will cover the theoretical basis of language definitions, concluding with a study of what is computable. The Logic thread will cover traditional logic systems and their applications to programming languages and computer science. The Functional Language thread covers advanced programming techniques using the programming language Haskell. The Programming Language thread covers both the theoretical basis and practical implementation of programming languages by comparing the design and implementation of the four distinct programming language paradigms. Students will have a project opportunity to implement an interpreter for a  small programming language.

Fields of Study

Preparatory for studies or careers in

computability theory, computer science, education, formal language theory, mathematical logic, mathematics and programming language design.

Location and Schedule

Campus location



Offered during: Day

Final Schedule and Room Assignment


Buy books for this program through The Greener Store.

Online Learning

Hybrid Online Learning < 25% Delivered Online

More information about online learning.

Upper Division Science Credit

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

May be offered again in


Registration Information

Credits: 16 (Fall); 16 (Winter)

Variable Credit Options

On a space-available basis 4-, 8-, or 12-credit enrollment options are possible for students planning to focus on only 1, 2 or 3 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. New students must have course work or experience equivalent to the prior fall quarter work for each of the appropriate threads of study.

Class standing: Sophomore–Senior

Maximum enrollment: 30


Course Reference Numbers

So - Sr (16 credits): 10056
So - Sr (1-16 credits): 10057

Go to to register for this program.


Accepting New Students

Signature Required

This program has four threads of study with variable credit options. Full time students will be accepted if they have course work or experience equivalent to the fall quarter material.

Course Reference Numbers

So - Sr (16 credits): 20041
So - Sr (1-16 credits): 20042

Go to to register for this program.

Need Help Finding the Right Program?

Contact Academic Advising for help in answering your questions, planning your future and solving problems.