الگوریتمستان
برنامهنویسی، طراحی الگوریتم و حل مسئلههای الگوریتمی
کتاب Concrete Mathematics: A Foundation for Computer Science نوشتهای با موضوع مفاهیم اولیهی ریاضیات پیوسته (CONtinuous mathematics) و ریاضیات گسسته (disCRETE mathematics) به قلم رونالد گراهام، دونالد کنوت و اُرِن پاتاشنیک - از دانشمندان بزرگ علوم ریاضیات و کامپیوتر - است . در این کتاب از بیان متفاوتی نسبت به نوشتار عموم کتابهای آموزش ریاضی استفاده شده و مفاهیم پایهای محاسباتی علم کامپیوتر به زبان ساده و گیرا توضیح داده شده است. این مفاهیم پیشنیاز حل بسیاری از مسائل کامپیوتری، ریاضی و محاسبات علمی هستند. به همین دلیل، مطالعهی آن به علاقهمندان برنامهنویسی، بویژه شرکتکنندگان المپیادهای کامپیوتری و مسابقات برنامهنویسی توصیه میشود.
کتاب Programming Challenges: The Programming Contest Training Manual از انتشارات معتبر Springer کتاب مفیدی برای آمادگی شرکت در مسابقات برنامهنویسی است که نویسندگان آن به صورت گام به گام، خلاصه و مفید، به مفاهیم و نکات مهم برنامهنویسی، ساختمان دادهها، محاسبات ریاضی و طراحی الگوریتمها اشاره داشته و با طرح مسائل متفاوت از هر موضوع، خواننده را به چالش حل مسئله کشیدهاند.
در این کتاب برای هر موضوع مورد بحث تعدادی سوال از وبسایت UVA انتخاب و مطرح شده است. به این ترتیب خواننده علاوه بر آشنایی با مفاهیم مختلف، با نحوهی طراحی سوال از آن موضوع نیز مواجه میشود. نویسندگان کتاب در مقدمه به این نکته اشاره داشتهاند که در انتخاب سوالها علاوه بر مرتبط بودن موضوع، جنبهی سرگرمی و جذابیت نیز تا حد ممکن رعایت شده است: «گاهی موضوعات جذاب علم کامپیوتر و ریاضیات در قالب داستانهای سرگرم کننده بیان شده است. این مسئله مطالعهی موارد جذاب دیگری را پیش میآورد.»
وبسایت UVa یکی از وبسایتهایی است که امکانات مفیدی را برای علاقهمندان حل سوالات الگوریتمی و شرکتکنندگان مسابقات برنامهنویسی (بالاخص ACM) مهیا کرده است. در این وبسایت مجموعه سوالاتی در سطوح مختلف و مشابه سوالات مسابقات برنامهنویسی بینالمللی در دسترس عموم قرار گرفته است که علاقهمندان میتوانند پس از عضویت در سایت، پاسخ هر سوالی را که حل کردهاند، ارسال کنند. این جوابها بررسی شده و درست یا نادرست بودن آن به کاربر ابلاغ میشود. میتوان گفت نوعی شبیهسازی مسابقات برنامهنویسی رسمی انجام میگیرد.