Here are some quick notes on the organization of this tutorial:
This tutorial is different from much of the freely-available courseware, since it assumes that the user already has had exposure to some other algorithmic programming language (such as Pascal, C, C++, or Fortran). Thus, discussions on what are variables, the semantics of assignment and ordinary expressions, and so on are glossed over. I intentionally give examples of similar capabilities in Pascal, C, and C++, because many of the users will already be familiar with those languages. A different kind of tutorial would be needed for those without such knowledge.
The goal of this tutorial is for people to become (beginning) Ada programmers, who can write some Ada code and read a great deal more. Thus syntax diagrams are shown so that the tutorial user can understand it formally enough to actually write legal Ada constructs.
Organization is always a tricky issue for a tutorial. This one starts `top down' for a short time so that users can quickly get the highlights, but then switches to a `bottom up' approach. I would have preferred to start `bottom up' later, but it quickly became difficult to describe things without defining terms. Hopefully, this tutorial has the advantages of both a `top down' and `bottom up' approach.
This tutorial is designed to have ``zero startup cost''. By intent, users only need a WWW browser (such as Mosaic or Netscape) - there's no requirement to install a compiler or any other tool. Thus, people who are just `Internet surfing' could simply start using this right away. Naturally, people will learn best if they actually try to build their own programs, but that's not required by this course.
As a related note, this tutor is designed so that it can be easily extended by others at different locations. There is a tutorial generator used to reduce tutorial development time (which also creates a common `look and feel'). Things are designed so that, with a trivial amount of work on the lesson developer's part, users can go from lesson to lesson without noticing that they're working with lessons developed by different people.
More information about my philosophy of computer languages is available.
More information about the current version and change history of Lovelace is available.
More information about me (David A. Wheeler) is also available.
David A. Wheeler (wheeler@ida.org)