1: A computational perspective What is computation? The input-output paradigm: computation as function Computation as change of state Computation as behavior Computational questions - What level of abstraction are we at? o Representations and processes o Data structures and algorithms o Data types and functions/procedures - How is the computation organized? o Modularity o Repetition: iteration and recursion o Stopping conditions - How long does it take? o Practical answers: benchmarks o Analytical answers: time complexity o Often ignored: development of resources - What constitutes a result or a contribution? o Theoretical proof o A better algorithm o Performance on a task o An accurate model of a phenomenon