داده‌ساختارها و الگوریتم‌ها

مدرس: دکتر محمدعلی آبام پیش‌نیاز: برنامه‌سازی پایتون، ساختارهای گسسته
ترم: پاییز ۱۴۰۵ محل برگزاری: کلاس مجازی
زمان ارائه: یکشنبه ۱۹:۰۰ تا ۲۰:۳۰ مشاهده: دریافت لایسنس

معرفی درس

داده‌ساختارها و الگوریتم‌ها؛ از برنامه‌نویسی تا حل مسئله حرفه‌ای

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

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

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

این مهارت‌ها کجا به کار می‌آیند؟

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

پیش‌نیاز

آشنایی قبلی با دست‌کم یک زبان برنامه‌نویسی ضروری است. الگوریتم‌های این درس مستقل از زبان برنامه‌نویسی ارائه می‌شوند؛ بنابراین، تمرکز اصلی بر روش حل مسئله، طراحی الگوریتم و تحلیل کارایی آن‌هاست.

سرفصل‌ها

ارزیابی

منابع

  • T. Cormen, C. Leiserson, R. Riverst, and C. Stein. Introduction to Algorithms. 4th Edition, MIT Press, 2022.