×
ribbon

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

مدرس:دانشگاه صنعتی شریف

علی شریفی زارچی

درس "طراحی الگوریتم های دکتر شریفی زارچی" در نیم سال دوم سال تحصیلی 99-98 با کمک خانم زهرا... بیشتر
4.3 (35)
12 دیدگاه
13,532دانشجو
27ساعت
سرفصل‌ها
مقدماتی سطح دوره

اشتراک مکتب‌پلاس

خرید اشتراک

با خرید اشتراک مکتب‌پلاس، علاوه بر این دوره، به بیش از ۴،۰۰۰ دوره دیگر دسترسی خواهید داشت.

دسترسی به تمام دوره‌هابیش از ۴،۰۰۰ دوره
محتوای دوره
سرفصل‌ها
پیش‌نیاز‌ها
توضیحات دوره
دیدگاه کاربران
درباره مدرس

این دوره شامل:

27 ساعت ویدئو

دسترسی مادام‌العمر به محتوای دوره

سرفصل‌های دوره

1 فصل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 انجام دهید. این نرم‌افزار برای هر سه محیط ویندوز، لینوکس و مک موجود است. همچنین با توجه به این‌که زبان برنامه‌نویسی این درس، زبان سی‌پلاس‌پلاس است توصیه می‌کنم کامپایلر این زبان را نیز نصب داشته باشید. سایر توضیحات در مورد پیش‌نیازهای سیستمی در جزوه‌ی اول (مقدمه) آمده است. دسترسی به تمرین‌های عملی و نظری از طریق صفحات کوئرا و پیاتزای درس ممکن است، لینک عضویت در این صفحات نیز در اولین جزوه‌ی درس قرار دارد.

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

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

دیدگاه کاربران

4.3

بر اساس امتیاز 35 دانشجو

1
2
3
4
5

دانشجوی دوره

13 روز پیش

5

*****perfect*****

دانشجوی دوره

1 ماه پیش

5

عالی

سارا حاجی علی

2 ماه پیش

5

دکتر زارچی استادی بسیار توانا و عالی ای هستند و دوره هم بسیار خوب هست. در ادامه میخواستم درخواست کنم اگر مقدور هست جزوه درس رو هم قرار بدید.

طهورا صالحی

1 سال پیش

5

عالی

دانشجوی دوره

3 سال پیش

5

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

دانشجوی دوره

5 سال پیش

5

good

10دوره
80,822دانشجو
968نظر و امتیاز

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

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

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

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

دوره‌های مشابه

دیگر دوره‌های علی شریفی زارچی

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

آیا ممکن است برخی جلسات یک درس ناقص باشند؟

معمولا تمامی جلسات هر درس به‌طور کامل ضبط می‌شوند؛ اما گاهی به دلیل برخی ناهماهنگی‌ها ممکن است یک یا چند جلسه ضبط نشده باشد. جزئیات این موارد در توضیحات هر درس درج شده است.

اگر لینک دانلود یا پخش ویدئو مشکل داشت، چه کاری باید انجام داد؟

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

آیا می‌توان ویدئوهای یک درس را به‌صورت سی‌دی یا دی‌وی‌دی از شما تهیه کرد؟

در حال حاضر امکان ارسال دروس به‌صورت سی‌دی یا دی‌وی‌دی وجود ندارد و همه محتواها به شکل آنلاین ارائه می‌شوند.