Algorithms
This chapter will address solving computational problems in an optimal manner. When presented with a programming question our first goal should be to establish at least one solution. Once a single solution has been achieved, the real work can start. Depending on the context, it may be too slow, use too much memory, or present a number of other defficiencies. Our focus will be on correcting these issues, understanding the variety of possible optimizations, and choosing one which is most suitable.