
Dear CS 2500 Class --

Here are study questions that you can work on to get ready for
the second quiz.  You will notice that all of these questions
are "goals" taken from the beginnings of the chapters in Dale
and Lilly.

					-- john sarraille

======================================================================
Chapter Three Goals:  Data Design

* Be able to explain what is meant by "abstract data type" and
  "data encapsulation."

* Be able to define an abstract data type as a collection of
  data elements and a set of operations on the data.

* Be able to describe a data structure from three perspectives:
  application, abstraction, and implementation.

* Be able to explain how a specification can be used to record
  an abstract data type.
  
* Be able to use the following Pascal built-in data types:
  variant records, sets, and pointers.

* Be able to differentiate between static and dynamic
  allocation.


======================================================================
Chapter Four Goals:  Stacks

* Be able to describe a the structure of a stack and its
  operations at a logical level.

* Be able to implement the stack abstract data type in the form
  of a static array implementation.

* Be able to implement the stack abstract data type as a linked
  data structure.

* Be able to explain the difference between static and dynamic
  allocation of the space in which the stack elements are
  stored.

* Be able to compare stack implementations in terms of use of
  storage space and Big-O approximations of the stack
  operations. 

* Be able to choose between a static and a dynamic linked stack
  structure.

* Be able to describe advantages and disadvantages of using
  dynamically allocated space to contain the stack elements.

* Be able to determine when a stack is an appropriate data
  structure for a specific problem.

* Be able to design and implement the solution to a problem for
  which the stack is an appropriate data structure.

* Be able to discuss issues in designing error checking for a
  program.

  
======================================================================
Chapter Five Goals:  FIFO Queues

* Be able to describe the structure of a FIFO queue and its
  operations at a logical level.

* Be able to implement the FIFO queue ADT using a static
  array-based implementation.

* Be able to implement the FIFO queue ADT as a linked data
  structure.

* Be able to compare queue implementations in terms of use of
  storage space and Big-O approximations of the FIFO queue
  operations. 

* Be able to choose between a statically and a dynamically
  allocated structure.
    
* Be able to discuss the advantages and disadvantages to using a
  linked data structure.

* Be able to determine when a FIFO queue is an appropriate data
  structure for a specific problem.

* Be able to design and implement the solution to a problem for
  which the FIFO queue is an appropriate data structure.

* Be able to design and implement a strategy for testing a
  queue implementation.
