Information about

CSCI 470

Languages and Machines

**Major Requirement (for B.S.)**

Course Description:
There is a beautiful theoretical underpinning to computer science and this course explores it in depth. It looks at theoretical models underlying machines, languages, and algorithms, and amazingly, discovers that all of the models are essentially the same.

This course addresses the fundamental question of what is computable and discovers that some well-defined problems cannot be solved by any programmer, on any machine, in any language. It also investigates some problems that, although they can be solved, can never be solved efficiently. In addition, the class learns how to identify such problems. It is handy before you spend time trying to come up with an efficient solution to know that no such solution exists.

Offerings:
Offered each spring semester.

Instructor:
This course is taught by all computer science faculty.

Prerequisites:
CSCI 112 or 114, CSCI 250. See the department policy on prerequisites.

Comments from Previous Students:

Catalog Description:
This course examines the theoretical foundations of Computer Science. It studies the relationship between finite-state machines and various language models. Computability theory is also studied. Prerequisite: Computer Science 112 or 114, and 250.
Two Credits Staff Spring Semester