TCEA State 1998 Slides


How to Teach Principles?

Our answer is algebra.

First of all, algebra is sufficiently abstract: languages like C++ distract the students with all sorts of details like memory management, pointers, and so forth. But the programmer who uses a search engine, a spreadsheet, or a word processor does not encounter any of these details.

Second, is algebra a programming language? Surely we can all agree upon the following definition of a programming language: A precise notation for expressing computations. Now let's look at a few algebraic expressions:

Therefore, algebra does indeed fit the definition of a programming language.

But algebra is not a very precise language---there are lots of informal ways of writing algebraic expressions---so it can't usually be executed directly on a computer. To remedy this, we can use a programming language that behaves exactly like algebra, but has the benefit of running on contemporary computers.

PLT / scheme@cs.rice.edu

Last modified at 22:37:03 CST on Sunday, February 08, 1998