یادداشت‌های یک معلم برنامه‌نویسی، حل مسئله، علم داده و یادگیری ماشین

 

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

الگوریتم‌های ریشه‌یابی
معرفی روش‌های عددی ریشه‌یابی تنصیف، نیوتون، نابجایی، وتری و نقطه ثابت با کد به زبان برنامه‌نویسی پایتون
الگوریتم مرتب‌سازی ادغامی
آشنایی با روش مرتب‌سازی ادغامی با قطعه کدهایی به زبان‌های برنامه‌نویسی ++C و Python
دنباله اعداد کاتالان و محاسبه آن
آشنایی با دنباله عددی کاتالان، کاربردها و روش پیاده‌سازی آن به زبان برنامه‌نویسی ++C
محاسبه دترمینان ماتریس
بررسی روش‌های بسط لاپلاس، گاوس، فرمول تحویل و ساروس، برای محاسبه دترمینان ماتریس مربعی و پیچیدگی زمانی آنها
مسئله کاشیکاری
بحث در مورد مسئله کاشیکاری یا فرش کردن زمین با موزاییک به روش تقسیم و حل
الگوریتم ضرب استراسن
آشنایی با الگوریتم استراسن برای محاسبه‌ حاصلضرب ماتریس‌ها
الگوریتم‌های تقسیم و حل
آشنایی با تکنیک الگوریتم‌های Divide and Conquer (تقسیم و حل / تقسیم و غلبه) و کاربردهای آن در مرتب‌سازی، جستجو و حل مسائل الگوریتمی دیگر
دنباله اعداد فیبوناچی
بررسی الگوریتم‌های محاسبه دنباله اعداد فیبوناچی و کارایی آنها
الگوریتم مرتب‌سازی سریع
آشنایی با روش مرتب‌سازی سریع، همراه با قطعه کدهای نمونه به زبان‌های برنامه‌نویسی ++C و Python
محاسبه ضرایب دوجمله‌ای
بررسی روش‌های مختلف محاسبه ضرایب دوجمله‌ای نیوتن یا ترکیب دو عدد با قطعه کد به زبان برنامه‌نویسی ++C
برج هانوی
بررسی مسئله برج هانوی و روش‌های حل بازگشتی و غیربازگشتی آن به همراه کد به زبان ++C
درخت جستجوی دودویی
آشنایی با درخت جستجوی دودویی (Binary Search Tree) و عملیات جستجو و درج و حذف گره
ضرب زنجیره‌ای ماتریس‌ها
بحث در مورد ضرب زنجیره‌ای ماتریس‌ها و روش پیاده‌سازی الگوریتم پرانتزبندی بهینه آن با روش تقسیم و حل و روش برنامه‌نویسی پویا