Course Overview

World-class programming skills require:


Isn't competence in a programming language enough?

Imagine trying to implement

Knowing a programming language (at the level of CSC 171 or a high school AP course) is only the first step in solving problems on a computer.

Knowledge of data structures and analysis of algorithms is essential to all of the above problems.


Aren't data structures enough?

Consider how you might implement:

Programming language skills and knowledge of data structures are necessary for solving these problems, but not sufficient.

Solving these complex problems in an ad hoc fashion would be a laborious and error-prone task.

Formal models and systems can provide the tools to help solve these, and other similar, problems.


What is a formal system?

Formals systems are abstract models of complex phenomena.


Good models (or abstractions) of real-world phenomena or problems are useful because


But are formal systems really practical?

Formal systems are used in a variety of practical applications, to manage complexity, facilitate analysis, and provide a framework for optimizations.


last modified Jan 18 1996 / Tom LeBlanc / leblanc@cs.rochester.edu