00:00 / 00:00
1.8x
1.4x
1.0x
0.7x
HD SD
HD
SD
00:00 / 00:00
1.8x
1.4x
1.0x
0.7x
HD SD
HD
SD

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

دوره‌های رایگان دانشگاهی
25 جلسه

سرفصل‌ها

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

 

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

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

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

https://github.com/asharifiz/Algorithms_Jupyter

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

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

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

مدرس دوره
علی شریفی زارچی

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

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

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

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

اطلاعات بیشتر

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

داده ساختارها و مبانی الگوریتم‌ها
اطلاعات بیشتر
ساختمان داده ها و الگوریتم ها
اطلاعات بیشتر

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

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

×

ثبت نظر

به این دوره از ۱ تا ۵ چه امتیازی می‌دهید؟

طراحی الگوریتم‌ها
24:19 ساعت
24:19
Combined Shape Created with Sketch. 23 جلسه
جلسه اول: مقدمه - الگوریتم‌های حریصانه
"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