[CSCI 347] Computer Models and Languages
To understand what a computer can and cannot do, we investigate different styles of languages used to program computers, study machine learning, where the computer partly programs itself, and construct abstract models of computers for a more formal analysis of their capabilities and limitations. The focus is on programming languages substantially different than the object-oriented languages students are expected to be familiar with. We investigate their capabilities and strengths, and how they are implemented. We learn the basic properties of the three main abstract classes of computers: Finite State Machines, Context-Free Grammars, and Turing Machines. We learn some problems that cannot be solved by computer, and the implications of these unsolvable problems on computer technology.
Computer Models and Languages
Prerequisite: Computer Science 204 plus 2 additional units of computer science courses at the 200 level or above.
Offered in even years, fall semester.