Lovelace Organization Notes

Here are some quick notes on the organization of this tutorial:

  1. The tutorial is broken into a set of lessons (numbered 1, 2, 3 ...), which are further broken into sections (numbered 1.1, 1.2, ...). Each section is short, explaining a few key concepts.
  2. Each section usually ends with a single-question quiz. The purpose of these quizzes is to make sure that you've grasped at least some of the principles in that section. You may skip the quizzes, but I recommend that you take each quiz - the process of taking each quiz will help you remember the key points. Most current WWW tutorials don't include quizzes and are merely static, non-interactive books. Lovelace, by contrast, is much more interactive and uses the quizzes to help you remember the material through reinforcement. There's no penalty for wrong answers.
  3. The tutorial is organized so users can quickly learn enough basics to write simple programs, and then expand that knowledge for more complex programs.

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.

The paper "Lovelace: An Ada 95 Tutorial", which describes Lovelace in more detail, is available in Postscript form.

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.

You can return to the Lovelace home page.

David A. Wheeler (wheeler@ida.org)