Date           Author           Purpose
12/06/1999     Bob Wilson       Edits and spelling check
11/18/1999     Bob Wilson       Changed folder / directory names to be
                                Mac and unix identical. 
11/17/1999     Bob Wilson       Initial release.

Background

Taking three evening, programming courses, PDP-8 assembler, Basic, and Cobol, in one semester revealed the six-step, structure to rapidly master any computer language. This course teaches "c" using that structure and A Book on C (Al Kelley, Ria Pohl, Addison-Wesley, Fourth Edition, Reading, 1998).

Key to rapid language mastery is a good language reference that includes both the language and the common library routines. The bold-text, reading assignments are there to identify where specific answers can be found for the programming assignments. Memorization of the reading assignments is not as important as understanding where to find the answers and practicing programming.

Six Fundamental Programming Concepts

All programming languages have six fundamental elements that are used to make a functioning program. Regardless of the book, web page, or instructional material, these six elements have to mastered and their details located in the reference book:

The Art of Programming

Prolific programmers, in addition to working hard, have coding styles that give them advantages. This course will emphasize these programming productivity techniques as we work on the following exercises:

Programming style

A program is properly written if just based upon the comments, an identically functioning program can be written by another programmer. Comments are written for people and do not simply restate what the language is doing but rather the intent of the statement. As such, these are not negotiable:

Group programming

Algorthms

Algorthms is the art of deciding which logic that should be used for different tasks. A college course on data structures can provide most of what is needed but we will hit some of these under Subroutine transfer of control:

strings
sort
merge-update
balanced-binary tree