نیم‌سال تحصیلی ۱۴۰۵–۱۴۰۶

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

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

👤 مدرس: دکتر علی ولی‌نژاد 🏫 گروه علوم کامپیوتر 🐍 زبان برنامه‌نویسی: Python
جدید
آخرین اطلاعیه: فایل‌ها و مهلت‌های تحویل تمرین در این بخش اعلام می‌شوند.
درباره درس

از داده تا راه‌حل کارآمد

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

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

حل مسئلهتحلیل الگوریتمپیاده‌سازیتفکر الگوریتمی

اهداف یادگیری

  • انتخاب ساختمان داده مناسب برای هر مسئله
  • تحلیل زمان اجرا و حافظه مصرفی الگوریتم‌ها
  • پیاده‌سازی ساختمان داده‌ها و الگوریتم‌ها با زبان Python
  • مقایسه راه‌حل‌ها و بهینه‌سازی برنامه‌ها
  • آمادگی برای دروس پیشرفته و مصاحبه‌های فنی
نقشه راه

برنامه هفتگی درس

برنامه پیشنهادی است و متناسب با روند کلاس قابل تغییر خواهد بود.

هفته ۱–۲

مبانی و تحلیل الگوریتم

مرور برنامه‌نویسی، مرتبه رشد و نمادهای مجانبی

هفته ۳–۴

آرایه و لیست پیوندی

نمایش خطی داده و عملیات پایه

هفته ۵–۶

پشته، صف و بازگشت

کاربردها، پیاده‌سازی و تحلیل

هفته ۷–۹

درخت و درخت جست‌وجو

پیمایش، BST، Heap و صف اولویت

هفته ۱۰–۱۱

درهم‌سازی

توابع هش و روش‌های رفع برخورد

هفته ۱۲–۱۴

گراف‌ها

BFS، DFS و کوتاه‌ترین مسیر

هفته ۱۵

مرتب‌سازی و جست‌وجو

مقایسه الگوریتم‌های مهم

هفته ۱۶

جمع‌بندی و حل مسئله

مرور نکات و آمادگی آزمون

مرکز دانلود

فایل‌های آموزشی درس

PDF
اسلاید درس

فصل اول: مقدمه و تحلیل الگوریتم

پیچیدگی زمانی و فضایی، Big-O، Omega و Theta

نسخه ۱.۰۲.۴ MB
PDF
اسلاید درس

فصل دوم: لیست‌های پیوندی

لیست یک‌طرفه، دوطرفه و حلقوی

نسخه ۱.۰۱.۸ MB
HW
تمرین

تمرین شماره ۱

تحلیل پیچیدگی و آرایه‌ها — مهلت تحویل: قابل ویرایش

PDF۴۵۰ KB
Q
نمونه سؤال

نمونه سؤالات میان‌ترم

مجموعه سؤالات منتخب همراه با راهنمای پاسخ

PDF۸۲۰ KB
ZIP
کد برنامه

پیاده‌سازی ساختمان داده‌های خطی

لیست، پشته و صف به زبان Python

Python۱۲۰ KB
ZIP
کد برنامه

درخت جست‌وجوی دودویی

درج، حذف، جست‌وجو و پیمایش درخت

Python۹۰ KB
ارزشیابی

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

جزئیات نهایی در جلسه اول درس اعلام می‌شود.

۲۰٪تمرین‌ها
۱۵٪پروژه و برنامه‌ها
۲۵٪آزمون میان‌ترم
۴۰٪آزمون پایان‌ترم
مطالعه بیشتر

منابع پیشنهادی

01

Data Structures and Algorithms in Python, 2013

Goodrich, Tamassia & Goldwasser

02

Introduction to Algorithms, The MIT Press. Cambridge, Third Edition, 2009

Charles E. Leiserson. Ronald L. Rivest. Clifford Stein.

پرسش و پاسخ

سؤالی درباره درس دارید؟

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

ارسال ایمیلساعت مشاوره: قابل ویرایش