مسابقه کد نویسی مبهم (Spaghetti contest) با هدف تخمین مهارت شرکت کنندگان در نوشتن کدهای ناخوانا یا در اصطلاح برنامه نویسان همان کد کثیف (Dirty Code) برگزار میشود. یک برنامه را هنگامی ناخوانا مینامیم که اگر کد برنامه در اختیار برنامه- نویس دیگر قرار دهیم و او معنای تک تک دستورات برنامه را بداند، شیوه کنار هم چیده شدن دستورات و پرشهای تو در توی میان آنها بحدی پیچیده و گیج کننده باشد که برنامه نویس بدون اجرای این برنامه، نتواند سردر آورد که خروجی برنامه چیست؟
سئوال مسابقه
هر تیم برای شرکت در مسابقه باید به ناخواناترین شکل ممکن، برنامهای به زبان ++c بنویسد که با هر بار اجرا شدن، رشتهای معین به طول حداقل یک و حداکثر سه کاراکتر را روی صفحه نمایش چاپ کند.
توجه: این رشته میبایست همواره ثابت باشد، نه آنکه در هر بار اجرا رشتهای متفاوت چاپ کند، و یا اینکه با انتقال به کامپیوتری دیگر، خروجی متفاوتی بدهد.
روند اجرایی و مراحل مسابقه
تیمها آخرین نسخه برنامههایشان را باید تا پایان وقت اداری تاریخ اعلام شده به داوران تحویل دهند. تیمها میتوانند در طول مدت پیاده سازی کد، برنامهها را به داوران ارائه دهند و توضیحات لازم را دریافت کنند اما پس از اتمام مهلت ارسال کد، این برنامهها از نظر داوران غیراستاندارد باشند تیم از دور مسابقه حذف میشود. مسابقه طی دو مرحله در صبح و عصر برگزار میشود.
مرحله مقدماتی: در مرحله نخست، کلیه تیمهای شرکت کننده با قرعه کشی در چند گروه تقسیم میشوند. در این مرحله هر تیم، برنامه سایر تیمهای هم گروهش را در اختیار میگیرد تا در فرصت مسابقه، خروجی این برنامهها را حدس بزند. در پایان این مرحله، تیمی که خروجی برنامهاش توسط تیمهای کمتری کشف شود تیم برنده گروه است. در بین تیمهایی که برنامههایشان از این نظر امتیاز مساوی دارند تیمی برنده است که تعداد کد بیشتری را شکافته باشد! و در صورت مساوی بودن تعداد مسائل حل شده، تیمی برنده است که مجموع زمان حل مسائلش کمتر باشد. در مدت مسابقه، هر تیمی که خروجی یک برنامه را حدس بزند باید حدسش را با داور گروه در میان بگذارد تا داور درستی یا نادرستی حدس را اعلام کند.
در پایان مرحله نخست مسابقه، تیمهای دارای بیشترین امتیاز از هر گروه به مرحله نهایی راه مییابند. به همین دلیل تیمها بهتر است در هنگام اعلام خروجی یک برنامه دقت کنند زیرا به ازای هر حدس نادرست، مجموع زمان حل مسائلشان ده دقیقه افزوده میشود!
پس از پایان زمان یک ساعته صرف غذا، نتایج مسابقات صبح اعلام میشود و تیمهای برگزیده هر گروه برای شرکت در دور نهایی مسابقه به سالن مسابقه باز میگردند.
مرحله نهایی: پس از صرف ناهار و استراحتی کوتاه، مرحله نهایی مسابقه بین تیمهای برگزیده گروهها آغاز میگردد. در این مرحله هم مانند مرحله نخست به هر تیم، کد برنامههای تیمهای دیگر داده میشود تا در پایان این مرحله، تیم برنده مسابقه تعیین شود. بخاطر داشته باشید که اعضای هر تیم در حین مسابقه حق مشورت با یکدیگر یا استفاده از انواع کتاب، جزوه، ماشین حساب و خط کش و ... را دارند اما استفاده از هرگونه کامپیوتر یا موبایل در حین مسابقه ممنوع میباشد. البته جدول کدهای اسکی معادل کاراکترها در اختیار هر تیم قرار میگیرد. همچنین از آنجایی که مسابقه برای کشف کدهایی است که با دستورات آشنا به طرز مبهمی نوشته شدهاند میباشد، بنابراین اگر دستوری نا آشنا در کد و جود دارد، میتوانید از داوران بپرسید، تا پاسخ آن را به شما ارائه دهند.
لازم به ذکر است بیست و دومین کنفرانس ملی کامپیوتر ایران ۲۳ اسفندماه ۱۳۹۵ در دانشگاه صنعتی شریف برگزاری میشود.
جهت کسب اطلاعات بیشتر میتوانید به سایت رسمی این رویداد به آدرس http://csicc2017.ir/matc مراجعه و یا با شمارههای ۱۶-۶۶۰۸۳۰۱۵ ، ۵-۶۶۰۲۸۹۶۳ تماس حاصل کنید.