JMU
Algorithms
An Introduction


Prof. David Bernstein
James Madison University

Computer Science Department
bernstdh@jmu.edu


Definitions
History
An Example
Where Do Algorithms Come From?
Algorithm Development's Place in the Cognitive Domain
Science or Engineering?
Recording/Reporting Algorithms you Already "Know"
Developing New Algorithms
Commonalities Across Algorithms
Commonalities Across Algorithms (cont.)
Abstraction in Algorithm Development
A "High Level" Algorithm for Eggs Benedict
  Prepare Hollandaise sauce
  Toast English muffin
  Poach eggs until whites are soft
  Grill Canadian bacon
  Plate the completed dish
  
A "High Level" Algorithm for Hollandaise
  Heat butter until bubbling
  Combine all other ingredients in blender
  Pour butter into running blender in a slow stream
  
A "Lower Level" Algorithm for Hollandaise
  Put butter in pot
  Turn on burner
  Put pot on burner
  While not bubbling, leave pot on burner
  Remove pot from burner
  If you like spicy sauce, put tabasco sauce in blender
  Put all other ingredients in blender
  Turn on blender
  While you have butter, pour butter into blender in a slow stream
  Turn off blender