The following files and their contents will be distributed with this book. Ant.cpp Ant.h Ants walk on a 2 dim. grid populated with food. Array.h template class-- extensible array of whatever Array2.h template class-- two dimension arrays Association.h key-value pairs. the basis of dictionaries Auxiliary.cpp Auxiliary.h misc help functions BigNums.h BigNums.cpp Arbitrary precision integers. Limited only by memory/time Boolean.h A simple header defining type boolean and constants true, false. Chess.h Chess.cpp A chessboard and some pieces. Used to solve the n-queens problem. Could be greatly expanded for other problems. Circuit.h Circuit.cpp Integrated circuit simulater- based on Gate (inheritance...) CPU.h CPU.cpp Simulates a simple stack machine. Students may use this to get the flavor of programming in assembler. DFA.cpp DFA.h deterministic finite automata Dice.cpp Dice.h dice with an arbitrary number of faces Dictionary.h implement finite functions. Sets of associations. Display.h Display.cpp Two dimensional graphic display. uses Character graphics. Error.cpp Error.h to separate out error reporting FastList.h Like List but with a shared, memory managed, implementation. FMG.cpp FMG.h the French Military Game--uses arrays and two dimension arrays It is a simple game that improves its performance when played (low level AI) This could be expanded and improved FreeStore.h Template class. Simulates the C++ free store in an array. Gate.h Gate.cpp Logic gates and switches. (inheritance...) GraphicAnt.h GraphicAnt.cpp Extends ants to use a display. INC.h INC.cpp Implements an increment function that is (time) exponential in the number of calls. It is linear in space, however. May be used to introduce complexity. LinkList.h template class-- Lists/nodes/contexts. List.h template class-- lisp like lists of whatever ListFuns.h template functions -- Some template functions over List.h Sorting, elements, minimum, writing... Polynomial.cpp Polynomial.h polynomials and monomials with usual arithmetic & some calculus PPBallBag.cpp PPBallBag.h a bag of numbered ping pong balls. For selection without replacement. Process.h Process.cpp Multiple processes sharing a processor. Programmed in the Stack language of the CPU class. ProcessL.h ProcessL.cpp Extends Process. Adds Labels to the language (with forward refs handled.) Queue.h Template. Double Ended Queues, based on LinkList Range.h Range variables (a la Pascal). Also arrays with arbitrary subscripts in both 1 and 2 dimensions. Run-time value/subscript checks. SafeList.h template class-- Self adjusting contexts. Contexts adjust themselves when a list changes. Scanner.h Scanner.cpp Used by spreadsheet program. A simple scanner. Set.h template class-- set of whatever - based on dynamic arrays. SortArray.h template class-- Sortable arrays. With selection and quick sorts. SpreadSheet.h SpreadSheet.cpp Spreadsheet program -- minimal user interface. Uses recursive descent to parse the user input. Saves formula cells as postfix "programs". Stack.h template class-- stacks of whatever (implemented via dynamic arrays) StopWatch.cpp StopWatch.h used to time events and check big-oh claims. Strngs.cpp Strngs.h Strings. The usual thing-- well encapsulated. Uses operator overloading. TuringMachine.cpp TuringMachine.h what you expect-- with a finite tape, of course. TwoDimArray.h --obsolete. Replaced by Array2. template class-- TwoDimensionArray -- not extensible and not related to Array