The differences between:

  • Getting the job done
  • Doing the job right, and
  • Doing an excellent job

 

In ICS111 we learned how to program. We made our programs work no matter how. "The end justifies the means". By the time that we reached ICS211 we learned to recognize that  there are more than one way to get things done. There are ways to make things work fine, but the way the program is coded is embarrassing, while there are also programming strategies and coding standards that make us proud of our code. Today we will talk about the different ways in which we can get things done.

This topic can be found in the book in Appendix B. However as I'd been mentioning in class not all the material in the book is going to be in the exam what is in the exam is what we talk about in class. Appendix B is very long and contains material that you may not yet be familiar with. PLEASE, do not worry about all the material presented here. What we will be looking at is an introduction and as the course evolves we will apply this concept until we get comfortable with it.

Topics for May 25, May 30th 2000

Please refer only to the sections of  the book mentioned here.

Introducing the language of Big-O notation

Adjective Name

O-notation

Constant O(1)
Logarithmic O(log n)
Linear O(n)
n log n O(n log n)
Quadratic O(n^2)
Cubic O(n^3)
Exponential O(2^n)
Exponential O(10^n)

Algorithm Analysis

Class slides

January 20, 2000.

Definition

Measuring algorithm performance

Possible concerns

Big-O notation

Determining Big-O measures

Order 1 Algorithms

Order N Algorithms