[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.

Course Title

Computer Models and Languages

Course Code

CSCI 347




Prerequisite: Computer Science 204 plus 2 additional units of computer science courses at the 200 level or above.


Offered in even years, fall semester.

This site uses cookies to improve your experience. Read our Web Privacy Policy for more information.

Got it! ×