آموزش طراحی الگوریتم‌ ها

درس "طراحی الگوریتم‌ های دکتر شریفی زارچی" در نیم‌سال دوم سال تحصیلی 99-98 با کمک خانم زهرا مهدوی‌نژاد، در دانشکده مهندسی کامپیوتر دانشگاه صنعتی شریف ضبط شده‌است. تفکر الگوریتمی نه‌تنها هنر برنامه‌نویسی، بلکه کل زندگی ... ادامه

مدرس دوره:
3.7 (13 رای)
سطح: مقدماتی
 رایگان
  
زمان مورد نیاز برای گذارندن دوره:  26 جلسه
مجموع محتوای آموزشی:  27 ساعت ویدئو
 (قابل دانلود می‌باشد)

پیش‌نیاز‌ها

سرفصل‌های دوره آموزش طراحی الگوریتم‌ ها

طراحی الگوریتم‌ها
  جلسه اول: مقدمه - الگوریتم‌های حریصانه
"63:47  
  جلسه دوم: الگوریتم‌های حریصانه - مسئله زمان‌بندی فعالیت‌ها
"71:56  
  جلسه سوم: الگوریتم‌های حریصانه - فشرده‌سازی و کد هافمن
"65:16  
  جلسه چهارم: حریصانه و برنامه‌نویسی پویا، مسئله‌ی کوله‌پشتی
"78:35  
  جلسه پنجم: برنامه‌نویسی پویا - مسئله‌ی تبدیل رشته‌ها
"74:49  
  جلسه ششم: برنامه‌نویسی پویا - ضرب ماتریس، بزرگترین زیردنباله‌ی صعودی، بزرگترین زیردنباله‌ی مشترک
"76:51  
  جلسه هفتم: برنامه‌نویسی پویا - مجموعه‌ی مستقل در درخت
"68:25  
  جلسه هشتم: درخت پوشای کمینه (Minimum Spanning Tree)
"75:06  
  جلسه نهم: کوتاه‌ترین مسیر بین هر دو رأس (All Pairs Shortest Path)، الگوریتم فلوید-وارشال
"70:38  
  جلسه دهم: مرور الگوریتم‌های گراف، الگوریتم بلمن-فورد
"72:51  
  جلسه یازدهم: هیپ فیبوناچی
"79:54  
  جلسه دوازدهم: الگوریتم‌های تقسیم و حل - رابطه‌های بازگشتی، توان، نزدیک‌ترین زوج نقطه
"44:38  
  جلسه سیزدهم: روش تقسیم و حل - الگوریتم استراسن و تبدیل سریع فوریه
"50:06  
  جلسه چهاردهم: تطابق رشته‌ها - الگوریتم رابین-کارپ
"49:46  
  جلسه پانزدهم: تطابق رشته‌ها - الگوریتم KMP
"54:55  
  جلسه شانزدهم: شار بیشینه (بخش اول)
"50:07  
  جلسه هفدهم: شار بیشینه (بخش دوم)، الگوریتم ادموندز-کارپ
"64:19  
  جلسه هجدهم: شار بیشینه با ظرفیت کمینه روی هر یال
"55:01  
  جلسه نوزدهم: برنامه‌نویسی خطی و صحیح
"56:54  
  جلسه بیستم: مسائل NP-Hard
"53:41  
  جلسه بیست و یکم: مسائل NP-Complete
"58:41  
  جلسه بیست و دوم: پس‌گرد (Backtracking)
"62:52  
  جلسه بیست و سوم: پس‌گرد (Backtracking) - مسأله‌ی فروشنده‌ی دوره‌گرد
"60:10  
  جلسه بیست و چهارم: پس‌گرد (Backtracking) - مسأله‌ی سودوکو
"64:28  
  جلسه بیست و پنجم: الگوریتم‌های تقریبی (Approximation Algorithms)
"59:45  
  جلسه بیست و ششم: الگوریتم‌های مکاشفه‌ای: Hill Climbing (تپه نوردی) و Simulated Annealing
"57:10  

درباره دوره

درس "طراحی الگوریتم‌ های دکتر شریفی زارچی" در نیم‌سال دوم سال تحصیلی 99-98 با کمک خانم زهرا مهدوی‌نژاد، در دانشکده مهندسی کامپیوتر دانشگاه صنعتی شریف ضبط شده‌است. 

 

تفکر الگوریتمی نه‌تنها هنر برنامه‌نویسی، بلکه کل زندگی را تغییر می‌دهد. وقتی با این دید به مسائل زندگی می‌نگریم، هر لحظه برای ما می‌تواند فرصت حل یک مسئله باشد. انتخاب تصمیم درست و «بهینه» بین چند گزینه‌ی ممکن، صرفه‌جویی در زمان، انرژی و هزینه‌ی انجام یک فعالیت، برنامه‌ریزی بهینه برای انجام مراحل یک پروژه یا تقسیم فعالیت‌ها بین اعضای یک تیم، مثال‌هایی از این مسئله‌ها هستند. تفکر الگوریتمی، علم و هنر شناخت مسئله و انتخاب راه‌حل بهینه در طول زندگی است. درس طراحی الگوریتم‌ها فرصتی برای یادگیری نظری و عملی تفکر الگوریتمی است.

مؤکداً پیشنهاد می‌کنیم ابتدا درس داده‌ساختارها و الگوریتم‌ها را که ویدئوهای آن در مکتب‌خونه هم وجود دارد به‌عنوان یک پیش‌نیاز ببینید و تمرین کنید و سپس شروع به یادگیری این درس کنید. با توجه به این‌که فرض می‌شود دانشجویان ابتدا درس داده‌ساختارها و مبانی الگوریتم‌ها را پیش از برداشتن این درس گذرانده‌اند؛ مطالب موجود در این درس به‌نوعی ادامه‌ی مطالب درس داده‌ساختارها است.

درس طراحی الگوریتم‌‌های دکتر شریفی زارچی با آموزش الگوریتم‌های حریصانه و برنامه‌نویسی پویا شروع می‌شود. در ادامه به الگوریتم‌های گراف نظیر الگوریتم‌های یافتن زیردرخت فراگیر و کوتاه‌ترین مسیر بین همه‌ی جفت رئوس پرداخته‌خواهد‌شد. سپس روش‌های تقسیم و حل، تطابق رشته‌ها و شبکه‌های شار بیان می‌شود. در انتها نیز مباحثی از قبیل پیچیدگی محاسباتی (P و NP)، برنامه‌نویسی خطی، الگوریتم‌های تقریبی و بهینه‌سازی‌های پویا تدریس می‌شوند. جزوه‌های تعاملی این درس را می‌توانید از سایت زیر دریافت کنید:

https://github.com/asharifiz/Algorithms_Jupyter

برای باز کردن این جزوه‌ها نیاز است نرم‌افزار Jupyter Notebook را بر روی کامپیوتر خود نصب کنید؛ این کار را از طریق نرم‌افزار miniconda انجام دهید. این نرم‌افزار برای هر سه محیط ویندوز، لینوکس و مک موجود است. همچنین با توجه به این‌که زبان برنامه‌نویسی این درس، زبان سی‌پلاس‌پلاس است توصیه می‌کنم کامپایلر این زبان را نیز نصب داشته باشید. سایر توضیحات در مورد پیش‌نیازهای سیستمی در جزوه‌ی اول (مقدمه) آمده است. دسترسی به تمرین‌های عملی و نظری از طریق صفحات کوئرا و پیاتزای درس ممکن است، لینک عضویت در این صفحات نیز در اولین جزوه‌ی درس قرار دارد.

تنها راه یادگیری واقعی این درس حل مسئله‌ها و تمرین‌های نظری و عملی توسط خودتان است؛ بنابراین به‌شدت توصیه می‌کنیم تمرین‌های درس را با صرف زمان متناسب حل کنید. بعد از اتمام هر تمرین، پاسخ‌نامه‌ی آن در صفحه‌ی پیاتزای درس قرار می‌گیرد اما لطفاً پیش از صرف زمان کافی به سراغ پاسخ‌نامه‌ها نروید. دقت کنید که در این درس حل سؤالات تمرین‌ها نیاز به زمان دارد و باید وقت قابل توجهی را صرف فکر کردن، ایده‌زنی و بررسی راه‌حل‌های مختلف کنید.

این درس حاصل تلاش یک تیم ۲۸ نفره از دانشجویان کنونی و سابق دانشکده‌ی مهندسی کامپیوتر دانشگاه صنعتی شریف است که بدون چشمداشت مادی و معنوی در راه‌اندازی این درس به دکتر شریفی زارچی کمک کردند و تولید تمامی محتوای درس از جمله جزوات و تمرین‌ها را بر عهده داشتند. از زحمات همه‌ی آن‌ها عمیقاً سپاس‌گزاریم.

درباره استاد

maktabkhooneh-teacher علی شریفی زارچی

علی شریفی زارچی دانش‌آموخته کارشناسی و کارشناسی ارشد مهندسی کامپیوتر از دانشگاه صنعتی شریف و دکتری بیوانفورماتیک از دانشگاه تهران است.

وی دوره‌های پژوهشی و پسادکتری را در Max Planck Institute آلمان و Colorado State University آمریکا پشت سر گذاشته‌است.

او از سال ۱۳۹۰ تاکنون به عنوان پژوهشگر بیوانفورماتیک در پژوهشگاه رویان‌ و هم‌چنین از سال ۱۳۹۵ به عنوان عضو هیأت علمی دانشکده‌ی مهندسی کامپیوتر دانشگاه صنعتی شریف مشغول به کار است.

زمینه‌های تحقیقاتی مورد علاقه ایشان به کارگیری الگوریتم و هوش مصنوعی در بیوانفورماتیک و تحلیل داده‌های زیست‌پزشکی است.

مشاهده پروفایل و دوره‌‌های استاد

نظرات کاربران

تا کنون نظری برای این دوره ثبت نشده است. برای ثبت نظر باید ابتدا در دوره ثبت نام کرده و دانشجوی دوره باشید.
1401-04-16
بسیار دوره مفیدی بود. تسلط استاد و دانشجوی ایشان به مطالب بسیار عمیق و شیوه تدریس عالی بود. ممنون از زحمات کسانی که در این پرسه نقش داشته اند به خصوص دکتر و دانشجوی ایشان.
1398-12-13
good
1401-07-14
با تشکر از دست اندرکاران سایت مکتب خونه خیلی آموزش خوبی بود ممنون
1400-08-20
استاد خیلی خوبی هستن اقای شریفی قطعا و من واقعا ممنونم ازشون ولی کسایی که ویدیو ها رو گرفتن صرفا فقط ویدیو پر کردن و اصلا هیچ اهمیتی به کیفیت ندادن. لا اقل همه این زحمتایی که میکشین رو اینجوری به هدر ندین بزارین واقعا مفید باشه .
1400-07-10
نصف اموزش رو داره دانشجوش میده ، که از قضا هیچی هم بلد نیست |:
علیرضا مردانه 1401-02-17
کیفیت ارائه و درک مطلب آقای عباسی بسیار ضعیف است و بنظر مناسب ارائه این مطالب نمیباشند. کاش امکان داشت خود دکتر شریفی این مباحث رو هم تدریس کنن و ویدیوها جایگزین بشه
مکتب‌خونه
همراه عزیز؛ با سپاس از نظر شما، موارد مطرح شده جهت بررسی به بخش مربوطه ارسال شد. در صورت نیاز به پیگیری بیشتر با شما در ارتباط خواهیم بود.
1400-05-13
کیفیت صدا اصلا خوب نبود

دوره‌های پیشنهادی

سوالات پرتکرار

آیا ممکن است که درسی ناقص ضبط شده باشد؟
ما همواره تلاش کرده­‌ایم که دروس را به طور کامل ضبط نماییم و در اختیار شما دوستان قرار دهیم. اما گاهی برخی ناهماهنگی ها سبب می شود که یک یا تعدادی از جلسات یک درس ضبط نشود. توضیح این گونه نواقص در توضیح درس­ ها آمده است.

سوالات پرتکرار

اگر لینک دانلود یا پخش ویدئو مشکل داشت چه باید کرد؟
در صورتی که با هر گونه مشکلی رو به رو شدید می توانید از طریق صفحه ارتباط با ما به ما اطلاع دهید تا ما سریعا مشکل را پیگیری و برطرف نماییم.

سوالات پرتکرار

آیا امکان دریافت فیلم های یک درس به صورت سی دی یا دی وی دی وجود دارد؟
در حال حاضر امکان ارسال دروس به صورت سی دی یا دی وی دی وجود ندارد.
poster
  
برگزار کننده:  دانشگاه صنعتی شریف
  
زمان مورد نیاز برای گذارندن دوره:  26 جلسه
مجموع محتوای آموزشی:  27 ساعت ویدئو
 (قابل دانلود می‌باشد)