برنامه نویسی مسابقه ای یک ورزش ذهنی است؛ که معمولاً از طریق اینترنت یا یک شبکه محلی برگزار می شود. اصلی ترین رقابت های برنامه نویسی مسابقه ای توسط شرکت های بزرگی همچون گوگل، [ ۱] [ ۲] فیس بوک[ ۳] برگزار می شوند. البته وبگاه هایی مانند کدفورسز نیز وجود دارند که به طور منظم و هفتگی مسابقات برنامه نویسی برگزار می کنند.
یک رقابت برنامه نویسی معمولاً شامل مجموعه ای از سوالات منطقی یا ریاضیاتی است ( که می تواند از نظر تعداد شرکت کننده از چند ده نفر تا چند ده هزار نفر متفاوت باشد ) که در آن شرکت کنندگان ملزم به نوشتن برنامه های رایانه ای هستند که قادر به حل سوالات داده شده باشند. قضاوت بیشتر بر اساس تعداد سوالات حل شده و زمان صرف شده برای نوشتن راه حل های موفقیت آمیز است، اما ممکن است شامل فاکتورهای دیگری مثل کیفیت خروجی، زمان اجرای برنامه و تعداد خطوط کد راه حل نیز باشد.
یکی از قدیمی ترین رقابت های برنامه نویسی شناخته شده، مسابقه بین المللی برنامه نویسی دانش جویی است که از ۱۹۷۰ شروع شد و تا جایی پیش رفته است که در سال ۲۰۱۱ شرکت کنندگانی از ۸۸ کشور مختلف جهان در آن شرکت کردند. از سال ۲۰۰۰ به بعد علاقه به برنامه نویسی رقابتی بسیار زیاد شده است و می توان گفت با رشد اینترنت مرتبط است چون برگزاری راحت تر مسابقات برنامه نویسی از طریق اینترنت به شرکت کننده اجازه می دهد بدون محدودیت جغرافیایی در مسابقه شرکت کند.
هدف برنامه نویسی رقابتی نوشتن کد منبع برنامه های رایانه ای است که قادر به حل سوالات داده شده باشند. اکثریت قریب به اتفاق سوالات مطرح شده در مسابقات برنامه نویسی مرتبط با ریاضیات یا منطق است. اینگونه سوالات معمولاً از یکی از حیطه های زیر طرح می شود: ترکیبیات، نظریه اعداد، نظریه گراف، هندسه، کار با رشته ها و ساختمان داده ها. در مسابقاتی خاص سوالاتی از هوش مصنوعی هم مطرح می شود.
صرف نظر از دسته بندی مسائل، فرایند حل مسئله می تواند به دو مرحله کلی تقسیم شود: طراحی یک الگوریتم بهینه و پیاده سازی الگوریتم با یک زبان برنامه نویسی مناسب ( مجموعهٔ زبان های برنامه نویسی مجاز از مسابقه ای به مسابقهٔ دیگر متفاوت است ) .
در بیشتر مسابقات، داوری به طور کاملاً خودکار و توسط یک قاضی برخط انجام می شود. هر راه حل ارائه شده توسط یک شرکت کننده روی تست های ورودی متعددی ( معمولاً مخفی ) توسط قاضی اجرا می شوند. به طور معمول، قاضی برخط به صورت همه یا هیچ نمره دهی می کند، به این معنی که راه حل «پذیرفته شده» است تنها در صورتی که در مقابل تمامی ورودی ها پاسخ درست خروجی دهد و در غیر این صورت رد می شود. با این وجود، ممکن است در برخی از مسابقات بسته به نوع سؤال و با توجه به تعداد تست هایی که درست پاسخ دهی می شوند امتیازدهی به صورت جزئی از امتیاز کامل سؤال انجام شود. در برخی از سوالات هم خروجی به ازای یک تست مشخص یکتا نیست و ممکن دو راه حل درست دو خروجی متفاوت ارائه دهند که در این صورت قاضی برخط خروجی را با توجه به ورودی داده شده تجزیه و تحلیل و درستی آن را بررسی می کند.
این نوشته برگرفته از سایت ویکی پدیا می باشد، اگر نادرست یا توهین آمیز است، لطفا گزارش دهید: گزارش تخلفیک رقابت برنامه نویسی معمولاً شامل مجموعه ای از سوالات منطقی یا ریاضیاتی است ( که می تواند از نظر تعداد شرکت کننده از چند ده نفر تا چند ده هزار نفر متفاوت باشد ) که در آن شرکت کنندگان ملزم به نوشتن برنامه های رایانه ای هستند که قادر به حل سوالات داده شده باشند. قضاوت بیشتر بر اساس تعداد سوالات حل شده و زمان صرف شده برای نوشتن راه حل های موفقیت آمیز است، اما ممکن است شامل فاکتورهای دیگری مثل کیفیت خروجی، زمان اجرای برنامه و تعداد خطوط کد راه حل نیز باشد.
یکی از قدیمی ترین رقابت های برنامه نویسی شناخته شده، مسابقه بین المللی برنامه نویسی دانش جویی است که از ۱۹۷۰ شروع شد و تا جایی پیش رفته است که در سال ۲۰۱۱ شرکت کنندگانی از ۸۸ کشور مختلف جهان در آن شرکت کردند. از سال ۲۰۰۰ به بعد علاقه به برنامه نویسی رقابتی بسیار زیاد شده است و می توان گفت با رشد اینترنت مرتبط است چون برگزاری راحت تر مسابقات برنامه نویسی از طریق اینترنت به شرکت کننده اجازه می دهد بدون محدودیت جغرافیایی در مسابقه شرکت کند.
هدف برنامه نویسی رقابتی نوشتن کد منبع برنامه های رایانه ای است که قادر به حل سوالات داده شده باشند. اکثریت قریب به اتفاق سوالات مطرح شده در مسابقات برنامه نویسی مرتبط با ریاضیات یا منطق است. اینگونه سوالات معمولاً از یکی از حیطه های زیر طرح می شود: ترکیبیات، نظریه اعداد، نظریه گراف، هندسه، کار با رشته ها و ساختمان داده ها. در مسابقاتی خاص سوالاتی از هوش مصنوعی هم مطرح می شود.
صرف نظر از دسته بندی مسائل، فرایند حل مسئله می تواند به دو مرحله کلی تقسیم شود: طراحی یک الگوریتم بهینه و پیاده سازی الگوریتم با یک زبان برنامه نویسی مناسب ( مجموعهٔ زبان های برنامه نویسی مجاز از مسابقه ای به مسابقهٔ دیگر متفاوت است ) .
در بیشتر مسابقات، داوری به طور کاملاً خودکار و توسط یک قاضی برخط انجام می شود. هر راه حل ارائه شده توسط یک شرکت کننده روی تست های ورودی متعددی ( معمولاً مخفی ) توسط قاضی اجرا می شوند. به طور معمول، قاضی برخط به صورت همه یا هیچ نمره دهی می کند، به این معنی که راه حل «پذیرفته شده» است تنها در صورتی که در مقابل تمامی ورودی ها پاسخ درست خروجی دهد و در غیر این صورت رد می شود. با این وجود، ممکن است در برخی از مسابقات بسته به نوع سؤال و با توجه به تعداد تست هایی که درست پاسخ دهی می شوند امتیازدهی به صورت جزئی از امتیاز کامل سؤال انجام شود. در برخی از سوالات هم خروجی به ازای یک تست مشخص یکتا نیست و ممکن دو راه حل درست دو خروجی متفاوت ارائه دهند که در این صورت قاضی برخط خروجی را با توجه به ورودی داده شده تجزیه و تحلیل و درستی آن را بررسی می کند.
wiki: برنامه نویسی مسابقه ای