Algorithm Design

Spring 1397

Instructor: Kamal Mirzaie

| Description | Lectures | Grading | References | Films | Useful Links |

Description

“To make a computer do anything, you have to write a computer program. To write a computer program, you have to tell the computer, step by step, exactly what you want it to do. The computer then ‘executes’ the program, following each step mechanically, to accomplish the end goal. When you are telling the computer what to do, you also get to choose how it’s going to do it. That’s where computer algorithms come in. The algorithm is the basic technique used to get the job done.”

Algorithm design is a specific method to create a mathematical process in solving problems. Applied algorithm design is Algorithm Engineering. Algorithm design is identified and incorporated into many solution theories of operation research, such as dynamic programming and divide-and-conquer. Techniques for designing and implementing algorithm designs are algorithm design patterns, such as template method pattern and decorator pattern, and uses of data structures, and name and sort lists. Some current day uses of algorithm design can be found in internet retrieval processes of web crawling, packet routing and caching. - From Wikipedia, the free encyclopedia

The study of algorithms is one of the central areas of Computer Science. Algorithmic ideas arise frequently in the several sub-areas within computer science as well as beyond; a small sample of these areas include computer systems and networks, data mining, computer vision, social networks, economics and biology. This course encompasses most aspects of the study of algorithms, though some areas are covered in more detail than others. Algorithm types we will consider include:

  •   Brute Force Algorithms
  •   Simple Recursive Algorithms
  •   Divide and Conquer Algorithms
  •   Simple Iterative Algorithms
  •   Dynamic Programming Algorithms
  •   Greedy Algorithms
  •   Backtracking Algorithms
  •   Branch and Bound Algorithms
  •   Advanced Topics in Algorithm Design

Lectures


Lecture #
Title Status
00
  Preface
Completed
01
  Introduction
Completed
02
  Algorithm Analysis
Completed
03
  Divide and Conquer
Completed
04
  Recurrence Equations
Completed
05
  Dynamic Progamming
Completed
06
  Dynamic Progamming(cont)
Completed
07
  Greedy Approach
Completed
08
  Backtracking
Completed
09
  Branch and Bound
Completed
10
  Advanced Topics
Completed
--
  References
Completed

Grading

Your performance will be assessed by assignments, quizzes, class participation and final exam. Their weights are:
  •    Final Exam: 80%
  •    Project Report: 20%

Assignments have to be typed, if you want them corrected. All of students must work on assignments individually. The assignments play a crucial part in understanding the course material and must be turned in by class time on the due date for full credit. Participation means coming to class, asking questions, taking part in discussions and so on.

References

Recommended Textbooks


[1] R. Neapolitan , "Foundations Of Algorithms" , 5th Edition, Jones & Bartlett Learning, 2015.
[2] T. Cormen, C. Leiserson, R. Rivest and C. Stein , (CLRS) "Introduction to Algorithms" , Third Edition, MIT press, 2009.


Other References:

[3] Kleinberg and Eva Tardos, "Algorithm Design" , 2006.
[4] G. Brassard and P. Bratley, "Fundamental of Algorithms" , First Edition, Prentice Hall, 1996.
[5] H. S. Wilf, "Algorithms and Complexity" , Internet Edition, Summer, 1994.
[6] Peter Gacs and L. Lovasz, "Complexity of Algorithms" , Lecture Notes, Spring 1999.
[7] Lothaire, "Applied Combinatorics on Words" , 2004.

Films


If you have any comments and suggestions about the class and my teaching course, or you know any links about this course, you can send me a mail. I would really appreciate your feedback. Also, If you happen to find an incorrect or non-functional link, please inform me.

Description - Lectures - Grading - References - Films - Useful Links

Last Update: 96/12/01


:: موضوعات مرتبط: طراحي الگوريتم ها (کارشناسی)
:: برچسب‌ها: الگوریتم, طراحی الگوریتم ها, آنالیز الگوریتم ها
ن : K. Mirzaie
ت :

طراحی الگوريتم ها


فصل های كتاب برای امتحان پايان ترم 

 
مراجع فارسی 


نويسنده: ریچارد نیپولیتان و کیومرث نعیمی پور، مترجم: عین الله جعفرنژادقمی، طراحی الگوریتم ها ، ويرايش چهارم، چاپ اول 1390؛ ناشر: علوم یارانه


نويسنده: توماس کورمن، چارلز لیزرسون، رونالد دیوست، کلیفورد اشتاین، مترجم: علی دهقان طرزه، یحیی تابش، مقدمه ای بر الگوریتم ها چاپ اول 1389، ناشر: نص


پيوست های جزوه طراحی الگوريتم ها

آناليز لگوريتم ها و روابط بازگشتی

الگوريتم های مرتب سازی

تمرین های حل شده توسط دانشجویان

پاسخ تمرین های جزوه طراحی الگوریتم ها

نمونه سوال های امتحانی طراحی الگوریتم ها
  • نمونه سوال آزمون تشريحی پايان ترم از آقای نادری
  • نمونه سوال امتحان تستی پايان ترم طراحی الگوريتم
  • پرسش های امتحان تشریحی طراحی الگوریتم نیمسال دوم 89-88
  • عناوين فصل های كتاب برای امتحان پايان ترم طراحی الگوريتم و نمونه سوال ميانترم

جزوه های مدرسین دیگر

اسلايدها و نمونه سوال های پیام نور

نرم افزارها و ابزراها

كتاب ها


 
چنانچه پیشنهاد يا انتقادی در مورد ویرایش دهم جزوه درس و يا مطالب مرتبط با درس طراحی الگوريتم ها دارید، می توانید از طریق ایمیل یا بخش نظرات اطلاع دهيد.

آخرین به روز رسانی: 95/07/07 
 


:: موضوعات مرتبط: طراحي الگوريتم ها (کارشناسی)
:: برچسب‌ها: الگوریتم ها, طراحی الگوریتم ها
ن : K. Mirzaie
ت :
 
صفحه اصلی

.:: Kamal Mirzaie ::.