90 likes | 96 Views
Join this exciting course to learn about moderately complex data structures and algorithms that are essential in core areas of computer science such as operating systems, database systems, search engines, and compilers. Gain theoretical and practical knowledge, and develop the skills to design and analyze algorithms efficiently. This course covers topics like Euclid's algorithm, algorithm design, and more.
E N D
Welcome Welcome to the most Amazing course there is
Algorithms • Algorithm. • [webster.com] A procedure for solving a mathematical problem (as of finding the greatest common divisor, or finding max/min ) 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. 👍
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-jabrwa'l-muqabala“كتاب الجبر والمواريث”* which evolved into today's high school algebra and Algorithms.
What is this course about? • We will study moderately complex data structures and algorithms that are essential in core areas of computer science • Operating Systems • Database Systems • Search Engines • Compilers • etc. • This is one of the most important (and fun) courses you will take
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 6
The two main issues related to algorithms • How to design algorithms • Correctness • How to analyze algorithm efficiency • Resource usage 7
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 – 9 • Exclude topic: “Hard problems”