الگوریتمستان

برنامه‌نویسی، طراحی الگوریتم و حل مسئله‌های الگوریتمی

 
در صورت ناخوانا بودن نوشته‌ها، از مرورگر دیگری استفاده کنید.
نوشته‌ها با برچسب منبع آموزشی نوشته‌ها با برچسب منبع آموزشی - الگوریتمستان الگوریتمستان الگوریتمستان
نوشته‌ها با برچسب «

منبع آموزشی

»

کتاب Competitive Programmer's Handbook (راهنمای برنامه‌نویسان رقابتی) کتابچه‌ای است که در آن عموم مباحث مورد نیاز جهت شرکت در رقابت‌های برنامه‌نویسی همچون المپیاد کامپیوتر دانش‌آموزی یا مسابقات برنامه‌نویسی دانشجویی به صورت مختصر و مفید یک جا جمع شده است.

دکتر Antti Laaksonen از مربیان تیم‌های المپیاد کامپیوتر کشور فنلاند این کتاب را به صورت رایگان جهت استفاده‌ی عموم در سه بخش و سی فصل با عناوین زیر منتشر کرده است.

  

بخش اول: تکنیک‌های مقدماتی

ادامه ...

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

  

جلسه‌ی اول

۱- چرا مطالعه‌ی الگوریتم؟

۲- ضرب اعداد صحیح

ادامه ...

ویدئوهای راه حل سوالات مسابقه‌ی جهانی ACM-ICPC 2016 را در کانال آپارات الگوریتمستان مشاهده کنید:

aparat.com/algorithmha

ادامه ...

کتاب Programming Challenges: The Programming Contest Training Manual اثر Steven Skiena و Miguel Revilla یکی از کتاب‌های مناسب تمرین گام به گام برای شرکت در مسابقات برنامه‌نویسی‌ای همچون المپیاد کامپیوتر و ACM-ICPC است. این کتاب مورد تایید UVa Online Judge بوده و تمام سوالات تمرینی کتاب نیز از این مخزن است.

ادامه ...

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

کتاب الکترونیکی رایگان «ساختمان داده‌ها» به زبان فارسی و تألیف مهندس فرشید شیرافکن، توسط سازمان علمی آموزشی فرادرس با هدف آموزش و آماده‌سازی جهت شرکت در آزمون‌های تحصیلی و همینطور مطالعه‌ی عموم علاقه‌مندان، در یازده فصل به شرح زیر منتشر شده است:

  

» فصل ۱: مرتبه‌ی اجرایی

ادامه ...

کتاب Introduction to Algorithms: A Creative Approach را می‌توان مکملی بر استفاده از کتاب Introduction to Algorithms (مشهور به کتاب CLRS) دانست. در این کتاب علاوه بر معرفی تکنیک‌های مختلف طراحی الگوریتم‌ها و روش‌های حل برخی مسائل الگوریتمی، روش‌های تحلیل و حل آنها با جزئیات بیشتر و به صورت گام به گام بررسی شده است. به همین دلیل نیز از جمله منابع اصلی پیشنهادی به متقاضیان شرکت در المپیادهای کامپیوتر و مسابقات برنامه‌نویسی برای یادگیری طراحی و تحلیل الگوریتم‌ها است.

ادامه ...

کتاب Introduction to Algorithms (مشهور به کتاب CLRS) از انتشارات MIT اثر Thomas H. Cormen، Charles E. Leiserson، Ronald L. Rivest و Clifford Stein کتاب جامع مباحث الگوریتم‌ها و ساختمان داده‌ها است که منبع درسی بسیاری از دانشگاه‌های معتبر بوده و تا کنون بیش از سی هزار مقاله و کتاب با ارجاع به آن نگارش یافته است. مطالب این کتاب از مباحث اولیه مانند مفهوم تحلیل و طراحی الگوریتم آغاز شده و مباحث پیشرفته‌ی طراحی الگوریتم‌ها و ساختمان داده‌ها را نیز پوشش می‌دهد. به همین دلیل مطالعه و استفاده از آن به عنوان مرجع برای کلیه‌ی علاقمندان مباحث طراحی الگوریتم‌ها، ساختمان داده‌ها و همینطور شرکت‌کنندگان المپیادهای کامپیوتری و مسابقات برنامه‌نویسی توصیه می‌شود.

ادامه ...

کتاب Concrete Mathematics: A Foundation for Computer Science نوشته‌ای با موضوع مفاهیم اولیه‌ی ریاضیات پیوسته (CONtinuous mathematics) و ریاضیات گسسته (disCRETE mathematics) به قلم رونالد گراهام، دونالد کنوت و اُرِن پاتاشنیک - از دانشمندان بزرگ علوم ریاضیات و کامپیوتر - است . در این کتاب از بیان متفاوتی نسبت به نوشتار عموم کتاب‌های آموزش ریاضی استفاده شده و مفاهیم پایه‌ای محاسباتی علم کامپیوتر به زبان ساده و گیرا توضیح داده شده است. این مفاهیم پیش‌نیاز حل بسیاری از مسائل کامپیوتری، ریاضی و محاسبات علمی هستند. به همین دلیل، مطالعه‌ی آن به علاقه‌مندان برنامه‌نویسی، بویژه شرکت‌کنندگان المپیادهای کامپیوتری و مسابقات برنامه‌نویسی توصیه می‌شود.

ادامه ...

کتاب Programming Challenges: The Programming Contest Training Manual از انتشارات معتبر Springer کتاب مفیدی برای آمادگی شرکت در مسابقات برنامه‌نویسی است که نویسندگان آن به صورت گام به گام، خلاصه و مفید، به مفاهیم و نکات مهم برنامه‌نویسی، ساختمان داده‌ها، محاسبات ریاضی و طراحی الگوریتم‌ها اشاره داشته و با طرح مسائل متفاوت از هر موضوع، خواننده را به چالش حل مسئله کشیده‌اند.

در این کتاب برای هر موضوع مورد بحث تعدادی سوال از وب‌سایت UVA انتخاب و مطرح شده است. به این ترتیب خواننده علاوه بر آشنایی با مفاهیم مختلف، با نحوه‌ی طراحی سوال از آن موضوع نیز مواجه می‌شود. نویسندگان کتاب در مقدمه به این نکته اشاره داشته‌اند که در انتخاب سوال‌ها علاوه بر مرتبط بودن موضوع، جنبه‌ی سرگرمی و جذابیت نیز تا حد ممکن رعایت شده است: «گاهی موضوعات جذاب علم کامپیوتر و ریاضیات در قالب داستان‌های سرگرم کننده بیان شده است. این مسئله مطالعه‌ی موارد جذاب دیگری را پیش می‌آورد.»

ادامه ...

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

ادامه ...