Algorithms Algorithm. [webster.com] A procedure for solving a mathematical problem (as of finding the greatest common divisor) in a finite number of steps that frequently involves repetition of an operation. [Knuth, TAOCP] An algorithm is a finite, definite, effective procedure, with some input and some output * An algorithm is a sequence of unambiguous instructions for solving a problem, i.e., for obtaining a required output for any legitimate input in a finite amount of time. 👍 "Finite: there must be an end to it within a reasonable time. Definite: precisely definable in clearly understood terms, no pinch of salt type vagaries, or possible ambiguities Effective: the steps must be actually be able to be carried out. [simple enough for someone using pencil and paper to carry out in a finite amount of time] Procedure: the sequence of specific steps arranged in a logical order. Output: unless there is something coming out of the process, the result will remain unknown! "
problem algorithm “computer” input output
Etymology Algorism = process of doing arithmetic using Arabic numerals. True origin: Abu 'Abd Allah Muhammad ibn Musa al-Khwarizm was a famous 9th century Persian textbook author who wrote Kitab al-jabr wa'l-muqabala “كتاب الجبر والمواريث”* which evolved into today's high school algebra and Algorithms. revolutionized western mathematics: introduced decimal system, adopted use of 0, formal method for solving quadratic equations by completing the square, doing geometry His book al-jabr evolved into today's high school algebra text.
What is this course about? We will study moderately complex data structures and algorithms that are essential in core areas of computer science Compilers Operating Systems Database Systems Search Engines etc. This is one of the most important (and fun) courses you will take
the core of computer science Why study algorithms? Theoretical importance the core of computer science Practical importance A practitioner’s toolkit of known algorithms Framework for designing and analyzing algorithms for new problems 5
The two main issues related to algorithms How to design algorithms How to analyze algorithm efficiency 6
Board Example The PlayStation Example Algorithm Design Additional Reading : Read section 4.1 from book [K] Pages 116 - 121
Reading [L] Section 1.1 Pages 1 – 7 You will study the Euclid’s algorithm in Discrete Mathematics too [C] Chapter 1 Pages 5 – 10 Exclude topic: “Hard problems”