Course overview information can be found
Background on ML
Our first order of business in this course is to learn how to use ML. Why learn another language?
We use a zillion different programming languages to communicate with machines and each other:
general purpose programming: Fortran, Lisp, Basic, C, Pascal, C++, Java, etc.
scripting: Visual Basic, awk, sed, perl, tcl, sh, csh, bash, REXX, Scheme, etc.
search: regular expressions, browser queries, SQL, etc.
display and rendering: PostScript/PDF, HTML, XML, VRML, etc.
hardware: CCS, VHDL, Esterelle
mathematics: Mathematica, Maple, Matlab
Though there are only a handful of general-purpose languages that you will learn and use, you'll be learning
and using special-purpose languages for the rest of your life. Even general-purpose languages come and go.
Today, it's Java and C++. Yesterday, it was Pascal and C, before that Fortran and Lisp. Who knows what it
will be like tomorrow? You have to learn how to learn new languages.
In addition, some projects will require that you build "little" languages for gluing things together.
protocols, like HTTP or TCP are little languages that allow devices to talk to one another
the command prompt of DOS handles a little shell language
search engines on the web accept queries in a little language
We gain a lot of leverage by having good notation and good language support for a given domain.
perl is extremely useful for searching through documents because of its built-in support for regular
SQL is a very high-level language that makes it easy to do database transactions in a scalable way.
So it's important to understand programming
because in this fast
changing field, you need to be able to rapidly adapt.
It's crucial that you understand the
behind programming that transcend the specifics of today.
There's no better way to get at these principles than to approach programming from a completely different
This is one reason why we're using ML -- it's different from what most of you will have seen.