درس طراحی الگوریتمهای دکتر شریفی زارچی در نیمسال دوم سال تحصیلی ۹۹-۹۸، با همکاری خانم زهرا مهدوینژاد، در دانشکده مهندسی کامپیوتر دانشگاه صنعتی شریف ضبط شده است. این دوره بهصورت رایگان در دسترس علاقهمندان قرار گرفته. 🎓
راستش تفکر الگوریتمی فقط ...
آشنایی با دوره آموزش طراحی الگوریتمها
درس طراحی الگوریتمهای دکتر شریفی زارچی در نیمسال دوم سال تحصیلی ۹۹-۹۸، با همکاری خانم زهرا مهدوینژاد، در دانشکده مهندسی کامپیوتر دانشگاه صنعتی شریف ضبط شده است. این دوره بهصورت رایگان در دسترس علاقهمندان قرار گرفته. 🎓
راستش تفکر الگوریتمی فقط یه مهارت برنامهنویسی نیست؛ یه جورایی طرز فکر کردنه. وقتی با این دید به مسائل زندگی نگاه میکنیم، هر لحظه میتونه فرصتی برای حل یه مسئله باشه. انتخاب تصمیم درست و «بهینه» بین چند گزینهی ممکن، صرفهجویی در وقت و انرژی، برنامهریزی بهینه برای مراحل یه پروژه، یا تقسیم کارها بین اعضای تیم — همهی اینا مثالهایی از همون مسئلههای الگوریتمیان. تفکر الگوریتمی یعنی علم و هنر شناخت مسئله و انتخاب راهحل بهینه در طول زندگی.
چرا این دوره؟
اگه دنبال این هستی که درک عمیقی از الگوریتمها پیدا کنی و بتونی مسائل پیچیده رو به شکل بهینه حل کنی، این دوره یه فرصت عالی و رایگان محسوب میشه. فرض بر اینه که دانشجوها قبلاً درس دادهساختارها و مبانی الگوریتمها رو گذروندهاند؛ به همین دلیل مطالب این دوره در امتداد همون درس پیش میره.
پیشنهاد میکنیم قبل از شروع، حتماً درس دادهساختارها و الگوریتمها رو که ویدئوهاش در مکتبخونه موجوده، بهعنوان پیشنیاز ببینی و تمرین کنی. بعد وارد این دوره بشی. 😊
توی این دوره چی یاد میگیری؟
سرفصلهای اصلی دوره به این شکل چیده شده:
الگوریتمهای حریصانه (Greedy) و برنامهنویسی پویا (Dynamic Programming)
الگوریتمهای گراف مثل یافتن زیردرخت فراگیر و کوتاهترین مسیر بین همهی جفت رئوس
روشهای تقسیم و حل (Divide and Conquer)
تطابق رشتهها (String Matching) و شبکههای شار (Flow Networks)
پیچیدگی محاسباتی و مفاهیم P و NP
برنامهنویسی خطی، الگوریتمهای تقریبی و بهینهسازیهای پویا
جزوههای تعاملی و پیشنیازهای سیستمی
جزوههای تعاملی این درس روی مخزن گیتهاب پروژه قرار داره. برای باز کردن این جزوهها باید نرمافزار Jupyter Notebook رو روی سیستم خودت نصب کنی. این کار از طریق miniconda انجام میشه و برای هر سه محیط ویندوز، لینوکس و مک در دسترسه.
از اونجایی که زبان برنامهنویسی این درس سیپلاسپلاس هست، پیشنهاد میکنیم کامپایلر این زبان رو هم نصب داشته باشی. توضیحات بیشتر دربارهی پیشنیازهای سیستمی در جزوهی اول (مقدمه) اومده.
تمرینها و تمرینمحور بودن درس
دسترسی به تمرینهای عملی و نظری از طریق صفحات کوئرا و پیاتزای درس فراهمه و لینک عضویت در این صفحات هم در اولین جزوهی درس قرار گرفته.
یه نکتهی مهم: تنها راه یادگیری واقعی این درس، حل مسئلهها و تمرینهای نظری و عملی توسط خودته. بعد از اتمام هر تمرین، پاسخنامهش در صفحهی پیاتزای درس گذاشته میشه، ولی لطفاً قبل از صرف زمان کافی سراغ پاسخنامهها نرو. حل سؤالات این درس زمان میبره و باید وقت قابل توجهی رو صرف فکر کردن، ایدهزنی و بررسی راهحلهای مختلف کنی.
چطور به کارت میاد؟
فرض کن میخوای برای یه پروژهی دانشجویی یه سیستم مسیریابی طراحی کنی، یا تو مسابقات برنامهنویسی شرکت کنی، یا حتی بخوای برای مصاحبههای فنی شرکتهای بزرگ آماده بشی. همهی این موقعیتها به فهم عمیق الگوریتمها نیاز دارن. این دوره دقیقاً همون پایهی نظری و عملیایه که به کارت میاد.
مشخصات کلی دوره
ویژگی
جزئیات
عنوان دوره
طراحی الگوریتمها
مدرس
دکتر شریفی زارچی
دانشگاه
صنعتی شریف – دانشکده مهندسی کامپیوتر
تعداد جلسات
۲۶ جلسه
مدت زمان
۲۷ ساعت و ۲۰ دقیقه
سطح
متوسط تا پیشرفته
وضعیت قیمت
رایگان
دربارهی تیم تولید
این درس حاصل تلاش یه تیم ۲۸ نفره از دانشجوهای کنونی و سابق دانشکدهی مهندسی کامپیوتر دانشگاه صنعتی شریف هست که بدون هیچ چشمداشت مادی و معنوی در راهاندازی این درس به دکتر شریفی زارچی کمک کردن و تولید تمام محتوای درس، از جمله جزوهها و تمرینها، رو بر عهده داشتن. از زحمات همهشون عمیقاً سپاسگزاریم. 🙏
سوالات متداول
آیا این دوره واقعاً رایگانه؟
بله، این دوره بهصورت کاملاً رایگان در مکتبخونه ارائه شده.
پیشنیازش چیه؟
گذروندن درس دادهساختارها و مبانی الگوریتمها. اگه ویدئوهاش رو ندیدی، اول اونها رو ببین.
آیا برای مصاحبههای شغلی مناسبه؟
قطعاً. مباحثی مثل برنامهنویسی پویا و الگوریتمهای گراف از پرتکرارترین سوالات مصاحبههای فنی هستن.
چقدر زمان باید بذارم؟
با توجه به ۲۷ ساعت محتوای ویدئویی، حداقل دو برابر این زمان برای تمرین و حل مسئله در نظر بگیر.