یادگیری و یاد دادن الگوریتمها همیشه یکی از دغدغههای دانشجویان و اساتید رشته کامپیوتر بوده است! به همین دلیل یکی از سختترین درسها برای دانشجویان این رشته معمولاً درسهایی مثل ساختمان دادهها و طراحی الگوریتم است. حالا در نظر بگیرید درسی مثل «طراحی الگوریتم پیشرفته» در دکترا چقدر انرژی از دانشجویان میگیرد!؟ کمتر استادی پیدا میشود که بتواند ادعا کند کتابی مثل Introduction to Algorithms را میتواند به مقاطع مختلف تدریس کند و دانشجویان نیز بفهمند که او چه میگوید!
از طرف دیگر برای یک برنامهنویس که با برنامههای پیشرفته سر و کار دارد، لازم است که یک مرجع از الگوریتمهای پرکاربرد داشته باشد؛ به همین دلیل من از یکی از دانشجویان خواستم به عنوان پایاننامه کارشناسیاش ۱۰۰ الگوریتم پرکاربرد در برنامهنویسی را در یک PDF جمعآوری کند که در بخش آموزشها قرار دادیم:
۱۰۰ الگوریتم پرکاربرد در برنامهنویسی در یک PDF
اما یکی از کاربران خوب سایت، آقای زنگویی (که یک عادت خوب دارند و آن اینکه هر وقت یک مطلب عالی پیدا کنند، بر من منت میگذارند و برای من هم میفرستند و من واقعاً مدیون ایشان و چند کاربر دیگر شبیه ایشان هستم و نمیدانم چطور قدردانی کنم... و البته از همه کاربران هم خواهش میکنم اگر یک مطلب «ناب» که جای آن در آفتابگردان خالی است پیدا کردند به ایمیل بنده ارسال کنند که هم خودم استفاده کنم و هم در موقعیت مناسب با هزاران کاربری که روزانه از طریق جستجو و... مهمان آفتابگردان میشوند، به اشتراک بگذارم) یک برنامه پیدا کردهاند که الگوریتمهای مطرح را به صورت ویژوال و با انیمیشن به کاربر آموزش میدهد:
Algorithms ; Explained and Animated
خوشبختانه این اپلیکیشن، هم نسخهی آندرویدی دارد و هم نسخهی آیفونی. البته در نسخه غیررایگان آن، الگوریتمهای پیشرفتهتر که در سطح ارشد و دکترا است (مثل الگوریتم K-Means که ما تازه ترم پیش در درس دادهکاوی پاس کردیم! یا کد هافمن و...) قفل هستند و باید نسخه کامل را با قیمت ۳ دلار خریداری کنید تا دسترسی داشته باشید.
- دانلود نسخه رایگان Algorithms برای آندروید
- دانلود نسخه رایگان Algorithms برای آیفون
من واقعاً به این برنامه نیاز داشتم! خیلی راحت روی تبلت میریزم و با ویدئو پرژکتور به دانشجوها نشان میدهم تا اینقدر زحمت برای جا انداختن یک الگوریتم مثل الگوریتمهای مرتبسازی و امثالهم لازم نباشد!
یک فایده دیگر این برنامه برای من این بود که من متوجه شدم که اصلاً حواسم به این موضوع ناب به عنوان پروژه پایانی کارشناسی نبوده! قطعاً یکی از گزینههایی که خیلی زود به عنوان پروژه پایانی به دانشجوها محول خواهم کرد، ساخت انیمیشن برای الگوریتمهای مهمتر خواهد بود.
وقتی در Apple Store جستجو کردم دیدم چند برنامه رایگان دیگر نیز برای آموزش بهتر الگوریتمها وجود دارد؛ مثل Directory of Algorithms که یک مخزن نسبتاً متنی کامل از تمام الگوریتمهای مهم و پرکاربرد است و Sorting Algos و...
خواهش میکنم اگر مدرس هستید این برنامهها را به دانشجویان معرفی کنید و خودتان نیز سر کلاس برای تدریس از آنها استفاده کنید تا درک بهتری از الگوریتمها در دانشجوها به وجود آید.
موفق باشید؛
حمید رضا نیرومند