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 /