Computability and Language Theory
Compare offerings and share your lists with others.
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
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.
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.
- 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 Size: 50
Scheduled for: Day
Final schedule and room assignments:
First meeting:Monday, January 4, 2021 - 10:00 am
Located in: Olympia
May be offered again in: