مقدمه
وقتی برای اولین بار شروع به برنامه نویسی کردم و یادگرفتم تابع چی هست و چه جوری میشه اون رو فراخوانی کرد، با یه مسأله ای مواجه شدم به نام برجهای هانوی که به نظرم خیلی جالب اومد! ساعتها وقت گذاشتم و بالاخره برنامه اون رو نوشتم و اجرا کردم. بعدها وقتی تب المپیاد کامپیوتر تازه تو ایران راه افتاده بود، یه جزوه ای به دستم رسید که قسمتی داشت به نام الگوریتمهای بازگشتی. واسه اولین بار بود که فهمیدم یه تابع، میتونه خودش رو صدا بزنه! و وقتی راه حل مسأله برجهای هانوی رو به روش بازگشتی دیدم تعجب کردم. با خودم گفتم مگه میشه راه حل به این کوتاهی داشته باشه؟ حتما غلطه! و با اطمینان نشستم به ردیابی و تست و اجرای الگوریتم... ولی درست بود! پیش خودم گفتم کسی که این راه حل کوتاه و بازگشتی رو نوشته حتما نابغه هست! ولی...
بعدها فهمیدم که باز هم اشتباه کردم... اگه درست بازگشتی رو بفهمیم و به کار ببریم، حل مسایلی مانند هانوی به روش بازگشتی، بسیار راحت تر از حل و فهم اونها به روش غیربازگشتیه! از اونجا که هیچ کتابی رو ندیدم که نکات مهم بازگشتی رو مختصر و مفید بیان کنه، خودم دست به کار شدم و این درس رو ساختم تا نه فقط دانشجوهایی که سر کلاس دروس الگوریتم یا برنامه نویسی هستند، بلکه همه برنامه نویسهایی که با بازگشتی مشکل دارن، یاد بگیرن که تفکر بازگشتی میتونه واقعا ساده و شیرین باشه. جوری که حتی بعضی وقتها تفکر غیربازگشتی، حداقل برای بعضی مسائل، سخت تره! پس...
اگه شما هم فکر میکنید فهمیدن و به خصوص نوشتن توابع بازگشتی نبوغ خاصی میخواد و کار هر کسی نیست و... این درس رو از دست ندید. یک بار برای همیشه مشکلتون رو با دسته بزرگی از الگوریتمها حل کنید: الگوریتمها و توابع بازگشتی!
سرفصل این درس
-
01
فصل اول - مقدمه
Show Content -
02
فصل دوم - تعاریف و مفاهیم پایه
Show Content- تعریف الگوریتم
- معرفی توابع بازگشتی FREE PREVIEW
-
03
فصل سوم - بررسی دو تابع بازگشتی ساده
Show Content- توابع بازگشتی و فاکتوریل
- کد جاوای برنامه محاسبه فاکتوریل به روش غیربازگشتی
- کد جاوای برنامه محاسبه فاکتوریل به روش بازگشتی
- توابع بازگشتی و فیبوناچی
- کد جاوای برنامه محاسبه سری فیبوناچی به روش غیربازگشتی
- کد جاوای برنامه محاسبه سری فیبوناچی به روش بازگشتی
-
04
فصل چهارم - تکنیکهای طراحی و پیاده سازی توابع بازگشتی
Show Content- طراحی و پیاده سازی تابع بازگشتی هانوی
- ردیابی تابع بازگشتی هانوی
- کد جاوای برنامه برجهای هانوی به روش بازگشتی
-
05
فصل پنجم - حالا دیگر بازگشتی بنویسید
Show Content- چاپ کردن یک رشته به شکل معکوس به روش بازگشتی
- کد جاوای برنامه چاپ یک رشته به شکل معکوس به روش بازگشتی
-
06
فصل ششم - ضمیمه ها و فایلهای این درس
Show Content- پروژه های استفاده شده در این درس
- اسلایدهای استفاده شده در این درس
- فایلهای صوتی ویدیوهای این درس
درباره مدرس این درس
رضا خجسته مدرک کارشناسی خود را با رتبه دوم و مدرک کارشناسی ارشد خود را با رتبه اول در رشته مهندسی نرم افزار از دانشکده مهندسی کامپیوتر و فناوری اطلاعات - دانشگاه صنعتی امیرکبیر (پلی تکنیک تهران) دریافت کرد. وی از اوایل دهه هفتاد شمسی به عنوان مهندس کامپیوتر، برنامه نویس و استاد دروس کامپیوتر مشغول به کار است، هرچند که علاقه بیش از حدش به تدریس، بیشتر او را در محیطهای دانشگاه و کالج نگاه داشته است
او پس از مدت زیادی تدریس در دانشگاه ها و کالج های داخل کشور، در حال حاضر به تدریس در کالج سنکا (بزرگترین کالج کانادا واقع در تورنتو) مشغول است. مهمترین دغدغه فکری - حرفه ای او همواره این بوده که بتواند مفاهیم و مسائل بعضاً پیچیده در علوم، مهندسی و برنامه نویسی کامپیوتر را، با استفاده از مفاهیم و مثالهای رایج در زندگی روزمره، به روشهایی ساده تر و قابل فهم تر به دانشجویان منتقل کند
وی در ویرایش و تولید چندین مقاله، کتاب، و سرفصل دروس کامپیوتری در دانشگاهها و کالجهای داخل و خارج از ایران مشارکت داشته و سابقه شرکت، سخنرانی، داوری، هدایت و سرپرستی تیمهای مختلف دانشجویی در کنفرانسها، همایشها، کارگاهها و مسابقات علمی متعدد کامپیوتری داخلی و بین المللی را داراست
-
دیگران چه می گویند؟
رضا رستگار
دکترای ریاضیات کاربردی از دانشگاه ایالتی آیووای آمریکا، و مدیر تحلیل های داده ای شرکت نفتی اکسیدنتال در هیوستون آمریکا
-
دیگران چه می گویند؟
امیر حداد
دکترای علوم کامپیوتر از دانشگاه ملی استرالیا و متخصص در امور داده های کلان
-
دیگران چه می گویند؟
حامد جانزاده
مهندس کامپیوتر، و مدیر فنی دپارتمان فروش بین الملل شرکت آمازون، آستین تگزاس، آمریکا