برپایی مسابقه کدنویسی مبهم در ۲۳ اسفندماه

برپایی مسابقه کدنویسی مبهم در ۲۳ اسفندماه مسابقه کدنویسی مبهم (Spaghetti contest) همزمان با بیست‌ودومین کنفرانس ملی کامپیوتر ایران به‌عنوان معتبر‌ترین کنفرانس علمی کشور در حوزه کامپیوتر و فناوری اطلاعات، ۲۳ اسفند ماه جاری در دانشگاه صنعتی شریف برگزار می‌شود. به گزارش ایسنا، در طول تاریخ برنامه‌نویسی، سبک‌های مختلفی برای برنامه‌نویسی ابداع شدند. روش‌های برنامه‌نویسی […]

برپایی مسابقه کدنویسی مبهم در ۲۳ اسفندماه

مسابقه کدنویسی مبهم (Spaghetti contest) همزمان با بیست‌ودومین کنفرانس ملی کامپیوتر ایران به‌عنوان معتبر‌ترین کنفرانس علمی کشور در حوزه کامپیوتر و فناوری اطلاعات، ۲۳ اسفند ماه جاری در دانشگاه صنعتی شریف برگزار می‌شود.

به گزارش ایسنا، در طول تاریخ برنامه‌نویسی، سبک‌های مختلفی برای برنامه‌نویسی ابداع شدند. روش‌های برنامه‌نویسی ساخت‌یافته، پیمان‌های و شی‌ءگرا از معروف‌ترین سبک‌های برنامه‌نویسی به شمار می‌آیند. اما پیش از همه آنها نخستین سبک برنامه‌نویسی، برنامه‌نویسی اسپاگتی نامیده می‌شد. دورانی که دستور Goto رواج داشت و برنامه‌ها به شدت ناخوانا بودند. زیرا ترتیب اجرای سطرهای برنامه، به دلیل استفاده مکرر از دستور Goto همچون رشته‌های اسپاگتی تودرتو و سردرگم بود. به همین دلیل برنامه‌ها عموماً کم حجم و پر از خطا بودند. هنگامی که برنامه‌نویسان برای نجات از این وضع، دستور Goto را منع کردند و سعی کردند به جای آن از حلقه‌های for وwhile و متغیرهای منطقی (Boolean)استفاده کنند، دوران این سبک برنامه‌نویسی به پایان رسید و سبک برنامه‌نویسی ساخت یافته آغاز شد.

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

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

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

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

در پایان مرحله نخست مسابقه، تیم‌های دارای بیش‌ترین امتیاز از هر گروه به مرحله نهایی راه می‌یابند.

در مرحله نهایی، مسابقه بین تیم‌های برگزیده گروه‌ها آغاز می‌شود. در این مرحله هم مانند مرحله نخست به هر تیم، کد برنامه‌های تیم‌های دیگر داده می‌شود تا در پایان این مرحله، تیم برنده مسابقه تعیین شود.

 

علاقه‌مندان می‌توانند جهت کسب اطلاعات بیش‌تر و ثبت‌نام به وب‌سایت http: //csicc2017.ir/match مراجعه کرده و یا با شماره تلفن‌های ۱۶-۶۶۰۸۳۰۱۵ و ۵-۶۶۰۲۸۹۶۳ تماس بگیرند.